zhangf
2024-05-08 0414ddb0b2b3a7199ae6181a770f97ac140dbd73
emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencySuppliesServiceImpl.java
@@ -1,8 +1,11 @@
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.co.ContextCacheUser;
import com.gkhy.safePlatform.commons.enums.E;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.commons.query.PageQuery;
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
@@ -10,9 +13,12 @@
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;
@@ -24,10 +30,8 @@
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;
import java.util.*;
import java.util.stream.Collectors;
@Service("emergencySuppliesService")
public class EmergencySuppliesServiceImpl implements EmergencySuppliesService {
@@ -95,6 +99,12 @@
    @Override
    public ResultVO addEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
        // 验证必填
        checkRequired(emergencySuppliesReqDTO);
        //验证枚举
        checkEnum(emergencySuppliesReqDTO);
        Date nowDate = new Date();
        // 新增应急物资
        EmergencySuppliesInfo emergencySuppliesInfo = new EmergencySuppliesInfo();
@@ -152,6 +162,11 @@
    @Override
    public ResultVO updateEmergencySupplies(Long uid, EmergencySuppliesReqDTO emergencySuppliesReqDTO) {
        // 验证必填
        checkRequired(emergencySuppliesReqDTO);
        //验证枚举
        checkEnum(emergencySuppliesReqDTO);
        Date nowDate = new Date();
        // 查询是否存在
        EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(emergencySuppliesReqDTO.getId());
@@ -181,6 +196,50 @@
        }
    }
    /**
     * 按照物资类型分类获取列表
     * @param currentUser
     * @return
     */
    @Override
    public List<EmergencySuppliesTypeRespDTO> emergencySuppliesList(ContextCacheUser currentUser) {
        List<EmergencySuppliesInfo> emergencySuppliesInfoList = emergencySuppliesInfoService.listByNoConditions();
        List<EmergencySuppliesTypeRespDTO> typeRespDTOList = new ArrayList<>();
        for (EmergencySuppliesClassificationEnum teamLevelEnum : EmergencySuppliesClassificationEnum.values()) {
            EmergencySuppliesTypeRespDTO typeRespDTO = new EmergencySuppliesTypeRespDTO();
            typeRespDTO.setMaterialType(teamLevelEnum.getCode());
            typeRespDTO.setMaterialTypeName(teamLevelEnum.getValue());
            List<EmergencySuppliesRespDTO> respDTOList = new ArrayList<>();
            List<EmergencySuppliesInfo> collect = emergencySuppliesInfoList.stream().filter(item -> item.getClassification().equals(teamLevelEnum.getCode())).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(collect)){
                for (EmergencySuppliesInfo info : collect) {
                    EmergencySuppliesRespDTO respDTO = new EmergencySuppliesRespDTO();
                    BeanUtils.copyProperties(info,respDTO);
                    respDTO.setMaterialType(info.getClassification());
                    respDTO.setMaterialTypeName(teamLevelEnum.getValue());
                    respDTOList.add(respDTO);
                }
            }
            typeRespDTO.setList(respDTOList);
            typeRespDTOList.add(typeRespDTO);
        }
        return typeRespDTOList;
    }
    @Override
    public List<EmergencySuppliesRespDTO> listCountByIds(ContextCacheUser currentUser, List<Long> ids) {
        if(null == ids || ids.size() == 0 ){
            throw new EmergencyException(EmergencyResultCodes.SUPPLIES_PARAM_NULL);
        }
        List<EmergencySuppliesInfo> emergencySuppliesInfos = emergencySuppliesInfoService.listCountByIds(ids);
        List<EmergencySuppliesRespDTO> respDTOList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(emergencySuppliesInfos)){
            respDTOList = BeanCopyUtils.copyBeanList(emergencySuppliesInfos,EmergencySuppliesRespDTO.class);
        }
        return respDTOList;
    }
    private void deleteEmergencySupplies(Long id) {
        //查询是否存在
        EmergencySuppliesInfoDetailDO emergencySuppliesInfoDetailDO = emergencySuppliesInfoService.selectEmergencySuppliesById(id);
@@ -197,4 +256,48 @@
        }
    }
    /**
     * 验证必填项
     * @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);
        }
    }
    public List<EmergencySuppliesInfoRespDTO> getEmergencySupplies(){
        List<EmergencySuppliesInfo> allEmergencySupplies = emergencySuppliesInfoService.getAllEmergencySupplies();
        List<EmergencySuppliesInfoRespDTO> collect = allEmergencySupplies.stream().map(es -> {
            EmergencySuppliesInfoRespDTO e = new EmergencySuppliesInfoRespDTO();
            BeanUtils.copyProperties(es,e);
            e.setClassificationName(EmergencySuppliesClassificationEnum.getByCode(es.getClassification()).getValue());
            ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(es.getDepartmentId());
            if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
                if (rpcResult.getData() != null) {
                    DepInfoRPCRespDTO dep = (DepInfoRPCRespDTO) rpcResult.getData();
                    e.setDepartmentName(dep.getDepName());
                }
            }
            return e;
        }).collect(Collectors.toList());
        return collect;
    }
}