From cfcfbf068acf9b9d509a99498346dcbcf101cdf9 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 14 十一月 2024 16:37:46 +0800
Subject: [PATCH] 白名单基础增删改查

---
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java       |   11 +-
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java    |   21 +++++
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml               |   21 ++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   97 ++++++++++++++----------
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java        |   17 ++--
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java          |    4 +
 ycl-common/src/main/java/enumeration/ErrorType.java                              |   12 +++
 7 files changed, 125 insertions(+), 58 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/ErrorType.java b/ycl-common/src/main/java/enumeration/ErrorType.java
index 43630c1..c8d83da 100644
--- a/ycl-common/src/main/java/enumeration/ErrorType.java
+++ b/ycl-common/src/main/java/enumeration/ErrorType.java
@@ -69,4 +69,16 @@
                 .filter(errorType -> errorType.getCategory() == category)
                 .collect(Collectors.toList());
     }
+
+    // 鏍规嵁value鑾峰彇desc
+    public static String getDescriptionByValue(String value) {
+        for (ErrorType errorType : ErrorType.values()) {
+            if (errorType.getValue().equals(value)) {
+                return errorType.getDesc();
+            }
+        }
+        // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨剉alue锛岃繑鍥瀗ull鎴栬�呮姏鍑轰竴涓紓甯�
+        // 杩欓噷杩斿洖null
+        return null;
+    }
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
index 6b7243a..c290279 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
@@ -7,9 +7,11 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+
 /**
  * 宸ュ崟鐢熸垚鐧藉悕鍗曞璞� t_work_order_white
- * 
+ *
  * @author ruoyi
  * @date 2024-10-22
  */
@@ -30,9 +32,12 @@
     private String serialNumber;
 
     /** 鐐逛綅鍚嶇О */
-    @TableField("point_name")
+    @TableField("error_type")
+    private String errorType;
+    @TableField(exist = false)
+    private List<String> errorTypeList;
+    @TableField(exist = false)
     private String pointName;
-
     /** 鍒涘缓浜� */
     @TableField("create_by")
     private String createBy;
@@ -41,9 +46,5 @@
     @TableField("remark")
     private String remark;
 
-    public WorkOrderWhite(String serialNumber, String pointName, String createBy) {
-        this.serialNumber = serialNumber;
-        this.pointName = pointName;
-        this.createBy = createBy;
-    }
+
 }
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 3b1c71d..81d8c57 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
@@ -210,6 +210,15 @@
     }
 
     /**
+     * 宸ュ崟鐧藉悕鍗曡鎯�
+     */
+    @GetMapping("/white/{id}")
+    @ApiOperation(value = "宸ュ崟鐧藉悕鍗曡鎯�", notes = "宸ュ崟鐧藉悕鍗曡鎯�")
+    public Result whiteDetail(@PathVariable Integer id)
+    {
+        return workOrderService.selectWorkOrderWhiteDetail(id);
+    }
+    /**
      * 娣诲姞宸ュ崟鐧藉悕鍗�
      *
      * @param workOrderWhite 鐧借壊宸ュ崟
@@ -223,6 +232,18 @@
     }
 
     /**
+     * 淇敼宸ュ崟鐧藉悕鍗�
+     *
+     * @param workOrderWhite 鐧借壊宸ュ崟
+     * @return {@link Result }
+     * @author
+     */
+    @PostMapping("/white/update")
+    @ApiOperation(value = "淇敼宸ュ崟鐧藉悕鍗�", notes = "淇敼宸ュ崟鐧藉悕鍗�")
+    public Result updateWorkOrderWhite(@RequestBody WorkOrderWhite workOrderWhite) {
+        return workOrderService.updateWorkOrderWhite(workOrderWhite);
+    }
+    /**
      * 鎵归噺鍒犻櫎宸ュ崟鐧藉悕鍗�
      *
      * @param ids ids
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
index b3b1859..3f02aaf 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
@@ -1,6 +1,7 @@
 package com.ycl.platform.mapper;
 
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.platform.domain.entity.WorkOrderWhite;
 import com.ycl.platform.domain.query.WorkOrderWhiteQuery;
@@ -10,11 +11,11 @@
 
 /**
  * 宸ュ崟鐢熸垚鐧藉悕鍗昅apper鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2024-10-22
  */
-public interface WorkOrderWhiteMapper 
+public interface WorkOrderWhiteMapper extends BaseMapper<WorkOrderWhite>
 {
 
     /**
@@ -29,7 +30,7 @@
 
     /**
      * 鏂板宸ュ崟鐢熸垚鐧藉悕鍗�
-     * 
+     *
      * @param workOrderWhite 宸ュ崟鐢熸垚鐧藉悕鍗�
      * @return 缁撴灉
      */
@@ -37,7 +38,7 @@
 
     /**
      * 鎵归噺鍒犻櫎宸ュ崟鐢熸垚鐧藉悕鍗�
-     * 
+     *
      * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
      * @return 缁撴灉
      */
@@ -68,4 +69,6 @@
      * @author
      */
     void updateBySerialNumber(WorkOrderWhite white);
+
+    WorkOrderWhite getById(Integer id);
 }
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 c816ad0..42e27c0 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
@@ -282,4 +282,8 @@
 
     Result errorAll();
 
+    Result selectWorkOrderWhiteDetail(Integer id);
+
+    Result updateWorkOrderWhite(WorkOrderWhite workOrderWhite);
+
 }
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 292d416..1657856 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
@@ -1,9 +1,8 @@
 package com.ycl.platform.service.impl;
 
-import com.alibaba.excel.annotation.format.DateTimeFormat;
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -11,7 +10,6 @@
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.config.PlatformConfig;
-import com.ycl.config.ServerConfig;
 import com.ycl.exception.ServiceException;
 import com.ycl.platform.domain.entity.*;
 import com.ycl.platform.domain.excel.PointExport;
@@ -26,13 +24,11 @@
 import com.ycl.platform.service.WorkOrderAuditingRecordService;
 import com.ycl.platform.service.WorkOrderService;
 import com.ycl.platform.service.YwPointService;
-import com.ycl.platform.wvp.StreamContent;
 import com.ycl.platform.wvp.WVPResult;
 import com.ycl.system.Result;
 import com.ycl.system.domain.SysConfig;
 import com.ycl.system.entity.SysDictData;
 import com.ycl.system.mapper.SysConfigMapper;
-import com.ycl.system.mapper.SysDictDataMapper;
 import com.ycl.system.model.LoginUser;
 import com.ycl.system.page.PageUtil;
 import com.ycl.utils.DateUtils;
@@ -40,8 +36,6 @@
 import com.ycl.utils.http.HttpUtils;
 import com.ycl.utils.redis.RedisCache;
 import com.ycl.utils.uuid.IdUtils;
-import constant.ApiConstants;
-import constant.CheckConstants;
 import constant.Constants;
 import constant.RedisConstant;
 import enumeration.ErrorType;
@@ -49,14 +43,16 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
-import org.bytedeco.javacv.*;
+import org.bytedeco.javacv.FFmpegFrameGrabber;
+import org.bytedeco.javacv.Frame;
+import org.bytedeco.javacv.FrameGrabber;
+import org.bytedeco.javacv.OpenCVFrameConverter;
 import org.bytedeco.opencv.global.opencv_imgcodecs;
 import org.bytedeco.opencv.opencv_core.Mat;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationContext;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -65,17 +61,6 @@
 import org.springframework.util.StringUtils;
 import pojo.CascadeOption;
 
-import javax.imageio.ImageIO;
-import javax.swing.*;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
@@ -1080,7 +1065,17 @@
     public Result selectWorkOrderWhiteList(WorkOrderWhiteQuery query) {
         IPage<WorkOrderWhite> page = PageUtil.getPage(query, WorkOrderWhite.class);
         workOrderWhiteMapper.page(page, query);
-        return Result.ok().data(page.getRecords()).total(page.getTotal());
+        List<WorkOrderWhite> records = page.getRecords();
+        records.forEach(white-> {
+            List<String> errorTextList = new ArrayList<>();
+            List<String> errorTypeList = JSONArray.parseArray(white.getErrorType(), String.class);
+            errorTypeList.forEach(error->{
+                String errorText = ErrorType.getDescriptionByValue(error);
+                errorTextList.add(errorText);
+            });
+            white.setErrorType(String.join(",", errorTextList));
+        });
+        return Result.ok().data(records).total(page.getTotal());
     }
 
     /**
@@ -1092,24 +1087,34 @@
      */
     @Override
     public Result addWorkOrderWhite(WorkOrderWhite workOrderWhite) {
-        // 閫氳繃璁惧缂栫爜鏌ヨ璁惧淇℃伅
-        YwPoint ywPoint = ywPointService.selectBySerialNumber(workOrderWhite.getSerialNumber());
-        // 鏂板鐧藉悕鍗曡澶囪褰�
-        if (ywPoint == null){
-            return Result.error("璁惧涓嶅瓨鍦�");
-        }
         // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄨ鐧藉悕鍗�
         WorkOrderWhite flag = workOrderWhiteMapper.selectBySerialNumber(workOrderWhite.getSerialNumber());
         if (flag != null) {
             return Result.error("璇ヨ澶囧凡瀛樺湪鐧藉悕鍗�");
         } else {
-            workOrderWhite.setPointName(ywPoint.getPointName());
+            List<String> errorTypeList = workOrderWhite.getErrorTypeList();
+            workOrderWhite.setErrorType(JSONArray.toJSONString(errorTypeList));
             workOrderWhite.setCreateBy(SecurityUtils.getUsername());
             workOrderWhiteMapper.insert(workOrderWhite);
             return Result.ok();
         }
     }
-
+    /**
+     * 淇敼宸ュ崟鐧藉悕鍗�
+     *
+     * @param workOrderWhite 鐧借壊宸ュ崟
+     * @return {@link Result }
+     * @author
+     */
+    @Override
+    public Result updateWorkOrderWhite(WorkOrderWhite workOrderWhite) {
+        WorkOrderWhite white = workOrderWhiteMapper.selectBySerialNumber(workOrderWhite.getSerialNumber());
+        workOrderWhite.setId(white.getId());
+        List<String> errorTypeList = workOrderWhite.getErrorTypeList();
+        workOrderWhite.setErrorType(JSONArray.toJSONString(errorTypeList));
+        workOrderWhiteMapper.updateById(workOrderWhite);
+        return Result.ok();
+    }
     /**
      * 鎵归噺鍒犻櫎宸ュ崟鐧藉悕鍗�
      *
@@ -1130,18 +1135,18 @@
      */
     @Override
     public void batchImportWhite(List<PointExport> dataList) {
-        // 鑾峰緱鎵�鏈夐渶瑕佹柊澧炵殑鐧藉悕鍗曞璞�
-        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
-                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
-                .collect(Collectors.toList());
-        // 鑾峰緱鎵�鏈夊凡瀛樺湪鐨勭櫧鍚嶅崟璁惧缂栫爜
-        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
-        // 绛涢�夊嚭鏂板銆佷慨鏀圭殑鐧藉悕鍗曞璞�
-        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
-        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
-        // 鏂板/淇敼鐧藉悕鍗曡澶囪褰�
-        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
-        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
+//        // 鑾峰緱鎵�鏈夐渶瑕佹柊澧炵殑鐧藉悕鍗曞璞�
+//        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
+//                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
+//                .collect(Collectors.toList());
+//        // 鑾峰緱鎵�鏈夊凡瀛樺湪鐨勭櫧鍚嶅崟璁惧缂栫爜
+//        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
+//        // 绛涢�夊嚭鏂板銆佷慨鏀圭殑鐧藉悕鍗曞璞�
+//        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
+//        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
+//        // 鏂板/淇敼鐧藉悕鍗曡澶囪褰�
+//        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
+//        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
     }
 
     /**
@@ -1242,4 +1247,14 @@
         results.add(face);
         return Result.ok().data(results);
     }
+
+    @Override
+    public Result selectWorkOrderWhiteDetail(Integer id) {
+        WorkOrderWhite workOrderWhite = workOrderWhiteMapper.getById(id);
+        List<String> errorList = JSONArray.parseArray(workOrderWhite.getErrorType(), String.class);
+        workOrderWhite.setErrorTypeList(errorList);
+        return Result.ok().data(workOrderWhite);
+    }
+
+
 }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
index 810fadd..8220c64 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -7,13 +7,14 @@
     <resultMap type="WorkOrderWhite" id="WorkOrderWhiteResult">
         <result property="id"    column="id"    />
         <result property="serialNumber"    column="serial_number"    />
-        <result property="pointName"    column="point_name"    />
+        <result property="pointName"    column="pointName"    />
+        <result property="errorType"    column="error_type"    />
         <result property="createBy"    column="create_by"    />
         <result property="remark"    column="remark"    />
     </resultMap>
 
     <sql id="selectWorkOrderWhiteVo">
-        select id, serial_number, point_name, create_by, remark from t_work_order_white
+        select id, serial_number, error_type, create_by, remark from t_work_order_white
     </sql>
     <update id="updateBySerialNumber">
         update t_work_order_white
@@ -26,11 +27,21 @@
     </update>
 
     <select id="page" parameterType="com.ycl.platform.domain.query.WorkOrderWhiteQuery" resultMap="WorkOrderWhiteResult">
-        <include refid="selectWorkOrderWhiteVo"/>
+        select wow.id, wow.serial_number,m.name as pointName, wow.error_type, wow.create_by, wow.remark
+        from t_work_order_white wow
+        left join t_monitor m on wow.serial_number = m.serial_number
         <where>
             <if test="query.keyword != null  and query.keyword != ''">
             and (serial_number like concat('%',#{query.keyword},'%') or point_name like concat('%', #{query.keyword}, '%'))
             </if>
+        </where>
+    </select>
+    <select id="getById"  resultMap="WorkOrderWhiteResult">
+        select wow.id, wow.serial_number,m.name as pointName, wow.error_type, wow.create_by, wow.remark
+        from t_work_order_white wow
+        left join t_monitor m on wow.serial_number = m.serial_number
+        <where>
+            wow.id = #{id}
         </where>
     </select>
     <select id="selectBySerialNumber" resultType="com.ycl.platform.domain.entity.WorkOrderWhite">
@@ -45,13 +56,13 @@
         insert into t_work_order_white
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="serialNumber != null and serialNumber != ''">serial_number,</if>
-            <if test="pointName != null and pointName != ''">point_name,</if>
+            <if test="errorType != null and errorType != ''">error_type,</if>
             <if test="createBy != null">create_by,</if>
             <if test="remark != null">remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="serialNumber != null and serialNumber != ''">#{serialNumber},</if>
-            <if test="pointName != null and pointName != ''">#{pointName},</if>
+            <if test="errorType != null and errorType != ''">#{errorType},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="remark != null">#{remark},</if>
          </trim>

--
Gitblit v1.8.0