| | |
| | | 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); |
| | | //解压文件夹 |
| | |
| | | if(bom.getRelatedMaterialCodes()!=null) { |
| | | String relatedMaterialCodes = bom.getRelatedMaterialCodes().trim(); |
| | | if (!relatedMaterialCodes.equals("")) { |
| | | if (subMaterialListInDB.contains(bom.getSubCode()+"_"+bom.getSubModel())) { //当前物料有替代料 |
| | | 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())) { //当前物料有替代料 |
| | | 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.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(),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); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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())) { |