swb
2024-11-15 da0cb6ec9344641c5d1820e099131b58149b3fbc
screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
@@ -23,6 +23,7 @@
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;
@@ -210,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);
@@ -231,19 +236,23 @@
        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);
@@ -309,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++;
                    }
@@ -371,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);
@@ -390,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);
@@ -407,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();
@@ -422,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")){
@@ -436,16 +468,44 @@
            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;
    }
@@ -966,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;
            }
        }