fix
songhuangfeng123
2022-09-20 f1f506172a3edff8d31e4db77b8940f115660919
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java
@@ -1,33 +1,59 @@
package com.gkhy.safePlatform.emergency.service.impl;
import com.alibaba.nacos.common.utils.StringUtils;
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.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.enums.EmergencyResultCodes;
import com.gkhy.safePlatform.emergency.enums.EmergencySuppliesClassificationEnum;
import com.gkhy.safePlatform.emergency.enums.EmergencySuppliesStatusEnum;
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
@@ -43,6 +69,24 @@
        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,
@@ -55,6 +99,12 @@
    @Override
    public ResultVO addEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
        // 验证必填
        checkRequired(emergencySuppliesReqDTO);
        //验证枚举
        checkEnum(emergencySuppliesReqDTO);
        Date nowDate = new Date();
        // 新增应急物资
        EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo();
@@ -76,12 +126,47 @@
            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) {
        // 验证必填
        checkRequired(emergencySuppliesReqDTO);
        //验证枚举
        checkEnum(emergencySuppliesReqDTO);
        Date nowDate = new Date();
        // 查询是否存在
        EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(emergencySuppliesReqDTO.getId());
@@ -99,13 +184,13 @@
    }
    @Override
    public ResultVO batchDeleteEmergencySupplies(String ids) {
        if (StringUtils.isBlank(ids)) {
    public ResultVO batchDeleteEmergencySupplies( Long[]  ids) {
        if (ids == null ||  ids.length==0){
            throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NULL);
        } else {
            String[] idArr = ids.split(",");
            for (String id : idArr) {
                deleteEmergencySupplies(Long.valueOf(id));
        }else{
            for (Long id : ids){
                deleteEmergencySupplies(id);
            }
            return new ResultVO(ResultCodes.OK);
        }
@@ -119,6 +204,35 @@
        }else{
            Long SuppliesId = emergencySuppliesInfoDetailDO.getId();
            emergencySuppliesInfoService.deleteEmergencySupplies(SuppliesId);
            // 删除保养记录
            emergencySuppliesMaintainInfoService.deleteBySuppliesId(id);
            // 删除检查记录
            emergencySuppliesInspectInfoService.deleteBySuppliesId(id);
        }
    }
    /**
     * 验证必填项
     * @return
     */
    private void checkRequired(EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
        //名称
        if (StringUtils.isBlank(emergencySuppliesReqDTO.getName())) {
            throw new EmergencyException(EmergencyResultCodes.SUPPLIES_NAME_NOT_EXIST);
        }
    }
    /**
     * 验证枚举
     */
    private void checkEnum(EmergencySuppliesReqDTO emergencySuppliesReqDTO){
        if (EmergencySuppliesClassificationEnum.getByCode(emergencySuppliesReqDTO.getClassification())==null){
            throw new EmergencyException(EmergencyResultCodes.SUPPLIES_ENUM_CLASSIFICATION_NOT_EXIST);
        }
        if (EmergencySuppliesStatusEnum.getByCode(emergencySuppliesReqDTO.getStatus())==null){
            throw new EmergencyException(EmergencyResultCodes.SUPPLIES_ENUM_STATUS_NOT_EXIST);
        }
    }
}