|  |  |  | 
|---|
|  |  |  | package com.moral.api.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.moral.api.config.Interceptor.UserHelper; | 
|---|
|  |  |  | import com.moral.api.entity.*; | 
|---|
|  |  |  | import com.moral.api.exception.BusinessException; | 
|---|
|  |  |  | import com.moral.api.pojo.bean.BaseInvalidEntity; | 
|---|
|  |  |  | 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.ext.allocation.AllocationPageExt; | 
|---|
|  |  |  | import com.moral.api.pojo.query.allocation.*; | 
|---|
|  |  |  | 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 lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.commons.collections4.CollectionUtils; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.moral.api.entity.SysDictData; | 
|---|
|  |  |  | import com.moral.api.entity.SysDictType; | 
|---|
|  |  |  | import com.moral.api.mapper.AllocationMapper; | 
|---|
|  |  |  | import com.moral.api.mapper.ApproveTableMapper; | 
|---|
|  |  |  | import com.moral.api.mapper.ResponsibilityUnitMapper; | 
|---|
|  |  |  | import com.moral.api.mapper.SysAreaMapper; | 
|---|
|  |  |  | 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.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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class AllocationServiceImpl extends ServiceImpl<AllocationMapper, Allocation> implements AllocationService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final Integer NEW_BUILT = 10; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysDictTypeMapper sysDictTypeMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysDictDataMapper sysDictDataMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ResponsibilityUnitMapper responsibilityUnitMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysDictDataMapper sysDictDataMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private RedisTemplate redisTemplate; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private AllocationMapper allocationMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApproveTableMapper approveTableMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private  SysAreaService sysAreaService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApproveTableService approveTableService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private FileTableService fileTableService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private AllocationExtensionService allocationExtensionService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ResponsibilityUnitService responsibilityUnitService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据字典类型获取字典数据 | 
|---|
|  |  |  | 
|---|
|  |  |  | wrapper.eq("is_del",Constants.NOT_DELETE); | 
|---|
|  |  |  | wrapper.eq("state",0); | 
|---|
|  |  |  | wrapper.eq("is_invalid",0); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取用户信息 | 
|---|
|  |  |  | Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
|---|
|  |  |  | Object code = userInfo.get("code"); | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(code)){ | 
|---|
|  |  |  | wrapper.eq("area_code",code); | 
|---|
|  |  |  | List<Integer> unitList = unitResult(); | 
|---|
|  |  |  | if (CollectionUtils.isNotEmpty(unitList)){ | 
|---|
|  |  |  | wrapper.in("unit_id",unitList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper); | 
|---|
|  |  |  | return responsibilityUnits; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 添加交办单 | 
|---|
|  |  |  | * @param allocation | 
|---|
|  |  |  | * @param allocationCond | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public Integer insertAllocation(Allocation allocation) { | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | //获取用户信息 | 
|---|
|  |  |  | Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
|---|
|  |  |  | public Integer insertAllocation(AllocationAddCond allocationCond) { | 
|---|
|  |  |  | Allocation allocation = allocationCond.convert(); | 
|---|
|  |  |  | allocation.setEscalationType(AllocationEscalationTypeEnum.SELF.getValue()); | 
|---|
|  |  |  | String dateString = DateUtils.dateToDateString(new Date(), DateUtils.yyyyMMdd_EN); | 
|---|
|  |  |  | QueryWrapper<Allocation> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | Object o = redisTemplate.opsForValue().get(RedisConstants.JBD_DATA); | 
|---|
|  |  |  | int i; | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(o)){ | 
|---|
|  |  |  | wrapper.last("limit 1"); | 
|---|
|  |  |  | Allocation selectOne = allocationMapper.selectOne(wrapper); | 
|---|
|  |  |  | String allocationNum = selectOne.getAllocationNum(); | 
|---|
|  |  |  | String num = allocationNum.substring(10); | 
|---|
|  |  |  | i = Integer.parseInt(num)+1; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | i = Integer.parseInt(o.toString()) + 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int i = ObjectUtils.isEmpty(o)?1:Integer.parseInt(o.toString()) + 1; | 
|---|
|  |  |  | //单号 | 
|---|
|  |  |  | String allocationNum = "JBD" + dateString + String.format("%04d", i); | 
|---|
|  |  |  | String allocationNum = "JBD-" + dateString + String.format("%04d", i); | 
|---|
|  |  |  | allocation.setAllocationNum(allocationNum); | 
|---|
|  |  |  | allocation.setIsDel("0"); | 
|---|
|  |  |  | allocation.setIsInvalid("0"); | 
|---|
|  |  |  | allocation.setCreateId(Integer.parseInt(userInfo.get("userId").toString())); | 
|---|
|  |  |  | allocation.setCreateTime(new Date()); | 
|---|
|  |  |  | allocation.setCreateName(userInfo.get("account").toString()); | 
|---|
|  |  |  | allocation.setUpdateId(Integer.parseInt(userInfo.get("userId").toString())); | 
|---|
|  |  |  | allocation.setUpdateTime(new Date()); | 
|---|
|  |  |  | allocation.setUpdateName(userInfo.get("account").toString()); | 
|---|
|  |  |  | if(Objects.nonNull(allocationCond.getEscalationUnitId())&&allocationCond.getEscalationUnitId().toString().length()==6) { | 
|---|
|  |  |  | allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(NEW_BUILT.equals(allocationCond.getState())) { | 
|---|
|  |  |  | allocation.setState(AllocationApproveEnum.UNDER_RECTIFICATION.value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //获取新建图片 | 
|---|
|  |  |  | allocationMapper.insert(allocation); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | redisTemplate.opsForValue().set(RedisConstants.JBD_DATA,i); | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | approveTable.setState(Integer.parseInt(allocation.getState())); | 
|---|
|  |  |  | approveTable.setApproveModule(null); | 
|---|
|  |  |  | approveTable.setStateName(null); | 
|---|
|  |  |  | approveTable.setIsDel(0); | 
|---|
|  |  |  | approveTableMapper.insert(approveTable); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查看表单 | 
|---|
|  |  |  | * @param id | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AllocationUnitDto check(Integer id) { | 
|---|
|  |  |  | AllocationUnitDto allocationUnitDto = new AllocationUnitDto(); | 
|---|
|  |  |  | Allocation allocation = allocationMapper.selectById(id); | 
|---|
|  |  |  | BeanUtils.copyProperties(allocation,allocationUnitDto); | 
|---|
|  |  |  | ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(allocation.getUnitId()); | 
|---|
|  |  |  | allocationUnitDto.setUnitName(responsibilityUnit.getUnitName()); | 
|---|
|  |  |  | allocationUnitDto.setEscalationUnitName(responsibilityUnit.getUnitName()); | 
|---|
|  |  |  | Map<String, List<SysDictData>> map = (Map<String, List<SysDictData>>) redisTemplate.opsForValue().get(RedisConstants.DICT_DATA_KEY); | 
|---|
|  |  |  | List<SysDictData> contaminate = map.get("contaminate"); | 
|---|
|  |  |  | for (SysDictData sysDictData : contaminate) { | 
|---|
|  |  |  | if (sysDictData.getDataKey().equals(allocation.getPolluteType().toString())){ | 
|---|
|  |  |  | allocationUnitDto.setPolluteTypeName(sysDictData.getDataValue()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(NEW_BUILT.equals(allocationCond.getState())) { | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | approveTable.setState(NEW_BUILT); | 
|---|
|  |  |  | approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | approveTable.setStateName("新建"); | 
|---|
|  |  |  | approveTableService.saveResult(approveTable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | allocationUnitDto.setChangeTypeName(allocation.getChangeType()==0?"限期整改":"立即整改"); | 
|---|
|  |  |  | allocationUnitDto.setInvestigationTypeName(allocation.getChangeType()==0?"现场":"无人机"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取图片 | 
|---|
|  |  |  | return allocationUnitDto; | 
|---|
|  |  |  | fileTableService.upDateResult(allocationCond.getFileBaseList(),allocation.getAllocationId(), FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | return allocation.getAllocationId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改交办单 | 
|---|
|  |  |  | * @param allocation | 
|---|
|  |  |  | * @param allocationUpdateCond | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateAll(Allocation allocation) { | 
|---|
|  |  |  | //获取用户信息 | 
|---|
|  |  |  | Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
|---|
|  |  |  | if (allocation.getState().equals("1")){ | 
|---|
|  |  |  | //获取整改图片 | 
|---|
|  |  |  | allocation.setChangeTime(new Date()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | //获取审核图片 | 
|---|
|  |  |  | allocation.setCheckTime(new Date()); | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void updateAll(AllocationUpdateCond allocationUpdateCond) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(allocationUpdateCond.getAllocationId()); | 
|---|
|  |  |  | if(!AllocationApproveEnum.DRAFT.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("新建未提交状态,才能编辑!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | allocation.setUpdateId(Integer.parseInt(userInfo.get("userId").toString())); | 
|---|
|  |  |  | allocation.setUpdateTime(new Date()); | 
|---|
|  |  |  | allocation.setUpdateName(userInfo.get("account").toString()); | 
|---|
|  |  |  | //获取用户信息 | 
|---|
|  |  |  | Allocation allocation = allocationUpdateCond.convert(); | 
|---|
|  |  |  | if(Objects.nonNull(allocationUpdateCond.getEscalationUnitId())&&allocationUpdateCond.getEscalationUnitId().toString().length()==6) { | 
|---|
|  |  |  | allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(NEW_BUILT.equals(allocationUpdateCond.getState())) { | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | approveTable.setState(NEW_BUILT); | 
|---|
|  |  |  | approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | approveTable.setStateName("新建"); | 
|---|
|  |  |  | approveTableService.saveResult(approveTable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(NEW_BUILT.equals(allocationUpdateCond.getState())) { | 
|---|
|  |  |  | allocation.setState(AllocationApproveEnum.UNDER_RECTIFICATION.value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | fileTableService.upDateResult(allocationUpdateCond.getFileBaseList(),allocation.getAllocationId(), FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | allocationMapper.updateById(allocation); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据条件查询 | 
|---|
|  |  |  | * @param map | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Allocation> selectAll(Map<String, Object> map) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Object unitId = map.get("unitId"); | 
|---|
|  |  |  | Object state = map.get("state"); | 
|---|
|  |  |  | Object polluteType = map.get("polluteType"); | 
|---|
|  |  |  | Object investigationType = map.get("investigationType"); | 
|---|
|  |  |  | Object changeType = map.get("changeType"); | 
|---|
|  |  |  | Object escalationTime = map.get("escalationTime"); | 
|---|
|  |  |  | Object isInvalid = map.get("isInvalid"); | 
|---|
|  |  |  | //        int page = Integer.parseInt(map.get("page").toString()); | 
|---|
|  |  |  | //        int size = Integer.parseInt(map.get("size").toString()); | 
|---|
|  |  |  | QueryWrapper<Allocation> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //责任主体 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(unitId)){ | 
|---|
|  |  |  | wrapper.eq("unit_id",Integer.parseInt(unitId.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //流程状态 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(state)){ | 
|---|
|  |  |  | wrapper.eq("state",Integer.parseInt(state.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //污染分类 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(polluteType)){ | 
|---|
|  |  |  | wrapper.eq("pollute_type",Integer.parseInt(polluteType.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //排查方式 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(investigationType)){ | 
|---|
|  |  |  | wrapper.eq("investigation_type",Integer.parseInt(investigationType.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //整改类型 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(changeType)){ | 
|---|
|  |  |  | wrapper.eq("change_type",Integer.parseInt(changeType.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //是否作废 | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(isInvalid)){ | 
|---|
|  |  |  | wrapper.eq("is_invalid",Integer.parseInt(isInvalid.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(escalationTime)){ | 
|---|
|  |  |  | //            wrapper.eq("is_invalid",Integer.parseInt(isInvalid.toString())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Allocation> allocations = allocationMapper.selectList(wrapper); | 
|---|
|  |  |  | ArrayList<AllocationUnitDto> rsList = new ArrayList<>(); | 
|---|
|  |  |  | for (Allocation allocation : allocations) { | 
|---|
|  |  |  | AllocationUnitDto allocationUnitDto = new AllocationUnitDto(); | 
|---|
|  |  |  | BeanUtils.copyProperties(allocation,allocationUnitDto); | 
|---|
|  |  |  | allocation.getEscalationTime(); | 
|---|
|  |  |  | Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()); | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | //获取两个日期的天数 | 
|---|
|  |  |  | int days = DateUtils.getDays(dateOfDay, date); | 
|---|
|  |  |  | allocationUnitDto.setChangeDay(days); | 
|---|
|  |  |  | rsList.add(allocationUnitDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | List<Integer> list = this.unitResult(); | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(map.get("unitId"))){ | 
|---|
|  |  |  | wrapper.in("unit_id",map.get("unitId").toString()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(list)){ | 
|---|
|  |  |  | Integer integer = list.get(0); | 
|---|
|  |  |  | if (integer==0){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.in("unit_id",list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        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<>(); | 
|---|
|  |  |  | HashMap<String, Object> polluteMap = 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 startTime=null; | 
|---|
|  |  |  | String endTime=null; | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("startTime"))){ | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("endTime"))){ | 
|---|
|  |  |  | startTime = map.get("startTime").toString(); | 
|---|
|  |  |  | endTime = map.get("endTime").toString(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(number1)){ | 
|---|
|  |  |  | String s = number1.toString(); | 
|---|
|  |  |  | //当前时间的 | 
|---|
|  |  |  | String s = "-"+number1; | 
|---|
|  |  |  | //获取当前时间 | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wrapper.between("escalation_time",startTime,endTime); | 
|---|
|  |  |  | 
|---|
|  |  |  | int complete=0; | 
|---|
|  |  |  | int unComplete=0; | 
|---|
|  |  |  | for (Allocation allocation : allocations) { | 
|---|
|  |  |  | String state = allocation.getState(); | 
|---|
|  |  |  | String state = allocation.getState()+""; | 
|---|
|  |  |  | if (state.equals("40")||state.equals("50")){ | 
|---|
|  |  |  | complete++; | 
|---|
|  |  |  | }else if(state.equals("10")||state.equals("20") ||state.equals("30")) { | 
|---|
|  |  |  | }else  { | 
|---|
|  |  |  | unComplete++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //根据上报类型分类 | 
|---|
|  |  |  | Map<Integer, List<Allocation>> escalationTypeMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getEscalationType())); | 
|---|
|  |  |  | Set<Integer> escalationTypes = escalationTypeMap.keySet(); | 
|---|
|  |  |  | for (Integer escalationType : escalationTypes) { | 
|---|
|  |  |  | List<Allocation> allocations1 = escalationTypeMap.get(escalationType); | 
|---|
|  |  |  | String value = AllocationEscalationTypeEnum.SELF.value.toString(); | 
|---|
|  |  |  | HashMap<String, Object> typeMap = new HashMap<>(); | 
|---|
|  |  |  | if (value.equals(escalationType+"")){ | 
|---|
|  |  |  | typeMap.put("name",AllocationEscalationTypeEnum.SELF.name); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | typeMap.put("name",AllocationEscalationTypeEnum.CHECK.name); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | typeMap.put("value",allocations1.size()); | 
|---|
|  |  |  | escalationTypeList.add(typeMap); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //根据污染类型分类 | 
|---|
|  |  |  | 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<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | SysDictData sysDictData = sysDictDataMapper.selectOne(sysDictDataQueryWrapper); | 
|---|
|  |  |  | typeMap.put("name",sysDictData.getDataValue()); | 
|---|
|  |  |  | typeMap.put("value",allocations1.size()); | 
|---|
|  |  |  | polluteMap.put("polluteType",typeMap); | 
|---|
|  |  |  | polluteArrayList.add(typeMap); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //根据责任单位分类 | 
|---|
|  |  |  | Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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++; | 
|---|
|  |  |  | 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 date = new Date(); | 
|---|
|  |  |  | boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay); | 
|---|
|  |  |  | if (timeBefor && !state.equals("40") && !state.equals("50") && !state.equals("9")){ | 
|---|
|  |  |  | //逾期次数 | 
|---|
|  |  |  | overdue++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (state.equals("40")||state.equals("50")){ | 
|---|
|  |  |  | if (allocation.getCheckScore()>0){ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | //污染类型 | 
|---|
|  |  |  | rsMap.put("polluteType",polluteArrayList); | 
|---|
|  |  |  | //上报类型 | 
|---|
|  |  |  | rsMap.put("escalationType",escalationTypeList); | 
|---|
|  |  |  | return rsMap; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Map<String, Object>> unitExel(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()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(list)){ | 
|---|
|  |  |  | Integer integer = list.get(0); | 
|---|
|  |  |  | if (integer==0){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.in("unit_id",list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        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"); | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(number1)){ | 
|---|
|  |  |  | String s = "-"+number1; | 
|---|
|  |  |  | //获取当前时间 | 
|---|
|  |  |  | endTime = DateUtils.getCurDateTime(); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //根据责任单位分类 | 
|---|
|  |  |  | Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
|---|
|  |  |  | Set<Integer> unitList = unitMap.keySet(); | 
|---|
|  |  |  | for (Integer integer : unitList) { | 
|---|
|  |  |  | //            HashMap<String, Object> map1 = new HashMap<>(); | 
|---|
|  |  |  | LinkedHashMap<String, Object> map1 = new LinkedHashMap<>(); | 
|---|
|  |  |  | //获取城市 | 
|---|
|  |  |  | ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(integer); | 
|---|
|  |  |  | SysArea areaByCode = sysAreaService.getAreaByCode(responsibilityUnit.getAreaCode()); | 
|---|
|  |  |  | List<Allocation> allocations1 = unitMap.get(integer); | 
|---|
|  |  |  | //加分 | 
|---|
|  |  |  | int marks=0; | 
|---|
|  |  |  | //减分 | 
|---|
|  |  |  | int deduction=0; | 
|---|
|  |  |  | int number=0; | 
|---|
|  |  |  | for (Allocation allocation : allocations1) { | 
|---|
|  |  |  | String state = allocation.getState()+""; | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | String rate = (number * 100 /total)+"%"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | map1.put("责任单位",areaByCode.getAreaName()); | 
|---|
|  |  |  | map1.put("总工单",total); | 
|---|
|  |  |  | map1.put("完成数",number); | 
|---|
|  |  |  | map1.put("未完成数",total-number); | 
|---|
|  |  |  | map1.put("完成率",rate); | 
|---|
|  |  |  | map1.put("扣分",deduction); | 
|---|
|  |  |  | map1.put("加分",marks); | 
|---|
|  |  |  | map1.put("总得分",marks+deduction); | 
|---|
|  |  |  | rsMap.add(map1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return rsMap; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Page<AllocationPageExt> extPage(AllocationPageCond allocationPageCond) { | 
|---|
|  |  |  | List<Integer> unitList = unitResult(); | 
|---|
|  |  |  | Integer codeId =  unitAreaCode(); | 
|---|
|  |  |  | allocationPageCond.setUnitList(unitList); | 
|---|
|  |  |  | Page<AllocationPageExt> page =  this.baseMapper.extPage(allocationPageCond.getPage().convertPage(), allocationPageCond); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(page.getRecords())){ | 
|---|
|  |  |  | page.getRecords().forEach(it->{ | 
|---|
|  |  |  | if((CollectionUtils.isEmpty(unitList)&&codeId.equals(1))||codeId.equals(2)){ | 
|---|
|  |  |  | it.setIsApprove(1); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | it.setIsApprove(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return page; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AllocationExt extOne(Integer id) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(id); | 
|---|
|  |  |  | allocationExt.setFileBaseList(fileTableService.list(id,FileTableEnum.ALLOCATION_FOUNDATION.value)); | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | return allocationExt; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AllocationExt oneAllocation(Integer id){ | 
|---|
|  |  |  | return this.baseMapper.extOne(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void changeAllocation(AllocationChangeCond changeCond) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(changeCond.getAllocationId()); | 
|---|
|  |  |  | if(!AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("整改状态,才能提交审批!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Allocation allocation = new Allocation(); | 
|---|
|  |  |  | allocation.setAllocationId(changeCond.getAllocationId()); | 
|---|
|  |  |  | allocation.setIsChange(changeCond.getIsChange()); | 
|---|
|  |  |  | allocation.setChangeName(changeCond.getChangeName()); | 
|---|
|  |  |  | allocation.setChangeDescribe(changeCond.getChangeDescribe()); | 
|---|
|  |  |  | allocation.setState(changeCond.getState()); | 
|---|
|  |  |  | allocation.setChangeTime(new Date()); | 
|---|
|  |  |  | this.updateById(allocation); | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void checkAllocation(AllocationCheckCond checkCond) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(checkCond.getAllocationId()); | 
|---|
|  |  |  | if(!AllocationApproveEnum.IN_APPROVAL.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("审批状态,才能进行审批操作!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | QxUser qxUser = UserHelper.getCurrentUser(); | 
|---|
|  |  |  | Allocation allocation = new Allocation(); | 
|---|
|  |  |  | allocation.setCheckScore(checkCond.getCheckScore()); | 
|---|
|  |  |  | allocation.setAllocationId(checkCond.getAllocationId()); | 
|---|
|  |  |  | allocation.setCheckDescribe(checkCond.getCheckDescribe()); | 
|---|
|  |  |  | allocation.setCheckName(qxUser.getUserName()); | 
|---|
|  |  |  | allocation.setCheckTime(new Date()); | 
|---|
|  |  |  | allocation.setState(checkCond.getState()); | 
|---|
|  |  |  | this.updateById(allocation); | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | if(AllocationApproveEnum.PASS.value.equals(checkCond.getState())){ | 
|---|
|  |  |  | approveTable.setState(AllocationApproveEnum.PASS.value); | 
|---|
|  |  |  | approveTable.setStateName(AllocationApproveEnum.PASS.name); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | approveTable.setState(AllocationApproveEnum.REFUSE.value); | 
|---|
|  |  |  | approveTable.setStateName(AllocationApproveEnum.REFUSE.name); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | approveTableService.saveResult(approveTable); | 
|---|
|  |  |  | fileTableService.upDateResult(checkCond.getFileApproveList(),checkCond.getAllocationId(), FileTableEnum.ALLOCATION_APPROVE.value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public boolean removeById(Integer id) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(id); | 
|---|
|  |  |  | if(!AllocationApproveEnum.DRAFT.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("新建草稿状态,才能删除!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.baseMapper.deleteById(id); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public boolean invalidResult(Integer id,String invalidReason) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(id); | 
|---|
|  |  |  | if( AllocationApproveEnum.IN_APPROVAL.value >= allocationExt.getState() ) { | 
|---|
|  |  |  | throw new BusinessException("审批结束才能作废!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LambdaUpdateChainWrapper<Allocation> wrapper =lambdaUpdate(); | 
|---|
|  |  |  | wrapper.eq(Allocation::getAllocationId,id).set(Allocation::getInvalidReason,invalidReason).set(BaseInvalidEntity::getIsInvalid, YesOrNo.YES.value); | 
|---|
|  |  |  | return wrapper.update(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AllocationListExt> extList(AllocationListCond allocationListCond) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public boolean applyFor(AllocationExtensionAddCond allocationExtensionAddCond) { | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(allocationExtensionAddCond.getAllocationId()); | 
|---|
|  |  |  | boolean type = false; | 
|---|
|  |  |  | if( !AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | type = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!ChangeEnum.DEADLINE.value.equals(allocationExt.getChangeType())){ | 
|---|
|  |  |  | type = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(type){ | 
|---|
|  |  |  | throw new BusinessException("只有限期整改类型,状态为整改中,才能发起延期申请!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AllocationExtension allocationExtension = allocationExtensionAddCond.convert(); | 
|---|
|  |  |  | allocationExtension.setState(AllocationExtensionApproveEnum.APPLYING.value); | 
|---|
|  |  |  | allocationExtension.setExtensionOldNum(allocationExt.getChangeDay()); | 
|---|
|  |  |  | allocationExtensionService.save(allocationExtension); | 
|---|
|  |  |  | fileTableService.upDateResult(allocationExtensionAddCond.getFileList(),allocationExtension.getId(), FileTableEnum.ALLOCATION_EXTENSION.value); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AllocationFindVo> selectSmallRoutine(Integer state,String startTime,String endTime) { | 
|---|
|  |  |  | ArrayList<AllocationFindVo> allocationFindVos = new ArrayList<>(); | 
|---|
|  |  |  | LambdaQueryWrapper<Allocation> wrapper = new LambdaQueryWrapper<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取用户信息 | 
|---|
|  |  |  | List<Integer> list = unitResult(); | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(list)){ | 
|---|
|  |  |  | Integer integer = list.get(0); | 
|---|
|  |  |  | if (integer==0){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.in(Allocation::getUnitId,list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer integer = unitAreaCode(); | 
|---|
|  |  |  | //普通权限或 管理员 | 
|---|
|  |  |  | if (integer==0 || integer==1){ | 
|---|
|  |  |  | if (state==3){ | 
|---|
|  |  |  | wrapper.in(Allocation::getState,40,50); | 
|---|
|  |  |  | }else if (state==2){ | 
|---|
|  |  |  | wrapper.eq(Allocation::getState,30); | 
|---|
|  |  |  | }else if (state==1){ | 
|---|
|  |  |  | wrapper.eq(Allocation::getState,20); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //区域权限 | 
|---|
|  |  |  | }else if (integer==2){ | 
|---|
|  |  |  | if (state==3){ | 
|---|
|  |  |  | wrapper.in(Allocation::getState,40,50); | 
|---|
|  |  |  | }else if (state==2){ | 
|---|
|  |  |  | wrapper.eq(Allocation::getState,20); | 
|---|
|  |  |  | }else if (state==1){ | 
|---|
|  |  |  | wrapper.eq(Allocation::getState,30); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(startTime) && !ObjectUtils.isEmpty(endTime)){ | 
|---|
|  |  |  | wrapper.between(Allocation::getEscalationTime,startTime,endTime); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.eq(Allocation::getIsDel,0).eq(Allocation::getIsInvalid,0); | 
|---|
|  |  |  | List<Allocation> allocations = allocationMapper.selectList(wrapper); | 
|---|
|  |  |  | for (Allocation allocation : allocations) { | 
|---|
|  |  |  | AllocationFindVo allocationFindVo = new AllocationFindVo(); | 
|---|
|  |  |  | BeanUtils.copyProperties(allocation,allocationFindVo); | 
|---|
|  |  |  | allocationFindVos.add(allocationFindVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        List<AllocationFindVo> allocationFindVos = allocationMapper.selectSmallRoutine(state); | 
|---|
|  |  |  | return allocationFindVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 小程序整改 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param changeCond | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void changeSmallRoutine(AllocationChangeCond changeCond) { | 
|---|
|  |  |  | Integer integer = unitAreaCode(); | 
|---|
|  |  |  | if (integer==1){ | 
|---|
|  |  |  | throw new BusinessException("此账户只能审批,不能整改!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(changeCond.getAllocationId()); | 
|---|
|  |  |  | if(!AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("整改状态,才能提交审批!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Allocation allocation = new Allocation(); | 
|---|
|  |  |  | allocation.setAllocationId(changeCond.getAllocationId()); | 
|---|
|  |  |  | allocation.setIsChange(changeCond.getIsChange()); | 
|---|
|  |  |  | allocation.setChangeName(changeCond.getChangeName()); | 
|---|
|  |  |  | allocation.setChangeDescribe(changeCond.getChangeDescribe()); | 
|---|
|  |  |  | allocation.setState(changeCond.getState()); | 
|---|
|  |  |  | allocation.setChangeTime(new Date()); | 
|---|
|  |  |  | this.updateById(allocation); | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 小程序审批 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param checkCond | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void checkSmallRoutine(AllocationCheckCond checkCond) { | 
|---|
|  |  |  | Integer integer = unitAreaCode(); | 
|---|
|  |  |  | if (integer==0){ | 
|---|
|  |  |  | throw new BusinessException("此账户只能整改,不能审批!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AllocationExt allocationExt = oneAllocation(checkCond.getAllocationId()); | 
|---|
|  |  |  | if(!AllocationApproveEnum.IN_APPROVAL.value.equals(allocationExt.getState())) { | 
|---|
|  |  |  | throw new BusinessException("审批状态,才能进行审批操作!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | QxUser qxUser = UserHelper.getCurrentUser(); | 
|---|
|  |  |  | Allocation allocation = new Allocation(); | 
|---|
|  |  |  | allocation.setCheckScore(checkCond.getCheckScore()); | 
|---|
|  |  |  | allocation.setAllocationId(checkCond.getAllocationId()); | 
|---|
|  |  |  | allocation.setCheckDescribe(checkCond.getCheckDescribe()); | 
|---|
|  |  |  | allocation.setCheckName(qxUser.getUserName()); | 
|---|
|  |  |  | allocation.setCheckTime(new Date()); | 
|---|
|  |  |  | allocation.setState(checkCond.getState()); | 
|---|
|  |  |  | this.updateById(allocation); | 
|---|
|  |  |  | //添加流程数据 | 
|---|
|  |  |  | ApproveTable approveTable = new ApproveTable(); | 
|---|
|  |  |  | approveTable.setRelationId(allocation.getAllocationId()); | 
|---|
|  |  |  | if(AllocationApproveEnum.PASS.value.equals(checkCond.getState())){ | 
|---|
|  |  |  | approveTable.setState(AllocationApproveEnum.PASS.value); | 
|---|
|  |  |  | approveTable.setStateName(AllocationApproveEnum.PASS.name); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | approveTable.setState(AllocationApproveEnum.REFUSE.value); | 
|---|
|  |  |  | approveTable.setStateName(AllocationApproveEnum.REFUSE.name); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value); | 
|---|
|  |  |  | approveTableService.saveResult(approveTable); | 
|---|
|  |  |  | fileTableService.upDateResult(checkCond.getFileApproveList(),checkCond.getAllocationId(), FileTableEnum.ALLOCATION_APPROVE.value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Integer>  unitResult() { | 
|---|
|  |  |  | QxUser user = UserHelper.getCurrentUser(); | 
|---|
|  |  |  | Integer unitId = Objects.nonNull(user.getUnitId())?user.getUnitId():0; | 
|---|
|  |  |  | List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(userList)){ | 
|---|
|  |  |  | return new ArrayList<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userList = responsibilityUnitMapper.selectResultList(unitId); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(userList)){ | 
|---|
|  |  |  | return userList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return Arrays.asList(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer unitAreaCode() { | 
|---|
|  |  |  | 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())){ | 
|---|
|  |  |  | String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId()); | 
|---|
|  |  |  | if(code.length()>6){ | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|