From f546d59f783b3a54c2767b5f9c2e23793d992646 Mon Sep 17 00:00:00 2001
From: swb <jpy123456>
Date: Sat, 14 Sep 2024 14:22:10 +0800
Subject: [PATCH] fix:立行立改修改提交

---
 screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java |  181 ++++++++++++++++++++++++++++-----------------
 1 files changed, 113 insertions(+), 68 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 6a5a6d9..cbfde2a 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
@@ -19,9 +19,11 @@
 import com.moral.api.pojo.bean.BaseInvalidEntity;
 import com.moral.api.pojo.dto.allocation.AllocationUnitViewDto;
 import com.moral.api.pojo.enums.*;
+import com.moral.api.pojo.ext.allocation.AllocationExcelExt;
 import com.moral.api.pojo.ext.allocation.AllocationExt;
 import com.moral.api.pojo.ext.allocation.AllocationListExt;
 import com.moral.api.pojo.ext.allocation.AllocationPageExt;
+import com.moral.api.pojo.ext.responsibility.ResponsibilityUnitExt;
 import com.moral.api.pojo.query.allocation.*;
 import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond;
 import com.moral.api.pojo.query.app.AppAllocationFileCond;
@@ -31,6 +33,7 @@
 import com.moral.api.pojo.vo.app.AppAuthority;
 import com.moral.api.pojo.vo.user.QxUser;
 import com.moral.api.service.*;
+import com.moral.api.utils.BeanConverts;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.util.DateUtils;
@@ -208,9 +211,13 @@
     public Map<String, Object> selectUnitView(Map<String, Object> map) {
         QueryWrapper<Allocation> wrapper = new QueryWrapper<>();
         //������������������
+
         List<Integer> list = this.unitResult();
         if (!ObjectUtils.isEmpty(map.get("unitId"))){
-            wrapper.in("unit_id",map.get("unitId").toString());
+            String unitId = map.get("unitId").toString();
+//            unitId.split(",");
+            List<String> list1 = Arrays.asList(unitId.split(","));
+            wrapper.in("unit_id",list1);
         }else {
             if (!ObjectUtils.isEmpty(list)){
                 Integer integer = list.get(0);
@@ -222,51 +229,30 @@
             }
         }
 
-//        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
-//        Object unitId = userInfo.get("unitId");
-//        Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
-//        Integer orgId = (Integer) orgInfo.get("id");
-//        if (!ObjectUtils.isEmpty(map.get("unitId"))){
-//            wrapper.in("unit_id",map.get("unitId").toString());
-//        }else {
-//            if (orgId!=24){
-//                if (ObjectUtils.isEmpty(unitId)){
-//                    return null;
-//                }
-//                ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(Integer.parseInt(unitId.toString()));
-//                Integer areaCode = responsibilityUnit1.getAreaCode();
-//                List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectUnit(areaCode);
-//                if (ObjectUtils.isEmpty(responsibilityUnits)){
-//                    List<ResponsibilityUnit> responsibilityUnits1 = responsibilityUnitService.selectAreaUnit(areaCode);
-//                    Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits1.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
-//                    List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList());
-//                    wrapper.in("unit_id",collect1);
-//                }else {
-//                    Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
-//                    List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList());
-//                    wrapper.in("unit_id",collect1);
-//                }
-//            }
-//        }
+
 
         HashMap<String, Object> rsMap = new HashMap<>();
         ArrayList<Map<String, Object>> polluteArrayList = new ArrayList<>();
         ArrayList<Map<String, Object>> escalationTypeList = new ArrayList<>();
         ArrayList<AllocationUnitViewDto> allocationUnitViewDtos = new ArrayList<>();
 
-        Object number1 = map.get("number");
+        String number1 = map.get("number").toString();
         String startTime=null;
         String endTime=null;
         if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("endTime"))){
              startTime = map.get("startTime").toString();
-             endTime = map.get("endTime").toString();
+//             endTime = map.get("endTime").toString();
+             endTime = DateUtils.getDateOfDay(map.get("endTime").toString(), 1, DateUtils.yyyy_MM_dd_EN);
 
         }
-        if (!ObjectUtils.isEmpty(number1)){
+        if (!number1.equals("0")){
             String s = "-"+number1;
             //������������������
-            endTime = DateUtils.getCurDateTime();
-            startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+//            endTime = DateUtils.getCurDateTime();
+//            endTime = DateUtils.getCurDate();
+            endTime = DateUtils.getDateOfDay(DateUtils.getCurDate(), 1, DateUtils.yyyy_MM_dd_EN);
+            startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_EN);
+
         }
 
         wrapper.between("escalation_time",startTime,endTime);
@@ -332,15 +318,16 @@
             //������
             int deduction=0;
             int number=0;
+
             for (Allocation allocation : allocations1) {
                 String state = allocation.getState()+"";
                 Integer changeType = allocation.getChangeType();
                 String value = ChangeEnum.DEADLINE.value.toString();
                 if (value.equals(changeType+"")){
-                    Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay());
+                    Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()+1);
                     Date date = new Date();
                     boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay);
-                    if (timeBefor && !state.equals("40") && !state.equals("50") && !state.equals("9")){
+                    if (timeBefor && !state.equals("40") && !state.equals("50") && !state.equals("9")&&!state.equals("30")){
                         //������������
                         overdue++;
                     }
@@ -394,7 +381,11 @@
         //������������������
         List<Integer> list = this.unitResult();
         if (!ObjectUtils.isEmpty(map.get("unitId"))){
-            wrapper.in("unit_id",map.get("unitId").toString());
+            String unitId = map.get("unitId").toString();
+//            unitId.split(",");
+            List<String> list1 = Arrays.asList(unitId.split(","));
+            wrapper.in("unit_id",list1);
+//            wrapper.in("unit_id",map.get("unitId").toString());
         }else {
             if (!ObjectUtils.isEmpty(list)){
                 Integer integer = list.get(0);
@@ -405,29 +396,7 @@
                 }
             }
         }
-//        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
-//        Object unitId = userInfo.get("unitId");
-//        Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
-//        Integer orgId = (Integer) orgInfo.get("id");
-//
-//        if (ObjectUtils.isEmpty(unitId)){
-//            return null;
-//        }
-//        if (orgId!=24){
-//            ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(Integer.parseInt(unitId.toString()));
-//            Integer areaCode = responsibilityUnit1.getAreaCode();
-//            List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectUnit(areaCode);
-//            if (ObjectUtils.isEmpty(responsibilityUnits)){
-//                List<ResponsibilityUnit> responsibilityUnits1 = responsibilityUnitService.selectAreaUnit(areaCode);
-//                Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits1.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
-//                List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList());
-//                wrapper.in("unit_id",collect1);
-//            }else {
-//                Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
-//                List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList());
-//                wrapper.in("unit_id",collect1);
-//            }
-//        }
+
 
         ArrayList<Map<String, Object>> rsMap = new ArrayList<>();
         Object number1 = map.get("number");
@@ -435,16 +404,16 @@
         String endTime=null;
         if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("endTime"))){
             startTime = map.get("startTime").toString();
-            endTime = map.get("endTime").toString();
+            endTime = DateUtils.getDateOfDay(map.get("endTime").toString(), 1, DateUtils.yyyy_MM_dd_EN);
 
         }
-        if (!ObjectUtils.isEmpty(number1)){
+        if (Integer.parseInt(number1.toString())>0){
             String s = "-"+number1;
             //������������������
-            endTime = DateUtils.getCurDateTime();
-            startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
-
+            endTime = DateUtils.getDateOfDay(DateUtils.getCurDate(), 1, DateUtils.yyyy_MM_dd_EN);
+            startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_EN);
         }
+
         wrapper.between("escalation_time",startTime,endTime);
         wrapper.eq("is_del",0);
         wrapper.eq("is_invalid",0);
@@ -452,6 +421,15 @@
         if (ObjectUtils.isEmpty(allocations)){
             return null;
         }
+        int totals=0;
+        int sum1=0;
+        int sum2=0;
+        int sum3=0;
+        int sum4=0;
+        int deductions=0;
+        int score=0;
+        int sum5=0;
+
         //������������������������
         Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
         Set<Integer> unitList = unitMap.keySet();
@@ -467,6 +445,15 @@
             //������
             int deduction=0;
             int number=0;
+            Map<Integer, List<Allocation>> collect = allocations1.stream().collect(Collectors.groupingBy(o -> o.getState()));
+            //������
+            List<Allocation> allocations2 = collect.get(20);
+            //������
+            List<Allocation> allocations3 = collect.get(30);
+            //������
+            List<Allocation> allocations4 = collect.get(40);
+            //������
+            List<Allocation> allocations5 = collect.get(50);
             for (Allocation allocation : allocations1) {
                 String state = allocation.getState()+"";
                 if (state.equals("40")||state.equals("50")){
@@ -481,21 +468,50 @@
             int total = allocations1.size();
             String rate = (number * 100 /total)+"%";
 
+            int i1 = ObjectUtils.isEmpty(allocations2) ? 0 : allocations2.size();
+            int i2 = ObjectUtils.isEmpty(allocations3) ? 0 : allocations3.size();
+            int i3 = ObjectUtils.isEmpty(allocations4) ? 0 : allocations4.size();
+            int i4 = ObjectUtils.isEmpty(allocations5) ? 0 : allocations5.size();
             map1.put("������������",areaByCode.getAreaName());
             map1.put("���������",total);
-            map1.put("���������",number);
-            map1.put("������������",total-number);
+            map1.put("������",i1);
+            map1.put("������",i2);
+            map1.put("������",i3);
+            map1.put("������",i4);
+//            map1.put("���������",number);
+//            map1.put("������������",total-number);
             map1.put("���������",rate);
             map1.put("������",deduction);
             map1.put("������",marks);
             map1.put("���������",marks+deduction);
             rsMap.add(map1);
+            //������
+            totals = totals + total;
+            sum1 = sum1 + i1;
+            sum2 = sum2 + i2;
+            sum3 = sum3 + i3;
+            sum4 = sum4 + i4;
+            deductions = deductions + deduction;
+            score = score + marks;
+            sum5 = sum5 + marks+deduction;
         }
+        HashMap<String, Object> map1 = new HashMap<>();
+        map1.put("������������","������");
+        map1.put("���������",totals);
+        map1.put("������",sum1);
+        map1.put("������",sum2);
+        map1.put("������",sum3);
+        map1.put("������",sum4);
+        map1.put("������",deductions);
+        map1.put("������",score);
+        map1.put("���������",sum5);
+        rsMap.add(map1);
         return rsMap;
     }
 
     @Override
     public Page<AllocationPageExt> extPage(AllocationPageCond allocationPageCond) {
+        List<Integer> unitAuthority = this.getUnitAuthority(SysDictTypeEnum.SYS_AMEND.value);
         List<Integer> unitList = unitResult();
         Integer codeId =  unitAreaCode();
         allocationPageCond.setUnitList(unitList);
@@ -507,6 +523,7 @@
                 }else {
                     it.setIsApprove(0);
                 }
+                it.setIsCode(ObjectUtils.isEmpty(unitAuthority)?"2":"1");
             });
         }
         return page;
@@ -979,6 +996,19 @@
         return allocationLogs;
     }
 
+    /**
+     * ������������������������������
+     *
+     * @param code
+     * @return
+     */
+    @Override
+    public List<Integer> getUnitAuthority(String code) {
+        QxUser user = UserHelper.getCurrentUser();
+        List<Integer> userList = responsibilityUnitMapper.selectCodeList(code,user.getUserId());
+        return userList;
+    }
+
     @Override
     public List<Integer>  unitResult() {
         QxUser user = UserHelper.getCurrentUser();
@@ -996,16 +1026,19 @@
 
     @Override
     public Integer unitAreaCode() {
+        // 1 ��������� 0������ 2 ������������
         QxUser user = UserHelper.getCurrentUser();
         List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId());
         if(CollectionUtils.isNotEmpty(userList)){
             return 1;
         }
         if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0) {
-            String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId());
-            if (code.length() > 6) {
+            List<ResponsibilityUnitExt> codeList = responsibilityUnitMapper.selectResponsibilityUnitList(user.getUnitId());
+            if ( codeList.get(0).getAreaCode().length() > 6) {
                 return 0;
-            } else {
+            } else if(codeList.get(0).getAreaCode().length() == 6 && codeList.get(0).getParentCode().equals("320900")) {
+                return 0;
+            }else {
                 return 2;
             }
         }
@@ -1026,4 +1059,16 @@
           return   responsibilityUnit;
     }
 
+    @Override
+    public List<AllocationExcelExt> listExcel(List<Integer> id) {
+        List<AllocationExcelExt> list = new ArrayList<>();
+        for(Integer i : id){
+            AllocationExt allocationExt = oneAllocation(i);
+            AllocationExcelExt allocationExcelExt = BeanConverts.convert(allocationExt,AllocationExcelExt.class);
+            allocationExcelExt.setFileBaseList(fileTableService.list(i,FileTableEnum.ALLOCATION_FOUNDATION.value,FileType.PICTURE.getValue()));
+            allocationExcelExt.setFileChangeList(fileTableService.list(i,FileTableEnum.ALLOCATION_RECTIFICATION.value,FileType.PICTURE.getValue()));
+            list.add(allocationExcelExt);
+        }
+        return list;
+    }
 }

--
Gitblit v1.8.0