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 | 180 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 115 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java index 5ca1f8e..bdc8e43 100644 --- a/src/main/java/com/whyc/service/ProductService.java +++ b/src/main/java/com/whyc/service/ProductService.java @@ -149,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帇鏂囦欢澶� @@ -368,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); @@ -580,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); @@ -623,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); } } } @@ -889,7 +902,11 @@ 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())) { @@ -906,8 +923,9 @@ 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()); @@ -923,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()); @@ -936,10 +954,10 @@ 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); @@ -1023,10 +1041,26 @@ 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) { //鏇存柊鐗╂枡鍥剧焊鍥剧墖鐨勫悓鏃�,娣诲姞鏂扮殑鍥剧焊鍥剧墖淇℃伅鍒扮墿鏂欏巻鍙茶〃涓� - List<MaterialHistory> materialHistoryList = new LinkedList<>(); for (Material material : materialUpdateList) { MaterialHistory materialHistory = new MaterialHistory(); materialHistory.setPictureUrl(material.getPictureUrl()); @@ -1042,8 +1076,24 @@ } 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琛� ProductLockLog lockLog = new ProductLockLog(); @@ -1095,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,"鍙嶉绠$悊-鏌ヨ鎵�鏈夌殑浜у搧"); } //浜у搧瀵规瘮涓嬫媺閫変腑 -- Gitblit v1.9.1