From 277f524576142cdcea51858ce2ab9bf5e141b478 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期五, 20 十月 2023 14:25:26 +0800
Subject: [PATCH] Merge branch 'master' of http://118.89.139.230:10101/r/~whyclxw/CadDrawManager

---
 src/main/java/com/whyc/service/ProductService.java |   97 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 82 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java
index 7057b8c..d91b0bc 100644
--- a/src/main/java/com/whyc/service/ProductService.java
+++ b/src/main/java/com/whyc/service/ProductService.java
@@ -57,6 +57,9 @@
     @Autowired
     private ProductLockLogService productLockLogService;
 
+    @Autowired
+    private MaterialHistoryService materialHistoryService;
+
     //鏌ヨ鍑烘墍鏈夌殑浜у搧淇℃伅(鍒嗛〉鍔犳ā绯婃煡璇�<浜у搧鐨勭紪鐮侊紝鍨嬪彿锛屽悕瀛楋紝瀹氬埗琛ㄧ紪鍙�>
     public Response getAllProduct(String subCode,String parentCode, String parentName, String parentModel, String customCode,Integer enabled, int pageCurr, int pageSize) {
         PageHelper.startPage(pageCurr,pageSize);
@@ -446,6 +449,7 @@
         List<ProductBom> bomList = product.getBomList();
         String zipFilePath = product.getFileUrl();
         Date date = new Date();
+        String dateStr = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(date);
         boolean isCopyCustom = false;
         Product relatedProduct = null;
         //鏍¢獙鍑℃槸鏈夊畾鍒惰〃鍗曞彿鐨勪骇鍝侊紝涓嶈兘浣跨敤宸蹭笂浼犺繃鐨勬爣鍑嗕骇鍝佺紪鐮�
@@ -735,13 +739,14 @@
                 for (ProductBom bom : finalBomList) {
                     String filename = excelExcludeUr.substring(excelExcludeUr.lastIndexOf(File.separator) + 1, excelExcludeUr.lastIndexOf("."));
                     String fileFullName = excelExcludeUr.substring(excelExcludeUr.lastIndexOf(File.separator) + 1);
+                    String fileSuffix = fileFullName.substring(fileFullName.lastIndexOf("."));
                     if (bom.getSubModel().toUpperCase().equals(filename.toUpperCase()) && excelExcludeUr.substring(excelExcludeUr.lastIndexOf(".")+1).equals("dwg")) {
                         materialUrlList.add(excelExcludeUr);
                         existFlag = true;
 
 
-                        bom.setDwgUrl("doc_file" + File.separator + "material"
-                                + File.separator + fileFullName);
+                        bom.setDwgUrl("doc_file" + File.separator + "material" + File.separator + bom.getSubCode() + "-" + bom.getSubModel()
+                                + File.separator + filename + "_" + dateStr + fileSuffix);
                         break;
                     }
                     else if((bom.getSubModel().toUpperCase()+"-BOM").equals(filename.toUpperCase()) && (excelExcludeUr.substring(excelExcludeUr.lastIndexOf(".")+1).equals("png") ||excelExcludeUr.substring(excelExcludeUr.lastIndexOf(".")+1).equals("jpeg"))
@@ -750,8 +755,8 @@
                         existFlag = true;
 
 
-                        bom.setPictureUrl("doc_file" + File.separator + "material"
-                                + File.separator + fileFullName);
+                        bom.setPictureUrl("doc_file" + File.separator + "material" + File.separator + bom.getSubCode() + "-" + bom.getSubModel()
+                                + File.separator + filename + "_" + dateStr + fileSuffix);
                         break;
                     }
                 }
@@ -808,32 +813,75 @@
                 }
             });
 
-            materialUrlList.forEach(materialUrl -> {
-                String dwgName = materialUrl.substring(materialUrl.lastIndexOf(File.separator) + 1, materialUrl.length() - 4);
+            //鐗╂枡dwg鍥剧焊瀛樺埌瀵瑰簲鐨� 鐗╂枡缂栫爜+鍨嬪彿 涓嬮潰
+            for (String materialUrl : materialUrlList) {
                 try {
-                    File dwgFile = new File(materialDir + File.separator + dwgName + ".dwg");
-                    if(!dwgFile.exists()) {
+                    String dwgName = materialUrl.substring(materialUrl.lastIndexOf(File.separator) + 1, materialUrl.length() - 4);
+                    //纭畾鐗╂枡鐨勫叿浣撳瀷鍙�
+                    String subModel = null;
+                    String subCode = null;
+                    for (ProductBom bom : bomList) {
+                        String bomSubMode = bom.getSubModel();
+                        if (bomSubMode.toUpperCase().equals(dwgName.toUpperCase())) {
+                            subModel = bomSubMode;
+                            subCode = bom.getSubCode();
+                            break;
+                        }
+                    }
+                    File dwgFile;
+                    if (subModel != null) {
+                        dwgFile = new File(materialDir + File.separator + subCode + "-" + subModel + File.separator + dwgName + "_" + dateStr + ".dwg");
+                        File dwgDir = new File(materialDir + File.separator + subCode + "-" + subModel);
+                        if(!dwgDir.exists()){
+                            dwgDir.mkdirs();
+                        }
+                    } else {
+                        dwgFile = new File(materialDir + File.separator + dwgName + "_" + dateStr + ".dwg");
+                    }
+                    if (!dwgFile.exists()) {
                         FileCopyUtils.copy(new File(materialUrl), dwgFile);
                     }
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
-            });
+            }
 
-            picUrlList.forEach(picUrl -> {
+            for (String picUrl : picUrlList) {
                 String picFullName = picUrl.substring(picUrl.lastIndexOf(File.separator) + 1);
+                String picSubModel = picFullName.substring(0, picFullName.lastIndexOf("."));
+                String picSuffix = picFullName.substring(picFullName.lastIndexOf("."));
                 try {
-                    File picFile = new File(materialDir + File.separator + picFullName);
-                    if(!picFile.exists()) {
+                    //纭畾鐗╂枡鐨勫叿浣撳瀷鍙峰拰缂栫爜
+                    String subModel = null;
+                    String subCode = null;
+                    for (ProductBom bom : bomList) {
+                        String bomSubMode = bom.getSubModel();
+                        if ((bomSubMode + "-bom").toUpperCase().equals(picSubModel.toUpperCase())) {
+                            subModel = bomSubMode;
+                            subCode = bom.getSubCode();
+                            break;
+                        }
+                    }
+                    File picFile;
+                    if (subModel != null) {
+                        picFile = new File(materialDir + File.separator + subCode + "-" + subModel + File.separator + picSubModel + "_" + dateStr + picSuffix);
+                        File picDir = new File(materialDir + File.separator + subCode + "-" + subModel);
+                        if(!picDir.exists()){
+                            picDir.mkdirs();
+                        }
+                    } else {
+                        picFile = new File(materialDir + File.separator + picSubModel + "_" + dateStr + picSuffix);
+                    }
+                    if (!picFile.exists()) {
                         FileCopyUtils.copy(new File(picUrl), picFile);
                     }
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
-            });
+            }
 
             //鐗╂枡琛ㄤ腑涓嶅瓨鍦ㄧ殑(渚濇嵁:鐗╂枡缂栫爜+鐗╂枡鍨嬪彿),鍒欐坊鍔犲埌鐗╂枡琛ㄤ腑鍘�(鍖呭惈product杩欎釜鐗╂枡)
-            //娌℃湁鍥剧焊鍜屽浘鐗囩殑,鏇存柊鍥剧焊鍜屽浘鐗�;鏈夊浘绾稿拰鍥剧墖鐨�,涓嶆洿鏂板浘绾稿拰鍥剧墖
+            //鏇存柊鍥剧焊鍜屽浘鐗�
             List<Material> materialExistList = mService.getListByCodeAndModelList2(bomList);
             //List<String> subCodeList = materialExistList.stream().map(Material::getSubCode).collect(Collectors.toList());
             List<String> subCodeList = materialExistList.stream().map(material -> material.getSubCode()+"/"+material.getSubModel()).collect(Collectors.toList());
@@ -846,7 +894,6 @@
                     material.setDwgUrl(bom.getDwgUrl());
                     material.setFileUrl(bom.getFileUrl());
                     material.setPictureUrl(bom.getPictureUrl());
-                    // TODO 鏄惁瑕佹洿鏂板悓鐗╂枡缂栫爜鐨勮�佺墿鏂欑姸鎬佷负0?
                     material.setStatus(1);
                     material.setSubCode(bom.getSubCode());
                     material.setSubModel(bom.getSubModel());
@@ -971,6 +1018,26 @@
             });
             pbhService.insertBatch(bomHistoryList);
 
+            if(materialUpdateList.size()>0) {
+                //鏇存柊鐗╂枡鍥剧焊鍥剧墖鐨勫悓鏃�,娣诲姞鏂扮殑鍥剧焊鍥剧墖淇℃伅鍒扮墿鏂欏巻鍙茶〃涓�
+                List<MaterialHistory> materialHistoryList = new LinkedList<>();
+                for (Material material : materialUpdateList) {
+                    MaterialHistory materialHistory = new MaterialHistory();
+                    materialHistory.setPictureUrl(material.getPictureUrl());
+                    materialHistory.setProductId(productHistory.getId());
+                    materialHistory.setDwgUrl(material.getDwgUrl());
+                    materialHistory.setUpUserId(ActionUtil.getUser().getId().intValue());
+                    materialHistory.setCreateTime(date);
+                    for (Material materialInDB : materialExistList) {
+                        if ((material.getSubCode() + "/" + material.getSubModel()).equals(materialInDB.getSubCode() + "/" + materialInDB.getSubModel())) {
+                            materialHistory.setMaterialId(materialInDB.getId());
+                            break;
+                        }
+                    }
+                    materialHistoryList.add(materialHistory);
+                }
+                materialHistoryService.addBatch(materialHistoryList);
+            }
         }
         //娣诲姞鏂板鏃ュ織鍒皌b_product_lock_log琛�
         ProductLockLog lockLog = new ProductLockLog();

--
Gitblit v1.9.1