Commit 0c1277f16f3f155c8389c4ce8ea92fbcc7505696

Authored by wangqian
2 parents 06f4dc16 6cd70385

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

Showing 14 changed files with 83 additions and 26 deletions
urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java
@@ -34,7 +34,10 @@ public class AppGardenWorkOrderReqVO { @@ -34,7 +34,10 @@ public class AppGardenWorkOrderReqVO {
34 private String roadName; 34 private String roadName;
35 35
36 @Schema(description = "问题图片", example = "9184") 36 @Schema(description = "问题图片", example = "9184")
37 - private List<String> imgs; 37 + private List<String> problemsImgs;
  38 +
  39 + @Schema(description = "实施结束的拍照图片")
  40 + private List<String> endImgs;
38 41
39 @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") 42 @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
40 @NotEmpty(message = "工单描述不能为空") 43 @NotEmpty(message = "工单描述不能为空")
@@ -79,6 +82,9 @@ public class AppGardenWorkOrderReqVO { @@ -79,6 +82,9 @@ public class AppGardenWorkOrderReqVO {
79 @Schema(description = "三方工单ID") 82 @Schema(description = "三方工单ID")
80 private String thirdWorkNo; 83 private String thirdWorkNo;
81 84
  85 + @Schema(description = "希望完成时间")
  86 + private LocalDateTime expectedFinishDate;
  87 +
82 @Schema(description = "完成时间") 88 @Schema(description = "完成时间")
83 private LocalDateTime finishDate; 89 private LocalDateTime finishDate;
84 90
urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/MainInfoRespVO.java
@@ -72,6 +72,10 @@ public class MainInfoRespVO { @@ -72,6 +72,10 @@ public class MainInfoRespVO {
72 @ExcelProperty("提交日期") 72 @ExcelProperty("提交日期")
73 private LocalDateTime commitDate; 73 private LocalDateTime commitDate;
74 74
  75 + @Schema(description = "希望完成时间", requiredMode = Schema.RequiredMode.REQUIRED)
  76 + @ExcelProperty("希望完成时间")
  77 + private LocalDateTime expectedFinishDate;
  78 +
75 @Schema(description = "完成时间", requiredMode = Schema.RequiredMode.REQUIRED) 79 @Schema(description = "完成时间", requiredMode = Schema.RequiredMode.REQUIRED)
76 @ExcelProperty("完成时间") 80 @ExcelProperty("完成时间")
77 private LocalDateTime finishDate; 81 private LocalDateTime finishDate;
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/convert/AppGardenWorkOrderConvert.java
@@ -19,7 +19,7 @@ public interface AppGardenWorkOrderConvert { @@ -19,7 +19,7 @@ public interface AppGardenWorkOrderConvert {
19 AppGardenWorkOrderReqVO orderReqVO = new AppGardenWorkOrderReqVO(); 19 AppGardenWorkOrderReqVO orderReqVO = new AppGardenWorkOrderReqVO();
20 orderReqVO.setRoadId(inspectionPlanDO.getRoadId()); 20 orderReqVO.setRoadId(inspectionPlanDO.getRoadId());
21 orderReqVO.setRoadName(inspectionPlanDO.getRoadName()); 21 orderReqVO.setRoadName(inspectionPlanDO.getRoadName());
22 - orderReqVO.setImgs(createReqVO.getImgList()); 22 + orderReqVO.setProblemsImgs(createReqVO.getImgList());
23 orderReqVO.setRemark(createReqVO.getRemark()); 23 orderReqVO.setRemark(createReqVO.getRemark());
24 orderReqVO.setPressingType(2);//紧急 24 orderReqVO.setPressingType(2);//紧急
25 orderReqVO.setOrderName(inspectionPlanDO.getPlanName()); 25 orderReqVO.setOrderName(inspectionPlanDO.getPlanName());
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/workorder/WorkOrderApiImpl.java
@@ -77,6 +77,10 @@ public class WorkOrderApiImpl implements WorkOrderApi { @@ -77,6 +77,10 @@ public class WorkOrderApiImpl implements WorkOrderApi {
77 77
78 @Override 78 @Override
79 public AppGardenWorkOrderRespVO createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) { 79 public AppGardenWorkOrderRespVO createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) {
  80 + if(createRequestVo.getOrderType().equals(BpmCommonConstant.ORDER_TYPE_Q)){
  81 + BpmGardenWorkOrderDO targetVO = gardenService.getWorkOrder(gardenService.createWorkOrderQuick(createRequestVo));
  82 + return BeanUtils.toBean(targetVO,AppGardenWorkOrderRespVO.class);
  83 + }
80 BpmGardenWorkOrderDO targetVO = gardenService.getWorkOrder(gardenService.createWorkOrder(createRequestVo)); 84 BpmGardenWorkOrderDO targetVO = gardenService.getWorkOrder(gardenService.createWorkOrder(createRequestVo));
81 return BeanUtils.toBean(targetVO,AppGardenWorkOrderRespVO.class); 85 return BeanUtils.toBean(targetVO,AppGardenWorkOrderRespVO.class);
82 } 86 }
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java
@@ -53,6 +53,10 @@ public class MainInfoPageReqVO extends PageParam { @@ -53,6 +53,10 @@ public class MainInfoPageReqVO extends PageParam {
53 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 53 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
54 private LocalDateTime[] commitDate; 54 private LocalDateTime[] commitDate;
55 55
  56 + @Schema(description = "希望完成时间")
  57 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  58 + private LocalDateTime[] expectedFinishDate;
  59 +
56 @Schema(description = "完成时间") 60 @Schema(description = "完成时间")
57 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 61 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
58 private LocalDateTime[] finishDate; 62 private LocalDateTime[] finishDate;
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java
@@ -31,6 +31,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; @@ -31,6 +31,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
31 import jakarta.annotation.Resource; 31 import jakarta.annotation.Resource;
32 import jakarta.validation.Valid; 32 import jakarta.validation.Valid;
33 import lombok.extern.slf4j.Slf4j; 33 import lombok.extern.slf4j.Slf4j;
  34 +import org.springframework.transaction.annotation.Transactional;
34 import org.springframework.web.bind.annotation.*; 35 import org.springframework.web.bind.annotation.*;
35 36
36 import java.util.List; 37 import java.util.List;
@@ -250,6 +251,7 @@ public class AppGardenWorkOrderController { @@ -250,6 +251,7 @@ public class AppGardenWorkOrderController {
250 @Operation(summary = "app-统一审批入口") 251 @Operation(summary = "app-统一审批入口")
251 @PostMapping("/universalApproval") 252 @PostMapping("/universalApproval")
252 @AutoUpdateWorkerOrderBuzStatus 253 @AutoUpdateWorkerOrderBuzStatus
  254 + @Transactional(rollbackFor = Exception.class)
253 //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") 255 //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')")
254 public CommonResult<Boolean> universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { 256 public CommonResult<Boolean> universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) {
255 257
@@ -271,7 +273,7 @@ public class AppGardenWorkOrderController { @@ -271,7 +273,7 @@ public class AppGardenWorkOrderController {
271 log.info("当前操作:"+OperateTypeEnum.YL_WORKER_RETURN.getDesc()+"<--结束"); 273 log.info("当前操作:"+OperateTypeEnum.YL_WORKER_RETURN.getDesc()+"<--结束");
272 return success(true); 274 return success(true);
273 case YL_WORKER_IMPLEMENT://养护员实施 需修改更新工单数据 见切面 275 case YL_WORKER_IMPLEMENT://养护员实施 需修改更新工单数据 见切面
274 - log.info("当前操作:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 276 + log.info("当前操作:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getCode()+"-->");
275 AppGardenTaskWorkerExcuteReqVO workerExcuteReqVO = new AppGardenTaskWorkerExcuteReqVO(); 277 AppGardenTaskWorkerExcuteReqVO workerExcuteReqVO = new AppGardenTaskWorkerExcuteReqVO();
276 workerExcuteReqVO.setWorkerDataId(reqVO.getWorkerDataId()); 278 workerExcuteReqVO.setWorkerDataId(reqVO.getWorkerDataId());
277 workerExcuteReqVO.setId(reqVO.getTaskId()); 279 workerExcuteReqVO.setId(reqVO.getTaskId());
@@ -287,7 +289,7 @@ public class AppGardenWorkOrderController { @@ -287,7 +289,7 @@ public class AppGardenWorkOrderController {
287 log.info("当前操作:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getDesc()+"<--结束"); 289 log.info("当前操作:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getDesc()+"<--结束");
288 return success(true); 290 return success(true);
289 case YL_TEAM_LEADER_CONFIRM_PASS://养护组长验收通过 291 case YL_TEAM_LEADER_CONFIRM_PASS://养护组长验收通过
290 - log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 292 + log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getCode()+"-->");
291 AppGardenTaskApproveReqVO approveReqVO = new AppGardenTaskApproveReqVO(); 293 AppGardenTaskApproveReqVO approveReqVO = new AppGardenTaskApproveReqVO();
292 approveReqVO.setReason(reqVO.getReason()); 294 approveReqVO.setReason(reqVO.getReason());
293 approveReqVO.setId(reqVO.getTaskId()); 295 approveReqVO.setId(reqVO.getTaskId());
@@ -295,7 +297,7 @@ public class AppGardenWorkOrderController { @@ -295,7 +297,7 @@ public class AppGardenWorkOrderController {
295 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getDesc()+"<--结束"); 297 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getDesc()+"<--结束");
296 return success(true); 298 return success(true);
297 case YL_TEAM_LEADER_CONFIRM_REJECT://养护组长验收不通过 需修改更新工单数据 见切面 299 case YL_TEAM_LEADER_CONFIRM_REJECT://养护组长验收不通过 需修改更新工单数据 见切面
298 - log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 300 + log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getCode()+"-->");
299 AppGardenTaskReturnExtReqVO rejReqVO = new AppGardenTaskReturnExtReqVO(); 301 AppGardenTaskReturnExtReqVO rejReqVO = new AppGardenTaskReturnExtReqVO();
300 rejReqVO.setId(reqVO.getTaskId()); 302 rejReqVO.setId(reqVO.getTaskId());
301 rejReqVO.setCurTaskKey(reqVO.getTaskKey()); 303 rejReqVO.setCurTaskKey(reqVO.getTaskKey());
@@ -305,7 +307,7 @@ public class AppGardenWorkOrderController { @@ -305,7 +307,7 @@ public class AppGardenWorkOrderController {
305 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"<--结束"); 307 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"<--结束");
306 return success(true); 308 return success(true);
307 case YL_TEAM_LEADER_ASSIGN: //养护组长分配 需修改更新工单数据 见切面 309 case YL_TEAM_LEADER_ASSIGN: //养护组长分配 需修改更新工单数据 见切面
308 - log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 310 + log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getCode()+"-->");
309 AppGardenTaskTeamLeaderAssignReqVO assignReqVO = new AppGardenTaskTeamLeaderAssignReqVO(); 311 AppGardenTaskTeamLeaderAssignReqVO assignReqVO = new AppGardenTaskTeamLeaderAssignReqVO();
310 assignReqVO.setId(reqVO.getTaskId()); 312 assignReqVO.setId(reqVO.getTaskId());
311 assignReqVO.setReason(reqVO.getReason()); 313 assignReqVO.setReason(reqVO.getReason());
@@ -324,7 +326,7 @@ public class AppGardenWorkOrderController { @@ -324,7 +326,7 @@ public class AppGardenWorkOrderController {
324 return success(true); 326 return success(true);
325 327
326 case YL_TEAM_LEADER_RETURN://养护组长退回 328 case YL_TEAM_LEADER_RETURN://养护组长退回
327 - log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_RETURN.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 329 + log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_RETURN.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_TEAM_LEADER_RETURN.getCode()+"-->");
328 AppGardenTaskApproveReqVO returnApproveReqVO = new AppGardenTaskApproveReqVO(); 330 AppGardenTaskApproveReqVO returnApproveReqVO = new AppGardenTaskApproveReqVO();
329 Integer approveStatus = reqVO.getAgree(); 331 Integer approveStatus = reqVO.getAgree();
330 if (approveStatus == null || (approveStatus != 0 && approveStatus != 1)) { 332 if (approveStatus == null || (approveStatus != 0 && approveStatus != 1)) {
@@ -350,7 +352,7 @@ public class AppGardenWorkOrderController { @@ -350,7 +352,7 @@ public class AppGardenWorkOrderController {
350 log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_FINISH.getDesc()+"<--结束"); 352 log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_FINISH.getDesc()+"<--结束");
351 return success(true); 353 return success(true);
352 case YL_INSPECTOR_START_RELAUNCH : //巡查员重新发起 需修改更新工单数据 见切面 354 case YL_INSPECTOR_START_RELAUNCH : //巡查员重新发起 需修改更新工单数据 见切面
353 - log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); 355 + log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getCode()+"-->");
354 AppGardenTaskApproveReqVO reStartReqVO = new AppGardenTaskApproveReqVO(); 356 AppGardenTaskApproveReqVO reStartReqVO = new AppGardenTaskApproveReqVO();
355 Integer reStatus = reqVO.getAgree(); 357 Integer reStatus = reqVO.getAgree();
356 if (reStatus == null || (reStatus != 0 && reStatus != 1)) { 358 if (reStatus == null || (reStatus != 0 && reStatus != 1)) {
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java
@@ -95,7 +95,8 @@ public class BuzStatusUpdateAspect { @@ -95,7 +95,8 @@ public class BuzStatusUpdateAspect {
95 //重新发起需更新表单数据 95 //重新发起需更新表单数据
96 if(OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getCode().equals(operateType.getCode())){ 96 if(OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getCode().equals(operateType.getCode())){
97 RoadStreetRespDTO roadStreetRespDTO = roadApi.getRoadInfoById(reqVO.getRoadId()); 97 RoadStreetRespDTO roadStreetRespDTO = roadApi.getRoadInfoById(reqVO.getRoadId());
98 - 98 + targeVO = BeanUtils.toBean(reqVO,MainInfoDO.class);
  99 + targeVO.setId(reqVO.getWorkerDataId());
99 targeVO.setStreetId(roadStreetRespDTO.getStreetId()); 100 targeVO.setStreetId(roadStreetRespDTO.getStreetId());
100 targeVO.setStreetName(roadStreetRespDTO.getStreetName()); 101 targeVO.setStreetName(roadStreetRespDTO.getStreetName());
101 DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString()); 102 DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString());
@@ -110,7 +111,7 @@ public class BuzStatusUpdateAspect { @@ -110,7 +111,7 @@ public class BuzStatusUpdateAspect {
110 targeVO.setUserId(SecurityFrameworkUtils.getLoginUserId()); 111 targeVO.setUserId(SecurityFrameworkUtils.getLoginUserId());
111 targeVO.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); 112 targeVO.setUserName(SecurityFrameworkUtils.getLoginUserNickname());
112 targeVO.setFinishDate(reqVO.getFinishDate()); 113 targeVO.setFinishDate(reqVO.getFinishDate());
113 - List<String> problemsImgs = reqVO.getProblemsImgs(); 114 + List<String> problemsImgs = reqVO.getImgs();
114 if(ObjectUtils.isNotAllEmpty(problemsImgs) && problemsImgs.size()>0){ 115 if(ObjectUtils.isNotAllEmpty(problemsImgs) && problemsImgs.size()>0){
115 gardenService.attachmentInsertOrUpdate(problemsImgs,BpmCommonConstant.PROBLEM_IMG_GROUP,targeVO); 116 gardenService.attachmentInsertOrUpdate(problemsImgs,BpmCommonConstant.PROBLEM_IMG_GROUP,targeVO);
116 } 117 }
@@ -121,6 +122,7 @@ public class BuzStatusUpdateAspect { @@ -121,6 +122,7 @@ public class BuzStatusUpdateAspect {
121 } 122 }
122 //养护组长验收不通过 需更新表单数据 123 //养护组长验收不通过 需更新表单数据
123 if(OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getCode().equals(operateType.getCode())){ 124 if(OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getCode().equals(operateType.getCode())){
  125 +
124 List<String> returnImgs = reqVO.getReturnImgs(); 126 List<String> returnImgs = reqVO.getReturnImgs();
125 if(ObjectUtils.isNotAllEmpty(returnImgs) && returnImgs.size()>0){ 127 if(ObjectUtils.isNotAllEmpty(returnImgs) && returnImgs.size()>0){
126 gardenService.attachmentInsertOrUpdate(returnImgs,BpmCommonConstant.GARDEN_TEAMLEADER_RETURN_IMG,targeVO); 128 gardenService.attachmentInsertOrUpdate(returnImgs,BpmCommonConstant.GARDEN_TEAMLEADER_RETURN_IMG,targeVO);
@@ -128,6 +130,8 @@ public class BuzStatusUpdateAspect { @@ -128,6 +130,8 @@ public class BuzStatusUpdateAspect {
128 } 130 }
129 //养护员实施 需更新表单数据 131 //养护员实施 需更新表单数据
130 if(OperateTypeEnum.YL_WORKER_IMPLEMENT.getCode().equals(operateType.getCode())){ 132 if(OperateTypeEnum.YL_WORKER_IMPLEMENT.getCode().equals(operateType.getCode())){
  133 + //实施更新为实施人员部门
  134 + targeVO.setDeptId(SecurityFrameworkUtils.getDeptId());
131 //实施 审批已经执行 此处就无需执行 135 //实施 审批已经执行 此处就无需执行
132 /* 136 /*
133 List<String> problemsImgs = reqVO.getProblemsImgs(); 137 List<String> problemsImgs = reqVO.getProblemsImgs();
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java
@@ -69,6 +69,9 @@ public class AppUniversalApprovalReqVO { @@ -69,6 +69,9 @@ public class AppUniversalApprovalReqVO {
69 //@NotEmpty(message = "处理意见不能为空", groups = RelaunchGroup.class) 69 //@NotEmpty(message = "处理意见不能为空", groups = RelaunchGroup.class)
70 private String handleResult; 70 private String handleResult;
71 71
  72 + @Schema(description = "开始的问题拍照图片")
  73 + private List<String> problemsImgs;
  74 +
72 @Schema(description = "实施开始的拍照图片") 75 @Schema(description = "实施开始的拍照图片")
73 private List<String> startImgs; 76 private List<String> startImgs;
74 77
@@ -93,7 +96,7 @@ public class AppUniversalApprovalReqVO { @@ -93,7 +96,7 @@ public class AppUniversalApprovalReqVO {
93 private String roadName; 96 private String roadName;
94 97
95 @Schema(description = "开始的问题拍照图片") 98 @Schema(description = "开始的问题拍照图片")
96 - private List<String> problemsImgs; 99 + private List<String> imgs;
97 100
98 @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") 101 @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
99 @NotEmpty(message = "工单描述不能为空", groups = RelaunchGroup.class) 102 @NotEmpty(message = "工单描述不能为空", groups = RelaunchGroup.class)
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoDO.java
@@ -91,6 +91,11 @@ public class MainInfoDO extends BaseDO { @@ -91,6 +91,11 @@ public class MainInfoDO extends BaseDO {
91 private LocalDateTime commitDate; 91 private LocalDateTime commitDate;
92 92
93 /** 93 /**
  94 + * 希望完成时间
  95 + */
  96 + private LocalDateTime expectedFinishDate;
  97 +
  98 + /**
94 * 完成时间 99 * 完成时间
95 */ 100 */
96 private LocalDateTime finishDate; 101 private LocalDateTime finishDate;
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/maininfo/MainInfoExtDO.java
@@ -83,7 +83,10 @@ public class MainInfoExtDO extends BaseDO { @@ -83,7 +83,10 @@ public class MainInfoExtDO extends BaseDO {
83 * 提交日期 83 * 提交日期
84 */ 84 */
85 private LocalDateTime commitDate; 85 private LocalDateTime commitDate;
86 - 86 + /**
  87 + * 希望完成时间
  88 + */
  89 + private LocalDateTime expectedFinishDate;
87 /** 90 /**
88 * 完成时间 91 * 完成时间
89 */ 92 */
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoExtMapper.java
@@ -114,6 +114,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -114,6 +114,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
114 @Result(column = "curing_level_id", property = "curingLevelId"), 114 @Result(column = "curing_level_id", property = "curingLevelId"),
115 @Result(column = "curing_level_name", property = "curingLevelName"), 115 @Result(column = "curing_level_name", property = "curingLevelName"),
116 @Result(column = "commit_date", property = "commitDate"), 116 @Result(column = "commit_date", property = "commitDate"),
  117 + @Result(column = "expected_finish_date", property = "expectedFinishDate"),
117 @Result(column = "finish_date", property = "finishDate"), 118 @Result(column = "finish_date", property = "finishDate"),
118 @Result(column = "pressing_type", property = "pressingType"), 119 @Result(column = "pressing_type", property = "pressingType"),
119 @Result(column = "user_id", property = "userId"), 120 @Result(column = "user_id", property = "userId"),
@@ -227,6 +228,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -227,6 +228,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
227 @Result(column = "curing_level_id", property = "curingLevelId"), 228 @Result(column = "curing_level_id", property = "curingLevelId"),
228 @Result(column = "curing_level_name", property = "curingLevelName"), 229 @Result(column = "curing_level_name", property = "curingLevelName"),
229 @Result(column = "commit_date", property = "commitDate"), 230 @Result(column = "commit_date", property = "commitDate"),
  231 + @Result(column = "expected_finish_date", property = "expectedFinishDate"),
230 @Result(column = "finish_date", property = "finishDate"), 232 @Result(column = "finish_date", property = "finishDate"),
231 @Result(column = "pressing_type", property = "pressingType"), 233 @Result(column = "pressing_type", property = "pressingType"),
232 @Result(column = "user_id", property = "userId"), 234 @Result(column = "user_id", property = "userId"),
@@ -334,6 +336,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -334,6 +336,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
334 @Result(column = "curing_level_id", property = "curingLevelId"), 336 @Result(column = "curing_level_id", property = "curingLevelId"),
335 @Result(column = "curing_level_name", property = "curingLevelName"), 337 @Result(column = "curing_level_name", property = "curingLevelName"),
336 @Result(column = "commit_date", property = "commitDate"), 338 @Result(column = "commit_date", property = "commitDate"),
  339 + @Result(column = "expected_finish_date", property = "expectedFinishDate"),
337 @Result(column = "finish_date", property = "finishDate"), 340 @Result(column = "finish_date", property = "finishDate"),
338 @Result(column = "pressing_type", property = "pressingType"), 341 @Result(column = "pressing_type", property = "pressingType"),
339 @Result(column = "user_id", property = "userId"), 342 @Result(column = "user_id", property = "userId"),
@@ -452,6 +455,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -452,6 +455,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
452 @Result(column = "curing_level_id", property = "curingLevelId"), 455 @Result(column = "curing_level_id", property = "curingLevelId"),
453 @Result(column = "curing_level_name", property = "curingLevelName"), 456 @Result(column = "curing_level_name", property = "curingLevelName"),
454 @Result(column = "commit_date", property = "commitDate"), 457 @Result(column = "commit_date", property = "commitDate"),
  458 + @Result(column = "expected_finish_date", property = "expectedFinishDate"),
455 @Result(column = "finish_date", property = "finishDate"), 459 @Result(column = "finish_date", property = "finishDate"),
456 @Result(column = "pressing_type", property = "pressingType"), 460 @Result(column = "pressing_type", property = "pressingType"),
457 @Result(column = "user_id", property = "userId"), 461 @Result(column = "user_id", property = "userId"),
@@ -560,6 +564,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -560,6 +564,7 @@ public interface MainInfoExtMapper extends BaseMapperX&lt;MainInfoDO&gt; {
560 @Result(column = "curing_level_id", property = "curingLevelId"), 564 @Result(column = "curing_level_id", property = "curingLevelId"),
561 @Result(column = "curing_level_name", property = "curingLevelName"), 565 @Result(column = "curing_level_name", property = "curingLevelName"),
562 @Result(column = "commit_date", property = "commitDate"), 566 @Result(column = "commit_date", property = "commitDate"),
  567 + @Result(column = "expected_finish_date", property = "expectedFinishDate"),
563 @Result(column = "finish_date", property = "finishDate"), 568 @Result(column = "finish_date", property = "finishDate"),
564 @Result(column = "pressing_type", property = "pressingType"), 569 @Result(column = "pressing_type", property = "pressingType"),
565 @Result(column = "user_id", property = "userId"), 570 @Result(column = "user_id", property = "userId"),
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java
@@ -44,8 +44,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -44,8 +44,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; {
44 44
45 .eqIfPresent(MainInfoDO::getRootCauseBy, reqVO.getRootCauseBy()) 45 .eqIfPresent(MainInfoDO::getRootCauseBy, reqVO.getRootCauseBy())
46 .eqIfPresent(MainInfoDO::getOrderType, reqVO.getOrderType()) 46 .eqIfPresent(MainInfoDO::getOrderType, reqVO.getOrderType())
47 - .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerName())  
48 - .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getOrderType()) 47 + .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerCompanyId())
  48 + .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getWorkerId())
49 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName()) 49 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName())
50 50
51 .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId()) 51 .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId())
@@ -56,6 +56,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -56,6 +56,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; {
56 .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName()) 56 .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName())
57 .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId()) 57 .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId())
58 .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName()) 58 .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName())
  59 +
  60 + .betweenIfPresent(MainInfoDO::getExpectedFinishDate, reqVO.getExpectedFinishDate())
59 .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate()) 61 .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate())
60 .betweenIfPresent(MainInfoDO::getFinishDate, reqVO.getFinishDate()) 62 .betweenIfPresent(MainInfoDO::getFinishDate, reqVO.getFinishDate())
61 .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType()) 63 .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType())
@@ -86,8 +88,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -86,8 +88,8 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; {
86 88
87 .eqIfPresent(MainInfoDO::getRootCauseBy, reqVO.getRootCauseBy()) 89 .eqIfPresent(MainInfoDO::getRootCauseBy, reqVO.getRootCauseBy())
88 .eqIfPresent(MainInfoDO::getOrderType, reqVO.getOrderType()) 90 .eqIfPresent(MainInfoDO::getOrderType, reqVO.getOrderType())
89 - .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerName())  
90 - .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getOrderType()) 91 + .eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerCompanyId())
  92 + .eqIfPresent(MainInfoDO::getWorkerId, reqVO.getWorkerId())
91 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName()) 93 .likeIfPresent(MainInfoDO::getWorkerName, reqVO.getWorkerName())
92 .eqIfPresent(MainInfoDO::getWoSourceId, reqVO.getWoSourceId()) 94 .eqIfPresent(MainInfoDO::getWoSourceId, reqVO.getWoSourceId())
93 95
@@ -99,6 +101,7 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; { @@ -99,6 +101,7 @@ public interface MainInfoMapper extends BaseMapperX&lt;MainInfoDO&gt; {
99 .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName()) 101 .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName())
100 .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId()) 102 .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId())
101 .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName()) 103 .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName())
  104 + .betweenIfPresent(MainInfoDO::getExpectedFinishDate, reqVO.getExpectedFinishDate())
102 .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate()) 105 .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate())
103 .betweenIfPresent(MainInfoDO::getFinishDate, reqVO.getFinishDate()) 106 .betweenIfPresent(MainInfoDO::getFinishDate, reqVO.getFinishDate())
104 .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType()) 107 .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType())
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java
@@ -29,5 +29,7 @@ public interface ErrorCodeConstants { @@ -29,5 +29,7 @@ public interface ErrorCodeConstants {
29 29
30 ErrorCode APP_WORKER_LEVEL_ID_NOT_EXISTS = new ErrorCode(1-900-002-000, "养护级别编码错误,不存在!"); 30 ErrorCode APP_WORKER_LEVEL_ID_NOT_EXISTS = new ErrorCode(1-900-002-000, "养护级别编码错误,不存在!");
31 31
32 - ErrorCode APP_USER_ROLE_NOT_EXISTS= new ErrorCode(1-900-002-001, "该人员未分配角色 !"); 32 + ErrorCode APP_USER_ROLE_NOT_EXISTS = new ErrorCode(1-900-002-001, "该人员未分配角色 !");
  33 +
  34 + ErrorCode APP_WORK_ORADER_ERROR = new ErrorCode(1-900-002-002, "工单类型错误,快速工单无法走此流程 !");
33 } 35 }
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java
@@ -129,7 +129,8 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -129,7 +129,8 @@ public class BpmGardenServiceImpl implements BpmGardenService{
129 @Transactional(rollbackFor = Exception.class) 129 @Transactional(rollbackFor = Exception.class)
130 public Long createWorkOrderQuick(AppGardenWorkOrderReqVO createRequestVo) { 130 public Long createWorkOrderQuick(AppGardenWorkOrderReqVO createRequestVo) {
131 131
132 - List<String> imgList = createRequestVo.getImgs(); 132 + List<String> problemsImgsList = createRequestVo.getProblemsImgs();//问题照片
  133 + List<String> endImgsList = createRequestVo.getEndImgs();//实施完成照片
133 134
134 MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) 135 MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class)
135 .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); 136 .setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
@@ -164,14 +165,20 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -164,14 +165,20 @@ public class BpmGardenServiceImpl implements BpmGardenService{
164 workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); 165 workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname());
165 LocalDateTime now = LocalDateTime.now(); 166 LocalDateTime now = LocalDateTime.now();
166 workOrder.setCommitDate(now); 167 workOrder.setCommitDate(now);
167 - workOrder.setFinishDate(now); 168 + if(ObjectUtils.isNotAllEmpty(createRequestVo.getExpectedFinishDate())){
  169 + workOrder.setExpectedFinishDate(createRequestVo.getExpectedFinishDate());
  170 + }
168 String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_QUICK); 171 String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_QUICK);
169 workOrder.setOrderNo(workOrderNum); 172 workOrder.setOrderNo(workOrderNum);
170 workOrderMapper.insert(workOrder); 173 workOrderMapper.insert(workOrder);
171 174
172 - if(ObjectUtils.isNotAllEmpty(imgList) && imgList.size()>0){  
173 - attachmentInsertOrUpdate(imgList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder); 175 + if(ObjectUtils.isNotAllEmpty(problemsImgsList) && problemsImgsList.size()>0){
  176 + attachmentInsertOrUpdate(problemsImgsList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder);
  177 + }
  178 + if(ObjectUtils.isNotAllEmpty(endImgsList) && endImgsList.size()>0){
  179 + attachmentInsertOrUpdate(endImgsList,BpmCommonConstant.END_IMG_GROUP,workOrder);
174 } 180 }
  181 +
175 // 发起 BPM 流程 182 // 发起 BPM 流程
176 Map<String, Object> processInstanceVariables = new HashMap<>(); 183 Map<String, Object> processInstanceVariables = new HashMap<>();
177 processInstanceVariables.put(COMMON_QUICK_PROCESS_INITIATOR, SecurityFrameworkUtils.getLoginUserId()); 184 processInstanceVariables.put(COMMON_QUICK_PROCESS_INITIATOR, SecurityFrameworkUtils.getLoginUserId());
@@ -544,7 +551,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -544,7 +551,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{
544 @Override 551 @Override
545 @Transactional(rollbackFor = Exception.class) 552 @Transactional(rollbackFor = Exception.class)
546 public Long createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) { 553 public Long createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) {
547 - List<String> imgList = createRequestVo.getImgs(); 554 + List<String> problemsImgsList = createRequestVo.getProblemsImgs();
548 555
549 MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) 556 MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class)
550 .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); 557 .setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
@@ -554,8 +561,11 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -554,8 +561,11 @@ public class BpmGardenServiceImpl implements BpmGardenService{
554 workOrder.setStreetName(roadStreetRespDTO.getStreetName()); 561 workOrder.setStreetName(roadStreetRespDTO.getStreetName());
555 workOrder.setBuzStatus(ORDER_STATUS_INIT);//工单业务初始化状态 后续操作状态 见 OperateTypeEnum 562 workOrder.setBuzStatus(ORDER_STATUS_INIT);//工单业务初始化状态 后续操作状态 见 OperateTypeEnum
556 if(StringUtil.isEmpty(createRequestVo.getOrderType())){ 563 if(StringUtil.isEmpty(createRequestVo.getOrderType())){
557 - workOrder.setOrderType(BpmCommonConstant.ORDER_TYPE_Q); 564 + workOrder.setOrderType(BpmCommonConstant.ORDER_TYPE_C);
558 }else{ 565 }else{
  566 + if(createRequestVo.getOrderType().equals(BpmCommonConstant.ORDER_TYPE_Q)){
  567 + throw exception(APP_WORK_ORADER_ERROR);
  568 + }
559 workOrder.setOrderType(createRequestVo.getOrderType()); 569 workOrder.setOrderType(createRequestVo.getOrderType());
560 } 570 }
561 DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString()); 571 DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString());
@@ -582,12 +592,14 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @@ -582,12 +592,14 @@ public class BpmGardenServiceImpl implements BpmGardenService{
582 } 592 }
583 workOrder.setUserId(SecurityFrameworkUtils.getLoginUserId()); 593 workOrder.setUserId(SecurityFrameworkUtils.getLoginUserId());
584 workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); 594 workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname());
585 - //workOrder.setFinishDate(LocalDateTime.now()); 595 + if(ObjectUtils.isNotAllEmpty(createRequestVo.getExpectedFinishDate())){
  596 + workOrder.setExpectedFinishDate(createRequestVo.getExpectedFinishDate());
  597 + }
586 String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN); 598 String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN);
587 workOrder.setOrderNo(workOrderNum); 599 workOrder.setOrderNo(workOrderNum);
588 workOrderMapper.insert(workOrder); 600 workOrderMapper.insert(workOrder);
589 - if(ObjectUtils.isNotAllEmpty(imgList) && imgList.size()>0){  
590 - attachmentInsertOrUpdate(imgList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder); 601 + if(ObjectUtils.isNotAllEmpty(problemsImgsList) && problemsImgsList.size()>0){
  602 + attachmentInsertOrUpdate(problemsImgsList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder);
591 } 603 }
592 // 发起 BPM 流程 604 // 发起 BPM 流程
593 Long userId = SecurityFrameworkUtils.getLoginUserId(); 605 Long userId = SecurityFrameworkUtils.getLoginUserId();