From 08a9e6a0891cc01f34344eff4a3b3bad4e6e84ef Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 26 Sep 2023 15:59:12 +0800
Subject: [PATCH] chore:测试提交

---
 screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java |  193 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 192 insertions(+), 1 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 e61cd98..ed0239b 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
@@ -24,18 +24,37 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 import java.util.*;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.entity.Allocation;
+import com.moral.api.entity.ApproveTable;
+import com.moral.api.entity.ResponsibilityUnit;
+import com.moral.api.entity.SysArea;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
 import com.moral.api.mapper.AllocationMapper;
 import com.moral.api.mapper.ResponsibilityUnitMapper;
 import com.moral.api.mapper.SysDictDataMapper;
 import com.moral.api.mapper.SysDictTypeMapper;
 import com.moral.api.pojo.dto.allocation.AllocationUnitDto;
+import com.moral.api.pojo.dto.allocation.AllocationUnitViewDto;
+import com.moral.api.pojo.enums.AllocationApproveEnum;
+import com.moral.api.pojo.vo.file.FileVo;
 import com.moral.api.service.AllocationService;
 import com.moral.api.service.FileTableService;
+import com.moral.api.service.SysAreaService;
+import com.moral.api.service.SysDictDataService;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.util.DateUtils;
@@ -57,6 +76,7 @@
     @Autowired
     private AllocationMapper allocationMapper;
     @Autowired
+    private  SysAreaService sysAreaService;
     private ApproveTableService approveTableService;
     @Autowired
     private FileTableService fileTableService;
@@ -119,7 +139,7 @@
              i = Integer.parseInt(o.toString()) + 1;
         }
         //������
-        String allocationNum = "JBD" + dateString + String.format("%04d", i);
+        String allocationNum = "JBD-" + dateString + String.format("%04d", i);
         allocation.setAllocationNum(allocationNum);
         if(Objects.nonNull(allocationCond.getEscalationUnitId())&&allocationCond.getEscalationUnitId().toString().length()==6) {
             allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue());
@@ -262,6 +282,177 @@
         return null;
     }
 
+
+    /**
+     * ������������
+     * @param map
+     * @return
+     */
+    @Override
+    public Map<String, Object> selectUnitView(Map<String, Object> map) {
+        QueryWrapper<Allocation> wrapper = new QueryWrapper<>();
+        //������������������
+//        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
+//        Object unitId = userInfo.get("unitId");
+
+        Integer unitId= 17;
+        if (!ObjectUtils.isEmpty(unitId)){
+            ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(unitId);
+            Integer areaCode = responsibilityUnit1.getAreaCode();
+            if (areaCode<999999){
+                QueryWrapper<ResponsibilityUnit> wrapper1 = new QueryWrapper<>();
+                wrapper1.eq("parent_code",areaCode);
+                List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper1);
+                if (ObjectUtils.isEmpty(responsibilityUnits)){
+                    return null;
+                }
+                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);
+            }else {
+                wrapper.eq("unit_id",unitId);
+            }
+        }
+
+        HashMap<String, Object> rsMap = new HashMap<>();
+        HashMap<String, Object> polluteMap = new HashMap<>();
+        ArrayList<AllocationUnitViewDto> allocationUnitViewDtos = new ArrayList<>();
+
+        Object number1 = map.get("number");
+        String startTime=null;
+        String endTime=null;
+        if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("startTime"))){
+             startTime = map.get("startTime").toString();
+             endTime = map.get("endTime").toString();
+
+        }
+        if (!ObjectUtils.isEmpty(number1)){
+            String s = number1.toString();
+            //���������������
+            endTime = DateUtils.getCurDateTime();
+            if (s.equals("-1")){
+                //���������������
+
+                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+            }
+            if (s.equals("-2")){
+                //���������������
+                startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+            }
+            if (s.equals("-3")){
+                startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+            }
+            if (s.equals("-6")){
+                startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+            }
+            if (s.equals("-12")){
+                startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+            }
+
+        }
+
+        wrapper.between("escalation_time",startTime,endTime);
+        wrapper.eq("is_del",0);
+        wrapper.eq("is_invalid",0);
+        List<Allocation> allocations = allocationMapper.selectList(wrapper);
+        if (ObjectUtils.isEmpty(allocations)){
+            return null;
+        }
+         int complete=0;
+         int unComplete=0;
+        for (Allocation allocation : allocations) {
+            String state = allocation.getState()+"";
+            if (state.equals("40")||state.equals("50")){
+                 complete++;
+            }else if(state.equals("10")||state.equals("20") ||state.equals("30")) {
+                 unComplete++;
+            }
+        }
+        //������������������������
+        Map<Integer, List<Allocation>> polluteTypeMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getPolluteType()));
+        Set<Integer> polluteTypes = polluteTypeMap.keySet();
+        for (Integer polluteType : polluteTypes) {
+
+            HashMap<String, Object> typeMap = new HashMap<>();
+            List<Allocation> allocations1 = polluteTypeMap.get(polluteType);
+            QueryWrapper<SysDictData> sysDictDataQueryWrapper = new QueryWrapper<>();
+            sysDictDataQueryWrapper.eq("dict_type_id",31);
+            sysDictDataQueryWrapper.eq("dataKey",polluteType);
+            SysDictData sysDictData = sysDictDataMapper.selectOne(sysDictDataQueryWrapper);
+            typeMap.put("name",sysDictData.getDataValue());
+            typeMap.put("value",allocations1.size());
+            polluteMap.put("polluteType",typeMap);
+        }
+        //������������������������
+        Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId()));
+        Set<Integer> unitList = unitMap.keySet();
+        //������������
+        int overdue=0;
+        for (Integer integer : unitList) {
+            //������������
+            ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(integer);
+
+            SysArea areaByCode = sysAreaService.getAreaByCode(responsibilityUnit.getAreaCode());
+
+            AllocationUnitViewDto allocationUnitViewDto = new AllocationUnitViewDto();
+            List<Allocation> allocations1 = unitMap.get(integer);
+
+            //������
+            int marks=0;
+            //������
+            int deduction=0;
+            int number=0;
+            for (Allocation allocation : allocations1) {
+
+                Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay());
+                Date date = new Date();
+                String state = allocation.getState()+"";
+                boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay);
+                if (timeBefor && !state.equals("40") && !state.equals("50")){
+                    //������������
+                    overdue++;
+                }
+                if (state.equals("40")||state.equals("50")){
+                    if (allocation.getCheckScore()>0){
+                        marks = marks + allocation.getCheckScore();
+                    }else {
+                        deduction = deduction + allocation.getCheckScore();
+                    }
+                    number++;
+                }
+            }
+            int total = allocations1.size();
+            allocationUnitViewDto.setDeduction(deduction);
+            allocationUnitViewDto.setMarks(marks);
+            allocationUnitViewDto.setTotal(total);
+            allocationUnitViewDto.setTotalPoints(marks+deduction);
+            allocationUnitViewDto.setNumber(number);
+            String rate = (number * 100 /total)+"%";
+            allocationUnitViewDto.setRate(rate);
+            allocationUnitViewDto.setUnNumber(total-number);
+            allocationUnitViewDto.setUnitName(areaByCode.getAreaName());
+            allocationUnitViewDtos.add(allocationUnitViewDto);
+        }
+        rsMap.put("unitView",allocationUnitViewDtos);
+        rsMap.put("total",allocations.size());
+        rsMap.put("complete",complete);
+        rsMap.put("unComplete",unComplete);
+        rsMap.put("overdue",overdue);
+        rsMap.put("polluteType",polluteMap);
+        return rsMap;
+    }
+
+
+    /**
+     * ������
+     * @param map
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> unitExel(Map<String, Object> map) {
+        return null;
+    }
+
     @Override
     public Page<AllocationPageExt> extPage(AllocationPageCond allocationPageCond) {
         return this.baseMapper.extPage(allocationPageCond.getPage().convertPage(), allocationPageCond);

--
Gitblit v1.8.0