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