From 8554335cf08aa31e42f88eb6f51d8542440975bf Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 26 六月 2025 20:29:51 +0800
Subject: [PATCH] 设备器件excel导入,追加或新增

---
 src/main/java/com/whyc/mapper/DeviceSpareMapper.java   |    2 ++
 src/main/java/com/whyc/service/DeviceSpareService.java |   34 +++++++++++++++++++++++-----------
 src/main/resources/mapper/DeviceSpareMapper.xml        |    6 ++++++
 3 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
index ddd3748..61d1c73 100644
--- a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
+++ b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
@@ -8,4 +8,6 @@
 
     void outBound(List<DeviceSpare> spareList);
 
+    void updateQuantityAndPictureBatch(List<DeviceSpare> spareListUpdate);
+
 }
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index e1c9f05..c8060d0 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -70,10 +70,10 @@
         if (file != null && file.size() > 0) {
             for (int i = 0; i < file.size(); i++) {
                 MultipartFile multipartFile = file.get(i);
-                String fileName = multipartFile.getOriginalFilename();
+                //String fileName = multipartFile.getOriginalFilename();
                 //灏唂ileName涓彲鑳藉瓨鍦ㄧ殑,鍘绘帀
-                fileName = fileName.replace(",","");
-                String filePath = fileDirPath + File.separator + timeFormat+"_"+fileName;
+                //fileName = fileName.replace(",","");
+                String filePath = fileDirPath + File.separator + spare.getName()+"_"+spare.getModel()+"_"+spare.getVersion() + "_" + (i+1) + "_"+ timeFormat+".png";
 
                 multipartFile.transferTo(new File(filePath));
                 String split = "pis_file"+File.separator+"deviceSpare";
@@ -236,7 +236,7 @@
 
         }
 
-        //绗竷鍒椾负鍥剧墖-娴姩寮忓浘鐗� TODO 寰呭鐞� 澶勭悊宸插瓨鍦ㄧ殑鐗╂枡
+        //绗竷鍒椾负鍥剧墖-娴姩寮忓浘鐗�
         //鑾峰彇缁樺浘瀵硅薄涓殑鎵�鏈夊浘褰�
         XSSFDrawing drawing = (XSSFDrawing) sheet.getDrawingPatriarch();
         if (drawing == null) {
@@ -262,7 +262,7 @@
                 if (!fileDir.exists()) {
                     fileDir.mkdirs();
                 }
-                String filePath = fileDirPath + File.separator + timeFormat+"_"+spare.getName()+"_"+spare.getModel()+"_"+spare.getVersion()+".png";
+                String filePath = fileDirPath + File.separator + spare.getName()+"_"+spare.getModel()+"_"+spare.getVersion() + "_"+ timeFormat+".png";
 
                 // 淇濆瓨鍥剧墖鍒版湰鍦�
                 try (FileOutputStream fos = new FileOutputStream(filePath)) {
@@ -281,6 +281,7 @@
         //鏌ヨ搴撲腑鐨勬墍鏈夎澶囧櫒浠�
         List<DeviceSpare> deviceSpareListInDB = mapper.selectList((Wrapper<DeviceSpare>) CommonUtil.nullObject);
         for (DeviceSpare spare : spareList){
+            boolean isExist = false;
             for (DeviceSpare spareInDB : deviceSpareListInDB){
                 if (spare.getName().equals(spareInDB.getName())
                         && spare.getModel().equals(spareInDB.getModel())
@@ -289,22 +290,33 @@
                         && spare.getType().equals(spareInDB.getType())
                         && spare.getSupplier().equals(spareInDB.getSupplier())
                 ){
+                    isExist = true;
                     spare.setId(spareInDB.getId());
                     spare.setQuantity(spareInDB.getQuantity()+spare.getQuantity());
                     if (spare.getPictureUrl() != null && spareInDB.getPictureUrl()!=null){
                         spare.setPictureUrl(spareInDB.getPictureUrl()+","+spare.getPictureUrl());
                     }
                     spareListUpdate.add(spare);
-
-                }else{
-                    spareListNew.add(spare);
                 }
             }
+            if(!isExist){
+                //涓嶅瓨鍦ㄥ垯鏂板
+                spareListNew.add(spare);
+            }
         }
-        //鏇存柊TODO
+        //鏇存柊
+        if(spareListUpdate.size()>0) {
+            updateQuantityAndPictureBatch(spareListUpdate);
+        }
+        //鏂板
+        if(spareListNew.size()>0) {
+            addBatch(spareListNew);
+        }
 
-        //addBatch(spareList);
+        return new Response().setII(1,"瀵煎叆瀹屾垚");
+    }
 
-        return null;
+    private void updateQuantityAndPictureBatch(List<DeviceSpare> spareListUpdate) {
+        mapper.updateQuantityAndPictureBatch(spareListUpdate);
     }
 }
diff --git a/src/main/resources/mapper/DeviceSpareMapper.xml b/src/main/resources/mapper/DeviceSpareMapper.xml
index 36a7fe5..761f7ea 100644
--- a/src/main/resources/mapper/DeviceSpareMapper.xml
+++ b/src/main/resources/mapper/DeviceSpareMapper.xml
@@ -13,4 +13,10 @@
             and supplier = #{item.supplier}
         </foreach>
     </update>
+    <update id="updateQuantityAndPictureBatch">
+        <foreach collection="list" item="item" separator=";">
+            update web_site.tb_device_spare set quantity = #{item.quantity},picture_url = #{item.pictureUrl}
+            where id = #{item.id}
+        </foreach>
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1