From 3d647966bc41215e72cba86860cce5075896ae93 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 24 十月 2024 17:17:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java |   22 +++++++++++
 ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java    |   22 +++++++++++
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java         |    8 ++++
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml                 |   11 +++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java   |   23 +++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java         |   11 +++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java          |    7 +++
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java            |    9 ++++
 8 files changed, 112 insertions(+), 1 deletions(-)

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 b9554bd..6b7243a 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
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -39,4 +40,10 @@
     /** 澶囨敞 */
     @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/YwThresholdController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java
index 33197f8..a4de4ff 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java
@@ -4,17 +4,26 @@
 import com.ycl.platform.domain.entity.YwThreshold;
 import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.system.AjaxResult;
+import com.ycl.system.Result;
 import com.ycl.system.controller.BaseController;
 import com.ycl.system.page.TableDataInfo;
 import com.ycl.utils.poi.ExcelUtil;
 import enumeration.BusinessType;
+import io.swagger.annotations.ApiOperation;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutionException;
 
 /**
  * 杩愮淮闃堝�糃ontroller
@@ -82,4 +91,17 @@
     {
         return toAjax(ywThresholdService.deleteYwThresholdByIds(ids));
     }
+
+    /**
+     * 瀵煎叆鏁版嵁
+     *
+     * @param file 鏂囦欢
+     * @return {@link Result }
+     * @author
+     */
+    @PostMapping("/import")
+    @ApiOperation(value = "瀵煎叆鏁版嵁", notes = "瀵煎叆鏁版嵁")
+    public Result importData(MultipartFile file) throws IOException, ParseException, ExecutionException, InterruptedException {
+        return ywThresholdService.importData(file);
+    }
 }
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 d5ebd8b..b3b1859 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
@@ -60,4 +60,12 @@
      * @author
      */
     List<WorkOrderWhite> selectList();
+
+    /**
+     * 鎸夊簭鍒楀彿鏇存柊
+     *
+     * @param white 鐧借壊
+     * @author
+     */
+    void updateBySerialNumber(WorkOrderWhite white);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java b/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
index d8cbad3..f4605f7 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
@@ -4,6 +4,8 @@
 import com.ycl.platform.domain.entity.YwThreshold;
 import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
 import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
+import com.ycl.system.Result;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 import java.util.Map;
@@ -83,4 +85,13 @@
      * 闃堝�兼棤娉曞垽鏂殑锛屾牎楠屾晠闅滅被鍨嬬敓鎴愬伐鍗曘�備紭浜�
      */
     public void errorTypeCheckUY(List list);
+
+    /**
+     * 瀵煎叆鏁版嵁
+     *
+     * @param file 鏂囦欢
+     * @return {@link Result }
+     * @author
+     */
+    Result importData(MultipartFile file);
 }
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 a1ad176..9c589ad 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
@@ -4,6 +4,7 @@
 import com.ycl.platform.domain.entity.WorkOrder;
 import com.ycl.platform.domain.entity.WorkOrderAuditingRecord;
 import com.ycl.platform.domain.entity.WorkOrderWhite;
+import com.ycl.platform.domain.excel.PointExport;
 import com.ycl.platform.domain.form.*;
 import com.ycl.platform.domain.query.*;
 import com.ycl.platform.domain.vo.*;
@@ -261,4 +262,12 @@
      * @author
      */
     Result batchDeleteWorkOrderWhite(List<String> ids);
+
+    /**
+     * 鎵归噺瀵煎叆宸ュ崟鐧藉悕鍗�
+     *
+     * @param dataList 鏁版嵁鍒楄〃
+     * @author
+     */
+    void batchImportWhite(List<PointExport> dataList);
 }
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 8585b6e..9bbd8f9 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
@@ -14,6 +14,7 @@
 import com.ycl.config.ServerConfig;
 import com.ycl.exception.ServiceException;
 import com.ycl.platform.domain.entity.*;
+import com.ycl.platform.domain.excel.PointExport;
 import com.ycl.platform.domain.form.*;
 import com.ycl.platform.domain.query.*;
 import com.ycl.platform.domain.vo.*;
@@ -1053,4 +1054,26 @@
         workOrderWhiteMapper.batchDelete(ids);
         return Result.ok();
     }
+
+    /**
+     * 鎵归噺瀵煎叆鐧藉悕鍗�
+     *
+     * @param dataList 鏁版嵁鍒楄〃
+     * @author
+     */
+    @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));
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index 3dae6eb..bbffadb 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -4,12 +4,18 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.WorkOrder;
 import com.ycl.platform.domain.entity.YwThreshold;
+import com.ycl.platform.domain.excel.PointExport;
 import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
 import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
+import com.ycl.platform.domain.vo.DynamicColumnVO;
 import com.ycl.platform.mapper.YwThresholdMapper;
 import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.platform.service.WorkOrderService;
+import com.ycl.system.Result;
 import com.ycl.utils.ip.PingUtil;
+import com.ycl.utils.poi.EasyExcelImportUtils;
+import com.ycl.utils.uuid.IdUtils;
+import constant.PointHeaderConstant;
 import constant.YwThreadConstants;
 import enumeration.CompareType;
 import enumeration.ErrorType;
@@ -19,6 +25,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
 import utils.DateUtils;
 
 import java.util.*;
@@ -146,6 +153,21 @@
         // 浜害寮傚父鏁呴殰妫�娴�
     }
 
+    @Override
+    public Result importData(MultipartFile file) {
+        List<Map<String, String>> list = EasyExcelImportUtils.makeData(file);
+        List<PointExport> dataList = new ArrayList<>();
+        for (Map<String, String> map : list) {
+            PointExport pointExport = new PointExport();
+            pointExport.setPointName(map.get(PointHeaderConstant.Point_Name));
+            pointExport.setSerialNumber(map.get(PointHeaderConstant.Serial_Number));
+            dataList.add(pointExport);
+        }
+        workOrderService.batchImportWhite(dataList);
+        return Result.ok("瀵煎叆鎴愬姛");
+
+    }
+
     /**
      * 鍒ゆ柇浜鸿劯闃堝�兼槸鍚︽弧瓒充笅鍙戞潯浠�
      *
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
index 4efe626..7573a34 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -15,7 +15,16 @@
     <sql id="selectWorkOrderWhiteVo">
         select id, serial_number, point_name, create_by, remark from t_work_order_white
     </sql>
-    
+    <update id="updateBySerialNumber">
+        update t_work_order_white
+        <set>
+            <if test="pointName != null and pointName != ''">point_name = #{pointName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </set>
+        where serial_number = #{serialNumber}
+    </update>
+
     <select id="page" parameterType="Long" resultMap="WorkOrderWhiteResult">
         <include refid="selectWorkOrderWhiteVo"/>
         <where>

--
Gitblit v1.8.0