|
|
|
@ -18,10 +18,12 @@ |
|
|
|
package com.elink.esua.epdc.modules.item.service.impl; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.NumConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.constant.StrConstant; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.CityPushEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.CityPushLinkEnum; |
|
|
|
import com.elink.esua.epdc.commons.tools.enums.CityPushStateEnum; |
|
|
|
@ -36,8 +38,10 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO; |
|
|
|
import com.elink.esua.epdc.dto.SysDeptDTO; |
|
|
|
import com.elink.esua.epdc.dto.epdc.result.SysDeptAreaCodeResultDTO; |
|
|
|
import com.elink.esua.epdc.dto.events.PushToCityGridCaseClosedDTO; |
|
|
|
import com.elink.esua.epdc.dto.events.result.PushToCityResultDTO; |
|
|
|
import com.elink.esua.epdc.dto.item.ItemDTO; |
|
|
|
import com.elink.esua.epdc.dto.item.ItemHandleProcessDTO; |
|
|
|
import com.elink.esua.epdc.dto.item.form.GetAbnormalDataFormDTO; |
|
|
|
import com.elink.esua.epdc.dto.item.form.ItemWhistle2GovFormDTO; |
|
|
|
import com.elink.esua.epdc.dto.item.result.*; |
|
|
|
import com.elink.esua.epdc.enums.ItemGridPlatformHandleStatusEnum; |
|
|
|
@ -47,18 +51,13 @@ import com.elink.esua.epdc.gird.shibei.contants.ApiConstants; |
|
|
|
import com.elink.esua.epdc.modules.events.dao.ImgDao; |
|
|
|
import com.elink.esua.epdc.modules.events.entity.ImgEntity; |
|
|
|
import com.elink.esua.epdc.modules.feign.AdminFeignClient; |
|
|
|
import com.elink.esua.epdc.modules.item.dao.ItemDao; |
|
|
|
import com.elink.esua.epdc.modules.item.dao.ItemGridPlatformDao; |
|
|
|
import com.elink.esua.epdc.modules.item.dao.ItemHandleProcessDao; |
|
|
|
import com.elink.esua.epdc.modules.item.dao.ItemReportInterfaceLogDao; |
|
|
|
import com.elink.esua.epdc.modules.item.entity.ItemEntity; |
|
|
|
import com.elink.esua.epdc.modules.item.entity.ItemGridPlatformEntity; |
|
|
|
import com.elink.esua.epdc.modules.item.entity.ItemHandleProcessEntity; |
|
|
|
import com.elink.esua.epdc.modules.item.entity.ItemReportInterfaceLogEntity; |
|
|
|
import com.elink.esua.epdc.modules.item.dao.*; |
|
|
|
import com.elink.esua.epdc.modules.item.entity.*; |
|
|
|
import com.elink.esua.epdc.modules.item.service.ItemService; |
|
|
|
import com.elink.esua.epdc.modules.item.service.PushToCityGridService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
import org.apache.commons.collections4.ListUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.logging.log4j.LogManager; |
|
|
|
import org.apache.logging.log4j.Logger; |
|
|
|
@ -106,6 +105,8 @@ public class PushToCityGridServiceImpl implements PushToCityGridService { |
|
|
|
private AdminFeignClient adminFeignClient; |
|
|
|
@Resource |
|
|
|
private ImgDao imgDao; |
|
|
|
@Resource |
|
|
|
private ItemReportErrorLogDao itemReportErrorLogDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void appealDispatch(ItemHandleProcessDTO formDTO) { |
|
|
|
@ -897,6 +898,9 @@ public class PushToCityGridServiceImpl implements PushToCityGridService { |
|
|
|
sqr.setSsbmbm(item.getDisCenterZoningCode()); |
|
|
|
sqr.setSsbm(item.getGridUnitname()); |
|
|
|
dto.setSqr(sqr); |
|
|
|
if (item.getCreatedTime().after(new Date())) { |
|
|
|
dto.setSqsj(DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)); |
|
|
|
} |
|
|
|
// 组装好直接推送
|
|
|
|
String result = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.DELAY_APPLY, "延期申请"); |
|
|
|
//新增日志记录
|
|
|
|
@ -1362,5 +1366,93 @@ public class PushToCityGridServiceImpl implements PushToCityGridService { |
|
|
|
return "02"; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取异常数据 |
|
|
|
* |
|
|
|
* @param formDTO |
|
|
|
* @Param date |
|
|
|
* @Return |
|
|
|
* @Author zhaoqifeng |
|
|
|
* @Date 2022/12/2 10:47 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void getAbnormalData(GetAbnormalDataFormDTO formDTO) { |
|
|
|
if (StringUtils.isBlank(formDTO.getDate())) { |
|
|
|
return; |
|
|
|
} |
|
|
|
//获取诉求列表
|
|
|
|
LambdaQueryWrapper<ItemEntity> itemWrapper = new LambdaQueryWrapper<>(); |
|
|
|
itemWrapper.ge(ItemEntity::getCreatedTime, DateUtils.parse(formDTO.getDate(), DateUtils.DATE_PATTERN)); |
|
|
|
itemWrapper.isNotNull(ItemEntity::getSqid); |
|
|
|
if (CollectionUtils.isNotEmpty(formDTO.getItemIdList())) { |
|
|
|
itemWrapper.in(ItemEntity::getId, formDTO.getItemIdList()); |
|
|
|
} |
|
|
|
List<ItemEntity> items = itemDao.selectList(itemWrapper); |
|
|
|
if (CollectionUtils.isNotEmpty(items)) { |
|
|
|
//提取未结案诉求的sqID
|
|
|
|
List<String> sqIdList = items.stream().filter(i -> i.getItemState() == NumConstant.ZERO).map(ItemEntity::getSqid).collect(Collectors.toList()); |
|
|
|
//提取已结案诉求的sqID
|
|
|
|
List<String> closedSqIdList = items.stream().filter(i -> i.getItemState() == NumConstant.TEN).map(ItemEntity::getSqid).collect(Collectors.toList()); |
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(sqIdList)) { |
|
|
|
extracted(sqIdList, NumConstant.ZERO); |
|
|
|
} |
|
|
|
if (CollectionUtils.isNotEmpty(closedSqIdList)) { |
|
|
|
LambdaQueryWrapper<ItemReportErrorLogEntity> logWrapper = new LambdaQueryWrapper<>(); |
|
|
|
logWrapper.eq(ItemReportErrorLogEntity::getItemState, NumConstant.TEN); |
|
|
|
List<ItemReportErrorLogEntity> list = itemReportErrorLogDao.selectList(logWrapper); |
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
List<String> ids = list.stream().map(ItemReportErrorLogEntity::getItemId).collect(Collectors.toList()); |
|
|
|
//取差集
|
|
|
|
closedSqIdList = closedSqIdList.stream().filter(sqid -> !ids.contains(sqid)).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
extracted(closedSqIdList, NumConstant.TEN); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void extracted(List<String> sqIdList, Integer itemState) { |
|
|
|
//50个一组
|
|
|
|
List<List<String>> partList = ListUtils.partition(sqIdList, NumConstant.FIFTY); |
|
|
|
partList.forEach(part -> { |
|
|
|
String sqIds = StringUtils.join(part, StrConstant.COMMA); |
|
|
|
DeleteResultDTO dto = new DeleteResultDTO(); |
|
|
|
dto.setSqid(sqIds); |
|
|
|
String result = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.QUERY, "诉求查询"); |
|
|
|
if (!NumConstant.ZERO_STR.equals(JSON.parseObject(result).get("code").toString())) { |
|
|
|
return; |
|
|
|
} |
|
|
|
PushToCityResultDTO pushToCityResult = JSON.parseObject(result, PushToCityResultDTO.class); |
|
|
|
//替换反斜线
|
|
|
|
String data = pushToCityResult.getData().replace("\\", ""); |
|
|
|
List<PushToCityResultDTO> list = JSON.parseArray(data, PushToCityResultDTO.class); |
|
|
|
list.stream().filter(i -> i.getData().contains("数据异常")).collect(Collectors.toList()).forEach(item -> { |
|
|
|
String msg = item.getData(); |
|
|
|
ItemReportErrorLogEntity entity = new ItemReportErrorLogEntity(); |
|
|
|
entity.setItemId(msg.substring("诉求ID ".length(), "诉求ID ".length() + 32)); |
|
|
|
entity.setErrorMsg(msg.substring(msg.indexOf("不合规原因"))); |
|
|
|
entity.setItemState(itemState); |
|
|
|
DeleteResultDTO delete = new DeleteResultDTO(); |
|
|
|
delete.setSqid(entity.getItemId()); |
|
|
|
delete.setScyy("异常数据"); |
|
|
|
String deleteResult = cityGridApi.sendItemToCity(delete, PushToCityGridConstant.DELETE, "诉求查询"); |
|
|
|
if (NumConstant.ZERO_STR.equals(JSON.parseObject(deleteResult).get("code").toString())) { |
|
|
|
entity.setSuccessFlag(NumConstant.ONE_STR); |
|
|
|
} else { |
|
|
|
entity.setSuccessFlag(NumConstant.ZERO_STR); |
|
|
|
} |
|
|
|
LambdaQueryWrapper<ItemReportErrorLogEntity> logWrapper = new LambdaQueryWrapper<>(); |
|
|
|
logWrapper.eq(ItemReportErrorLogEntity::getItemId, entity.getItemId()); |
|
|
|
ItemReportErrorLogEntity log = itemReportErrorLogDao.selectOne(logWrapper); |
|
|
|
if (null == log) { |
|
|
|
itemReportErrorLogDao.insert(entity); |
|
|
|
} else { |
|
|
|
entity.setId(log.getId()); |
|
|
|
itemReportErrorLogDao.updateById(entity); |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|