Browse Source

市平台上报相关修改

feature/dangjian
zhaoqifeng 3 years ago
parent
commit
334690dd95
  1. 15
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java
  2. 418
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  3. 86
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java

15
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/PushToCityGridService.java

@ -19,7 +19,6 @@ package com.elink.esua.epdc.modules.item.service;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemHandleProcessDTO;
import com.elink.esua.epdc.dto.item.form.ItemWhistle2GovFormDTO;
@ -33,6 +32,7 @@ public interface PushToCityGridService {
/**
* 诉求结案
*
* @param
*/
Result caseClosedSentoCity(String id);
@ -61,6 +61,7 @@ public interface PushToCityGridService {
* @date 2022/9/19 9:40
*/
void appealSupervise(ItemHandleProcessDTO dto);
/**
* 派遣审核
*
@ -143,29 +144,35 @@ public interface PushToCityGridService {
/**
* 2.8 诉求退件
*
* @author sun
*/
void rebut(ItemHandleProcessDTO dto);
/**
* 2.9 退件审核
*
* @author sun
*/
void rebutAudit(ItemHandleProcessDTO dto);
/**
* 2.10 延期申请
*
* @author sun
*/
void delayApply(ItemHandleProcessDTO dto);
/**
* 2.11 延期审核
*
* @author sun
*/
void delayAudit(ItemHandleProcessDTO dto);
/**
* 再处置向上申请时判断上个节点是退回则(2.9 退件审核)结果为通过
*
* @author sun
*/
void again(ItemHandleProcessDTO dto);
@ -179,6 +186,7 @@ public interface PushToCityGridService {
* @Date 2022/9/19 15:03
*/
void evaluation(String itemId);
/**
* 2.13 初验申请
*
@ -188,6 +196,7 @@ public interface PushToCityGridService {
* @Date 2022/9/19 15:04
*/
void earlyInspectionApply(ItemHandleProcessDTO processDTO);
/**
* 2.14 诉求初验
*
@ -197,6 +206,7 @@ public interface PushToCityGridService {
* @Date 2022/9/19 15:04
*/
void earlyInspection(ItemHandleProcessDTO processDTO);
/**
* 2.15 诉求终验
*
@ -216,10 +226,11 @@ public interface PushToCityGridService {
* @author zhy
* @date 2022/9/16 15:17
*/
void appealAudit(String processId);
void appealAudit(String processId, String auditResult);
/**
* 获取项目节点数据操作人对应的处置标识
*
* @param code
* @return
*/

418
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java

@ -29,10 +29,7 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant;
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.InterfaceLogBusinessTypeEnum;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.enums.*;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
@ -709,7 +706,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
data.setId(entity.getId());
data.setJjcd(CityPushEnum.JJCD_YB.getCode());
data.setSqly(CityPushEnum.SQLY_WLFS.getCode());
data.setSqzt(CityPushEnum.SQZT_DPQ.getCode());
data.setSqzt(CityPushStateEnum.DCL.getCode());
data.setSbqs(CityPushEnum.SBQS_SB.getCode());
data.setDqclhj(CityPushLinkEnum.DJ.getCode());
//执法诉求所属街道的市中心编码
@ -1624,10 +1621,6 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
// pushToCityGridService.AppealReporting(handleProcessEntity.getId(), NumConstant.ZERO_STR);
// 发送菜单消息-待处理项目-吹哨部门
this.sendWhistlingDeptItemHandleMenuNotice(deptIds, null);
pushToCityGridService.appealHandling(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
// 诉求审核,上报市平台
ItemHandleProcessDTO d = ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class);
new DataReport().myRun(d, "2");
//pushToCityGridService.appealAudit(handleProcessEntity.getId());
log.info("处理项目-结案申请-if结束");
} else {
@ -1831,9 +1824,19 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
//工作端 根据不同的处理方式,进行短信通知
this.workProjectHandle(dto);
if (ItemHandleCategoryEnum.HANDLE_CLOSING_CASE_APPLY.getValue() == dto.getHandleCategory()) {
// 诉求处理,上报市平台
pushToCityGridService.appealHandling(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
// 诉求审核,上报市平台
//itemAutoProcessRedis.produce(handleProcessEntity.getId().concat(":3"), System.currentTimeMillis() + (131 * 1000));
//ItemHandleProcessDTO d = ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class);
//new DataReport().myRun(d, "2");
}
} catch (Exception e) {
e.printStackTrace();
}
return new Result();
}
@ -2966,15 +2969,17 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
if (ItemGridPlatformHandleStatusEnum.HANDLE_PQ.getValue() == dto.getState()) {
pushToCityGridService.appealDispatch(dto);//2.2 诉求派遣
//pushToCityGridService.dispatchAudit(dto);//2.4 派遣审核
new DataReport().myRun(dto, "1");
//new DataReport().myRun(dto, "1");
itemAutoProcessRedis.produce(dto.getId().concat(":4"), System.currentTimeMillis() + (131 * 1000));
} else if (ItemGridPlatformHandleStatusEnum.HANDLE_CZ.getValue() == dto.getState()) {
if ("区中心".equals(dto.getGridNextpartname())) {
if ("区中心".equals(dto.getGridNextunitname()) || "区中心".equals(dto.getGridNextpartname())) {
// 诉求上报
pushToCityGridService.appealReporting(dto.getId(), NumConstant.ONE_STR);
} else {
pushToCityGridService.appealDispatch(dto);//2.2 诉求派遣
//pushToCityGridService.dispatchAudit(dto);//2.4 派遣审核
new DataReport().myRun(dto, "1");
//new DataReport().myRun(dto, "1");
itemAutoProcessRedis.produce(dto.getId().concat(":4"), System.currentTimeMillis() + (131 * 1000));
}
} else if (ItemGridPlatformHandleStatusEnum.HANDLE_TD.getValue() == dto.getState()) {
pushToCityGridService.rebut(dto);//2.8 诉求退件
@ -2992,6 +2997,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
} else if (ItemGridPlatformHandleStatusEnum.HANDLE_ZF.getValue() == dto.getState()) {
// 诉求废弃
pushToCityGridService.appealScrap(dto);
} else if (ItemGridPlatformHandleStatusEnum.HANDLE_HT.getValue() == dto.getState()) {
// 诉求审核不通过
pushToCityGridService.appealAudit(dto.getId(), NumConstant.ZERO_STR);
}
// 网格化平台,处置完成、延期申请、申请办结、向上申请
if (ItemGridPlatformHandleStatusEnum.HANDLE_CL.getValue() == dto.getState() ||
@ -3005,28 +3013,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
pushToCityGridService.appealHandling(dto);
// 诉求审核,上报市平台
//pushToCityGridService.appealAudit(dto.getId());
new DataReport().myRun(dto, "2");
}
}
public class DataReport {
public void myRun(ItemHandleProcessDTO dto, String type) {
new Thread(new Runnable() {
@SneakyThrows
@Override
public void run() {
try {
Thread.sleep(131000);
if ("1".equals(type)) {
pushToCityGridService.dispatchAudit(dto);//2.4 派遣审核
} else if ("2".equals(type)) {
pushToCityGridService.appealAudit(dto.getId()); // 诉求审核
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
//itemAutoProcessRedis.produce(dto.getId().concat(":3"), System.currentTimeMillis() + (131 * 1000));
}
}
@ -3393,8 +3380,8 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
data.setSqbm(entity.getSerialNum());
data.setJjcd(CityPushEnum.JJCD_YB.getCode());
data.setSqly(CityPushEnum.SQLY_WLFS.getCode());
data.setSqzt(CityPushEnum.SQZT_DPQ.getCode());
data.setDqclhj(CityPushEnum.DQCLHJ_DJ.getCode());
data.setSqzt(CityPushStateEnum.YJA.getCode());
data.setDqclhj(CityPushLinkEnum.SQCL.getCode());
data.setSbqs(CityPushEnum.SBQS_SB.getCode());
//民生诉求所属网格对应的所属社区的市中心编码
String code = "";
@ -3460,7 +3447,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
data.setId(entity.getId());
data.setJjcd(CityPushEnum.JJCD_YB.getCode());
data.setSqly(CityPushEnum.SQLY_WLFS.getCode());
data.setSqzt(CityPushEnum.SQZT_DPQ.getCode());
data.setSqzt(CityPushStateEnum.DCL.getCode());
data.setSbqs(CityPushEnum.SBQS_SB.getCode());
data.setDqclhj(CityPushLinkEnum.DJ.getCode());
//执法诉求所属街道的市中心编码
@ -3525,7 +3512,6 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
pushToCityGridServiceImpl.saveLog(entity.getId(), null, "诉求登记-发展", PushToCityGridConstant.CASE_DEVELOP, JSONObject.toJSONString(data), resultString);
}
/**
* @param params
* @return
@ -3762,6 +3748,15 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
sendItemToDsf(dto, process);
}
itemHandleProcessDao.insert(process);
if (NumConstant.ZERO_STR.equals(formDto.getCheckFlag())) {
// 社区审批,上报市平台
pushToCityGridService.appealHandling(ConvertUtils.sourceToTarget(process, ItemHandleProcessDTO.class));
// 诉求审核,上报市平台
//itemAutoProcessRedis.produce(process.getId().concat(":3"), System.currentTimeMillis() + (131 * 1000));
//ItemHandleProcessDTO d = ConvertUtils.sourceToTarget(process, ItemHandleProcessDTO.class);
//new DataReport().myRun(d, "2");
}
return new Result();
}
@ -3809,27 +3804,6 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
new PullProcess().myRun(dto.getId());
}
/**
* 拉去项目在网格化平台的进展
* 单独启动线程在上报接口完成后十秒再去拉去
*/
public class PullProcess {
public void myRun(String id) {
new Thread(new Runnable() {
@SneakyThrows
@Override
public void run() {
try {
Thread.sleep(10000);
queryItemHandle(id);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
private EventRejectDoResultDto eventsRejectDo(ItemHandleSubmitFormDTO dto, String recid) throws Exception {
ItemEntity entity = baseDao.selectById(dto.getId());
// 组装上报信息(图片和处理流程)
@ -3988,17 +3962,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
//3.将数据放入redis,供24小时候定时任务自动结案使用
itemAutoProcessRedis.produce(itemPlat.getReferenceId(), itemHandleProcessDto.getCreatedTime().getTime() + (24 * 60 * 60 * 1000));
}
try {
//网格化平台结案/驳回操作增加的推送数据到市平台逻辑报错不能影响原有程序流程
if ("1".equals(formDto.getState())) {
// 上报驳回,上报市平台
log.info("上报驳回,上报市平台" + itemHandleProcessDto.getId());
pushToCityGridService.reportRejection(itemHandleProcessDto.getId());
}
} catch (Exception e) {
logger.error("网格化平台驳回操作,发送事件数据到市中心错误,诉求项目Id->" + itemHandleProcessDto.getItemId());
e.printStackTrace();
}
//项目处理意见图片保存
if (formDto.getImages() != null && formDto.getImages().size() > 0) {
imgService.saveImages(formDto.getImages(), itemHandleProcessDto.getId(), ImageConstant.TYPE_IMAGE_ITEM_OUT_HANDLE);
@ -4020,6 +3984,23 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
districtContentNote.put(item.getMobile(),noteParams);*/
sendShortMessage(districtMobiles, districtContentNote);
}
try {
//网格化平台结案/驳回操作增加的推送数据到市平台逻辑报错不能影响原有程序流程
if ("1".equals(formDto.getState())) {
//诉求审核不同意,上报市平台
//pushToCityGridService.appealAudit(itemHandleProcessDto.getId(), NumConstant.ZERO_STR);
// 上报驳回,上报市平台
//log.info("上报驳回,上报市平台" + itemHandleProcessDto.getId());
//pushToCityGridService.reportRejection(itemHandleProcessDto.getId());
} else {
//诉求审核同意,上报市平台
pushToCityGridService.appealAudit(itemHandleProcessDto.getId(), NumConstant.ONE_STR);
}
} catch (Exception e) {
log.error("网格化平台驳回操作,发送事件数据到市中心错误,诉求项目Id->" + itemHandleProcessDto.getItemId());
e.printStackTrace();
}
return new Result().ok("操作成功");
}
@ -4029,7 +4010,8 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
* @param mobiles
* @param contentNoteList
*/
public void sendShortMessage(List<String> mobiles, Map<String, LinkedHashMap<String, String>> contentNoteList) {
public void sendShortMessage
(List<String> mobiles, Map<String, LinkedHashMap<String, String>> contentNoteList) {
SmsNoticeFormDTO smsNoticeFormDTO = new SmsNoticeFormDTO();
smsNoticeFormDTO.setMobiles(mobiles);
/*smsNoticeFormDTO.setNoteContent(contentNoteList);
@ -4146,7 +4128,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
pushToCityGridService.reportRejection(itemHandleProcessDto.getId());
} else if ("0".equals(formDto.getState())) {
// 诉求审核,上报市平台
pushToCityGridService.appealAudit(itemHandleProcessDto.getId());
pushToCityGridService.appealAudit(itemHandleProcessDto.getId(), NumConstant.ONE_STR);
// 诉求结案,上报市平台
pushToCityGridService.caseClosedSentoCity(itemHandleProcessDto.getId());
log.info("诉求结案,上报市平台");
@ -4216,7 +4198,6 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return list.stream().collect(Collectors.toMap(ItemHandleProcessDTO::getItemId, ItemHandleProcessDTO::getHandlerDeptId, (key1, key2) -> key2));
}
/**
* 获取机构编码
*
@ -4510,13 +4491,49 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
/**
* 定时任务是否可以结案处理
*/
@Override
public void itemClosed(String itemId, String type) {
logger.info("开始执行结案操作,项目Id->" + itemId);
public void itemClosed(String id, String type) {
log.info("开始执行结案操作,Id->" + id + ",type->" + type);
//根据type判断要走的流程
if (StringUtils.isBlank(type) || NumConstant.ONE_STR.equals(type)) {
//诉求评价
evaluate(id);
} else if (NumConstant.TWO_STR.equals(type)) {
//诉求结案
//二次放入缓存取出的数据此时已经上报了评价接口,并且已经评价了,走结案
closed(id);
} else if (NumConstant.THREE_STR.equals(type)) {
//诉求审核
ItemHandleProcessEntity processEntity = itemHandleProcessDao.selectById(id);
if (ItemGridPlatformHandleStatusEnum.HANDLE_BH.getValue() == processEntity.getState()) {
pushToCityGridService.appealAudit(id, NumConstant.ZERO_STR);
} else {
pushToCityGridService.appealAudit(id, NumConstant.ONE_STR);
}
} else if (NumConstant.FOUR_STR.equals(type)) {
//派遣审核
ItemHandleProcessEntity processEntity = itemHandleProcessDao.selectById(id);
pushToCityGridService.dispatchAudit(ConvertUtils.sourceToTarget(processEntity, ItemHandleProcessDTO.class));
} else if (NumConstant.FIVE_STR.equals(type)) {
//社区吹哨,上报市平台
pushToCityGridService.appealReporting(id, NumConstant.ZERO_STR);
}
}
/**
* 结案
*
* @Param itemId
* @Return
* @Author zhaoqifeng
* @Date 2022/11/3 10:47
*/
private void closed(String itemId) {
//1.获取项目基础数据
ItemEntity entity = baseDao.selectById(itemId);
if (null == entity) {
@ -4531,88 +4548,105 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
wrapper.eq("item_id", itemId);
wrapper.eq("del_flag", "0");
List<ItemCommentFeedbackEntity> feedbackEntityList = itemCommentFeedbackDao.selectList(wrapper);
ItemHandleProcessDTO processDTO = new ItemHandleProcessDTO();
//3.判断走评价还是走结案
if (StringUtils.isBlank(type) || "1".equals(type)) {
//首次放入缓存取出的数据先走评价
//3-1.没有评价的赋默认评价值
if (null == entity.getEvaluationScore() || null == entity.getEvaluationTime()) {
entity.setEvaluationScore(2);
//item.setEvaluationContent();
entity.setEvaluationTime(new Date());
entity.setEvaluationState("0");
updateById(entity);
}
//诉求评价
pushToCityGridService.evaluation(itemId);
//3-2.只有首次评价的判断是发展、执法诉求的(这两个诉求项目必须走诉求初验终验逻辑)或者是评价了不满意的民生诉求的需要走市里的初验申请
if (CollUtil.isEmpty(feedbackEntityList) && (!"0".equals(entity.getPeopleFlag()) || (null != entity.getEvaluationScore() && entity.getEvaluationScore() == 0))) {
//logger.info("当前诉求不做结案处理,原因:诉求分类PeopleFlag->" + entity.getPeopleFlag() + ",诉求状态itemState->" + entity.getItemState());
ItemHandleProcessEntity processEntity = new ItemHandleProcessEntity();
processEntity.setId(UUID.randomUUID().toString().replaceAll("-", ""));
processEntity.setItemId(itemId);
processEntity.setState(ItemGridPlatformHandleStatusEnum.HANDLE_CYSQ.getValue());
processEntity.setHandleAdvice("诉求已上报市平台初验申请");
processEntity.setOutHandleAdvice("初验申请");
long id = 0;
String name = "街道";
if (StringUtils.isNotBlank(entity.getAllDeptIds()) && StringUtils.isNotBlank(entity.getAllDeptNames())) {
String[] idList = entity.getAllDeptIds().split(",");
String[] nameList = entity.getAllDeptNames().split("-");
id = idList.length > 1 ? Long.parseLong(idList[1]) : 0;
name = nameList.length > 1 ? nameList[1] : "街道";
}
processEntity.setHandlerDeptId(id);
processEntity.setHandlerDept(name);
itemHandleProcessService.insert(processEntity);
//初验申请
ItemHandleProcessDTO dto = new ItemHandleProcessDTO();
dto.setId(processEntity.getId());
pushToCityGridService.earlyInspectionApply(dto);
return;
} else {
//3-3.已经推了评价接口,下一个流程指定是结案的项目,将其二次放入缓存,待131秒后走结案
itemAutoProcessRedis.produce(itemId.concat(":2"), System.currentTimeMillis() + (131 * 1000));
}
} else if ("2".equals(type)) {
//二次放入缓存取出的数据此时已经上报了评价接口,并且已经评价了,走结案
//3.判断有过反馈的直接结案,是首次评论的则是民生诉求的没有评价的或者评论满意的直接结案
if (CollUtil.isNotEmpty(feedbackEntityList) ||
("0".equals(entity.getPeopleFlag()) && (null == entity.getEvaluationScore() || 0 != entity.getEvaluationScore()))) {
QueryWrapper<ItemHandleProcessEntity> hWrapper = new QueryWrapper<>();
hWrapper.eq("item_id", itemId);
hWrapper.eq("state", ItemGridPlatformHandleStatusEnum.HANDLE_XFPJ.getValue());
hWrapper.eq("del_flag", "0");
hWrapper.orderByDesc(FieldConstant.CREATED_TIME);
hWrapper.last("limit 1");
ItemHandleProcessEntity hEntity = itemHandleProcessDao.selectOne(hWrapper);
if (null == hEntity) {
throw new RenException("获取项目流程节点数据失败,项目Id->" + itemId);
}
QueryWrapper<ImgEntity> iWrapper = new QueryWrapper<>();
iWrapper.eq("reference_id", hEntity.getId());
iWrapper.eq("del_flag", "0");
List<ImgEntity> imgEntityList = imgDao.selectList(iWrapper);
List<String> imgUrlList = imgEntityList.stream().map(ImgEntity::getImgUrl).collect(Collectors.toList());
AcceptPlantformProcessDTO dto = new AcceptPlantformProcessDTO();
dto.setItemId(itemId);
dto.setState("0");
dto.setHandleAdvice(hEntity.getHandleAdvice());
dto.setGridPartyid(hEntity.getGridPartyid());
dto.setGridPartyname(hEntity.getGridPartyname());
dto.setGridUnitid(hEntity.getGridUnitid());
dto.setGridUnitname(hEntity.getGridUnitname());
dto.setGridCantoncode(hEntity.getGridCantoncode());
dto.setImages(imgUrlList);
dto.setCreatedTime(hEntity.getCreatedTime());
processDTO = closedItem(dto);
//3.判断有过反馈的直接结案,是首次评论的则是民生诉求的没有评价的或者评论满意的直接结案
if (CollUtil.isNotEmpty(feedbackEntityList) ||
("0".equals(entity.getPeopleFlag()) && (null == entity.getEvaluationScore() || 0 != entity.getEvaluationScore()))) {
QueryWrapper<ItemHandleProcessEntity> hWrapper = new QueryWrapper<>();
hWrapper.eq("item_id", itemId);
hWrapper.eq("state", ItemGridPlatformHandleStatusEnum.HANDLE_XFPJ.getValue());
hWrapper.eq("del_flag", "0");
hWrapper.orderByDesc(FieldConstant.CREATED_TIME);
hWrapper.last("limit 1");
ItemHandleProcessEntity hEntity = itemHandleProcessDao.selectOne(hWrapper);
if (null == hEntity) {
throw new RenException("获取项目流程节点数据失败,项目Id->" + itemId);
}
QueryWrapper<ImgEntity> iWrapper = new QueryWrapper<>();
iWrapper.eq("reference_id", hEntity.getId());
iWrapper.eq("del_flag", "0");
List<ImgEntity> imgEntityList = imgDao.selectList(iWrapper);
List<String> imgUrlList = imgEntityList.stream().map(ImgEntity::getImgUrl).collect(Collectors.toList());
AcceptPlantformProcessDTO dto = new AcceptPlantformProcessDTO();
dto.setItemId(itemId);
dto.setState("0");
dto.setHandleAdvice(hEntity.getHandleAdvice());
dto.setGridPartyid(hEntity.getGridPartyid());
dto.setGridPartyname(hEntity.getGridPartyname());
dto.setGridUnitid(hEntity.getGridUnitid());
dto.setGridUnitname(hEntity.getGridUnitname());
dto.setGridCantoncode(hEntity.getGridCantoncode());
dto.setImages(imgUrlList);
dto.setCreatedTime(hEntity.getCreatedTime());
closedItem(dto);
}
}
/**
* 评价
*
* @Param itemId
* @Return
* @Author zhaoqifeng
* @Date 2022/11/3 10:47
*/
private void evaluate(String itemId) {
//1.获取项目基础数据
ItemEntity entity = baseDao.selectById(itemId);
if (null == entity) {
throw new RenException("获取项目数据失败,项目Id->" + itemId);
}
//2.判断是已结案的不做处理(第二次可以评价了,没超过24小时用户评价了,此时就是已结案了)
if ("10".equals(entity.getItemState())) {
return;
}
//查询项目反馈数据
QueryWrapper<ItemCommentFeedbackEntity> wrapper = new QueryWrapper<>();
wrapper.eq("item_id", itemId);
wrapper.eq("del_flag", "0");
List<ItemCommentFeedbackEntity> feedbackEntityList = itemCommentFeedbackDao.selectList(wrapper);
//首次放入缓存取出的数据先走评价
//3-1.没有评价的赋默认评价值
if (null == entity.getEvaluationScore() || null == entity.getEvaluationTime()) {
entity.setEvaluationScore(2);
entity.setEvaluationContent("满意");
entity.setEvaluationTime(new Date());
entity.setEvaluationState("0");
updateById(entity);
}
//诉求评价
pushToCityGridService.evaluation(itemId);
//3-2.只有首次评价的判断是发展、执法诉求的(这两个诉求项目必须走诉求初验终验逻辑)或者是评价了不满意的民生诉求的需要走市里的初验申请
if (CollUtil.isEmpty(feedbackEntityList) && (!"0".equals(entity.getPeopleFlag()) || (null != entity.getEvaluationScore() && entity.getEvaluationScore() == 0))) {
//logger.info("当前诉求不做结案处理,原因:诉求分类PeopleFlag->" + entity.getPeopleFlag() + ",诉求状态itemState->" + entity.getItemState());
ItemHandleProcessEntity processEntity = new ItemHandleProcessEntity();
processEntity.setId(UUID.randomUUID().toString().replace("-", ""));
processEntity.setItemId(itemId);
processEntity.setState(ItemGridPlatformHandleStatusEnum.HANDLE_CYSQ.getValue());
processEntity.setHandleAdvice("诉求已上报市平台初验申请");
processEntity.setOutHandleAdvice("初验申请");
long id = 0;
String name = "街道";
if (StringUtils.isNotBlank(entity.getAllDeptIds()) && StringUtils.isNotBlank(entity.getAllDeptNames())) {
String[] idList = entity.getAllDeptIds().split(",");
String[] nameList = entity.getAllDeptNames().split("-");
id = idList.length > 1 ? Long.parseLong(idList[1]) : 0;
name = nameList.length > 1 ? nameList[1] : "街道";
}
processEntity.setHandlerDeptId(id);
processEntity.setHandlerDept(name);
itemHandleProcessService.insert(processEntity);
//初验申请
ItemHandleProcessDTO dto = new ItemHandleProcessDTO();
dto.setId(processEntity.getId());
pushToCityGridService.earlyInspectionApply(dto);
return;
} else {
//3-3.已经推了评价接口,下一个流程指定是结案的项目,将其二次放入缓存,待131秒后走结案
itemAutoProcessRedis.produce(itemId.concat(":2"), System.currentTimeMillis() + (131 * 1000));
}
}
/**
@ -4692,16 +4726,13 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
ItemHandleSubmitFormDTO dto = ConvertUtils.sourceToTarget(formDTO, ItemHandleSubmitFormDTO.class);
dto.setHandlerDeptId(deptId);
dto.setHandlerDept(dept.getData().getName());
reReport(dto);
reReport(dto, ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
}
//上报市平台
pushToCityGridService.earlyInspection(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
// 更新项目最后一次处理时间
ItemEntity itemEntity = new ItemEntity();
itemEntity.setId(formDTO.getId());
itemEntity.setLastHandleTime(new Date());
}
/**
@ -4757,18 +4788,10 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
if (null == hEntity) {
throw new RenException("获取项目下发评价流程节点数据失败,项目Id->" + formDTO.getId());
}
AcceptPlantformProcessDTO dto = new AcceptPlantformProcessDTO();
dto.setItemId(formDTO.getId());
dto.setState("0");
dto.setHandleAdvice(formDTO.getHandleAdvice());
dto.setGridPartyid(hEntity.getGridPartyid());
dto.setGridPartyname(hEntity.getGridPartyname());
dto.setGridUnitid(hEntity.getGridUnitid());
dto.setGridUnitname(hEntity.getGridUnitname());
dto.setGridCantoncode(hEntity.getGridCantoncode());
dto.setImages(formDTO.getHandleImages());
dto.setCreatedTime(new Date());
closedItem(dto);
//上报市平台
pushToCityGridService.endInspection(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
itemAutoProcessRedis.produce(formDTO.getId().concat(":2"), System.currentTimeMillis() + (131 * 1000));
} else {
//不同意,返回初验
String handleAdvice = "诉求终验不同意,处理意见:";
@ -4779,10 +4802,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
handleProcessEntity.setOutHandleAdvice(handleAdvice);
handleProcessEntity.setState(ItemHandleCategoryEnum.HANDLE_I_HANDLE_CHECK_UN_AGREE.getValue());
itemHandleProcessService.insert(handleProcessEntity);
//上报市平台
pushToCityGridService.endInspection(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
}
//上报市平台
pushToCityGridService.endInspection(ConvertUtils.sourceToTarget(handleProcessEntity, ItemHandleProcessDTO.class));
}
/**
@ -4793,7 +4815,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
* @Author zhaoqifeng
* @Date 2022/10/24 15:02
*/
private void reReport(ItemHandleSubmitFormDTO dto) {
private void reReport(ItemHandleSubmitFormDTO dto, ItemHandleProcessDTO process) {
try {
Result deptMessage = adminFeignClient.getDeptTypeKey(dto.getHandlerDeptId());
log.info("处理项目-deptMessage:" + deptMessage);
@ -4838,15 +4860,11 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
handleProcessEntity.setHandleAdviceRemark(dto.getHandleAdviceRemark());
// 当前操作人部门tyeKey
String sendTypeKey = "";
log.info("处理项目-上报网格化平台(社区吹哨)");
handleProcessEntity.setState(ItemHandleCategoryEnum.HANDLE_STREET_REPORT.getValue());
//informationFormDTO.setTitle(EventsNoticeConstant.NOTICE_REPORT);
// 记录处理记录
itemHandleProcessService.insert(handleProcessEntity);
//社区吹哨,上报市平台
pushToCityGridService.appealReporting(handleProcessEntity.getId(), NumConstant.ZERO_STR);
log.info("社区吹哨-上报市平台-结束");
// 更新项目最后一次处理时间
ItemEntity itemEntity = new ItemEntity();
itemEntity.setId(dto.getId());
@ -4896,6 +4914,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
sendItemToDsf(dto, handleProcessEntity);
//工作端 根据不同的处理方式,进行短信通知
this.workProjectHandle(dto);
//诉求初验 上报市平台
pushToCityGridService.earlyInspection(process);
itemAutoProcessRedis.produce(handleProcessEntity.getId().concat(":5"), System.currentTimeMillis() + (131 * 1000));
} catch (Exception e) {
e.printStackTrace();
}
@ -4995,7 +5016,6 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return itemHandleProcessDto;
}
@Override
public Result reportReject(AppealWhistleReportRejectResultDTO formDTO) {
String successFlag = YesOrNoEnum.NO.value();
@ -5077,4 +5097,46 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
dto.getId().toString(), JSONObject.toJSONString(body));
}
public class DataReport {
public void myRun(ItemHandleProcessDTO dto, String type) {
new Thread(new Runnable() {
@SneakyThrows
@Override
public void run() {
try {
Thread.sleep(131000);
if ("1".equals(type)) {
pushToCityGridService.dispatchAudit(dto);//2.4 派遣审核
} else if ("2".equals(type)) {
pushToCityGridService.appealAudit(dto.getId(), NumConstant.ONE_STR); // 诉求审核
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
/**
* 拉去项目在网格化平台的进展
* 单独启动线程在上报接口完成后十秒再去拉去
*/
public class PullProcess {
public void myRun(String id) {
new Thread(new Runnable() {
@SneakyThrows
@Override
public void run() {
try {
Thread.sleep(10000);
queryItemHandle(id);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
}

86
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/PushToCityGridServiceImpl.java

@ -80,14 +80,19 @@ import java.util.stream.Collectors;
@Service
public class PushToCityGridServiceImpl implements PushToCityGridService {
/**
* 初验申请工作人员ID
*/
private static final String SQ_MEMBER_ID = "af652257fdb8436fbcbbec72ec9255e3";
/**
* 诉求初验工作人员ID
*/
private static final String CY_MEMBER_ID = "e192cbe297be47ec84cbcad888d2f0cb";
private final Logger logger = LogManager.getLogger(PushToCityGridServiceImpl.class);
@Resource
private ItemHandleProcessDao itemHandleProcessDao;
@Autowired
private ItemService itemService;
@Autowired
private CityGridApi cityGridApi;
@Resource
@ -101,15 +106,6 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
@Resource
private ImgDao imgDao;
/**
* 初验申请工作人员ID
*/
private static final String SQ_MEMBER_ID = "af652257fdb8436fbcbbec72ec9255e3";
/**
* 诉求初验工作人员ID
*/
private static final String CY_MEMBER_ID = "e192cbe297be47ec84cbcad888d2f0cb";
@Override
public void appealDispatch(ItemHandleProcessDTO formDTO) {
List<ItemHandleProcessDTO> list = new ArrayList<>();
@ -126,7 +122,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 组装数据
AppealDispatchResultDto data = new AppealDispatchResultDto();
data.setSqid(getSqid(item.getItemId()));
data.setSqzt(CityPushStateEnum.DPQ.getCode());
data.setSqzt(CityPushStateEnum.DCL.getCode());
data.setDqclhj(CityPushLinkEnum.SQ_CL.getCode());
data.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN));
data.setCznr(item.getHandleAdvice());
@ -149,10 +145,10 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
pqlistDTO.setClrxm(item.getGridNextpartname());
pqlistDTO.setClrid(item.getGridNextpartid());
//pqlistDTO.setClbm(item.getGridNextunitname());
pqlistDTO.setClbm(StringUtils.isBlank(item.getGridNextunitname())?item.getGridNextpartname():item.getGridNextunitname());//临时
pqlistDTO.setClbm(StringUtils.isBlank(item.getGridNextunitname()) ? item.getGridNextpartname() : item.getGridNextunitname());//临时
pqlistDTO.setClbmbm(item.getNextDisCenterZoningCode());
//pqlistDTO.setCljg(item.getGridNextunitname());
pqlistDTO.setCljg(StringUtils.isBlank(item.getGridNextunitname())?item.getGridNextpartname():item.getGridNextunitname());//临时
pqlistDTO.setCljg(StringUtils.isBlank(item.getGridNextunitname()) ? item.getGridNextpartname() : item.getGridNextunitname());//临时
pqlistDTO.setCljgbm(item.getNextDisCenterZoningCode());
pqlist.add(pqlistDTO);
// 设置派遣信息
@ -244,7 +240,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 处置结果
data.setCzjg(NumConstant.ONE_STR);
// 结案时间
data.setCzsj(DateUtils.format(DateUtils.addDateMinutes(item.getCreatedTime(), (int)(Math.random()*10 + 20)), DateUtils.DATE_TIME_PATTERN));
data.setCzsj(DateUtils.format(DateUtils.addDateMinutes(item.getCreatedTime(), (int) (Math.random() * 10 + 20)), DateUtils.DATE_TIME_PATTERN));
// 操作人
PushToCityGridCaseClosedDTO.CzrDTO czr = new PushToCityGridCaseClosedDTO.CzrDTO();
@ -253,7 +249,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 操作人员唯一标识
czr.setId(item.getGridPartyid());
// 所属机构Id
czr.setSsjgbm(StringUtils.isNotBlank(item.getDisCenterZoningCode())?item.getDisCenterZoningCode():"370203");
czr.setSsjgbm(StringUtils.isNotBlank(item.getDisCenterZoningCode()) ? item.getDisCenterZoningCode() : "370203");
// 所属机构
czr.setSsjg(item.getGridUnitname());
//所属部门id
@ -319,7 +315,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
dto.setSqrlxfs(itemEntity.getMobile());
dto.setSqzynr(itemEntity.getItemContent());
dto.setSqdz(itemEntity.getIssueAddress());
dto.setSqxy(itemEntity.getIssueLongitude()+","+itemEntity.getIssueLatitude());
dto.setSqxy(itemEntity.getIssueLongitude() + "," + itemEntity.getIssueLatitude());
dto.setSqdjrq(DateUtils.format(new Date()));
List<ImgEntity> list = imgDao.selectListByRefeId(itemDTO.getId());
if (!list.isEmpty()) {
@ -538,7 +534,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
dto.setSsbm(item.getGridUnitname());
// 诉求状态(未知)
data.setSqzt(CityPushStateEnum.DPQ.getCode());
data.setSqzt(CityPushStateEnum.DCL.getCode());
// 当前处理环节(未知)
data.setDqclhj(CityPushLinkEnum.QZXYP.getCode());
}
@ -576,7 +572,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 诉求状态(未知)
data.setSqzt(CityPushStateEnum.DCL.getCode());
// 当前处理环节(未知)
data.setDqclhj(CityPushLinkEnum.ZJYP.getCode());
data.setDqclhj(CityPushLinkEnum.SQCL.getCode());
//处置标识
data.setCzbs(getItemCzbs(item.getGridCantoncode()));
// 驳回时间
@ -591,7 +587,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 操作人员唯一标识
dto.setId(item.getGridPartyid());
// 所属机构id
dto.setSsjgbm(StringUtils.isNotBlank(item.getDisCenterZoningCode())?item.getDisCenterZoningCode():"370203");
dto.setSsjgbm(StringUtils.isNotBlank(item.getDisCenterZoningCode()) ? item.getDisCenterZoningCode() : "370203");
// 所属机构名称
dto.setSsjg(item.getGridUnitname());
// 所属部门id
@ -630,9 +626,9 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
// 诉求id
data.setSqid(getSqid(item.getItemId()));
// 诉求状态
data.setSqzt(CityPushStateEnum.DCL.getCode());
data.setSqzt(CityPushStateEnum.DSH.getCode());
// 当前处理环节
data.setDqclhj(CityPushLinkEnum.SQ_CL.getCode());
data.setDqclhj(CityPushLinkEnum.SQSH.getCode());
//处置标识
data.setCzbs(getItemCzbs(item.getGridCantoncode()));
// 执法类型添加类型,纪要,进度字段
@ -790,7 +786,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
RebutResultDTO dto = new RebutResultDTO();
dto.setSqid(getSqid(item.getItemId()));
dto.setSqzt(CityPushStateEnum.DCL.getCode());
dto.setDqclhj(CityPushLinkEnum.SQ_CL.getCode());
dto.setDqclhj(CityPushLinkEnum.TJSH.getCode());
dto.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN));
dto.setCznr(item.getHandleAdvice());
dto.setCzbs(getItemCzbs(item.getGridCantoncode()));
@ -1019,12 +1015,14 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
list.forEach(item -> {
EvaluationResultDTO dto = new EvaluationResultDTO();
dto.setSqid(item.getSqid());
dto.setSqzt(CityPushStateEnum.YJA.getCode());
dto.setDqclhj(CityPushLinkEnum.SQ_PJ.getCode());
dto.setSqzt(CityPushStateEnum.DJA.getCode());
dto.setDqclhj(CityPushLinkEnum.JA.getCode());
//评价结果 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");
@ -1087,7 +1085,7 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
list.forEach(item -> {
EarlyInspectionApplyResultDTO dto = new EarlyInspectionApplyResultDTO();
dto.setSqid(getSqid(item.getItemId()));
dto.setSqzt(CityPushStateEnum.DJA.getCode());
dto.setSqzt(CityPushStateEnum.DYS.getCode());
dto.setDqclhj(CityPushLinkEnum.SQCY.getCode());
//申请内容
dto.setSqnr(item.getHandleAdvice());
@ -1137,13 +1135,15 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
list.forEach(item -> {
EarlyInspectionResultDTO dto = new EarlyInspectionResultDTO();
dto.setSqid(getSqid(item.getItemId()));
dto.setSqzt(CityPushStateEnum.DJA.getCode());
dto.setDqclhj(CityPushLinkEnum.SQ_CY.getCode());
//初验结果 1:初验通过;0:初验不通过
if (ItemHandleCategoryEnum.HANDLE_I_HANDLE_CHECK_APPLY.getValue() == item.getState()) {
dto.setCzjg(NumConstant.ONE_STR);
dto.setSqzt(CityPushStateEnum.DYS.getCode());
dto.setDqclhj(CityPushLinkEnum.SQ_ZY.getCode());
} else {
dto.setCzjg(NumConstant.ZERO_STR);
dto.setSqzt(CityPushStateEnum.DCL.getCode());
dto.setDqclhj(CityPushLinkEnum.ZJYP.getCode());
}
//初验时间
dto.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN));
@ -1194,15 +1194,20 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
list.forEach(item -> {
EndInspectionResultDTO dto = new EndInspectionResultDTO();
dto.setSqid(getSqid(item.getItemId()));
//诉求状态
dto.setSqzt(CityPushStateEnum.DJA.getCode());
//当前处理环节
dto.setDqclhj(CityPushLinkEnum.SQ_ZY.getCode());
//终验结果 1:终验通过;0:终验不通过
if (ItemHandleCategoryEnum.HANDLE_I_HANDLE_CHECK_AGREE.getValue() == item.getState()) {
dto.setCzjg(NumConstant.ONE_STR);
//诉求状态
dto.setSqzt(CityPushStateEnum.YJA.getCode());
//当前处理环节
dto.setDqclhj(CityPushLinkEnum.JA.getCode());
} else {
dto.setCzjg(NumConstant.ZERO_STR);
//诉求状态
dto.setSqzt(CityPushStateEnum.DYS.getCode());
//当前处理环节
dto.setDqclhj(CityPushLinkEnum.SQ_CY.getCode());
}
//终验时间
dto.setCzsj(DateUtils.format(item.getCreatedTime(), DateUtils.DATE_TIME_PATTERN));
@ -1225,17 +1230,23 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
}
@Override
public void appealAudit(String processId) {
public void appealAudit(String processId, String auditResult) {
// 诉求审核,固定在结案之前,查询结案数据即可
ItemHandleProcessEntity entity = itemHandleProcessDao.selectById(processId);
// 拼接数据
AppealAuditResultDTO dto = new AppealAuditResultDTO();
dto.setSqid(getSqid(entity.getItemId()));
dto.setSqzt(CityPushStateEnum.DJA.getCode());
dto.setDqclhj(CityPushLinkEnum.KSLDSH.getCode());
//1.通过,0.不通过
if (NumConstant.ONE_STR.equals(auditResult)) {
dto.setSqzt(CityPushStateEnum.DPJ.getCode());
dto.setDqclhj(CityPushLinkEnum.SQ_PJ.getCode());
} else {
dto.setSqzt(CityPushStateEnum.DCL.getCode());
dto.setDqclhj(CityPushLinkEnum.QZXYP.getCode());
}
dto.setCzbs(getItemCzbs(entity.getGridCantoncode()));
dto.setCzjg(NumConstant.ONE_STR);
dto.setCzjg(auditResult);
dto.setCzsj(DateUtils.format(DateUtils.addDateSeconds(entity.getCreatedTime(), 121), DateUtils.DATE_TIME_PATTERN));
dto.setCzyj(entity.getHandleAdvice());
AppealAuditResultDTO.CzrDTO czr = new AppealAuditResultDTO.CzrDTO();
@ -1345,5 +1356,4 @@ public class PushToCityGridServiceImpl implements PushToCityGridService {
}
}

Loading…
Cancel
Save