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.*; import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamMemberReqDTO; import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamReqDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamDetailRespDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamFileRespDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamMemberRespDTO; 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.Date; 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); Date nowDate = new Date(); //1.新增应急队伍 EmergencyTeamInfo emergencyTeamInfo = new EmergencyTeamInfo(); BeanUtils.copyProperties(emergencyTeamReqDTO, emergencyTeamInfo); emergencyTeamInfo.setDelFlag(false); emergencyTeamInfo.setCreateUid(uid); emergencyTeamInfo.setGmtCreate(nowDate); emergencyTeamInfoService.addEmergencyTeam(emergencyTeamInfo); //2.新增应急队伍附件 List fileInfoList = BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getFileList(), EmergencyTeamFileInfo.class); fileInfoList.forEach(EmergencyTeamFileInfo -> { EmergencyTeamFileInfo.setTeamId(emergencyTeamInfo.getId()); EmergencyTeamFileInfo.setDelFlag(false); EmergencyTeamFileInfo.setCreateUid(uid); EmergencyTeamFileInfo.setGmtCreate(nowDate); }); emergencyTeamFileInfoService.addEmergencyTeamFile(fileInfoList); //3.新增应急队伍人员 List memberInfoList = BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getMemberList(), EmergencyTeamMemberInfo.class); memberInfoList.forEach(EmergencyTeamMemberInfo -> { EmergencyTeamMemberInfo.setTeamId(emergencyTeamInfo.getId()); EmergencyTeamMemberInfo.setDelFlag(false); EmergencyTeamMemberInfo.setCreateUid(uid); EmergencyTeamMemberInfo.setGmtCreate(nowDate); }); emergencyTeamMemberInfoService.addEmergencyTeamMember(memberInfoList); return new ResultVO(ResultCodes.OK); } @Override public ResultVO getEmergencyTeamById(Long id) { EmergencyTeamDetailRespDTO emergencyTeamDetailRespDTO = new EmergencyTeamDetailRespDTO(); EmergencyTeamInfoDetailDO emergencyTeamInfoDetailDO = emergencyTeamInfoService.selectEmergencyTeamById(id); if (emergencyTeamInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.TEAM_NOT_EXIST); }else{ BeanUtils.copyProperties(emergencyTeamInfoDetailDO,emergencyTeamDetailRespDTO); //查找对应的附件 List emergencyTeamFileInfoDOList = emergencyTeamFileInfoService.selectByEmergencyTeamId(id); if (!CollectionUtils.isEmpty(emergencyTeamFileInfoDOList)){ List emergencyTeamFileRespDTOList = BeanCopyUtils.copyBeanList(emergencyTeamFileInfoDOList , EmergencyTeamFileRespDTO.class); emergencyTeamDetailRespDTO.setFileList(emergencyTeamFileRespDTOList); } //查找对应的人员 List emergencyTeamMemberInfoDOList = emergencyTeamMemberInfoService.selectByEmergencyTeamId(id); if (!CollectionUtils.isEmpty(emergencyTeamMemberInfoDOList)){ List emergencyTeamMemberRespDTOList = BeanCopyUtils.copyBeanList(emergencyTeamMemberInfoDOList , EmergencyTeamMemberRespDTO.class); emergencyTeamDetailRespDTO.setMemberList(emergencyTeamMemberRespDTOList); } } return new ResultVO<>(ResultCodes.OK ,emergencyTeamDetailRespDTO); } /** * 验证必填项 * * @return */ private void checkRequired(EmergencyTeamReqDTO emergencyTeamReqDTO) { //名称 if (StringUtils.isBlank(emergencyTeamReqDTO.getTeamName())) { throw new EmergencyException(EmergencyResultCodes.TEAM_NAME_NULL); } //级别 if (StringUtils.isBlank(emergencyTeamReqDTO.getTeamLevel())) { throw new EmergencyException(EmergencyResultCodes.TEAM_LEVEL_NULL); } //负责人 if (emergencyTeamReqDTO.getPrincipalUid() == null || emergencyTeamReqDTO.getPrincipalUid() == 0) { throw new EmergencyException(EmergencyResultCodes.TEAM_PRINCIPAL_NULL); } //负责人部门 if (emergencyTeamReqDTO.getPrincipalDepartmentId() == null || emergencyTeamReqDTO.getPrincipalDepartmentId() == 0) { throw new EmergencyException(EmergencyResultCodes.TEAM_PRINCIPAL_DEPARTMENT_NULL); } //负责人手机 if (StringUtils.isBlank(emergencyTeamReqDTO.getPrincipalPhone())) { throw new EmergencyException(EmergencyResultCodes.TEAM_PRINCIPAL_PHONE_NULL); } //固定电话 if (StringUtils.isBlank(emergencyTeamReqDTO.getTelephoneNumber())) { throw new EmergencyException(EmergencyResultCodes.TEAM_TELEPHONE_NUMBER_NULL); } //人员列表如果不为空,则需要验证其中的必填项 if (!CollectionUtils.isEmpty(emergencyTeamReqDTO.getMemberList())){ for(EmergencyTeamMemberReqDTO emergencyTeamMemberReqDTO : emergencyTeamReqDTO.getMemberList()){ //工号 if (StringUtils.isBlank(emergencyTeamMemberReqDTO.getJobNumber())) { throw new EmergencyException(EmergencyResultCodes.TEAM_USER_JOB_NUMBER_NULL); } //名称 if (StringUtils.isBlank(emergencyTeamMemberReqDTO.getName())) { throw new EmergencyException(EmergencyResultCodes.TEAM_USER_NAME_NULL); } //性别 if (emergencyTeamMemberReqDTO.getGender()==null) { throw new EmergencyException(EmergencyResultCodes.TEAM_USER_GENDER_NULL); } //手机号码 if (StringUtils.isBlank(emergencyTeamMemberReqDTO.getPhone())) { throw new EmergencyException(EmergencyResultCodes.TEAM_USER_PHONE_NULL); } //职务 if (StringUtils.isBlank(emergencyTeamMemberReqDTO.getPosition())) { throw new EmergencyException(EmergencyResultCodes.TEAM_USER_POSITION_NULL); } } } } }