From 2c7324f3b7862999139075fd35032be885fc9c31 Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Tue, 22 Oct 2024 15:03:47 +0800 Subject: [PATCH] feat:增加网格待办相关功能 --- dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/xml/GridCaseTaskMapper.xml | 202 +++++++++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java | 143 ++++++ dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/GridCaseTaskMapper.java | 64 +++ dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoDeleteRequestVo.java | 1 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCaseTaskService.java | 148 +++++++ dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridGetToDoVo.java | 2 dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridTaskVo.java | 16 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridCaseTask.java | 126 ++++++ dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchRequestVo.java | 1 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchUpdateRequestVo.java | 1 dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoVo.java | 6 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridCaseTaskWebController.java | 220 ++++++++++ dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoBacthVo.java | 2 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/bo/GridCaseTaskBO.java | 17 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoGetRequestVo.java | 1 dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java | 54 ++ dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoRequestVo.java | 1 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridToDoService.java | 69 +++ dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridBaseConsts.java | 11 dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java | 62 ++ dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java | 34 + dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridToDoController.java | 48 + dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridIdsVo.java | 2 23 files changed, 1,218 insertions(+), 13 deletions(-) diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridBaseConsts.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridBaseConsts.java new file mode 100644 index 0000000..e8edcf2 --- /dev/null +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridBaseConsts.java @@ -0,0 +1,11 @@ +package cn.huge.module.sys.constant; + +public class GridBaseConsts { + /** + * 网格通知类型,1:待分派,2:待签收,3:待受理,4:待审核 + */ + public static final String GRID_TYPE_1 = "【待分派】"; + public static final String GRID_TYPE_2 = "【待签收】"; + public static final String GRID_TYPE_3 = "【待受理】"; + public static final String GRID_TYPE_4 = "【待审核】"; +} diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java new file mode 100644 index 0000000..04c2de1 --- /dev/null +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/constant/GridEnum.java @@ -0,0 +1,54 @@ +package cn.huge.module.sys.constant; + +public enum GridEnum { + GRID_OBJECT_TYPE_1("11", "待分派矛调工单"), + GRID_OBJECT_TYPE_2("12", "待签收矛调工单"), + GRID_OBJECT_TYPE_3("13", "待受理矛调工单"), + GRID_OBJECT_TYPE_4("14", "待审核矛调工单"), + GRID_TODO_TYPE_5("5", "矛盾纠纷"); + + /** + * 代码编号 + */ + private String index; + + /** + * 名称 + */ + private String des; + + public String getIndex() { + return index; + } + + public void setIndex(String index) { + this.index = index; + } + + public String getDes() { + return des; + } + + public void setDes(String des) { + this.des = des; + } + + GridEnum(String index, String des) { + this.index = index; + this.des = des; + } + + /** + * 静态方法 + * @param index + * @return + */ + public static String getDes(String index) { + for (GridEnum gridEnum : GridEnum.values()) { + if (gridEnum.getIndex().equals(index)) { + return gridEnum.des; + } + } + return null; + } +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridGetToDoVo.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridGetToDoVo.java similarity index 93% rename from dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridGetToDoVo.java rename to dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridGetToDoVo.java index 828a7a3..9429f92 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridGetToDoVo.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridGetToDoVo.java @@ -1,4 +1,4 @@ -package cn.huge.module.grid.domain.vo; +package cn.huge.module.sys.vo; import lombok.Data; diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridIdsVo.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridIdsVo.java similarity index 73% rename from dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridIdsVo.java rename to dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridIdsVo.java index 58bf7ed..9449b76 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridIdsVo.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridIdsVo.java @@ -1,4 +1,4 @@ -package cn.huge.module.grid.domain.vo; +package cn.huge.module.sys.vo; import lombok.Data; diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridTaskVo.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridTaskVo.java new file mode 100644 index 0000000..acf8ec7 --- /dev/null +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridTaskVo.java @@ -0,0 +1,16 @@ +package cn.huge.module.sys.vo; + +import lombok.Data; + +@Data +public class GridTaskVo { + /** + * 事件编号 + */ + private String caseId; + + /** + * 任务编号 + */ + private String caseTaskId; +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBacthVo.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoBacthVo.java similarity index 95% rename from dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBacthVo.java rename to dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoBacthVo.java index b8678c5..89405e0 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBacthVo.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoBacthVo.java @@ -1,4 +1,4 @@ -package cn.huge.module.grid.domain.vo; +package cn.huge.module.sys.vo; import lombok.Data; diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoVo.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoVo.java similarity index 90% rename from dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoVo.java rename to dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoVo.java index 9ee5372..b9d362f 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoVo.java +++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/sys/vo/GridToDoVo.java @@ -1,4 +1,4 @@ -package cn.huge.module.grid.domain.vo; +package cn.huge.module.sys.vo; import lombok.Data; @@ -52,4 +52,8 @@ */ private String mobile; + /** + * 事件编号 + */ + private String caseId; } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java index e8ba37a..7d3d06d 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseTaskService.java @@ -34,13 +34,19 @@ import cn.huge.module.flow.domain.po.FlowNode; import cn.huge.module.flow.service.FlowInfoService; import cn.huge.module.mediate.constant.*; +import cn.huge.module.sys.constant.GridBaseConsts; +import cn.huge.module.sys.constant.GridEnum; import cn.huge.module.sys.constant.SyTimeEnum; import cn.huge.module.sys.dto.FileIdTypeInfoBaseDTO; +import cn.huge.module.sys.vo.GridTaskVo; +import cn.huge.module.sys.vo.GridToDoBacthVo; +import cn.huge.module.sys.vo.GridToDoVo; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; +import lombok.extern.java.Log; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -1205,6 +1211,13 @@ caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoService.updateCaseInfo(caseInfoPO); + + try { + //添加网格待办 + this.createGridToDo(caseInfo, dfpCaseTask, GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1); + }catch (Exception e){ + log.error("添加网格待办失败"); + } }else { // 调度给调解组织,默认通过第1个任务节点-镇街综治中心待分派 CaseTask dfpCaseTask = new CaseTask(); @@ -1283,6 +1296,13 @@ caseInfoPO.setInfoProcess(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getIndex()); caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoService.updateCaseInfo(caseInfoPO); + + try { + //添加网格待办 + this.createGridToDo(caseInfo, dslCaseTask, GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3); + }catch (Exception e){ + log.error("添加网格待办失败"); + } } } } @@ -1390,6 +1410,14 @@ caseInfoUnfoldPO.setMediateUnitId(blfkCaseTask.getCandeUnitId()); caseInfoUnfoldPO.setMediateUnitName(blfkCaseTask.getCandeUnitName()); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + + try { + //添加网格待办 + this.createGridToDo(caseInfo, blfkCaseTask, GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3); + }catch (Exception e){ + log.error("添加网格待办失败"); + } + return blfkCaseTask.getId(); }catch (Exception e){ log.error("[CaseTaskService.webStartFlowZXSL]调用失败,异常信息:"+e, e); @@ -1475,6 +1503,8 @@ caseDismiss.setCreateTime(nowDate); caseDismiss.setUpdateTime(nowDate); caseDismissService.save(caseDismiss); + //删除网格待办 + this.deleteGridTodo(caseTask); }catch (Exception e){ log.error("[CaseTaskService.webAssign]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webAssign", e); @@ -1572,6 +1602,7 @@ dslCaseTask.setUpdateTime(nowDate); mapper.insert(dslCaseTask); // 更新纠纷信息 + CaseInfo caseInfo = caseInfoService.getCaseInfo(dslCaseTask.getCaseId()); CaseInfo caseInfoPO = new CaseInfo(); caseInfoPO.setId(dslCaseTask.getCaseId()); caseInfoPO.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_3.getIndex()); @@ -1582,6 +1613,12 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); + + try { + this.taskFlowGridToDo(caseInfo, dslCaseTask, assignTaskDTO.getCaseTaskId(), GridEnum.GRID_OBJECT_TYPE_2.getIndex(), GridBaseConsts.GRID_TYPE_2); + }catch (Exception e){ + log.error("添加网格待办失败"); + } // 交办配合组织 if (CollectionUtils.isNotEmpty(assignTaskDTO.getAssistUnitList())){ @@ -1672,6 +1709,12 @@ caseAssistInfoPO.setCreateTime(nowDate); caseAssistInfoPO.setUpdateTime(nowDate); caseAssistInfoService.save(caseAssistInfoPO); + + try { + this.createGridToDo(caseInfo, lhczdslCaseTask, GridEnum.GRID_OBJECT_TYPE_2.getIndex(), GridBaseConsts.GRID_TYPE_2); + }catch (Exception e){ + log.error("添加网格待办失败"); + } } // 更新纠纷扩展信息 CaseInfoUnfold caseInfoUnfoldPO = new CaseInfoUnfold(); @@ -1721,6 +1764,10 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); + } + CaseInfo caseInfo = caseInfoService.getCaseInfo(qsCaseTask.getCaseId()); + if(ObjectUtils.isNotEmpty(caseInfo)){ + this.taskFlowGridToDo(caseInfo, caseTaskPO, caseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3); } } }catch (Exception e){ @@ -1797,6 +1844,10 @@ blfkCaseTask.setCreateTime(nowDate); blfkCaseTask.setUpdateTime(nowDate); mapper.insert(blfkCaseTask); + + //删除网格待办状态 + this.deleteGridTodo(dslCaseTaskPO); + // 承办组织受理才更新纠纷信息 if (CaseTaskConsts.CASE_TASK_TYPE_1 == dslCaseTask.getCaseTaskType()) { // 更新纠纷信息 @@ -2324,6 +2375,8 @@ caseInfoUnfoldPO.setWindupContent(caseWindupApply.getWindupContent()); caseInfoUnfoldPO.setUpdateTime(nowDate); caseInfoUnfoldService.updateCaseInfoUnfold(caseInfoUnfoldPO); + + this.createGridToDo(caseInfo, jashCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4); } } // 查询联合处置申请单,全部结束申请单 @@ -2707,6 +2760,8 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); + + this.deleteGridTodo(jashCaseTaskPO); } }catch (Exception e){ log.error("[CaseTaskService.webWindupApply]调用失败,异常信息:"+e, e); @@ -2794,6 +2849,9 @@ caseReturn.setCaseTaskId(htshCaseTask.getId()); caseReturn.setCaseTaskType(htshCaseTask.getCaseTaskType()); caseReturnService.save(caseReturn); + //添加网格审核任务 + CaseInfo caseInfo = caseInfoService.getCaseInfo(thisCaseTask.getCaseId()); + this.createGridToDo(caseInfo, htshCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4); }catch (Exception e){ log.error("[CaseTaskService.webReturnApply]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webReturnApply", e); @@ -2910,6 +2968,10 @@ .eq("process_instance_id", assistCaseTask.getProcessInstanceId()) .eq("assist_status", CaseTaskConsts.ASSIST_STATUS_0).set("assist_status", CaseTaskConsts.ASSIST_STATUS_2); caseAssistInfoService.update(caseAssistInfoUpdateWrapper); + + //修改网格待办 + CaseInfo caseInfo = caseInfoService.getCaseInfo(htshCaseTask.getCaseId()); + this.taskFlowGridToDo(caseInfo, assistCaseTask, htshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1); } }else { // 更新联合处置信息 @@ -2922,6 +2984,7 @@ caseAssistInfo.setAssistStatus(CaseTaskConsts.ASSIST_STATUS_1); caseAssistInfoService.updateCaseAssistInfo(caseAssistInfo); } + this.deleteGridTodo(htshCaseTaskPO); } }else { // 审核不通过 @@ -2990,6 +3053,9 @@ nextCaseTask.setCreateTime(nowDate); nextCaseTask.setUpdateTime(nowDate); mapper.insert(nextCaseTask); + //修改网格待办 + CaseInfo caseInfo = caseInfoService.getCaseInfo(htshCaseTask.getCaseId()); + this.taskFlowGridToDo(caseInfo, nextCaseTask, htshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_3.getIndex(), GridBaseConsts.GRID_TYPE_3); } }catch (Exception e){ log.error("[CaseTaskService.webReturnAudit]调用失败,异常信息:"+e, e); @@ -3073,6 +3139,9 @@ // 新增上报申请信息 caseAppear.setCaseTaskId(sbshCaseTask.getId()); caseAppearService.save(caseAppear); + //添加网格审核任务 + CaseInfo caseInfo = caseInfoService.getCaseInfo(thisCaseTask.getCaseId()); + this.createGridToDo(caseInfo, sbshCaseTask, GridEnum.GRID_OBJECT_TYPE_4.getIndex(), GridBaseConsts.GRID_TYPE_4); }catch (Exception e){ log.error("[CaseTaskService.webAppearApply]调用失败,异常信息:"+e, e); throw new ServiceException("CaseTaskService.webAppearApply", e); @@ -3161,6 +3230,10 @@ caseInfoPO.setInfoProcessName(CaseInfoProcessBaseConstsEnum.getByProcess(caseInfoPO.getProcess()).getDes()); caseInfoPO.setUpdateTime(nowDate); caseInfoService.updateCaseInfo(caseInfoPO); + + //网格待办任务处理 + CaseInfo caseInfo = caseInfoService.getCaseInfo(sbshCaseTask.getCaseId()); + this.taskFlowGridToDo(caseInfo, dfphCaseTask, sbshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1); }else { // 审核不通过 // 完成当前上报审核任务 @@ -3214,6 +3287,10 @@ dfphCaseTask.setCreateTime(nowDate); dfphCaseTask.setUpdateTime(nowDate); mapper.insert(dfphCaseTask); + + //网格待办任务处理 + CaseInfo caseInfo = caseInfoService.getCaseInfo(sbshCaseTask.getCaseId()); + this.taskFlowGridToDo(caseInfo, dfphCaseTask, sbshCaseTaskPO.getId(), GridEnum.GRID_OBJECT_TYPE_1.getIndex(), GridBaseConsts.GRID_TYPE_1); } }catch (Exception e){ log.error("[CaseTaskService.webAppearAudit]调用失败,异常信息:"+e, e); @@ -3247,4 +3324,70 @@ } } + public void deleteGridTodo(CaseTask caseTask) { + try { + //删除网格待办任务 + GridTaskVo gridTaskVo = new GridTaskVo(); + gridTaskVo.setCaseId(caseTask.getCaseId()); + gridTaskVo.setCaseTaskId(caseTask.getId()); + sysClient.deleteTaskTodo(gridTaskVo); + } catch (Exception e) { + log.error("添加网格待办失败"); + } + } + + public void createGridToDo(CaseInfo caseInfo, CaseTask caseTask, String gridObjType, String noticeTypeName){ + try { + //添加网格待办 + GridToDoBacthVo gridToDoBacthVo = new GridToDoBacthVo(); + gridToDoBacthVo.setObjId(caseTask.getId()); + gridToDoBacthVo.setObjType(gridObjType); + gridToDoBacthVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex()); + gridToDoBacthVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants()+"的"+caseInfo.getCaseTypeName()+"事件"); + gridToDoBacthVo.setLimitTime(String.valueOf(caseTask.getExpireTime())); + sysClient.createTaskToDo(gridToDoBacthVo, caseTask.getCandeUnitId()); + } catch (Exception e) { + log.error("添加网格待办失败"); + log.error(e.getMessage(), e); + } + } + + public void updateGridToDo(CaseInfo caseInfo, CaseTask caseTask, String previousTaskId, String gridObjType, String noticeTypeName) { + try { + //添加网格待办 + GridToDoVo gridToDoVo = new GridToDoVo(); + gridToDoVo.setObjId(caseTask.getId()); + gridToDoVo.setObjType(gridObjType); + gridToDoVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex()); + gridToDoVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants() + "的" + caseInfo.getCaseTypeName() + "事件"); + gridToDoVo.setLimitTime(String.valueOf(caseTask.getExpireTime())); + gridToDoVo.setCaseId(caseInfo.getId()); + sysClient.updateTaskTodo(gridToDoVo, previousTaskId); + } catch (Exception e) { + log.error("添加网格待办失败"); + log.error(e.getMessage(), e); + } + } + + public void taskFlowGridToDo(CaseInfo caseInfo, CaseTask caseTask, String previousTaskId, String gridObjType, String noticeTypeName) { + try { + //删除网格待办任务 + GridTaskVo gridTaskVo = new GridTaskVo(); + gridTaskVo.setCaseId(caseInfo.getId()); + gridTaskVo.setCaseTaskId(previousTaskId); + sysClient.deleteTaskTodo(gridTaskVo); + //添加网格待办 + GridToDoVo gridToDoVo = new GridToDoVo(); + gridToDoVo.setObjId(caseTask.getId()); + gridToDoVo.setObjType(gridObjType); + gridToDoVo.setTodoType(GridEnum.GRID_TODO_TYPE_5.getIndex()); + gridToDoVo.setTitle(noticeTypeName + caseInfo.getPlaintiffs() + "和" + caseInfo.getDefendants() + "的" + caseInfo.getCaseTypeName() + "事件"); + gridToDoVo.setLimitTime(String.valueOf(caseTask.getExpireTime())); + gridToDoVo.setCaseId(caseInfo.getId()); + sysClient.updateTaskTodo(gridToDoVo, previousTaskId); + } catch (Exception e) { + log.error("添加网格待办失败"); + log.error(e.getMessage(), e); + } + } } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java index e43b0e8..63b02a2 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/SysClient.java @@ -1,12 +1,16 @@ package cn.huge.module.client.api; +import cn.huge.base.common.bo.R; import cn.huge.base.common.bo.ReturnBO; +import cn.huge.module.sys.vo.GridIdsVo; +import cn.huge.module.sys.vo.GridTaskVo; +import cn.huge.module.sys.vo.GridToDoBacthVo; +import cn.huge.module.sys.vo.GridToDoVo; import cn.huge.module.cases.domain.dto.FileRelateDTO; import cn.huge.module.sys.dto.FileTypeTermsDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; -import java.util.Date; import java.util.List; import java.util.Map; @@ -92,4 +96,32 @@ */ @GetMapping("/api/web/syRegion/listByParentId") ReturnBO listByParentId(@RequestParam(value = "parentId") String parentId); + + /** + * 创建待办 + * @url {ctx}/api/thrid/grid/todo/create-task-todo + * @param gridToDoBacthVo + * @param unitId + * @return GridToDoVo + */ + @PostMapping("/api/thrid/grid/todo/create-task-todo") + R<List<GridToDoVo>> createTaskToDo(@RequestBody GridToDoBacthVo gridToDoBacthVo, @RequestParam(value = "unitId")String unitId); + + /** + * 更新待办 + * @url {ctx}/api/thrid/grid/todo/update-task-todo + * @param gridToDoVo + * @return GridToDoVo + */ + @PostMapping("/api/thrid/grid/todo/update-task-todo") + R<List<GridToDoVo>> updateTaskTodo(@RequestBody GridToDoVo gridToDoVo, @RequestParam(value = "previousTaskId") String previousTaskId); + + /** + * 删除待办 + * @url {ctx}/api/thrid/grid/todo/delete-task-todo + * @param gridTaskVo + * @return gridIdsVo + */ + @PostMapping("/api/thrid/grid/todo/delete-task-todo") + R<String> deleteTaskTodo(@RequestBody GridTaskVo gridTaskVo); } diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java index dba4bc4..72123c5 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/client/api/impl/SysClientImpl.java @@ -1,9 +1,14 @@ package cn.huge.module.client.api.impl; +import cn.huge.base.common.bo.R; import cn.huge.base.common.bo.ReturnBO; import cn.huge.base.common.constant.ReturnConsts; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.ObjectUtils; +import cn.huge.module.sys.vo.GridIdsVo; +import cn.huge.module.sys.vo.GridTaskVo; +import cn.huge.module.sys.vo.GridToDoBacthVo; +import cn.huge.module.sys.vo.GridToDoVo; import cn.huge.module.cases.domain.dto.FileRelateDTO; import cn.huge.module.client.api.SysClient; import cn.huge.module.sys.constant.TimeUnitConsts; @@ -265,4 +270,61 @@ return queAreaDTOList; } + /** + * 创建待办 + * @url {ctx}/api/thrid/grid/todo/create-task-todo + * @param gridToDoBacthVo + * @param unitId + * @return + */ + public void createTaskToDo(GridToDoBacthVo gridToDoBacthVo, String unitId){ + try{ + R<List<GridToDoVo>> gridToDoBo = sysClient.createTaskToDo(gridToDoBacthVo, unitId); + if (ReturnConsts.OK != gridToDoBo.getCode()){ + log.error("Client外服务接口[SysClientImpl.createToDo]请求异常:" + gridToDoBo.getMsg()); + }else { + log.info("创建工单成功"); + } + }catch (Exception e){ + log.error("service方法[SysClientImpl.createToDo]调用异常:"+e, e); + } + } + + /** + * 更新待办 + * @url {ctx}/api/thrid/grid/todo/update-task-todo + * @param gridToDoVo + * @return + */ + public void updateTaskTodo(GridToDoVo gridToDoVo, String previousTaskId){ + try{ + R<List<GridToDoVo>> gridToDoBo = sysClient.updateTaskTodo(gridToDoVo, previousTaskId); + if (ReturnConsts.OK != gridToDoBo.getCode()){ + log.error("Client外服务接口[SysClientImpl.updateTodo]请求异常:" + gridToDoBo.getMsg()); + }else{ + log.info("修改工单成功"); + } + }catch (Exception e){ + log.error("service方法[SysClientImpl.updateTodo]调用异常:"+e, e); + } + } + + /** + * 批量删除待办 + * @url {ctx}/api/thrid/grid/todo/delete-task-todo + * @param gridTaskVo + * @return + */ + public void deleteTaskTodo(GridTaskVo gridTaskVo){ + try{ + R<String> gridToDoBo = sysClient.deleteTaskTodo(gridTaskVo); + if (ReturnConsts.OK != gridToDoBo.getCode()){ + log.error("Client外服务接口[SysClientImpl.deleteTaskTodo]请求异常:" + gridToDoBo.getMsg()); + }else{ + log.info("批量删除待办成功"); + } + }catch (Exception e){ + log.error("service方法[SysClientImpl.deleteTaskTodo]调用异常:"+e, e); + } + } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridToDoController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridToDoController.java index 0908e0e..df1fd46 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridToDoController.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridToDoController.java @@ -1,16 +1,14 @@ package cn.huge.module.grid.controller; import cn.huge.base.common.bo.R; -import cn.huge.module.grid.domain.vo.GridGetToDoVo; -import cn.huge.module.grid.domain.vo.GridIdsVo; -import cn.huge.module.grid.domain.vo.GridToDoBacthVo; -import cn.huge.module.grid.domain.vo.GridToDoVo; +import cn.huge.module.sys.vo.GridToDoBacthVo; +import cn.huge.module.sys.vo.GridGetToDoVo; +import cn.huge.module.sys.vo.GridIdsVo; +import cn.huge.module.sys.vo.GridTaskVo; +import cn.huge.module.sys.vo.GridToDoVo; import cn.huge.module.grid.service.GridToDoService; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -75,4 +73,38 @@ public R<String> deleteTodo(@RequestBody GridIdsVo gridIdsVo) { return gridToDoService.deleteToDo(gridIdsVo); } + + /** + * 批量创建待办 + * + * @param gridToDoBacthVo + * @param unitId + * @return + */ + @PostMapping("/create-task-todo") + public R<List<GridToDoVo>> createTaskToDo(@RequestBody GridToDoBacthVo gridToDoBacthVo, String unitId) { + return gridToDoService.createTaskToDo(gridToDoBacthVo, unitId); + } + + /** + * 批量更新待办 + * + * @param gridToDoVo + * @return + */ + @PostMapping("/update-task-todo") + public R<List<GridToDoVo>> updateTaskTodo(@RequestBody GridToDoVo gridToDoVo, @RequestParam(value = "previousTaskId") String previousTaskId) { + return gridToDoService.updateTaskToDo(gridToDoVo, previousTaskId); + } + + /** + * 批量删除待办 + * + * @param + * @return + */ + @PostMapping("/delete-task-todo") + public R<String> deleteTaskTodo(@RequestBody GridTaskVo gridTaskVo) { + return gridToDoService.deleteTaskToDo(gridTaskVo); + } } diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridCaseTaskWebController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridCaseTaskWebController.java new file mode 100644 index 0000000..77b886e --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridCaseTaskWebController.java @@ -0,0 +1,220 @@ +package cn.huge.module.grid.controller.web; + +import cn.huge.base.common.utils.ReturnFailUtils; +import cn.huge.base.common.utils.ReturnSucUtils; +import cn.huge.module.grid.domain.po.GridCaseTask; +import cn.huge.module.grid.service.GridCaseTaskService; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @title: 网格化平台矛调任务信息表接口api-web端 + * @description: 网格化平台矛调任务信息表接口api-web端 + * @company: hugeinfo + * @author: wangwh + * @time: 2024-10-18 17:30:09 + * @version: 1.0.0 + */ +@Slf4j +@RestController +@RequestMapping("/api/web/gridCaseTask") +public class GridCaseTaskWebController { + + @Autowired(required = false) + private HttpServletRequest request; + + @Autowired + private GridCaseTaskService service; + + /** + * 获取请求URL参数 + * @return Map<String, Object> + */ + private Map<String, Object> getParameter(){ + Map<String, Object> terms = Maps.newHashMap(); + // 主键编号 + String id = request.getParameter("id"); + if (StringUtils.isNotBlank(id)){ + terms.put("id", id); + } + // 对象id + String objId = request.getParameter("objId"); + if (StringUtils.isNotBlank(objId)){ + terms.put("objId", objId); + } + // 对象类型,11:待分派矛调工单, 12:待签收矛调工单,13:待受理矛调工单,14:待审核矛调工单 + String objType = request.getParameter("objType"); + if (StringUtils.isNotBlank(objType)){ + terms.put("objType", objType); + } + // 待办类型,1:事件工单,2:任务交办,3:预警线索,4:群众问题,5:矛盾纠纷 + String todoYpe = request.getParameter("todoYpe"); + if (StringUtils.isNotBlank(todoYpe)){ + terms.put("todoYpe", todoYpe); + } + // 系统消息内容 + String sysContent = request.getParameter("sysContent"); + if (StringUtils.isNotBlank(sysContent)){ + terms.put("sysContent", sysContent); + } + // 粤政易消息内容 + String yzyContent = request.getParameter("yzyContent"); + if (StringUtils.isNotBlank(yzyContent)){ + terms.put("yzyContent", yzyContent); + } + // 待办标签,1:超期,2:预警,3:环节超期 + String objTag = request.getParameter("objTag"); + if (StringUtils.isNotBlank(objTag)){ + terms.put("objTag", objTag); + } + // 标题 + String title = request.getParameter("title"); + if (StringUtils.isNotBlank(title)){ + terms.put("title", title); + } + // 处置期限 + String limitTime = request.getParameter("limitTime"); + if (StringUtils.isNotBlank(limitTime)){ + terms.put("limitTime", limitTime); + } + // 用户id + String userId = request.getParameter("userId"); + if (StringUtils.isNotBlank(userId)){ + terms.put("userId", userId); + } + // 接收用户手机号 + String mobile = request.getParameter("mobile"); + if (StringUtils.isNotBlank(mobile)){ + terms.put("mobile", mobile); + } + // 纠纷编号 + String caseId = request.getParameter("caseId"); + if (StringUtils.isNotBlank(caseId)){ + terms.put("caseId", caseId); + } + // 纠纷任务编号 + String caseTaskId = request.getParameter("caseTaskId"); + if (StringUtils.isNotBlank(caseTaskId)){ + terms.put("caseTaskId", caseTaskId); + } + // 删除状态,0:未删除,1:已删除 + String deleteStatus = request.getParameter("deleteStatus"); + if (StringUtils.isNotBlank(deleteStatus)){ + terms.put("deleteStatus", deleteStatus); + } + // 顾客编号 + String custId = request.getParameter("custId"); + if (StringUtils.isNotBlank(custId)){ + terms.put("custId", custId); + } + // 创建时间区间 + String createStart = request.getParameter("createStart"); + String createEnd = request.getParameter("createEnd"); + if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) { + terms.put("createStart", createStart); + terms.put("createEnd", createEnd); + } + // 更新时间区间 + String updateStart = request.getParameter("updateStart"); + String updateEnd = request.getParameter("updateEnd"); + if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) { + terms.put("updateStart", updateStart); + terms.put("updateEnd", updateEnd); + } + return terms; + } + + /** + * 条件查询多个 + * @url {ctx}/api/web/gridCaseTask/listQuery + * @return Object + */ + @GetMapping("/listQuery") + public Object listQuery() { + try { + Map<String, Object> terms = getParameter(); + return ReturnSucUtils.getRepInfo(service.listTerms(terms)); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 条件分页查询 + * @url {ctx}/api/web/gridCaseTask/pageQuery + * @param page 页码 + * @param size 每页数量 + * @return Object + */ + @GetMapping("/pageQuery") + public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) { + try { + Map<String, Object> terms = getParameter(); + Sort sort = Sort.by(Sort.Direction.DESC, "create_time"); + PageRequest pageRequest = PageRequest.of(page-1, size, sort); + Page<GridCaseTask> gridCaseTaskPage = service.pageQuery(pageRequest, terms); + return ReturnSucUtils.getRepInfo( "处理成功", gridCaseTaskPage); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 根据编号查询单个 + * @url {ctx}/api/web/gridCaseTask/getById + * @param id 主键编号 + * @return Object + */ + @GetMapping("/getById") + public Object getById(@RequestParam(value = "id") String id) { + try { + return ReturnSucUtils.getRepInfo(service.getById(id)); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 根据主键单个 + * @url {ctx}/api/web/gridCaseTask/deleteById + * @param id 主键编号 + * @return Object + */ + @GetMapping("/deleteById") + public Object deleteById(@RequestParam(value = "id") String id) { + try { + service.removeById(id); + return ReturnSucUtils.getRepInfo(); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + + /** + * 新增或更新对象 + * @url {ctx}/api/web/gridCaseTask/saveGridCaseTask + * @param gridCaseTask 实体对象 + * @return Object + */ + @PostMapping("/saveGridCaseTask") + public Object saveGridCaseTask(@RequestBody GridCaseTask gridCaseTask) { + try { + service.saveGridCaseTask(gridCaseTask); + return ReturnSucUtils.getRepInfo(); + } catch (Exception e) { + return ReturnFailUtils.getRepInfo(); + } + } + +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/GridCaseTaskMapper.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/GridCaseTaskMapper.java new file mode 100644 index 0000000..8f97fcf --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/GridCaseTaskMapper.java @@ -0,0 +1,64 @@ +package cn.huge.module.grid.dao.mapper; + +import cn.huge.module.grid.domain.po.GridCaseTask; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** +* @title: 网格化平台矛调任务信息表持久层业务处理 +* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。 +* @company: hugeinfo +* @author: wangwh +* @time: 2024-10-18 17:30:09 +* @version 1.0.0 +*/ +@Repository +public interface GridCaseTaskMapper extends BaseMapper<GridCaseTask>{ + + /** + * 更新对象 + * @param entity 对象 + */ + void updateGridCaseTask(@Param("entity") GridCaseTask entity); + + /** + * 条件更新对象 + * @param entity 对象 + * @param terms 条件 + */ + void updateGridCaseTaskTerms(@Param("entity") GridCaseTask entity, @Param("terms") Map<String, Object> terms); + + /** + * 根据编号物理删除 + * @param id 查询条件集合 + */ + void deleteGridCaseTask(@Param("id") String id); + + /** + * 按条件查询结果集 + * @param terms 查询条件集合 + * @return List<GridCaseTask> + */ + List<GridCaseTask> listTerms(@Param("terms") Map<String, Object> terms); + + /** + * 按条件查询实体总数 + * @param terms 查询条件集合 + * @return long + */ + long countTerms(@Param("terms") Map<String, Object> terms); + + /** + * 按条件查询实体分页结果集 + * @param page 分页对象 + * @param terms 查询条件集合 + * @return List<GridCaseTask> + */ + List<GridCaseTask> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms); + +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/xml/GridCaseTaskMapper.xml b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/xml/GridCaseTaskMapper.xml new file mode 100644 index 0000000..06093a0 --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/dao/mapper/xml/GridCaseTaskMapper.xml @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!-- + * @title: 网格化平台矛调任务信息表 + * @description: 自定义sql,请自行实现业务逻辑 + * @company: hugeinfo + * @author: wangwh + * @time:2024-10-18 17:30:09 + * @version 1.0.0 +--> +<mapper namespace="cn.huge.module.grid.dao.mapper.GridCaseTaskMapper"> + <!-- 结果集 --> + <resultMap id="dataResult" type="cn.huge.module.grid.domain.po.GridCaseTask"> + <result property="id" column="id"/> + <result property="objId" column="obj_id"/> + <result property="objType" column="obj_type"/> + <result property="todoYpe" column="todo_ype"/> + <result property="sysContent" column="sys_content"/> + <result property="yzyContent" column="yzy_content"/> + <result property="objTag" column="obj_tag"/> + <result property="title" column="title"/> + <result property="limitTime" column="limit_time"/> + <result property="userId" column="user_id"/> + <result property="mobile" column="mobile"/> + <result property="caseId" column="case_id"/> + <result property="caseTaskId" column="case_task_id"/> + <result property="deleteStatus" column="delete_status"/> + <result property="custId" column="cust_id"/> + <result property="createTime" column="create_time"/> + <result property="updateTime" column="update_time"/> + </resultMap> + <!-- 表 --> + <sql id='table-name'>dyh_th_grid_case_task</sql> + <!-- 字段 --> + <sql id="column-part"> + id, + obj_id, + obj_type, + todo_ype, + sys_content, + yzy_content, + obj_tag, + title, + limit_time, + user_id, + mobile, + case_id, + case_task_id, + delete_status, + cust_id, + create_time, + update_time + </sql> + <!-- 更新实体字段 --> + <sql id="set-part"> + <if test="entity.objId != null">obj_id = #{entity.objId},</if> + <if test="entity.objType != null">obj_type = #{entity.objType},</if> + <if test="entity.todoYpe != null">todo_ype = #{entity.todoYpe},</if> + <if test="entity.sysContent != null">sys_content = #{entity.sysContent},</if> + <if test="entity.yzyContent != null">yzy_content = #{entity.yzyContent},</if> + <if test="entity.objTag != null">obj_tag = #{entity.objTag},</if> + <if test="entity.title != null">title = #{entity.title},</if> + <if test="entity.limitTime != null">limit_time = #{entity.limitTime},</if> + <if test="entity.userId != null">user_id = #{entity.userId},</if> + <if test="entity.mobile != null">mobile = #{entity.mobile},</if> + <if test="entity.caseId != null">case_id = #{entity.caseId},</if> + <if test="entity.caseTaskId != null">case_task_id = #{entity.caseTaskId},</if> + <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if> + <if test="entity.custId != null">cust_id = #{entity.custId},</if> + <if test="entity.createTime != null">create_time = #{entity.createTime},</if> + <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if> + </sql> + <!-- 条件 --> + <sql id="where-part"> + <if test="terms != null"> + <where> + <if test="terms.id != null and terms.id !=''"> + and id = #{terms.id} + </if> + <if test="terms.objId != null and terms.objId !=''"> + and obj_id = #{terms.objId} + </if> + <if test="terms.objType != null and terms.objType !=''"> + and obj_type = #{terms.objType} + </if> + <if test="terms.todoYpe != null and terms.todoYpe !=''"> + and todo_ype = #{terms.todoYpe} + </if> + <if test="terms.sysContent != null and terms.sysContent !=''"> + and sys_content = #{terms.sysContent} + </if> + <if test="terms.yzyContent != null and terms.yzyContent !=''"> + and yzy_content = #{terms.yzyContent} + </if> + <if test="terms.objTag != null and terms.objTag !=''"> + and obj_tag = #{terms.objTag} + </if> + <if test="terms.title != null and terms.title !=''"> + and title = #{terms.title} + </if> + <if test="terms.limitTime != null and terms.limitTime !=''"> + and limit_time = #{terms.limitTime} + </if> + <if test="terms.userId != null and terms.userId !=''"> + and user_id = #{terms.userId} + </if> + <if test="terms.mobile != null and terms.mobile !=''"> + and mobile = #{terms.mobile} + </if> + <if test="terms.caseId != null and terms.caseId !=''"> + and case_id = #{terms.caseId} + </if> + <if test="terms.caseTaskId != null and terms.caseTaskId !=''"> + and case_task_id = #{terms.caseTaskId} + </if> + <if test="terms.deleteStatus = null and terms.deleteStatus =''"> + and delete_status = 0 + </if> + <if test="terms.deleteStatus != null and terms.deleteStatus !=''"> + and delete_status = #{terms.deleteStatus} + </if> + <if test="terms.custId != null and terms.custId !=''"> + and cust_id = #{terms.custId} + </if> + <if test="terms.createTime != null and terms.createTime !=''"> + and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime} + </if> + <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''"> + and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart} + and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd}) + </if> + <if test="terms.updateTime != null and terms.updateTime !=''"> + and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime} + </if> + <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''"> + and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart} + and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd}) + </if> + </where> + </if> + </sql> + <!-- 更新对象 --> + <update id="updateGridCaseTask"> + update + <include refid="table-name"/> + <set> + <include refid="set-part"/> + </set> + <where> + id = #{entity.id} + </where> + </update> + <!-- 条件更新对象 --> + <update id="updateGridCaseTaskTerms"> + update + <include refid="table-name"/> + <set> + <include refid="set-part"/> + </set> + <include refid="where-part"/> + </update> + <!-- 根据编号物理删除 --> + <delete id="deleteGridCaseTask"> + delete from + <include refid="table-name" /> + where id = #{id} + </delete> + <!-- 根据条件查询 --> + <select id="listTerms" resultMap="dataResult"> + select + <include refid="column-part"/> + from + <include refid="table-name" /> + <include refid="where-part"/> + </select> + <!-- 根据条件统计 --> + <select id="countTerms" resultType="java.lang.Long"> + select + COUNT(1) + from + <include refid="table-name" /> + <include refid="where-part"/> + </select> + <!-- 根据条件分页查询 --> + <select id="pageTerms" resultMap="dataResult"> + SELECT + <include refid="column-part"/> + FROM + <include refid="table-name" /> + <include refid="where-part"/> + <if test="page.sort != null"> + <foreach collection="page.sort" item="s" index="index" separator="," open="order by "> + isnull(${s.property}), ${s.property} ${s.direction} + </foreach> + </if> + <if test="page.sort == null"> + order by isnull(create_time), create_time desc + </if> + limit #{page.offset}, #{page.size} + </select> + +</mapper> \ No newline at end of file diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/bo/GridCaseTaskBO.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/bo/GridCaseTaskBO.java new file mode 100644 index 0000000..24725b6 --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/bo/GridCaseTaskBO.java @@ -0,0 +1,17 @@ +package cn.huge.module.grid.domain.bo; + +import cn.huge.module.grid.domain.po.GridCaseTask; + +/** + * @title: 网格化平台矛调任务信息表业务扩展类 + * @description: 网格化平台矛调任务信息表业务扩展类 + * @company: hugeinfo + * @author: wangwh + * @time: 2024-10-18 17:30:09 + * @version: 1.0.0 + * @see cn.huge.module.grid.domain.po.GridCaseTask + */ +public class GridCaseTaskBO extends GridCaseTask { + + +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridCaseTask.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridCaseTask.java new file mode 100644 index 0000000..0de6d9d --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridCaseTask.java @@ -0,0 +1,126 @@ +package cn.huge.module.grid.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @title: 网格化平台矛调任务信息表数据库对应关系类 + * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。 + * @company:hugeinfo + * @author: wangwh + * @time: 2024-10-18 17:30:09 + * @version 1.0.0 + */ +@TableName(value = "dyh_th_grid_case_task") +@Data +public class GridCaseTask { + + /** + * 主键编号 + */ + @TableId(value = "id") + private String id; + + /** + * 对象id + */ + @TableField(value = "obj_id") + private String objId; + + /** + * 对象类型,11:待分派矛调工单, 12:待签收矛调工单,13:待受理矛调工单,14:待审核矛调工单 + */ + @TableField(value = "obj_type") + private String objType; + + /** + * 待办类型,1:事件工单,2:任务交办,3:预警线索,4:群众问题,5:矛盾纠纷 + */ + @TableField(value = "todo_ype") + private String todoYpe; + + /** + * 系统消息内容 + */ + @TableField(value = "sys_content") + private String sysContent; + + /** + * 粤政易消息内容 + */ + @TableField(value = "yzy_content") + private String yzyContent; + + /** + * 待办标签,1:超期,2:预警,3:环节超期 + */ + @TableField(value = "obj_tag") + private String objTag; + + /** + * 标题 + */ + @TableField(value = "title") + private String title; + + /** + * 处置期限 + */ + @TableField(value = "limit_time") + private String limitTime; + + /** + * 用户id + */ + @TableField(value = "user_id") + private String userId; + + /** + * 接收用户手机号 + */ + @TableField(value = "mobile") + private String mobile; + + /** + * 纠纷编号 + */ + @TableField(value = "case_id") + private String caseId; + + /** + * 纠纷任务编号 + */ + @TableField(value = "case_task_id") + private String caseTaskId; + + /** + * 删除状态,0:未删除,1:已删除 + */ + @TableLogic + @TableField(value = "delete_status") + private Integer deleteStatus; + + /** + * 顾客编号 + */ + @TableField(value = "cust_id") + private String custId; + + /** + * 创建时间 + */ + @TableField(value = "create_time") + private Date createTime; + + /** + * 更新时间 + */ + @TableField(value = "update_time") + private Date updateTime; + +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchRequestVo.java index 492f80d..5217e7b 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchRequestVo.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchRequestVo.java @@ -1,5 +1,6 @@ package cn.huge.module.grid.domain.vo; +import cn.huge.module.sys.vo.GridToDoBacthVo; import lombok.Data; @Data diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchUpdateRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchUpdateRequestVo.java index 8b6a4d3..6187d68 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchUpdateRequestVo.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoBatchUpdateRequestVo.java @@ -1,5 +1,6 @@ package cn.huge.module.grid.domain.vo; +import cn.huge.module.sys.vo.GridToDoVo; import lombok.Data; import java.util.List; diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoDeleteRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoDeleteRequestVo.java index 8eab3b7..b4bd784 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoDeleteRequestVo.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoDeleteRequestVo.java @@ -1,5 +1,6 @@ package cn.huge.module.grid.domain.vo; +import cn.huge.module.sys.vo.GridIdsVo; import lombok.Data; @Data diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoGetRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoGetRequestVo.java index 2c5fe3f..56acf27 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoGetRequestVo.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoGetRequestVo.java @@ -1,5 +1,6 @@ package cn.huge.module.grid.domain.vo; +import cn.huge.module.sys.vo.GridGetToDoVo; import lombok.Data; @Data diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoRequestVo.java index 69553bf..e7b3ad2 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoRequestVo.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridToDoRequestVo.java @@ -1,5 +1,6 @@ package cn.huge.module.grid.domain.vo; +import cn.huge.module.sys.vo.GridToDoVo; import lombok.Data; @Data diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCaseTaskService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCaseTaskService.java new file mode 100644 index 0000000..e805dc6 --- /dev/null +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCaseTaskService.java @@ -0,0 +1,148 @@ +package cn.huge.module.grid.service; + +import cn.huge.base.common.exception.ServiceException; +import cn.huge.base.common.utils.DateUtils; +import cn.huge.base.common.utils.IdUtils; +import cn.huge.module.client.api.impl.UtilsClientImpl; +import cn.huge.module.grid.dao.mapper.GridCaseTaskMapper; +import cn.huge.module.grid.domain.po.GridCaseTask; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @title: 网格化平台矛调任务信息表业务逻辑处理 + * @Description 网格化平台矛调任务信息表业务逻辑处理 + * @company hugeinfo + * @author wangwh + * @Time 2024-10-18 17:30:09 + * @version 1.0.0 + */ +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class GridCaseTaskService extends ServiceImpl<GridCaseTaskMapper, GridCaseTask>{ + + @Autowired + private GridCaseTaskMapper mapper; + + @Autowired + private UtilsClientImpl utilsClient; + + /** + * 更新对象 + * @param entity 对象 + */ + public void updateGridCaseTask(GridCaseTask entity){ + try{ + mapper.updateGridCaseTask(entity); + }catch (Exception e){ + log.error("[GridCaseTaskService.updateGridCaseTask]调用失败,异常信息:"+e, e); + throw new ServiceException("GridCaseTaskService.updateGridCaseTask", e); + } + } + + /** + * 条件更新对象 + * @param entity 对象 + * @param terms 条件 + */ + public void updateGridCaseTaskTerms(GridCaseTask entity, Map<String, Object> terms){ + try{ + mapper.updateGridCaseTaskTerms(entity, terms); + }catch (Exception e){ + log.error("[GridCaseTaskService.updateGridCaseTaskTerms]调用失败,异常信息:"+e, e); + throw new ServiceException("GridCaseTaskService.updateGridCaseTaskTerms", e); + } + } + + /** + * 根据编号物理删除 + * @param id 查询条件集合 + */ + public void deleteGridCaseTask(String id){ + try{ + mapper.deleteGridCaseTask(id); + }catch (Exception e){ + log.error("[GridCaseTaskService.deleteGridCaseTask]调用失败,异常信息:"+e, e); + throw new ServiceException("GridCaseTaskService.deleteGridCaseTask", e); + } + } + + /** + * 按条件查询 + * @param terms 条件 + * @return List + */ + public List<GridCaseTask> listTerms(Map<String, Object> terms){ + return mapper.listTerms(terms); + } + + /** + * 按条件统计 + * @param terms 条件 + * @return long + */ + public long countTerms(Map<String, Object> terms){ + return mapper.countTerms(terms); + } + + /** + * 按条件分页查询 + * @param page 分页对象 + * @param terms 条件 + * @return Page + */ + public Page<GridCaseTask> pageQuery(PageRequest page, Map<String, Object> terms){ + long total = mapper.countTerms(terms); + List<GridCaseTask> content = mapper.pageTerms(page, terms); + return new PageImpl<GridCaseTask>(content, page, total); + } + + /** + * 查询网格待办任务 + * @param caseId 事件编号 + * @param caseTaskId 任务编号 + * @return Page + */ + public List<GridCaseTask> listGridCaseTask(String caseId, String caseTaskId){ + QueryWrapper<GridCaseTask> gridCaseTaskQueryWrapper = new QueryWrapper<>(); + gridCaseTaskQueryWrapper.eq("case_id", caseId); + gridCaseTaskQueryWrapper.eq("case_task_id", caseTaskId); + List<GridCaseTask> gridCaseTaskList = mapper.selectList(gridCaseTaskQueryWrapper); + return gridCaseTaskList; + } + + /** + * 新增或更新对象 + * @param gridCaseTask 实体对象 + */ + public void saveGridCaseTask(GridCaseTask gridCaseTask){ + try{ + Date nowDate = DateUtils.getNowDate(); + // 判断是否新增 + if (IdUtils.checkNewId(gridCaseTask.getId())){ + gridCaseTask.setId(utilsClient.getNewTimeId()); + gridCaseTask.setCreateTime(nowDate); + } + gridCaseTask.setUpdateTime(nowDate); + this.saveOrUpdate(gridCaseTask); + }catch (Exception e){ + log.error("[GridCaseTaskService.saveGridCaseTask]调用失败,异常信息:"+e, e); + throw new ServiceException("GridCaseTaskService.saveGridCaseTask", e); + } + } + +} diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridToDoService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridToDoService.java index 64af9c7..55e7353 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridToDoService.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridToDoService.java @@ -2,17 +2,24 @@ import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.HttpClientUtils; +import cn.huge.base.common.utils.ObjectUtils; +import cn.huge.module.grid.domain.po.GridCaseTask; +import cn.huge.module.sys.vo.*; import cn.huge.module.grid.domain.vo.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; @Slf4j @Service @@ -23,6 +30,11 @@ private String userName; @Value("${grid.password}") private String passWord; + + @Autowired + private GridCaseTaskService gridCaseTaskService; + @Autowired + private GridUserService gridUserService; public R<GridToDoVo> createToDo(GridToDoVo gridToDoVo) { HeadVo headVo = initHeadVo(); @@ -40,6 +52,11 @@ } log.info("xsd:{}", s); GridToDoVo gridToDoDto = JSONObject.parseObject(s).getObject("data", GridToDoVo.class); + if(ObjectUtils.isNotEmpty(gridToDoDto)){ + GridCaseTask gridCaseTask = new GridCaseTask(); + BeanUtils.copyProperties(gridToDoDto, gridCaseTask); + gridCaseTaskService.save(gridCaseTask); + } return R.ok(gridToDoDto); } @@ -180,4 +197,56 @@ } } + + public R<List<GridToDoVo>> updateTaskToDo(GridToDoVo gridToDoVo, String previousTaskId) { + //修改网格系统工单 + List<GridToDoVo> gridToDoVoList = new ArrayList<>(); + List<GridCaseTask> gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridToDoVo.getCaseId(), previousTaskId); + for(GridCaseTask gridCaseTask: gridCaseTaskList){ + gridToDoVo.setId(gridCaseTask.getId()); + gridToDoVo.setMobile(gridCaseTask.getMobile()); + gridToDoVoList.add(gridToDoVo); + } + R<List<GridToDoVo>> resultData = this.batchUpdateToDo(gridToDoVoList); + //修改保存的待办工单 + List<GridToDoVo> GridToDoVoResult = resultData.getData(); + List<GridCaseTask> gridCaseTaskListNew = new ArrayList<>(); + for(GridToDoVo gridToDoVoResult: GridToDoVoResult){ + GridCaseTask gridCaseTask = new GridCaseTask(); + BeanUtils.copyProperties(gridToDoVoResult, gridCaseTask); + gridCaseTaskListNew.add(gridCaseTask); + } + gridCaseTaskService.updateBatchById(gridCaseTaskListNew); + return resultData; + } + + public R<List<GridToDoVo>> createTaskToDo(GridToDoBacthVo gridToDoBacthVo, String unitId) { + GridOrgUsersVo gridOrgUsersVo = new GridOrgUsersVo(); + gridOrgUsersVo.setCurrOrgId(unitId); + List<GridUserVo> gridUserVoList = gridUserService.getUserListByOrg(gridOrgUsersVo).getData(); + List<String> userIdList = gridUserVoList.stream().map(GridUserVo:: getId).collect(Collectors.toList()); + gridToDoBacthVo.setUserIdList(userIdList); + R<List<GridToDoVo>> resultData = this.batchCreateToDo(gridToDoBacthVo); + //保存待办工单 + List<GridToDoVo> GridToDoVoResult = resultData.getData(); + List<GridCaseTask> gridCaseTaskListNew = new ArrayList<>(); + for(GridToDoVo gridToDoVoResult: GridToDoVoResult){ + GridCaseTask gridCaseTask = new GridCaseTask(); + BeanUtils.copyProperties(gridToDoVoResult, gridCaseTask); + gridCaseTaskListNew.add(gridCaseTask); + } + BeanUtils.copyProperties(GridToDoVoResult, gridCaseTaskListNew); + gridCaseTaskService.saveBatch(gridCaseTaskListNew); + return resultData; + } + + public R<String> deleteTaskToDo(GridTaskVo gridTaskVo) { + List<GridCaseTask> gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridTaskVo.getCaseId(), gridTaskVo.getCaseTaskId()); + List<String> idList = gridCaseTaskList.stream().map(GridCaseTask::getId).collect(Collectors.toList()); + GridIdsVo gridIdsVo = new GridIdsVo(); + gridIdsVo.setIds(idList); + R<String> result = this.deleteToDo(gridIdsVo); + gridCaseTaskService.removeByIds(idList); + return result; + } } -- Gitblit v1.8.0