فهرست منبع

预装箱单,装箱单成衣模板导入

huxy 2 سال پیش
والد
کامیت
017356df00

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

@@ -3,6 +3,7 @@ package org.jeecg.modules.spapl.controller;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -20,6 +21,8 @@ import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.documents.letterDeposit.entity.SyLetterDepositItem;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
@@ -752,7 +755,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
     @AutoLog(value = "导出")
     @ApiOperation(value="导出", notes="导出")
     @RequestMapping(value = "/exportXls")
-    public Result<SyPreAssembledPackingList> exportXls3(HttpServletRequest request,HttpServletResponse response,String id) {
+    public Result<SyPreAssembledPackingList> exportXls3(HttpServletRequest request,HttpServletResponse response,String id,String status) {
         SyPreAssembledPackingList syPreAssembledPackingList=new SyPreAssembledPackingList();
         if(oConvertUtils.isNotEmpty(id)){
             syPreAssembledPackingList.setId(id);
@@ -781,6 +784,9 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                 temps.add(preAssembledPackingList);
             }
             String load="D:\\单证模板\\test2.xlsx";
+            if(status.equals("1")){
+                load="D:\\单证模板\\预装箱单成衣.xlsx";
+            }
             int count = temps.size();//分几条sheet
             File file=new File(load);
             TemplateExportParams templateExcelConstants=new TemplateExportParams(file.getAbsolutePath(),true,"预装箱单");
@@ -797,7 +803,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
             maps.put(0,listMap);
             templateExcelConstants.setColForEach(true);
             Workbook workbook = ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
-            refreshSheet(workbook,temps);//配置某列数据
+            refreshSheet(workbook,temps,status);//配置某列数据
             ServletOutputStream outputStream = response.getOutputStream();
             workbook.write(outputStream);
 
@@ -815,7 +821,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
 
     }
 
-    protected static void refreshSheet(Workbook workbook,List<SyPreAssembledPackingList> items) {
+    protected static void refreshSheet(Workbook workbook,List<SyPreAssembledPackingList> items,String name) {
         CellStyle cellStyle = workbook.createCellStyle();//设置单元格样式
 
         cellStyle.setAlignment(HorizontalAlignment.CENTER);//左右居中
@@ -849,32 +855,68 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                 for (SizeTable size : sypres.getSizeTables()){
                     strs+=size.getSize()+",";
                 }
-                String[] params=("序号,H/D,PO,款号,订单号,UNIT PRICE(单价),分销点,ITEMCODE,启始箱号,结束箱号,颜色(中英文),"+strs+"件数/每箱,箱数,总件数,外箱长度,外箱宽度,外箱高度,总体积,外箱净重,总净重,外箱毛重,总毛重,NN.W,总价,Lot NO,Packs CODE,DC NO,SKU号码,LABEL(标签),ORDER NO,Pre-Pack SKU Number").split(",");
-                Row row2 = sheet.createRow(3);
-                for (int x=0;x<params.length;x++){
-                    Cell cell = row2.createCell(x);//横向
-                    if(x>10&&x<params.length-20){
-                        cell.setCellStyle(cellStyle);
-                    }else{
-                        cell.setCellStyle(cellStyle2);
+                String[] params;
+                if(name.equals("1")){
+                    params=("序号,账套号,成衣工厂,H/D,PO,款号,订单号,UNIT PRICE(单价),分销点,ITEMCODE,PREPACK SKU,启始箱号,结束箱号," +
+                            "颜色(中英文),配码,"+strs+"件数/每箱,箱数,总件数,外箱长度,外箱宽度,外箱高度,总体积,外箱净重,总净重," +
+                            "外箱毛重,总毛重,NN.W,总价,业务员,业务部门,采购委外订单号,主表id,子表id").split(",");
+                    Row row2 = sheet.createRow(3);
+                    for (int x=0;x<params.length;x++){
+                        Cell cell = row2.createCell(x);//横向
+                        if(x>14&&x<params.length-18){
+                            cell.setCellStyle(cellStyle);
+                        }else{
+                            cell.setCellStyle(cellStyle2);
+                        }
+                        cell.setCellValue(params[x]);//比例
+                    }
+                }else{
+                    params=("序号,H/D,PO,款号,订单号,UNIT PRICE(单价),分销点,ITEMCODE,启始箱号,结束箱号," +
+                            "颜色(中英文),"+strs+"件数/每箱,箱数,总件数,外箱长度,外箱宽度,外箱高度,总体积,外箱净重,总净重," +
+                            "外箱毛重,总毛重,NN.W,总价,Lot NO,Packs CODE,DC NO,SKU号码,LABEL(标签),ORDER NO,Pre-Pack SKU Number").split(",");
+                    Row row2 = sheet.createRow(3);
+                    for (int x=0;x<params.length;x++){
+                        Cell cell = row2.createCell(x);//横向
+                        if(x>10&&x<params.length-20){
+                            cell.setCellStyle(cellStyle);
+                        }else{
+                            cell.setCellStyle(cellStyle2);
+                        }
+                        cell.setCellValue(params[x]);//比例
                     }
-                    cell.setCellValue(params[x]);//比例
                 }
                 List<SizeTable> sizes=list.get(i).getSizeTables();
                 SyPreAssembledPackingListItem itemN=list.get(0);
-                params=list.get(i).toString().replace("null","").split(",");
-                for (int y=0;y<params.length;y++){
-                    Cell cell = row.createCell(y);//横向
-                    if(y==0){
-                        cell.setCellStyle(cellStyle2);
-                        cell.setCellValue(i+1);//比例
-                        continue;
-                    } else if(y>10&&y<params.length-20){
-                        cell.setCellStyle(cellStyle);
-                    }else{
-                        cell.setCellStyle(cellStyle2);
+                if(name.equals("1")){
+                    params=list.get(i).toString3().replace("null","").split(",");
+                    for (int y=0;y<params.length;y++){
+                        Cell cell = row.createCell(y);//横向
+                        if(y==0){
+                            cell.setCellStyle(cellStyle2);
+                            cell.setCellValue(i+1);//比例
+                            continue;
+                        } else if(y>14&&y<params.length-18){
+                            cell.setCellStyle(cellStyle);
+                        }else{
+                            cell.setCellStyle(cellStyle2);
+                        }
+                        cell.setCellValue(params[y]);//比例
+                    }
+                }else{
+                    params=list.get(i).toString2().replace("null","").split(",");
+                    for (int y=0;y<params.length;y++){
+                        Cell cell = row.createCell(y);//横向
+                        if(y==0){
+                            cell.setCellStyle(cellStyle2);
+                            cell.setCellValue(i+1);//比例
+                            continue;
+                        } else if(y>10&&y<params.length-20){
+                            cell.setCellStyle(cellStyle);
+                        }else{
+                            cell.setCellStyle(cellStyle2);
+                        }
+                        cell.setCellValue(params[y]);//比例
                     }
-                    cell.setCellValue(params[y]);//比例
                 }
             }
         }
@@ -968,4 +1010,102 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
     public SyLetterDepositItem typeConversion(@RequestBody SyPreAssembledPackingListItem syPreAssembledPackingListItem) {
         return syPreAssembledPackingListService.typeConversion(syPreAssembledPackingListItem);
     }
+
+
+    /**
+     * 通过excel导入数据
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel3", method = RequestMethod.POST)
+    public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        try{
+            for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+                MultipartFile file = entity.getValue();// 获取上传文件对象
+                System.out.println("文件是否为空--isfile\t"+file.isEmpty());
+                System.out.println("文件全称--fileName\t"+file.getOriginalFilename());
+                System.out.println("文件类型--fileType\t"+file.getContentType());
+                System.out.println("文件大小--fileSize\t"+file.getSize()/1024+"KB");
+                InputStream inputStream=file.getInputStream();
+                ImportParams params = new ImportParams();
+                System.out.println("inputSream:\t"+inputStream);
+                Workbook workbook=new XSSFWorkbook(inputStream);
+                refreshSheet(workbook);
+                params.setTitleRows(2);
+                params.setHeadRows(1);
+                params.setNeedSave(true);
+            }
+            return Result.OK("文件传输成功!");
+        }catch (Exception e){
+            e.printStackTrace();
+            System.err.println("抛出"+e.getMessage());
+            return Result.error("文件导入失败"+e.getMessage());
+        }
+    }
+
+
+    private void refreshSheet(Workbook workbook1) {
+        //String load="C:\\Users\\admin\\Downloads\\装箱单测试.xls";
+        //头表目前固定七个字段数据
+        List <SyPreAssembledPackingList> mains=new ArrayList<>();
+        Iterator sheets=workbook1.sheetIterator();
+        int num=0;
+        while (sheets.hasNext()){
+            num++;
+            SyPreAssembledPackingList main=new SyPreAssembledPackingList();
+            List<SyPreAssembledPackingListItem> items=new ArrayList<SyPreAssembledPackingListItem>();
+            Sheet sheet=(Sheet) sheets.next();
+            List<String> strs3=new ArrayList<String>();//获取尺码名称
+            for (int x=0;x<=sheet.getLastRowNum();x++){
+                Row row=sheet.getRow(x);//列
+                Cell cell2=row.getCell(0);
+                if(cell2==null){//如果这一列为空就退出
+                    continue;
+                }
+                List<String> strs=new ArrayList<String>();//装主要数据
+                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(x==0){
+                        if((i>9&&i<row.getLastCellNum()-28)||i==row.getLastCellNum()-9){
+                            strs3.add(cell.getStringCellValue());
+                            System.out.print(String.format("\033[%dm%s\033[0m", 31, cell.getStringCellValue())+"\t");//颜色
+                        }
+                    }else{
+                        if((i>9&&i<row.getLastCellNum()-28)||i==row.getLastCellNum()-9){
+                            strs2.add(cell.getStringCellValue());
+                            System.out.print(String.format("\033[%dm%s\033[0m", 31, cell.getStringCellValue())+"\t");//颜色
+                        }else{
+                            strs.add(cell.getStringCellValue());
+                            System.out.print(cell.getStringCellValue()+"\t");
+                        }
+                    }
+                }
+                System.out.println();
+                if(x>0){
+                    SyPreAssembledPackingListItem item=
+                            new SyPreAssembledPackingListItem(strs.toArray(new String[strs.size()]),
+                                    strs2.toArray(new String[strs2.size()]),
+                                    strs3.toArray(new String[strs3.size()]));
+                    items.add(item);
+                    main=new SyPreAssembledPackingList(strs.toArray(new String[strs.size()]));
+                }
+            }
+            main.setSyPreAssembledPackingListItemList(items);//获取集合
+            mains.add(main);
+            //break;
+        }
+        System.out.println("\nmains\t"+mains);
+        boolean bool= syPreAssembledPackingListService.add(mains);
+    //    System.out.println("bool\t"+bool);
+    }
 }

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

@@ -195,4 +195,18 @@ public class SyPreAssembledPackingList implements Serializable {
 	@ApiModelProperty(value = "二维表格")
 	private List<SizeTable> sizeTables;
 
+	public SyPreAssembledPackingList(){
+
+	}
+
+	public SyPreAssembledPackingList(String [] params){
+		//发运明细主表ID 订单号 款号 尺码范围 客户 客户简称 申报要素ID
+		syDeclarationElementsId=params[30];
+		orderNumber=params[31];
+		itemNumber=params[32];
+		sizeRange=params[33];
+		customer=params[34];
+		customerAbbreviation=params[35];
+		elementsId=params[36];
+	}
 }

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

@@ -12,6 +12,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -279,7 +280,7 @@ public class SyPreAssembledPackingListItem implements Serializable {
 	@Excel(name = "超发数量", width = 15)
 	@TableField(exist = false)
 	@ApiModelProperty(value = "超发数量")
-	private BigDecimal excessQuantity;//剩余数量
+	private BigDecimal excessQuantity;//超发数量
 	/**业务员*/
 	//@Excel(name = "业务员", width = 15)
 	@ApiModelProperty(value = "业务员")
@@ -295,45 +296,216 @@ public class SyPreAssembledPackingListItem implements Serializable {
 
 	//序号,H/D,PO,款号,订单号,UNIT PRICE(单价,分销点,ITEMCODE,启始箱号,结束箱号,颜色(中英文) sizes	件数/每箱,箱数,总件数,外箱长度,外箱宽度,外箱高度,总体积,外箱净重,总净重,外箱毛重,总毛重,NN.W,总价
 
+	public SyPreAssembledPackingListItem(){
 
-	@Override
-	public String toString() {
+	}
+
+	public SyPreAssembledPackingListItem(String[] parsms,String[] parsms2,String[] parsms3){
+		//账套 成衣工厂 预发货日期 款号 小po 分销点 起始箱号	结束箱号
+		//itemcode	PREACKSKU	颜色	配码规则	计划尺码数量	计划装箱数量
+		// 件数/箱	箱数	总件数	净重/箱 总毛重 毛重/箱	总毛重	外箱长度
+		// 外箱宽度	外箱高度	总体积
+		try{
+			acSetNo=parsms[0];
+			garmentFactory=parsms[1];
+			hod=parsms[2];
+			styleNo=parsms[3];
+			smallPo=parsms[4];
+			poNo=parsms[4];
+			distributionPoint=parsms[5];
+			startingBoxNumber=parsms[6];
+			endCaseNumber=parsms[7];
+			itemCode=parsms[8];
+			prepackSku=parsms[9];
+			colour=parsms[10];
+			withCode=parsms[11];
+			planSize=parsms[12];
+			planQuantity=new BigDecimal(parsms[13]);
+			piecesBox=new BigDecimal(parsms[14]);
+			boxNumber=new BigDecimal(parsms[15]);//箱数
+			total=new BigDecimal(parsms[16]);
+			netWeight=new BigDecimal(parsms[17]);
+			totalNetWeight=new BigDecimal(parsms[18]);
+			grossWeight=new BigDecimal(parsms[19]);
+			totalGrossWeight=new BigDecimal(parsms[20]);
+			outerBoxLength=new BigDecimal(parsms[21]);
+			outerBoxWidth=new BigDecimal(parsms[22]);
+			outerBoxHeight=new BigDecimal(parsms[23]);
+			totalVolume=new BigDecimal(parsms[24]);
+			netWeightToo=new BigDecimal(parsms[25]);
+			unitPrice=new BigDecimal(parsms[26]);
+			totalPrice=new BigDecimal(parsms[27]);
+			memo=parsms[28];
+			syDeclarationElementsId=parsms[30];
+			sizeTables=new ArrayList<>();
+			String planSize="";
+			for (int i=0;i<parsms3.length-1;i++){
+				SizeTable sizeTable=new SizeTable();
+				sizeTable.setSize(parsms3[i]);//尺码
+				sizeTable.setProportion(Integer.parseInt(parsms2[i]));//件数
+				planSize+=parsms3[i]+":"+(boxNumber.intValue()*sizeTable.getProportion())+"+";
+				sizeTable.setItemId(parsms2[parsms2.length-1].split(",")[i]);//发运明细子表id
+				sizeTables.add(sizeTable);
+			}
+			this.planSize=planSize.substring(0,planSize.length()-1);
+		}catch (Exception e){
+			System.out.println(e.getMessage());
+		}
+	}
+
+
+	public String toString2() {
+		String sizes="";
+		for (SizeTable size : sizeTables){
+			sizes+=size.getProportion()+",";
+		}
+		return
+		" ," +
+		hod.substring(0,10) + "," +
+		poNo +  "," +
+		styleNo +  "," +
+		orderNumber + ","+
+		unitPrice + ","+
+		distributionPoint + ","+
+		itemCode + ","+
+		startingBoxNumber + ","+
+		endCaseNumber +  ","+
+		colour +  ","+
+		sizes +
+		piecesBox +  ","+
+		boxNumber + ","+
+		total + ","+
+		outerBoxLength + ","+
+		outerBoxWidth + ","+
+		outerBoxHeight + ","+
+		totalVolume + ","+
+		netWeight +  ","+
+		totalNetWeight + ","+
+		grossWeight + ","+
+		totalGrossWeight + ","+
+		netWeightToo + ","+
+		totalPrice+
+		",不确定的值"+
+		",不确定的值"+
+		",不确定的值"+
+		",不确定的值"+
+		",不确定的值"+
+		",不确定的值"+
+		",不确定的值";
+
+	}
+
+	public String toString3() {
 		String sizes="";
+		id="";
 		for (SizeTable size : sizeTables){
 			sizes+=size.getProportion()+",";
+			id+=size.getItemId()+"-";
 		}
 		return
-				" ," +
-				hod.substring(0,10) + "," +
-				poNo +  "," +
-				styleNo +  "," +
-				orderNumber + ","+
-				unitPrice + ","+
-				distributionPoint + ","+
-				itemCode + ","+
-				startingBoxNumber + ","+
-				endCaseNumber +  ","+
-				colour +  ","+
-				sizes +
-				piecesBox +  ","+
-				boxNumber + ","+
-				total + ","+
-				netWeight +  ","+
-				totalNetWeight + ","+
-				grossWeight + ","+
-				totalGrossWeight + ","+
-				outerBoxLength + ","+
-				outerBoxWidth + ","+
-				outerBoxHeight + ","+
-				totalVolume + ","+
-				netWeightToo + ","+
-				totalPrice+
-				",不确定的值"+
-				",不确定的值"+
-				",不确定的值"+
-				",不确定的值"+
-				",不确定的值"+
-				",不确定的值"+
-				",不确定的值";
+		" ," +
+		acSetNo	+ "," +
+		garmentFactory	+ "," +
+		hod.substring(0,10) + "," +
+		poNo +  "," +
+		styleNo +  "," +
+		orderNumber + ","+
+		unitPrice + ","+
+		distributionPoint + ","+
+		itemCode + ","+
+		prepackSku + ","+
+		startingBoxNumber + ","+
+		endCaseNumber +  ","+
+		colour +  ","+
+		withCode+  ","+
+		sizes +
+		piecesBox +  ","+
+		boxNumber + ","+
+		total + ","+
+		outerBoxLength + ","+
+		outerBoxWidth + ","+
+		outerBoxHeight + ","+
+		totalVolume + ","+
+		netWeight +  ","+
+		totalNetWeight + ","+
+		grossWeight + ","+
+		totalGrossWeight + ","+
+		netWeightToo + ","+
+		totalPrice+ ","+
+		salesman + ","+
+		salesDepartment + ","+
+		spurOrSubOrder+ ","+
+		syPreAssembledPackingListId+ ","+
+		id.substring(0,id.length()-1);
+	}
+
+	public String getData() {
+		return "SyPreAssembledPackingListItem{" +
+				"id='" + id + '\'' +
+				", syPreAssembledPackingListId='" + syPreAssembledPackingListId + '\'' +
+				", syDeclarationElementsId='" + syDeclarationElementsId + '\'' +
+				", syDeclarationElementsItemId='" + syDeclarationElementsItemId + '\'' +
+				", syOrderDataId='" + syOrderDataId + '\'' +
+				", syOrderDataItemId='" + syOrderDataItemId + '\'' +
+				", acSetNo='" + acSetNo + '\'' +
+				", garmentFactory='" + garmentFactory + '\'' +
+				", hod='" + hod + '\'' +
+				", styleNo='" + styleNo + '\'' +
+				", poNo='" + poNo + '\'' +
+				", itemCode='" + itemCode + '\'' +
+				", distributionPoint='" + distributionPoint + '\'' +
+				", prepackSku='" + prepackSku + '\'' +
+				", size='" + size + '\'' +
+				", startingBoxNumber='" + startingBoxNumber + '\'' +
+				", endCaseNumber='" + endCaseNumber + '\'' +
+				", colour='" + colour + '\'' +
+				", piecesBox=" + piecesBox +
+				", boxNumber=" + boxNumber +
+				", total=" + total +
+				", planQuantity=" + planQuantity +
+				", actualPackingQty=" + actualPackingQty +
+				", netWeight=" + netWeight +
+				", totalNetWeight=" + totalNetWeight +
+				", grossWeight=" + grossWeight +
+				", totalGrossWeight=" + totalGrossWeight +
+				", outerBoxLength=" + outerBoxLength +
+				", outerBoxWidth=" + outerBoxWidth +
+				", outerBoxHeight=" + outerBoxHeight +
+				", totalVolume=" + totalVolume +
+				", netWeightToo=" + netWeightToo +
+				", unitPrice=" + unitPrice +
+				", totalPrice=" + totalPrice +
+				", sort=" + sort +
+				", createBy='" + createBy + '\'' +
+				", createTime=" + createTime +
+				", updateBy='" + updateBy + '\'' +
+				", updateTime=" + updateTime +
+				", pkOrg='" + pkOrg + '\'' +
+				", delFlag='" + delFlag + '\'' +
+				", memo=" + memo +
+				", withCode='" + withCode + '\'' +
+				", smallPo='" + smallPo + '\'' +
+				", inventoryName='" + inventoryName + '\'' +
+				", factoryUnitPrice=" + factoryUnitPrice +
+				", masterMetering='" + masterMetering + '\'' +
+				", groupId='" + groupId + '\'' +
+				", sizeTables=" + sizeTables +
+				", planSize='" + planSize + '\'' +
+				", inventoryCode='" + inventoryCode + '\'' +
+				", inventoryCcode='" + inventoryCcode + '\'' +
+				", isAdd=" + isAdd +
+				", supplierCode='" + supplierCode + '\'' +
+				", supplier='" + supplier + '\'' +
+				", ompoAccount='" + ompoAccount + '\'' +
+				", ompoId='" + ompoId + '\'' +
+				", ompoIdItem='" + ompoIdItem + '\'' +
+				", ymoney=" + ymoney +
+				", orderNumber='" + orderNumber + '\'' +
+				", remainingQuantity=" + remainingQuantity +
+				", excessQuantity=" + excessQuantity +
+				", salesman='" + salesman + '\'' +
+				", salesDepartment='" + salesDepartment + '\'' +
+				", spurOrSubOrder='" + spurOrSubOrder + '\'' +
+				'}';
 	}
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/service/ISyPreAssembledPackingListService.java

@@ -105,4 +105,6 @@ public interface ISyPreAssembledPackingListService extends IService<SyPreAssembl
 	 * @return SyLetterDepositItem
 	 */
 	public SyLetterDepositItem typeConversion(SyPreAssembledPackingListItem syPreAssembledPackingListItem);
+
+	public boolean add(List<SyPreAssembledPackingList> items);
 }

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

@@ -75,7 +75,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				SyPreAssembledPackingListItem item1=item;
 				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
 				item1.setTotal(boxNumber);//该尺码件数
-				//item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
+				item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
 				item1.setSize(size.getSize());//获取尺码
 				item1.setActualPackingQty(size.getQuantity());//获取该尺码计划装箱数量
 				item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
@@ -105,7 +105,7 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 				//原剩余数量-预装箱单装箱数量=新剩余数量
 				syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
 				//超发数量
-				syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(syItem.getShipmentQuantity()));
+				syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()).negate());
 				//syItem.setIsReference(1);//标识已被参照
 				syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
 			}
@@ -469,4 +469,98 @@ public class SyPreAssembledPackingListServiceImpl extends ServiceImpl<SyPreAssem
 		return syLetterDepositItem;
 	}
 
+	@Override
+	@Transactional
+	public boolean add(List<SyPreAssembledPackingList> items1) {
+		boolean bool=false;
+		try{
+			String ids="";
+			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()));
+				queryWrapperCount.select("lpad(count(0)+1,6,0) as id");
+				String dateNo ="YCY"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();
+				syPreAssembledPackingList.setDocumentNo(dateNo);//订单号-->单据号
+				syPreAssembledPackingList.setDelFlag("0");//删除状态默认为0
+				syPreAssembledPackingList.setPushStatus("0");//推送状态默认为0
+				syPreAssembledPackingList.setStatus("0");//单据状态默认为0
+				syPreAssembledPackingList.setTotal(new BigDecimal("0"));
+				syPreAssembledPackingList.setTotalBoxes(new BigDecimal("0"));
+				syPreAssembledPackingList.setTotalNetWeight(new BigDecimal("0"));
+				syPreAssembledPackingList.setTotalGrossWeight(new BigDecimal("0"));
+				syPreAssembledPackingList.setTotalVolume(new BigDecimal("0"));
+				syPreAssembledPackingList.setTotalPrice(new BigDecimal("0"));
+				syPreAssembledPackingListMapper.insert(syPreAssembledPackingList);//往主表添加数据
+				ids=ids+syPreAssembledPackingList.getId()+"\n";
+				for (SyPreAssembledPackingListItem item : items){
+					syPreAssembledPackingList.setTotal(syPreAssembledPackingList.getTotal().add(item.getTotal()));
+					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()));
+					syPreAssembledPackingList.setTotalPrice(syPreAssembledPackingList.getTotalPrice().add(item.getTotalPrice()));
+					System.out.println("item.getTotal()"+item.getTotal());
+					System.out.println("item.getBoxNumber()"+item.getBoxNumber());
+					System.out.println("item.getTotalNetWeight()"+item.getTotalNetWeight());
+					System.out.println("item.getTotalGrossWeight()"+item.getTotalGrossWeight());
+					System.out.println("item.getTotalVolume()"+item.getTotalVolume());
+					System.out.println("item.getTotalPrice()"+item.getTotalPrice());
+					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");//默认为未删除
+					for (SizeTable size : sizes){
+						SyPreAssembledPackingListItem item1=item;
+						BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
+						item1.setTotal(boxNumber);//该尺码件数
+						item1.setRemainingQuantity(boxNumber);//该尺码的剩余数量
+						item1.setSize(size.getSize());//获取尺码
+						item1.setActualPackingQty(size.getQuantity());//获取该尺码计划装箱数量
+						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)));//获取总体积	长*宽*高*箱数
+						item1.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
+						item1.setSort(size.getNum());//获取序号
+						item1.setId(oConvertUtils.id());//获取到随机id
+						syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
+						//获取发育明细数据
+						SyShippingDetailsItem syItem=syShippingDetailsItemMapper.selectById(item1.getSyDeclarationElementsItemId());
+						if(syItem!=null){
+							item1.setOmpoIdItem(syItem.getOmpoIdItem());//获取委外/采购订单子表Id
+							item1.setOrderNumber(syItem.getOrderNumber());//获取订单号
+							item1.setSpurOrSubOrder(syItem.getPurOrSubOrder());//获取采购委外订货号
+							item1.setSyOrderDataItemId(syItem.getSyOrderDataItemId());//获取到订单子表id
+							item1.setSalesman(syItem.getSalesman());//获取业务员
+							item1.setSalesDepartment(syItem.getSalesDepartment());//获取销售部门
+							item1.setInventoryCode(syItem.getInventoryCcode());
+							syPreAssembledPackingListItemMapper.insert(item1);//添加子表数据
+							//原剩余数量-预装箱单装箱数量=新剩余数量
+							syItem.setSurplusQuantity(syItem.getSurplusQuantity().subtract(item1.getTotal()));
+							//超发数量
+							syItem.setExcessQuantity(syItem.getSurplusQuantity().subtract(syItem.getShipmentQuantity()));
+							//syItem.setIsReference(1);//标识已被参照
+							syShippingDetailsItemMapper.updateById(syItem);//修改发运明细
+						}
+					}
+				}
+				syPreAssembledPackingListMapper.updateById(syPreAssembledPackingList);//修改汇总数据
+			}
+			bool=true;
+		}catch (Exception e){
+			e.getMessage();
+			bool=false;
+		}
+		return bool;
+	}
 }

+ 45 - 16
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java

@@ -577,7 +577,7 @@ public class SyPackingListTailoringController {
 						 cell.setCellValue(params[x]);//比例
 					 }
 					 List<SizeTable> sizes=list.get(i).getSizeTables();
-					 params=list.get(i).toString().replace("null","").split(",");
+					 params=list.get(i).toString2().replace("null","").split(",");
 					 for (int y=0;y<params.length;y++){
 						 Cell cell = row.createCell(y);//横向
 						 if(y==0){
@@ -620,42 +620,71 @@ public class SyPackingListTailoringController {
 			 System.out.println("inputSream:\t"+inputStream);
 			 Workbook workbook=new XSSFWorkbook(inputStream);
 			 refreshSheet(workbook);
-			 params.setTitleRows(2);
-			 params.setHeadRows(1);
-			 params.setNeedSave(true);
-			 System.out.println("start\t"+params.getStartRows());
-			 System.out.println("last\t"+params.getLastOfInvalidRow());
-			 System.out.println("sheetNum\t"+params.getSheetNum());
 		 }
-		 return Result.OK("文件导入失败!");
+		 return Result.OK("文件导入成功!");
 	 }
 
 
 	 private void refreshSheet(Workbook workbook1) {
 		 //String load="C:\\Users\\admin\\Downloads\\装箱单测试.xls";
 		 //头表目前固定七个字段数据
+		 List<SyPackingListTailoring> mains=new ArrayList<>();
 		 Iterator sheets=workbook1.sheetIterator();
 		 while (sheets.hasNext()){
+		 	SyPackingListTailoring main=new SyPackingListTailoring();
+		 	List<SyPackingListTailoringItem> items=new ArrayList<>();
 			 Sheet sheet=(Sheet) sheets.next();
-			 System.out.println("first:\t"+sheet.getFirstRowNum());
-			 System.out.println("last为:\t"+sheet.getLastRowNum());
+			 String str2="";//尺码大小
 			 for (int x=1;x<=sheet.getLastRowNum();x++){
+			 	 String str="";
+				 String str1="";//尺码比例
+				 String strMain="";
 				 Row row=sheet.getRow(x);//列
-				 if(oConvertUtils.isEmpty(row.getCell(1).getStringCellValue())){//如果这一列为空就退出
+				 if(oConvertUtils.isEmpty(row.getCell(1))){//如果这一列为空就退出
 				 	continue;
 				 }
-				 for (int i=1;i<row.getLastCellNum();i++){
+				 for (int i=0;i<row.getLastCellNum();i++){
 					 Cell cell=row.getCell(i);
-					 if(i>10&&i<row.getLastCellNum()-20){
-						 System.out.print(String.format("\033[%dm%s\033[0m", 31, cell.getStringCellValue())+"\t");//颜色
+					 if(cell==null){
+					 	break;
+					 }
+					cell.setCellType(CellType.STRING);//获取的都转换成String
+					System.out.print(cell.getStringCellValue()+"\t");
+				 	if(x==1&&i%2==1){
+				 		strMain+=cell.getStringCellValue()+",";
+				 		continue;
+					}else if(x==1){
+				 		continue;
+					}
+				 	if(x==3&&i>14&&i<row.getLastCellNum()-18){
+						str2+=cell.getStringCellValue()+",";
+					}
+					 if((i>14&&i<row.getLastCellNum()-18)||i==row.getLastCellNum()-1){
+						 str1+=cell.getStringCellValue()+",";
+						//System.out.print(String.format("\033[%dm%s\033[0m", 31, cell.getStringCellValue())+"\t");//颜色
 					 }else{
-						 System.out.print(cell.getStringCellValue()+"\t");
+					 	str+=cell.getStringCellValue()+",";
+					 	//System.out.print(cell.getStringCellValue()+"\t");
 					 }
 				 }
 				 x=x<2?x++:x;//跨行
-				 System.out.println();
+				 if(x>3){
+					 SyPackingListTailoringItem item=
+							 new SyPackingListTailoringItem(str.substring(0,str.length()-1).split(","),
+									 str1.substring(0,str1.length()-1).split(","),
+									 str2.substring(0,str2.length()-1).split(","));
+				 	items.add(item);
+				 }else if(x==1){
+					 main=new SyPackingListTailoring(strMain.substring(0,strMain.length()-1).split(","));
+				 }
+
 			 }
+			 main.setSyPackingListTailoringItemList(items);
+			 mains.add(main);
+			 System.out.println("mains\n"+mains);
 		 }
+		 System.out.println("mains\t"+mains);
+		 syPackingListTailoringService.excelAdd(mains);//新增
 	 }
 
 	 @AutoLog(value = "装箱单成衣JSON")

+ 29 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/SyPackingListTailoring.java

@@ -191,4 +191,33 @@ public class SyPackingListTailoring implements Serializable {
 	//@Excel(name = "是否被参照(0:无,1:被预托书参照,2:被装箱单参照)", width = 15)
 	@ApiModelProperty(value = "是否被参照(0:无,1:被预托书参照,2:被装箱单参照)")
 	private Integer isReference;
+
+	public SyPackingListTailoring(){
+
+	}
+
+	public  SyPackingListTailoring(String [] params){
+		// 订单号
+		// 款号
+		// 报关品名
+		// 英文品名
+		// 客户
+		// 客户简称
+		// 尺码范围
+		// 制单人
+		// 制单日期
+		// 申报要素ID
+		// 主表id
+		orderNumber=params[0];
+		itemNumber=params[1];
+		productName=params[2];
+		englishProductName=params[3];
+		customer=params[4];
+		customerAbbreviation=params[5];
+		sizeRange=params[6];
+		createBy=params[7];
+		//createTime=params[8];
+		elementsId=params[9];
+		syPreAssembledPackingListId=params[10];
+	}
 }

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

@@ -11,7 +11,10 @@ import org.jeecg.modules.spapl.entity.SizeTable;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 
+import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -297,8 +300,65 @@ public class SyPackingListTailoringItem implements Serializable {
 	@ApiModelProperty(value = "申报要素ID")
 	private String elementsId;
 
-	@Override
-	public String toString() {
+	public SyPackingListTailoringItem(){
+
+	}
+
+	public SyPackingListTailoringItem(String[] params1,String[] params2,String[] params3) {
+		//账套号	成衣工厂	H/D	PO	款号	订单号	UNIT PRICE(单价)	分销点	ITEMCODE	PREPACK SKU	启始箱号	结束箱号	颜色(中英文)	配码
+		try{
+			acSetNo=params1[1];//x
+			garmentFactory=params1[2];//x
+			hod=new SimpleDateFormat("yyyy-MM-dd").parse(params1[3]);
+			poNo=params1[4];
+			smallPo=params1[4];
+			styleNo=params1[5];
+			orderNumber=params1[6];
+			System.out.println("\nparams1[7]\t"+params1[7]);
+			unitPrice=new BigDecimal(params1[7]);
+			distributionPoint=params1[8];
+			itemCode=params1[9];
+			prepackSku=params1[10];//x
+			startingBoxNumber=params1[11];
+			endCaseNumber=params1[12];
+			colour=params1[13];
+			withCode=params1[14];//x
+			piecesBox=new BigDecimal(params1[15]);
+			boxNumber=new BigDecimal(params1[16]);
+			total=new BigDecimal(params1[17]);
+			outerBoxLength=new BigDecimal(params1[18]);
+			outerBoxWidth=new BigDecimal(params1[19]);
+			outerBoxHeight=new BigDecimal(params1[20]);
+			totalVolume=new BigDecimal(params1[21]);
+			netWeight=new BigDecimal(params1[22]);
+			totalNetWeight=new BigDecimal(params1[23]);
+			grossWeight=new BigDecimal(params1[24]);
+			totalGrossWeight=new BigDecimal(params1[25]);
+			netWeightToo=new BigDecimal(params1[26]);
+			totalPrice=new BigDecimal(params1[27]);
+			salesman=params1[28];//x
+			salesDepartment=params1[29];//x
+			spurOrSubOrder=params1[30];//x
+			syPreAssembledPackingListId=params1[31];
+			//syPreAssembledPackingListItemId=params1[24];
+			sizeTables=new ArrayList<>();
+			String planSize="";
+			for (int i=0;i<params3.length;i++){
+				SizeTable sizeTable=new SizeTable();
+				sizeTable.setSize(params3[i]);//尺码
+				sizeTable.setProportion(Integer.parseInt(params2[i]));//比例
+				planSize+=params3[i]+":"+(boxNumber.intValue()*sizeTable.getProportion())+"+";
+				sizeTable.setItemId(params2[params2.length-1].split("-")[i]);//发运明细子表id
+				sizeTables.add(sizeTable);
+			}
+			this.planSize=planSize.substring(0,planSize.length()-1);
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+
+	}
+
+	public String toString2() {
 		String sizes="";
 		for (SizeTable size : sizeTables){
 			sizes+=size.getProportion()+",";

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java

@@ -79,4 +79,6 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 	boolean submitBatch(String [] ids);
 
 	String cancelSubmitBatch(String [] ids);
+
+	boolean excelAdd(List<SyPackingListTailoring> mains);
 }

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

@@ -89,9 +89,10 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				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());
 				item1.setSalesman(syPreItem.getSalesman());//获取业务员
-				item1.setOrderNumber(syPreItem.getOrderNumber());//销售订单号
 				item1.setSalesDepartment(syPreItem.getSalesDepartment());//获取业务部门
+				item1.setOrderNumber(syPreItem.getOrderNumber());//销售订单号
 				item1.setSpurOrSubOrder(syPreItem.getSpurOrSubOrder());//获取采购委外订单号
 				syPreAssembledPackingListItemMapper.updateById(syPreItem);//修改剩余数量
 				syPackingListTailoringItemMapper.insert(item1);//添加子表数据
@@ -450,4 +451,74 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			return str.substring(0,str.length()-1);
 		}
 	}
+
+	@Override
+	@Transactional
+	public boolean excelAdd(List<SyPackingListTailoring> mains) {
+		boolean bool=true;
+		try{
+			for (SyPackingListTailoring syPackingListTailoring : mains){
+				syPackingListTailoring.setDelFlag("0");//删除状态默认为0
+				syPackingListTailoring.setPushState("0");//推送状态默认为0
+				syPackingListTailoring.setStatus("0");//单据状态默认为0
+				syPackingListTailoring.setDocumentNo(randomStr());//单据号
+				syPackingListTailoringMapper.insert(syPackingListTailoring);//往主表添加数据
+				UpdateWrapper updateWrapper=new UpdateWrapper();
+				updateWrapper.set("is_Reference","2");//已被装箱单参照,预装箱单不能取消提交
+				updateWrapper.eq("id",syPackingListTailoring.getSyPreAssembledPackingListId());//预装箱单主表id做为修改条件
+				syPackingListTailoring.setTotal(new BigDecimal("0"));
+				syPackingListTailoring.setTotalBoxes(new BigDecimal("0"));
+				syPackingListTailoring.setTotalNetWeight(new BigDecimal("0"));
+				syPackingListTailoring.setTotalGrossWeight(new BigDecimal("0"));
+				syPackingListTailoring.setTotalVolume(new BigDecimal("0"));
+				syPackingListTailoring.setTotalPrice(new BigDecimal("0"));
+				syPreAssembledPackingListMapper.update(null,updateWrapper);//修改
+				for (SyPackingListTailoringItem item : syPackingListTailoring.getSyPackingListTailoringItemList()){
+					List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
+					item.setSyPackingListTailoringId(syPackingListTailoring.getId());//获取主表id
+					item.setElementsId(syPackingListTailoring.getElementsId());//申报要素id
+					BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
+					item.setGroupId(oConvertUtils.id());//分组随机id
+					item.setDelFlag("0");//默认为未删除
+					syPackingListTailoring.setTotal(syPackingListTailoring.getTotal().add(item.getTotal()));
+					syPackingListTailoring.setTotalBoxes(syPackingListTailoring.getTotalBoxes().add(item.getBoxNumber()));
+					syPackingListTailoring.setTotalNetWeight(syPackingListTailoring.getTotalNetWeight().add(item.getTotalNetWeight()));
+					syPackingListTailoring.setTotalGrossWeight(syPackingListTailoring.getTotalGrossWeight().add(item.getTotalGrossWeight()));
+					syPackingListTailoring.setTotalVolume(syPackingListTailoring.getTotalVolume().add(item.getTotalVolume()));
+					syPackingListTailoring.setTotalPrice(syPackingListTailoring.getTotalPrice().add(item.getTotalPrice()));
+					for (SizeTable size : sizes){
+						SyPackingListTailoringItem item1=item;
+						BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
+						item1.setTotal(boxNumber);//该尺码件数
+						item1.setActualPackingQty(boxNumber);//实际装箱数量
+						item1.setPlanQuantity(boxNumber);//计划装箱数量
+						item1.setSize(size.getSize());//获取尺码
+						item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价
+						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
+						SyPreAssembledPackingListItem syPreItem=syPreAssembledPackingListItemMapper.selectById(item.getSyPreAssembledPackingListItemId());//获取预装箱单数据
+						if(syPreItem!=null){
+							syPreItem.setRemainingQuantity(syPreItem.getRemainingQuantity().subtract(item.getTotal()));//新剩余数量=原剩余数量-装箱单新增数量
+							syPreItem.setExcessQuantity(syPreItem.getRemainingQuantity().subtract(item.getTotal()).negate());//同上面,取相反值
+							syPreAssembledPackingListItemMapper.updateById(syPreItem);//修改剩余数量
+						}
+						syPackingListTailoringItemMapper.insert(item1);//添加子表数据
+					}
+				}
+				syPackingListTailoringMapper.updateById(syPackingListTailoring);//修改数据
+			}
+			bool=true;
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+		return bool;
+	}
 }