| | |
| | | Map<String, List<ProductBom>> groupedBaseBomList = baseProductBomList.stream().collect(Collectors.groupingBy(bom -> bom.getMaterialObj().getSubCode() + "/" + bom.getMaterialObj().getSubModel())); |
| | | List<String> codeModelList = bomList.stream().map(bom -> bom.getSubCode() + "/" + bom.getSubModel()).collect(Collectors.toList()); |
| | | |
| | | |
| | | String separator = "&&&&&"; |
| | | bomList.forEach(bom->{ |
| | | String codeModel = bom.getSubCode() + "/" + bom.getSubModel(); |
| | | if(!baseCodeModelList.contains(codeModel)){ |
| | | addList.add(bom); |
| | | }else{ |
| | | ProductBom baseBom = groupedBaseBomList.get(codeModel).get(0); |
| | | if(bom.getQuantity().intValue()!=baseBom.getQuantity()){ |
| | | /*if(bom.getQuantity().intValue()!=baseBom.getQuantity()){ |
| | | ProductBom diffBom = new ProductBom(); |
| | | String diffQuantity = "原数量:"+baseBom.getQuantity()+"/新数量:"+bom.getQuantity(); |
| | | diffBom.setNotes(diffQuantity); |
| | | diffBom.setMaterialObj(baseBom.getMaterialObj()); |
| | | diffList.add(diffBom); |
| | | }*/ |
| | | StringBuilder diffStr = new StringBuilder(); |
| | | if(!bom.getQuantity().equals(baseBom.getQuantity())){ |
| | | String diffQuantity = separator+"原数量:"+baseBom.getQuantity()+"/新数量:"+bom.getQuantity(); |
| | | diffStr.append(diffQuantity); |
| | | } |
| | | if(!bom.getProducer().equals(baseBom.getProducer())){ |
| | | String diffProducer = separator+"原生产商:"+baseBom.getProducer()+"/新生产商:"+bom.getProducer(); |
| | | diffStr.append(diffProducer); |
| | | } |
| | | if(!bom.getMaterial().equals(baseBom.getMaterial())){ |
| | | String diffMaterial = separator+"原封装类型|材质:"+baseBom.getMaterial()+"/新封装类型|材质:"+bom.getMaterial(); |
| | | diffStr.append(diffMaterial); |
| | | } |
| | | if(!bom.getThickness().equals(baseBom.getThickness())){ |
| | | String diffThickness = separator+"原元件编号|料厚:"+baseBom.getThickness()+"/新元件编号|料厚:"+bom.getThickness(); |
| | | diffStr.append(diffThickness); |
| | | } |
| | | if(!bom.getSurfaceDetail().equals(baseBom.getSurfaceDetail())){ |
| | | String diffSurfaceDetail = separator+"原表面处理|物料详情:"+baseBom.getSurfaceDetail()+"/新表面处理|物料详情:"+bom.getSurfaceDetail(); |
| | | diffStr.append(diffSurfaceDetail); |
| | | } |
| | | if(!bom.getNotes().equals(baseBom.getNotes())){ |
| | | String diffNotes = separator+"原备注:"+baseBom.getNotes()+"/新备注:"+bom.getNotes(); |
| | | diffStr.append(diffNotes); |
| | | } |
| | | |
| | | String diff = diffStr.toString(); |
| | | if(!diff.equals("")) { |
| | | ProductBom diffBom = new ProductBom(); |
| | | diffBom.setNotes(diff.substring(5)); |
| | | diffBom.setMaterialObj(baseBom.getMaterialObj()); |
| | | diffList.add(diffBom); |
| | | } |
| | | } |
| | | }); |