From 899c73b04d15a67b94bc3894a54c33418e285212 Mon Sep 17 00:00:00 2001
From: xusd <330628789@qq.com>
Date: Thu, 12 Jun 2025 16:31:50 +0800
Subject: [PATCH] feature:非警务纠纷优化

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java |   25 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/GridEventDTO.java          |    5 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java |    2 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridEvent.java                   |    6 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml     |    1 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java          |    9 
 sql/20250611.sql                                                                                 |    5 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCaseInfoDTO.java            |    2 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseInfo.java               |    7 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java              |  498 +++++++++++++++++++++++++++++++++++++++++++++----
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml     |    2 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListFPDTO.java    |    5 
 dyh-service/dyh-sys/src/main/java/cn/huge/module/timer/GridCityCaseTimer.java                    |    4 
 13 files changed, 524 insertions(+), 47 deletions(-)

diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
index 0e8f327..19fbd24 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/controller/web/CtUnitWebController.java
@@ -389,6 +389,16 @@
         }
     }
 
+    @GetMapping("/unitChoose4Union")
+    public Object unitChoose4Union(@CurrentUser String userId) {
+        try {
+            List<SelectTermDTO> unitSelectTerms = service.unitChoose4Union(userId);
+            return ReturnSucUtils.getRepInfo(unitSelectTerms);
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo(e.getMessage());
+        }
+    }
+
     /**
      * 联合处置申请-选择组织
      * @url {ctx}/api/web/ctUnit/assistApplyUnitChoose
@@ -469,4 +479,19 @@
             return ReturnFailUtils.getRepInfo( "查询失败", null);
         }
     }
+
+    /**
+     * 联合处置申请获取所有组织树形结构
+     * @url {ctx}/api/web/ctUnit/unitTree4Union
+     * @return Object
+     */
+    @GetMapping("/unitTree4Union")
+    public Object unitTree4Union(@CurrentUser String userId) {
+        try {
+            return ReturnSucUtils.getRepInfo( "查询成功", service.unitTree4Union(userId));
+        } catch (Exception e) {
+            log.error("Controller接口[CtUnitWebController.unitTree]请求异常:"+e, e);
+            return ReturnFailUtils.getRepInfo( "查询失败", null);
+        }
+    }
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
index 6691d9a..6b8e111 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUnitService.java
@@ -547,6 +547,254 @@
         }
     }
 
+    public List<SelectTermDTO> unitChoose4Union(String userId) {
+        // 获取当前登录用户
+        CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
+        // 获取当前登录用户的部门
+        CtUnit loginUnit = mapper.selectById(loginUser.getUnitId());
+        // 市级交办
+        if (UserBaseConsts.UNIT_GRADE_1 == loginUnit.getUnitGrade()) {
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", loginUnit.getId());
+            List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper);
+            // 定义市直部门数组
+            List<SelectTermDTO> szbmList = new ArrayList<>();
+            // 定义区综治中心数组
+            List<SelectTermDTO> qzzzxList = new ArrayList<>();
+            for (CtUnit ctUnit : ctUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(ctUnit.getId());
+                unitSelectTerm.setLabel(ctUnit.getUnitName());
+                unitSelectTerm.setParentId(ctUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                if (UserBaseConsts.UNIT_TYPE_102 == ctUnit.getUnitType()) {
+                    szbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_106 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_105 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_104 == ctUnit.getUnitType()) {
+                    szbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_101 == ctUnit.getUnitType()) {
+                    qzzzxList.add(unitSelectTerm);
+                }
+            }
+            // 封装返回数据
+            List<SelectTermDTO> result = new ArrayList<>();
+            // 创建第一级
+            SelectTermDTO firstSelectTermDTO = new SelectTermDTO();
+            firstSelectTermDTO.setValue(loginUser.getUnitId());
+            firstSelectTermDTO.setLabel(loginUser.getUnitName());
+            firstSelectTermDTO.setCheckable(false);
+            List<SelectTermDTO> firstChildren = new ArrayList<>();
+            // 市直部门
+            SelectTermDTO szbmSelectTermDTO = new SelectTermDTO();
+            szbmSelectTermDTO.setValue("szbm");
+            szbmSelectTermDTO.setLabel("市直部门");
+            szbmSelectTermDTO.setCheckable(false);
+            szbmSelectTermDTO.setChildren(szbmList);
+            firstChildren.add(szbmSelectTermDTO);
+            // 区综治中心
+            SelectTermDTO qzzzxSelectTermDTO = new SelectTermDTO();
+            qzzzxSelectTermDTO.setValue("qzzzx");
+            qzzzxSelectTermDTO.setLabel("区综治中心");
+            qzzzxSelectTermDTO.setCheckable(false);
+            qzzzxSelectTermDTO.setChildren(qzzzxList);
+            firstChildren.add(qzzzxSelectTermDTO);
+            // 第一级子级
+            firstSelectTermDTO.setChildren(firstChildren);
+            result.add(firstSelectTermDTO);
+            return result;
+        } else if (UserBaseConsts.UNIT_GRADE_2 == loginUnit.getUnitGrade()) {
+            // 区级交办
+            //如果是综治中心,走交办流程获取机构。如果不是综治中心,是同级部门,则获取同级部门。
+            List<CtUnit> ctUnitList = null;
+            if (UserBaseConsts.UNIT_TYPE_101 == loginUnit.getUnitType()) {
+                QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+                ctUnitQueryWrapper.eq("parent_id", loginUnit.getId());
+                ctUnitList = mapper.selectList(ctUnitQueryWrapper);
+            } else {
+                QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+                ctUnitQueryWrapper.eq("parent_id", loginUnit.getParentId());
+                ctUnitList = mapper.selectList(ctUnitQueryWrapper);
+            }
+            // 定义市区直部门数组
+            List<SelectTermDTO> qzbmList = new ArrayList<>();
+            // 定义镇街综治中心数组
+            List<SelectTermDTO> zjzzzxList = new ArrayList<>();
+            for (CtUnit ctUnit : ctUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(ctUnit.getId());
+                unitSelectTerm.setLabel(ctUnit.getUnitName());
+                unitSelectTerm.setParentId(ctUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                if (UserBaseConsts.UNIT_TYPE_102 == ctUnit.getUnitType()) {
+                    qzbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_106 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_105 == ctUnit.getUnitType() || UserBaseConsts.UNIT_TYPE_104 == ctUnit.getUnitType()) {
+                    qzbmList.add(unitSelectTerm);
+                }
+                if (UserBaseConsts.UNIT_TYPE_101 == ctUnit.getUnitType()) {
+                    zjzzzxList.add(unitSelectTerm);
+                }
+            }
+            // 封装返回数据
+            List<SelectTermDTO> result = new ArrayList<>();
+            // 创建第一级
+            SelectTermDTO firstSelectTermDTO = new SelectTermDTO();
+            firstSelectTermDTO.setValue(loginUser.getUnitId());
+            firstSelectTermDTO.setLabel(loginUser.getUnitName());
+            firstSelectTermDTO.setCheckable(false);
+            List<SelectTermDTO> firstChildren = new ArrayList<>();
+            // 市直部门
+            SelectTermDTO qzzbmSelectTermDTO = new SelectTermDTO();
+            qzzbmSelectTermDTO.setValue("qzbm");
+            qzzbmSelectTermDTO.setLabel("区直部门");
+            qzzbmSelectTermDTO.setCheckable(false);
+            qzzbmSelectTermDTO.setChildren(qzbmList);
+            firstChildren.add(qzzbmSelectTermDTO);
+            // 区综治中心
+            SelectTermDTO zjzzzxSelectTermDTO = new SelectTermDTO();
+            zjzzzxSelectTermDTO.setValue("zjzzzx");
+            zjzzzxSelectTermDTO.setLabel("街(镇)综治中心");
+            zjzzzxSelectTermDTO.setCheckable(false);
+            zjzzzxSelectTermDTO.setChildren(zjzzzxList);
+            firstChildren.add(zjzzzxSelectTermDTO);
+            // 第一级子级
+            firstSelectTermDTO.setChildren(firstChildren);
+            result.add(firstSelectTermDTO);
+            return result;
+        } else if (UserBaseConsts.UNIT_GRADE_3 == loginUnit.getUnitGrade()) {
+            // 镇街交办
+            // 查询镇街的直属部门组织
+            List<SelectTermDTO> zjbmList = new ArrayList<>();
+            List<SelectTermDTO> qzbmList = new ArrayList<>();
+            //如果是综治中心,走交办流程获取机构。如果不是综治中心,是同级部门,则获取同级部门。
+            List<CtUnit> zjCtUnitList = null;
+            List<CtUnit> qzCtUnitList = null;
+            if (UserBaseConsts.UNIT_TYPE_101 == loginUnit.getUnitType()) {
+                QueryWrapper<CtUnit> zjCtUnitQueryWrapper = new QueryWrapper<>();
+                zjCtUnitQueryWrapper.eq("parent_id", loginUnit.getId())
+                        .eq("unit_grade", UserBaseConsts.UNIT_GRADE_3)
+                        .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105);
+                zjCtUnitList = mapper.selectList(zjCtUnitQueryWrapper);
+
+                QueryWrapper<CtUnit> qzCtUnitQueryWrapper = new QueryWrapper<>();
+                qzCtUnitQueryWrapper.eq("parent_id", loginUnit.getParentId())
+                        .eq("unit_grade", UserBaseConsts.UNIT_GRADE_2)
+                        .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105);
+                qzCtUnitList = mapper.selectList(qzCtUnitQueryWrapper);
+
+            } else {
+                QueryWrapper<CtUnit> zjCtUnitQueryWrapper = new QueryWrapper<>();
+
+                zjCtUnitQueryWrapper.eq("parent_id", loginUnit.getParentId())
+                        .eq("unit_grade", UserBaseConsts.UNIT_GRADE_3)
+                        .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105);
+                zjCtUnitList = mapper.selectList(zjCtUnitQueryWrapper);
+
+                QueryWrapper<CtUnit> qzCtUnitQueryWrapper = new QueryWrapper<>();
+                CtUnit unit = getById(loginUnit.getParentId());
+                qzCtUnitQueryWrapper.eq("parent_id", unit.getParentId())
+                        .eq("unit_grade", UserBaseConsts.UNIT_GRADE_2)
+                        .in("unit_type", UserBaseConsts.UNIT_TYPE_102, UserBaseConsts.UNIT_TYPE_106, UserBaseConsts.UNIT_TYPE_104, UserBaseConsts.UNIT_TYPE_105);
+                qzCtUnitList = mapper.selectList(qzCtUnitQueryWrapper);
+            }
+
+            for (CtUnit zjCtUnit : zjCtUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(zjCtUnit.getId());
+                unitSelectTerm.setLabel(zjCtUnit.getUnitName());
+                unitSelectTerm.setParentId(zjCtUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                zjbmList.add(unitSelectTerm);
+
+            }
+            for (CtUnit qzCtUnit : qzCtUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(qzCtUnit.getId());
+                unitSelectTerm.setLabel(qzCtUnit.getUnitName());
+                unitSelectTerm.setParentId(qzCtUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                qzbmList.add(unitSelectTerm);
+            }
+
+            // 查询镇街部门数组
+//            QueryWrapper<CtDept> ctDeptQueryWrapper = new QueryWrapper<>();
+//            ctDeptQueryWrapper.eq("unit_id", loginUnit.getId());
+//            List<CtDept> deptList = ctDeptService.list(ctDeptQueryWrapper);
+//            List<SelectTermDTO> zjbmList = new ArrayList<>();
+//            for (CtDept ctDept: deptList){
+//                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+//                unitSelectTerm.setValue(ctDept.getId());
+//                unitSelectTerm.setLabel(ctDept.getName());
+//                unitSelectTerm.setParentId(loginUnit.getId());
+//                unitSelectTerm.setCheckable(true);
+//                zjbmList.add(unitSelectTerm);
+//            }
+
+            // 查询村社数组
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", loginUnit.getId()).eq("unit_grade", UserBaseConsts.UNIT_GRADE_4);
+            List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper);
+            List<SelectTermDTO> csList = new ArrayList<>();
+            for (CtUnit ctUnit : ctUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(ctUnit.getId());
+                unitSelectTerm.setLabel(ctUnit.getUnitName());
+                unitSelectTerm.setParentId(ctUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                csList.add(unitSelectTerm);
+            }
+            // 封装返回数据
+            List<SelectTermDTO> result = new ArrayList<>();
+            // 创建第一级
+            SelectTermDTO firstSelectTermDTO = new SelectTermDTO();
+            firstSelectTermDTO.setValue(loginUser.getUnitId());
+            firstSelectTermDTO.setLabel(loginUser.getUnitName());
+            firstSelectTermDTO.setCheckable(false);
+            List<SelectTermDTO> firstChildren = new ArrayList<>();
+            SelectTermDTO qzzbmSelectTermDTO = new SelectTermDTO();
+            qzzbmSelectTermDTO.setValue("qzbm");
+            qzzbmSelectTermDTO.setLabel("区直部门");
+            qzzbmSelectTermDTO.setCheckable(false);
+            qzzbmSelectTermDTO.setChildren(qzbmList);
+            firstChildren.add(qzzbmSelectTermDTO);
+            // 村社
+            SelectTermDTO zjbmSelectTermDTO = new SelectTermDTO();
+            zjbmSelectTermDTO.setValue("zjbm");
+            zjbmSelectTermDTO.setLabel("街(镇)部门");
+            zjbmSelectTermDTO.setCheckable(false);
+            zjbmSelectTermDTO.setChildren(zjbmList);
+            firstChildren.add(zjbmSelectTermDTO);
+            // 区综治中心
+            SelectTermDTO csSelectTermDTO = new SelectTermDTO();
+            csSelectTermDTO.setValue("cs");
+            csSelectTermDTO.setLabel("村(社)");
+            csSelectTermDTO.setCheckable(false);
+            csSelectTermDTO.setChildren(csList);
+            firstChildren.add(csSelectTermDTO);
+            // 第一级子级
+            firstSelectTermDTO.setChildren(firstChildren);
+            result.add(firstSelectTermDTO);
+            return result;
+        } else {
+            // todo
+            QueryWrapper<CtUnit> ctUnitQueryWrapper = new QueryWrapper<>();
+            ctUnitQueryWrapper.eq("parent_id", loginUnit.getParentId());
+            List<CtUnit> ctUnitList = mapper.selectList(ctUnitQueryWrapper);
+            //
+            List<SelectTermDTO> unitList = new ArrayList<>();
+            for (CtUnit ctUnit : ctUnitList) {
+                SelectTermDTO unitSelectTerm = new SelectTermDTO();
+                unitSelectTerm.setValue(ctUnit.getId());
+                unitSelectTerm.setLabel(ctUnit.getUnitName());
+                unitSelectTerm.setParentId(ctUnit.getParentId());
+                unitSelectTerm.setCheckable(true);
+                unitList.add(unitSelectTerm);
+            }
+            return unitList;
+        }
+    }
+
     /**
      * 联合处置申请-选择组织
      *
@@ -872,11 +1120,11 @@
         else return null;
     }
 
-    public List<CtUnitTreeDTO> unitTree(String userId){
+    public List<CtUnitTreeDTO> unitTree(String userId) {
         CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
         CtUnit ctUnit = mapper.selectById(loginUser.getUnitId());
         QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("delete_status",0);
+        queryWrapper.eq("delete_status", 0);
         if (ctUnit.getUnitGrade().equals(1)) {
             queryWrapper.eq("city", ctUnit.getCity());
             queryWrapper.in("unit_grade", Arrays.asList(1, 2, 3, 4));
@@ -891,39 +1139,39 @@
             queryWrapper.in("unit_grade", Arrays.asList(4));
         }
         List<CtUnit> ctUnits = mapper.selectList(queryWrapper);
-        
+
         Set<CtUnitTreeDTO> citySet = new HashSet<>();
         Set<CtUnitTreeDTO> areaSet = new HashSet<>();
         Set<CtUnitTreeDTO> roadSet = new HashSet<>();
         Set<CtUnitTreeDTO> villageSet = new HashSet<>();
         Set<CtUnitTreeDTO> unitSet = new HashSet<>();
 
-        Map<String,String> areaCodeMap = new HashMap<>();
-        Map<String,String> areaNameMap = new HashMap<>();
+        Map<String, String> areaCodeMap = new HashMap<>();
+        Map<String, String> areaNameMap = new HashMap<>();
         for (CtUnit unit : ctUnits) {
-            if(unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){
-                areaCodeMap.put(unit.getCity(),unit.getId());
-                areaNameMap.put(unit.getCity(),unit.getUnitName());
+            if (unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getCity(), unit.getId());
+                areaNameMap.put(unit.getCity(), unit.getUnitName());
             }
-            if(unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){
-                areaCodeMap.put(unit.getArea(),unit.getId());
-                areaNameMap.put(unit.getArea(),unit.getUnitName());
+            if (unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getArea(), unit.getId());
+                areaNameMap.put(unit.getArea(), unit.getUnitName());
             }
-            if(unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){
-                areaCodeMap.put(unit.getRoad(),unit.getId());
-                areaNameMap.put(unit.getRoad(),unit.getUnitName());
+            if (unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getRoad(), unit.getId());
+                areaNameMap.put(unit.getRoad(), unit.getUnitName());
             }
-            if(unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){
-                areaCodeMap.put(unit.getVillage(),unit.getId());
-                areaNameMap.put(unit.getVillage(),unit.getUnitName());
+            if (unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getVillage(), unit.getId());
+                areaNameMap.put(unit.getVillage(), unit.getUnitName());
             }
         }
         for (CtUnit unit : ctUnits) {
             CtUnitTreeDTO ctUnitTreeDTO = new CtUnitTreeDTO();
             ctUnitTreeDTO.setValue(unit.getId());
             ctUnitTreeDTO.setLabel(unit.getUnitName());
-            if(unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1){
-                ctUnitTreeDTO.setParentId(unit.getCity()+"01-dept");
+            if (unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1) {
+                ctUnitTreeDTO.setParentId(unit.getCity() + "01-dept");
 
                 CtUnitTreeDTO city = new CtUnitTreeDTO();
                 city.setValue(areaCodeMap.get(unit.getCity()));
@@ -933,91 +1181,253 @@
                 citySet.add(city);
 
                 CtUnitTreeDTO cityDept = new CtUnitTreeDTO();
-                cityDept.setValue(unit.getCity()+"01-dept");
+                cityDept.setValue(unit.getCity() + "01-dept");
                 cityDept.setLabel("市直部门");
                 cityDept.setParentId(areaCodeMap.get(unit.getCity()));
                 cityDept.setCheckable(false);
                 areaSet.add(cityDept);
 
                 CtUnitTreeDTO cityArea = new CtUnitTreeDTO();
-                cityArea.setValue(unit.getCity()+"02-area");
+                cityArea.setValue(unit.getCity() + "02-area");
                 cityArea.setLabel("各区");
                 cityArea.setParentId(areaCodeMap.get(unit.getCity()));
                 cityArea.setCheckable(false);
                 areaSet.add(cityArea);
-            }else if(unit.getUnitGrade() == 2){
-                if(ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))){
+            } else if (unit.getUnitGrade() == 2) {
+                if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))) {
                     continue;
                 }
-                ctUnitTreeDTO.setParentId(unit.getArea()+"01-dept");
+                ctUnitTreeDTO.setParentId(unit.getArea() + "01-dept");
 
                 CtUnitTreeDTO area = new CtUnitTreeDTO();
                 area.setValue(areaCodeMap.get(unit.getArea()));
                 area.setLabel(areaNameMap.get(unit.getArea()));
-                if(ctUnit.getUnitGrade().equals(2)){
+                if (ctUnit.getUnitGrade().equals(2)) {
                     area.setParentId("root");
-                }else{
-                    area.setParentId(unit.getCity()+"02-area");
+                } else {
+                    area.setParentId(unit.getCity() + "02-area");
                 }
                 area.setCheckable(true);
                 areaSet.add(area);
 
                 CtUnitTreeDTO areaDept = new CtUnitTreeDTO();
-                areaDept.setValue(unit.getArea()+"01-dept");
+                areaDept.setValue(unit.getArea() + "01-dept");
                 areaDept.setLabel("区直部门");
                 areaDept.setParentId(areaCodeMap.get(unit.getArea()));
                 areaDept.setCheckable(false);
                 areaSet.add(areaDept);
 
                 CtUnitTreeDTO cityRoad = new CtUnitTreeDTO();
-                cityRoad.setValue(unit.getArea()+"02-road");
+                cityRoad.setValue(unit.getArea() + "02-road");
                 cityRoad.setLabel("各镇街");
                 cityRoad.setParentId(areaCodeMap.get(unit.getArea()));
                 cityRoad.setCheckable(false);
                 areaSet.add(cityRoad);
-            }else if(unit.getUnitGrade() == 3){
-                if(ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))){
+            } else if (unit.getUnitGrade() == 3) {
+                if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))) {
                     continue;
                 }
-                ctUnitTreeDTO.setParentId(unit.getRoad()+"01-dept");
+                ctUnitTreeDTO.setParentId(unit.getRoad() + "01-dept");
 
                 CtUnitTreeDTO road = new CtUnitTreeDTO();
                 road.setValue(areaCodeMap.get(unit.getRoad()));
                 road.setLabel(areaNameMap.get(unit.getRoad()));
-                if(ctUnit.getUnitGrade().equals(3)){
+                if (ctUnit.getUnitGrade().equals(3)) {
                     road.setParentId("root");
-                }else{
-                    road.setParentId(unit.getArea()+"02-road");
+                } else {
+                    road.setParentId(unit.getArea() + "02-road");
                 }
                 road.setCheckable(true);
                 roadSet.add(road);
 
                 CtUnitTreeDTO roadDept = new CtUnitTreeDTO();
-                roadDept.setValue(unit.getRoad()+"01-dept");
+                roadDept.setValue(unit.getRoad() + "01-dept");
                 roadDept.setLabel("镇街直部门");
                 roadDept.setParentId(areaCodeMap.get(unit.getRoad()));
                 roadDept.setCheckable(false);
                 villageSet.add(roadDept);
 
-                CtUnitTreeDTO cityVillage= new CtUnitTreeDTO();
-                cityVillage.setValue(unit.getRoad()+"02-village");
+                CtUnitTreeDTO cityVillage = new CtUnitTreeDTO();
+                cityVillage.setValue(unit.getRoad() + "02-village");
                 cityVillage.setLabel("各社区");
                 cityVillage.setParentId(areaCodeMap.get(unit.getRoad()));
                 cityVillage.setCheckable(false);
                 villageSet.add(cityVillage);
 
-            }else if(unit.getUnitGrade() == 4){
-                if(ObjectUtils.isEmpty(unit.getRoad())){
+            } else if (unit.getUnitGrade() == 4) {
+                if (ObjectUtils.isEmpty(unit.getRoad())) {
                     continue;
                 }
-                if(ctUnit.getUnitGrade().equals(4)){
+                if (ctUnit.getUnitGrade().equals(4)) {
                     ctUnitTreeDTO.setParentId("root");
-                }else{
-                    ctUnitTreeDTO.setParentId(unit.getRoad()+"02-village");
+                } else {
+                    ctUnitTreeDTO.setParentId(unit.getRoad() + "02-village");
                 }
             }
             ctUnitTreeDTO.setCheckable(true);
-            if(!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)){
+            if (!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                unitSet.add(ctUnitTreeDTO);
+            }
+        }
+        List<CtUnitTreeDTO> treeList = new ArrayList<>();
+        treeList.addAll(citySet);
+        treeList.addAll(TreeUtils.sort(areaSet));
+        treeList.addAll(TreeUtils.sort(roadSet));
+        treeList.addAll(TreeUtils.sort(villageSet));
+        treeList.addAll(TreeUtils.sort(unitSet));
+        List<CtUnitTreeDTO> tree = TreeUtils.createUserTree(treeList);
+        return tree;
+    }
+
+    public List<CtUnitTreeDTO> unitTree4Union(String userId) {
+        CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
+        CtUnit ctUnit = mapper.selectById(loginUser.getUnitId());
+        if (ctUnit.getUnitGrade() == 3) {
+            ctUnit.setUnitGrade(2);
+        }
+        QueryWrapper<CtUnit> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("delete_status", 0);
+        if (ctUnit.getUnitGrade().equals(1)) {
+            queryWrapper.eq("city", ctUnit.getCity());
+            queryWrapper.in("unit_grade", Arrays.asList(1, 2, 3, 4));
+        } else if (ctUnit.getUnitGrade().equals(2)) {
+            queryWrapper.eq("area", ctUnit.getArea());
+            queryWrapper.in("unit_grade", Arrays.asList(2, 3, 4));
+        } else if (ctUnit.getUnitGrade().equals(3)) {
+            queryWrapper.eq("road", ctUnit.getRoad());
+            queryWrapper.in("unit_grade", Arrays.asList(3, 4));
+        } else if (ctUnit.getUnitGrade().equals(4)) {
+            queryWrapper.eq("village", ctUnit.getVillage());
+            queryWrapper.in("unit_grade", Arrays.asList(4));
+        }
+        List<CtUnit> ctUnits = mapper.selectList(queryWrapper);
+
+        Set<CtUnitTreeDTO> citySet = new HashSet<>();
+        Set<CtUnitTreeDTO> areaSet = new HashSet<>();
+        Set<CtUnitTreeDTO> roadSet = new HashSet<>();
+        Set<CtUnitTreeDTO> villageSet = new HashSet<>();
+        Set<CtUnitTreeDTO> unitSet = new HashSet<>();
+
+        Map<String, String> areaCodeMap = new HashMap<>();
+        Map<String, String> areaNameMap = new HashMap<>();
+        for (CtUnit unit : ctUnits) {
+            if (unit.getUnitGrade() == 1 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getCity(), unit.getId());
+                areaNameMap.put(unit.getCity(), unit.getUnitName());
+            }
+            if (unit.getUnitGrade() == 2 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getArea(), unit.getId());
+                areaNameMap.put(unit.getArea(), unit.getUnitName());
+            }
+            if (unit.getUnitGrade() == 3 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getRoad(), unit.getId());
+                areaNameMap.put(unit.getRoad(), unit.getUnitName());
+            }
+            if (unit.getUnitGrade() == 4 && unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
+                areaCodeMap.put(unit.getVillage(), unit.getId());
+                areaNameMap.put(unit.getVillage(), unit.getUnitName());
+            }
+        }
+        for (CtUnit unit : ctUnits) {
+            CtUnitTreeDTO ctUnitTreeDTO = new CtUnitTreeDTO();
+            ctUnitTreeDTO.setValue(unit.getId());
+            ctUnitTreeDTO.setLabel(unit.getUnitName());
+            if (unit.getUnitGrade() == 1 && ctUnit.getUnitGrade() == 1) {
+                ctUnitTreeDTO.setParentId(unit.getCity() + "01-dept");
+
+                CtUnitTreeDTO city = new CtUnitTreeDTO();
+                city.setValue(areaCodeMap.get(unit.getCity()));
+                city.setLabel(areaNameMap.get(unit.getCity()));
+                city.setParentId("root");
+                city.setCheckable(true);
+                citySet.add(city);
+
+                CtUnitTreeDTO cityDept = new CtUnitTreeDTO();
+                cityDept.setValue(unit.getCity() + "01-dept");
+                cityDept.setLabel("市直部门");
+                cityDept.setParentId(areaCodeMap.get(unit.getCity()));
+                cityDept.setCheckable(false);
+                areaSet.add(cityDept);
+
+                CtUnitTreeDTO cityArea = new CtUnitTreeDTO();
+                cityArea.setValue(unit.getCity() + "02-area");
+                cityArea.setLabel("各区");
+                cityArea.setParentId(areaCodeMap.get(unit.getCity()));
+                cityArea.setCheckable(false);
+                areaSet.add(cityArea);
+            } else if (unit.getUnitGrade() == 2) {
+                if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getArea()))) {
+                    continue;
+                }
+                ctUnitTreeDTO.setParentId(unit.getArea() + "01-dept");
+
+                CtUnitTreeDTO area = new CtUnitTreeDTO();
+                area.setValue(areaCodeMap.get(unit.getArea()));
+                area.setLabel(areaNameMap.get(unit.getArea()));
+                if (ctUnit.getUnitGrade().equals(2)) {
+                    area.setParentId("root");
+                } else {
+                    area.setParentId(unit.getCity() + "02-area");
+                }
+                area.setCheckable(true);
+                areaSet.add(area);
+
+                CtUnitTreeDTO areaDept = new CtUnitTreeDTO();
+                areaDept.setValue(unit.getArea() + "01-dept");
+                areaDept.setLabel("区直部门");
+                areaDept.setParentId(areaCodeMap.get(unit.getArea()));
+                areaDept.setCheckable(false);
+                areaSet.add(areaDept);
+
+                CtUnitTreeDTO cityRoad = new CtUnitTreeDTO();
+                cityRoad.setValue(unit.getArea() + "02-road");
+                cityRoad.setLabel("各镇街");
+                cityRoad.setParentId(areaCodeMap.get(unit.getArea()));
+                cityRoad.setCheckable(false);
+                areaSet.add(cityRoad);
+            } else if (unit.getUnitGrade() == 3) {
+                if (ObjectUtils.isEmpty(areaCodeMap.get(unit.getRoad()))) {
+                    continue;
+                }
+                ctUnitTreeDTO.setParentId(unit.getRoad() + "01-dept");
+
+                CtUnitTreeDTO road = new CtUnitTreeDTO();
+                road.setValue(areaCodeMap.get(unit.getRoad()));
+                road.setLabel(areaNameMap.get(unit.getRoad()));
+                if (ctUnit.getUnitGrade().equals(3)) {
+                    road.setParentId("root");
+                } else {
+                    road.setParentId(unit.getArea() + "02-road");
+                }
+                road.setCheckable(true);
+                roadSet.add(road);
+
+                CtUnitTreeDTO roadDept = new CtUnitTreeDTO();
+                roadDept.setValue(unit.getRoad() + "01-dept");
+                roadDept.setLabel("镇街直部门");
+                roadDept.setParentId(areaCodeMap.get(unit.getRoad()));
+                roadDept.setCheckable(false);
+                villageSet.add(roadDept);
+
+                CtUnitTreeDTO cityVillage = new CtUnitTreeDTO();
+                cityVillage.setValue(unit.getRoad() + "02-village");
+                cityVillage.setLabel("各社区");
+                cityVillage.setParentId(areaCodeMap.get(unit.getRoad()));
+                cityVillage.setCheckable(false);
+                villageSet.add(cityVillage);
+
+            } else if (unit.getUnitGrade() == 4) {
+                if (ObjectUtils.isEmpty(unit.getRoad())) {
+                    continue;
+                }
+                if (ctUnit.getUnitGrade().equals(4)) {
+                    ctUnitTreeDTO.setParentId("root");
+                } else {
+                    ctUnitTreeDTO.setParentId(unit.getRoad() + "02-village");
+                }
+            }
+            ctUnitTreeDTO.setCheckable(true);
+            if (!unit.getUnitType().equals(UserBaseConsts.UNIT_TYPE_101)) {
                 unitSet.add(ctUnitTreeDTO);
             }
         }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
index 0f94532..12315b8 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -87,6 +87,7 @@
         <result property="oldCaseTypeName" column="old_case_type_name"/>
         <result property="canalSecond" column="canal_second"/>
         <result property="canalSecondName" column="canal_second_name"/>
+        <result property="caseRemark" column="case_remark"/>
     </resultMap>
     <resultMap id="dataResult-all" type="cn.huge.module.cases.domain.dto.CasePageDTO">
         <result property="id" column="id"/>
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
index 7151ed4..bf2a2ea 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseTaskMapper.xml
@@ -432,7 +432,7 @@
     <select id="pageMyTaskFp" resultType="cn.huge.module.cases.domain.dto.FrontPageListFPDTO">
         SELECT t1.id as ownerId, t1.case_id as caseId, t3.is_risk as isRisk,
         t1.create_time as turnaroundTime, t1.expire_time as timeLimit, t1.handle_time as taskHandleTime,
-        t2.case_level as caseGrade, t2.canal_name as caseSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
+        t2.case_level as caseGrade, t2.canal_name as caseSource,t2.canal_second_name as caseSecondSource, concat_ws('', ifnull(t2.case_type_first_name, ''), '/' , ifnull(t2.case_type_name, '')) as caseType,
         concat(t2.que_area_name, t2.que_road_name) as queAddress,
         concat_ws('', ifnull(t2.plaintiffs, ''), ifnull(t2.pagents, '')) as plaintiffs, concat_ws('', ifnull(t2.defendants, ''), ifnull(t2.dagents, '')) as defendants,
         (select count(1) from dyh_case_supervise where case_id = t1.case_id) as superviseCount
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListFPDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListFPDTO.java
index 3c5f19b..76fe248 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListFPDTO.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/FrontPageListFPDTO.java
@@ -63,6 +63,11 @@
     private String caseSource;
 
     /**
+     * 事项来源二级
+     */
+    private String caseSecondSource;
+
+    /**
      * 问题属地
      */
     private String queAddress;
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/GridEventDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/GridEventDTO.java
index 25da6d4..7b5d9fb 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/GridEventDTO.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/GridEventDTO.java
@@ -187,4 +187,9 @@
      */
     @TableField(value = "certi_no")
     private String certiNo;
+    /**
+     * 公安的id
+     */
+    @TableField(value = "system_id")
+    private String systemId;
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseInfo.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseInfo.java
index 0820bbc..c27934c 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseInfo.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/po/CaseInfo.java
@@ -566,4 +566,11 @@
      */
     @TableField(exist = false)
     private Integer isGridEvent;
+
+    /**
+     * 案件备注
+     */
+    @TableField(value = "case_remark")
+    @ApiModelProperty(value = "案件备注", notes = "案件备注")
+    private String caseRemark;
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
index 6f47029..24207cd 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -2636,7 +2636,12 @@
                 }
                 //todo case_title生成、经纬度转换
                 caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
-                caseInfo.setCreateTime(nowDate);
+                if(registerSaveDTO.getCreateTime()!=null){
+                    caseInfo.setCreateTime(registerSaveDTO.getCreateTime());
+                }else {
+                    caseInfo.setCreateTime(nowDate);
+                }
+
                 caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
                 //默认添加省市
                 caseInfo.setQueProv("19");
@@ -2654,7 +2659,7 @@
                 if (StringUtils.isNotBlank(registerSaveDTO.getTcqk())) {
                     caseInfoUnfold.setTcqk(registerSaveDTO.getTcqk());
                 }
-                caseInfoUnfold.setCreateTime(nowDate);
+                caseInfoUnfold.setCreateTime(caseInfo.getCreateTime());
                 caseInfoUnfold.setUpdateTime(nowDate);
                 caseInfoUnfoldService.save(caseInfoUnfold);
                 // 自动调度流程
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java
index 8cb1dfb..4f28c41 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/web/GridEventWebController.java
@@ -385,6 +385,8 @@
 
             //添加附件查询条件
             List<String>ownerIdList = gridApprovalRecordVo.getOwnerIdList();
+            log.info("开始获取附件:{}",gridApprovalRecordVo.getOwnerIdList());
+            log.info("开始获取附件:{}",gridApprovalRecordVo.getCaseId());
             Map<String, Object>terms = new HashMap<>();
             if(ownerIdList != null && ownerIdList.size() != 0){
                 terms.put("ownerIdList", ownerIdList);
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCaseInfoDTO.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCaseInfoDTO.java
index a5352cc..a50d1bc 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCaseInfoDTO.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCaseInfoDTO.java
@@ -32,4 +32,6 @@
     private String extInfo; // 扩展信息,json格式的字符串
     private String extInfoRisk; //扩展信息 json格式的字符串
     private String extInfoTcqk; //扩展信息 json格式的字符串
+    private String createTime;
+    private String systemId;
 }
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridEvent.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridEvent.java
index c233df9..ac49fce 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridEvent.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/po/GridEvent.java
@@ -188,4 +188,10 @@
      */
     @TableField(value = "certi_no")
     private String certiNo;
+
+    /**
+     * 公安的id
+     */
+    @TableField(value = "system_id")
+    private String systemId;
 }
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/timer/GridCityCaseTimer.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/timer/GridCityCaseTimer.java
index bdbb8ca..2442725 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/timer/GridCityCaseTimer.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/timer/GridCityCaseTimer.java
@@ -249,7 +249,9 @@
                                 }
                                 registerSaveDTO.setId(IdUtils.getNewTimeId());
                                 BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
+                                registerSaveDTO.setCreateTime(DateUtils.StringToDate(gridCaseInfoDTO.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
                                 gridEvent.setLinkman(uploadPolice);
+                                gridEvent.setSystemId(gridCaseInfoDTO.getSystemId());
                                 gridEvent.setContactTel(uploadPolicePhone);
                                 gridEvent.setSysOrgId(gridCode);
                                 gridEvent.setCaseId(registerSaveDTO.getId());
@@ -529,7 +531,9 @@
                                     }
                                 }
                                 registerSaveDTO.setId(IdUtils.getNewTimeId());
+                                registerSaveDTO.setCreateTime(DateUtils.StringToDate(gridCaseInfoDTO.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
                                 BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
+                                gridEvent.setSystemId(gridCaseInfoDTO.getSystemId());
                                 gridEvent.setLinkman(uploadPolice);
                                 gridEvent.setContactTel(uploadPolicePhone);
                                 gridEvent.setSysOrgId(gridCode);
diff --git a/sql/20250611.sql b/sql/20250611.sql
new file mode 100644
index 0000000..9c2560f
--- /dev/null
+++ b/sql/20250611.sql
@@ -0,0 +1,5 @@
+ALTER TABLE HUGEINFO.dyh_case_info ADD case_remark VARCHAR(1500) DEFAULT '';
+COMMENT ON COLUMN HUGEINFO.dyh_case_info.case_remark IS '案件备注'
+
+ALTER TABLE HUGEINFO.dyh_th_grid_event ADD system_id VARCHAR(200) DEFAULT '';
+COMMENT ON COLUMN HUGEINFO.dyh_th_grid_event.system_id IS '公安单号'
\ No newline at end of file

--
Gitblit v1.8.0