Browse Source

预装箱单和成衣装箱单导入改动

huxy 2 years ago
parent
commit
64ef430fbe

+ 69 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/controller/SyPreAssembledPackingListController.java

@@ -1422,15 +1422,6 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                 List<String> strs2=new ArrayList<String>();//获取尺码的信息
                 for (int i=0;i<row.getLastCellNum();i++){
                     Cell cell=row.getCell(i);
-                    if(cell==null){
-                        throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
-                                sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
-                    }
-                    cell.setCellType(CellType.STRING);//获取的都转换成String
-                    if(cell.getStringCellValue().length()<1&&!nums.contains(i)){
-                        throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
-                                sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
-                    }
                     if(x==0){
                         if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
                             strs3.add(cell.getStringCellValue());
@@ -1440,14 +1431,58 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                             System.out.println("字段\t"+cell.getStringCellValue()+"\t"+i);
                         }
                     }else{
-                        if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
+                        /*if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
+                            if(cell==null){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
+                            cell.setCellType(CellType.STRING);//获取的都转换成String
+                            if(cell.getStringCellValue().length()<1&&!nums.contains(i)){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
                             strs2.add(cell.getStringCellValue());
+
                         }else{
+                            if(cell==null){
+                                strs.add("");
+                            }else{
+                                cell.setCellType(CellType.STRING);//获取的都转换成String
+                                strs.add(cell.getStringCellValue());
+                            }
+                        }*/
+
+                        if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
+                            if(cell==null){
+                                strs2.add("");
+                            }else{
+                                cell.setCellType(CellType.STRING);//获取的都转换成String
+                                strs2.add(cell.getStringCellValue());
+                            }
+                        }else{
+                            if(cell==null){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
+                            cell.setCellType(CellType.STRING);//获取的都转换成String
+                            if(cell.getStringCellValue().length()<1&&!nums.contains(i)){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
                             strs.add(cell.getStringCellValue());
                         }
                     }
                 }
                 if(x>0){
+                    BigDecimal total=new BigDecimal("0");
+                    for (String str : strs2){
+                        if(SyPreAssembledPackingListItem.isNumeric(str)){
+                            total=new BigDecimal(str);
+                        }
+                    }
+                    if(total.doubleValue()==0){
+                        throw new JeecgBootException("一行数据中至少有一个尺码得填值");
+                    }
                     SyPreAssembledPackingListItem item=
                             new SyPreAssembledPackingListItem(strs.toArray(new String[strs.size()]),
                                     strs2.toArray(new String[strs2.size()]),
@@ -1524,15 +1559,6 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                 List<String> strs2=new ArrayList<String>();//获取尺码的信息
                 for (int i=0;i<row.getLastCellNum();i++){
                     Cell cell=row.getCell(i);
-                    if(cell==null){
-                        throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
-                                sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
-                    }
-                    cell.setCellType(CellType.STRING);//获取的都转换成String
-                    if(cell.getStringCellValue().length()<1&&x>0&&!nums.contains(i)){
-                        throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
-                                sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
-                    }
                     if(x==0){
                         if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
                             strs3.add(cell.getStringCellValue());
@@ -1542,14 +1568,37 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                         }
                     }else{
                         if((i>7&&i<row.getLastCellNum()-13)||i==row.getLastCellNum()-4){
-                            strs2.add(cell.getStringCellValue());
+                            if(cell==null){
+                                strs2.add("");
+                            }else{
+                                cell.setCellType(CellType.STRING);//获取的都转换成String
+                                strs2.add(cell.getStringCellValue());
+                            }
                         }else{
+                            if(cell==null){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
+                            cell.setCellType(CellType.STRING);//获取的都转换成String
+                            if(cell.getStringCellValue().length()<1&&!nums.contains(i)){
+                                throw new JeecgBootException("第"+num+"页的"+"第"+(x+1)+"行的"+
+                                        sheet.getRow(0).getCell(i).getStringCellValue()+"未填值!");
+                            }
                             strs.add(cell.getStringCellValue());
                         }
                     }
                 }
                 //System.out.println("strs2\t"+strs2);
                 if(x>0){
+                    BigDecimal total=new BigDecimal("0");
+                    for (String str : strs2){
+                        if(SyPreAssembledPackingListItem.isNumeric(str)){
+                            total=new BigDecimal(str);
+                        }
+                    }
+                    if(total.doubleValue()==0){
+                        throw new JeecgBootException("每行数据里至少得有一个尺码填上值");
+                    }
                     SyPreAssembledPackingListItem item=
                             new SyPreAssembledPackingListItem(strs.toArray(new String[strs.size()]),
                                     strs2.toArray(new String[strs2.size()]),

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/entity/SizeTable.java

@@ -20,7 +20,7 @@ public class SizeTable {
 
     @Excel(name = "比例", width = 15)
     @ApiModelProperty(value = "比例")
-    private int proportion;//比例
+    private Integer proportion;//比例
 
     @Excel(name = "数量", width = 15)
     @ApiModelProperty(value = "数量")

+ 14 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/entity/SyPreAssembledPackingListItem.java

@@ -342,7 +342,10 @@ public class SyPreAssembledPackingListItem implements Serializable {
 				SizeTable sizeTable=new SizeTable();
 				sizeTable.setSize(parsms3[i]);//尺码
 		//		System.out.println("params2\t"+parsms2[i]);
-				int box=Integer.parseInt(parsms2[i]);
+				int box=0;
+				if(isNumeric(parsms2[i])){
+					box=Integer.parseInt(parsms2[i]);
+				}
 				piecesBox+=box;
 				sizeTable.setProportion(box);//比例
 				planSize+=parsms3[i]+":"+(boxNumber.intValue()*sizeTable.getProportion())+"+";
@@ -362,6 +365,16 @@ public class SyPreAssembledPackingListItem implements Serializable {
 		}
 	}
 
+	public static boolean isNumeric(String str) {
+		String bigStr;
+		try {
+			bigStr = new BigDecimal(str).toString();
+		} catch (Exception e) {
+			return false;//异常 说明包含非数字。
+		}
+		return true;
+	}
+
 	public String toString2() {
 		String sizes="";
 		for (SizeTable size : sizeTables){

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/xml/SyPreAssembledPackingListItemMapper.xml

@@ -63,6 +63,7 @@
 		FROM  sy_pre_assembled_packing_list_item
 		WHERE sy_pre_assembled_packing_list_id = #{value} AND del_flag = 0
 		GROUP BY group_id/*原本按照颜色进行分组 现改为按照分组id*/
+		order by starting_Box_Number+0
 	</select>
 
 	<select id="selectAll" parameterType="java.lang.String" resultType="org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem">

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/mapper/xml/SyPreAssembledPackingListMapper.xml

@@ -70,10 +70,10 @@
         b.master_Metering,/*计量单位*/
         SUM(b.total) total,/*件数*/
         b.hod as  preDeliveryDate,/*预发货日期*/
-        b.total_net_weight totalnetweight,/*总净重*/
-        b.total_gross_weight totalgrossweight,/*总毛重*/
-        b.total_volume totalvolume,/*总体积*/
-        b.total_price totalprice,/*总价*/
+        a.total_net_weight totalnetweight,/*总净重*/
+        a.total_gross_weight totalgrossweight,/*总毛重*/
+        a.total_volume totalvolume,/*总体积*/
+        a.total_price totalprice,/*总价*/
         /*sum(b.total) totalquantity,*/
         b.factory_Unit_Price factoryUnitPrice,/*工厂单价*/
         a.spur_or_sub_order,/*采购委外订单号*/

+ 41 - 38
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/impl/SyPreAssembledPackingListServiceImpl.java

@@ -128,14 +128,20 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 			box=box.add(boxNumber1);//合计
 			item.setDelFlag("0");
 			for (SizeTable size : sizes){
+				if(size.getProportion()==null){
+					size.setProportion(0);
+				}
 				SyPreAssembledPackingListItem item1=item;
-				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 				item1.setSize(size.getSize());//获取尺码信息
+				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 				item1.setTotal(boxNumber);//该尺码件数
-				item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
+				if(size.getProportion()==0){
+					item1.setTotal(null);//该尺码件数
+				}
+				//item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
 				item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
 				//item1.setBoxNumber(boxNumber);//获取箱数
-				boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
+				//boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
 
 				//item1.setTotalNetWeight(boxNumber.multiply(item1.getNetWeight()));//获取总净重		净重*箱数
 				//item1.setTotalGrossWeight(boxNumber.multiply(item1.getGrossWeight()));//获取总毛重 	箱数*毛重/箱
@@ -152,18 +158,18 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				item1.setSyDeclarationElementsItemId(syDeclarationElementsItemId);
 				//获取发育明细数据
 				SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
-				if(syItem!=null){
-					//获取委外/采购订单子表Id
-					item1.setOmpoIdItem(syItem.getOmpoIdItem());
-					item1.setOmpoAccount(syItem.getOmpoAccount());
-					item1.setOmpoId(syItem.getOmpoId());
-					item1.setOrderNumber(syItem.getOrderNumber());//获取订单号
-					item1.setSupplierCode(syItem.getSupplierCode());
-					item1.setSupplier(syItem.getSupplier());
-					//获取订单子表id
-					item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());
-				}
 				if(item.getIsAdd()>0){//如果为0就添加数据
+					if(syItem!=null){
+						//获取委外/采购订单子表Id
+						item1.setOmpoIdItem(syItem.getOmpoIdItem());
+						item1.setOmpoAccount(syItem.getOmpoAccount());
+						item1.setOmpoId(syItem.getOmpoId());
+						item1.setOrderNumber(syItem.getOrderNumber());//获取订单号
+						item1.setSupplierCode(syItem.getSupplierCode());
+						item1.setSupplier(syItem.getSupplier());
+						//获取订单子表id
+						item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());
+					}
 					item1.setSyPreAssembledPackingListId(pid);
 					item1.setId(oConvertUtils.id());//获取到随机id
 					syPreAssembledPackingListItemMapper.insert(item1);
@@ -380,8 +386,9 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 	@Override
 	public SyPreAssembledPackingList queryById(QueryWrapper<SyPreAssembledPackingList> queryWrapper) {
 		SyPreAssembledPackingList syPreAssembledPackingList=syPreAssembledPackingListMapper.selectOne(queryWrapper);
-		if(syPreAssembledPackingList!=null&&syPreAssembledPackingList.getId()!=null)
-		syPreAssembledPackingList.setSizeTables(syPreAssembledPackingListItemMapper.querySizes2(syPreAssembledPackingList.getId()));
+		if(syPreAssembledPackingList!=null&&syPreAssembledPackingList.getId()!=null){
+			syPreAssembledPackingList.setSizeTables(syPreAssembledPackingListItemMapper.querySizes2(syPreAssembledPackingList.getId()));
+		}
 		SyPreAssembledPackingList syPreAssembledPackingList2=syPreAssembledPackingListMapper.selectByOneId(syPreAssembledPackingList.getId());
 		syPreAssembledPackingList.setEnglishProductName(syPreAssembledPackingList2.getEnglishProductName());
 		syPreAssembledPackingList.setProductName(syPreAssembledPackingList2.getProductName());
@@ -522,9 +529,8 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 			if(!strs.equals("")){
 				throw new JeecgBootException(strs);
 			}*/
-			System.out.println("原单据数量,已参照数量,本次数量");
+			//System.out.println("原单据数量,已参照数量,本次数量");
 			for(SyPreAssembledPackingList syPreAssembledPackingList : items1){
-				List<SyPreAssembledPackingListItem> items=syPreAssembledPackingList.getSyPreAssembledPackingListItemList();
 				SimpleDateFormat sf= new SimpleDateFormat("yyyyMMdd");
 				QueryWrapper<SyPreAssembledPackingList> queryWrapperCount=new QueryWrapper<>();
 				queryWrapperCount.like("create_time", new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));
@@ -541,37 +547,34 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				syPreAssembledPackingList.setTotalVolume(new BigDecimal("0"));
 				syPreAssembledPackingList.setTotalPrice(new BigDecimal("0"));
 				syPreAssembledPackingListMapper.insert(syPreAssembledPackingList);//往主表添加数据
+				List<SyPreAssembledPackingListItem> items=syPreAssembledPackingList.getSyPreAssembledPackingListItemList();
+				System.out.println("items的长度\t"+items.size());
 				for (SyPreAssembledPackingListItem item : items){
-					System.out.println("净重\t"+item.getTotalNetWeight());
-					syPreAssembledPackingList.setTotal(item.getTotal());
-					syPreAssembledPackingList.setTotalBoxes(item.getBoxNumber());
-					syPreAssembledPackingList.setTotalNetWeight(item.getTotalNetWeight());
-					syPreAssembledPackingList.setTotalGrossWeight(item.getTotalGrossWeight());
-					syPreAssembledPackingList.setTotalVolume(item.getTotalVolume());
+				//	System.out.println("净重\t"+item.getTotalNetWeight());
+					syPreAssembledPackingList.setTotalBoxes(syPreAssembledPackingList.getTotalBoxes().add(item.getBoxNumber()));
+					syPreAssembledPackingList.setTotalNetWeight(syPreAssembledPackingList.getTotalNetWeight().add(item.getTotalNetWeight()));
+					syPreAssembledPackingList.setTotalGrossWeight(syPreAssembledPackingList.getTotalGrossWeight().add(item.getTotalGrossWeight()));
+					syPreAssembledPackingList.setTotalVolume(syPreAssembledPackingList.getTotalVolume().add(item.getTotalVolume()));
 					List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
 					item.setSyPreAssembledPackingListId(syPreAssembledPackingList.getId());//获取主表id
 					BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
 					item.setActualPackingQty(item.getTotal());//计划装箱数量
 					item.setGroupId(org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
-					item.setDelFlag("0");//默认为未删除
+					item.setDelFlag("0");//默认为未删除er
 					for (SizeTable size : sizes){
+						if(size.getProportion()==null){
+							size.setProportion(0);
+						}
 						SyPreAssembledPackingListItem item1=item;
+						item1.setSize(size.getSize());//获取尺码信息
 						BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 						item1.setTotal(boxNumber);//该尺码件数
-						item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
-						item1.setSize(size.getSize());//获取尺码
+						syPreAssembledPackingList.setTotal(syPreAssembledPackingList.getTotal().add(boxNumber));
 						item1.setActualPackingQty(size.getQuantity());//获取该尺码计划装箱数量
-						//item1.setBoxNumber(boxNumber);//获取箱数
-
-						//boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
-						/*boxNumber=item1.getBoxNumber();//根据箱数来算
-						item1.setTotalNetWeight(boxNumber.multiply(item1.getNetWeight()));//获取总净重		净重*箱数
-						item1.setTotalGrossWeight(boxNumber.multiply(item1.getGrossWeight()));//获取总毛重 	箱数*毛重/箱
-						BigDecimal volume=boxNumber.multiply(item1.getOuterBoxHeight());
-						volume=volume.multiply(item1.getOuterBoxLength());
-						volume=volume.multiply(item1.getOuterBoxWidth());
-						item1.setTotalVolume(volume.divide(new BigDecimal(1000000)));*///获取总体积	长*宽*高*箱数
-
+						if(size.getProportion()==0){
+							item1.setTotal(null);//该尺码件数
+						}
+						item1.setSize(size.getSize());//获取尺码
 						item1.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
 						item1.setSort(size.getNum());//获取序号
 						item1.setId(oConvertUtils.id());//获取到随机id

+ 16 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/SyPackingListTailoringItem.java

@@ -351,9 +351,13 @@ public class SyPackingListTailoringItem implements Serializable {
 			for (int i=0;i<params3.length;i++){
 				SizeTable sizeTable=new SizeTable();
 				sizeTable.setSize(params3[i]);//尺码
-				piecesBox+=Integer.parseInt(params2[i]);
-				sizeTable.setProportion(Integer.parseInt(params2[i]));//比例
-				planSize+=params3[i]+":"+(boxNumber.intValue()*sizeTable.getProportion())+"+";
+				int box=0;
+				if(isNumeric(params2[i])){
+					box=Integer.parseInt(params2[i]);
+				}
+				piecesBox+=box;
+				sizeTable.setProportion(box);//比例
+				planSize+=params3[i]+":"+(boxNumber.intValue()*box)+"+";
 				sizeTable.setItemId(params2[params2.length-1].split("-")[i]);//发运明细子表id
 				sizeTables.add(sizeTable);
 			}
@@ -369,6 +373,15 @@ public class SyPackingListTailoringItem implements Serializable {
 
 	}
 
+	public static boolean isNumeric(String str) {
+		String bigStr;
+		try {
+			bigStr = new BigDecimal(str).toString();
+		} catch (Exception e) {
+			return false;//异常 说明包含非数字。
+		}
+		return true;
+	}
 	public String toString2() {
 		String sizes="";
 		for (SizeTable size : sizeTables){

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/xml/syPackingListTailoringItemMapper.xml

@@ -123,6 +123,7 @@
 	FROM  sy_packing_list_tailoring_item
 	WHERE sy_packing_list_tailoring_id =#{value} AND del_flag = 0
 	GROUP BY group_id
+	order by starting_Box_Number+0
 	</select>
 
 	<select id="size" resultType="org.jeecg.modules.spapl.entity.SizeTable">

+ 27 - 28
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -68,22 +68,18 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			item.setGroupId(oConvertUtils.id());
 			item.setDelFlag("0");//删除
 			for (SizeTable size : sizes){
+				if(size.getProportion()==null){
+					size.setProportion(0);
+				}
 				SyPackingListTailoringItem item1=item;
-				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
-				//item1.setPlanQuantity(size.getQuantity());//计划装箱数量
 				item1.setSize(size.getSize());//获取尺码信息
+				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 				item1.setTotal(boxNumber);//该尺码件数
+				if(size.getProportion()==0){
+					item1.setTotal(null);//该尺码件数
+				}
 				item1.setActualPackingQty(boxNumber);
 				item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
-				//item1.setBoxNumber(boxNumber);//获取箱数
-				/*boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
-				item1.setTotalNetWeight(boxNumber.multiply(item1.getNetWeight()));//获取总净重		净重*箱数
-				item1.setTotalGrossWeight(boxNumber.multiply(item1.getGrossWeight()));//获取总毛重 	箱数*毛重/箱
-				//item1.setTotalNetWeight(boxNumber.multiply(new BigDecimal(size.getProportion())));//获取净净重 不知
-				BigDecimal volume=boxNumber.multiply(item1.getOuterBoxHeight());//获取体积
-				volume=volume.multiply(item1.getOuterBoxLength());
-				volume=volume.multiply(item1.getOuterBoxWidth());
-				item1.setTotalVolume(volume.divide(new BigDecimal(1000000)));//获取总体积	长*宽*高*箱数*/
 
 				//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
 				item1.setId(size.getItemId());//从尺码表中获取到id
@@ -153,9 +149,16 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				item.setGroupId(oConvertUtils.id());//分组随机id
 				item.setDelFlag("0");//默认为未删除
 				for (SizeTable size : sizes){
+					if(size.getProportion()==null){
+						size.setProportion(0);
+					}
 					SyPackingListTailoringItem item1=item;
+					item1.setSize(size.getSize());//获取尺码信息
 					BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 					item1.setTotal(boxNumber);//该尺码件数
+					if(size.getProportion()==0){
+						item1.setTotal(null);//该尺码件数
+					}
 					item1.setActualPackingQty(boxNumber);
 					item1.setPlanQuantity(size.getQuantity());//计划装箱数量
 					item1.setSize(size.getSize());//获取尺码
@@ -164,8 +167,8 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					item1.setSort(size.getNum());//获取序号
 					item1.setId(oConvertUtils.id());//获取到随机id
 					SyPreAssembledPackingListItem syPreItem=syPreAssembledPackingListItemMapper.selectById(item.getSyPreAssembledPackingListItemId());//获取预装箱单数据
-					syPreItem.setRemainingQuantity(syPreItem.getRemainingQuantity().subtract(item.getTotal()));//新剩余数量=原剩余数量-装箱单新增数量
-					syPreItem.setExcessQuantity(syPreItem.getRemainingQuantity().subtract(item1.getTotal()).negate());
+					syPreItem.setRemainingQuantity(syPreItem.getRemainingQuantity().subtract(boxNumber));//新剩余数量=原剩余数量-装箱单新增数量
+					syPreItem.setExcessQuantity(syPreItem.getRemainingQuantity().subtract(boxNumber).negate());
 					item1.setSalesman(syPreItem.getSalesman());//获取业务员
 					item1.setSalesDepartment(syPreItem.getSalesDepartment());//获取业务部门
 					item1.setSyOrderDataId(syPreItem.getSyOrderDataId());//订单数据主表id
@@ -550,23 +553,19 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					syPackingListTailoring.setTotalGrossWeight(syPackingListTailoring.getTotalGrossWeight().add(item.getTotalGrossWeight()));
 					syPackingListTailoring.setTotalVolume(syPackingListTailoring.getTotalVolume().add(item.getTotalVolume()));
 					for (SizeTable size : sizes){
+						if(size.getProportion()==null){
+							size.setProportion(0);
+						}
 						SyPackingListTailoringItem item1=item;
+						item1.setSize(size.getSize());//获取尺码信息
 						BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 						item1.setTotal(boxNumber);//该尺码件数
+						if(size.getProportion()==0){
+							item1.setTotal(null);//该尺码件数
+						}
 						item1.setPlanQuantity(boxNumber);//计划装箱数量
 						item1.setActualPackingQty(boxNumber);//实际装箱数量
 						item1.setPlanQuantity(boxNumber);//计划装箱数量
-						item1.setSize(size.getSize());//获取尺码
-
-					/*	boxNumber=boxNumber.divide(item.getPiecesBox(),6,BigDecimal.ROUND_HALF_UP);
-						item1.setTotalNetWeight(boxNumber.multiply(item1.getNetWeight()));//获取总净重		净重*箱数
-						item1.setTotalGrossWeight(boxNumber.multiply(item1.getGrossWeight()));//获取总毛重 	箱数*毛重/箱
-						BigDecimal volume=boxNumber.multiply(item1.getOuterBoxHeight());
-						volume=volume.multiply(item1.getOuterBoxLength());
-						volume=volume.multiply(item1.getOuterBoxWidth());
-						item1.setTotalVolume(volume.divide(new BigDecimal(1000000)));//获取总体积	长*宽*高*箱数*/
-
-
 						item1.setSyPreAssembledPackingListItemId(size.getItemId());//获取到预装箱单子表id
 						item1.setSort(size.getNum());//获取序号
 						item1.setId(oConvertUtils.id());//获取到随机id
@@ -579,7 +578,9 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 							item1.setWithCode(syPreItem.getWithCode());
 
 							item1.setUnitPrice(syPreItem.getUnitPrice());//获取销售单价
-							//item1.setFactoryUnitPrice(new BigDecimal(syPreItem.getFactoryUnitPrice()==null?"0":syPreItem.getFactoryUnitPrice()));//工厂单价
+							if(item1.getFactoryUnitPrice()!=null){
+								item1.setFactoryUnitPrice(syPreItem.getFactoryUnitPrice());//工厂单价
+							}
 							item1.setInventoryName(syPreItem.getInventoryName());//存货名称
 							item1.setAcSetNo(syPreItem.getAcSetNo());//获取账套号
 							item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
@@ -645,9 +646,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					queryWrapper.eq("del_Flag","0");//未删除
 					SyPackingListTailoringItem syPackingItem=syPackingListTailoringItemMapper.selectOne(queryWrapper);
 					if(syPackingItem!=null){
-					//	total2=syPackingItem.getTotal();
-						System.out.println("syPackingItem的total为\t"+syPackingItem.getTotal());
-						throw new JeecgBootException("该单据已被成衣参照!请勿重复操作");
+						//throw new JeecgBootException("该单据已被成衣参照!请勿重复操作");
 					}
 				}
 			}