From 0aea8bd18daaaf91e622fdcfdd81dbb2e1b4860c Mon Sep 17 00:00:00 2001 From: swb <jpy123456> Date: Mon, 21 Oct 2024 09:01:18 +0800 Subject: [PATCH] fix:立行立改责任主体修改提交 --- screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java | 247 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 179 insertions(+), 68 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java index 0b9da91..cbfde2a 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java @@ -6,19 +6,24 @@ 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.ext.responsibility.ResponsibilityUnitExt; import com.moral.api.pojo.query.allocation.*; import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; import com.moral.api.pojo.query.app.AppAllocationFileCond; @@ -28,9 +33,12 @@ 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; @@ -39,9 +47,13 @@ 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 @@ -73,6 +85,8 @@ private SysDictTypeService sysDictTypeService; @Autowired private UserService userService; + @Autowired + private AllocationLogMapper allocationLogMapper; /** * ������������������������������������ @@ -197,9 +211,13 @@ public Map<String, Object> selectUnitView(Map<String, Object> map) { QueryWrapper<Allocation> wrapper = new QueryWrapper<>(); //������������������ + List<Integer> list = this.unitResult(); if (!ObjectUtils.isEmpty(map.get("unitId"))){ - wrapper.in("unit_id",map.get("unitId").toString()); + String unitId = map.get("unitId").toString(); +// unitId.split(","); + List<String> list1 = Arrays.asList(unitId.split(",")); + wrapper.in("unit_id",list1); }else { if (!ObjectUtils.isEmpty(list)){ Integer integer = list.get(0); @@ -211,51 +229,30 @@ } } -// 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(); - startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); +// endTime = DateUtils.getCurDateTime(); +// endTime = DateUtils.getCurDate(); + endTime = DateUtils.getDateOfDay(DateUtils.getCurDate(), 1, DateUtils.yyyy_MM_dd_EN); + startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_EN); + } wrapper.between("escalation_time",startTime,endTime); @@ -321,15 +318,16 @@ //������ int deduction=0; int number=0; + for (Allocation allocation : allocations1) { String state = allocation.getState()+""; Integer changeType = allocation.getChangeType(); String value = ChangeEnum.DEADLINE.value.toString(); if (value.equals(changeType+"")){ - Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()); + Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()+1); Date date = new Date(); boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay); - if (timeBefor && !state.equals("40") && !state.equals("50") && !state.equals("9")){ + if (timeBefor && !state.equals("40") && !state.equals("50") && !state.equals("9")&&!state.equals("30")){ //������������ overdue++; } @@ -383,7 +381,11 @@ //������������������ List<Integer> list = this.unitResult(); if (!ObjectUtils.isEmpty(map.get("unitId"))){ - wrapper.in("unit_id",map.get("unitId").toString()); + String unitId = map.get("unitId").toString(); +// unitId.split(","); + List<String> list1 = Arrays.asList(unitId.split(",")); + wrapper.in("unit_id",list1); +// wrapper.in("unit_id",map.get("unitId").toString()); }else { if (!ObjectUtils.isEmpty(list)){ Integer integer = list.get(0); @@ -394,29 +396,7 @@ } } } -// 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"); @@ -424,16 +404,16 @@ String endTime=null; if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("endTime"))){ startTime = map.get("startTime").toString(); - endTime = map.get("endTime").toString(); + endTime = DateUtils.getDateOfDay(map.get("endTime").toString(), 1, DateUtils.yyyy_MM_dd_EN); } - if (!ObjectUtils.isEmpty(number1)){ + if (Integer.parseInt(number1.toString())>0){ String s = "-"+number1; //������������������ - endTime = DateUtils.getCurDateTime(); - startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); - + endTime = DateUtils.getDateOfDay(DateUtils.getCurDate(), 1, DateUtils.yyyy_MM_dd_EN); + startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_EN); } + wrapper.between("escalation_time",startTime,endTime); wrapper.eq("is_del",0); wrapper.eq("is_invalid",0); @@ -441,6 +421,15 @@ if (ObjectUtils.isEmpty(allocations)){ return null; } + int totals=0; + int sum1=0; + int sum2=0; + int sum3=0; + int sum4=0; + int deductions=0; + int score=0; + int sum5=0; + //������������������������ Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); Set<Integer> unitList = unitMap.keySet(); @@ -456,6 +445,15 @@ //������ int deduction=0; int number=0; + Map<Integer, List<Allocation>> collect = allocations1.stream().collect(Collectors.groupingBy(o -> o.getState())); + //������ + List<Allocation> allocations2 = collect.get(20); + //������ + List<Allocation> allocations3 = collect.get(30); + //������ + List<Allocation> allocations4 = collect.get(40); + //������ + List<Allocation> allocations5 = collect.get(50); for (Allocation allocation : allocations1) { String state = allocation.getState()+""; if (state.equals("40")||state.equals("50")){ @@ -470,21 +468,50 @@ int total = allocations1.size(); String rate = (number * 100 /total)+"%"; + int i1 = ObjectUtils.isEmpty(allocations2) ? 0 : allocations2.size(); + int i2 = ObjectUtils.isEmpty(allocations3) ? 0 : allocations3.size(); + int i3 = ObjectUtils.isEmpty(allocations4) ? 0 : allocations4.size(); + int i4 = ObjectUtils.isEmpty(allocations5) ? 0 : allocations5.size(); map1.put("������������",areaByCode.getAreaName()); map1.put("���������",total); - map1.put("���������",number); - map1.put("������������",total-number); + map1.put("������",i1); + map1.put("������",i2); + map1.put("������",i3); + map1.put("������",i4); +// map1.put("���������",number); +// map1.put("������������",total-number); map1.put("���������",rate); map1.put("������",deduction); map1.put("������",marks); map1.put("���������",marks+deduction); rsMap.add(map1); + //������ + totals = totals + total; + sum1 = sum1 + i1; + sum2 = sum2 + i2; + sum3 = sum3 + i3; + sum4 = sum4 + i4; + deductions = deductions + deduction; + score = score + marks; + sum5 = sum5 + marks+deduction; } + HashMap<String, Object> map1 = new HashMap<>(); + map1.put("������������","������"); + map1.put("���������",totals); + map1.put("������",sum1); + map1.put("������",sum2); + map1.put("������",sum3); + map1.put("������",sum4); + map1.put("������",deductions); + map1.put("������",score); + map1.put("���������",sum5); + rsMap.add(map1); return rsMap; } @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); @@ -496,6 +523,7 @@ }else { it.setIsApprove(0); } + it.setIsCode(ObjectUtils.isEmpty(unitAuthority)?"2":"1"); }); } return page; @@ -913,6 +941,74 @@ 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(); @@ -930,16 +1026,19 @@ @Override public Integer unitAreaCode() { + // 1 ��������� 0������ 2 ������������ QxUser user = UserHelper.getCurrentUser(); List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); if(CollectionUtils.isNotEmpty(userList)){ return 1; } if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0) { - String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId()); - if (code.length() > 6) { + List<ResponsibilityUnitExt> codeList = responsibilityUnitMapper.selectResponsibilityUnitList(user.getUnitId()); + if ( codeList.get(0).getAreaCode().length() > 6) { return 0; - } else { + } else if(codeList.get(0).getAreaCode().length() == 6 && codeList.get(0).getParentCode().equals("320900")) { + return 0; + }else { return 2; } } @@ -960,4 +1059,16 @@ 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; + } } -- Gitblit v1.8.0