Browse Source

之前记录跟着第一次被关联的建筑绑定

linjiawei 2 months ago
parent
commit
bc1bbe0856

+ 53 - 65
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java

@@ -1,32 +1,24 @@
 package com.zfjg.manage.service.impl.other;
 
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zfjg.common.core.web.page.TableInfo;
 import com.zfjg.common.security.utils.SecurityUtils;
 import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelate;
 import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
-import com.zfjg.manage.api.dto.Random.RandomUserLimitDTO;
 import com.zfjg.manage.api.dto.enforce.job.EnforceJobObjDTO;
 import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateAdd;
 import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateUpdate;
 import com.zfjg.manage.api.dto.other.EnforceObjChangeArchitectureDTO;
 import com.zfjg.manage.api.dto.other.EnforceObjCheckDTO;
-import com.zfjg.manage.api.factory.EnforceObjChangeHisFallbackFactory;
 import com.zfjg.manage.api.search.other.EnforceObjArchitectureRelateQuery;
-import com.zfjg.manage.api.vo.other.ArchitectureVO;
 import com.zfjg.manage.mapper.other.EnforceObjArchitectureRelateMapper;
 import com.zfjg.manage.mapper.sys.DeptMapper;
-import com.zfjg.manage.service.device.IDeviceService;
 import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateHisService;
 import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateService;
 import com.zfjg.system.api.domain.SysDept;
 import com.zfjg.system.api.domain.SysUser;
-import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,7 +27,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.rmi.ServerException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -52,9 +43,9 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
     private static final Logger log = LoggerFactory.getLogger(EnforceObjArchitectureRelateServiceImpl.class);
 
     @Autowired
-    private  IEnforceObjArchitectureRelateHisService enforceObjArchitectureRelateHisService;
+    private IEnforceObjArchitectureRelateHisService enforceObjArchitectureRelateHisService;
     @Autowired
-    private  EnforceObjArchitectureRelateMapper enforceObjArchitectureRelateMapper;
+    private EnforceObjArchitectureRelateMapper enforceObjArchitectureRelateMapper;
     @Autowired
     private DeptMapper deptMapper;
 
@@ -87,7 +78,7 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
         SysUser user = SecurityUtils.getLoginUser().getSysUser();
         EnforceObjArchitectureRelate dt = this.getOne(new LambdaQueryWrapper<EnforceObjArchitectureRelate>()
                 .eq(EnforceObjArchitectureRelate::getEnforceObjId, param.getEnforceObjId()));
-        if (Objects.equals(param.getArchitectureUuid(), dt.getArchitectureUuid()) && Objects.equals(param.getRelateType(),dt.getRelateType())) {
+        if (Objects.equals(param.getArchitectureUuid(), dt.getArchitectureUuid()) && Objects.equals(param.getRelateType(), dt.getRelateType())) {
             log.info("选择建筑与之前一样!");
             return true;
         }
@@ -118,20 +109,18 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
         List<EnforceObjCheckDTO> list = new ArrayList<>();
         String orgId = SecurityUtils.getOrgId();
         List<SysDept> sysDepts = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
-                .select(SysDept::getRegionCode,SysDept::getParentId)
+                .select(SysDept::getRegionCode, SysDept::getParentId)
                 .eq(SysDept::getEnforceOrgId, orgId));
-        if (CollectionUtils.isNotEmpty(sysDepts)) {
-            List<String> regionIds = sysDepts.stream().map(SysDept::getRegionCode).collect(Collectors.toList());
-            List<String> updatedRegionIds = regionIds.stream()
-                    .map(regionId -> regionId + "000000")
-                    .collect(Collectors.toList());
-            List<Long> parentIds = sysDepts.stream().map(SysDept::getParentId).collect(Collectors.toList());
-            //非建筑所属辖区或非总队无权限查看
-            if (!updatedRegionIds.contains(query.getRegionId()) && parentIds.contains(0L)) {
-                return list;
-            }
+        if (CollectionUtils.isEmpty(sysDepts)) return list;
+        List<String> regionIds = sysDepts.stream().map(SysDept::getRegionCode).collect(Collectors.toList());
+        List<String> updatedRegionIds = regionIds.stream()
+                .map(regionId -> regionId + "000000")
+                .collect(Collectors.toList());
+        List<Long> parentIds = sysDepts.stream().map(SysDept::getParentId).collect(Collectors.toList());
+        //非建筑所属辖区或非总队无权限查看
+        if (!updatedRegionIds.contains(query.getRegionId()) && parentIds.contains(0L)) {
+            return list;
         }
-
         List<String> enforceObjIds = enforceObjArchitectureRelateMapper.getEnforceObjIds(query);
         if (CollectionUtils.isNotEmpty(enforceObjIds)) {
             list = enforceObjArchitectureRelateMapper.getEnforceObjList(enforceObjIds);
@@ -140,62 +129,62 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
             if (CollectionUtils.isNotEmpty(enforceJobObjDTOS)) {
                 Map<String, List<EnforceJobObjDTO>> jobMap = enforceJobObjDTOS.stream().collect(Collectors.groupingBy(EnforceJobObjDTO::getEnforceObjId));
                 //单位变更记录列表
-                List<EnforceObjChangeArchitectureDTO> hisList = enforceObjArchitectureRelateMapper.getEnforceObjChangeArchitectureDTOList(enforceObjIds,query.getArchitectureUuid());
+                List<EnforceObjChangeArchitectureDTO> hisList = enforceObjArchitectureRelateMapper.getEnforceObjChangeArchitectureDTOList(enforceObjIds, query.getArchitectureUuid());
                 Map<String, List<EnforceObjChangeArchitectureDTO>> hisMap = hisList.stream().collect(Collectors.groupingBy(EnforceObjChangeArchitectureDTO::getEnforceObjId));
                 List<String> chekckIdsList = new ArrayList<>();
-                list.forEach(e-> {
-                            String enforceObjId = e.getEnforceObjId();
-                            List<EnforceJobObjDTO> jobList = jobMap.get(enforceObjId);
-                            if (CollectionUtils.isEmpty(jobList)) {//不存在任务记录
-                                e.setTimes(0);
-                            } else {
-                                List<EnforceObjChangeArchitectureDTO> changeList = hisMap.get(enforceObjId);
-                                if (CollectionUtils.isNotEmpty(changeList)) {
-                                    //之前记录跟着第一次被关联的建筑绑定
-                                    EnforceObjChangeArchitectureDTO changeDto = changeList.get(0);
-                                if (StringUtils.isNotEmpty(changeDto.getBeforeArchitectureUuid())) {
-                                    jobList.forEach(job->{
-                                        if (changeDto.getCreateTime().compareTo(job.getCreateTime()) > 0) {
-                                            chekckIdsList.add(String.valueOf(job.getEnforceJobId()));
+                list.forEach(e -> {
+                    String enforceObjId = e.getEnforceObjId();
+                    List<EnforceJobObjDTO> jobList = jobMap.get(enforceObjId);
+                    if (CollectionUtils.isEmpty(jobList)) {//不存在任务记录
+                        e.setTimes(0);
+                    } else {
+                        List<EnforceObjChangeArchitectureDTO> changeList = hisMap.get(enforceObjId);
+                        if (CollectionUtils.isNotEmpty(changeList)) {
+                            //之前记录跟着第一次被关联的建筑绑定
+                            EnforceObjChangeArchitectureDTO changeDto = changeList.get(0);
+                            if (StringUtils.isEmpty(changeDto.getBeforeArchitectureUuid())) {
+                                jobList.forEach(job -> {
+                                    if (changeDto.getCreateTime().compareTo(job.getCreateTime()) > 0) {
+                                        chekckIdsList.add(String.valueOf(job.getEnforceJobId()));
+                                    }
+                                });
+                            }
+                            int changeListSize = changeList.size();
+                            if (changeListSize % 2 == 0) {//偶数
+                                for (int i = 0; i < changeListSize; i++) {
+                                    if (i % 2 == 0) {
+                                        for (int j = 0; j < jobList.size(); j++) {
+                                            Date jobTime = jobList.get(j).getCreateTime();
+                                            if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0 && changeList.get(i + 1).getCreateTime().compareTo(jobTime) > 0) {
+                                                chekckIdsList.add(String.valueOf(jobList.get(j).getEnforceJobId()));
+                                            }
                                         }
-                                    });
+                                    }
                                 }
-                                int changeListSize = changeList.size();
-                                if (changeListSize % 2 == 0) {//偶数
-                                    for (int i = 0; i < changeListSize; i++) {
-                                        if (i % 2 == 0) {
-                                            for (int j = 0; j < jobList.size(); j++) {
-                                                Date jobTime = jobList.get(j).getCreateTime();
-                                                if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0 && changeList.get(i + 1).getCreateTime().compareTo(jobTime) > 0) {
-                                                    chekckIdsList.add(String.valueOf(jobList.get(j).getEnforceJobId()));
-                                                }
+                            } else {//奇数
+                                for (int i = 0; i < changeListSize; i++) {
+                                    if (i == changeListSize - 1) {//最后一个
+                                        for (int j = 0; j < jobList.size(); j++) {
+                                            Date jobTime = jobList.get(j).getCreateTime();
+                                            if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0) {
+                                                chekckIdsList.add(String.valueOf(jobList.get(j).getEnforceJobId()));
                                             }
                                         }
-                                    }
-                                } else {//奇数
-                                    for (int i = 0; i < changeListSize; i++) {
-                                        if (i == changeListSize - 1) {//最后一个
+                                    } else {
+                                        if (i % 2 == 0) {
                                             for (int j = 0; j < jobList.size(); j++) {
                                                 Date jobTime = jobList.get(j).getCreateTime();
-                                                if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0) {
+                                                if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0 && changeList.get(i + 1).getCreateTime().compareTo(jobTime) > 0) {
                                                     chekckIdsList.add(String.valueOf(jobList.get(j).getEnforceJobId()));
                                                 }
                                             }
-                                        } else {
-                                            if (i % 2 == 0) {
-                                                for (int j = 0; j < jobList.size(); j++) {
-                                                    Date jobTime = jobList.get(j).getCreateTime();
-                                                    if (jobTime.compareTo(changeList.get(i).getCreateTime()) > 0 && changeList.get(i + 1).getCreateTime().compareTo(jobTime) > 0) {
-                                                        chekckIdsList.add(String.valueOf(jobList.get(j).getEnforceJobId()));
-                                                    }
-                                                }
-                                            }
                                         }
                                     }
                                 }
-
                             }
+
                         }
+                    }
                     e.setTimes(chekckIdsList.size());
                     e.setCheckIds(chekckIdsList.stream().collect(Collectors.joining(",")));
                 });
@@ -207,5 +196,4 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
     }
 
 
-
 }