package com.gkhy.safePlatform.emergency.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.emergency.entity.EmergencyTeamMemberInfoDO; import com.gkhy.safePlatform.emergency.excepiton.EmergencyServiceException; import com.gkhy.safePlatform.emergency.entity.EmergencyTeamFileInfoDO; import com.gkhy.safePlatform.emergency.entity.EmergencyTeamInfoPageDO; import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamReqDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamFileRespDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamPageRespDTO; import com.gkhy.safePlatform.emergency.query.EmergencyTeamQuery; import com.gkhy.safePlatform.emergency.query.db.EmergencyTeamDBQuery; import com.gkhy.safePlatform.emergency.service.EmergencyTeamService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencyTeamFileInfoService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencyTeamInfoService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencyTeamMemberInfoService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; @Service("emergencyTeamService") public class EmergencyTeamServiceImpl implements EmergencyTeamService { @Autowired private EmergencyTeamInfoService emergencyTeamInfoService; @Autowired private EmergencyTeamFileInfoService emergencyTeamFileInfoService; @Autowired private EmergencyTeamMemberInfoService emergencyTeamMemberInfoService; @Override public SearchResultVO> selectEmergencyTeamList(PageQuery query) { Long pageIndex = query.getPageIndex(); Long pageSize = query.getPageSize(); Page page = new Page<>(pageIndex, pageSize); EmergencyTeamDBQuery emergencyTeamDBQuery = new EmergencyTeamDBQuery(); if (query.getSearchParams() != null) { BeanUtils.copyProperties(query.getSearchParams(), emergencyTeamDBQuery); } List respList = new ArrayList<>(); List emergencyTeamInfoPageDOList = emergencyTeamInfoService.selectEmergencyTeamList(page,emergencyTeamDBQuery); if (!CollectionUtils.isEmpty(emergencyTeamInfoPageDOList)){ for (EmergencyTeamInfoPageDO emergencyTeamInfoPageDO : emergencyTeamInfoPageDOList) { List emergencyTeamFileInfoDOList = emergencyTeamFileInfoService.selectByEmergencyTeamId(emergencyTeamInfoPageDO.getId()); List emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyTeamFileInfoDOList, EmergencyTeamFileRespDTO.class); EmergencyTeamPageRespDTO emergencyTeamPageRespDTO = new EmergencyTeamPageRespDTO(); BeanUtils.copyProperties(emergencyTeamInfoPageDO, emergencyTeamPageRespDTO); emergencyTeamPageRespDTO.setFileList(emergencyTeamFileRespDTOList); respList.add(emergencyTeamPageRespDTO); } } return new SearchResultVO<>( true, pageIndex, pageSize, page.getTotal(), respList, ResultCodes.OK ); } @Override public ResultVO addEmergencyTeam(Long uid, EmergencyTeamReqDTO emergencyTeamReqDTO) { //必填项验证 checkRequired(emergencyTeamReqDTO); //1.新增应急队伍 EmergencyTeamFileInfoDO emergencyTeamFileInfoDO = new EmergencyTeamFileInfoDO(); BeanUtils.copyProperties(emergencyTeamReqDTO,emergencyTeamFileInfoDO); emergencyTeamInfoService.addEmergencyTeam(emergencyTeamFileInfoDO); //2.新增应急队伍附件 List fileInfoDOList = new ArrayList<>(); BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getFileList(),fileInfoDOList.getClass()); fileInfoDOList.forEach(e->e.setTeamId(emergencyTeamFileInfoDO.getId())); emergencyTeamFileInfoService.addEmergencyTeamFile(fileInfoDOList); //3.新增应急队伍人员 List memberInfoDOList = new ArrayList<>(); BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getMemberList(),memberInfoDOList.getClass()); memberInfoDOList.forEach(e->e.setTeamId(emergencyTeamFileInfoDO.getId())); emergencyTeamMemberInfoService.addEmergencyTeamMember(memberInfoDOList); return ResultVO.success(); } /** * 验证必填项 * @return */ private void checkRequired(EmergencyTeamReqDTO emergencyTeamReqDTO){ //名称 if (StringUtils.isBlank(emergencyTeamReqDTO.getTeamName())){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_NAME_NULL); } //级别 if (StringUtils.isBlank(emergencyTeamReqDTO.getTeamLevel())){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_LEVEL_NULL); } //负责人 if (StringUtils.isBlank(emergencyTeamReqDTO.getPrincipalUid())){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_PRINCIPAL_NULL); } //负责人部门 if(emergencyTeamReqDTO.getPrincipalDepartmentId() == null || emergencyTeamReqDTO.getPrincipalDepartmentId() == 0){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_PRINCIPAL_DEPARTMENT_NULL); } //负责人手机 if (StringUtils.isBlank(emergencyTeamReqDTO.getPrincipalPhone())){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_PRINCIPAL_PHONE_NULL); } //固定电话 if (StringUtils.isBlank(emergencyTeamReqDTO.getTelephoneNumber())){ throw new EmergencyServiceException(EmergencyResultCodes.TEAM_TELEPHONE_NUMBER_NULL); } } /** * 验证数据库是否存在 * @return */ public Boolean checkeExist(){ return null; } }