From 3de17c8b85f91b55175b631b0b8bdc837b24e993 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 11 十一月 2024 11:34:14 +0800 Subject: [PATCH] 工单处理结果审核接口 --- pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java | 58 +++++++++++++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java | 47 +++++++++------ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java | 22 +++++++ 4 files changed, 111 insertions(+), 20 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java index adef976..fcad735 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java @@ -6,8 +6,8 @@ /** * @author ZhuBaoMin - * @date 2024-11-06 11:49 - * @LastEditTime 2024-11-06 11:49 + * @date 2024-11-11 9:32 + * @LastEditTime 2024-11-11 9:32 * @Description */ diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java index 22e2ff0..23d5d43 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java @@ -7,65 +7,76 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.dy.common.po.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; import lombok.*; import java.util.Date; /** * @author ZhuBaoMin - * @date 2024-11-06 11:49 - * @LastEditTime 2024-11-06 11:49 + * @date 2024-11-11 9:32 + * @LastEditTime 2024-11-11 9:32 * @Description 澶勭悊缁撴灉瀹℃牳瀹炰綋绫� */ -@TableName(value="ope_approve_result", autoResultMap = true) +@TableName(value = "ope_approve_result", autoResultMap = true) @Data @Builder @ToString @NoArgsConstructor @AllArgsConstructor public class OpeApproveResult implements BaseEntity { - public static final long serialVersionUID = 202411061152001L; + public static final long serialVersionUID = 202411110935001L; /** - * 涓婚敭 - */ + * 涓婚敭 + */ @JSONField(serializeUsing= ObjectWriterImplToString.class) @TableId(type = IdType.INPUT) private Long id; /** - * 宸ュ崟ID - */ + * 宸ュ崟ID + */ @JSONField(serializeUsing= ObjectWriterImplToString.class) + @NotNull(message = "宸ュ崟ID涓嶈兘涓虹┖") private Long workOrderId; /** - * 澶勭悊缁撴灉ID - */ + * 澶勭悊缁撴灉ID + */ @JSONField(serializeUsing= ObjectWriterImplToString.class) + @NotNull(message = "澶勭悊缁撴灉涓嶈兘涓虹┖") private Long processingResultId; /** - * 瀹℃牳浜篒D - */ + * 瀹℃牳浜篒D + */ @JSONField(serializeUsing= ObjectWriterImplToString.class) + @NotNull(message = "瀹℃牳浜轰笉鑳戒负绌�") private Long approverId; /** - * 瀹℃牳鏃堕棿 - */ + * 瀹℃牳鏃堕棿 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approveTime; /** - * 瀹℃牳缁撴灉;1-閫氳繃锛�2-椹冲洖 - */ + * 瀹℃牳缁撴灉;1-閫氳繃锛�2-椹冲洖 + */ + @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖") + @Positive(message = "瀹℃牳缁撴灉鍊煎繀椤讳负姝f暟") + @Min(value = 1, message = "瀹℃牳缁撴灉鏈�灏忎负1") + @Max(value = 2, message = "瀹℃牳缁撴灉鏈�澶т负2") private Byte approveResult; /** - * 閫昏緫鍒犻櫎鏍囪瘑;鏈垹闄や负0锛屽凡鍒犻櫎涓哄垹闄ゆ椂闂� - */ + * 閫昏緫鍒犻櫎鏍囪瘑;鏈垹闄や负0锛屽凡鍒犻櫎涓哄垹闄ゆ椂闂� + */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private Long deleted; } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java index e365380..08c7db2 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java @@ -8,6 +8,7 @@ import com.dy.pipIrrApp.workOrder.dto.DtoDeleteProResult; import com.dy.pipIrrApp.workOrder.dto.DtoDeleteWorkOrder; import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder; +import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult; import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult; import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder; import com.dy.pipIrrGlobal.voOp.VoProcessingResult; @@ -244,4 +245,25 @@ return BaseResponseUtils.buildException(e.getMessage()); } } + + /** + * 瀹℃牳澶勭悊缁撴灉 + * @param po + * @param bindingResult + * @return + */ + @PostMapping(path = "approveProResult") + @Transactional(rollbackFor = Exception.class) + public BaseResponse<Boolean> approveProResult(@RequestBody @Valid OpeApproveResult po, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + String result = workOrderSv.approveProResult(po); + if(!result.equals("success")) { + return BaseResponseUtils.buildErrorMsg(result); + } + + return BaseResponseUtils.buildSuccess(true) ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java index 356820b..30d7b7f 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java @@ -2,8 +2,10 @@ import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder; +import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper; import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper; import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper; +import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult; import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult; import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder; import com.dy.pipIrrGlobal.voOp.VoProcessingResult; @@ -32,6 +34,9 @@ @Autowired private OpeProcessingResultMapper opeProcessingResultMapper; + + @Autowired + private OpeApproveResultMapper opeApproveResultMapper; /** * 娣诲姞宸ュ崟璁板綍 @@ -169,4 +174,57 @@ public VoProcessingResult getProResultById(Long proResultId) { return opeProcessingResultMapper.getProResultById(proResultId); } + + /** + * 瀹℃牳宸ュ崟澶勭悊缁撴灉 + * 1. 鍒ゆ柇鎸囧畾鐨勫伐鍗曞強澶勭悊缁撴灉鏄惁瀛樺湪涓旀湭瀹屾垚 + * 2. 娣诲姞瀹℃牳璁板綍 + * 3. 濡傛灉瀹℃牳閫氳繃 + * 澶勭悊缁撴灉鐘舵�佹敼涓哄凡閫氳繃 + * 宸ュ崟琛ュ厖浠诲姟瀹屾垚鏃堕棿 + * 宸ュ崟鐘舵�佹敼涓哄凡瀹屾垚 + * 4. 濡傛灉椹冲洖 + * 浠诲姟澶勭悊缁撴灉鏀逛负椹冲洖 + * 宸ュ崟椹冲洖娆℃暟鍔�1 + * @param po + * @return + */ + public String approveProResult(OpeApproveResult po) { + + OpeProcessingResult processingResult = opeProcessingResultMapper.selectByPrimaryKey(po.getProcessingResultId()); + if(processingResult == null || processingResult.getDeleted() != 0 || processingResult.getState() != 1) { + return "澶勭悊缁撴灉涓嶅瓨鍦ㄦ垨宸插畬鎴愬鏍�"; + } + + OpeWorkOrder workOrder = opeWorkOrderMapper.selectByPrimaryKey(po.getWorkOrderId()); + if(workOrder == null || workOrder.getDeleted() != 0 || workOrder.getState() == 2) { + return "宸ュ崟涓嶅瓨鍦ㄦ垨宸插畬鎴�"; + } + + po.setApproveTime(new Date()); + po.setDeleted(0L); + if(opeApproveResultMapper.insert(po) == 0) { + return "瀹℃牳璁板綍娣诲姞澶辫触"; + } + + if(po.getApproveResult() == 1) { + // 瀹℃牳閫氳繃 + processingResult.setState((byte)2); + opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult); + + workOrder.setCompleteTime(processingResult.getCompleteTime()); + workOrder.setState((byte)2); + opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder); + + } else { + // 椹冲洖 + processingResult.setState((byte)3); + opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult); + + workOrder.setRejectTimes(workOrder.getRejectTimes() + 1); + opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder); + } + + return "success"; + } } -- Gitblit v1.8.0