|  |  | 
 |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
 |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
 |  |  | import com.moral.api.config.Interceptor.UserHelper; | 
 |  |  | import com.moral.api.controller.LogController; | 
 |  |  | import com.moral.api.entity.*; | 
 |  |  | import com.moral.api.exception.BusinessException; | 
 |  |  | import com.moral.api.mapper.AllocationLogMapper; | 
 |  |  | 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.mapper.UserLogMapper; | 
 |  |  | 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.*; | 
 |  |  | 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.query.allocation.*; | 
 |  |  | import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; | 
 |  |  | import com.moral.api.pojo.query.app.AppAllocationFileCond; | 
 |  |  | import com.moral.api.pojo.query.app.AppAllocationPageCond; | 
 |  |  | import com.moral.api.pojo.vo.allocation.AllocationFindVo; | 
 |  |  | import com.moral.api.pojo.vo.app.AppAllocationFindVo; | 
 |  |  | 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; | 
 |  |  | import com.moral.util.WebUtils; | 
 |  |  |  | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.apache.commons.collections4.CollectionUtils; | 
 |  |  | import org.springframework.beans.BeanUtils; | 
 |  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.util.ObjectUtils; | 
 |  |  | import org.springframework.web.context.request.RequestContextHolder; | 
 |  |  | import org.springframework.web.context.request.ServletRequestAttributes; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | import javax.servlet.http.HttpServletRequest; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | @Service | 
 |  |  | 
 |  |  |     private AllocationExtensionService allocationExtensionService; | 
 |  |  |     @Autowired | 
 |  |  |     private ResponsibilityUnitService responsibilityUnitService; | 
 |  |  |     @Autowired | 
 |  |  |     private SysDictTypeService sysDictTypeService; | 
 |  |  |     @Autowired | 
 |  |  |     private UserService userService; | 
 |  |  |     @Autowired | 
 |  |  |     private AllocationLogMapper allocationLogMapper; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据字典类型获取字典数据 | 
 |  |  | 
 |  |  |         //单号 | 
 |  |  |         String allocationNum = "JBD-" + dateString + String.format("%04d", i); | 
 |  |  |         allocation.setAllocationNum(allocationNum); | 
 |  |  |         if(Objects.nonNull(allocationCond.getEscalationUnitId())&&allocationCond.getEscalationUnitId().toString().length()==6) { | 
 |  |  |         if(Objects.nonNull(allocationCond.getEscalationUnitId())&& !allocationCond.getEscalationUnitId().equals(allocationCond.getUnitId()) && escalationType(allocationCond.getEscalationUnitId())) { | 
 |  |  |             allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue()); | 
 |  |  |         } | 
 |  |  |         if(NEW_BUILT.equals(allocationCond.getState())) { | 
 |  |  | 
 |  |  |         } | 
 |  |  |         //获取新建图片 | 
 |  |  |         allocationMapper.insert(allocation); | 
 |  |  |         //推送数据 | 
 |  |  |         userService.pushOneUser(allocation); | 
 |  |  |         redisTemplate.opsForValue().set(RedisConstants.JBD_DATA,i); | 
 |  |  |         if(NEW_BUILT.equals(allocationCond.getState())) { | 
 |  |  |         if(NEW_BUILT.equals(allocationCond.getState())||AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationCond.getState())) { | 
 |  |  |             //添加流程数据 | 
 |  |  |             ApproveTable approveTable = new ApproveTable(); | 
 |  |  |             approveTable.setRelationId(allocation.getAllocationId()); | 
 |  |  | 
 |  |  |         } | 
 |  |  |         //获取用户信息 | 
 |  |  |         Allocation allocation = allocationUpdateCond.convert(); | 
 |  |  |         if(Objects.nonNull(allocationUpdateCond.getEscalationUnitId())&&allocationUpdateCond.getEscalationUnitId().toString().length()==6) { | 
 |  |  |         if(Objects.nonNull(allocationUpdateCond.getEscalationUnitId())&& escalationType(allocationUpdateCond.getEscalationUnitId())) { | 
 |  |  |             allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue()); | 
 |  |  |         } | 
 |  |  |         if(NEW_BUILT.equals(allocationUpdateCond.getState())) { | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | //        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(); | 
 |  |  | 
 |  |  |             escalationTypeList.add(typeMap); | 
 |  |  |         } | 
 |  |  |         //根据污染类型分类 | 
 |  |  |         SysDictType sysDictType = sysDictTypeService.slectFind(Constants.WU_RAN_LEI_XING); | 
 |  |  |         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",32); | 
 |  |  |             sysDictDataQueryWrapper.eq("dict_type_id",sysDictType.getId()); | 
 |  |  |             sysDictDataQueryWrapper.eq("dataKey",polluteType); | 
 |  |  |             SysDictData sysDictData = sysDictDataMapper.selectOne(sysDictDataQueryWrapper); | 
 |  |  |             typeMap.put("name",sysDictData.getDataValue()); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  | //        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"); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @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); | 
 |  |  | 
 |  |  |                 }else { | 
 |  |  |                     it.setIsApprove(0); | 
 |  |  |                 } | 
 |  |  |                 it.setIsCode(ObjectUtils.isEmpty(unitAuthority)?"2":"1"); | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  |         return page; | 
 |  |  | 
 |  |  |         allocationExt.setFileChangeList(fileTableService.list(id,FileTableEnum.ALLOCATION_RECTIFICATION.value)); | 
 |  |  |         allocationExt.setFileApproveList(fileTableService.list(id,FileTableEnum.ALLOCATION_APPROVE.value)); | 
 |  |  |         allocationExt.setApproveList(approveTableService.listAll(id, FileTableEnum.ALLOCATION_FOUNDATION.value)); | 
 |  |  |         allocationExt.setUnitName(getUnitName(allocationExt.getUnitId()).getUnitName()); | 
 |  |  |         allocationExt.setEscalationUnitName(getUnitName(allocationExt.getEscalationUnitId()).getUnitName()); | 
 |  |  |         allocationExt.setPolluteTypeName(responsibilityUnitMapper.selectName(Constants.WU_RAN_LEI_XING,allocationExt.getPolluteType())); | 
 |  |  |         return allocationExt; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         allocation.setState(changeCond.getState()); | 
 |  |  |         allocation.setChangeTime(new Date()); | 
 |  |  |         this.updateById(allocation); | 
 |  |  |         //推送数据 | 
 |  |  |         Allocation allocation1 = this.getById(changeCond.getAllocationId()); | 
 |  |  |         userService.pushOneUser(allocation1); | 
 |  |  |         //添加流程数据 | 
 |  |  |         ApproveTable approveTable = new ApproveTable(); | 
 |  |  |         approveTable.setRelationId(allocation.getAllocationId()); | 
 |  |  | 
 |  |  |         //获取用户信息 | 
 |  |  |         List<Integer> list = unitResult(); | 
 |  |  |         if (!ObjectUtils.isEmpty(list)){ | 
 |  |  |             Integer integer = list.get(0); | 
 |  |  |             if (integer==0){ | 
 |  |  |                 return null; | 
 |  |  |             }else { | 
 |  |  |                 wrapper.in(Allocation::getUnitId,list); | 
 |  |  |             } | 
 |  |  |             wrapper.in(Allocation::getUnitId,list); | 
 |  |  |         } | 
 |  |  |         Integer integer = unitAreaCode(); | 
 |  |  |         //普通权限或 管理员 | 
 |  |  |         if (integer==0 || integer==1){ | 
 |  |  |         // 管理员 | 
 |  |  |         if (integer==1){ | 
 |  |  |             if (state==3){ | 
 |  |  |                 wrapper.in(Allocation::getState,40,50); | 
 |  |  |             }else if (state==2){ | 
 |  |  |                 wrapper.eq(Allocation::getState,30); | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.PASS.value,AllocationApproveEnum.REFUSE.value); | 
 |  |  |             }else if (state==1){ | 
 |  |  |                 wrapper.eq(Allocation::getState,20); | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.UNDER_RECTIFICATION.value,AllocationApproveEnum.DRAFT.value,AllocationApproveEnum.IN_APPROVAL.value); | 
 |  |  |             }else { | 
 |  |  |                 wrapper.eq(Allocation::getState,0); | 
 |  |  |             } | 
 |  |  |         //区域权限 | 
 |  |  |         }else if (integer==2){ | 
 |  |  |         }else if(integer == 0) { | 
 |  |  |             if (state==3){ | 
 |  |  |                 wrapper.in(Allocation::getState,40,50); | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.PASS.value,AllocationApproveEnum.REFUSE.value); | 
 |  |  |             }else if (state==2){ | 
 |  |  |                 wrapper.eq(Allocation::getState,20); | 
 |  |  |                 wrapper.eq(Allocation::getState,AllocationApproveEnum.IN_APPROVAL.value); | 
 |  |  |             }else if (state==1){ | 
 |  |  |                 wrapper.eq(Allocation::getState,30); | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.UNDER_RECTIFICATION.value,AllocationApproveEnum.DRAFT.value); | 
 |  |  |             } | 
 |  |  |         }else if(integer == 2){ | 
 |  |  |             if (state==3){ | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.PASS.value,AllocationApproveEnum.REFUSE.value); | 
 |  |  |             }else if (state==2){ | 
 |  |  |                 wrapper.in(Allocation::getState,AllocationApproveEnum.UNDER_RECTIFICATION.value,AllocationApproveEnum.DRAFT.value); | 
 |  |  |             }else if (state==1){ | 
 |  |  |                 wrapper.eq(Allocation::getState,AllocationApproveEnum.IN_APPROVAL.value); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (!ObjectUtils.isEmpty(startTime) && !ObjectUtils.isEmpty(endTime)){ | 
 |  |  |             wrapper.between(Allocation::getEscalationTime,startTime,endTime); | 
 |  |  |         } | 
 |  |  |         wrapper.eq(Allocation::getIsDel,0).eq(Allocation::getIsInvalid,0); | 
 |  |  |         wrapper.orderByDesc(Allocation::getEscalationTime); | 
 |  |  |         wrapper.orderByDesc(Allocation::getEscalationTime,Allocation::getAllocationId); | 
 |  |  |         List<Allocation> allocations = allocationMapper.selectList(wrapper); | 
 |  |  |         for (Allocation allocation : allocations) { | 
 |  |  |             AllocationFindVo allocationFindVo = new AllocationFindVo(); | 
 |  |  |             BeanUtils.copyProperties(allocation,allocationFindVo); | 
 |  |  |             Integer state1 = allocationFindVo.getState(); | 
 |  |  |             if (integer==0 || integer==1){ | 
 |  |  |                 if (state1==20){ | 
 |  |  |             if ( integer==2){ | 
 |  |  |                 if (state1.equals(AllocationApproveEnum.DRAFT.value)||state1.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                 }else if (state1.equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if (state1==30){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if (state1==40 ||state1==50){ | 
 |  |  |                 }else if (state1.equals(AllocationApproveEnum.PASS.value)||state1.equals(AllocationApproveEnum.REFUSE.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |                 } | 
 |  |  |             }else { | 
 |  |  |                 if (state1==20){ | 
 |  |  |             }else if(integer==1){ | 
 |  |  |                 if (state1.equals(AllocationApproveEnum.DRAFT.value)||state1.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)||state1.equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if (state1==30){ | 
 |  |  |                 }else if (state1.equals(AllocationApproveEnum.PASS.value)||state1.equals(AllocationApproveEnum.REFUSE.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |                 } | 
 |  |  |             }else if(integer==0) { | 
 |  |  |                 if (state1.equals(AllocationApproveEnum.DRAFT.value)||state1.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if (state1==40||state1==50){ | 
 |  |  |                 }else if (state1.equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                 }else if (state1.equals(AllocationApproveEnum.PASS.value)||state1.equals(AllocationApproveEnum.REFUSE.value)){ | 
 |  |  |                     allocationFindVo.setStateName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             allocationFindVos.add(allocationFindVo); | 
 |  |  |         } | 
 |  |  |         return allocationFindVos; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Page<AllocationPageExt> pageApp(AppAllocationPageCond allocationPageCond) { | 
 |  |  |         List<Integer> listUnit = unitResult(); | 
 |  |  |         Integer integer = unitAreaCode(); | 
 |  |  |         allocationPageCond.setUnitList(listUnit); | 
 |  |  |         allocationPageCond.setStateList(stateAllocationList(allocationPageCond.getState(),integer)); | 
 |  |  |         Page<AllocationPageExt> extAppPage = this.baseMapper.extAppPage(allocationPageCond.getPage().convertPage(),allocationPageCond); | 
 |  |  |         extAppPage.getRecords().forEach(it->{ | 
 |  |  |             Integer state = it.getState(); | 
 |  |  |             //获取上报单位名字 | 
 |  |  |             it.setEscalationUnitName(getUnitName(it.getEscalationUnitId()).getUnitName()); | 
 |  |  |             if (state.equals(AllocationApproveEnum.DRAFT.value)||state.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ | 
 |  |  |                 if(integer==0||integer==1){ | 
 |  |  |                     it.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if(integer==2){ | 
 |  |  |                     it.setStateName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                 } | 
 |  |  |             }else if(state.equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                 if(integer==2||integer==1){ | 
 |  |  |                     it.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                 }else if(integer==0){ | 
 |  |  |                     it.setStateName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                 } | 
 |  |  |             }else{ | 
 |  |  |                 it.setStateName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         return extAppPage; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public boolean saveFile(AppAllocationFileCond appAllocationFileCond) { | 
 |  |  |         fileTableService.upDateResult(Arrays.asList(appAllocationFileCond.getFile()),appAllocationFileCond.getUserId(), FileTableEnum.APP_ALLOCATION.value); | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private List<Integer> stateAllocationList(Integer type, Integer integer){ | 
 |  |  |         List<Integer> integerList = new ArrayList<>(); | 
 |  |  |         // type 0 全部 1待办 2待处理 3 已完成 | 
 |  |  |         if(integer.equals(0)){ | 
 |  |  |             if(type.equals(1)){ | 
 |  |  |                 integerList.add(AllocationApproveEnum.UNDER_RECTIFICATION.value); | 
 |  |  |                 integerList.add(AllocationApproveEnum.DRAFT.value); | 
 |  |  |             }else if(type.equals(2)){ | 
 |  |  |                 integerList.add(AllocationApproveEnum.IN_APPROVAL.value); | 
 |  |  |             } | 
 |  |  |         }else if(integer.equals(2)){ | 
 |  |  |             if(type.equals(1)){ | 
 |  |  |                 integerList.add(AllocationApproveEnum.IN_APPROVAL.value); | 
 |  |  |             }else if(type.equals(2)){ | 
 |  |  |                 integerList.add(AllocationApproveEnum.UNDER_RECTIFICATION.value); | 
 |  |  |                 integerList.add(AllocationApproveEnum.DRAFT.value); | 
 |  |  |             } | 
 |  |  |         }else if(integer.equals(1)){ | 
 |  |  |             if(type.equals(1)){ | 
 |  |  |                 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)){ | 
 |  |  |             integerList.add(AllocationApproveEnum.PASS.value); | 
 |  |  |             integerList.add(AllocationApproveEnum.REFUSE.value); | 
 |  |  |         } | 
 |  |  |         return integerList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |         //添加流程数据 | 
 |  |  |         ApproveTable approveTable = new ApproveTable(); | 
 |  |  |         approveTable.setRelationId(allocation.getAllocationId()); | 
 |  |  |         approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
 |  |  |        /* approveTable.setState(NEW_BUILT); | 
 |  |  |         approveTable.setStateName("新建"); | 
 |  |  |         approveTableService.saveResult(approveTable);*/ | 
 |  |  |         approveTable.setState(AllocationApproveEnum.UNDER_RECTIFICATION.value); | 
 |  |  |         approveTable.setStateName(AllocationApproveEnum.UNDER_RECTIFICATION.name); | 
 |  |  |         approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
 |  |  |         approveTableService.saveResult(approveTable); | 
 |  |  |         fileTableService.upDateResult(changeCond.getFileChangeList(),allocation.getAllocationId(), FileTableEnum.ALLOCATION_RECTIFICATION.value); | 
 |  |  |     } | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public AppAuthority authority(String allocationNum,Integer userId) { | 
 |  |  |         //返回数据 | 
 |  |  |         AppAuthority appAuthority = new AppAuthority(); | 
 |  |  |         //获取用户信息 | 
 |  |  |         QxUser user = UserHelper.getCurrentUser(); | 
 |  |  |         //获取交办单信息 | 
 |  |  |         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); | 
 |  |  |  | 
 |  |  |         List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); | 
 |  |  |         if(CollectionUtils.isNotEmpty(userList)){ | 
 |  |  |             //可以看,可以填 | 
 |  |  |             if (allocation.getState()>30){ | 
 |  |  |                 appAuthority.setCode(2); | 
 |  |  |                 appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |             }else { | 
 |  |  |                 appAuthority.setCode(1); | 
 |  |  |                 appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |             } | 
 |  |  |             return appAuthority; | 
 |  |  |         } | 
 |  |  |         if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0){ | 
 |  |  |             String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId()); | 
 |  |  |             if (code.length() > 6 && allocation.getUnitId().equals(user.getUnitId())) { | 
 |  |  |                 if (allocation.getState().equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ | 
 |  |  |                     appAuthority.setCode(1); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 }else if (allocation.getState().equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                     appAuthority.setCode(2); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 }else { | 
 |  |  |                     appAuthority.setCode(2); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 } | 
 |  |  |             } else if (code.length() <= 6){ | 
 |  |  |                 if (allocation.getState().equals(AllocationApproveEnum.IN_APPROVAL.value)){ | 
 |  |  |                     appAuthority.setCode(1); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.TO_BE_PROCESSED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 }else if (allocation.getState().equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ | 
 |  |  |                     appAuthority.setCode(2); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 }else { | 
 |  |  |                     appAuthority.setCode(2); | 
 |  |  |                     appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); | 
 |  |  |                     return appAuthority; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         //不能看,不能填 | 
 |  |  |         appAuthority.setCode(3); | 
 |  |  |         appAuthority.setName("没有权限"); | 
 |  |  |         return appAuthority; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改责任单位 | 
 |  |  |      * | 
 |  |  |      * @param id | 
 |  |  |      * @param unitId | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void updataUnit(Integer id, Integer unitId,Integer polluteType) { | 
 |  |  |         AllocationLog allocationLog = new AllocationLog(); | 
 |  |  |         //获取用户信息 | 
 |  |  |         QxUser user = UserHelper.getCurrentUser(); | 
 |  |  |         Allocation allocation = allocationMapper.selectById(id); | 
 |  |  |         if (!ObjectUtils.isEmpty(unitId)){ | 
 |  |  |             ResponsibilityUnit unitName1 = getUnitName(allocation.getUnitId()); | 
 |  |  |             ResponsibilityUnit unitName2 = getUnitName(unitId); | 
 |  |  |             allocation.setUnitId(unitId); | 
 |  |  |             allocationLog.setContent(unitName1.getUnitName()+"----修改成----"+unitName2.getUnitName()); | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         if (!ObjectUtils.isEmpty(polluteType)){ | 
 |  |  |             SysDictData sysDictData1 = sysDictTypeService.listOne(Constants.WU_RAN_LEI_XING,allocation.getPolluteType().toString()); | 
 |  |  |             SysDictData sysDictData2 = sysDictTypeService.listOne(Constants.WU_RAN_LEI_XING, polluteType.toString()); | 
 |  |  |             allocation.setPolluteType(polluteType); | 
 |  |  |             allocationLog.setPolluteType(sysDictData1.getDataValue()+"----修改成----"+sysDictData2.getDataValue()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         allocationMapper.updateById(allocation); | 
 |  |  |         //日志 | 
 |  |  |         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); | 
 |  |  |         allocationLog.setAllocationNum(allocation.getAllocationNum()); | 
 |  |  |         allocationLog.setIp(WebUtils.getIpAddr(request)); | 
 |  |  |         allocationLog.setAccountId(user.getUserId()); | 
 |  |  |         allocationLog.setAccount(user.getAccount()); | 
 |  |  |         allocationLog.setUserName(user.getUserName()); | 
 |  |  |         allocationLog.setCreateTime(new Date()); | 
 |  |  |         allocationLogMapper.insert(allocationLog); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查看修改记录 | 
 |  |  |      * | 
 |  |  |      * @param allocationNum | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public List<AllocationLog> getLog(String allocationNum) { | 
 |  |  |         LambdaQueryWrapper<AllocationLog> wrapper = new LambdaQueryWrapper<>(); | 
 |  |  |         wrapper.eq(AllocationLog::getAllocationNum,allocationNum); | 
 |  |  |         wrapper.orderByAsc(AllocationLog::getCreateTime); | 
 |  |  |         List<AllocationLog> allocationLogs = allocationLogMapper.selectList(wrapper); | 
 |  |  |         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(); | 
 |  |  |         Integer unitId = Objects.nonNull(user.getUnitId())?user.getUnitId():0; | 
 |  |  | 
 |  |  |         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; | 
 |  |  |         String code = responsibilityUnitMapper.selectAreaCode(id); | 
 |  |  |         if(code.length() == 6){ | 
 |  |  |             return true; | 
 |  |  |         } | 
 |  |  |         return f; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private ResponsibilityUnit getUnitName(Integer unitId){ | 
 |  |  |         ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(unitId); | 
 |  |  |           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; | 
 |  |  |     } | 
 |  |  | } |