From 58c5c6e49c8b4d67cd9d1637beea4706f9b5ae83 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 22 八月 2024 16:52:18 +0800
Subject: [PATCH] feat:新增工单故障类型记录、支持多个

---
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml           |   85 +++++++++++++++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java           |   21 ++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |    8 +
 ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java                  |   39 +++++++
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java   |   72 ++++++++++++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java    |   31 ++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java   |   17 +--
 7 files changed, 251 insertions(+), 22 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java b/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java
new file mode 100644
index 0000000..81d3c21
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java
@@ -0,0 +1,39 @@
+package enumeration.general;
+
+import lombok.Getter;
+
+/**
+ * @author gonghl
+ * @since 2024/8/22 涓嬪崍 2:44
+ */
+@Getter
+public enum ErrorTypeEnum {
+
+    VIDEOMISS("褰曞儚缂哄け"),
+    NOVIDEO("鏃犲綍鍍�"),
+    PLATFORMOFFLINE("骞冲彴绂荤嚎"),
+    SEVERINTERRUPT("鏈嶅姟涓柇"),
+    POINTINFOERRO("鐐逛綅淇℃伅閿欒"),
+    POINTINFOMISS("鐐逛綅淇℃伅涓嶅叏"),
+    SIGNALMISS("淇″彿缂哄け"),
+    SCREENCOLOR("鐢婚潰鍋忚壊"),
+    SCREENSNOW("闆姳骞叉壈"),
+    SCREENSTRIP("鏉$汗骞叉壈,"),
+    SCREENSHADE("鐢婚潰閬尅"),
+    SCREENBLUR("娓呮櫚搴﹀紓甯�"),
+    SCREENLIGHT("浜害寮傚父"),
+    DEVICEOFFLINE("璁惧绂荤嚎"),
+    UNKNOWN("鏈煡"),
+    CLOCKSKEW("鏃堕挓鍋忓樊"),
+    OSD("OSD寮傚父"),
+    MONITORUNQUALIFY("涓�鏈轰竴妗d笉鍚堟牸"),
+    VIDEOORPICUNNORMAL("瑙嗛鎷夋祦銆佸浘鐗囪幏鍙栧紓甯�"),
+    PICUNUSEFUL("澶у浘涓嶅彲鐢�");
+
+    private final String value;
+
+    ErrorTypeEnum(String value) {
+        this.value = value;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java
new file mode 100644
index 0000000..8fd7185
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java
@@ -0,0 +1,31 @@
+package com.ycl.platform.domain.entity;
+
+
+import com.ycl.platform.base.AbsEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author gonghl
+ * @since 2024-08-22
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class WorkOrderErrorType extends AbsEntity {
+
+    /**
+     * 宸ュ崟鍙�
+     */
+    private String workOrderNo;
+
+    /**
+     * 鏁呴殰鍚�
+     */
+    private String errorName;
+
+}
+
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java
index 156a6c0..077fa1f 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java
@@ -1,19 +1,22 @@
 package com.ycl.platform.domain.form;
 
-import com.ycl.system.domain.group.Update;
-import com.ycl.system.domain.group.Add;
 import com.ycl.platform.base.AbsForm;
 import com.ycl.platform.domain.entity.WorkOrder;
-import org.springframework.beans.BeanUtils;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import org.springframework.lang.NonNull;
+import com.ycl.system.domain.group.Add;
+import com.ycl.system.domain.group.Update;
+import enumeration.general.ErrorTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * 宸ュ崟琛ㄥ崟
@@ -40,11 +43,11 @@
 
     @NotNull(message = "鐐逛綅涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("璁惧缂栧彿")
-    private Integer serialNumber;
+    private String serialNumber;
 
-    @NotNull(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @NotEmpty(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("鏁呴殰绫诲瀷")
-    private String errorType;
+    private List<ErrorTypeEnum> errorType;
 
     // @NotNull(message = "杩愮淮浜哄憳涓嶈兘涓虹┖", groups = {Add.class, Update.class})
     @ApiModelProperty("杩愮淮浜哄憳")
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java
new file mode 100644
index 0000000..650e14a
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java
@@ -0,0 +1,72 @@
+package com.ycl.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.entity.WorkOrderErrorType;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author gonghl
+ * @since 2024-08-22
+ */
+@Repository
+public interface WorkOrderErrorTypeMapper extends BaseMapper<WorkOrderErrorType> {
+
+    /**
+     * 鏌ヨ宸ュ崟鏁呴殰
+     *
+     * @param id 宸ュ崟鏁呴殰涓婚敭
+     * @return 宸ュ崟鏁呴殰
+     */
+    WorkOrderErrorType selectWorkOrderErrorTypeById(Long id);
+
+    /**
+     * 鏌ヨ宸ュ崟鏁呴殰鍒楄〃
+     *
+     * @param workOrderErrorType 宸ュ崟鏁呴殰
+     * @return 宸ュ崟鏁呴殰闆嗗悎
+     */
+    List<WorkOrderErrorType> selectWorkOrderErrorTypeList(WorkOrderErrorType workOrderErrorType);
+
+    /**
+     * 鏂板宸ュ崟鏁呴殰
+     *
+     * @param workOrderErrorType 宸ュ崟鏁呴殰
+     * @return 缁撴灉
+     */
+    int insertWorkOrderErrorType(WorkOrderErrorType workOrderErrorType);
+
+    /**
+     * 淇敼宸ュ崟鏁呴殰
+     *
+     * @param workOrderErrorType 宸ュ崟鏁呴殰
+     * @return 缁撴灉
+     */
+    int updateWorkOrderErrorType(WorkOrderErrorType workOrderErrorType);
+
+    /**
+     * 鍒犻櫎宸ュ崟鏁呴殰
+     *
+     * @param id 宸ュ崟鏁呴殰涓婚敭
+     * @return 缁撴灉
+     */
+    int deleteWorkOrderErrorTypeById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎宸ュ崟鏁呴殰
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    int deleteWorkOrderErrorTypeByIds(Long[] ids);
+
+    /**
+     * 鎵归噺鏂板宸ュ崟鏁呴殰
+     *
+     * @param workOrderErrorTypeList 宸ュ崟鏁呴殰闆嗗悎
+     * @return 缁撴灉
+     */
+    int insertWorkOrderErrorTypeList(List<WorkOrderErrorType> workOrderErrorTypeList);
+
+}
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 13a982c..6e8b5db 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
@@ -59,6 +59,7 @@
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -79,7 +80,7 @@
     private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
     private final NotifyService notifyService;
     private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
-    private final TMonitorMapper monitorMapper;
+    private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper;
     private final SysConfigMapper configMapper;
     private final ServerConfig serverConfig;
     private final ReportMapper reportMapper;
@@ -214,6 +215,9 @@
         Date now = new Date();
         entity.setCreateTime(now);
         entity.setUpdateTime(now);
+        entity.setErrorType(form.getErrorType().stream().map(ErrorTypeEnum::getValue).collect(Collectors.joining(",")));
+        List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType.getValue())).toList();
+        workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes);
         if(baseMapper.insert(entity) > 0) {
             return Result.ok("娣诲姞鎴愬姛");
         }
@@ -500,7 +504,7 @@
      */
     public synchronized Boolean getDistributeLock() {
         if (Objects.isNull(redisCache.getCacheObject(DISTRIBUTE_LOCK_KEY))) {
-            redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1");
+            redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1", 30, TimeUnit.SECONDS);
             return true;
         } else {
             return false;
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index 0d8ccb3..d5c04a7 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -6,16 +6,13 @@
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.dataListener.CurrencyDataListener;
-import com.ycl.platform.base.BaseSelect;
 import com.ycl.platform.domain.entity.YwPeople;
 import com.ycl.platform.domain.entity.YwPoint;
-import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.domain.excel.PointExport;
 import com.ycl.platform.domain.form.BatchEditPointForm;
 import com.ycl.platform.domain.form.YwPointForm;
 import com.ycl.platform.domain.query.YwPointQuery;
 import com.ycl.platform.domain.vo.YwPointVO;
-import com.ycl.platform.domain.excel.PointExport;
-import com.ycl.platform.domain.excel.PointSelectHandler;
 import com.ycl.platform.mapper.YwPeopleMapper;
 import com.ycl.platform.mapper.YwPointMapper;
 import com.ycl.platform.service.YwPointService;
@@ -29,12 +26,10 @@
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -219,11 +214,11 @@
                 .eq(YwPoint::getUnitId, unitId)
                 .like(YwPoint::getPointName, keyword)
                 .list();
-        List<BaseSelect> data = list.stream().map(item -> {
-            BaseSelect baseSelect = new BaseSelect();
-            baseSelect.setId(item.getId());
-            baseSelect.setValue(item.getPointName());
-            return baseSelect;
+        List data = list.stream().map(item -> {
+            Map map = new HashMap<String, Object>();
+            map.put("id", item.getSerialNumber());
+            map.put("value", item.getPointName());
+            return map;
         }).collect(Collectors.toList());
         return Result.ok().data(data);
     }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml
new file mode 100644
index 0000000..5c80034
--- /dev/null
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.WorkOrderErrorTypeMapper">
+
+    <resultMap type="WorkOrderErrorType" id="WorkOrderErrorTypeResult">
+        <result property="id" column="id"/>
+        <result property="workOrderNo" column="work_order_no"/>
+        <result property="errorName" column="error_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="deleted" column="deleted"/>
+    </resultMap>
+
+    <sql id="selectWorkOrderErrorTypeVo">
+        SELECT id, work_order_no, error_name, create_time, update_time, deleted
+        FROM t_work_order_error_type
+    </sql>
+
+    <select id="selectWorkOrderErrorTypeList" parameterType="WorkOrderErrorType" resultMap="WorkOrderErrorTypeResult">
+        <include refid="selectWorkOrderErrorTypeVo"/>
+        <where>
+            <if test="workOrderNo != null  and workOrderNo != ''">and work_order_no = #{workOrderNo}</if>
+            <if test="errorName != null  and errorName != ''">and error_name like concat('%', #{errorName}, '%')</if>
+            <if test="deleted != null ">and deleted = #{deleted}</if>
+        </where>
+    </select>
+
+    <select id="selectWorkOrderErrorTypeById" parameterType="Long" resultMap="WorkOrderErrorTypeResult">
+        <include refid="selectWorkOrderErrorTypeVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertWorkOrderErrorType" parameterType="WorkOrderErrorType" useGeneratedKeys="true" keyProperty="id">
+        insert into t_work_order_error_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="workOrderNo != null and workOrderNo != ''">work_order_no,</if>
+            <if test="errorName != null and errorName != ''">error_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="deleted != null">deleted,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="workOrderNo != null and workOrderNo != ''">#{workOrderNo},</if>
+            <if test="errorName != null and errorName != ''">#{errorName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="deleted != null">#{deleted},</if>
+        </trim>
+    </insert>
+
+    <update id="updateWorkOrderErrorType" parameterType="WorkOrderErrorType">
+        update t_work_order_error_type
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="workOrderNo != null and workOrderNo != ''">work_order_no = #{workOrderNo},</if>
+            <if test="errorName != null and errorName != ''">error_name = #{errorName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteWorkOrderErrorTypeById" parameterType="Long">
+        DELETE
+        FROM t_work_order_error_type
+        WHERE id = #{id}
+    </delete>
+
+    <delete id="deleteWorkOrderErrorTypeByIds" parameterType="String">
+        delete from t_work_order_error_type where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <insert id="insertWorkOrderErrorTypeList">
+        INSERT INTO t_work_order_error_type(work_order_no, error_name, create_time, update_time) VALUES
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.workOrderNo}, #{item.errorName}, NOW(), NOW())
+        </foreach>
+    </insert>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0