From 5a6729dd3f118095307f538b51111ea64ce7d81a Mon Sep 17 00:00:00 2001 From: halley Date: Fri, 29 May 2026 16:40:41 +0800 Subject: [PATCH] 督察员抄送 --- urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java | 7 +++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java | 5 +++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/InspectorBuzStatusUpdateAspect.java | 9 +++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java | 6 ++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java | 11 +++++++++-- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java | 13 ++++++++++--- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java | 2 +- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java | 2 +- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/util/RoleListUtils.java | 3 ++- 9 files changed, 50 insertions(+), 8 deletions(-) diff --git a/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java b/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java index 83722b7..26e4411 100644 --- a/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java +++ b/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java @@ -31,6 +31,13 @@ public class MainInfoRespVO { @ExcelProperty("工单名称") private String orderName; + @Schema(description = "三级编码") + private String orderCode; + + @Schema(description = "业务类型(一级编码)") + private String busiType; + + /** * 工单类型 Q:快速工单,C:普通工单,O:其他工单 */ 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 5c74ed4..0d65f82 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 @@ -175,6 +175,11 @@ public class BpmCommonConstant { * 督察员 角色编码 */ public static final String INSPECTOR_GLOBAL = "Inspector_global"; + + /** + * 督察员组长 角色编码 + */ + public static final String INSPECTOR_GLOBAL_LEADER = "Inspector_global_leader"; /** * ai 工单派发人 */ diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/InspectorBuzStatusUpdateAspect.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/InspectorBuzStatusUpdateAspect.java index 40fcc79..f6357b1 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/InspectorBuzStatusUpdateAspect.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/InspectorBuzStatusUpdateAspect.java @@ -96,6 +96,14 @@ public class InspectorBuzStatusUpdateAspect { targeVO.setId(workerDataId); targeVO.setOrderNo(dbData.getOrderNo()); targeVO.setBusiLine(dbData.getBusiLine()); + //三级级编码 + if(StringUtil.isNotEmpty(reqVO.getOrderCode())){ + targeVO.setOrderCode(reqVO.getOrderCode()); + } + //业务类型(一级编码) + if(StringUtil.isNotEmpty(reqVO.getBusiType())){ + targeVO.setBusiType(reqVO.getBusiType()); + } //大区经理分配 if(InspectorOperateTypeEnum.SH_REGION_MANAGER_ASSIGN.getCode().equals(reqVO.getOperateType())){ RoadStreetRespDTO roadStreetRespDTO = roadApi.getRoadInfoById(reqVO.getRoadId()); @@ -163,6 +171,7 @@ public class InspectorBuzStatusUpdateAspect { busiLine = dbData.getBusiLine(); } targeVO.setBusiLine(busiLine); + targeVO.setUserId(SecurityFrameworkUtils.getLoginUserId()); targeVO.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); if(ObjectUtils.isNotAllEmpty(reqVO.getExpectedFinishDate())){ diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java index 33d0de7..a22885e 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java @@ -123,6 +123,12 @@ public class AppUniversalApprovalReqVO { @Schema(description = "工单名称", example = "绿地卫生") private String orderName; + @Schema(description = "三级编码") + private String orderCode; + + @Schema(description = "业务类型(一级编码)") + private String busiType; + @Schema(description = "来源ID 工单来源 1、巡查,2、游客居民,3、12345,4、网格", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") //@NotNull(message = "来源ID不能为空") private Integer sourceId; diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java index 22ea2a1..19909ec 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java @@ -1,8 +1,6 @@ package com.zteits.urbanops.module.workorder.dal.dataobject.maininfo; -import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; import lombok.*; @@ -47,6 +45,15 @@ public class MainInfoExtDO extends BaseDO { * 工单名称 */ private String orderName; + + /** + * 三级编码 + */ + private String orderCode; + /** + * 业务类型 + */ + private String busiType; /** * 来源ID */ diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java index 8bfb429..bd605f3 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java @@ -1,6 +1,5 @@ package com.zteits.urbanops.module.workorder.dal.mysql.maininfo; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,10 +10,8 @@ import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils; import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoHasTaskPageReqVO; -import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoExtDO; -import jakarta.validation.constraints.NotNull; import org.apache.ibatis.annotations.*; import org.springframework.lang.NonNull; @@ -112,6 +109,8 @@ public interface MainInfoExtMapper extends BaseMapperX { @Result(column = "busi_line", property = "busiLine"), @Result(column = "order_no", property = "orderNo"), @Result(column = "order_name", property = "orderName"), + @Result(column = "order_code", property = "orderCode"), + @Result(column = "busi_type", property = "busiType"), @Result(column = "source_id", property = "sourceId"), @Result(column = "source_name", property = "sourceName"), @Result(column = "road_id", property = "roadId"), @@ -230,6 +229,8 @@ public interface MainInfoExtMapper extends BaseMapperX { @Result(column = "busi_line", property = "busiLine"), @Result(column = "order_no", property = "orderNo"), @Result(column = "order_name", property = "orderName"), + @Result(column = "order_code", property = "orderCode"), + @Result(column = "busi_type", property = "busiType"), @Result(column = "source_id", property = "sourceId"), @Result(column = "source_name", property = "sourceName"), @Result(column = "road_id", property = "roadId"), @@ -345,6 +346,8 @@ public interface MainInfoExtMapper extends BaseMapperX { @Result(column = "busi_line", property = "busiLine"), @Result(column = "order_no", property = "orderNo"), @Result(column = "order_name", property = "orderName"), + @Result(column = "order_code", property = "orderCode"), + @Result(column = "busi_type", property = "busiType"), @Result(column = "source_id", property = "sourceId"), @Result(column = "source_name", property = "sourceName"), @Result(column = "road_id", property = "roadId"), @@ -471,6 +474,8 @@ public interface MainInfoExtMapper extends BaseMapperX { @Result(column = "busi_line", property = "busiLine"), @Result(column = "order_no", property = "orderNo"), @Result(column = "order_name", property = "orderName"), + @Result(column = "order_code", property = "orderCode"), + @Result(column = "busi_type", property = "busiType"), @Result(column = "source_id", property = "sourceId"), @Result(column = "source_name", property = "sourceName"), @Result(column = "road_id", property = "roadId"), @@ -584,6 +589,8 @@ public interface MainInfoExtMapper extends BaseMapperX { @Result(column = "busi_line", property = "busiLine"), @Result(column = "order_no", property = "orderNo"), @Result(column = "order_name", property = "orderName"), + @Result(column = "order_code", property = "orderCode"), + @Result(column = "busi_type", property = "busiType"), @Result(column = "source_id", property = "sourceId"), @Result(column = "source_name", property = "sourceName"), @Result(column = "road_id", property = "roadId"), diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java index 86e3e6e..b8eb1e1 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java @@ -48,7 +48,7 @@ public interface ErrorCodeConstants { ErrorCode EVENT_MAPPING_INFO_NOT_EXISTS = new ErrorCode(1-900-004-001, "工单事件映射不存在"); - ErrorCode APP_INSPECTOR_USER_ROLE_ERROR = new ErrorCode(1-900-004-001, "该登录人不是 全域督查员,无法发起流程!"); + ErrorCode APP_INSPECTOR_USER_ROLE_ERROR = new ErrorCode(1-900-004-001, "该登录人不是 全域督查员或者组长,无法发起流程!"); ErrorCode APP_WORK_INSPECTOR_ROLE_ILLEGLE = new ErrorCode(1-900-004-003, "该登录人即是 大区经理 角色,又是 全域督察员,无法发起流程!"); diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java index 96220a8..bcd7df7 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java @@ -114,7 +114,7 @@ public class BpmInspectorServiceImpl implements BpmInspectorService{ throw exception(APP_USER_ROLE_NOT_EXISTS); } - if(!RoleListUtils.containsCode(roleList,INSPECTOR_GLOBAL)){ + if(!RoleListUtils.containsCode(roleList,INSPECTOR_GLOBAL) || !RoleListUtils.containsCode(roleList,INSPECTOR_GLOBAL_LEADER)){ throw exception(APP_INSPECTOR_USER_ROLE_ERROR); } //校验人员不能有 双重角色 diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/util/RoleListUtils.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/util/RoleListUtils.java index d8e4b7d..531eadf 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/util/RoleListUtils.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/util/RoleListUtils.java @@ -64,7 +64,7 @@ public class RoleListUtils { * @param code2 第二个要校验的编码(允许为 null,此时要求列表中存在 null 的 code) * @return true=同时包含code1和code2;false=不同时包含/列表为空/列表为null */ - public static boolean containsBothCodes(List roleList, String code1, String code2) { + public static boolean containsBothCodes(List roleList, String code1, String code2 ) { // 1. 列表为null/空,直接返回false if (roleList == null || roleList.isEmpty()) { return false; @@ -82,6 +82,7 @@ public class RoleListUtils { return containsCode1 && containsCode2; } + public static void teamLeaderByRoleAssign(List userList, Map processInstanceVariables){ //养护组长指派为多人 String assigneeIdStr = userList.stream() -- libgit2 0.21.4