| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | 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.entity.*; |
| | | import com.moral.api.exception.BusinessException; |
| | | 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.bean.BaseInvalidEntity; |
| | | import com.moral.api.pojo.dto.allocation.AllocationUnitViewDto; |
| | | import com.moral.api.pojo.enums.*; |
| | | import com.moral.api.pojo.ext.allocation.AllocationExt; |
| | | import com.moral.api.pojo.ext.allocation.AllocationListExt; |
| | |
| | | import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; |
| | | import com.moral.api.pojo.vo.allocation.AllocationFindVo; |
| | | import com.moral.api.pojo.vo.user.QxUser; |
| | | import com.moral.api.service.AllocationExtensionService; |
| | | import com.moral.api.service.ApproveTableService; |
| | | import com.moral.api.service.*; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.constant.RedisConstants; |
| | | import com.moral.util.DateUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | 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.ResponsibilityUnitService; |
| | | 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; |
| | | import com.moral.util.TokenUtils; |
| | | import com.sun.javafx.scene.control.skin.VirtualFlow; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | | @Service |
| | |
| | | private AllocationExtensionService allocationExtensionService; |
| | | @Autowired |
| | | private ResponsibilityUnitService responsibilityUnitService; |
| | | @Autowired |
| | | private SysDictTypeService sysDictTypeService; |
| | | |
| | | /** |
| | | * 根据字典类型获取字典数据 |
| | |
| | | //单号 |
| | | 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())&& escalationType(allocationCond.getEscalationUnitId())) { |
| | | allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue()); |
| | | } |
| | | if(NEW_BUILT.equals(allocationCond.getState())) { |
| | |
| | | } |
| | | //获取用户信息 |
| | | 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())) { |
| | |
| | | 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",31); |
| | | sysDictDataQueryWrapper.eq("dict_type_id",sysDictType.getId()); |
| | | sysDictDataQueryWrapper.eq("dataKey",polluteType); |
| | | SysDictData sysDictData = sysDictDataMapper.selectOne(sysDictDataQueryWrapper); |
| | | typeMap.put("name",sysDictData.getDataValue()); |
| | |
| | | //获取用户信息 |
| | | 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); |
| | | } |
| | | } |
| | |
| | | } |
| | | return 1; |
| | | } |
| | | private boolean escalationType(Integer id){ |
| | | boolean f = false; |
| | | String code = responsibilityUnitMapper.selectAreaCode(id); |
| | | if(code.length() == 6){ |
| | | return true; |
| | | } |
| | | return f; |
| | | } |
| | | } |