From b86b34a3ba3a844207d3db527db8f9e9fa22033b Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 15 四月 2024 18:05:43 +0800
Subject: [PATCH] 工单处理:审核、运维情况

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java |    4 ++
 ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java                      |   32 ++++++++++++++++
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java         |    6 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java                     |    8 +++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java      |   28 +++++++++++---
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java     |   10 ++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java              |    5 ++
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java               |    7 +++
 8 files changed, 91 insertions(+), 9 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java b/ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java
new file mode 100644
index 0000000..3c7f3b2
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java
@@ -0,0 +1,32 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 閫氱煡鐘舵��
+ *
+ * @author锛歡onghl
+ * @date锛�2024/4/15 15:15
+ */
+@Getter
+public enum NotifyTypeEnum {
+
+    WORK_ORDER("WORK_ORDER", "宸ュ崟"),
+    CHECK("CHECK", "鑰冩牳"),
+    ;
+
+
+    @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+    private final String value;
+
+    private final String desc;
+
+    NotifyTypeEnum(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java
index 978f139..5a091d5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ycl.platform.base.AbsEntity;
+import enumeration.general.NotifyTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 
 /**
@@ -18,13 +21,15 @@
 @Accessors(chain = true)
 @TableName("t_notify")
 @ApiModel(value = "Notify瀵硅薄", description = "閫氱煡")
+@AllArgsConstructor
+@NoArgsConstructor
 public class Notify extends AbsEntity {
 
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("閫氱煡绫诲瀷")
     @TableField("notify_type")
-    private String notifyType;
+    private NotifyTypeEnum notifyType;
 
     @ApiModelProperty("閫氱煡鍐呭")
     @TableField("content")
@@ -45,6 +50,5 @@
     @ApiModelProperty("宸ュ崟ID")
     @TableField("work_order_id")
     private Integer workOrderId;
-
 
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
index 583e845..2d4f45b 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
@@ -34,5 +34,9 @@
     @TableField("yw_condition")
     private String ywCondition;
 
+    @ApiModelProperty("浣愯瘉鏉愭枡")
+    @TableField("yw_proofMaterials")
+    private String ywProofMaterials;
+
 
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java
index 7f834a8..0228b49 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java
@@ -1,5 +1,6 @@
 package com.ycl.platform.domain.form;
 
+import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 
 /**
@@ -14,12 +15,19 @@
     /**
      * 宸ュ崟ID
      */
-    private Integer id;
+    @NotBlank
+    private String id;
 
 
     /**
      * 杩愮淮鎯呭喌
      */
+    @NotBlank
     private String ywCondition;
 
+    /**
+     * 浣愯瘉鏉愭枡
+     */
+    private String ywProofMaterials;
+
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
index e01442a..ff01f75 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
@@ -41,5 +41,10 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date end;
 
+    /**
+     * 鏁呴殰绫诲瀷
+     */
+    private String errorType;
+
 }
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index cfb6d38..3ebb092 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -57,6 +57,12 @@
         return workOrderService.ywCondition(form);
     }
 
+    @GetMapping("/yw-condition/{id}")
+    @ApiOperation(value = "杩愮淮鎯呭喌", notes = "杩愮淮鎯呭喌")
+    public Result ywCondition(@PathVariable @Validated(Update.class) String id) {
+        return workOrderService.selectYwConditionByYwId(id);
+    }
+
     @PutMapping("/yw-result")
     @ApiOperation(value = "杩愮淮缁撴灉", notes = "杩愮淮缁撴灉")
     public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWResultForm form) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index deb6924..de315c3 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -106,4 +106,11 @@
      * @return
      */
     Result distributeFast(DistributeWorkOrderVO data);
+
+    /**
+     * 鑾峰彇宸ュ崟杩愮淮鎯呭喌
+     * @param id 宸ュ崟id
+     * @return 宸ュ崟杩愮淮鎯呭喌
+     */
+    Result selectYwConditionByYwId(String id);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index a183417..b9deaa2 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
 import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
 import com.ycl.platform.mapper.*;
+import com.ycl.platform.service.NotifyService;
 import com.ycl.platform.service.WorkOrderService;
 import com.ycl.system.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,7 +18,9 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.system.page.PageUtil;
 import com.ycl.utils.DateUtils;
+import com.ycl.utils.SecurityUtils;
 import enumeration.general.FastDistributeTypeEnum;
+import enumeration.general.NotifyTypeEnum;
 import enumeration.general.WorkOrderStatusEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
@@ -46,6 +49,7 @@
     private final YwPeopleMapper ywPeopleMapper;
     private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
     private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
+    private final NotifyService notifyService;
 
 
     /**
@@ -89,19 +93,19 @@
     @Transactional(rollbackFor = Exception.class)
     public Result auditing(WorkOrderAuditingForm form) {
         WorkOrder workOrder = baseMapper.selectById(form.getId());
-        if (Objects.isNull(workOrder)) {
-            throw new ServiceException("宸ュ崟涓嶅瓨鍦�");
-        }
         // 宸ュ崟鐘舵��
         workOrder.setStatus(form.getAuditingResult());
         baseMapper.updateById(workOrder);
         // 娣诲姞涓�鏉″鏍歌褰�
         WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
         workOrderAuditingRecord.setWorkOrderId(workOrder.getId());
-        workOrderAuditingRecord.setAuditingUser(1);
+        workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
         workOrderAuditingRecord.setResult(form.getAuditingResult().getDesc());
         workOrderAuditingRecord.setRemark(form.getAuditingRemark());
         workOrderAuditingRecordMapper.insert(workOrderAuditingRecord);
+        // 娣诲姞鏂伴�氱煡
+        Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId());
+        notifyService.save(notify);
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
@@ -118,10 +122,21 @@
         // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰�
         WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord();
         workOrderYwConditionRecord.setWorkOrderId(workOrder.getId());
-        workOrderYwConditionRecord.setCommitUser(1);
+        workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue());
         workOrderYwConditionRecord.setYwCondition(form.getYwCondition());
+        workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials());
         workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord);
         return Result.ok("鎿嶄綔鎴愬姛");
+    }
+
+    @Override
+    public Result selectYwConditionByYwId(String id) {
+        return Result.ok().data(
+                new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
+                        .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
+                        .orderByDesc(WorkOrderYwConditionRecord::getCreateTime)
+                        .last("limit 1")
+                        .one());
     }
 
     @Override
@@ -169,7 +184,8 @@
     public Result page(WorkOrderQuery query) {
         IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper)
                 .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo())
-                .ne(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
+                .in(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED, WorkOrderStatusEnum.YW_HANDLE)
+                .eq(StringUtils.hasText(query.getErrorType()), WorkOrder::getErrorType, query.getErrorType())
                 .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()),
                         WorkOrder::getYwHandleTime,
                         DateUtils.getDayStart(query.getStart()),

--
Gitblit v1.8.0