From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 25 六月 2025 11:18:22 +0800
Subject: [PATCH] 验收报告修改

---
 src/main/java/com/whyc/service/ProductService.java |  287 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 207 insertions(+), 80 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java
index 662529f..bdc8e43 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);
@@ -146,8 +149,11 @@
         File parentFile = new File(filePath);
         String originalFilename = file.getOriginalFilename();
         File zipFile = new File(filePath + File.separator + originalFilename);
-        if (!zipFile.exists()) {
+        /*if (!zipFile.exists()) {
             zipFile.mkdirs();
+        }*/
+        if (!parentFile.exists()) {
+            parentFile.mkdirs();
         }
         file.transferTo(zipFile);
         //瑙e帇鏂囦欢澶�
@@ -246,6 +252,9 @@
                 for (int k = 2; k < lastRowNum + 1; k++) {
                     if(k==2){
                         product.setParentCode(sheet.getRow(2).getCell(1).getStringCellValue());
+                        if(!originalFilename.contains(product.getParentCode())){
+                            return response.set(1,false,"涓婁紶鐨勪骇鍝佸帇缂╁寘蹇呴』鍖呭惈浜у搧缂栫爜");
+                        }
                         product.setParentName(sheet.getRow(2).getCell(2).getStringCellValue());
                         String parentModel = sheet.getRow(2).getCell(3).getStringCellValue();
                         parentModel = parentModel.trim();
@@ -362,6 +371,14 @@
                                 if (!pictureRowSet.isEmpty() && pictureRowSet.contains(k)) {
 
                                     PictureData pictureData = pictureDataMap.get(k);
+                                    //鍒ゆ柇鐗╂枡鍨嬪彿鏄惁鍖呭惈闈炴硶瀛楃(鍥剧墖浼氳浆鍖栦负璺緞)
+                                    if(bom.getSubModel()!=null) {
+                                        String regexStr = "[\\/*?\"|:<>\t]";
+                                        boolean matches = Pattern.compile(regexStr).matcher(bom.getSubModel()).find();
+                                        if (matches) {
+                                            return response.set(1, false, "鍨嬪彿涓�"+bom.getSubModel()+"鐨勭墿鏂欏寘鍚潪娉曞瓧绗�:\\/*?\"|:<>鎴栧墠缃┖鏍�");
+                                        }
+                                    }
                                     //鍥剧墖瀛樺偍 product_submit/username/2022-07/
                                     String approvingPath = rootFile + File.separator + "product_submit" + File.separator + user.getName() + File.separator + dateFormat + File.separator + timeStamp;
                                     File provingFile = new File(approvingPath);
@@ -446,6 +463,8 @@
         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);
+        Long userId = ActionUtil.getUser().getId();
         boolean isCopyCustom = false;
         Product relatedProduct = null;
         //鏍¢獙鍑℃槸鏈夊畾鍒惰〃鍗曞彿鐨勪骇鍝侊紝涓嶈兘浣跨敤宸蹭笂浼犺繃鐨勬爣鍑嗕骇鍝佺紪鐮�
@@ -572,36 +591,65 @@
             if(bom.getRelatedMaterialCodes()!=null) {
                 String relatedMaterialCodes = bom.getRelatedMaterialCodes().trim();
                 if (!relatedMaterialCodes.equals("")) {
-                    if (subMaterialListInDB.contains(bom.getSubCode()+"_"+bom.getSubModel())) { //褰撳墠鐗╂枡鏈夋浛浠f枡
-                        String[] relatedList;
-                        if (relatedMaterialCodes.contains(",")) {
-                            relatedList = relatedMaterialCodes.split(",");
-                        } else {
-                            relatedList = relatedMaterialCodes.split("锛�");
-                        }
-                        for (String related : relatedList) {
-                            bom.setRelatedMaterialCodes(related);
-                            boolean exists = false;
-                            for (MaterialProductHistory mp : mpListInDB) {
-                                //鐗╂枡鐩稿悓,鏇夸唬鏂欑浉鍚�
-                                if ((mp.getSubMaterial().getSubCode()+"_"+mp.getSubMaterial().getSubModel()).equals(bom.getSubCode()+"_"+bom.getSubModel())
-                                        && mp.getRelatedSubMaterial().getSubCode().equals(related)) {
-                                    //鍙彲鑳藉瓨鍦�0 鍜� 1 鐨勬儏鍐�,鍥犱负鏌ヨ鐨勬槸 >=涓婁釜鐗堟湰
-                                    if (nextVersion - mp.getEVersion() == 0) { //宸插瓨鍦�,鏃犻渶娣诲姞
-                                        //break;
-                                    } else if (nextVersion - mp.getEVersion() == 1) {  //鏇存柊鍒板綋鍓嶇増鏈�
-                                        mp.setEVersion(nextVersion);
-                                        versionUpdateList.add(mp);
+                    if(subMaterialListInDB!=null&&subMaterialListInDB.size()>0){
+                        if (subMaterialListInDB.contains(bom.getSubCode()+"_"+bom.getSubModel())) { //褰撳墠鐗╂枡鏈夋浛浠f枡
+                            String[] relatedList;
+                            if (relatedMaterialCodes.contains(",")) {
+                                relatedList = relatedMaterialCodes.split(",");
+                            } else {
+                                relatedList = relatedMaterialCodes.split("锛�");
+                            }
+                            for (String related : relatedList) {
+                                bom.setRelatedMaterialCodes(related);
+                                boolean exists = false;
+                                for (MaterialProductHistory mp : mpListInDB) {
+                                    //鐗╂枡鐩稿悓,鏇夸唬鏂欑浉鍚�
+                                    if ((mp.getSubMaterial().getSubCode()+"_"+mp.getSubMaterial().getSubModel()).equals(bom.getSubCode()+"_"+bom.getSubModel())
+                                            && mp.getRelatedSubMaterial().getSubCode().equals(related)) {
+                                        //鍙彲鑳藉瓨鍦�0 鍜� 1 鐨勬儏鍐�,鍥犱负鏌ヨ鐨勬槸 >=涓婁釜鐗堟湰
+                                        if (nextVersion - mp.getEVersion() == 0) { //宸插瓨鍦�,鏃犻渶娣诲姞
+                                            //break;
+                                        } else if (nextVersion - mp.getEVersion() == 1) {  //鏇存柊鍒板綋鍓嶇増鏈�
+                                            mp.setEVersion(nextVersion);
+                                            versionUpdateList.add(mp);
+                                        }
+                                        exists = true;
                                     }
-                                    exists = true;
+                                }
+                                if(!exists) { //涓嶅瓨鍦ㄧ浉閭诲強鐩稿悓鐨勮褰曠増鏈�,鏂板
+                                    MaterialProductHistory newTemp = new MaterialProductHistory();
+                                    newTemp.setParentCode(parentCode);
+                                    newTemp.setCustomCode(customCode);
+                                    newTemp.setSubCode(bom.getSubCode());
+                                    Material material = mService.getByCodeAndModel(bom.getSubCode(), bom.getSubModel(),true);
+                                    newTemp.setSubMaterialId(material.getId());
+                                    newTemp.setSVersion(nextVersion);
+                                    newTemp.setEVersion(nextVersion);
+                                    newTemp.setQuantity(bom.getQuantity());
+                                    //2323-09-08 涓庢潹绾㈠叞寰俊纭<灏辨寜鐓ф垜涓婁紶娓呭崟鐨勬椂闂达紝绯荤粺閲屾渶鏂扮殑鏄暐鍨嬪彿锛屽氨鍙栦粈涔堝瀷鍙�>
+                                    Material relatedMaterial = mService.getLastByCode(related);
+                                    if(relatedMaterial == null){
+                                        throw new RuntimeException("褰撳墠鏇挎枡"+related+",缂栫爜鍦ㄥ钩鍙颁腑涓嶅瓨鍦�,鏃犳硶鍏宠仈鏇夸唬");
+                                    }
+                                    newTemp.setMaterialId(relatedMaterial.getId());
+                                    newTemp.setCreateTime(date);
+                                    newAddedList.add(newTemp);
                                 }
                             }
-                            if(!exists) { //涓嶅瓨鍦ㄧ浉閭诲強鐩稿悓鐨勮褰曠増鏈�,鏂板
+                        }
+                        else{
+                            String[] relatedList;
+                            if (relatedMaterialCodes.contains(",")) {
+                                relatedList = relatedMaterialCodes.split(",");
+                            } else {
+                                relatedList = relatedMaterialCodes.split("锛�");
+                            }
+                            for (String related : relatedList) {
                                 MaterialProductHistory newTemp = new MaterialProductHistory();
                                 newTemp.setParentCode(parentCode);
                                 newTemp.setCustomCode(customCode);
                                 newTemp.setSubCode(bom.getSubCode());
-                                Material material = mService.getByCodeAndModel(bom.getSubCode(), bom.getSubModel());
+                                Material material = mService.getByCodeAndModel(bom.getSubCode(), bom.getSubModel(),true);
                                 newTemp.setSubMaterialId(material.getId());
                                 newTemp.setSVersion(nextVersion);
                                 newTemp.setEVersion(nextVersion);
@@ -615,33 +663,6 @@
                                 newTemp.setCreateTime(date);
                                 newAddedList.add(newTemp);
                             }
-                        }
-                    }
-                    else{
-                        String[] relatedList;
-                        if (relatedMaterialCodes.contains(",")) {
-                            relatedList = relatedMaterialCodes.split(",");
-                        } else {
-                            relatedList = relatedMaterialCodes.split("锛�");
-                        }
-                        for (String related : relatedList) {
-                            MaterialProductHistory newTemp = new MaterialProductHistory();
-                            newTemp.setParentCode(parentCode);
-                            newTemp.setCustomCode(customCode);
-                            newTemp.setSubCode(bom.getSubCode());
-                            Material material = mService.getByCodeAndModel(bom.getSubCode(), bom.getSubModel());
-                            newTemp.setSubMaterialId(material.getId());
-                            newTemp.setSVersion(nextVersion);
-                            newTemp.setEVersion(nextVersion);
-                            newTemp.setQuantity(bom.getQuantity());
-                            //2323-09-08 涓庢潹绾㈠叞寰俊纭<灏辨寜鐓ф垜涓婁紶娓呭崟鐨勬椂闂达紝绯荤粺閲屾渶鏂扮殑鏄暐鍨嬪彿锛屽氨鍙栦粈涔堝瀷鍙�>
-                            Material relatedMaterial = mService.getLastByCode(related);
-                            if(relatedMaterial == null){
-                                throw new RuntimeException("褰撳墠鏇挎枡"+related+",缂栫爜鍦ㄥ钩鍙颁腑涓嶅瓨鍦�,鏃犳硶鍏宠仈鏇夸唬");
-                            }
-                            newTemp.setMaterialId(relatedMaterial.getId());
-                            newTemp.setCreateTime(date);
-                            newAddedList.add(newTemp);
                         }
                     }
                 }
@@ -735,13 +756,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 +772,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,36 +830,83 @@
                 }
             });
 
-            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());
-            List<Material> materialList = new LinkedList<>();
+            //闇�瑕佹洿鏂板埌鐗╂枡琛ㄤ腑鐨勭墿鏂�(瀛樺湪鍥剧焊鎴栬�呭浘鐗�)
+            List<MaterialHistory> materialHistoryList = new LinkedList<>();
+            //鏂扮墿鏂�
+            List<Material> newMaterialList = new LinkedList<>();
+            //鍒ゆ柇鐗╂枡鏄惁宸茬粡瀛樺湪浜庣墿鏂欒〃涓�
             List<Material> materialUpdateList = new LinkedList<>();
             for (ProductBom bom : bomList) {
                 if (!subCodeList.contains(bom.getSubCode() + "/" + bom.getSubModel())) {
@@ -846,16 +915,17 @@
                     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());
                     material.setSubName(bom.getSubName());
                     material.setType(bom.getType());
                     material.setUnit(bom.getUnit());
+                    material.setUpUserId(userId);
 
-                    materialList.add(material);
+                    newMaterialList.add(material);
                 } else { //鐗╂枡宸茬粡瀛樺湪鐨�
+                    // 鐗╂枡鍘嗗彶琛ㄦ槸涓轰簡瀛樺偍鐗╂枡鐨勫巻鍙插浘鐗囧拰dwg鍥剧焊
                     Material material = new Material();
                     if (bom.getPictureUrl() != null) {
                         material.setPictureUrl(bom.getPictureUrl());
@@ -871,10 +941,10 @@
                 }
             }
             //瀵规柊澧炲埌鐗╂枡琛ㄤ腑鐨勭墿鏂�,鏍规嵁 鐗╂枡缂栫爜+鐗╂枡鍨嬪彿 杩涜鍘婚噸澶勭悊
-            materialList = materialList.stream().filter(distinctByKey(m->m.getSubCode()+"/"+m.getSubModel())).collect(Collectors.toList());
+            newMaterialList = newMaterialList.stream().filter(distinctByKey(m->m.getSubCode()+"/"+m.getSubModel())).collect(Collectors.toList());
 
             //姣嶆枡鏄惁瀛樺湪
-            Material materialDB = mService.getByCodeAndModel(product.getParentCode(), product.getParentModel());
+            Material materialDB = mService.getByCodeAndModel(product.getParentCode(), product.getParentModel(),true);
             if (materialDB == null) {
                 Material material = new Material();
                 material.setSubCode(product.getParentCode());
@@ -882,11 +952,12 @@
                 material.setSubModel(product.getParentModel());
                 material.setCreateDate(date);
                 material.setStatus(1);
+                material.setUpUserId(userId);
 
-                materialList.add(material);
+                newMaterialList.add(material);
             }
-            if(materialList.size()!=0) {
-                mService.insertBatch(materialList);
+            if(newMaterialList.size()!=0) {
+                mService.insertBatch(newMaterialList);
             }
             if(materialUpdateList.size()!=0) {
                 mService.updateDwgUrlAndPicUrl(materialUpdateList);
@@ -970,6 +1041,58 @@
                 bomHistoryList.add(bomHistory);
             });
             pbhService.insertBatch(bomHistoryList);
+            //鎻掑叆鍒扮墿鏂欏巻鍙茶〃鐨�,
+            // 鍖呭惈鏂扮墿鏂欏寘鍚浘绾稿浘鐗囩殑,
+            // 涔熷寘鍚棫鐗╂枡鍖呭惈鍥剧焊鍥剧墖鐨�
+            if(newMaterialList.size()>0){
+                for (Material material : newMaterialList) {
+                    //瀛樺湪鍥剧焊鎴栬�呭浘鐗�,灏辨彃鍏ュ巻鍙�
+                    if(material.getDwgUrl()!=null || material.getPictureUrl()!=null) {
+                        MaterialHistory materialHistory = new MaterialHistory();
+                        materialHistory.setPictureUrl(material.getPictureUrl());
+                        materialHistory.setProductId(productHistory.getId());
+                        materialHistory.setDwgUrl(material.getDwgUrl());
+                        materialHistory.setUpUserId(userId.intValue());
+                        materialHistory.setCreateTime(date);
+                        materialHistory.setMaterialId(material.getId());
+                        materialHistoryList.add(materialHistory);
+                    }
+                }
+            }
+            if(materialUpdateList.size()>0) {
+                //鏇存柊鐗╂枡鍥剧焊鍥剧墖鐨勫悓鏃�,娣诲姞鏂扮殑鍥剧焊鍥剧墖淇℃伅鍒扮墿鏂欏巻鍙茶〃涓�
+                for (Material material : materialUpdateList) {
+                    MaterialHistory materialHistory = new MaterialHistory();
+                    materialHistory.setPictureUrl(material.getPictureUrl());
+                    materialHistory.setProductId(productHistory.getId());
+                    materialHistory.setDwgUrl(material.getDwgUrl());
+                    materialHistory.setUpUserId(userId.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);
+                }
+            }
+            if(materialHistoryList.size()>0) {
+                materialHistoryService.addBatch(materialHistoryList);
+            }
+            //濡傛灉鏂颁笂浼犵殑bom涓瓨鍦�0108銆�0109寮�澶寸殑鐗╂枡,(鑲畾浼氳璇嗗埆鎴愭柊鐗╂枡,涔嬪墠鐨勬搷浣滃凡缁忚鎻掑叆鍒拌〃涓�)
+            // 鍦ㄦ暟鎹簱瀛樺湪鐩稿悓鐨勭墿鏂欑紪鐮佸瓨鍦ㄤ笖涓嶅悓鐨勭墿鏂欏瀷鍙�,鍒欏皢鏁版嵁搴撴渶鏂扮殑鐗╂枡鐨勯檮浠跺鍒朵竴浠藉苟鐘舵�佸悓姝�,濉厖鍒版柊鐨勭墿鏂欒〃涓�
+            for (Material material : newMaterialList) { //鏂扮墿鏂�
+                String subCode = material.getSubCode();
+                String subModel = material.getSubModel();
+                if(subCode.startsWith("0108") || subCode.startsWith("0109")){
+                    Material materialWithSameCodeLatest = mService.getByCodeAndModel(subCode, subModel, false);
+                    if(materialWithSameCodeLatest!=null){
+                        //闄勪欢杞Щ骞惰缃�
+                        mService.transferCopiedAttachment(materialWithSameCodeLatest,material);
+                    }
+                }
+            }
 
         }
         //娣诲姞鏂板鏃ュ織鍒皌b_product_lock_log琛�
@@ -985,7 +1108,7 @@
         lockLog.setLockFlag(-1);
 
         productLockLogService.insert(lockLog);
-        return new Response().setII(1,"鏂板瀹屾垚");
+        return new Response().set(1,true,"鏂板瀹屾垚");
     }
 
     private void deleteAndInsert(Product product) {
@@ -1022,12 +1145,12 @@
         return new Response().setIII(1,listMaterial.size()>0||listProduct.size()>0,listMaterial,listProduct,"");
     }
 
-    //鍙嶉绠$悊-鏌ヨ褰撳墠浣跨敤鐨勬墍鏈夌殑浜у搧
+    //鍙嶉绠$悊-鏌ヨ鎵�鏈夌殑浜у搧
     public Response getFkProduct() {
-        QueryWrapper wrapper=new QueryWrapper();
-        wrapper.ne("version",-1);
-        List list=mapper.selectList(wrapper);
-        return new Response().setII(1,list.size()>0,list,"鍙嶉绠$悊-鏌ヨ褰撳墠浣跨敤鐨勬墍鏈夌殑浜у搧");
+        //QueryWrapper wrapper=new QueryWrapper();
+        //wrapper.ne("version",-1);
+        List list=mapper.selectList(null);
+        return new Response().setII(1,list.size()>0,list,"鍙嶉绠$悊-鏌ヨ鎵�鏈夌殑浜у搧");
     }
 
     //浜у搧瀵规瘮涓嬫媺閫変腑
@@ -1039,5 +1162,9 @@
         Map<Object, Boolean> seen = new ConcurrentHashMap<>();
         return object -> seen.putIfAbsent(keyExtractor.apply(object), Boolean.TRUE) == null;
     }
-
+    //楠岃瘉姣嶆枡缂栫爜鏄惁瀛樺湪浜у搧涓�
+    public Response judgeParentCode(String parentCode,String customCode) {
+        int count = mapper.judgeParentCode(parentCode,customCode);
+        return  new Response().set(1,count>0,"楠岃瘉姣嶆枡缂栫爜鏄惁瀛樺湪浜у搧涓�");
+    }
 }

--
Gitblit v1.9.1