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