Commit 283db991480d40e6ecaf473b18253d7c23cdce1b

Authored by wangqian
2 parents 1542f458 7f297997

Merge branch 'de_wangfs_202511' into dev

Showing 18 changed files with 645 additions and 491 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java
@@ -3,6 +3,8 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; @@ -3,6 +3,8 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
3 import lombok.*; 3 import lombok.*;
4 4
5 import java.time.LocalDate; 5 import java.time.LocalDate;
  6 +import java.util.List;
  7 +
6 import io.swagger.v3.oas.annotations.media.Schema; 8 import io.swagger.v3.oas.annotations.media.Schema;
7 import com.zteits.urbanops.framework.common.pojo.PageParam; 9 import com.zteits.urbanops.framework.common.pojo.PageParam;
8 import org.springframework.format.annotation.DateTimeFormat; 10 import org.springframework.format.annotation.DateTimeFormat;
@@ -35,9 +37,12 @@ public class InspectionPlanCommitPageReqVO extends PageParam { @@ -35,9 +37,12 @@ public class InspectionPlanCommitPageReqVO extends PageParam {
35 @Schema(description = "部门ID(道路负责部门id)", example = "2714") 37 @Schema(description = "部门ID(道路负责部门id)", example = "2714")
36 private Long deptId; 38 private Long deptId;
37 39
38 - @Schema(description = "道路ID", example = "12917") 40 + @Schema(description = "道路", example = "12917")
39 private String roadName; 41 private String roadName;
40 42
  43 + @Schema(description = "角色名称", example = "12917")
  44 + private String roleName;
  45 +
41 @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", example = "10") 46 @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", example = "10")
42 private Integer levelId; 47 private Integer levelId;
43 48
@@ -56,4 +61,6 @@ public class InspectionPlanCommitPageReqVO extends PageParam { @@ -56,4 +61,6 @@ public class InspectionPlanCommitPageReqVO extends PageParam {
56 61
57 @Schema(description = "备注", example = "你猜") 62 @Schema(description = "备注", example = "你猜")
58 private String remark; 63 private String remark;
  64 +
  65 + private List<String> busiLineList;
59 } 66 }
60 \ No newline at end of file 67 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtrees/vo/OldtreesRespVO.java
1 package com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo; 1 package com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo;
2 2
  3 +import com.baomidou.mybatisplus.annotation.TableField;
  4 +import com.fhs.core.trans.anno.Trans;
  5 +import com.fhs.core.trans.constant.TransType;
  6 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
3 import io.swagger.v3.oas.annotations.media.Schema; 7 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.*; 8 import lombok.*;
5 import java.util.*; 9 import java.util.*;
@@ -33,9 +37,12 @@ public class OldtreesRespVO { @@ -33,9 +37,12 @@ public class OldtreesRespVO {
33 private String location; 37 private String location;
34 38
35 @Schema(description = "养护单位") 39 @Schema(description = "养护单位")
36 - @ExcelProperty("养护单位")  
37 private String maintainunit; 40 private String maintainunit;
38 41
  42 + @Schema(description = "养护单位名称")
  43 + @ExcelProperty("养护单位")
  44 + private String maintainUnitName;
  45 +
39 @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)") 46 @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)")
40 @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)") 47 @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)")
41 private String oldtreeownership; 48 private String oldtreeownership;
@@ -180,4 +187,8 @@ public class OldtreesRespVO { @@ -180,4 +187,8 @@ public class OldtreesRespVO {
180 @ExcelProperty("部门id") 187 @ExcelProperty("部门id")
181 private Long deptId; 188 private Long deptId;
182 189
  190 + private List<String> treeImgList;
  191 +
  192 + private List<String> nameplatephotoList;
  193 +
183 } 194 }
184 \ No newline at end of file 195 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/oldtreeschangelog/vo/OldtreesChangeLogRespVO.java
1 -package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.*;  
5 -import java.util.*;  
6 -import org.springframework.format.annotation.DateTimeFormat;  
7 -import java.time.LocalDateTime;  
8 -import cn.idev.excel.annotation.*;  
9 -  
10 -@Schema(description = "管理后台 - 古树名木修改记录 Response VO")  
11 -@Data  
12 -@ExcelIgnoreUnannotated  
13 -public class OldtreesChangeLogRespVO {  
14 -  
15 - @Schema(description = "id", example = "148")  
16 - @ExcelProperty("id")  
17 - private String id;  
18 -  
19 - @Schema(description = "garden_oldtrees 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32596")  
20 - @ExcelProperty("garden_oldtrees 的主键")  
21 - private String oldtreeid;  
22 -  
23 - @Schema(description = "编号")  
24 - @ExcelProperty("编号")  
25 - private String famoustreenumber;  
26 -  
27 - @Schema(description = "级别--数据字典:一级、两级")  
28 - @ExcelProperty("级别--数据字典:一级、两级")  
29 - private String treelevel;  
30 -  
31 - @Schema(description = "树种", example = "2")  
32 - @ExcelProperty("树种")  
33 - private String treetype;  
34 -  
35 - @Schema(description = "所在地")  
36 - @ExcelProperty("所在地")  
37 - private String location;  
38 -  
39 - @Schema(description = "养护单位")  
40 - @ExcelProperty("养护单位")  
41 - private String maintainunit;  
42 -  
43 - @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)")  
44 - @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)")  
45 - private String oldtreeownership;  
46 -  
47 - @Schema(description = "生长地点")  
48 - @ExcelProperty("生长地点")  
49 - private String growlocation;  
50 -  
51 - @Schema(description = "拉丁名", example = "张三")  
52 - @ExcelProperty("拉丁名")  
53 - private String latinname;  
54 -  
55 - @Schema(description = "树高")  
56 - @ExcelProperty("树高")  
57 - private String treeheight;  
58 -  
59 - @Schema(description = "估测树龄")  
60 - @ExcelProperty("估测树龄")  
61 - private String estimationtreeage;  
62 -  
63 - @Schema(description = "胸径")  
64 - @ExcelProperty("胸径")  
65 - private String dbh;  
66 -  
67 - @Schema(description = "经度")  
68 - @ExcelProperty("经度")  
69 - private String longitude;  
70 -  
71 - @Schema(description = "纬度")  
72 - @ExcelProperty("纬度")  
73 - private String latitude;  
74 -  
75 - @Schema(description = "冠幅东西")  
76 - @ExcelProperty("冠幅东西")  
77 - private String canopyeastwest;  
78 -  
79 - @Schema(description = "冠幅南北")  
80 - @ExcelProperty("冠幅南北")  
81 - private String canopysouthnorth;  
82 -  
83 - @Schema(description = "管护责任单位")  
84 - @ExcelProperty("管护责任单位")  
85 - private String managedutyunit;  
86 -  
87 - @Schema(description = "干周")  
88 - @ExcelProperty("干周")  
89 - private String weekday;  
90 -  
91 - @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡")  
92 - @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡")  
93 - private String growthvigor;  
94 -  
95 - @Schema(description = "生长环境")  
96 - @ExcelProperty("生长环境")  
97 - private String growthenvironment;  
98 -  
99 - @Schema(description = "古树照片一")  
100 - @ExcelProperty("古树照片一")  
101 - private String treephotoone;  
102 -  
103 - @Schema(description = "春季养护管理措施")  
104 - @ExcelProperty("春季养护管理措施")  
105 - private String springmaintenance;  
106 -  
107 - @Schema(description = "夏季养护管理措施")  
108 - @ExcelProperty("夏季养护管理措施")  
109 - private String summermaintenance;  
110 -  
111 - @Schema(description = "秋季养护管理措施")  
112 - @ExcelProperty("秋季养护管理措施")  
113 - private String autumnmaintenance;  
114 -  
115 - @Schema(description = "冬季养护管理措施")  
116 - @ExcelProperty("冬季养护管理措施")  
117 - private String wintermaintenance;  
118 -  
119 - @Schema(description = "年度")  
120 - @ExcelProperty("年度")  
121 - private String annual;  
122 -  
123 - @Schema(description = "养护记录备注", example = "你说的对")  
124 - @ExcelProperty("养护记录备注")  
125 - private String curingremark;  
126 -  
127 - @Schema(description = "古树照片二")  
128 - @ExcelProperty("古树照片二")  
129 - private String treephototwo;  
130 -  
131 - @Schema(description = "古树照片三")  
132 - @ExcelProperty("古树照片三")  
133 - private String treephotothree;  
134 -  
135 - @Schema(description = "古树铭牌照片")  
136 - @ExcelProperty("古树铭牌照片")  
137 - private String nameplatephoto;  
138 -  
139 - @Schema(description = "数据状态(已更新、未更新)")  
140 - @ExcelProperty("数据状态(已更新、未更新)")  
141 - private String datastate;  
142 -  
143 - @Schema(description = "养护员工--作业队下派古树时选择的派发员工")  
144 - @ExcelProperty("养护员工--作业队下派古树时选择的派发员工")  
145 - private String curingstaff;  
146 -  
147 - @Schema(description = "状态(驳回/确认)")  
148 - @ExcelProperty("状态(驳回/确认)")  
149 - private String state;  
150 -  
151 - @Schema(description = "平台驳回状态(平台驳回)")  
152 - @ExcelProperty("平台驳回状态(平台驳回)")  
153 - private String platformstate;  
154 -  
155 - @Schema(description = "所属街道")  
156 - @ExcelProperty("所属街道")  
157 - private String street;  
158 -  
159 - @Schema(description = "负责人姓名", example = "芋艿")  
160 - @ExcelProperty("负责人姓名")  
161 - private String responsibleusername;  
162 -  
163 - @Schema(description = "负责人电话")  
164 - @ExcelProperty("负责人电话")  
165 - private String responsibleuserphone;  
166 -  
167 - @Schema(description = "创建者")  
168 - @ExcelProperty("创建者")  
169 - private String createby;  
170 -  
171 - @Schema(description = "创建时间")  
172 - @ExcelProperty("创建时间")  
173 - private LocalDateTime createtime;  
174 -  
175 - @Schema(description = "更新者")  
176 - @ExcelProperty("更新者")  
177 - private String updateby;  
178 -  
179 - @Schema(description = "更新时间")  
180 - @ExcelProperty("更新时间")  
181 - private String updatetime;  
182 -  
183 -}  
184 \ No newline at end of file 1 \ No newline at end of file
  2 +package com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo;
  3 +
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import lombok.*;
  7 +import java.util.*;
  8 +import org.springframework.format.annotation.DateTimeFormat;
  9 +import java.time.LocalDateTime;
  10 +import cn.idev.excel.annotation.*;
  11 +
  12 +@Schema(description = "管理后台 - 古树名木修改记录 Response VO")
  13 +@Data
  14 +@ExcelIgnoreUnannotated
  15 +public class OldtreesChangeLogRespVO {
  16 +
  17 + @Schema(description = "id", example = "148")
  18 + @ExcelProperty("id")
  19 + private String id;
  20 +
  21 + @Schema(description = "garden_oldtrees 的主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32596")
  22 + @ExcelProperty("garden_oldtrees 的主键")
  23 + private String oldtreeid;
  24 +
  25 + @Schema(description = "编号")
  26 + @ExcelProperty("编号")
  27 + private String famoustreenumber;
  28 +
  29 + @Schema(description = "级别--数据字典:一级、两级")
  30 + @ExcelProperty("级别--数据字典:一级、两级")
  31 + private String treelevel;
  32 +
  33 + @Schema(description = "树种", example = "2")
  34 + @ExcelProperty("树种")
  35 + private String treetype;
  36 +
  37 + @Schema(description = "所在地")
  38 + @ExcelProperty("所在地")
  39 + private String location;
  40 +
  41 + @Schema(description = "养护单位")
  42 + @ExcelProperty("养护单位")
  43 + private String maintainunit;
  44 +
  45 + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)")
  46 + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)")
  47 + private String oldtreeownership;
  48 +
  49 + @Schema(description = "生长地点")
  50 + @ExcelProperty("生长地点")
  51 + private String growlocation;
  52 +
  53 + @Schema(description = "拉丁名", example = "张三")
  54 + @ExcelProperty("拉丁名")
  55 + private String latinname;
  56 +
  57 + @Schema(description = "树高")
  58 + @ExcelProperty("树高")
  59 + private String treeheight;
  60 +
  61 + @Schema(description = "估测树龄")
  62 + @ExcelProperty("估测树龄")
  63 + private String estimationtreeage;
  64 +
  65 + @Schema(description = "胸径")
  66 + @ExcelProperty("胸径")
  67 + private String dbh;
  68 +
  69 + @Schema(description = "经度")
  70 + @ExcelProperty("经度")
  71 + private String longitude;
  72 +
  73 + @Schema(description = "纬度")
  74 + @ExcelProperty("纬度")
  75 + private String latitude;
  76 +
  77 + @Schema(description = "冠幅东西")
  78 + @ExcelProperty("冠幅东西")
  79 + private String canopyeastwest;
  80 +
  81 + @Schema(description = "冠幅南北")
  82 + @ExcelProperty("冠幅南北")
  83 + private String canopysouthnorth;
  84 +
  85 + @Schema(description = "管护责任单位")
  86 + @ExcelProperty("管护责任单位")
  87 + private String managedutyunit;
  88 +
  89 + @Schema(description = "干周")
  90 + @ExcelProperty("干周")
  91 + private String weekday;
  92 +
  93 + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡")
  94 + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡")
  95 + private String growthvigor;
  96 +
  97 + @Schema(description = "生长环境")
  98 + @ExcelProperty("生长环境")
  99 + private String growthenvironment;
  100 +
  101 + @Schema(description = "古树照片一")
  102 + @ExcelProperty("古树照片一")
  103 + private String treephotoone;
  104 +
  105 + @Schema(description = "春季养护管理措施")
  106 + @ExcelProperty("春季养护管理措施")
  107 + private String springmaintenance;
  108 +
  109 + @Schema(description = "夏季养护管理措施")
  110 + @ExcelProperty("夏季养护管理措施")
  111 + private String summermaintenance;
  112 +
  113 + @Schema(description = "秋季养护管理措施")
  114 + @ExcelProperty("秋季养护管理措施")
  115 + private String autumnmaintenance;
  116 +
  117 + @Schema(description = "冬季养护管理措施")
  118 + @ExcelProperty("冬季养护管理措施")
  119 + private String wintermaintenance;
  120 +
  121 + @Schema(description = "年度")
  122 + @ExcelProperty("年度")
  123 + private String annual;
  124 +
  125 + @Schema(description = "养护记录备注", example = "你说的对")
  126 + @ExcelProperty("养护记录备注")
  127 + private String curingremark;
  128 +
  129 + @Schema(description = "古树照片二")
  130 + @ExcelProperty("古树照片二")
  131 + private String treephototwo;
  132 +
  133 + @Schema(description = "古树照片三")
  134 + @ExcelProperty("古树照片三")
  135 + private String treephotothree;
  136 +
  137 + @Schema(description = "古树铭牌照片")
  138 + @ExcelProperty("古树铭牌照片")
  139 + private String nameplatephoto;
  140 +
  141 + @Schema(description = "数据状态(已更新、未更新)")
  142 + @ExcelProperty("数据状态(已更新、未更新)")
  143 + private String datastate;
  144 +
  145 + @Schema(description = "养护员工--作业队下派古树时选择的派发员工")
  146 + @ExcelProperty("养护员工--作业队下派古树时选择的派发员工")
  147 + private String curingstaff;
  148 +
  149 + @Schema(description = "状态(驳回/确认)")
  150 + @ExcelProperty("状态(驳回/确认)")
  151 + private String state;
  152 +
  153 + @Schema(description = "平台驳回状态(平台驳回)")
  154 + @ExcelProperty("平台驳回状态(平台驳回)")
  155 + private String platformstate;
  156 +
  157 + @Schema(description = "所属街道")
  158 + @ExcelProperty("所属街道")
  159 + private String street;
  160 +
  161 + @Schema(description = "负责人姓名", example = "芋艿")
  162 + @ExcelProperty("负责人姓名")
  163 + private String responsibleusername;
  164 +
  165 + @Schema(description = "负责人电话")
  166 + @ExcelProperty("负责人电话")
  167 + private String responsibleuserphone;
  168 +
  169 + @Schema(description = "创建者")
  170 + @ExcelProperty("创建者")
  171 + private String createby;
  172 +
  173 + @Schema(description = "创建时间")
  174 + @ExcelProperty("创建时间")
  175 + private LocalDateTime createtime;
  176 +
  177 + @Schema(description = "更新者")
  178 + @ExcelProperty("更新者")
  179 + private String updateby;
  180 +
  181 + @Schema(description = "更新时间")
  182 + @ExcelProperty("更新时间")
  183 + private String updatetime;
  184 +
  185 + private List<String> treeImgList;
  186 +
  187 + private List<String> nameplatephotoList;
  188 +
  189 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/road/vo/RoadSaveReqVO.java
@@ -90,11 +90,9 @@ public class RoadSaveReqVO { @@ -90,11 +90,9 @@ public class RoadSaveReqVO {
90 private Long deptId; 90 private Long deptId;
91 91
92 @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") 92 @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
93 - @NotEmpty(message = "创建者不能为空")  
94 private String creatorName; 93 private String creatorName;
95 94
96 @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") 95 @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
97 - @NotEmpty(message = "更新者不能为空")  
98 private String updaterName; 96 private String updaterName;
99 97
100 -}  
101 \ No newline at end of file 98 \ No newline at end of file
  99 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/tree/vo/TreeRespVO.java
1 -package com.zteits.urbanops.module.garden.controller.admin.tree.vo;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.*;  
5 -import java.util.*;  
6 -import org.springframework.format.annotation.DateTimeFormat;  
7 -import java.time.LocalDateTime;  
8 -import cn.idev.excel.annotation.*;  
9 -  
10 -@Schema(description = "管理后台 - 一树一档案 Response VO")  
11 -@Data  
12 -@ExcelIgnoreUnannotated  
13 -public class TreeRespVO {  
14 -  
15 - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28236")  
16 - @ExcelProperty("id")  
17 - private Long id;  
18 -  
19 - @Schema(description = "编号")  
20 - @ExcelProperty("编号")  
21 - private String treenumber;  
22 -  
23 - @Schema(description = "拉丁名", example = "李四")  
24 - @ExcelProperty("拉丁名")  
25 - private String latinname;  
26 -  
27 - @Schema(description = "树种", example = "2")  
28 - @ExcelProperty("树种")  
29 - private String treetype;  
30 -  
31 - @Schema(description = "树高")  
32 - @ExcelProperty("树高")  
33 - private String treeheight;  
34 -  
35 - @Schema(description = "冠幅")  
36 - @ExcelProperty("冠幅")  
37 - private String canopy;  
38 -  
39 - @Schema(description = "胸径")  
40 - @ExcelProperty("胸径")  
41 - private String dbh;  
42 -  
43 - @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡")  
44 - @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡")  
45 - private String growthvigor;  
46 -  
47 - @Schema(description = "级别--数据字典:一级、两级")  
48 - @ExcelProperty("级别--数据字典:一级、两级")  
49 - private String treelevel;  
50 -  
51 - @Schema(description = "经度")  
52 - @ExcelProperty("经度")  
53 - private String longitude;  
54 -  
55 - @Schema(description = "纬度")  
56 - @ExcelProperty("纬度")  
57 - private String latitude;  
58 -  
59 - @Schema(description = "所在地")  
60 - @ExcelProperty("所在地")  
61 - private String location;  
62 -  
63 - @Schema(description = "养护单位")  
64 - @ExcelProperty("养护单位")  
65 - private String maintainunit;  
66 -  
67 - @Schema(description = "管护单位")  
68 - @ExcelProperty("管护单位")  
69 - private String managedutyunit;  
70 -  
71 - @Schema(description = "道路id")  
72 - @ExcelProperty("道路id")  
73 - private Long road;  
74 -  
75 - @Schema(description = "所属街道")  
76 - @ExcelProperty("所属街道")  
77 - private String street;  
78 -  
79 - @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)")  
80 - @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)")  
81 - private String oldtreeownership;  
82 -  
83 - @Schema(description = "数据状态(已更新、未更新)")  
84 - @ExcelProperty("数据状态(已更新、未更新)")  
85 - private String datastate;  
86 -  
87 - @Schema(description = "估测树龄")  
88 - @ExcelProperty("估测树龄")  
89 - private String estimationtreeage;  
90 -  
91 - @Schema(description = "冠幅东西")  
92 - @ExcelProperty("冠幅东西")  
93 - private String canopyeastwest;  
94 -  
95 - @Schema(description = "冠幅南北")  
96 - @ExcelProperty("冠幅南北")  
97 - private String canopysouthnorth;  
98 -  
99 - @Schema(description = "干周")  
100 - @ExcelProperty("干周")  
101 - private String weekday;  
102 -  
103 - @Schema(description = "生长地点")  
104 - @ExcelProperty("生长地点")  
105 - private String growlocation;  
106 -  
107 - @Schema(description = "生长环境")  
108 - @ExcelProperty("生长环境")  
109 - private String growthenvironment;  
110 -  
111 - @Schema(description = "树木照片一")  
112 - @ExcelProperty("树木照片一")  
113 - private String treephotoone;  
114 -  
115 - @Schema(description = "古树照片二")  
116 - @ExcelProperty("古树照片二")  
117 - private String treephototwo;  
118 -  
119 - @Schema(description = "古树照片三")  
120 - @ExcelProperty("古树照片三")  
121 - private String treephotothree;  
122 -  
123 - @Schema(description = "古树照片四")  
124 - @ExcelProperty("古树照片四")  
125 - private String treephotofour;  
126 -  
127 - @Schema(description = "古树照片五")  
128 - @ExcelProperty("古树照片五")  
129 - private String treephotofive;  
130 -  
131 - @Schema(description = "创建者")  
132 - @ExcelProperty("创建者")  
133 - private String createby;  
134 -  
135 - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)  
136 - @ExcelProperty("创建时间")  
137 - private LocalDateTime createtime;  
138 -  
139 - @Schema(description = "更新者")  
140 - @ExcelProperty("更新者")  
141 - private String updateby;  
142 -  
143 - @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)  
144 - @ExcelProperty("更新时间")  
145 - private LocalDateTime updatetime;  
146 -  
147 - @Schema(description = "备注", example = "你说的对")  
148 - @ExcelProperty("备注")  
149 - private String remark;  
150 -  
151 - @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101")  
152 - @ExcelProperty("部门id")  
153 - private Long deptId;  
154 -  
155 -}  
156 \ No newline at end of file 1 \ No newline at end of file
  2 +package com.zteits.urbanops.module.garden.controller.admin.tree.vo;
  3 +
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.fhs.core.trans.anno.Trans;
  6 +import com.fhs.core.trans.constant.TransType;
  7 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
  8 +import io.swagger.v3.oas.annotations.media.Schema;
  9 +import lombok.*;
  10 +import java.util.*;
  11 +import org.springframework.format.annotation.DateTimeFormat;
  12 +import java.time.LocalDateTime;
  13 +import cn.idev.excel.annotation.*;
  14 +
  15 +@Schema(description = "管理后台 - 一树一档案 Response VO")
  16 +@Data
  17 +@ExcelIgnoreUnannotated
  18 +public class TreeRespVO {
  19 +
  20 + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28236")
  21 + @ExcelProperty("id")
  22 + private Long id;
  23 +
  24 + @Schema(description = "编号")
  25 + @ExcelProperty("编号")
  26 + private String treenumber;
  27 +
  28 + @Schema(description = "拉丁名", example = "李四")
  29 + @ExcelProperty("拉丁名")
  30 + private String latinname;
  31 +
  32 + @Schema(description = "树种", example = "2")
  33 + @ExcelProperty("树种")
  34 + private String treetype;
  35 +
  36 + @Schema(description = "树高")
  37 + @ExcelProperty("树高")
  38 + private String treeheight;
  39 +
  40 + @Schema(description = "冠幅")
  41 + @ExcelProperty("冠幅")
  42 + private String canopy;
  43 +
  44 + @Schema(description = "胸径")
  45 + @ExcelProperty("胸径")
  46 + private String dbh;
  47 +
  48 + @Schema(description = "生长势--数据字典:正常,衰弱,濒危,死亡")
  49 + @ExcelProperty("生长势--数据字典:正常,衰弱,濒危,死亡")
  50 + private String growthvigor;
  51 +
  52 + @Schema(description = "级别--数据字典:一级、两级")
  53 + @ExcelProperty("级别--数据字典:一级、两级")
  54 + private String treelevel;
  55 +
  56 + @Schema(description = "经度")
  57 + @ExcelProperty("经度")
  58 + private String longitude;
  59 +
  60 + @Schema(description = "纬度")
  61 + @ExcelProperty("纬度")
  62 + private String latitude;
  63 +
  64 + @Schema(description = "所在地")
  65 + @ExcelProperty("所在地")
  66 + private String location;
  67 +
  68 + @Schema(description = "养护单位")
  69 + @Trans(type = TransType.SIMPLE, targetClassName = "com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO",
  70 + key = "id", fields = "name", ref = "maintainUnitName")
  71 + private String maintainunit;
  72 +
  73 + @Schema(description = "养护单位名称")
  74 + @ExcelProperty("养护单位")
  75 + private String maintainUnitName;
  76 +
  77 + @Schema(description = "管护单位")
  78 + @ExcelProperty("管护单位")
  79 + private String managedutyunit;
  80 +
  81 + @Schema(description = "道路id")
  82 + @ExcelProperty("道路id")
  83 + private Long road;
  84 +
  85 + @Schema(description = "所属街道")
  86 + @ExcelProperty("所属街道")
  87 + private String street;
  88 +
  89 + @Schema(description = "权属分类--数据字典:专业绿地和单位(居住区)")
  90 + @ExcelProperty("权属分类--数据字典:专业绿地和单位(居住区)")
  91 + private String oldtreeownership;
  92 +
  93 + @Schema(description = "数据状态(已更新、未更新)")
  94 + @ExcelProperty("数据状态(已更新、未更新)")
  95 + private String datastate;
  96 +
  97 + @Schema(description = "估测树龄")
  98 + @ExcelProperty("估测树龄")
  99 + private String estimationtreeage;
  100 +
  101 + @Schema(description = "冠幅东西")
  102 + @ExcelProperty("冠幅东西")
  103 + private String canopyeastwest;
  104 +
  105 + @Schema(description = "冠幅南北")
  106 + @ExcelProperty("冠幅南北")
  107 + private String canopysouthnorth;
  108 +
  109 + @Schema(description = "干周")
  110 + @ExcelProperty("干周")
  111 + private String weekday;
  112 +
  113 + @Schema(description = "生长地点")
  114 + @ExcelProperty("生长地点")
  115 + private String growlocation;
  116 +
  117 + @Schema(description = "生长环境")
  118 + @ExcelProperty("生长环境")
  119 + private String growthenvironment;
  120 +
  121 + @Schema(description = "树木照片一")
  122 + @ExcelProperty("树木照片一")
  123 + private String treephotoone;
  124 +
  125 + @Schema(description = "古树照片二")
  126 + @ExcelProperty("古树照片二")
  127 + private String treephototwo;
  128 +
  129 + @Schema(description = "古树照片三")
  130 + @ExcelProperty("古树照片三")
  131 + private String treephotothree;
  132 +
  133 + @Schema(description = "古树照片四")
  134 + @ExcelProperty("古树照片四")
  135 + private String treephotofour;
  136 +
  137 + @Schema(description = "古树照片五")
  138 + @ExcelProperty("古树照片五")
  139 + private String treephotofive;
  140 +
  141 + @Schema(description = "创建者")
  142 + @ExcelProperty("创建者")
  143 + private String createby;
  144 +
  145 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  146 + @ExcelProperty("创建时间")
  147 + private LocalDateTime createtime;
  148 +
  149 + @Schema(description = "更新者")
  150 + @ExcelProperty("更新者")
  151 + private String updateby;
  152 +
  153 + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
  154 + @ExcelProperty("更新时间")
  155 + private LocalDateTime updatetime;
  156 +
  157 + @Schema(description = "备注", example = "你说的对")
  158 + @ExcelProperty("备注")
  159 + private String remark;
  160 +
  161 + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101")
  162 + @ExcelProperty("部门id")
  163 + private Long deptId;
  164 +
  165 + private List<String> treeImgList;
  166 +
  167 + private List<String> treeImgListFile;
  168 +
  169 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/oldtrees/OldtreesDO.java
@@ -240,5 +240,4 @@ public class OldtreesDO { @@ -240,5 +240,4 @@ public class OldtreesDO {
240 } 240 }
241 return this; 241 return this;
242 } 242 }
243 -  
244 } 243 }
245 \ No newline at end of file 244 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java
@@ -22,7 +22,7 @@ public interface InspectionPlanCommitMapper extends BaseMapperX&lt;InspectionPlanCo @@ -22,7 +22,7 @@ public interface InspectionPlanCommitMapper extends BaseMapperX&lt;InspectionPlanCo
22 * @param reqDTO 查询条件 22 * @param reqDTO 查询条件
23 * @return 分页结果 23 * @return 分页结果
24 */ 24 */
25 - IPage<InspectionPlanCommitRespVO> selectForPage(IPage<InspectionPlanCommitRespVO> page, @Param("req") InspectionPlanCommitPageReqVO reqDTO, @Param("busiLineList") List<String> busiLineList); 25 + IPage<InspectionPlanCommitRespVO> selectForPage(@Param("page") IPage<InspectionPlanCommitRespVO> page, @Param("req") InspectionPlanCommitPageReqVO reqDTO);
26 26
27 27
28 } 28 }
29 \ No newline at end of file 29 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/oldtrees/OldtreesMapper.java
@@ -5,9 +5,12 @@ import java.util.*; @@ -5,9 +5,12 @@ import java.util.*;
5 import com.zteits.urbanops.framework.common.pojo.PageResult; 5 import com.zteits.urbanops.framework.common.pojo.PageResult;
6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; 7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.framework.mybatis.core.query.MPJLambdaWrapperX;
8 import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO; 9 import com.zteits.urbanops.module.garden.dal.dataobject.oldtrees.OldtreesDO;
  10 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
9 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
10 import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; 12 import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*;
  13 +import org.springframework.util.ObjectUtils;
11 14
12 /** 15 /**
13 * 古树名木 Mapper 16 * 古树名木 Mapper
@@ -18,7 +21,10 @@ import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*; @@ -18,7 +21,10 @@ import com.zteits.urbanops.module.garden.controller.admin.oldtrees.vo.*;
18 public interface OldtreesMapper extends BaseMapperX<OldtreesDO> { 21 public interface OldtreesMapper extends BaseMapperX<OldtreesDO> {
19 22
20 default PageResult<OldtreesDO> selectPage(OldtreesPageReqVO reqVO) { 23 default PageResult<OldtreesDO> selectPage(OldtreesPageReqVO reqVO) {
21 - return selectPage(reqVO, new LambdaQueryWrapperX<OldtreesDO>() 24 + MPJLambdaWrapperX<OldtreesDO> wrapper = new MPJLambdaWrapperX<OldtreesDO>()
  25 + .selectAs(DeptDO::getName, OldtreesDO::getMaintainunit)
  26 + .selectAll(OldtreesDO.class)
  27 + .leftJoin(DeptDO.class, DeptDO::getId, OldtreesDO::getMaintainunit)
22 .eqIfPresent(OldtreesDO::getFamoustreenumber, reqVO.getFamoustreenumber()) 28 .eqIfPresent(OldtreesDO::getFamoustreenumber, reqVO.getFamoustreenumber())
23 .eqIfPresent(OldtreesDO::getTreelevel, reqVO.getTreelevel()) 29 .eqIfPresent(OldtreesDO::getTreelevel, reqVO.getTreelevel())
24 .eqIfPresent(OldtreesDO::getTreetype, reqVO.getTreetype()) 30 .eqIfPresent(OldtreesDO::getTreetype, reqVO.getTreetype())
@@ -60,7 +66,9 @@ public interface OldtreesMapper extends BaseMapperX&lt;OldtreesDO&gt; { @@ -60,7 +66,9 @@ public interface OldtreesMapper extends BaseMapperX&lt;OldtreesDO&gt; {
60 .eqIfPresent(OldtreesDO::getUpdateby, reqVO.getUpdateby()) 66 .eqIfPresent(OldtreesDO::getUpdateby, reqVO.getUpdateby())
61 .betweenIfPresent(OldtreesDO::getUpdatetime, reqVO.getUpdatetime()) 67 .betweenIfPresent(OldtreesDO::getUpdatetime, reqVO.getUpdatetime())
62 .eqIfPresent(OldtreesDO::getDeptId, reqVO.getDeptId()) 68 .eqIfPresent(OldtreesDO::getDeptId, reqVO.getDeptId())
63 - .orderByDesc(OldtreesDO::getId)); 69 + .orderByDesc(OldtreesDO::getCreatetime);
  70 +
  71 + return selectJoinPage(reqVO, OldtreesDO.class, wrapper);
64 } 72 }
65 73
66 default OldtreesDO selectByFamoustreenumber(String famoustreenumber) { 74 default OldtreesDO selectByFamoustreenumber(String famoustreenumber) {
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/oldtreeschangelog/OldtreesChangeLogMapper.java
@@ -5,7 +5,9 @@ import java.util.*; @@ -5,7 +5,9 @@ import java.util.*;
5 import com.zteits.urbanops.framework.common.pojo.PageResult; 5 import com.zteits.urbanops.framework.common.pojo.PageResult;
6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; 7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.framework.mybatis.core.query.MPJLambdaWrapperX;
8 import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO; 9 import com.zteits.urbanops.module.garden.dal.dataobject.oldtreeschangelog.OldtreesChangeLogDO;
  10 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
9 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
10 import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*; 12 import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*;
11 13
@@ -18,8 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.* @@ -18,8 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.oldtreeschangelog.vo.*
18 public interface OldtreesChangeLogMapper extends BaseMapperX<OldtreesChangeLogDO> { 20 public interface OldtreesChangeLogMapper extends BaseMapperX<OldtreesChangeLogDO> {
19 21
20 default PageResult<OldtreesChangeLogDO> selectPage(OldtreesChangeLogPageReqVO reqVO) { 22 default PageResult<OldtreesChangeLogDO> selectPage(OldtreesChangeLogPageReqVO reqVO) {
21 - return selectPage(reqVO, new LambdaQueryWrapperX<OldtreesChangeLogDO>()  
22 - .eqIfPresent(OldtreesChangeLogDO::getOldtreeid, reqVO.getOldtreeid()) 23 +
  24 + MPJLambdaWrapperX<OldtreesChangeLogDO> wrapper = new MPJLambdaWrapperX<OldtreesChangeLogDO>()
  25 + .selectAs(DeptDO::getName, OldtreesChangeLogDO::getMaintainunit)
  26 + .selectAll(OldtreesChangeLogDO.class)
  27 + .leftJoin(DeptDO.class, DeptDO::getId, OldtreesChangeLogDO::getMaintainunit)
23 .eqIfPresent(OldtreesChangeLogDO::getFamoustreenumber, reqVO.getFamoustreenumber()) 28 .eqIfPresent(OldtreesChangeLogDO::getFamoustreenumber, reqVO.getFamoustreenumber())
24 .eqIfPresent(OldtreesChangeLogDO::getTreelevel, reqVO.getTreelevel()) 29 .eqIfPresent(OldtreesChangeLogDO::getTreelevel, reqVO.getTreelevel())
25 .eqIfPresent(OldtreesChangeLogDO::getTreetype, reqVO.getTreetype()) 30 .eqIfPresent(OldtreesChangeLogDO::getTreetype, reqVO.getTreetype())
@@ -60,7 +65,10 @@ public interface OldtreesChangeLogMapper extends BaseMapperX&lt;OldtreesChangeLogDO @@ -60,7 +65,10 @@ public interface OldtreesChangeLogMapper extends BaseMapperX&lt;OldtreesChangeLogDO
60 .betweenIfPresent(OldtreesChangeLogDO::getCreatetime, reqVO.getCreatetime()) 65 .betweenIfPresent(OldtreesChangeLogDO::getCreatetime, reqVO.getCreatetime())
61 .eqIfPresent(OldtreesChangeLogDO::getUpdateby, reqVO.getUpdateby()) 66 .eqIfPresent(OldtreesChangeLogDO::getUpdateby, reqVO.getUpdateby())
62 .betweenIfPresent(OldtreesChangeLogDO::getUpdatetime, reqVO.getUpdatetime()) 67 .betweenIfPresent(OldtreesChangeLogDO::getUpdatetime, reqVO.getUpdatetime())
63 - .orderByDesc(OldtreesChangeLogDO::getId)); 68 + .orderByDesc(OldtreesChangeLogDO::getCreatetime);
  69 +
  70 + return selectJoinPage(reqVO, OldtreesChangeLogDO.class, wrapper);
  71 +
64 } 72 }
65 73
66 } 74 }
67 \ No newline at end of file 75 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/tree/TreeMapper.java
@@ -5,7 +5,9 @@ import java.util.*; @@ -5,7 +5,9 @@ import java.util.*;
5 import com.zteits.urbanops.framework.common.pojo.PageResult; 5 import com.zteits.urbanops.framework.common.pojo.PageResult;
6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; 7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.framework.mybatis.core.query.MPJLambdaWrapperX;
8 import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; 9 import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO;
  10 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
9 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
10 import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; 12 import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*;
11 13
@@ -18,7 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*; @@ -18,7 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.tree.vo.*;
18 public interface TreeMapper extends BaseMapperX<TreeDO> { 20 public interface TreeMapper extends BaseMapperX<TreeDO> {
19 21
20 default PageResult<TreeDO> selectPage(TreePageReqVO reqVO) { 22 default PageResult<TreeDO> selectPage(TreePageReqVO reqVO) {
21 - return selectPage(reqVO, new LambdaQueryWrapperX<TreeDO>() 23 +
  24 + MPJLambdaWrapperX<TreeDO> wrapper = new MPJLambdaWrapperX<TreeDO>()
  25 + .selectAs(DeptDO::getName, TreeDO::getMaintainunit)
  26 + .selectAll(TreeDO.class)
  27 + .leftJoin(DeptDO.class, DeptDO::getId, TreeDO::getMaintainunit)
22 .eqIfPresent(TreeDO::getTreenumber, reqVO.getTreenumber()) 28 .eqIfPresent(TreeDO::getTreenumber, reqVO.getTreenumber())
23 .likeIfPresent(TreeDO::getLatinname, reqVO.getLatinname()) 29 .likeIfPresent(TreeDO::getLatinname, reqVO.getLatinname())
24 .eqIfPresent(TreeDO::getTreetype, reqVO.getTreetype()) 30 .eqIfPresent(TreeDO::getTreetype, reqVO.getTreetype())
@@ -48,12 +54,13 @@ public interface TreeMapper extends BaseMapperX&lt;TreeDO&gt; { @@ -48,12 +54,13 @@ public interface TreeMapper extends BaseMapperX&lt;TreeDO&gt; {
48 .eqIfPresent(TreeDO::getTreephotofour, reqVO.getTreephotofour()) 54 .eqIfPresent(TreeDO::getTreephotofour, reqVO.getTreephotofour())
49 .eqIfPresent(TreeDO::getTreephotofive, reqVO.getTreephotofive()) 55 .eqIfPresent(TreeDO::getTreephotofive, reqVO.getTreephotofive())
50 .eqIfPresent(TreeDO::getCreateby, reqVO.getCreateby()) 56 .eqIfPresent(TreeDO::getCreateby, reqVO.getCreateby())
51 - .betweenIfPresent(TreeDO::getCreatetime, reqVO.getCreatetime())  
52 .eqIfPresent(TreeDO::getUpdateby, reqVO.getUpdateby()) 57 .eqIfPresent(TreeDO::getUpdateby, reqVO.getUpdateby())
53 .betweenIfPresent(TreeDO::getUpdatetime, reqVO.getUpdatetime()) 58 .betweenIfPresent(TreeDO::getUpdatetime, reqVO.getUpdatetime())
54 .eqIfPresent(TreeDO::getRemark, reqVO.getRemark()) 59 .eqIfPresent(TreeDO::getRemark, reqVO.getRemark())
55 .eqIfPresent(TreeDO::getDeptId, reqVO.getDeptId()) 60 .eqIfPresent(TreeDO::getDeptId, reqVO.getDeptId())
56 - .orderByDesc(TreeDO::getId)); 61 + .orderByDesc(TreeDO::getId);
  62 +
  63 + return selectJoinPage(reqVO, TreeDO.class, wrapper);
57 } 64 }
58 65
59 default TreeDO selectByTreeNumber(String treeNumber) { 66 default TreeDO selectByTreeNumber(String treeNumber) {
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/treechangelog/TreeChangeLogMapper.java
@@ -5,7 +5,9 @@ import java.util.*; @@ -5,7 +5,9 @@ import java.util.*;
5 import com.zteits.urbanops.framework.common.pojo.PageResult; 5 import com.zteits.urbanops.framework.common.pojo.PageResult;
6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; 7 import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.framework.mybatis.core.query.MPJLambdaWrapperX;
8 import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; 9 import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO;
  10 +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO;
9 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
10 import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; 12 import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*;
11 13
@@ -18,7 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*; @@ -18,7 +20,11 @@ import com.zteits.urbanops.module.garden.controller.admin.treechangelog.vo.*;
18 public interface TreeChangeLogMapper extends BaseMapperX<TreeChangeLogDO> { 20 public interface TreeChangeLogMapper extends BaseMapperX<TreeChangeLogDO> {
19 21
20 default PageResult<TreeChangeLogDO> selectPage(TreeChangeLogPageReqVO reqVO) { 22 default PageResult<TreeChangeLogDO> selectPage(TreeChangeLogPageReqVO reqVO) {
21 - return selectPage(reqVO, new LambdaQueryWrapperX<TreeChangeLogDO>() 23 +
  24 + MPJLambdaWrapperX<TreeChangeLogDO> wrapper = new MPJLambdaWrapperX<TreeChangeLogDO>()
  25 + .selectAs(DeptDO::getName, TreeChangeLogDO::getMaintainunit)
  26 + .selectAll(TreeChangeLogDO.class)
  27 + .leftJoin(DeptDO.class, DeptDO::getId, TreeChangeLogDO::getMaintainunit)
22 .eqIfPresent(TreeChangeLogDO::getTreeid, reqVO.getTreeid()) 28 .eqIfPresent(TreeChangeLogDO::getTreeid, reqVO.getTreeid())
23 .eqIfPresent(TreeChangeLogDO::getTreenumber, reqVO.getTreenumber()) 29 .eqIfPresent(TreeChangeLogDO::getTreenumber, reqVO.getTreenumber())
24 .likeIfPresent(TreeChangeLogDO::getLatinname, reqVO.getLatinname()) 30 .likeIfPresent(TreeChangeLogDO::getLatinname, reqVO.getLatinname())
@@ -53,7 +59,10 @@ public interface TreeChangeLogMapper extends BaseMapperX&lt;TreeChangeLogDO&gt; { @@ -53,7 +59,10 @@ public interface TreeChangeLogMapper extends BaseMapperX&lt;TreeChangeLogDO&gt; {
53 .eqIfPresent(TreeChangeLogDO::getUpdateby, reqVO.getUpdateby()) 59 .eqIfPresent(TreeChangeLogDO::getUpdateby, reqVO.getUpdateby())
54 .betweenIfPresent(TreeChangeLogDO::getUpdatetime, reqVO.getUpdatetime()) 60 .betweenIfPresent(TreeChangeLogDO::getUpdatetime, reqVO.getUpdatetime())
55 .eqIfPresent(TreeChangeLogDO::getRemark, reqVO.getRemark()) 61 .eqIfPresent(TreeChangeLogDO::getRemark, reqVO.getRemark())
56 - .orderByDesc(TreeChangeLogDO::getId)); 62 + .orderByDesc(TreeChangeLogDO::getId);
  63 +
  64 + return selectJoinPage(reqVO, TreeChangeLogDO.class, wrapper);
  65 +
57 } 66 }
58 67
59 } 68 }
60 \ No newline at end of file 69 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java
@@ -87,9 +87,10 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ @@ -87,9 +87,10 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ
87 busiLineList.addAll(Arrays.asList(busiLine.split(","))); 87 busiLineList.addAll(Arrays.asList(busiLine.split(",")));
88 } 88 }
89 } 89 }
  90 + pageReqVO.setBusiLineList(busiLineList);
90 //分页 91 //分页
91 IPage<InspectionPlanCommitRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO); 92 IPage<InspectionPlanCommitRespVO> mpPage = MyBatisUtils.buildPage(pageReqVO);
92 - IPage<InspectionPlanCommitRespVO> page = inspectionPlanCommitMapper.selectForPage(mpPage, pageReqVO, busiLineList); 93 + IPage<InspectionPlanCommitRespVO> page = inspectionPlanCommitMapper.selectForPage(mpPage, pageReqVO);
93 // 转换返回 94 // 转换返回
94 return new PageResult<>(imgProcess(page.getRecords()), page.getTotal()); 95 return new PageResult<>(imgProcess(page.getRecords()), page.getTotal());
95 } 96 }
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java
@@ -13,7 +13,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlan @@ -13,7 +13,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlan
13 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; 13 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper;
14 import com.zteits.urbanops.module.garden.enums.FinishStateEnum; 14 import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
15 import com.zteits.urbanops.module.garden.enums.PlanConstants; 15 import com.zteits.urbanops.module.garden.enums.PlanConstants;
16 -import com.zteits.urbanops.module.garden.util.TimeIntervalCalculatorUtil; 16 +import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult;
  17 +import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil;
17 import com.zteits.urbanops.module.system.api.dept.DeptApi; 18 import com.zteits.urbanops.module.system.api.dept.DeptApi;
18 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; 19 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
19 import com.zteits.urbanops.module.system.api.permission.RoleApi; 20 import com.zteits.urbanops.module.system.api.permission.RoleApi;
@@ -26,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional; @@ -26,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional;
26 import org.springframework.util.CollectionUtils; 27 import org.springframework.util.CollectionUtils;
27 import org.springframework.validation.annotation.Validated; 28 import org.springframework.validation.annotation.Validated;
28 29
29 -import java.time.LocalDate;  
30 import java.time.LocalDateTime; 30 import java.time.LocalDateTime;
31 import java.time.format.DateTimeFormatter; 31 import java.time.format.DateTimeFormatter;
32 import java.util.*; 32 import java.util.*;
@@ -78,20 +78,20 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @@ -78,20 +78,20 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
78 LocalDateTime now = LocalDateTime.now(); 78 LocalDateTime now = LocalDateTime.now();
79 String userId = SecurityFrameworkUtils.getLoginUserId() + ""; 79 String userId = SecurityFrameworkUtils.getLoginUserId() + "";
80 String userName = SecurityFrameworkUtils.getLoginUserNickname(); 80 String userName = SecurityFrameworkUtils.getLoginUserNickname();
81 - int rateValue; 81 + String rateValue;
82 if (createReqVO.getRateValue().contains("/")) { 82 if (createReqVO.getRateValue().contains("/")) {
83 - rateValue = Integer.parseInt(createReqVO.getRateValue().split("/")[1]); 83 + rateValue = createReqVO.getRateValue().trim();
84 } else { 84 } else {
85 - rateValue = Integer.parseInt(createReqVO.getRateValue()); 85 + rateValue = createReqVO.getRateValue().trim()+"/1";
86 } 86 }
87 //计算开始和计算时间 在间隔周期下每天的次数 87 //计算开始和计算时间 在间隔周期下每天的次数
88 - List<String> betweenDayList = TimeIntervalCalculatorUtil.calculateIntervals(createReqVO.getBeginTime(), createReqVO.getEndTime(), createReqVO.getCycleId(), rateValue);  
89 - if (CollectionUtils.isEmpty(betweenDayList)) { 88 + List<PeriodResult> calculate = TimeIntervalFrequencyUtil.calculate(createReqVO.getBeginTime().toString(), createReqVO.getEndTime().toString(), rateValue, createReqVO.getCycleId());
  89 + if (CollectionUtils.isEmpty(calculate)) {
90 log.warn("获取两个时间之间间隔天数错误"); 90 log.warn("获取两个时间之间间隔天数错误");
91 return CommonResult.error(INSPECTION_CYCLE_ERROR); 91 return CommonResult.error(INSPECTION_CYCLE_ERROR);
92 } 92 }
93 //计算计划次数 93 //计算计划次数
94 - Integer planNum = betweenDayList.size(); 94 + Integer planNum = calculate.size();
95 95
96 96
97 //巡检计划list 97 //巡检计划list
@@ -139,13 +139,12 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @@ -139,13 +139,12 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
139 }); 139 });
140 /*3.插入巡查计划明细*/ 140 /*3.插入巡查计划明细*/
141 141
142 - for (int i = 0; i < betweenDayList.size(); i++) {  
143 - String[] dateStr = betweenDayList.get(i).split("/"); 142 + for (PeriodResult periodResult : calculate) {
144 InspectionPlanDetailDO entity = getInspectionPlanDetailDO(batchNo, createReqVO, roadReqVO, now); 143 InspectionPlanDetailDO entity = getInspectionPlanDetailDO(batchNo, createReqVO, roadReqVO, now);
145 ThreadUtil.sleep(2); 144 ThreadUtil.sleep(2);
146 - entity.setSortNum(i + 1);  
147 - entity.setBeginTime(LocalDateTime.parse(dateStr[0], DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00")));  
148 - entity.setEndTime(LocalDateTime.parse(dateStr[1], DateTimeFormatter.ofPattern("yyyy-MM-dd 23:59:59"))); 145 + entity.setSortNum(periodResult.getCount());
  146 + entity.setBeginTime(LocalDateTime.parse(periodResult.getStart() + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  147 + entity.setEndTime(LocalDateTime.parse(periodResult.getEnd() + " 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
149 detailDOList.add(entity); 148 detailDOList.add(entity);
150 } 149 }
151 }); 150 });
@@ -179,6 +178,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @@ -179,6 +178,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
179 return entity; 178 return entity;
180 } 179 }
181 180
  181 +
182 @Override 182 @Override
183 public void updateInspectionPlan(InspectionPlanUpdateReqVO updateReqVO) { 183 public void updateInspectionPlan(InspectionPlanUpdateReqVO updateReqVO) {
184 // 校验存在 184 // 校验存在
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java
@@ -5,9 +5,9 @@ import cn.hutool.core.thread.ThreadUtil; @@ -5,9 +5,9 @@ import cn.hutool.core.thread.ThreadUtil;
5 import cn.hutool.core.util.RandomUtil; 5 import cn.hutool.core.util.RandomUtil;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import com.zteits.urbanops.framework.common.pojo.CommonResult; 7 import com.zteits.urbanops.framework.common.pojo.CommonResult;
8 -import com.zteits.urbanops.framework.common.util.collection.CollectionUtils;  
9 import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; 8 import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils;
10 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; 9 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
  10 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
11 import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; 11 import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO;
12 import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanRoleDO; 12 import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanRoleDO;
13 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanDetailMapper; 13 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanDetailMapper;
@@ -15,7 +15,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanInte @@ -15,7 +15,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanInte
15 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper; 15 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper;
16 import com.zteits.urbanops.module.garden.enums.FinishStateEnum; 16 import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
17 import com.zteits.urbanops.module.garden.enums.PlanConstants; 17 import com.zteits.urbanops.module.garden.enums.PlanConstants;
18 -import com.zteits.urbanops.module.garden.util.TimeIntervalCalculatorUtil; 18 +import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult;
  19 +import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil;
19 import com.zteits.urbanops.module.system.api.dept.DeptApi; 20 import com.zteits.urbanops.module.system.api.dept.DeptApi;
20 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; 21 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
21 import com.zteits.urbanops.module.system.api.permission.RoleApi; 22 import com.zteits.urbanops.module.system.api.permission.RoleApi;
@@ -24,13 +25,12 @@ import jodd.util.StringUtil; @@ -24,13 +25,12 @@ import jodd.util.StringUtil;
24 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
25 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
26 import jakarta.annotation.Resource; 27 import jakarta.annotation.Resource;
  28 +import org.springframework.util.CollectionUtils;
27 import org.springframework.validation.annotation.Validated; 29 import org.springframework.validation.annotation.Validated;
28 30
29 -import java.time.LocalDate;  
30 import java.time.LocalDateTime; 31 import java.time.LocalDateTime;
31 import java.time.format.DateTimeFormatter; 32 import java.time.format.DateTimeFormatter;
32 import java.util.*; 33 import java.util.*;
33 -import java.util.concurrent.atomic.AtomicInteger;  
34 import java.util.stream.Collectors; 34 import java.util.stream.Collectors;
35 35
36 import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; 36 import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*;
@@ -81,20 +81,21 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { @@ -81,20 +81,21 @@ public class MaintainPlanServiceImpl implements MaintainPlanService {
81 LocalDateTime now = LocalDateTime.now(); 81 LocalDateTime now = LocalDateTime.now();
82 String userId = SecurityFrameworkUtils.getLoginUserId()+""; 82 String userId = SecurityFrameworkUtils.getLoginUserId()+"";
83 String userName = SecurityFrameworkUtils.getLoginUserNickname(); 83 String userName = SecurityFrameworkUtils.getLoginUserNickname();
84 - int rateValue; 84 + String rateValue;
85 if (createReqVO.getRateValue().contains("/")) { 85 if (createReqVO.getRateValue().contains("/")) {
86 - rateValue = Integer.parseInt(createReqVO.getRateValue().split("/")[1]); 86 + rateValue = createReqVO.getRateValue().trim();
87 } else { 87 } else {
88 - rateValue = Integer.parseInt(createReqVO.getRateValue()); 88 + rateValue = createReqVO.getRateValue().trim()+"/1";
89 } 89 }
90 //计算开始和计算时间 在间隔周期下每天的次数 90 //计算开始和计算时间 在间隔周期下每天的次数
91 - List<String> betweenDayList = TimeIntervalCalculatorUtil.calculateIntervals(createReqVO.getBeginTime(), createReqVO.getEndTime(), createReqVO.getCycleId(), rateValue);  
92 - if (CollectionUtils.isAnyEmpty(betweenDayList)) { 91 + //计算开始和计算时间 在间隔周期下每天的次数
  92 + List<PeriodResult> calculate = TimeIntervalFrequencyUtil.calculate(createReqVO.getBeginTime().toString(), createReqVO.getEndTime().toString(), rateValue, createReqVO.getCycleId());
  93 + if (CollectionUtils.isEmpty(calculate)) {
93 log.warn("获取两个时间之间间隔天数错误"); 94 log.warn("获取两个时间之间间隔天数错误");
94 return CommonResult.error(INSPECTION_CYCLE_ERROR); 95 return CommonResult.error(INSPECTION_CYCLE_ERROR);
95 } 96 }
96 //计算计划次数 97 //计算计划次数
97 - Integer planNum = betweenDayList.size(); 98 + Integer planNum = calculate.size();
98 99
99 100
100 //巡检计划list 101 //巡检计划list
@@ -141,14 +142,12 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { @@ -141,14 +142,12 @@ public class MaintainPlanServiceImpl implements MaintainPlanService {
141 roleList.add(maintainPlanRoleDO); 142 roleList.add(maintainPlanRoleDO);
142 }); 143 });
143 /*3.插入巡查计划明细*/ 144 /*3.插入巡查计划明细*/
144 -  
145 - for (int i = 0; i < betweenDayList.size(); i++) {  
146 - String[] dateStr = betweenDayList.get(i).split("/"); 145 + for (PeriodResult periodResult : calculate) {
147 MaintainPlanDetailDO entity = getMaintainPlanDetailDO(batchNo, createReqVO, roadReqVO, now); 146 MaintainPlanDetailDO entity = getMaintainPlanDetailDO(batchNo, createReqVO, roadReqVO, now);
148 ThreadUtil.sleep(2); 147 ThreadUtil.sleep(2);
149 - entity.setSortNum(i+1);  
150 - entity.setBeginTime(LocalDateTime.parse(dateStr[0], DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00")));  
151 - entity.setEndTime(LocalDateTime.parse(dateStr[1], DateTimeFormatter.ofPattern("yyyy-MM-dd 23:59:59"))); 148 + entity.setSortNum(periodResult.getCount());
  149 + entity.setBeginTime(LocalDateTime.parse(periodResult.getStart() + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  150 + entity.setEndTime(LocalDateTime.parse(periodResult.getEnd() + " 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
152 detailDOList.add(entity); 151 detailDOList.add(entity);
153 } 152 }
154 }); 153 });
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/TimeIntervalCalculatorUtil.java deleted
1 -package com.zteits.urbanops.module.garden.util;  
2 -  
3 -  
4 -import java.time.LocalDate;  
5 -import java.util.ArrayList;  
6 -import java.util.List;  
7 -  
8 -import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;  
9 -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.INSPECTION_CYCLE_ID_ERROR;  
10 -  
11 -public class TimeIntervalCalculatorUtil {  
12 - enum IntervalUnit {  
13 - DAY, WEEK, MONTH, YEAR  
14 - }  
15 -  
16 - public static void main(String[] args) {  
17 -  
18 - System.out.println("请输入开始日期(yyyy-MM-dd):");  
19 - LocalDate startDate = LocalDate.of(2025,10,1);  
20 -  
21 - System.out.println("请输入结束日期(yyyy-MM-dd):");  
22 - LocalDate endDate = LocalDate.of(2025,10,7);  
23 -  
24 - System.out.println("请选择间隔单位(1.天 2.周 3.月 4.年):");  
25 - IntervalUnit unit = IntervalUnit.DAY;  
26 -  
27 - System.out.println("请输入间隔数量(如2表示每2天/周/月/年):");  
28 - int intervalCount =2;  
29 -  
30 - List<String> intervals = calculateIntervals(startDate, endDate, 1, intervalCount);  
31 -  
32 - System.out.println("\n执行周期:");  
33 - intervals.forEach(System.out::println);  
34 - }  
35 -  
36 - /**  
37 - * 执行次数计算  
38 - * @param start  
39 - * @param end  
40 - * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次  
41 - * @param intervalCount  
42 - * @return  
43 - */  
44 - public static List<String> calculateIntervals(LocalDate start, LocalDate end, Integer cycleId, int intervalCount) {  
45 - List<String> intervals = new ArrayList<>();  
46 - LocalDate currentStart = start;  
47 - IntervalUnit unit = getIntervalUnit(cycleId);  
48 -  
49 - while (currentStart.isBefore(end) || currentStart.isEqual(end)) {  
50 - LocalDate currentEnd = calculateEndDate(currentStart, end, unit, intervalCount);  
51 - intervals.add(currentStart + "/" + currentEnd);  
52 - currentStart = currentEnd.plusDays(1);  
53 - }  
54 -  
55 - return intervals;  
56 - }  
57 -  
58 - private static LocalDate calculateEndDate(LocalDate currentStart, LocalDate endDate,  
59 - IntervalUnit unit, int intervalCount) {  
60 - switch (unit) {  
61 - case DAY:  
62 - LocalDate dayEnd = currentStart.plusDays(intervalCount - 1);  
63 - return dayEnd.isAfter(endDate) ? endDate : dayEnd;  
64 - case WEEK:  
65 - LocalDate weekEnd = currentStart.plusDays(7 * intervalCount - 1);  
66 - return weekEnd.isAfter(endDate) ? endDate : weekEnd;  
67 - case MONTH:  
68 - LocalDate monthEnd = currentStart.plusMonths(intervalCount)  
69 - .withDayOfMonth(1).minusDays(1);  
70 - return monthEnd.isAfter(endDate) ? endDate : monthEnd;  
71 - case YEAR:  
72 - LocalDate yearEnd = currentStart.plusYears(intervalCount)  
73 - .withDayOfYear(1).minusDays(1);  
74 - return yearEnd.isAfter(endDate) ? endDate : yearEnd;  
75 - default:  
76 - return endDate;  
77 - }  
78 - }  
79 -  
80 - /**  
81 - * 转换枚举  
82 - * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次  
83 - * @return  
84 - */  
85 - public static IntervalUnit getIntervalUnit(Integer cycleId) {  
86 - switch (cycleId) {  
87 - case 1:  
88 - return IntervalUnit.DAY;  
89 - case 2:  
90 - return IntervalUnit.WEEK;  
91 - case 3:  
92 - return IntervalUnit.MONTH;  
93 - case 4:  
94 - return IntervalUnit.YEAR;  
95 - default:  
96 - throw exception(INSPECTION_CYCLE_ID_ERROR);  
97 - }  
98 - }  
99 -  
100 -}  
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/timeinterval/PeriodResult.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.util.timeinterval;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.time.LocalDate;
  6 +import java.time.format.DateTimeFormatter;
  7 +
  8 +@Data
  9 +public class PeriodResult {
  10 + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  11 +
  12 + /**
  13 + * 开始时间
  14 + */
  15 + private final String start;
  16 + /**
  17 + * 结束时间
  18 + */
  19 + private final String end;
  20 + /**
  21 + * 执行次数
  22 + */
  23 + private final int count;
  24 +
  25 + public PeriodResult(LocalDate start, LocalDate end, int count) {
  26 + this.start = start.format(FORMATTER);
  27 + this.end = end.format(FORMATTER);
  28 + this.count = count;
  29 + }
  30 +
  31 + @Override
  32 + public String toString() {
  33 + return start + " " + end + " " + count + "次";
  34 + }
  35 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/timeinterval/TimeIntervalFrequencyUtil.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.util.timeinterval;
  2 +
  3 +import java.time.LocalDate;
  4 +import java.time.format.DateTimeFormatter;
  5 +import java.util.ArrayList;
  6 +import java.util.Collections;
  7 +import java.util.List;
  8 +
  9 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  10 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.INSPECTION_CYCLE_ID_ERROR;
  11 +
  12 +/**
  13 + * 时间区间拆分+频次计算工具类
  14 + * 支持:按日/周/月/年拆分,区间临界点重叠,动态计算每个区间的执行频次
  15 + */
  16 +public class TimeIntervalFrequencyUtil {
  17 +
  18 + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  19 +
  20 + public enum IntervalUnit {
  21 + DAY, WEEK, MONTH, YEAR;
  22 + }
  23 +
  24 + /**
  25 + * 转换枚举
  26 + * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次
  27 + * @return
  28 + */
  29 + public static IntervalUnit getIntervalUnit(Integer cycleId) {
  30 + switch (cycleId) {
  31 + case 1:
  32 + return IntervalUnit.DAY;
  33 + case 2:
  34 + return IntervalUnit.WEEK;
  35 + case 3:
  36 + return IntervalUnit.MONTH;
  37 + case 4:
  38 + return IntervalUnit.YEAR;
  39 + default:
  40 + throw exception(INSPECTION_CYCLE_ID_ERROR);
  41 + }
  42 + }
  43 +
  44 + /**
  45 + * 计算时间段划分结果
  46 + *
  47 + * @param startStr 开始日期 (yyyy-MM-dd)
  48 + * @param endStr 结束日期 (yyyy-MM-dd)
  49 + * @param freq 频次值,格式 "x/y"
  50 + * @param cycleId cycleId 1:日/次;2:周/次;3:月/次;4:年/次
  51 + * @return 划分结果列表
  52 + */
  53 + public static List<PeriodResult> calculate(String startStr, String endStr, String freq, Integer cycleId) {
  54 + LocalDate start = LocalDate.parse(startStr, FORMATTER);
  55 + LocalDate end = LocalDate.parse(endStr, FORMATTER);
  56 +
  57 + if (start.isAfter(end)) {
  58 + return Collections.emptyList();
  59 + }
  60 +
  61 + String[] parts = freq.split("/", 2);
  62 + if (parts.length != 2) {
  63 + throw new IllegalArgumentException("频次值格式错误,应为 'x/y': " + freq);
  64 + }
  65 + int x = Integer.parseInt(parts[0]);
  66 + int y = Integer.parseInt(parts[1]);
  67 +
  68 + IntervalUnit unit = getIntervalUnit(cycleId);
  69 +
  70 + List<PeriodResult> results = new ArrayList<>();
  71 + LocalDate currentStart = start;
  72 +
  73 + while (!currentStart.isAfter(end)) {
  74 + // 计算当前周期的理论结束日期(包含 y 个单位)
  75 + LocalDate periodEnd = calculatePeriodEnd(currentStart, y, unit);
  76 +
  77 + // 实际段结束 = min(periodEnd, end)
  78 + LocalDate segEnd = periodEnd.isAfter(end) ? end : periodEnd;
  79 +
  80 + results.add(new PeriodResult(currentStart, segEnd, x));
  81 +
  82 + // 下一段从当前段结束的第二天开始
  83 + LocalDate nextStart = segEnd.plusDays(1);
  84 +
  85 + // 如果已经超过总结束时间,则终止
  86 + if (nextStart.isAfter(end)) {
  87 + break;
  88 + }
  89 +
  90 + currentStart = nextStart;
  91 + }
  92 +
  93 + return results;
  94 + }
  95 +
  96 + /**
  97 + * 计算从 start 开始,经过 y 个单位周期后的结束日期(包含)
  98 + */
  99 + private static LocalDate calculatePeriodEnd(LocalDate start, int y, IntervalUnit unit) {
  100 + switch (unit) {
  101 + case DAY:
  102 + return start.plusDays(y - 1); // 包含 y 天:start 到 start+y-1
  103 + case WEEK:
  104 + return start.plusDays((long) y * 7 - 1); // y周 = y*7天,减1得包含结束
  105 + case MONTH:
  106 + return addMonthsSafely(start, y).minusDays(1);
  107 + case YEAR:
  108 + return start.plusYears(y).minusDays(1);
  109 + default:
  110 + throw new UnsupportedOperationException("未支持的单位: " + unit);
  111 + }
  112 + }
  113 +
  114 +
  115 +
  116 + /**
  117 + * 安全地加上 y 个月(避免3月31日+1月变成异常)
  118 + * 这里使用 Java 8+ 的 plusMonths 自动调整规则
  119 + */
  120 + private static LocalDate addMonthsSafely(LocalDate date, int months) {
  121 + return date.plusMonths(months);
  122 + // Java 会自动处理:如 1月31日 +1月 → 2月28/29日(不会抛异常)
  123 + }
  124 +
  125 +
  126 +
  127 +
  128 + // ====================== 测试用例 ======================
  129 + //cycleId 1:日/次;2:周/次;3:月/次;4:年/次
  130 + public static void main(String[] args) {
  131 + System.out.println("=== 示例1:每3天一次,按日 ===");
  132 + List<PeriodResult> r1 = calculate("2025-01-01", "2025-01-07", "1/3", 1);
  133 + r1.forEach(System.out::println);
  134 +
  135 + System.out.println("\n=== 示例2:每3周一次(21天),按周 ===");
  136 + List<PeriodResult> r2 = calculate("2025-01-01", "2025-02-01", "1/3", 2);
  137 + r2.forEach(System.out::println);
  138 +
  139 + System.out.println("\n=== 示例3:每2个月一次,按月 ===");
  140 + List<PeriodResult> r3 = calculate("2025-01-01", "2025-12-31", "1/2", 3);
  141 + r3.forEach(System.out::println);
  142 +
  143 + System.out.println("\n=== 示例4:每3年一次,按年 ===");
  144 + List<PeriodResult> r4 = calculate("2025-01-01", "2035-06-01", "1/3", 3);
  145 + r4.forEach(System.out::println);
  146 +
  147 + System.out.println("\n=== 示例5:每2天2次,按日 ===");
  148 + List<PeriodResult> r5 = calculate("2025-01-01", "2025-01-05", "2/2", 1);
  149 + r5.forEach(System.out::println);
  150 +
  151 + System.out.println("\n=== 示例5:每2年1次,按年 ===");
  152 + List<PeriodResult> r6 = calculate("2025-01-01", "2028-01-05", "1/2", 4);
  153 + r6.forEach(System.out::println);
  154 + }
  155 +}
0 \ No newline at end of file 156 \ No newline at end of file
urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ 9 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
10 --> 10 -->
11 <!-- 复杂联表分页查询 --> 11 <!-- 复杂联表分页查询 -->
12 - <select id="selectForPage" resultType="com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanCommitRespVO"> 12 + <select id="selectForPage" resultType="com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanCommitRespVO">
13 SELECT 13 SELECT
14 a.plan_no, 14 a.plan_no,
15 b.plan_name, 15 b.plan_name,
@@ -44,9 +44,9 @@ @@ -44,9 +44,9 @@
44 <if test="req.planName != null and req.planName !=''"> 44 <if test="req.planName != null and req.planName !=''">
45 AND b.plan_name LIKE CONCAT(#{req.planName},'%') 45 AND b.plan_name LIKE CONCAT(#{req.planName},'%')
46 </if> 46 </if>
47 - <if test="busiLineList != null and busiLineList.size() > 0"> 47 + <if test="req.busiLineList != null and req.busiLineList.size() > 0">
48 AND a.busi_line IN 48 AND a.busi_line IN
49 - <foreach collection="busiLineList" item="id" open="(" separator="," close=")"> 49 + <foreach collection="req.busiLineList" item="id" open="(" separator="," close=")">
50 #{id} 50 #{id}
51 </foreach> 51 </foreach>
52 </if> 52 </if>
@@ -64,9 +64,8 @@ @@ -64,9 +64,8 @@
64 AND b.road_name LIKE CONCAT(#{req.roadName},'%') 64 AND b.road_name LIKE CONCAT(#{req.roadName},'%')
65 </if> 65 </if>
66 <if test="req.roleName != null and req.roleName !=''"> 66 <if test="req.roleName != null and req.roleName !=''">
67 - AND a.role_name LIKE CONCAT(#{req.roleName},'%') 67 + AND a.role_name LIKE CONCAT(#{roleName},'%')
68 </if> 68 </if>
69 -  
70 <if test="req.companyId != null"> 69 <if test="req.companyId != null">
71 and b.company_id = #{req.companyId} 70 and b.company_id = #{req.companyId}
72 </if> 71 </if>
@@ -77,7 +76,7 @@ @@ -77,7 +76,7 @@
77 AND a.user_name LIKE CONCAT('%', #{req.userName},'%') 76 AND a.user_name LIKE CONCAT('%', #{req.userName},'%')
78 </if> 77 </if>
79 <if test="req.transState != null"> 78 <if test="req.transState != null">
80 - and a.inspection_state = #{req.transState} 79 + and a.trans_state = #{req.transState}
81 </if> 80 </if>
82 <if test="req.finishTime != null"> 81 <if test="req.finishTime != null">
83 AND DATE_FORMAT(a.finish_time, '%Y-%m-%d') = #{req.finishTime} 82 AND DATE_FORMAT(a.finish_time, '%Y-%m-%d') = #{req.finishTime}