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.EmergencyServiceException;
|
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.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<List<EmergencyTeamPageRespDTO>> selectEmergencyTeamList(PageQuery<EmergencyTeamQuery> query) {
|
Long pageIndex = query.getPageIndex();
|
Long pageSize = query.getPageSize();
|
Page<EmergencyTeamInfoPageDO> page = new Page<>(pageIndex, pageSize);
|
|
EmergencyTeamDBQuery emergencyTeamDBQuery = new EmergencyTeamDBQuery();
|
if (query.getSearchParams() != null) {
|
BeanUtils.copyProperties(query.getSearchParams(), emergencyTeamDBQuery);
|
}
|
|
List<EmergencyTeamPageRespDTO> respList = new ArrayList<>();
|
List<EmergencyTeamInfoPageDO> emergencyTeamInfoPageDOList = emergencyTeamInfoService.selectEmergencyTeamList(page,emergencyTeamDBQuery);
|
|
if (!CollectionUtils.isEmpty(emergencyTeamInfoPageDOList)){
|
for (EmergencyTeamInfoPageDO emergencyTeamInfoPageDO : emergencyTeamInfoPageDOList) {
|
List<EmergencyTeamFileInfoDO> emergencyTeamFileInfoDOList = emergencyTeamFileInfoService.selectByEmergencyTeamId(emergencyTeamInfoPageDO.getId());
|
List<EmergencyTeamFileRespDTO> 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) {
|
Date nowDate = new Date();
|
//必填项验证
|
checkRequired(emergencyTeamReqDTO);
|
//1.新增应急队伍
|
EmergencyTeamFileInfo emergencyTeamFileInfo = new EmergencyTeamFileInfo();
|
BeanUtils.copyProperties(emergencyTeamReqDTO,emergencyTeamFileInfo);
|
emergencyTeamFileInfo.setCreateUid(uid);
|
emergencyTeamFileInfo.setGmtCreate(nowDate);
|
emergencyTeamInfoService.addEmergencyTeam(emergencyTeamFileInfo);
|
//2.新增应急队伍附件
|
List<EmergencyTeamFileInfo> fileInfoList = new ArrayList<>();
|
BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getFileList(),fileInfoList.getClass());
|
fileInfoList.forEach(EmergencyTeamFileInfo -> {
|
EmergencyTeamFileInfo.setTeamId(emergencyTeamFileInfo.getTeamId());
|
EmergencyTeamFileInfo.setCreateUid(uid);
|
EmergencyTeamFileInfo.setGmtCreate(nowDate);
|
});
|
emergencyTeamFileInfoService.addEmergencyTeamFile(fileInfoList);
|
//3.新增应急队伍人员
|
List<EmergencyTeamMemberInfo> memberInfoList = new ArrayList<>();
|
BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getMemberList(),memberInfoList.getClass());
|
memberInfoList.forEach(EmergencyTeamMemberInfo -> {
|
EmergencyTeamMemberInfo.setTeamId(emergencyTeamFileInfo.getTeamId());
|
EmergencyTeamMemberInfo.setCreateUid(uid);
|
EmergencyTeamMemberInfo.setGmtCreate(nowDate);
|
});
|
emergencyTeamMemberInfoService.addEmergencyTeamMember(memberInfoList);
|
|
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(emergencyTeamReqDTO.getPrincipalUid() == null || emergencyTeamReqDTO.getPrincipalUid() == 0){
|
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;
|
}
|
|
}
|