songhuangfeng123
2022-09-02 fabd08d87d00bfdf1aacf473fd905fdd3c903ed3
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/EquipmentInfoServiceImpl.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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;
@@ -14,16 +16,16 @@
import com.gkhy.safePlatform.equipment.model.dto.req.*;
import com.gkhy.safePlatform.equipment.model.dto.resp.EquipmentInfoDto;
import com.gkhy.safePlatform.equipment.repository.EquipmentInfoRepository;
import com.gkhy.safePlatform.equipment.repository.EquipmentTypeMngRepository;
import com.gkhy.safePlatform.equipment.service.*;
import com.gkhy.safePlatform.equipment.utils.QueryHelpPlus;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -52,6 +54,13 @@
    @Autowired
    private EquipmentCheckStandardDetailService equipmentCheckStandardDetailService;
    @DubboReference(check = false)
    private AccountDepartmentService accountDepartmentService;
    @Autowired
    private EquipmentTypeMngRepository equipmentTypeMngRepository;
   @Override
    public ResultVO queryAll(PageQuery<EquipmentInfoQueryCriteria> pageQuery) {
        Long pageIndex = pageQuery.getPageIndex();
@@ -75,8 +84,8 @@
            EquipmentTestDetailQueryCriteria criteria1 = new EquipmentTestDetailQueryCriteria();
            criteria1.setEquipmentId(f.getId());
            criteria1.setInfoTpe(pageQuery.getSearchParams().getInfoType());
            List<EquipmentTestDetail> checkDetailList = equipmentTestDetailService.queryAll(criteria1);
            f.setCheckDetailList(checkDetailList);
            List<EquipmentTestDetail> testDetailList = equipmentTestDetailService.queryAll(criteria1);
            f.setTestDetailList(testDetailList);
            //设备检查 TODO
@@ -87,6 +96,29 @@
            criteria2.setInfoTpe(pageQuery.getSearchParams().getInfoType());
            List<EquipmentRepairDetail> repairDetailList = equipmentRepairDetailService.queryAll(criteria2);
            f.setRepaireDetailList(repairDetailList);
            // --------------------------- 获取部门信息-----------------------
            //收集所用到的部门ID
            Set<Long> collectDepIdSet = new HashSet();
            collectDepIdSet.add(f.getDepartmentId());
            collectDepIdSet.add(f.getLeadingDepartmentId());
            collectDepIdSet.add(f.getLeadingPersonDepartmentId());
            takecareDetailList.forEach(info->{collectDepIdSet.add(info.getLeadingPersonDepartmentId());});
            testDetailList.forEach(info->{collectDepIdSet.add(info.getTestPersonDepartmentId());});
            repairDetailList.forEach(info->{collectDepIdSet.add(info.getRepairPersonDepartmentId());});
            //获取部门名集合
            Map<Long,String> depNameMap = getDepName(collectDepIdSet);
            //set
            f.setDepartmentName(depNameMap.get(f.getDepartmentId()));
            f.setLeadingDepartmentName(depNameMap.get(f.getLeadingDepartmentId()));
            f.setLeadingPersonDepartmentName(depNameMap.get(f.getLeadingPersonDepartmentId()));
            takecareDetailList.forEach(info->{info.setLeadingPersonDepartmentName(depNameMap.get(info.getLeadingPersonDepartmentId()));});
            testDetailList.forEach(info->{info.setTestPersonDepartmentName(depNameMap.get(info.getTestPersonDepartmentId()));});
            repairDetailList.forEach(info->{info.setRepairPersonDepartmentName(depNameMap.get(info.getRepairPersonDepartmentId()));});
        });
        return new SearchResultVO<>(
                true,
@@ -110,6 +142,7 @@
        if(equipmentInfo == null){
            return null;
        }
        EquipmentInfoDto infoDto = BeanCopyUtils.copyBean(equipmentInfo, EquipmentInfoDto.class);
        //设备保养
@@ -123,8 +156,8 @@
        EquipmentTestDetailQueryCriteria criteria1 = new EquipmentTestDetailQueryCriteria();
        criteria1.setEquipmentId(infoDto.getId());
        criteria1.setInfoTpe(infoDto.getInfoType());
        List<EquipmentTestDetail> checkDetailList = equipmentTestDetailService.queryAll(criteria1);
        infoDto.setCheckDetailList(checkDetailList);
        List<EquipmentTestDetail> testDetailList = equipmentTestDetailService.queryAll(criteria1);
        infoDto.setTestDetailList(testDetailList);
        //设备检查 TODO
@@ -150,6 +183,32 @@
        List<EquipmentTakecareStardardDetail> takecareStardardDetailList = equipmentTakecareStardardDetailService.queryAll(criteria4);
        infoDto.setTakecareStardardeDetailList(takecareStardardDetailList);
        // --------------------------- 获取部门信息-----------------------
        //收集所用到的部门ID
        Set<Long> collectDepIdSet = new HashSet();
        collectDepIdSet.add(infoDto.getDepartmentId());
        collectDepIdSet.add(infoDto.getLeadingDepartmentId());
        collectDepIdSet.add(infoDto.getLeadingPersonDepartmentId());
        takecareDetailList.forEach(info->{collectDepIdSet.add(info.getLeadingPersonDepartmentId());});
        testDetailList.forEach(info->{collectDepIdSet.add(info.getTestPersonDepartmentId());});
        repairDetailList.forEach(info->{collectDepIdSet.add(info.getRepairPersonDepartmentId());});
        //获取部门名集合
        Map<Long,String> depNameMap = getDepName(collectDepIdSet);
        //set
        infoDto.setDepartmentName(depNameMap.get(infoDto.getDepartmentId()));
        infoDto.setLeadingDepartmentName(depNameMap.get(infoDto.getLeadingDepartmentId()));
        infoDto.setLeadingPersonDepartmentName(depNameMap.get(infoDto.getLeadingPersonDepartmentId()));
        takecareDetailList.forEach(info->{info.setLeadingPersonDepartmentName(depNameMap.get(info.getLeadingPersonDepartmentId()));});
        testDetailList.forEach(info->{info.setTestPersonDepartmentName(depNameMap.get(info.getTestPersonDepartmentId()));});
        repairDetailList.forEach(info->{info.setRepairPersonDepartmentName(depNameMap.get(info.getRepairPersonDepartmentId()));});
        EquipmentTypeMng typeMng = equipmentTypeMngRepository.selectOne(new QueryWrapper<EquipmentTypeMng>().eq("id",infoDto.getEquipmentTypeId()));
        if(typeMng != null){
            infoDto.setEquipmentTypeName(typeMng.getTypeName());
        }
        return infoDto;
    }
@@ -174,7 +233,15 @@
        if(StringUtils.hasText(infoDto.getDelTakecareDetails())){
            List<Long> idList = Arrays.stream(infoDto.getDelTakecareDetails().split(",")).map(s-> Long.parseLong(s.trim()))
                    .collect(Collectors.toList());
            equipmentTakecareDetailService.removeByIds(idList);
            List<EquipmentTakecareDetail> delList = new ArrayList<>();
            idList.forEach(f->{
                EquipmentTakecareDetail info = new EquipmentTakecareDetail();
                info.setDelFlag(1);
                info.setId(f);
                delList.add(info);
            });
            equipmentTakecareDetailService.updateBatchById(delList);
        }
@@ -189,7 +256,14 @@
        if(StringUtils.hasText(infoDto.getDelTestDetails())){
            List<Long> idList = Arrays.stream(infoDto.getDelTestDetails().split(",")).map(s-> Long.parseLong(s.trim()))
                    .collect(Collectors.toList());
            equipmentTestDetailService.removeByIds(idList);
            List<EquipmentTestDetail> delList = new ArrayList<>();
            idList.forEach(f->{
                EquipmentTestDetail info = new EquipmentTestDetail();
                info.setDelFlag(1);
                info.setId(f);
                delList.add(info);
            });
            equipmentTestDetailService.updateBatchById(delList);
        }
        //设备检查 TODO
@@ -205,7 +279,14 @@
        if(StringUtils.hasText(infoDto.getDelRepaireDetails())){
            List<Long> idList = Arrays.stream(infoDto.getDelRepaireDetails().split(",")).map(s-> Long.parseLong(s.trim()))
                    .collect(Collectors.toList());
            equipmentRepairDetailService.removeByIds(idList);
            List<EquipmentRepairDetail> delList = new ArrayList<>();
            idList.forEach(f->{
                EquipmentRepairDetail info = new EquipmentRepairDetail();
                info.setDelFlag(1);
                info.setId(f);
                delList.add(info);
            });
            equipmentRepairDetailService.updateBatchById(delList);
        }
        //保存检查标准
@@ -218,7 +299,14 @@
        if(StringUtils.hasText(infoDto.getDelCheckStandardeDetails())){
            List<Long> idList = Arrays.stream(infoDto.getDelCheckStandardeDetails().split(",")).map(s-> Long.parseLong(s.trim()))
                    .collect(Collectors.toList());
            equipmentCheckStandardDetailService.removeByIds(idList);
            List<EquipmentCheckStandardDetail> delList = new ArrayList<>();
            idList.forEach(f->{
                EquipmentCheckStandardDetail info = new EquipmentCheckStandardDetail();
                info.setDelFlag(1);
                info.setId(f);
                delList.add(info);
            });
            equipmentCheckStandardDetailService.updateBatchById(delList);
        }
        //保存保养标准
@@ -231,7 +319,14 @@
        if(StringUtils.hasText(infoDto.getDelTakecareStardardeDetails())){
            List<Long> idList = Arrays.stream(infoDto.getDelTakecareStardardeDetails().split(",")).map(s-> Long.parseLong(s.trim()))
                    .collect(Collectors.toList());
            equipmentTakecareStardardDetailService.removeByIds(idList);
            List<EquipmentTakecareStardardDetail> delList = new ArrayList<>();
            idList.forEach(f->{
                EquipmentTakecareStardardDetail info = new EquipmentTakecareStardardDetail();
                info.setDelFlag(1);
                info.setId(f);
                delList.add(info);
            });
            equipmentTakecareStardardDetailService.updateBatchById(delList);
        }
@@ -243,6 +338,33 @@
                .select("stop_status as stopStatus,count(0) as count")
                .groupBy("stop_status");
        return this.listMaps(wrapper);
        List<Map<String, Object>> list = this.listMaps(wrapper);
        Map<String, Object> map = new HashMap<>();
        map.put("-1",equipmentInfoRepository.countOverTime());//超时未保养
        return list;
    }
}
    @Override
    public Map<Long,String> getDepName(Set<Long> collectDepIdSet) {
        Map<Long, String> depPool = new HashMap<>();
        collectDepIdSet.forEach(depId ->{
            // 设置部门名称
            if (!depPool.containsKey(depId)) {
                try {
                    ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(depId);
                    if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) {
                        if (rpcResult.getData() != null) {
                            DepInfoRPCRespDTO dep = (DepInfoRPCRespDTO) rpcResult.getData();
                            depPool.put(dep.getDepId(), dep.getDepName());
                        }
                    }
                } catch (Exception e) {
                    log.error("exception",e);
                }
            }
        });
        return depPool;
    }
}