From 87172c08a55e972ff850ab3542858d11d66505ca Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 01 Nov 2023 16:21:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
index 4d0afd5..4fa7ada 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
@@ -12,6 +12,7 @@
 import com.moral.api.mapper.ResponsibilityUnitMapper;
 import com.moral.api.mapper.SysDictDataMapper;
 import com.moral.api.mapper.SysDictTypeMapper;
+import com.moral.api.mapper.UserMapper;
 import com.moral.api.pojo.bean.BaseInvalidEntity;
 import com.moral.api.pojo.dto.allocation.AllocationUnitViewDto;
 import com.moral.api.pojo.enums.*;
@@ -748,6 +749,8 @@
                 integerList.add(AllocationApproveEnum.IN_APPROVAL.value);
                 integerList.add(AllocationApproveEnum.UNDER_RECTIFICATION.value);
                 integerList.add(AllocationApproveEnum.DRAFT.value);
+            }else if(type.equals(2)){
+                integerList.add(0);
             }
         }
         if(type.equals(3)){
@@ -832,6 +835,33 @@
     }
 
     @Override
+    public boolean authority(String allocationNum,Integer userId) {
+        //������������������
+        QxUser user = UserHelper.getCurrentUser();
+        List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId());
+        if(CollectionUtils.isNotEmpty(userList)){
+            return true;
+        }
+        if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0){
+            LambdaQueryWrapper<Allocation> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(Allocation::getAllocationNum,allocationNum);
+            wrapper.eq(Allocation::getIsDel,0);
+            wrapper.eq(Allocation::getIsInvalid,0);
+            Allocation allocation = allocationMapper.selectOne(wrapper);
+            if (allocation.getUnitId().equals(user.getUnitId())){
+                return true;
+            }
+            String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId());
+            if (code.length() > 6) {
+                return false;
+            } else {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
     public List<Integer>  unitResult() {
         QxUser user = UserHelper.getCurrentUser();
         Integer unitId = Objects.nonNull(user.getUnitId())?user.getUnitId():0;
@@ -853,15 +883,15 @@
         if(CollectionUtils.isNotEmpty(userList)){
             return 1;
         }
-        if(Objects.nonNull(user.getUnitId())){
+        if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0) {
             String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId());
-            if(code.length()>6){
+            if (code.length() > 6) {
                 return 0;
-            }else {
+            } else {
                 return 2;
             }
         }
-        return 1;
+        return 0;
     }
     private boolean escalationType(Integer id){
         boolean f = false;

--
Gitblit v1.8.0