diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java index 73bddbf08..6924b7cd6 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java @@ -802,5 +802,11 @@ public class ItemController { log.info("产品调用返回"+itemList.toString()); return itemList; } + + + @PostMapping("gov/pushToCityAgain") + public Result niceItem(){ + return itemService.pushToCityAgain(); + } } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java index 9bd851aa5..55058a4d5 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java @@ -844,4 +844,6 @@ public interface ItemService extends BaseService { Result sqAppeal(AppealAuditFormDTO appealAuditFormDTO); Result> getItemList(Map params); + + Result pushToCityAgain(); } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java index f65882007..906f04a70 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java @@ -54,6 +54,7 @@ import com.elink.esua.epdc.dto.category.CategoryDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO; import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO; import com.elink.esua.epdc.dto.events.EventsCategoryDTO; +import com.elink.esua.epdc.dto.events.PushToCityGridCaseClosedDTO; import com.elink.esua.epdc.dto.events.form.GroupFormDTO; import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO; import com.elink.esua.epdc.dto.form.SmsNoticeFormDTO; @@ -107,6 +108,7 @@ import com.elink.esua.epdc.modules.rocketmq.dto.RejectRecordDTO; import com.elink.esua.epdc.modules.screen.dao.MetaSysDeptDao; import com.elink.esua.epdc.modules.screen.entity.MetaSysDeptEntity; import com.elink.esua.epdc.user.dto.UserDTO; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -122,6 +124,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -6217,4 +6220,377 @@ public class ItemServiceImpl extends BaseServiceImpl implem List itemToEpmetList = baseDao.selectItemList(params); return new Result>().ok(itemToEpmetList); } + + @Override + public Result pushToCityAgain() { + + // todo lichao 重新推送 + + // 获取没有sqid的数据 筛选出 民生中 不是网格员上报 并且sqid是null的数据 + LambdaQueryWrapper itemEntityLambdaQueryWrapper = new LambdaQueryWrapper() + .isNull(ItemEntity::getSqid).eq(ItemEntity::getPeopleFlag,0).ne(ItemEntity::getAppealSource,0); + List itemList = baseDao.selectList(itemEntityLambdaQueryWrapper); + + itemList.forEach(entity -> { + LambdaQueryWrapper hanprocessThree = new LambdaQueryWrapper() + .eq(ItemHandleProcessEntity::getItemId,entity.getId()).eq(ItemHandleProcessEntity::getState,"11").orderByAsc(ItemHandleProcessEntity::getCreatedTime).last("limit 1"); + ItemHandleProcessEntity itemThree = itemHandleProcessDao.selectOne(hanprocessThree); + // 如果诉求处理没有11状态的就不重新推送 + if (itemThree != null){ + + if (entity.getId()!=null){ + // todo 第一步 诉求登记 + CityCaseLivelihoodDTO data = new CityCaseLivelihoodDTO(); + data.setSqly(CityPushEnum.SQLY_WLFS.getCode()); + data.setSqbm(entity.getSerialNum()); + data.setJjcd(CityPushEnum.JJCD_YB.getCode()); + data.setSqzt(CityPushLinkEnum.DJ.getCode()); + data.setDqclhj(CityPushLinkEnum.SQCL.getCode()); + data.setSbqs(CityPushEnum.SBQS_SB.getCode()); + //民生诉求所属网格对应的所属社区的市中心编码 + String code = ""; + String name = ""; + Result resultOne = adminFeignClient.getCompleteDept(entity.getGridId()); + if (resultOne.success()) { + code = resultOne.getData().getCommunityDisCenterZoningCode(); + name = resultOne.getData().getCommunity(); + } + + data.setSqssjg(code); + data.setSqssjgmc(name); + data.setSbrlxfs(entity.getMobile()); + data.setSqzynr(entity.getItemContent()); + data.setSqdz(entity.getIssueAddress()); + double issueLatitude = BigDecimal.valueOf(entity.getIssueLatitude()).setScale(6, RoundingMode.HALF_UP).doubleValue(); + double issueLongitude = BigDecimal.valueOf(entity.getIssueLongitude()).setScale(6, RoundingMode.HALF_UP).doubleValue(); + data.setSqxy(issueLatitude + "," + issueLongitude); + data.setSqdjrq(DateUtils.format(entity.getCreatedTime(), DateUtils.DATE_TIME_PATTERN)); + //诉求登记人 + CityCaseLivelihoodPersonDTO sqdjr = new CityCaseLivelihoodPersonDTO(); + sqdjr.setId(entity.getId()); + sqdjr.setXm(entity.getContactName()); + sqdjr.setSsbm(entity.getGrid()); + sqdjr.setSsbmbm(getJgbm(entity.getGridId())); + sqdjr.setSsjg(name); + sqdjr.setSsjgbm(code); + data.setSqdjr(sqdjr); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("REFERENCE_ID", entity.getEventId() == null ? entity.getId() : entity.getEventId()); + List imageList = imgDao.selectList(wrapper); + //诉求照片 + StringBuffer sqzp = new StringBuffer(); + imageList.forEach(img -> { + sqzp.append(img.getImgUrl().replace(ApiConstants.eventOssUrlBefore, ApiConstants.eventOssUrlAfter)).append(","); + }); + if (StringUtils.isNotBlank(sqzp)) { + data.setSqzp(sqzp.substring(0, sqzp.length() - 1)); + } + data.setSbsm(""); + data.setCzbs("01"); + //发送到市平台 + String resultString = cityGridApi.sendItemToCity(data, PushToCityGridConstant.CASE_LIVELIHOOD, "民生诉求"); + //保存sqid + JSONObject shop_user = JSON.parseObject(resultString); + String sqid = JSON.parseObject(shop_user.getString("data")).getString("sqid"); + entity.setSqid(sqid); + updateById(entity); + //保存日志 + pushToCityGridServiceImpl.saveLog(entity.getId(), null, "诉求登记-民生-2", PushToCityGridConstant.CASE_LIVELIHOOD, JSONObject.toJSONString(data), resultString); + } + + // todo 第二步 诉求响应 + // 找到这一条的processid + LambdaQueryWrapper reportqw = new LambdaQueryWrapper() + .eq(ItemReportInterfaceLogEntity::getItemId,entity.getId()).eq(ItemReportInterfaceLogEntity::getInterfaceName,"响应接收").orderByAsc(ItemReportInterfaceLogEntity::getCreatedTime).last("limit 1"); + ItemReportInterfaceLogEntity itemReportInterfaceLogEntity = itemReportInterfaceLogDao.selectOne(reportqw); + if (itemReportInterfaceLogEntity!=null){ + ItemHandleProcessEntity item = itemHandleProcessDao.selectById(itemReportInterfaceLogEntity.getProcessId()); + if (item!=null){ + // 利用item组装 + ReceiveResultDTO dto = new ReceiveResultDTO(); + dto.setSqid(entity.getSqid()); + dto.setCzbs("01"); + //终验时间 + dto.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN)); + //终验人员 + ReceiveResultDTO.CzrBean czr = new ReceiveResultDTO.CzrBean(); + // 操作人姓名 + czr.setXm(null == SecurityUser.getUser() ? "" : SecurityUser.getUser().getUsername()); + // 操作人员唯一标识 + czr.setId(item.getCreatedBy()); + // 所属机构id + czr.setSsjgbm(getJgbmForAagin(item.getHandlerDeptId(), NumConstant.ZERO_STR)); + // 所属机构名称 + czr.setSsjg(getJgbmForAagin(item.getHandlerDeptId(), NumConstant.ONE_STR)); + // 所属部门id + czr.setSsbmbm(String.valueOf(item.getHandlerDeptId())); + // 所属部门名称 + czr.setSsbm(item.getHandlerDept()); + dto.setCzr(czr); + // 组装好直接推送 + String resultTwo = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.RECEIVE, "响应接收"); + pushToCityGridServiceImpl.saveLog(item.getItemId(), item.getId(), "响应接收-2", PushToCityGridConstant.RECEIVE, JSONObject.toJSONString(dto), resultTwo); + + } + } + + // todo 第三步 诉求处理 + if (itemThree!=null){ + + AppealHandlingToCityResultDTO item = itemHandleProcessDao.getAppealHandling(itemThree.getId(), itemThree.getItemId()); + ItemDTO itemDTO = baseDao.getCategoryInfo(itemThree.getItemId()); + AppealHandlingResultDTO data = new AppealHandlingResultDTO(); + // 诉求标题 + data.setSqbt(itemThree.getTitle()); + // 诉求性质 + data.setSqxz(itemThree.getNature()); + // 诉求id + data.setSqid(getSqid(itemThree.getItemId())); + // 诉求状态 + data.setSqzt(CityPushStateEnum.DSH.getCode()); + // 当前处理环节 + data.setDqclhj(CityPushLinkEnum.SQSH.getCode()); + //处置标识 01 社区处置 02 街道处置 + data.setCzbs(itemThree.getHandlerDeptId()==0?"02":"01"); + // 执法类型添加类型,纪要,进度字段 + if (item.getPeopleFlag().equals(NumConstant.TWO_STR)) { + //办理进度 诉求分类是执法的时候 + //获取taskID + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ItemGridPlatformEntity::getReferenceId, item.getItemId()); + ItemGridPlatformEntity platform = itemGridPlatformDao.selectOne(wrapper); + //调用接口,获取阶段性回复信息 + String url = ApiConstants.GET_ACT_REPLY + platform.getTaskid(); + String result = cityGridApi.getActReply(url); + ActReplyResultDTO actReply = JSONObject.parseObject(result, ActReplyResultDTO.class); + //数据拼接 + List clfjList = new ArrayList<>(); + if (null != actReply) { + if (CollectionUtils.isNotEmpty(actReply.getLhzf())) { + actReply.getLhzf().forEach(bean -> { + AppealHandlingResultDTO.ClfjDTO clfj = new AppealHandlingResultDTO.ClfjDTO(); + clfj.setHyjy(""); + clfj.setHyjysm(item.getLawContent()); + clfj.setZrfg(""); + clfj.setZrfgsm(bean.getRy()); + clfj.setBljdsm(bean.getYgqk()); + if (StringUtils.isNotBlank(bean.getFj())) { + String bljd = ApiConstants.GET_FILE + bean.getFj(); + clfj.setBljd(bljd); + } + clfjList.add(clfj); + }); + } + if (CollectionUtils.isNotEmpty(actReply.getZjhy())) { + actReply.getZjhy().forEach(bean -> { + AppealHandlingResultDTO.ClfjDTO clfj = new AppealHandlingResultDTO.ClfjDTO(); + clfj.setHyjy(""); + clfj.setHyjysm(item.getLawContent()); + clfj.setZrfg(""); + clfj.setZrfgsm(bean.getCjry()); + clfj.setBljdsm(bean.getYgqk()); + if (StringUtils.isNotBlank(bean.getFj())) { + String bljd = ApiConstants.GET_FILE + bean.getFj(); + clfj.setBljd(bljd); + } + clfjList.add(clfj); + }); + } + } + //办理进度 + data.setClfj(clfjList); + } + // 处理类型 + data.setSqlx(itemDTO.getCategoryCodeOrigin()); + // 处理时间 + + data.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN)); + + // 处理内容 + data.setCznr(item.getHandleAdvice()); + // 处理照片 + List urlList = itemHandleProcessDao.getImgUrl(item.getId()); + String url = ""; + for (String i : urlList) { + url = i + "," + url; + } + data.setClzp(url.replace(ApiConstants.eventOssUrlBefore, ApiConstants.eventOssUrlAfter)); + // 操作人 + AppealHandlingResultDTO.CzrDTO dto = new AppealHandlingResultDTO.CzrDTO(); + if ("网格化平台".equals(item.getCreatedBy())) { + // 操作人姓名 + dto.setXm(item.getGridPartyname()); + // 操作人员唯一标识 + dto.setId(item.getGridPartyid()); + dto.setSsjgbm(item.getDisCenterZoningCode()); + dto.setSsjg(item.getGridUnitname()); + dto.setSsbmbm(item.getGridUnitid()); + dto.setSsbm(item.getGridUnitname()); + } else { + // 操作人姓名 + dto.setXm(null == SecurityUser.getUser() ? "" : SecurityUser.getUser().getUsername()); + // 操作人员唯一标识 + dto.setId(item.getCreatedBy()); + // 所属机构id + dto.setSsjgbm(getJgbmForAagin(item.getHandlerDeptId(), NumConstant.ZERO_STR)); + // 所属机构名称 + dto.setSsjg(getJgbmForAagin(item.getHandlerDeptId(), NumConstant.ONE_STR)); + // 所属部门id + dto.setSsbmbm(String.valueOf(item.getHandlerDeptId())); + // 所属部门名称 + dto.setSsbm(item.getHandlerDept()); + } + // 组装完成,推送 + data.setCzr(dto); + String result = cityGridApi.sendItemToCity(data, PushToCityGridConstant.HANDLE, "诉求处理"); + pushToCityGridServiceImpl.saveLog(item.getItemId(), item.getId(), "诉求处理-2", PushToCityGridConstant.HANDLE, JSONObject.toJSONString(data), result); + + } + + + // todo 第四步 诉求审核 + // 找到这一条的processid + reportqw = new LambdaQueryWrapper() + .eq(ItemReportInterfaceLogEntity::getItemId,entity.getId()).eq(ItemReportInterfaceLogEntity::getInterfaceName,"诉求审核").orderByAsc(ItemReportInterfaceLogEntity::getCreatedTime).last("limit 1"); + ItemReportInterfaceLogEntity itemReportInterfaceLogEntityFour = itemReportInterfaceLogDao.selectOne(reportqw); + if (itemReportInterfaceLogEntityFour!=null){ + ItemHandleProcessEntity item = itemHandleProcessDao.selectById(itemReportInterfaceLogEntityFour.getProcessId()); + // 拼接数据 + AppealAuditResultDTO dto = new AppealAuditResultDTO(); + ObjectMapper objectMapper = new ObjectMapper(); + AppealHandlingResultDTO appealHandlingResultDTO = new AppealHandlingResultDTO(); + try { + appealHandlingResultDTO = objectMapper.readValue(itemReportInterfaceLogEntityFour.getCallMsgBody(), AppealHandlingResultDTO.class); + } catch (IOException e) { + + } + if (appealHandlingResultDTO != null){ + appealHandlingResultDTO.setSqid(entity.getSqid()); + // 组装好直接推送 + String result = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.APPEAL_AUDIT, "诉求审核"); + pushToCityGridServiceImpl.saveLog(item.getItemId(), item.getId(), "诉求审核-2", PushToCityGridConstant.APPEAL_AUDIT, JSONObject.toJSONString(dto), result); + } + } + + // todo 第五步 诉求评价 + // 找到这一条的processid + //已评价的item + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(entity.getId()), ItemEntity::getId, entity.getId()); + List list = baseDao.selectList(wrapper); + // 拼接数据 + list.forEach(item -> { + EvaluationResultDTO dto = new EvaluationResultDTO(); + dto.setSqid(item.getSqid()); + dto.setSqzt(CityPushStateEnum.DJA.getCode()); + dto.setDqclhj(CityPushLinkEnum.JA.getCode()); + dto.setJjqk(item.getSolutionInfo()); + //评价结果 01:满意;02:基本满意;03:不满意 + switch (item.getEvaluationScore()) { + case NumConstant.ZERO: + dto.setCzjg("03"); + dto.setSqzt(CityPushStateEnum.DYS.getCode()); + dto.setDqclhj(CityPushLinkEnum.SQCY.getCode()); + break; + case NumConstant.ONE: + dto.setCzjg("02"); + break; + case NumConstant.TWO: + dto.setCzjg("01"); + break; + default: + dto.setCzjg("01"); + break; + } + //评价时间 + dto.setCzsj(DateUtils.format(item.getEvaluationTime(), DateUtils.DATE_TIME_PATTERN)); + //评价意见 + dto.setCzyj(item.getEvaluationContent()); + //评价人员 + EvaluationResultDTO.CzrBean czr = new EvaluationResultDTO.CzrBean(); + czr.setId(item.getUserId()); + if (item.getEvaluationSystemFlag() != null) { + if (item.getEvaluationSystemFlag() == 1) { + czr.setXm("系统评价人员"); + } else { + czr.setXm(item.getNickName()); + } + } else { + czr.setXm(item.getNickName()); + } + czr.setSsbmbm(item.getGridId().toString()); + czr.setSsbm(item.getGrid()); + czr.setSsjgbm(getJgbmForAagin(item.getGridId(), NumConstant.ZERO_STR)); + czr.setSsjg(getJgbmForAagin(item.getGridId(), NumConstant.ONE_STR)); + dto.setCzr(czr); + // 组装好直接推送 + + String result = cityGridApi.sendItemToCity(dto, PushToCityGridConstant.EVALUATION, "诉求评价"); + + pushToCityGridServiceImpl.saveLog(item.getId(), null, "诉求评价-2", PushToCityGridConstant.EVALUATION, JSONObject.toJSONString(dto), result); + }); + + + // todo 第六步 诉求结案 + // 找到这一条的processid + LambdaQueryWrapper hanprocess = new LambdaQueryWrapper() + .eq(ItemHandleProcessEntity::getItemId,entity.getId()).eq(ItemHandleProcessEntity::getState,"60").orderByAsc(ItemHandleProcessEntity::getCreatedTime).last("limit 1"); + ItemHandleProcessEntity item = itemHandleProcessDao.selectOne(hanprocess); + if (item!=null) { + // 组装数据 + PushToCityGridCaseClosedDTO data = new PushToCityGridCaseClosedDTO(); + + // 诉求id + data.setSqid(getSqid(item.getItemId())); + // 诉求状态 + data.setSqzt(CityPushStateEnum.YJA.getCode()); + // 当前处理环节 + data.setDqclhj(CityPushLinkEnum.JA.getCode()); + // 处置结果 + data.setCzjg(NumConstant.ONE_STR); + // 结案时间 + data.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN)); + + // 操作人 + PushToCityGridCaseClosedDTO.CzrDTO czr = new PushToCityGridCaseClosedDTO.CzrDTO(); + // 操作人员名称 + czr.setXm(item.getGridPartyname()); + // 操作人员唯一标识 + czr.setId(item.getGridPartyid()); + // 所属机构Id + czr.setSsjgbm(StringUtils.isNotBlank(item.getDisCenterZoningCode()) ? item.getDisCenterZoningCode() : "370203"); + // 所属机构 + czr.setSsjg(item.getGridUnitname()); + //所属部门id + czr.setSsbmbm(item.getGridUnitid()); + // 所属部门名称 + czr.setSsbm(item.getGridUnitname()); + + // 传数据 + data.setCzr(czr); + String result = cityGridApi.sendItemToCity(data, PushToCityGridConstant.CASE_CLOSED, "诉求结案"); + pushToCityGridServiceImpl.saveLog(item.getItemId(), item.getId(), "诉求结案-2", PushToCityGridConstant.CASE_CLOSED, JSONObject.toJSONString(data), result); + } + } + }); + return new Result(); + } + + private String getJgbmForAagin(Long deptId, String type) { + if (null == deptId || 0L == deptId) { + return ""; + } + CityCenterFromDTO formDTO = new CityCenterFromDTO(); + formDTO.setDeptId(deptId); + MetaSysDeptEntity dept = metaSysDeptDao.selectById(deptId); + if (null != dept) { + if (NumConstant.ZERO_STR.equals(type)) { + return dept.getDisCenterZoningCode(); + } else { + return dept.getName(); + } + } + return ""; + } + }