From 059f92c876540e505226b59d2184fdec0f9e13e7 Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期五, 22 十二月 2023 14:42:52 +0800 Subject: [PATCH] 物料历史更新 --- src/main/java/com/whyc/service/ProductService.java | 39 +++++++++++++++++++++++++++++++-------- 1 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java index 5ca1f8e..6cb9271 100644 --- a/src/main/java/com/whyc/service/ProductService.java +++ b/src/main/java/com/whyc/service/ProductService.java @@ -889,7 +889,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 +910,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,7 +928,7 @@ } } //瀵规柊澧炲埌鐗╂枡琛ㄤ腑鐨勭墿鏂�,鏍规嵁 鐗╂枡缂栫爜+鐗╂枡鍨嬪彿 杩涜鍘婚噸澶勭悊 - 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()); @@ -936,10 +941,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 +1028,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,6 +1063,8 @@ } materialHistoryList.add(materialHistory); } + } + if(materialHistoryList.size()>0) { materialHistoryService.addBatch(materialHistoryList); } } -- Gitblit v1.9.1