5 Commits 656c866511 ... 78ef8cde5f

Auteur SHA1 Bericht Datum
  huhu 78ef8cde5f Merge branch 'dev' 2 maanden geleden
  linjiawei adc3fd4c04 增加判断登录人是否有查看检查记录的权限接口 2 maanden geleden
  linjiawei ed7d5d9660 之前记录跟着第一次被关联的建筑绑定 2 maanden geleden
  linjiawei bc1bbe0856 之前记录跟着第一次被关联的建筑绑定 2 maanden geleden
  linjiawei 0666a58378 之前记录跟着第一次被关联的建筑绑定 2 maanden geleden

+ 6 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateController.java

@@ -69,6 +69,12 @@ public class EnforceObjArchitectureRelateController extends BaseController {
         return R.fail("查询不到关联的建筑信息");
     }
 
+    @ApiOperation(value="判断登录人是否有查看检查记录的权限")
+    @GetMapping("/enforceObjArchitectureRelate/checkRecordAuth/{regionId}")
+    public R<Boolean> checkRecordAuth(@PathVariable String regionId) {
+        return R.ok(enforceObjArchitectureRelateService.checkRecordAuth(regionId));
+    }
+
     @ApiOperation(value="查询高楼码关联的单位记录列表")
     @GetMapping("/enforceObjArchitectureRelate/list")
     public R<List<EnforceObjCheckDTO>> getEnforceObjList(EnforceObjArchitectureRelateQuery query) {

+ 64 - 55
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java

@@ -1,30 +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.Wrappers;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 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.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;
@@ -33,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;
 
@@ -50,11 +43,11 @@ 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;
+    private DeptMapper deptMapper;
 
     @Override
     public boolean insertEnforceObjArchitectureRelate(EnforceObjArchitectureRelateAdd add) {
@@ -85,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;
         }
@@ -114,17 +107,6 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
     @Override
     public List<EnforceObjCheckDTO> getEnforceObjList(EnforceObjArchitectureRelateQuery query) {
         List<EnforceObjCheckDTO> list = new ArrayList<>();
-        String orgId = SecurityUtils.getOrgId();
-        SysDept userLoginDept = Optional.ofNullable(deptMapper.selectOne(Wrappers.<SysDept>lambdaQuery()
-                .eq(SysDept::getEnforceOrgId, orgId)
-        )).orElse(new SysDept());
-        if (StrUtil.isBlank(userLoginDept.getRegionCode())) return list;
-
-        //非建筑所属辖区或非总队无权限查看
-        if (!Objects.equals(query.getRegionId(), userLoginDept.getRegionCode() + "000000") && !Objects.equals(0L, userLoginDept.getParentId())) {
-            return list;
-        }
-
         List<String> enforceObjIds = enforceObjArchitectureRelateMapper.getEnforceObjIds(query);
         if (CollectionUtils.isNotEmpty(enforceObjIds)) {
             list = enforceObjArchitectureRelateMapper.getEnforceObjList(enforceObjIds);
@@ -133,53 +115,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)) {
-                                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()));
-                                                }
+                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()));
                                             }
                                         }
                                     }
-                                } else {//奇数
-                                    for (int i = 0; i < changeListSize; i++) {
-                                        if (i == changeListSize - 1) {//最后一个
+                                }
+                            } 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 {
+                                        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(",")));
                 });
@@ -190,6 +181,24 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
         return list;
     }
 
+    @Override
+    public Boolean checkRecordAuth(String regionId) {
+        String orgId = SecurityUtils.getOrgId();
+        List<SysDept> sysDepts = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                .select(SysDept::getRegionCode, SysDept::getParentId)
+                .eq(SysDept::getEnforceOrgId, orgId));
+        if (CollectionUtils.isEmpty(sysDepts)) return false;
+        List<String> sysDeptRegionIds = sysDepts.stream().map(SysDept::getRegionCode).collect(Collectors.toList());
+        List<String> updatedRegionIds = sysDeptRegionIds.stream()
+                .map(sysDeptRegionId -> sysDeptRegionId + "000000")
+                .collect(Collectors.toList());
+        List<Long> parentIds = sysDepts.stream().map(SysDept::getParentId).collect(Collectors.toList());
+        //非建筑所属辖区或非总队无权限查看
+        if (!updatedRegionIds.contains(regionId) && !parentIds.contains(0L)) {
+            return false;
+        }
+        return true;
+    }
 
 
 }

+ 1 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IEnforceObjArchitectureRelateService.java

@@ -21,5 +21,6 @@ public interface IEnforceObjArchitectureRelateService extends IService<EnforceOb
     boolean insertEnforceObjArchitectureRelate(EnforceObjArchitectureRelateAdd add);
     boolean updateEnforceObjArchitectureRelate(EnforceObjArchitectureRelateUpdate param);
     List<EnforceObjCheckDTO> getEnforceObjList(EnforceObjArchitectureRelateQuery query);
+    Boolean checkRecordAuth(String regionId);
 
 }