Commit 0c59519af7e3d3350341fd1f02af501ea37f1250

Authored by wangqian
2 parents 13a09297 01154fca

Merge remote-tracking branch 'origin/dev' into dev

Showing 14 changed files with 188 additions and 30 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/road/vo/RoadSaveReqVO.java
... ... @@ -32,7 +32,6 @@ public class RoadSaveReqVO {
32 32 private Integer levelId;
33 33  
34 34 @Schema(description = "道路属性")
35   - @Size(min=2, max = 50)
36 35 private String roadAttr;
37 36  
38 37 @Schema(description = "道路方位 W-西 E-东 N-北 S-南 参考字典roadDirection", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -41,22 +40,22 @@ public class RoadSaveReqVO {
41 40  
42 41 @Schema(description = "行道树绿化面积", requiredMode = Schema.RequiredMode.REQUIRED)
43 42 @NotEmpty(message = "行道树绿化面积不能为空")
44   - @Size(min=2, max = 50)
  43 + @Size(min=1, max = 200000, message = "行道树绿化面积长度")
45 44 private String greenBeltTreeArea;
46 45  
47 46 @Schema(description = "绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
48 47 @NotEmpty(message = "绿化带面积不能为空")
49   - @Size(min=2, max = 50)
  48 + @Size(min=1, max = 200000, message = "绿化带面积长度")
50 49 private String greenBeltArea;
51 50  
52 51 @Schema(description = "总绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
53 52 @NotEmpty(message = "总绿化带面积不能为空")
54   - @Size(min=2, max = 50)
  53 + @Size(min=1, max = 200000, message = "总绿化带面积长度")
55 54 private String totalArea;
56 55  
57 56 @Schema(description = "行道树(棵)面积", requiredMode = Schema.RequiredMode.REQUIRED)
58 57 @NotEmpty(message = "行道树(棵)面积不能为空")
59   - @Size(min=2, max = 50)
  58 + @Size(min=1, max = 50, message = "行道树(棵)面积长度1-50")
60 59 private String treeArea;
61 60  
62 61 @Schema(description = "起点经度", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -69,6 +68,7 @@ public class RoadSaveReqVO {
69 68  
70 69 @Schema(description = "起点描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
71 70 @NotEmpty(message = "起点描述不能为空")
  71 + @Size(min=1, max = 64, message = "起点描述最大64")
72 72 private String startingRemark;
73 73  
74 74 @Schema(description = "终点经度", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -81,10 +81,12 @@ public class RoadSaveReqVO {
81 81  
82 82 @Schema(description = "终点描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
83 83 @NotEmpty(message = "终点描述不能为空")
  84 + @Size(min=1, max = 64, message = "起点经度长度最大64")
84 85 private String endRemark;
85 86  
86 87 @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
87 88 @NotEmpty(message = "备注不能为空")
  89 + @Size(min=0, max = 500, message = "备注不能为空")
88 90 private String remark;
89 91  
90 92 @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2323")
... ...
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/road/vo/RoadUpdateReqVO.java
... ... @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.garden.controller.admin.road.vo;
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4 4 import jakarta.validation.constraints.NotEmpty;
5 5 import jakarta.validation.constraints.NotNull;
  6 +import jakarta.validation.constraints.Size;
6 7 import lombok.Data;
7 8  
8 9 @Schema(description = "管理后台 - 道路管理新增/修改 Request VO")
... ... @@ -15,6 +16,7 @@ public class RoadUpdateReqVO {
15 16  
16 17 @Schema(description = "道路名称", example = "赵六")
17 18 @NotEmpty(message = "道路名称不能为空")
  19 + @Size(min=2, max = 128, message = "道路名称长度")
18 20 private String roadName;
19 21  
20 22 @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11139")
... ... @@ -42,18 +44,22 @@ public class RoadUpdateReqVO {
42 44  
43 45 @Schema(description = "行道树绿化面积", requiredMode = Schema.RequiredMode.REQUIRED)
44 46 @NotEmpty(message = "行道树绿化面积不能为空")
  47 + @Size(min=1, max = 200000, message = "行道树绿化面积长度")
45 48 private String greenBeltTreeArea;
46 49  
47 50 @Schema(description = "绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
48 51 @NotEmpty(message = "绿化带面积不能为空")
  52 + @Size(min=1, max = 200000, message = "绿化带面积长度")
49 53 private String greenBeltArea;
50 54  
51 55 @Schema(description = "总绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
52 56 @NotEmpty(message = "总绿化带面积不能为空")
  57 + @Size(min=1, max = 200000, message = "总绿化带面积长度")
53 58 private String totalArea;
54 59  
55 60 @Schema(description = "行道树(棵)面积", requiredMode = Schema.RequiredMode.REQUIRED)
56 61 @NotEmpty(message = "行道树(棵)面积不能为空")
  62 + @Size(min=1, max = 50, message = "行道树(棵)面积长度")
57 63 private String treeArea;
58 64  
59 65 @Schema(description = "起点经度", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -66,6 +72,7 @@ public class RoadUpdateReqVO {
66 72  
67 73 @Schema(description = "起点描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
68 74 @NotEmpty(message = "起点描述不能为空")
  75 + @Size(min=1, max = 64, message = "起点描述最大64")
69 76 private String startingRemark;
70 77  
71 78 @Schema(description = "终点经度", requiredMode = Schema.RequiredMode.REQUIRED)
... ... @@ -78,10 +85,12 @@ public class RoadUpdateReqVO {
78 85  
79 86 @Schema(description = "终点描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
80 87 @NotEmpty(message = "终点描述不能为空")
  88 + @Size(min=1, max = 64, message = "起点经度长度最大64")
81 89 private String endRemark;
82 90  
83 91 @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
84 92 @NotEmpty(message = "备注不能为空")
  93 + @Size(max = 500, message = "备注不能为空")
85 94 private String remark;
86 95  
87 96 @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2323")
... ... @@ -93,11 +102,9 @@ public class RoadUpdateReqVO {
93 102 private Long deptId;
94 103  
95 104 @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
96   - @NotEmpty(message = "创建者不能为空")
97 105 private String creatorName;
98 106  
99 107 @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
100   - @NotEmpty(message = "更新者不能为空")
101 108 private String updaterName;
102 109  
103 110 }
104 111 \ No newline at end of file
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/controller/app/appmodule/AppAppModuleController.java
... ... @@ -15,8 +15,12 @@ import org.springframework.web.bind.annotation.GetMapping;
15 15 import org.springframework.web.bind.annotation.RequestMapping;
16 16 import org.springframework.web.bind.annotation.RestController;
17 17  
  18 +import java.util.ArrayList;
  19 +import java.util.Collections;
18 20 import java.util.Comparator;
  21 +import java.util.LinkedHashMap;
19 22 import java.util.List;
  23 +import java.util.Map;
20 24  
21 25 import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
22 26  
... ... @@ -47,13 +51,56 @@ public class AppAppModuleController {
47 51 // 填充统计数据(根据extra中的statisticKey配置)
48 52 // appModuleService.fillModuleStatistics(list, userId);
49 53  
50   - // 排序并转换
51   - list.sort(Comparator.comparing(AppModuleDO::getSort));
52   - List<AppModuleVO> result = AppModuleConvert.INSTANCE.convertAppList(list);
  54 + // 转换为 VO 列表并构建树
  55 + List<AppModuleVO> modules = AppModuleConvert.INSTANCE.convertAppList(list);
  56 + List<AppModuleVO> moduleTree = buildModuleTree(modules);
53 57  
54 58 // MapStruct 转换已通过 @AfterMapping 自动填充 statisticCount
55 59  
56   - return success(result);
  60 + return success(moduleTree);
  61 + }
  62 +
  63 + private List<AppModuleVO> buildModuleTree(List<AppModuleVO> modules) {
  64 + if (modules == null || modules.isEmpty()) {
  65 + return Collections.emptyList();
  66 + }
  67 +
  68 + Map<Long, AppModuleVO> moduleMap = new LinkedHashMap<>(modules.size());
  69 + for (AppModuleVO module : modules) {
  70 + module.setChildren(new ArrayList<>());
  71 + moduleMap.put(module.getId(), module);
  72 + }
  73 +
  74 + List<AppModuleVO> roots = new ArrayList<>();
  75 + for (AppModuleVO module : modules) {
  76 + Long parentId = module.getParentId();
  77 + if (parentId == null || AppModuleDO.ID_ROOT.equals(parentId)) {
  78 + roots.add(module);
  79 + continue;
  80 + }
  81 +
  82 + AppModuleVO parent = moduleMap.get(parentId);
  83 + if (parent == null) {
  84 + roots.add(module);
  85 + continue;
  86 + }
  87 + parent.getChildren().add(module);
  88 + }
  89 +
  90 + sortModules(roots);
  91 + return roots;
  92 + }
  93 +
  94 + private void sortModules(List<AppModuleVO> modules) {
  95 + if (modules == null || modules.isEmpty()) {
  96 + return;
  97 + }
  98 +
  99 + modules.sort(Comparator.comparing(AppModuleVO::getSort,
  100 + Comparator.nullsLast(Integer::compareTo)));
  101 + for (AppModuleVO module : modules) {
  102 + sortModules(module.getChildren());
  103 + }
57 104 }
58 105  
59 106 }
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/controller/app/appmodule/vo/AppModuleVO.java
... ... @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.system.controller.app.appmodule.vo;
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.Data;
5 5  
  6 +import java.util.List;
6 7 import java.util.Map;
7 8  
8 9 @Schema(description = "用户 APP - App 功能模块 Response VO")
... ... @@ -51,4 +52,7 @@ public class AppModuleVO {
51 52 @Schema(description = "扩展字段 JSON", example = "{}")
52 53 private Map<String, Object> extra;
53 54  
  55 + @Schema(description = "子模块集合")
  56 + private List<AppModuleVO> children;
  57 +
54 58 }
... ...
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/appmodule/AppModuleServiceImpl.java
... ... @@ -143,6 +143,7 @@ public class AppModuleServiceImpl implements AppModuleService {
143 143 // 查询所有启用的模块
144 144 reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
145 145 List<AppModuleDO> modules = getAppModuleList(reqVO);
  146 + modules = includeParentModules(modules);
146 147  
147 148 // 过滤掉关闭的节点
148 149 modules = filterDisableModules(modules);
... ... @@ -159,6 +160,46 @@ public class AppModuleServiceImpl implements AppModuleService {
159 160 return modules;
160 161 }
161 162  
  163 + private List<AppModuleDO> includeParentModules(List<AppModuleDO> modules) {
  164 + if (CollUtil.isEmpty(modules)) {
  165 + return modules;
  166 + }
  167 +
  168 + Map<Long, AppModuleDO> moduleMap = new LinkedHashMap<>();
  169 + for (AppModuleDO module : modules) {
  170 + moduleMap.put(module.getId(), module);
  171 + }
  172 +
  173 + Set<Long> pendingParentIds = new HashSet<>();
  174 + for (AppModuleDO module : modules) {
  175 + Long parentId = module.getParentId();
  176 + if (parentId == null || ObjUtil.equal(parentId, ID_ROOT) || moduleMap.containsKey(parentId)) {
  177 + continue;
  178 + }
  179 + pendingParentIds.add(parentId);
  180 + }
  181 +
  182 + while (CollUtil.isNotEmpty(pendingParentIds)) {
  183 + List<AppModuleDO> parents = appModuleMapper.selectByIds(pendingParentIds);
  184 + pendingParentIds = new HashSet<>();
  185 + for (AppModuleDO parent : parents) {
  186 + if (parent == null) {
  187 + continue;
  188 + }
  189 + if (!moduleMap.containsKey(parent.getId())) {
  190 + moduleMap.put(parent.getId(), parent);
  191 + }
  192 + Long ancestorId = parent.getParentId();
  193 + if (ancestorId != null && !ObjUtil.equal(ancestorId, ID_ROOT)
  194 + && !moduleMap.containsKey(ancestorId)) {
  195 + pendingParentIds.add(ancestorId);
  196 + }
  197 + }
  198 + }
  199 +
  200 + return new ArrayList<>(moduleMap.values());
  201 + }
  202 +
162 203 @Override
163 204 public List<AppModuleDO> filterDisableModules(List<AppModuleDO> moduleList) {
164 205 if (CollUtil.isEmpty(moduleList)) {
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/BpmGardenInspectController.java
... ... @@ -3,11 +3,7 @@ package com.zteits.urbanops.module.workorder.controller.admin.garden;
3 3 import com.zteits.urbanops.framework.common.pojo.CommonResult;
4 4 import com.zteits.urbanops.framework.common.pojo.PageResult;
5 5 import com.zteits.urbanops.framework.common.util.object.BeanUtils;
6   -import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO;
7   -import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO;
8   -import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO;
9   -import com.zteits.urbanops.module.bpm.dal.dataobject.oa.BpmOALeaveDO;
10   -import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo;
  6 +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVO;
11 7 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO;
12 8 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderRespVO;
13 9 import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO;
... ... @@ -41,7 +37,7 @@ public class BpmGardenInspectController {
41 37 @PostMapping("/create")
42 38 @PreAuthorize("@ss.hasPermission('bpm:garden-inspection:create')")
43 39 @Operation(summary = "创建请求申请")
44   - public CommonResult<Long> createGardenInspection(@Valid @RequestBody BpmGardenWorkOrderCreateReqVo createReqVO) {
  40 + public CommonResult<Long> createGardenInspection(@Valid @RequestBody BpmGardenWorkOrderCreateReqVO createReqVO) {
45 41 return success(gardenService.createWorkOrder(getLoginUserId(), createReqVO));
46 42 }
47 43  
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderCreateReqVo.java renamed to urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderCreateReqVO.java
... ... @@ -18,7 +18,7 @@ import java.util.Map;
18 18 */
19 19 @Schema(description = "园林工单请求创建 Request VO")
20 20 @Data
21   -public class BpmGardenWorkOrderCreateReqVo {
  21 +public class BpmGardenWorkOrderCreateReqVO {
22 22  
23 23 @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED)
24 24 @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空")
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java
... ... @@ -5,7 +5,9 @@ import com.zteits.urbanops.framework.common.pojo.PageResult;
5 5 import com.zteits.urbanops.framework.common.util.object.BeanUtils;
6 6 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO;
7 7 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderRespVO;
  8 +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderPageReqVO;
8 9 import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO;
  10 +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderRespVO;
9 11 import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO;
10 12 import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService;
11 13 import io.swagger.v3.oas.annotations.Operation;
... ... @@ -27,36 +29,40 @@ import static com.zteits.urbanops.framework.security.core.util.SecurityFramework
27 29 */
28 30 @Tag(name = "APP - 园林工单bpm")
29 31 @RestController
30   -@RequestMapping("/app/garden/workorder")
  32 +@RequestMapping("/bpm/garden/workorder")
31 33 public class AppGardenWorkOrderController {
32 34 @Resource
33 35 private BpmGardenService gardenService;
34 36  
35 37 @PostMapping("/create")
  38 + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:create')")
36 39 @Operation(summary = "app-创建工单信息")
37 40 public CommonResult<Long> createMainInfo(@Valid @RequestBody AppGardenWorkOrderReqVO createReqVO) {
38 41 return success(gardenService.createWorkOrder(createReqVO));
39 42 }
40 43  
41 44 @PostMapping("/createQuick")
  45 + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:create')")
42 46 @Operation(summary = "app-创建快速工单信息")
43 47 public CommonResult<Long> createMainInfoQuick(@Valid @RequestBody AppGardenWorkOrderReqVO createReqVO) {
44 48 return success(gardenService.createWorkOrderQuick(createReqVO));
45 49 }
46 50  
47 51 @GetMapping("/get")
  52 + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')")
48 53 @Operation(summary = "app-获得工单详情")
49 54 @Parameter(name = "id", description = "编号", required = true, example = "1024")
50   - public CommonResult<BpmGardenWorkOrderRespVO> getGardenInspection(@RequestParam("id") Long id) {
  55 + public CommonResult<AppGardenWorkOrderRespVO> getGardenInspection(@RequestParam("id") Long id) {
51 56 BpmGardenWorkOrderDO gardenInspection = gardenService.getWorkOrder(id);
52   - return success(BeanUtils.toBean(gardenInspection, BpmGardenWorkOrderRespVO.class));
  57 + return success(BeanUtils.toBean(gardenInspection, AppGardenWorkOrderRespVO.class));
53 58 }
54 59  
55 60 @GetMapping("/page")
  61 + //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:query')")
56 62 @Operation(summary = "app-获得园林巡检工单申请分页")
57   - public CommonResult<PageResult<BpmGardenWorkOrderRespVO>> getGardenInspectionPage(@Valid BpmGardenWorkOrderPageReqVO pageVO) {
  63 + public CommonResult<PageResult<AppGardenWorkOrderRespVO>> getGardenInspectionPage(@Valid AppGardenWorkOrderPageReqVO pageVO) {
58 64 PageResult<BpmGardenWorkOrderDO> pageResult = gardenService.getGardenInspectionPage(getLoginUserId(), pageVO);
59   - return success(BeanUtils.toBean(pageResult, BpmGardenWorkOrderRespVO.class));
  65 + return success(BeanUtils.toBean(pageResult, AppGardenWorkOrderRespVO.class));
60 66 }
61 67  
62 68 }
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.app.garden.vo;
  2 +
  3 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  4 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import lombok.Data;
  7 +
  8 +/**
  9 + * @author yanhuiqing
  10 + * @version 1.0
  11 + * @description: TODO
  12 + * @date 2025/12/9 20:21
  13 + */
  14 +@Schema(description = "管理后台 - 工单信息分页 Request VO")
  15 +@Data
  16 +public class AppGardenWorkOrderPageReqVO extends MainInfoPageReqVO {
  17 +}
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java
... ... @@ -36,7 +36,7 @@ public class AppGardenWorkOrderReqVO {
36 36 @Length(max = 500)
37 37 private String remark;
38 38  
39   - @NotEmpty(message = "经纬度类型")
  39 +
40 40 @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2")
41 41 private Integer latLonType;
42 42  
... ... @@ -59,7 +59,7 @@ public class AppGardenWorkOrderReqVO {
59 59 @Schema(description = "工单名称", example = "绿地卫生")
60 60 private String orderName;
61 61  
62   - @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  62 + @Schema(description = "来源ID 工单来源 1、巡查,2、游客居民,3、12345,4、网格", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
63 63 //@NotNull(message = "来源ID不能为空")
64 64 private Integer sourceId;
65 65  
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.workorder.controller.app.garden.vo;
  2 +
  3 +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoRespVO;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +
  7 +/**
  8 + * @author yanhuiqing
  9 + * @version 1.0
  10 + * @description: TODO
  11 + * @date 2025/12/9 20:18
  12 + */
  13 +@Schema(description = "APP - 园林工单流程 Response VO")
  14 +@Data
  15 +public class AppGardenWorkOrderRespVO extends MainInfoRespVO {
  16 +}
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java
1 1 package com.zteits.urbanops.module.workorder.service.garden;
2 2  
3 3 import com.zteits.urbanops.framework.common.pojo.PageResult;
4   -import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo;
  4 +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVO;
5 5 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO;
  6 +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderPageReqVO;
6 7 import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO;
7 8 import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO;
8 9 import jakarta.validation.Valid;
... ... @@ -25,7 +26,7 @@ public interface BpmGardenService {
25 26 * @param createRequestVo
26 27 * @return
27 28 */
28   - Long createWorkOrder(Long userId,@Valid BpmGardenWorkOrderCreateReqVo createRequestVo);
  29 + Long createWorkOrder(Long userId,@Valid BpmGardenWorkOrderCreateReqVO createRequestVo);
29 30  
30 31 /**
31 32 * 更新工单申请的状态
... ... @@ -49,6 +50,14 @@ public interface BpmGardenService {
49 50 * @param pageVO
50 51 * @return
51 52 */
  53 + PageResult<BpmGardenWorkOrderDO> getGardenInspectionPage(Long loginUserId, AppGardenWorkOrderPageReqVO pageVO);
  54 +
  55 + /**
  56 + * 获得工单分页数据
  57 + * @param loginUserId
  58 + * @param pageVO
  59 + * @return
  60 + */
52 61 PageResult<BpmGardenWorkOrderDO> getGardenInspectionPage(Long loginUserId, BpmGardenWorkOrderPageReqVO pageVO);
53 62  
54 63 /**
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java
... ... @@ -8,12 +8,12 @@ import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
8 8 import com.zteits.urbanops.module.bpm.api.task.BpmProcessInstanceApi;
9 9 import com.zteits.urbanops.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
10 10 import com.zteits.urbanops.module.bpm.enums.task.BpmTaskStatusEnum;
11   -import com.zteits.urbanops.module.bpm.service.task.BpmProcessInstanceService;
12 11 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant;
13 12 import com.zteits.urbanops.module.workorder.api.workorder.WorkOrderApi;
14   -import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo;
  13 +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVO;
15 14 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO;
16 15 import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO;
  16 +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderPageReqVO;
17 17 import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO;
18 18 import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO;
19 19 import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO;
... ... @@ -71,6 +71,8 @@ public class BpmGardenServiceImpl implements BpmGardenService{
71 71 workOrder.setOrderName("园林工单");
72 72 workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId());
73 73 workOrder.setBusiLine(SecurityFrameworkUtils.getBusiLine());
  74 + workOrder.setUserId(SecurityFrameworkUtils.getLoginUserId());
  75 + workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname());
74 76 workOrderMapper.insert(workOrder);
75 77  
76 78 //附件插入
... ... @@ -119,7 +121,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
119 121  
120 122 @Override
121 123 @Transactional(rollbackFor = Exception.class)
122   - public Long createWorkOrder(Long userId, BpmGardenWorkOrderCreateReqVo createRequestVo) {
  124 + public Long createWorkOrder(Long userId, BpmGardenWorkOrderCreateReqVO createRequestVo) {
123 125 List<String> imgList = createRequestVo.getImgs();
124 126 List<String> streetImgList = createRequestVo.getStreetImgList();
125 127 List<String> longRangeImgList = createRequestVo.getLongRangeImgList();
... ... @@ -238,5 +240,13 @@ public class BpmGardenServiceImpl implements BpmGardenService{
238 240 return targetList;
239 241 }
240 242  
  243 + @Override
  244 + public PageResult<BpmGardenWorkOrderDO> getGardenInspectionPage(Long loginUserId, AppGardenWorkOrderPageReqVO pageVO) {
  245 + MainInfoPageReqVO mainInfoPageReqVo = BeanUtils.toBean(pageVO,MainInfoPageReqVO.class);
  246 + PageResult<MainInfoDO> pageList = workOrderMapper.selectPage(loginUserId, mainInfoPageReqVo);
  247 + PageResult<BpmGardenWorkOrderDO> targetList = BeanUtils.toBean(pageList,BpmGardenWorkOrderDO.class);
  248 + return targetList;
  249 + }
  250 +
241 251  
242 252 }
... ...
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java
... ... @@ -5,6 +5,7 @@ import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEventLis
5 5 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant;
6 6 import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService;
7 7 import jakarta.annotation.Resource;
  8 +import lombok.extern.slf4j.Slf4j;
8 9 import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
9 10 import org.springframework.stereotype.Component;
10 11  
... ... @@ -15,6 +16,7 @@ import org.springframework.stereotype.Component;
15 16 * @date 2025/12/6 14:00
16 17 */
17 18 @Component
  19 +@Slf4j
18 20 public class BpmQuickProcessTaskAutoCompleteListener extends BpmProcessInstanceStatusEventListener {
19 21 @Resource
20 22 private BpmGardenService gardenService;
... ... @@ -25,6 +27,7 @@ public class BpmQuickProcessTaskAutoCompleteListener extends BpmProcessInstanceS
25 27  
26 28 @Override
27 29 protected void onEvent(BpmProcessInstanceStatusEvent event) {
  30 + log.info("业务ID:"+event.getBusinessKey()+",业务状态"+event.getStatus());
28 31 gardenService.updateWorkOrderStatus(Long.parseLong(event.getBusinessKey()), event.getStatus());
29 32  
30 33 }
... ...