From 762fcf303ddb4beeee11cf3d334fdd1e9f7154ad Mon Sep 17 00:00:00 2001 From: yanhuiqinghot Date: Sat, 6 Dec 2025 14:55:09 +0800 Subject: [PATCH] 工单管理代码提交 --- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java | 12 ++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApi.java | 10 ++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java | 40 ++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java | 14 ++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java | 29 ----------------------------- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmGardenWorkOrderStatusListener.java | 30 ++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java | 31 +++++++++++++++++++++++++++++++ 10 files changed, 356 insertions(+), 29 deletions(-) create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApi.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java delete mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmGardenWorkOrderStatusListener.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java index ead6f8a..32773bd 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java @@ -8,6 +8,10 @@ package com.zteits.urbanops.module.workorder.api.constant; */ public class BpmCommonConstant { /** + * 通用快速流程 + */ + public static final String COMMON_QUICK_PROCESS = "common_quick_process"; + /** * 园林巡检工单 流程业务key */ public static final String BPM_GARDEN_INSPECT_WO = "garden_inspect_wo"; @@ -31,5 +35,13 @@ public class BpmCommonConstant { * 园林远景图片类型 */ public static final String GARDEN_INSPECT_WO_ATTACH3 = "03"; + /** + * 园林工单编号前缀 + */ + public static final String WORK_ORDER_PREFFIX_GARDEN = "GWO"; + /** + * 快速工单编号前缀 + */ + public static final String WORK_ORDER_PREFFIX_QUICK = "QWO"; } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApi.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApi.java new file mode 100644 index 0000000..67eeb1c --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApi.java @@ -0,0 +1,10 @@ +package com.zteits.urbanops.module.workorder.api.workorder; + +public interface WorkOrderApi { + /** + * 生成工单编号 + * @param prefix 前缀,为空时:workorder + * @return + */ + public String generateWONum(String prefix); +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java new file mode 100644 index 0000000..cd93bb9 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java @@ -0,0 +1,40 @@ +package com.zteits.urbanops.module.workorder.api.workorder; + +import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 工单对外api + * @date 2025/12/5 17:21 + */ +@Service +public class WorkOrderApiImpl implements WorkOrderApi{ + + private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + private static final AtomicInteger counter = new AtomicInteger(1); + + @Override + public String generateWONum(String prefix) { + if (ObjectUtils.isEmpty(prefix)) { + prefix = BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN; + } + String dateStr = LocalDateTime.now().format(DATE_FORMAT); + int seqNum = counter.getAndIncrement(); + if(seqNum>999){ + synchronized (counter) { + if (counter.intValue() > 999) { + counter.set(1); + } + seqNum = counter.getAndIncrement(); + } + } + return String.format("%s%03d_%s", prefix, seqNum,dateStr); + } +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java new file mode 100644 index 0000000..aeddf07 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden; + +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderRespVO; +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO; +import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: app端 园林工单请求入口 + * @date 2025/12/6 10:07 + */ +@Tag(name = "APP - 园林工单bpm") +@RestController +@RequestMapping("/app/garden/workorder") +public class AppGardenWorkOrderController { + @Resource + private BpmGardenService gardenService; + + @PostMapping("/create") + @Operation(summary = "app-创建工单信息") + public CommonResult createMainInfo(@Valid @RequestBody AppGardenWorkOrderReqVO createReqVO) { + return success(gardenService.createWorkOrder(createReqVO)); + } + + @PostMapping("/createQuick") + @Operation(summary = "app-创建快速工单信息") + public CommonResult createMainInfoQuick(@Valid @RequestBody AppGardenWorkOrderReqVO createReqVO) { + return success(gardenService.createWorkOrderQuick(createReqVO)); + } + + @GetMapping("/get") + @Operation(summary = "app-获得工单详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getGardenInspection(@RequestParam("id") Long id) { + BpmGardenWorkOrderDO gardenInspection = gardenService.getWorkOrder(id); + return success(BeanUtils.toBean(gardenInspection, BpmGardenWorkOrderRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "app-获得园林巡检工单申请分页") + public CommonResult> getGardenInspectionPage(@Valid BpmGardenWorkOrderPageReqVO pageVO) { + PageResult pageResult = gardenService.getGardenInspectionPage(getLoginUserId(), pageVO); + return success(BeanUtils.toBean(pageResult, BpmGardenWorkOrderRespVO.class)); + } + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java new file mode 100644 index 0000000..6841b3e --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/AppGardenWorkOrderReqVO.java @@ -0,0 +1,80 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: app端请求参数 + * @date 2025/12/6 10:17 + */ +@Schema(description = "APP-园林工单请求创建 Request VO") +@Data +public class AppGardenWorkOrderReqVO { + + + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128") + @NotNull(message = "道路ID不能为空") + private Long roadId; + + @Schema(description = "问题图片", example = "9184") + private List imgs; + + @Schema(description = "处理完成照片", example = "9184") + private List longRangeImgList; + + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @NotEmpty(message = "工单描述不能为空") + @Length(max = 500) + private String remark; + + @NotEmpty(message = "经纬度类型") + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") + private Integer latLonType; + + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "经度不能为空") + private BigDecimal lat; + + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "维度不能为空") + private BigDecimal lon; + + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "经纬度地址不能为空") + private String lonLatAddress; + + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "紧急程度:1:特急;2:紧急;3:一般不能为空") + private Integer pressingType; + + @Schema(description = "工单名称", example = "绿地卫生") + private String orderName; + + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + //@NotNull(message = "来源ID不能为空") + private Integer sourceId; + + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "园林") + //@NotEmpty(message = "来源名称不能为空") + private String sourceName; + + @Schema(description = "三方工单ID") + private String thirdWorkNo; + + /* @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") + private Map> startUserSelectAssignees; + + @Schema(description = "是否需要养护人员修复,'0' 是,'1' 否") + private String isYesOrNo;*/ + + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java index ac24566..21246aa 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.workorder.service.garden; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo; import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO; import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; import jakarta.validation.Valid; /** @@ -13,6 +14,12 @@ import jakarta.validation.Valid; */ public interface BpmGardenService { /** + * 园林工单申请 app service 接口 + * @param createRequestVo + * @return + */ + Long createWorkOrder(@Valid AppGardenWorkOrderReqVO createRequestVo); + /** * 园林工单申请 Service 接口 * @param userId * @param createRequestVo @@ -43,4 +50,11 @@ public interface BpmGardenService { * @return */ PageResult getGardenInspectionPage(Long loginUserId, BpmGardenWorkOrderPageReqVO pageVO); + + /** + * 快速流程 + * @param createReqVO + * @return + */ + Long createWorkOrderQuick(@Valid AppGardenWorkOrderReqVO createReqVO); } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java index 4f6fb7d..f5a9165 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java @@ -4,13 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.bpm.api.task.BpmProcessInstanceApi; import com.zteits.urbanops.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import com.zteits.urbanops.module.bpm.enums.task.BpmTaskStatusEnum; +import com.zteits.urbanops.module.bpm.service.task.BpmProcessInstanceService; import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import com.zteits.urbanops.module.workorder.api.workorder.WorkOrderApi; import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo; import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.AppGardenWorkOrderReqVO; import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; @@ -45,6 +49,72 @@ public class BpmGardenServiceImpl implements BpmGardenService{ private MainInfoMapper workOrderMapper; @Resource private BpmProcessInstanceApi processInstanceApi; + @Resource + private WorkOrderApi workOrderApi; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createWorkOrderQuick(AppGardenWorkOrderReqVO createRequestVo) { + + List imgList = createRequestVo.getImgs(); + //List streetImgList = createRequestVo.getStreetImgList(); + List longRangeImgList = createRequestVo.getLongRangeImgList(); + // 插入 工单 + MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) + .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); + //TODO 设置其它值 需从道路表获取 + workOrder.setStreetId("test"); + workOrder.setBuzStatus("t1");//需给出映射关系 + workOrder.setCommitDate(LocalDateTime.now()); + String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_QUICK); + workOrder.setOrderNo(workOrderNum); + workOrder.setOrderName("园林工单"); + workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); + workOrder.setBusiLine(SecurityFrameworkUtils.getBusiLine()); + workOrderMapper.insert(workOrder); + + //附件插入 + attachmentApend(imgList,null,longRangeImgList,workOrder); + // 发起 BPM 流程 + Map processInstanceVariables = new HashMap<>(); + processInstanceVariables.put("remark", workOrder.getRemark()); + String processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(), + new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(BpmCommonConstant.COMMON_QUICK_PROCESS) + .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(workOrder.getId()))); + + // 将工作流的编号,更新到 工单中 + workOrderMapper.updateById(new MainInfoDO().setId(workOrder.getId()).setProcessInstanceId(processInstanceId)); + return workOrder.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) { + List imgList = createRequestVo.getImgs(); + //List streetImgList = createRequestVo.getStreetImgList(); + List longRangeImgList = createRequestVo.getLongRangeImgList(); + + MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) + .setStatus(BpmTaskStatusEnum.NOT_START.getStatus()); + //TODO 设置其它值 需从道路表获取 + workOrder.setStreetId("test"); + //workOrder.setBuzStatus("t1");//需给出映射关系 + //workOrder.setCommitDate(LocalDateTime.now()); + workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); + workOrder.setBusiLine(SecurityFrameworkUtils.getBusiLine()); + String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN); + workOrder.setOrderNo(workOrderNum); + //workOrder.setOrderName("园林工单"); + Long userId = com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId(); + String nickname = com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserNickname(); + workOrder.setUserId(userId); + workOrder.setUserName(nickname); + workOrderMapper.insert(workOrder); + //附件插入 + attachmentApend(imgList,null,longRangeImgList,workOrder); + return workOrder.getId(); + } + @Override @Transactional(rollbackFor = Exception.class) public Long createWorkOrder(Long userId, BpmGardenWorkOrderCreateReqVo createRequestVo) { @@ -59,6 +129,11 @@ public class BpmGardenServiceImpl implements BpmGardenService{ workOrder.setStreetId("test"); workOrder.setBuzStatus("t1");//需给出映射关系 workOrder.setCommitDate(LocalDateTime.now()); + String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN); + workOrder.setOrderNo(workOrderNum); + workOrder.setOrderName("园林工单"); + workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); + workOrder.setBusiLine(SecurityFrameworkUtils.getBusiLine()); workOrderMapper.insert(workOrder); //附件插入 @@ -160,4 +235,6 @@ public class BpmGardenServiceImpl implements BpmGardenService{ PageResult targetList = BeanUtils.toBean(pageList,BpmGardenWorkOrderDO.class); return targetList; } + + } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java deleted file mode 100644 index 75d3a54..0000000 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.zteits.urbanops.module.workorder.service.garden.listener; - -import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEvent; -import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEventListener; -import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Component; - -/** - * @author yanhuiqing - * @version 1.0 - * @description: 工作流状态监听类 - * @date 2025/12/1 11:45 - */ -@Component -public class BomGardenWorkOrderStatusListener extends BpmProcessInstanceStatusEventListener { - @Resource - private BpmGardenService gardenService; - @Override - protected String getProcessDefinitionKey() { - - return null; - } - - @Override - protected void onEvent(BpmProcessInstanceStatusEvent event) { - gardenService.updateWorkOrderStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); - } -} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmGardenWorkOrderStatusListener.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmGardenWorkOrderStatusListener.java new file mode 100644 index 0000000..b15e65f --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmGardenWorkOrderStatusListener.java @@ -0,0 +1,30 @@ +package com.zteits.urbanops.module.workorder.service.garden.listener; + +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEvent; +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEventListener; +import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 工作流状态监听类 + * @date 2025/12/1 11:45 + */ +@Component +public class BpmGardenWorkOrderStatusListener extends BpmProcessInstanceStatusEventListener { + @Resource + private BpmGardenService gardenService; + @Override + protected String getProcessDefinitionKey() { + + return BpmCommonConstant.BPM_GARDEN_INSPECT_WO; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + gardenService.updateWorkOrderStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); + } +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java new file mode 100644 index 0000000..4bd3fc7 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BpmQuickProcessTaskAutoCompleteListener.java @@ -0,0 +1,31 @@ +package com.zteits.urbanops.module.workorder.service.garden.listener; + +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEvent; +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEventListener; +import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import jakarta.annotation.Resource; +import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; +import org.springframework.stereotype.Component; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 快速处理流程的任务自动完成监听器 + * @date 2025/12/6 14:00 + */ +@Component +public class BpmQuickProcessTaskAutoCompleteListener extends BpmProcessInstanceStatusEventListener { + @Resource + private BpmGardenService gardenService; + @Override + protected String getProcessDefinitionKey() { + return BpmCommonConstant.COMMON_QUICK_PROCESS; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + gardenService.updateWorkOrderStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); + + } +} -- libgit2 0.21.4