Commit ffae06edf87b2992455d3d4077114371041f61c5

Authored by 颜惠青
1 parent 680ff92d

工单 问题修改

Showing 13 changed files with 143 additions and 28 deletions
urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java
@@ -142,8 +142,8 @@ public class MainInfoRespVO { @@ -142,8 +142,8 @@ public class MainInfoRespVO {
142 142
143 @Schema(description = "共同处理人") 143 @Schema(description = "共同处理人")
144 private Set<Long> coHandlers; 144 private Set<Long> coHandlers;
145 - @Schema(description = "共同处理人名称,多个逗号拼接")  
146 - private String coHandlersName; 145 + @Schema(description = "共同处理人名称,多个为数组")
  146 + private List<String> coHandlersName;
147 147
148 @Schema(description = "提交人电话") 148 @Schema(description = "提交人电话")
149 private String userMobile; 149 private String userMobile;
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/api/permission/RoleApi.java
@@ -45,6 +45,13 @@ public interface RoleApi { @@ -45,6 +45,13 @@ public interface RoleApi {
45 */ 45 */
46 List<Long> getRoleIdsByUserId(Long userId); 46 List<Long> getRoleIdsByUserId(Long userId);
47 47
  48 + /**
  49 + * 根据用户id获取角色信息
  50 + * @param userId
  51 + * @return
  52 + */
  53 + List<RoleRespVO> getRoleListByUsrId(Long userId);
  54 +
48 55
49 /** 56 /**
50 * 通过角色类型,获得用户编号列表 57 * 通过角色类型,获得用户编号列表
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/api/permission/RoleApiImpl.java
1 package com.zteits.urbanops.module.system.api.permission; 1 package com.zteits.urbanops.module.system.api.permission;
2 2
  3 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
3 import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.RoleRespVO; 4 import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.RoleRespVO;
4 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO; 5 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO;
5 import com.zteits.urbanops.module.system.service.permission.RoleService; 6 import com.zteits.urbanops.module.system.service.permission.RoleService;
@@ -41,6 +42,13 @@ public class RoleApiImpl implements RoleApi { @@ -41,6 +42,13 @@ public class RoleApiImpl implements RoleApi {
41 } 42 }
42 43
43 @Override 44 @Override
  45 + public List<RoleRespVO> getRoleListByUsrId(Long userId) {
  46 + List<Long> roleIds = roleService.getRoleIdsByUserId(userId);
  47 + List<RoleDO> roleDOList = roleService.getRoleList(roleIds);
  48 + return BeanUtils.toBean(roleDOList, RoleRespVO.class);
  49 + }
  50 +
  51 + @Override
44 public List<Long> getUserIdsByRoleCode(String roleCode) { 52 public List<Long> getUserIdsByRoleCode(String roleCode) {
45 return roleService.getUserIdsByRoleCode(roleCode); 53 return roleService.getUserIdsByRoleCode(roleCode);
46 } 54 }
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java
@@ -121,4 +121,7 @@ public class MainInfoPageReqVO extends PageParam { @@ -121,4 +121,7 @@ public class MainInfoPageReqVO extends PageParam {
121 @Schema(description = "实施人员部门id", example = "12") 121 @Schema(description = "实施人员部门id", example = "12")
122 private Long workerCompanyId; 122 private Long workerCompanyId;
123 123
  124 + @Schema(description = "工单来源编码")
  125 + private String woSourceId;
  126 +
124 } 127 }
125 \ No newline at end of file 128 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java
@@ -22,6 +22,7 @@ import org.aspectj.lang.annotation.Around; @@ -22,6 +22,7 @@ import org.aspectj.lang.annotation.Around;
22 import org.aspectj.lang.annotation.Aspect; 22 import org.aspectj.lang.annotation.Aspect;
23 import org.aspectj.lang.annotation.Pointcut; 23 import org.aspectj.lang.annotation.Pointcut;
24 import org.springframework.stereotype.Component; 24 import org.springframework.stereotype.Component;
  25 +import org.springframework.transaction.annotation.Transactional;
25 26
26 import java.time.LocalDateTime; 27 import java.time.LocalDateTime;
27 import java.util.List; 28 import java.util.List;
@@ -64,6 +65,7 @@ public class BuzStatusUpdateAspect { @@ -64,6 +65,7 @@ public class BuzStatusUpdateAspect {
64 public void buzStatusUpdatePointcut() {} 65 public void buzStatusUpdatePointcut() {}
65 66
66 @Around("buzStatusUpdatePointcut()") 67 @Around("buzStatusUpdatePointcut()")
  68 + @Transactional(rollbackFor = Exception.class)
67 public Object around(ProceedingJoinPoint joinPoint) throws Throwable { 69 public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
68 // 1. 获取方法参数(AppUniversalApprovalReqVO) 70 // 1. 获取方法参数(AppUniversalApprovalReqVO)
69 Object[] args = joinPoint.getArgs(); 71 Object[] args = joinPoint.getArgs();
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/convert/garden/AppGardenTaskConvert.java
@@ -11,6 +11,7 @@ import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskRespV @@ -11,6 +11,7 @@ import com.zteits.urbanops.module.bpm.controller.admin.task.vo.task.BpmTaskRespV
11 import com.zteits.urbanops.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; 11 import com.zteits.urbanops.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
12 import com.zteits.urbanops.module.bpm.framework.flowable.core.util.FlowableUtils; 12 import com.zteits.urbanops.module.bpm.framework.flowable.core.util.FlowableUtils;
13 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; 13 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
  14 +import com.zteits.urbanops.module.system.api.user.AdminUserApi;
14 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; 15 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO;
15 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; 16 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant;
16 import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.AppGardenTaskRespVO; 17 import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.AppGardenTaskRespVO;
@@ -25,10 +26,7 @@ import org.flowable.task.api.history.HistoricTaskInstance; @@ -25,10 +26,7 @@ import org.flowable.task.api.history.HistoricTaskInstance;
25 import org.mapstruct.Mapper; 26 import org.mapstruct.Mapper;
26 import org.mapstruct.factory.Mappers; 27 import org.mapstruct.factory.Mappers;
27 28
28 -import java.util.Arrays;  
29 -import java.util.Collections;  
30 -import java.util.List;  
31 -import java.util.Map; 29 +import java.util.*;
32 import java.util.stream.Collectors; 30 import java.util.stream.Collectors;
33 31
34 import static com.zteits.urbanops.framework.common.util.collection.MapUtils.findAndThen; 32 import static com.zteits.urbanops.framework.common.util.collection.MapUtils.findAndThen;
@@ -97,18 +95,18 @@ public interface AppGardenTaskConvert { @@ -97,18 +95,18 @@ public interface AppGardenTaskConvert {
97 return new PageResult<>(taskVOList, pageResult.getTotal()); 95 return new PageResult<>(taskVOList, pageResult.getTotal());
98 } 96 }
99 97
100 - default PageResult<AppGardenWorkOrderRespVO> buildBuziTaskPage(PageResult<MainInfoExtDO> pageResult, AttachmentMapper attachmentMapper){ 98 + default PageResult<AppGardenWorkOrderRespVO> buildBuziTaskPage(PageResult<MainInfoExtDO> pageResult, AttachmentMapper attachmentMapper, AdminUserApi adminUserApi){
101 // 1. 源分页对象为空,返回空分页 99 // 1. 源分页对象为空,返回空分页
102 if (pageResult == null) { 100 if (pageResult == null) {
103 return PageResult.empty(); 101 return PageResult.empty();
104 } 102 }
105 103
106 // 2. 转换列表数据,保留分页参数(总数、页码、页大小等) 104 // 2. 转换列表数据,保留分页参数(总数、页码、页大小等)
107 - List<AppGardenWorkOrderRespVO> targetList = convertList(pageResult.getList(), attachmentMapper); 105 + List<AppGardenWorkOrderRespVO> targetList = convertList(pageResult.getList(), attachmentMapper,adminUserApi);
108 return new PageResult<>(targetList, pageResult.getTotal()); 106 return new PageResult<>(targetList, pageResult.getTotal());
109 } 107 }
110 108
111 - default List<AppGardenWorkOrderRespVO> convertList(List<MainInfoExtDO> sourceList, AttachmentMapper attachmentMapper) { 109 + default List<AppGardenWorkOrderRespVO> convertList(List<MainInfoExtDO> sourceList, AttachmentMapper attachmentMapper, AdminUserApi adminUserApi) {
112 // 1. 源列表为空,返回空列表(避免NPE) 110 // 1. 源列表为空,返回空列表(避免NPE)
113 if (sourceList == null || sourceList.isEmpty()) { 111 if (sourceList == null || sourceList.isEmpty()) {
114 return Collections.emptyList(); 112 return Collections.emptyList();
@@ -116,17 +114,19 @@ public interface AppGardenTaskConvert { @@ -116,17 +114,19 @@ public interface AppGardenTaskConvert {
116 114
117 // 2. 遍历源列表,调用单对象转换方法 115 // 2. 遍历源列表,调用单对象转换方法
118 return sourceList.stream() 116 return sourceList.stream()
119 - .map(source -> convert(source, attachmentMapper)) 117 + .map(source -> convert(source, attachmentMapper,adminUserApi))
120 .collect(Collectors.toList()); 118 .collect(Collectors.toList());
121 } 119 }
122 120
123 /** 121 /**
124 * MainInfoExtDO → AppGardenWorkOrderRespVO 122 * MainInfoExtDO → AppGardenWorkOrderRespVO
125 - * @param source 源对象 123 + *
  124 + * @param source 源对象
126 * @param attachmentMapper 附件Mapper,用于查询图片列表 125 * @param attachmentMapper 附件Mapper,用于查询图片列表
  126 + * @param adminUserApi
127 * @return 目标对象 127 * @return 目标对象
128 */ 128 */
129 - default AppGardenWorkOrderRespVO convert(MainInfoExtDO source, AttachmentMapper attachmentMapper) { 129 + default AppGardenWorkOrderRespVO convert(MainInfoExtDO source, AttachmentMapper attachmentMapper, AdminUserApi adminUserApi) {
130 // 1. 源对象为空,直接返回null 130 // 1. 源对象为空,直接返回null
131 if (source == null) { 131 if (source == null) {
132 return null; 132 return null;
@@ -134,6 +134,20 @@ public interface AppGardenTaskConvert { @@ -134,6 +134,20 @@ public interface AppGardenTaskConvert {
134 134
135 AppGardenWorkOrderRespVO target = new AppGardenWorkOrderRespVO(); 135 AppGardenWorkOrderRespVO target = new AppGardenWorkOrderRespVO();
136 org.springframework.beans.BeanUtils.copyProperties(source, target); 136 org.springframework.beans.BeanUtils.copyProperties(source, target);
  137 + Set<Long> userIds = target.getCoHandlers();
  138 + if (userIds != null && !userIds.isEmpty()) {
  139 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
  140 + List<String> coHandlersNameList = Optional.ofNullable(target.getCoHandlers())
  141 + .orElse(Set.of())
  142 + .stream()
  143 + .filter(Objects::nonNull)
  144 + .map(userMap::get)
  145 + .filter(Objects::nonNull)
  146 + .map(AdminUserRespDTO::getNickname)
  147 + .filter(nickname -> nickname != null && !nickname.isEmpty())
  148 + .collect(Collectors.toList());
  149 + target.setCoHandlersName(coHandlersNameList);
  150 + }
137 151
138 // 3. 手动赋值扩展字段:查询问题图片列表和完成图片列表 152 // 3. 手动赋值扩展字段:查询问题图片列表和完成图片列表
139 List<String> problemImgsList = queryAttachment( 153 List<String> problemImgsList = queryAttachment(
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/convert/maininfo/MainInfoConvert.java
@@ -10,10 +10,7 @@ import com.zteits.urbanops.module.workorder.dto.MainInfoRespVO; @@ -10,10 +10,7 @@ import com.zteits.urbanops.module.workorder.dto.MainInfoRespVO;
10 import org.mapstruct.Mapper; 10 import org.mapstruct.Mapper;
11 import org.mapstruct.factory.Mappers; 11 import org.mapstruct.factory.Mappers;
12 12
13 -import java.util.Arrays;  
14 -import java.util.List;  
15 -import java.util.Map;  
16 -import java.util.Objects; 13 +import java.util.*;
17 import java.util.stream.Collectors; 14 import java.util.stream.Collectors;
18 15
19 /** 16 /**
@@ -64,14 +61,18 @@ public interface MainInfoConvert { @@ -64,14 +61,18 @@ public interface MainInfoConvert {
64 } 61 }
65 mainInfoVo.setCompanyName(deptName); 62 mainInfoVo.setCompanyName(deptName);
66 if (mainInfoVo.getCoHandlers() != null && !mainInfoVo.getCoHandlers().isEmpty()) { 63 if (mainInfoVo.getCoHandlers() != null && !mainInfoVo.getCoHandlers().isEmpty()) {
67 - String coHandlersName = mainInfoVo.getCoHandlers() == null ? "" : mainInfoVo.getCoHandlers().stream()  
68 - .filter(userId -> userId != null) 64 + List<String> coHandlersNameList = Optional.ofNullable(mainInfoVo.getCoHandlers())
  65 + .orElse(Set.of())
  66 + .stream()
  67 + .filter(Objects::nonNull)
69 .map(userMap::get) 68 .map(userMap::get)
70 .filter(Objects::nonNull) 69 .filter(Objects::nonNull)
71 .map(AdminUserRespDTO::getNickname) 70 .map(AdminUserRespDTO::getNickname)
72 .filter(nickname -> nickname != null && !nickname.isEmpty()) 71 .filter(nickname -> nickname != null && !nickname.isEmpty())
73 - .collect(Collectors.joining(","));  
74 - mainInfoVo.setCoHandlersName(coHandlersName); 72 + .collect(Collectors.toList());
  73 + mainInfoVo.setCoHandlersName(coHandlersNameList);
  74 + }else{
  75 + mainInfoVo.setCoHandlersName(new ArrayList<>());
75 } 76 }
76 mainInfoVo.setUserMobile(userMap.get(mainInfoVo.getUserId()).getMobile()); 77 mainInfoVo.setUserMobile(userMap.get(mainInfoVo.getUserId()).getMobile());
77 } 78 }
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoDO.java
@@ -171,6 +171,18 @@ public class MainInfoDO extends BaseDO { @@ -171,6 +171,18 @@ public class MainInfoDO extends BaseDO {
171 * 实施人员部门id 171 * 实施人员部门id
172 */ 172 */
173 private Long workerCompanyId; 173 private Long workerCompanyId;
  174 + /**
  175 + * 工单来源编码
  176 + */
  177 + private String woSourceId;
  178 + /**
  179 + * 工单来源名称
  180 + */
  181 + private String woSourceName;
  182 + /**
  183 + * 特殊部门id,工单默认是登录人部门,实施后为实施人的部门id
  184 + */
  185 + private Long deptId;
174 186
175 187
176 188
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java
1 package com.zteits.urbanops.module.workorder.dal.dataobject.maininfo; 1 package com.zteits.urbanops.module.workorder.dal.dataobject.maininfo;
2 2
3 import com.baomidou.mybatisplus.annotation.KeySequence; 3 import com.baomidou.mybatisplus.annotation.KeySequence;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
4 import com.baomidou.mybatisplus.annotation.TableName; 5 import com.baomidou.mybatisplus.annotation.TableName;
  6 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
5 import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; 7 import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
6 import lombok.*; 8 import lombok.*;
7 9
8 import java.math.BigDecimal; 10 import java.math.BigDecimal;
9 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
  12 +import java.util.Set;
10 13
11 /** 14 /**
12 * 类描述:工单扩展信息,支持工作流任务信息 DO 15 * 类描述:工单扩展信息,支持工作流任务信息 DO
@@ -174,5 +177,35 @@ public class MainInfoExtDO extends BaseDO { @@ -174,5 +177,35 @@ public class MainInfoExtDO extends BaseDO {
174 */ 177 */
175 private String key_; 178 private String key_;
176 179
  180 + /**
  181 + * 共同处理人
  182 + */
  183 + @TableField(typeHandler = JacksonTypeHandler.class)
  184 + private Set<Long> coHandlers;
  185 + /**
  186 + * 实施人员ID
  187 + */
  188 + private Long workerId;
  189 + /**
  190 + * 实施人员名称
  191 + */
  192 + private String workerName;
  193 + /**
  194 + * 实施人员部门id
  195 + */
  196 + private Long workerCompanyId;
  197 + /**
  198 + * 工单来源编码
  199 + */
  200 + private String woSourceId;
  201 + /**
  202 + * 工单来源名称
  203 + */
  204 + private String woSourceName;
  205 + /**
  206 + * 特殊部门id,工单默认是登录人部门,实施后为实施人的部门id
  207 + */
  208 + private Long deptId;
  209 +
177 210
178 } 211 }
179 \ No newline at end of file 212 \ No newline at end of file
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java
@@ -2,6 +2,7 @@ package com.zteits.urbanops.module.workorder.dal.mysql.maininfo; @@ -2,6 +2,7 @@ package com.zteits.urbanops.module.workorder.dal.mysql.maininfo;
2 2
3 import com.baomidou.mybatisplus.core.conditions.Wrapper; 3 import com.baomidou.mybatisplus.core.conditions.Wrapper;
4 import com.baomidou.mybatisplus.core.metadata.IPage; 4 import com.baomidou.mybatisplus.core.metadata.IPage;
  5 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
5 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 6 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 import com.zteits.urbanops.framework.common.pojo.PageParam; 7 import com.zteits.urbanops.framework.common.pojo.PageParam;
7 import com.zteits.urbanops.framework.common.pojo.PageResult; 8 import com.zteits.urbanops.framework.common.pojo.PageResult;
@@ -129,6 +130,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -129,6 +130,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
129 @Result(column = "process_instance_id", property = "processInstanceId"), 130 @Result(column = "process_instance_id", property = "processInstanceId"),
130 @Result(column = "remark", property = "remark"), 131 @Result(column = "remark", property = "remark"),
131 @Result(column = "handle_result", property = "handleResult"), 132 @Result(column = "handle_result", property = "handleResult"),
  133 + @Result(column = "co_handlers", property = "coHandlers", typeHandler = JacksonTypeHandler.class),
  134 +
132 @Result(column = "creator", property = "creator"), 135 @Result(column = "creator", property = "creator"),
133 @Result(column = "create_time", property = "createTime"), 136 @Result(column = "create_time", property = "createTime"),
134 @Result(column = "updater", property = "updater"), 137 @Result(column = "updater", property = "updater"),
@@ -240,6 +243,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -240,6 +243,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
240 @Result(column = "process_instance_id", property = "processInstanceId"), 243 @Result(column = "process_instance_id", property = "processInstanceId"),
241 @Result(column = "remark", property = "remark"), 244 @Result(column = "remark", property = "remark"),
242 @Result(column = "handle_result", property = "handleResult"), 245 @Result(column = "handle_result", property = "handleResult"),
  246 + @Result(column = "co_handlers", property = "coHandlers", typeHandler = JacksonTypeHandler.class),
  247 +
243 @Result(column = "creator", property = "creator"), 248 @Result(column = "creator", property = "creator"),
244 @Result(column = "create_time", property = "createTime"), 249 @Result(column = "create_time", property = "createTime"),
245 @Result(column = "updater", property = "updater"), 250 @Result(column = "updater", property = "updater"),
@@ -345,6 +350,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -345,6 +350,8 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
345 @Result(column = "process_instance_id", property = "processInstanceId"), 350 @Result(column = "process_instance_id", property = "processInstanceId"),
346 @Result(column = "remark", property = "remark"), 351 @Result(column = "remark", property = "remark"),
347 @Result(column = "handle_result", property = "handleResult"), 352 @Result(column = "handle_result", property = "handleResult"),
  353 + @Result(column = "co_handlers", property = "coHandlers", typeHandler = JacksonTypeHandler.class),
  354 +
348 @Result(column = "creator", property = "creator"), 355 @Result(column = "creator", property = "creator"),
349 @Result(column = "create_time", property = "createTime"), 356 @Result(column = "create_time", property = "createTime"),
350 @Result(column = "updater", property = "updater"), 357 @Result(column = "updater", property = "updater"),
@@ -461,6 +468,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -461,6 +468,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
461 @Result(column = "process_instance_id", property = "processInstanceId"), 468 @Result(column = "process_instance_id", property = "processInstanceId"),
462 @Result(column = "remark", property = "remark"), 469 @Result(column = "remark", property = "remark"),
463 @Result(column = "handle_result", property = "handleResult"), 470 @Result(column = "handle_result", property = "handleResult"),
  471 + @Result(column = "co_handlers", property = "coHandlers", typeHandler = JacksonTypeHandler.class),
464 @Result(column = "creator", property = "creator"), 472 @Result(column = "creator", property = "creator"),
465 @Result(column = "create_time", property = "createTime"), 473 @Result(column = "create_time", property = "createTime"),
466 @Result(column = "updater", property = "updater"), 474 @Result(column = "updater", property = "updater"),
@@ -568,6 +576,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -568,6 +576,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
568 @Result(column = "process_instance_id", property = "processInstanceId"), 576 @Result(column = "process_instance_id", property = "processInstanceId"),
569 @Result(column = "remark", property = "remark"), 577 @Result(column = "remark", property = "remark"),
570 @Result(column = "handle_result", property = "handleResult"), 578 @Result(column = "handle_result", property = "handleResult"),
  579 + @Result(column = "co_handlers", property = "coHandlers", typeHandler = JacksonTypeHandler.class),
571 @Result(column = "creator", property = "creator"), 580 @Result(column = "creator", property = "creator"),
572 @Result(column = "create_time", property = "createTime"), 581 @Result(column = "create_time", property = "createTime"),
573 @Result(column = "updater", property = "updater"), 582 @Result(column = "updater", property = "updater"),
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java
@@ -89,6 +89,7 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -89,6 +89,7 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; {
89 .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerName()) 89 .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerName())
90 .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getOrderType()) 90 .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getOrderType())
91 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName()) 91 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName())
  92 + .eqIfPresent(MainInfoDO::getWoSourceId, reqVO.getWoSourceId())
92 93
93 .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId()) 94 .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId())
94 .likeIfPresent(MainInfoDO::getSourceName, reqVO.getSourceName()) 95 .likeIfPresent(MainInfoDO::getSourceName, reqVO.getSourceName())
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java
@@ -27,5 +27,7 @@ public interface ErrorCodeConstants { @@ -27,5 +27,7 @@ public interface ErrorCodeConstants {
27 27
28 ErrorCode APP_WORKER_ID_NOT_EMPTY = new ErrorCode(1-900-001-007, "WorkerDataId不能为空!"); 28 ErrorCode APP_WORKER_ID_NOT_EMPTY = new ErrorCode(1-900-001-007, "WorkerDataId不能为空!");
29 29
30 - ErrorCode APP_WORKER_LEVEL_ID_NOT_EXISTS = new ErrorCode(1-900-001-007, "养护级别编码错误,不存在!"); 30 + ErrorCode APP_WORKER_LEVEL_ID_NOT_EXISTS = new ErrorCode(1-900-002-000, "养护级别编码错误,不存在!");
  31 +
  32 + ErrorCode APP_USER_ROLE_NOT_EXISTS= new ErrorCode(1-900-002-001, "该人员未分配角色 !");
31 } 33 }
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java
@@ -22,8 +22,10 @@ import com.zteits.urbanops.module.bpm.service.task.BpmProcessInstanceService; @@ -22,8 +22,10 @@ import com.zteits.urbanops.module.bpm.service.task.BpmProcessInstanceService;
22 import com.zteits.urbanops.module.bpm.service.task.BpmTaskService; 22 import com.zteits.urbanops.module.bpm.service.task.BpmTaskService;
23 import com.zteits.urbanops.module.garden.api.road.RoadApi; 23 import com.zteits.urbanops.module.garden.api.road.RoadApi;
24 import com.zteits.urbanops.module.garden.dto.road.RoadStreetRespDTO; 24 import com.zteits.urbanops.module.garden.dto.road.RoadStreetRespDTO;
  25 +import com.zteits.urbanops.module.system.api.permission.RoleApi;
25 import com.zteits.urbanops.module.system.api.user.AdminUserApi; 26 import com.zteits.urbanops.module.system.api.user.AdminUserApi;
26 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; 27 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO;
  28 +import com.zteits.urbanops.module.system.controller.admin.permission.vo.role.RoleRespVO;
27 import com.zteits.urbanops.module.workorder.api.WorkOrderApi; 29 import com.zteits.urbanops.module.workorder.api.WorkOrderApi;
28 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; 30 import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant;
29 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; 31 import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO;
@@ -107,6 +109,9 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -107,6 +109,9 @@ public class BpmGardenServiceImpl implements BpmGardenService{
107 private AdminUserApi adminUserApi; 109 private AdminUserApi adminUserApi;
108 110
109 @Resource 111 @Resource
  112 + private RoleApi roleApi;
  113 +
  114 + @Resource
110 private BpmProcessInstanceService processInstanceService; 115 private BpmProcessInstanceService processInstanceService;
111 116
112 @Resource 117 @Resource
@@ -141,6 +146,15 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -141,6 +146,15 @@ public class BpmGardenServiceImpl implements BpmGardenService{
141 workOrder.setCuringLevelId(Integer.valueOf(dictData.getValue())); 146 workOrder.setCuringLevelId(Integer.valueOf(dictData.getValue()));
142 workOrder.setCuringLevelName(dictData.getLabel()); 147 workOrder.setCuringLevelName(dictData.getLabel());
143 workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); 148 workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId());
  149 +
  150 + workOrder.setDeptId(SecurityFrameworkUtils.getDeptId());
  151 + List<RoleRespVO> roleList = roleApi.getRoleListByUsrId(SecurityFrameworkUtils.getLoginUserId());
  152 + if(null == roleList || roleList.size()==0){
  153 + throw exception(APP_USER_ROLE_NOT_EXISTS);
  154 + }
  155 + workOrder.setWoSourceId(roleList.get(0).getCode());
  156 + workOrder.setWoSourceName(roleList.get(0).getName());
  157 +
144 if(StringUtil.isNotEmpty(createRequestVo.getBusiLine())){ 158 if(StringUtil.isNotEmpty(createRequestVo.getBusiLine())){
145 workOrder.setBusiLine(createRequestVo.getBusiLine()); 159 workOrder.setBusiLine(createRequestVo.getBusiLine());
146 }else { 160 }else {
@@ -347,7 +361,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -347,7 +361,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
347 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderTodoPage(pageParam,pageReqVO); 361 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderTodoPage(pageParam,pageReqVO);
348 List<MainInfoExtDO> list = pageResult.getList(); 362 List<MainInfoExtDO> list = pageResult.getList();
349 if(null != list && list.size()>0){ 363 if(null != list && list.size()>0){
350 - return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper); 364 + return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper, adminUserApi);
351 } 365 }
352 return null; 366 return null;
353 } 367 }
@@ -361,7 +375,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -361,7 +375,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
361 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderDonePage(pageParam,pageReqVO); 375 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderDonePage(pageParam,pageReqVO);
362 List<MainInfoExtDO> list = pageResult.getList(); 376 List<MainInfoExtDO> list = pageResult.getList();
363 if(null != list && list.size()>0){ 377 if(null != list && list.size()>0){
364 - return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper); 378 + return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper, adminUserApi);
365 } 379 }
366 return null; 380 return null;
367 } 381 }
@@ -375,7 +389,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -375,7 +389,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
375 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderMyPage(pageParam,pageReqVO); 389 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderMyPage(pageParam,pageReqVO);
376 List<MainInfoExtDO> list = pageResult.getList(); 390 List<MainInfoExtDO> list = pageResult.getList();
377 if(null != list && list.size()>0){ 391 if(null != list && list.size()>0){
378 - return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper); 392 + return AppGardenTaskConvert.INSTANCE.convert(list.get(0),attachmentMapper, adminUserApi);
379 } 393 }
380 return null; 394 return null;
381 } 395 }
@@ -412,7 +426,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -412,7 +426,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
412 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO); 426 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO);
413 //selectWorkOrderUniqueMyPage 个性化 去重 按工单唯一处理 427 //selectWorkOrderUniqueMyPage 个性化 去重 按工单唯一处理
414 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderUniqueMyPage(pageVO,taskBuzReqVO); 428 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderUniqueMyPage(pageVO,taskBuzReqVO);
415 - return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper); 429 + return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper, adminUserApi);
416 } 430 }
417 @Override 431 @Override
418 public PageResult<AppGardenWorkOrderRespVO> getTaskDoneBuzSimplePage(AppGardenWorkOrderPageReqVO pageVO) { 432 public PageResult<AppGardenWorkOrderRespVO> getTaskDoneBuzSimplePage(AppGardenWorkOrderPageReqVO pageVO) {
@@ -446,7 +460,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -446,7 +460,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
446 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO); 460 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO);
447 //已办改为获取最新一条数据 461 //已办改为获取最新一条数据
448 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderDoneUniquePage(pageVO,taskBuzReqVO); 462 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderDoneUniquePage(pageVO,taskBuzReqVO);
449 - return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper); 463 + return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper, adminUserApi);
450 } 464 }
451 465
452 @Override 466 @Override
@@ -480,8 +494,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -480,8 +494,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
480 //TODO 先写死 494 //TODO 先写死
481 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO); 495 //taskBuzReqVO.setKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO);
482 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderTodoPage(pageVO,taskBuzReqVO); 496 PageResult<MainInfoExtDO> pageResult = workOrderExtMapper.selectWorkOrderTodoPage(pageVO,taskBuzReqVO);
483 -  
484 - return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper); 497 + return AppGardenTaskConvert.INSTANCE.buildBuziTaskPage(pageResult,attachmentMapper,adminUserApi);
485 } 498 }
486 499
487 500
@@ -549,6 +562,15 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -549,6 +562,15 @@ public class BpmGardenServiceImpl implements BpmGardenService{
549 workOrder.setCuringLevelName(dictData.getLabel()); 562 workOrder.setCuringLevelName(dictData.getLabel());
550 workOrder.setCommitDate(LocalDateTime.now()); 563 workOrder.setCommitDate(LocalDateTime.now());
551 workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); 564 workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId());
  565 +
  566 + workOrder.setDeptId(SecurityFrameworkUtils.getDeptId());
  567 + List<RoleRespVO> roleList = roleApi.getRoleListByUsrId(SecurityFrameworkUtils.getLoginUserId());
  568 + if(null == roleList || roleList.size()==0){
  569 + throw exception(APP_USER_ROLE_NOT_EXISTS);
  570 + }
  571 + workOrder.setWoSourceId(roleList.get(0).getCode());
  572 + workOrder.setWoSourceName(roleList.get(0).getName());
  573 +
552 if(StringUtil.isNotEmpty(createRequestVo.getBusiLine())){ 574 if(StringUtil.isNotEmpty(createRequestVo.getBusiLine())){
553 workOrder.setBusiLine(createRequestVo.getBusiLine()); 575 workOrder.setBusiLine(createRequestVo.getBusiLine());
554 }else { 576 }else {
@@ -568,6 +590,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -568,6 +590,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
568 Map<String, Object> processInstanceVariables = new HashMap<>(); 590 Map<String, Object> processInstanceVariables = new HashMap<>();
569 processInstanceVariables.put(BPM_COMMON_PROD_ROADID, workOrder.getRoadId()); 591 processInstanceVariables.put(BPM_COMMON_PROD_ROADID, workOrder.getRoadId());
570 processInstanceVariables.put(BPM_COMMON_PROD_APPLYUSERID, userId); 592 processInstanceVariables.put(BPM_COMMON_PROD_APPLYUSERID, userId);
  593 + processInstanceVariables.put(BPM_COMMON_PROD_ISNEED,null);
571 Map<String, List<Long>> startUserSelectAssignees = new HashMap<>(); 594 Map<String, List<Long>> startUserSelectAssignees = new HashMap<>();
572 List<AdminUserRespDTO> userList = workOrderExtMapper.getUserByRoadIdAndRoleCode(workOrder.getRoadId(),BpmCommonConstant.TEAM_LEADER_YL,createRequestVo.getBusiLine()); 595 List<AdminUserRespDTO> userList = workOrderExtMapper.getUserByRoadIdAndRoleCode(workOrder.getRoadId(),BpmCommonConstant.TEAM_LEADER_YL,createRequestVo.getBusiLine());
573 if(org.springframework.util.ObjectUtils.isEmpty(userList)){ 596 if(org.springframework.util.ObjectUtils.isEmpty(userList)){