package com.gkhy.safePlatform.emergency.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService;
|
import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO;
|
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.vo.ResultVO;
|
import com.gkhy.safePlatform.commons.vo.SearchResultVO;
|
import com.gkhy.safePlatform.emergency.entity.*;
|
import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes;
|
import com.gkhy.safePlatform.emergency.excepiton.EmergencyException;
|
import com.gkhy.safePlatform.emergency.model.dto.req.*;
|
import com.gkhy.safePlatform.emergency.model.dto.resp.*;
|
import com.gkhy.safePlatform.emergency.query.EmergencySuppliesCountQuery;
|
import com.gkhy.safePlatform.emergency.query.EmergencySuppliesQuery;
|
import com.gkhy.safePlatform.emergency.query.db.EmergencySuppliesDBQuery;
|
import com.gkhy.safePlatform.emergency.service.EmergencySuppliesMaintainService;
|
import com.gkhy.safePlatform.emergency.service.EmergencySuppliesService;
|
import com.gkhy.safePlatform.emergency.service.baseService.*;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
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.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service("emergencySuppliesService")
|
public class EmergencySuppliesServiceImpl implements EmergencySuppliesService {
|
|
@Autowired
|
private EmergencySuppliesInfoService emergencySuppliesInfoService;
|
|
@Autowired
|
private EmergencySuppliesInspectInfoService emergencySuppliesInspectInfoService;
|
|
@Autowired
|
private EmergencySuppliesInspectUserInfoService emergencySuppliesInspectUserInfoService;
|
|
@Autowired
|
private EmergencySuppliesMaintainInfoService emergencySuppliesMaintainInfoService;
|
|
@Autowired
|
private EmergencySuppliesMaintainUserInfoService emergencySuppliesMaintainUserInfoService;
|
|
|
@DubboReference(check = false)
|
private AccountDepartmentService accountDepartmentService;
|
|
|
@Override
|
public SearchResultVO<List<EmergencySuppliesPageRespDTO>> selectEmergencySuppliesList(PageQuery<EmergencySuppliesQuery> query) {
|
Long pageIndex = query.getPageIndex();
|
Long pageSize = query.getPageSize();
|
Page<EmergencySuppliesInfoPageDO> page = new Page<>(pageIndex, pageSize);
|
|
EmergencySuppliesDBQuery emergencySuppliesDBQuery = new EmergencySuppliesDBQuery();
|
if (query.getSearchParams() != null) {
|
BeanUtils.copyProperties(query.getSearchParams(), emergencySuppliesDBQuery);
|
}
|
List<EmergencySuppliesInfoPageDO> emergencySuppliesListDoInfoList = emergencySuppliesInfoService.selectEmergencySuppliesList(page,emergencySuppliesDBQuery);
|
List<EmergencySuppliesPageRespDTO> respList = BeanCopyUtils.copyBeanList(emergencySuppliesListDoInfoList, EmergencySuppliesPageRespDTO.class);
|
|
Map<Long, String> depPool = new HashMap<>();
|
|
respList.forEach(AccidentExpressPageRespDTO ->{
|
// 设置部门名称
|
if (!depPool.containsKey(AccidentExpressPageRespDTO.getDepartmentId())) {
|
ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(AccidentExpressPageRespDTO.getDepartmentId());
|
if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
|
if (rpcResult.getData() != null) {
|
DepInfoRPCRespDTO dep = (DepInfoRPCRespDTO) rpcResult.getData();
|
|
depPool.put(dep.getDepId(), dep.getDepName());
|
}
|
}}
|
|
String depName = depPool.get(AccidentExpressPageRespDTO.getDepartmentId());
|
AccidentExpressPageRespDTO.setDeptName(depName);
|
});
|
|
return new SearchResultVO<>(
|
true,
|
pageIndex,
|
pageSize,page.getPages(),
|
page.getTotal(),
|
respList,
|
ResultCodes.OK
|
);
|
}
|
|
@Override
|
public ResultVO addEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
|
Date nowDate = new Date();
|
// 新增应急物资
|
EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo();
|
BeanUtils.copyProperties(emergencySuppliesReqDTO,emergencySuppliesInfo);
|
emergencySuppliesInfo.setDelFlag(false);
|
emergencySuppliesInfo.setCreateUid(uid);
|
emergencySuppliesInfo.setGmtCreate(nowDate);
|
emergencySuppliesInfoService.addEmergencySupplies(emergencySuppliesInfo);
|
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
|
@Override
|
public ResultVO<EmergencySuppliesDetailRespDTO> getEmergencySuppliesById(Long id) {
|
EmergencySuppliesDetailRespDTO emergencySuppliesDetailRespDTO = new EmergencySuppliesDetailRespDTO();
|
// 查询是否存在
|
EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(id);
|
if (emergencySuppliesInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST);
|
}else{
|
BeanUtils.copyProperties(emergencySuppliesInfoDetailDO,emergencySuppliesDetailRespDTO);
|
|
// 查找检查记录
|
List<EmergencySuppliesInspectInfoDetailDO> inspectDetailDOList = emergencySuppliesInspectInfoService.selectEmergencySuppliesInspectBySuppliesId(emergencySuppliesDetailRespDTO.getId());
|
if (!CollectionUtils.isEmpty(inspectDetailDOList)){
|
List<EmergencySuppliesInspectDetailRespDTO> inspectList = BeanCopyUtils.copyBeanList(inspectDetailDOList,EmergencySuppliesInspectDetailRespDTO.class);
|
// 创建人
|
for (EmergencySuppliesInspectDetailRespDTO emergencySuppliesInspectDetailRespDTO :inspectList){
|
List<EmergencySuppliesInspectUserInfoDO> inspectUserDOList = emergencySuppliesInspectUserInfoService.selectEmergencySuppliesInspectUserBySuppliesInspectId(emergencySuppliesInspectDetailRespDTO.getId());
|
if (!CollectionUtils.isEmpty(inspectUserDOList)){
|
List<EmergencySuppliesInspectUserRespDTO> inspectUserList = BeanCopyUtils.copyBeanList(inspectUserDOList,EmergencySuppliesInspectUserRespDTO.class);
|
emergencySuppliesInspectDetailRespDTO.setUserList(inspectUserList);
|
}
|
}
|
emergencySuppliesDetailRespDTO.setInspectList(inspectList);
|
}
|
// 查找保养记录
|
List<EmergencySuppliesMaintainInfoDetailDO> maintainDetailDOList = emergencySuppliesMaintainInfoService.selectEmergencySuppliesMaintainBySuppliesId(emergencySuppliesDetailRespDTO.getId());
|
if (!CollectionUtils.isEmpty(maintainDetailDOList)){
|
List<EmergencySuppliesMaintainDetailRespDTO> maintainList = BeanCopyUtils.copyBeanList(maintainDetailDOList,EmergencySuppliesMaintainDetailRespDTO.class);
|
// 创建人
|
for (EmergencySuppliesMaintainDetailRespDTO emergencySuppliesMaintainDetailRespDTO :maintainList){
|
List<EmergencySuppliesMaintainUserInfoDO> maintainUserDOList = emergencySuppliesMaintainUserInfoService.selectEmergencySuppliesMaintainUserBySuppliesMaintainId(emergencySuppliesMaintainDetailRespDTO.getId());
|
if (!CollectionUtils.isEmpty(maintainUserDOList)){
|
List<EmergencySuppliesMaintainUserRespDTO> maintainUserList = BeanCopyUtils.copyBeanList(maintainUserDOList,EmergencySuppliesMaintainUserRespDTO.class);
|
emergencySuppliesMaintainDetailRespDTO.setUserList(maintainUserList);
|
}
|
}
|
emergencySuppliesDetailRespDTO.setMaintainList(maintainList);
|
}
|
|
return new ResultVO<>(ResultCodes.OK,emergencySuppliesDetailRespDTO);
|
}
|
}
|
|
@Override
|
public ResultVO updateEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
|
Date nowDate = new Date();
|
// 查询是否存在
|
EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(emergencySuppliesReqDTO.getId());
|
if (emergencySuppliesInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST);
|
}else{
|
EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo();
|
BeanUtils.copyProperties(emergencySuppliesReqDTO,emergencySuppliesInfo);
|
emergencySuppliesInfo.setUpdateUid(uid);
|
emergencySuppliesInfo.setGmtModitify(nowDate);
|
emergencySuppliesInfoService.updateEmergencySupplies(emergencySuppliesInfo);
|
|
return new ResultVO<>(ResultCodes.OK);
|
}
|
}
|
|
@Override
|
public ResultVO batchDeleteEmergencySupplies( Long[] ids) {
|
|
if (ids == null || ids.length==0){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NULL);
|
}else{
|
for (Long id : ids){
|
deleteEmergencySupplies(id);
|
}
|
return new ResultVO(ResultCodes.OK);
|
}
|
}
|
|
private void deleteEmergencySupplies(Long id) {
|
//查询是否存在
|
EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(id);
|
if (emergencySuppliesInfoDetailDO==null){
|
throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NOT_EXIST);
|
}else{
|
Long SuppliesId = emergencySuppliesInfoDetailDO.getId();
|
emergencySuppliesInfoService.deleteEmergencySupplies(SuppliesId);
|
|
// 删除保养记录
|
emergencySuppliesMaintainInfoService.deleteBySuppliesId(id);
|
// 删除检查记录
|
emergencySuppliesInspectInfoService.deleteBySuppliesId(id);
|
|
}
|
}
|
}
|