zengtx 3 yıl önce
ebeveyn
işleme
3a267824d6

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

@@ -0,0 +1,314 @@
+package org.jeecg.modules.splt.controller;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.system.vo.LoginUser;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
+import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListItemService;
+import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListService;
+import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListVo;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import org.jeecg.modules.splt.entity.SyPackingListTailoring;
+import org.jeecg.modules.splt.vo.SyPackingListTailoringPage;
+import org.jeecg.modules.splt.service.ISyPackingListTailoringService;
+import org.jeecg.modules.splt.service.ISyPackingListTailoringItemService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 装箱单主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+@Api(tags="装箱单主表")
+@RestController
+@RequestMapping("/splt/syPackingListTailoring")
+@Slf4j
+public class SyPackingListTailoringController {
+	@Autowired
+	private ISyPreAssembledPackingListService syPreAssembledPackingListService;//预装箱单主表
+	@Autowired
+	private ISyPackingListTailoringService syPackingListTailoringService;
+	@Autowired
+	private ISyPackingListTailoringItemService syPackingListTailoringItemService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param syPackingListTailoring
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-分页列表查询")
+	@ApiOperation(value="装箱单主表-分页列表查询", notes="装箱单主表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(SyPackingListTailoring syPackingListTailoring,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<SyPackingListTailoring> queryWrapper = QueryGenerator.initQueryWrapper(syPackingListTailoring, req.getParameterMap());
+		Page<SyPackingListTailoring> page = new Page<SyPackingListTailoring>(pageNo, pageSize);
+		IPage<SyPackingListTailoring> pageList = syPackingListTailoringService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	 /**
+	  * 分页列表查询
+	  *
+	  * @param id
+	  * @return
+	  */
+	 @AutoLog(value = "根据预装箱单-id获取数据")
+	 @ApiOperation(value="根据预装箱单-id获取数据", notes="根据预装箱单-id获取数据")
+	 @GetMapping(value = "/querySpaplId")
+	 public Result<SyPackingListTailoring> querySpaplId(String id) {
+		 Result<SyPackingListTailoring> result=new Result<>();
+		 if(oConvertUtils.isEmpty(id)){
+			 result.setSuccess(false);
+			 result.setMessage("未获取到id的信息");
+			 return result;
+		 }
+		 result.setResult(syPackingListTailoringService.querySpaplId(id));
+		 result.setMessage("查询成功!");
+		 result.setSuccess(true);
+		 return result;
+	 }
+
+	 /**
+	  * 分页列表查询
+	  *
+	  * @param syPreAssembledPackingListVo
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 @AutoLog(value = "参照预装箱单")
+	 @ApiOperation(value="参照预装箱单", notes="参照预装箱单")
+	 @GetMapping(value = "/getSpaplData")
+	 public Result<IPage<SyPreAssembledPackingListVo>> queryPageList2(SyPreAssembledPackingListVo syPreAssembledPackingListVo,
+																	  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+																	  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+																	  HttpServletRequest req) {
+		 //System.out.println("当前登录用户:"+((LoginUser)SecurityUtils.getSubject().getPrincipal()).getRealname());
+		 QueryWrapper<SyPreAssembledPackingListVo> queryWrapper =new QueryWrapper<>();//初始化
+		 queryWrapper.eq("a.del_flag","0");//默认查询未删除
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getId())){//查询id
+			 queryWrapper.eq("a.id",syPreAssembledPackingListVo.getId());
+		 }
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getOrderNumber())){
+			 queryWrapper.eq("a.order_number",syPreAssembledPackingListVo.getOrderNumber());//订单号
+		 }
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getItemNumber())){
+			 queryWrapper.eq("a.item_number",syPreAssembledPackingListVo.getItemNumber());//款号
+		 }
+		 if(oConvertUtils.isNotEmpty(syPreAssembledPackingListVo.getProductName())){
+			 queryWrapper.eq("a.product_Name",syPreAssembledPackingListVo.getProductName());//品名
+		 }
+		 Page<SyPreAssembledPackingListVo> page = new Page<SyPreAssembledPackingListVo>(pageNo, pageSize);
+		 IPage<SyPreAssembledPackingListVo> pageList = syPreAssembledPackingListService.selectPage(page, queryWrapper);
+		 return Result.OK(pageList);
+	 }
+
+	/**
+	 * 添加
+	 *
+	 * @param syPackingListTailoring
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-添加")
+	@ApiOperation(value="装箱单主表-添加", notes="装箱单主表-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody SyPackingListTailoring syPackingListTailoring) {
+		syPackingListTailoringService.saveMain2(syPackingListTailoring);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 * 编辑
+	 *
+	 * @param syPackingListTailoringPage
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-编辑")
+	@ApiOperation(value="装箱单主表-编辑", notes="装箱单主表-编辑")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody SyPackingListTailoringPage syPackingListTailoringPage) {
+		SyPackingListTailoring syPackingListTailoring = new SyPackingListTailoring();
+		BeanUtils.copyProperties(syPackingListTailoringPage, syPackingListTailoring);
+		syPackingListTailoringService.updateMain(syPackingListTailoring, syPackingListTailoringPage.getSyPackingListTailoringItemList());
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-通过id删除")
+	@ApiOperation(value="装箱单主表-通过id删除", notes="装箱单主表-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+	    syPackingListTailoringService.delMain(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-批量删除")
+	@ApiOperation(value="装箱单主表-批量删除", notes="装箱单主表-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.syPackingListTailoringService.delBatchMain(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+     *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "装箱单主表-通过id查询")
+	@ApiOperation(value="装箱单主表-通过id查询", notes="装箱单主表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<SyPackingListTailoring> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<SyPackingListTailoring> result=new Result<SyPackingListTailoring>();
+		if(oConvertUtils.isEmpty(id)){
+			result.setMessage("id为空");
+			result.setSuccess(false);
+			return  result;
+		}
+		SyPackingListTailoring syPackingListTailoring = syPackingListTailoringService.queryId(id);
+		if(syPackingListTailoring==null){
+			result.setSuccess(false);
+			result.setMessage("未找到该id");
+			return result;
+		}
+		result.setMessage("查询成功!");
+		result.setSuccess(true);
+		result.setResult(syPackingListTailoring);
+		return result;
+	}
+	
+/*	*//**
+	 * 通过id查询
+     *
+	 * @param id
+	 * @return
+	 *//*
+	@AutoLog(value = "装箱单子表-通过主表ID查询")
+	@ApiOperation(value="装箱单子表-通过主表ID查询", notes="装箱单主表-通过主表ID查询")
+	@GetMapping(value = "/querysyPackingListTailoringItemByMainId")
+	public Result<?> querysyPackingListTailoringItemListByMainId(@RequestParam(name="id",required=true) String id) {
+		List<SyPackingListTailoringItem> syPackingListTailoringItemList = syPackingListTailoringItemService.selectByMainId(id);
+		return Result.OK(syPackingListTailoringItemList);
+	}*/
+
+  /**
+   * 导出excel
+   *
+   * @param request
+   * @param syPackingListTailoring
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, SyPackingListTailoring syPackingListTailoring) {
+      // Step.1 组装查询条件
+      QueryWrapper<SyPackingListTailoring> queryWrapper = QueryGenerator.initQueryWrapper(syPackingListTailoring, request.getParameterMap());
+      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+      //Step.2 获取导出数据
+      List<SyPackingListTailoringPage> pageList = new ArrayList<SyPackingListTailoringPage>();
+      List<SyPackingListTailoring> syPackingListTailoringList = syPackingListTailoringService.list(queryWrapper);
+      for (SyPackingListTailoring temp : syPackingListTailoringList) {
+          SyPackingListTailoringPage vo = new SyPackingListTailoringPage();
+          BeanUtils.copyProperties(temp, vo);
+          List<SyPackingListTailoringItem> syPackingListTailoringItemList = syPackingListTailoringItemService.selectByMainId(temp.getId());
+          vo.setSyPackingListTailoringItemList(syPackingListTailoringItemList);
+          pageList.add(vo);
+      }
+      //Step.3 调用AutoPoi导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      mv.addObject(NormalExcelConstants.FILE_NAME, "装箱单主表");
+      mv.addObject(NormalExcelConstants.CLASS, SyPackingListTailoringPage.class);
+      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("装箱单主表数据", "导出人:"+sysUser.getRealname(), "装箱单主表"));
+      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
+      return mv;
+  }
+
+  /**
+   * 通过excel导入数据
+   *
+   * @param request
+   * @param response
+   * @return
+   */
+  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+          MultipartFile file = entity.getValue();// 获取上传文件对象
+          ImportParams params = new ImportParams();
+          params.setTitleRows(2);
+          params.setHeadRows(1);
+          params.setNeedSave(true);
+          try {
+              List<SyPackingListTailoringPage> list = ExcelImportUtil.importExcel(file.getInputStream(), SyPackingListTailoringPage.class, params);
+              for (SyPackingListTailoringPage page : list) {
+                  SyPackingListTailoring po = new SyPackingListTailoring();
+                  BeanUtils.copyProperties(page, po);
+                  syPackingListTailoringService.saveMain(po, page.getSyPackingListTailoringItemList());
+              }
+              return Result.OK("文件导入成功!数据行数:" + list.size());
+          } catch (Exception e) {
+              log.error(e.getMessage(),e);
+              return Result.error("文件导入失败:"+e.getMessage());
+          } finally {
+              try {
+                  file.getInputStream().close();
+              } catch (IOException e) {
+                  e.printStackTrace();
+              }
+          }
+      }
+      return Result.OK("文件导入失败!");
+  }
+
+}

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

@@ -2,11 +2,17 @@ package org.jeecg.modules.splt.entity;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
+
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.spapl.entity.SizeTable;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
 import org.springframework.format.annotation.DateTimeFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,103 +26,103 @@ import io.swagger.annotations.ApiModelProperty;
 @Data
 @TableName("sy_packing_list_tailoring")
 @ApiModel(value="sy_packing_list_tailoring对象", description="装箱单主表")
-public class syPackingListTailoring implements Serializable {
+public class SyPackingListTailoring implements Serializable {
     private static final long serialVersionUID = 1L;
-    
+
 	/**主键*/
 	@TableId(type = IdType.ASSIGN_ID)
 	@ApiModelProperty(value = "主键")
-	private java.lang.String id;
+	private String id;
+	/**预装箱单主表id*/
+	@ApiModelProperty(value = "预装箱单主表id")
+	private String syPreAssembledPackingListId;
 	/**创建人*/
 	@ApiModelProperty(value = "创建人")
-	private java.lang.String createBy;
+	private String createBy;
 	/**创建日期*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "创建日期")
-	private java.util.Date createTime;
+	private Date createTime;
 	/**修改人*/
 	@ApiModelProperty(value = "修改人")
-	private java.lang.String updateBy;
+	private String updateBy;
 	/**修改日期*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "修改日期")
-	private java.util.Date updateTime;
+	private Date updateTime;
 	/**组织*/
 	@ApiModelProperty(value = "组织")
-	private java.lang.String pkOrg;
+	private String pkOrg;
 	/**删除状态*/
 	@ApiModelProperty(value = "删除状态")
-	private java.lang.String delFlag;
+	private String delFlag;
 	/**订单号*/
 	@ApiModelProperty(value = "订单号")
-	private java.lang.String orderNumber;
+	private String orderNumber;
 	/**款号*/
 	@ApiModelProperty(value = "款号")
-	private java.lang.String styleNum;
+	private String itemNumber;
 	/**品名*/
 	@ApiModelProperty(value = "品名")
-	private java.lang.String tradeName;
+	private String productName;
 	/**尺码范围*/
 	@ApiModelProperty(value = "尺码范围")
-	private java.lang.String sizeRange;
+	private String sizeRange;
 	/**客户*/
 	@ApiModelProperty(value = "客户")
-	private java.lang.String client;
+	private String customer;
 	/**客户简称*/
 	@ApiModelProperty(value = "客户简称")
-	private java.lang.String clientAbbreviation;
+	private String customerAbbreviation;
 	/**集装箱代号*/
 	@ApiModelProperty(value = "集装箱代号")
-	private java.lang.String containerCode;
+	private String containerCode;
 	/**集装箱号*/
 	@ApiModelProperty(value = "集装箱号")
-	private java.lang.String containerNumber;
+	private String containerNumber;
 	/**备注*/
 	@ApiModelProperty(value = "备注")
-	private java.lang.Object memo;
+	private Object memo;
 	/**成衣工厂*/
 	@ApiModelProperty(value = "成衣工厂")
-	private java.lang.String theGarmentFactory;
+	private String garmentFactory;
 	/**外销发票号*/
 	@ApiModelProperty(value = "外销发票号")
-	private java.lang.String exportInvoiceNo;
-	/**备注*/
-	@ApiModelProperty(value = "备注")
-	private java.lang.Object remarks;
+	private String exportInvoiceNo;
+	/**u8备注*/
+	@ApiModelProperty(value = "u8备注")
+	private Object u8Remarks;
 	/**托书号*/
 	@ApiModelProperty(value = "托书号")
-	private java.lang.String syXxxId;
+	private String syXxxId;
 	/**预托书号*/
 	@ApiModelProperty(value = "预托书号")
-	private java.lang.String syXxxxId;
+	private String depositaryReceiptNo;
 	/**预发货日期*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "预发货日期")
-	private java.util.Date preShipmentDate;
+	private Date preDeliveryDate;
 	/**小PO*/
 	@ApiModelProperty(value = "小PO")
-	private java.lang.String smailPo;
+	private String smailPo;
 	/**分销点*/
 	@ApiModelProperty(value = "分销点")
-	private java.lang.String theDistribution;
+	private String theDistribution;
 	/**存货名称*/
 	@ApiModelProperty(value = "存货名称")
-	private java.lang.String nameOfTheInventory;
+	private String nameOfTheInventory;
 	/**颜色*/
 	@ApiModelProperty(value = "颜色")
-	private java.lang.String color;
+	private String color;
 	/**采购/委外订单号*/
 	@ApiModelProperty(value = "采购/委外订单号")
-	private java.lang.String purchase;
+	private String purchase;
 	/**订单类型*/
 	@ApiModelProperty(value = "订单类型")
-	private java.lang.String orderTypeValue;
-	/**订单类型文本*/
-	@ApiModelProperty(value = "订单类型文本")
-	private java.lang.String orderTypeText;
+	private String orderType;
 	/**工厂单价*/
 	@ApiModelProperty(value = "工厂单价")
 	private java.math.BigDecimal theFactoryPrice;
@@ -125,7 +131,7 @@ public class syPackingListTailoring implements Serializable {
 	private java.math.BigDecimal number;
 	/**箱数*/
 	@ApiModelProperty(value = "箱数")
-	private java.math.BigDecimal boxNumber;
+	private java.math.BigDecimal totalBoxes;
 	/**总净重*/
 	@ApiModelProperty(value = "总净重")
 	private java.math.BigDecimal totalNetWeight;
@@ -135,22 +141,34 @@ public class syPackingListTailoring implements Serializable {
 	/**总体积*/
 	@ApiModelProperty(value = "总体积")
 	private java.math.BigDecimal totalVolume;
+	/**总件数*/
+	@ApiModelProperty(value = "总价")
+	private java.math.BigDecimal totalPrice;
 	/**推送状态*/
 	@ApiModelProperty(value = "推送状态")
-	private java.lang.String pushState;
+	private String pushState;
 	/**单据状态*/
 	@ApiModelProperty(value = "单据状态")
-	private java.lang.String theDocumentsState;
+	private String theDocumentsState;
 	/**原因*/
 	@ApiModelProperty(value = "原因")
-	private java.lang.String cause;
+	private String cause;
 	/**是否云工厂推送*/
 	@ApiModelProperty(value = "是否云工厂推送")
-	private java.lang.String whetherCloudFactoryPush;
+	private String whetherCloudFactoryPush;
 	/**状态*/
 	@ApiModelProperty(value = "状态")
-	private java.lang.String state;
+	private String state;
 	/**附件*/
 	@ApiModelProperty(value = "附件")
-	private java.lang.String accessory;
+	private String accessory;
+	/**二维表格*/
+	@TableField(exist = false)
+	@ApiModelProperty(value = "二维表格")
+	private List<SizeTable> sizeTables;
+	/*装箱单子表*/
+	@TableField(exist = false)
+	@ExcelCollection(name="装箱单子表")
+	@ApiModelProperty(value = "装箱单子表")
+	private List<SyPackingListTailoringItem> syPackingListTailoringItemList;
 }

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

@@ -2,13 +2,17 @@ package org.jeecg.modules.splt.entity;
 
 import java.io.Serializable;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.spapl.entity.SizeTable;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import java.util.Date;
+import java.util.List;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,72 +25,72 @@ import io.swagger.annotations.ApiModelProperty;
 @Data
 @TableName("sy_packing_list_tailoring_item")
 @ApiModel(value="sy_packing_list_tailoring对象", description="装箱单主表")
-public class syPackingListTailoringItem implements Serializable {
+public class SyPackingListTailoringItem implements Serializable {
     private static final long serialVersionUID = 1L;
     
 	/**主键*/
 	@TableId(type = IdType.ASSIGN_ID)
 	@ApiModelProperty(value = "主键")
-	private java.lang.String id;
+	private String id;
 	/**装箱单主表id*/
 	@ApiModelProperty(value = "装箱单主表id")
-	private java.lang.String syPackingListTailoringId;
+	private String syPackingListTailoringId;
 	/**预装箱单主表id*/
     @Excel(name = "预装箱单主表id", width = 15)
 	@ApiModelProperty(value = "预装箱单主表id")
-	private java.lang.String syPreAssembledPackingListId;
+	private String syPreAssembledPackingListId;
 	/**预装箱单子表id*/
     @Excel(name = "预装箱单子表id", width = 15)
 	@ApiModelProperty(value = "预装箱单子表id")
-	private java.lang.String syPreAssembledPackingListItemId;
+	private String syPreAssembledPackingListItemId;
 	/**帐套*/
     @Excel(name = "帐套", width = 15)
 	@ApiModelProperty(value = "帐套")
-	private java.lang.String acSetNo;
+	private String acSetNo;
 	/**成衣工厂*/
     @Excel(name = "成衣工厂", width = 15)
 	@ApiModelProperty(value = "成衣工厂")
-	private java.lang.String garmentFactory;
+	private String garmentFactory;
 	/**HOD*/
     @Excel(name = "HOD", width = 15)
 	@ApiModelProperty(value = "HOD")
-	private java.lang.String hod;
+	private String hod;
 	/**STYLE NO*/
     @Excel(name = "STYLE NO", width = 15)
 	@ApiModelProperty(value = "STYLE NO")
-	private java.lang.String styleNo;
+	private String styleNo;
 	/**PO NO.*/
     @Excel(name = "PO NO.", width = 15)
 	@ApiModelProperty(value = "PO NO.")
-	private java.lang.String poNo;
+	private String poNo;
 	/**ITEM NO./SKU NO./UPC NO./PACKSCODE*/
     @Excel(name = "ITEM NO./SKU NO./UPC NO./PACKSCODE", width = 15)
 	@ApiModelProperty(value = "ITEM NO./SKU NO./UPC NO./PACKSCODE")
-	private java.lang.String itemCode;
+	private String itemCode;
 	/**分销点/DC/LABEL*/
     @Excel(name = "分销点/DC/LABEL", width = 15)
 	@ApiModelProperty(value = "分销点/DC/LABEL")
-	private java.lang.String distributionPoint;
+	private String distributionPoint;
 	/**PREPACK SKU*/
     @Excel(name = "PREPACK SKU", width = 15)
 	@ApiModelProperty(value = "PREPACK SKU")
-	private java.lang.String prepackSku;
+	private String prepackSku;
 	/**尺码*/
     @Excel(name = "尺码", width = 15)
 	@ApiModelProperty(value = "尺码")
-	private java.lang.String size;
+	private String size;
 	/**启始箱号*/
     @Excel(name = "启始箱号", width = 15)
 	@ApiModelProperty(value = "启始箱号")
-	private java.lang.String startingBoxNumber;
+	private String startingBoxNumber;
 	/**结束箱号*/
     @Excel(name = "结束箱号", width = 15)
 	@ApiModelProperty(value = "结束箱号")
-	private java.lang.String endCaseNumber;
+	private String endCaseNumber;
 	/**颜色(中英文)*/
     @Excel(name = "颜色(中英文)", width = 15)
 	@ApiModelProperty(value = "颜色(中英文)")
-	private java.lang.String colour;
+	private String colour;
 	/**件数/箱*/
     @Excel(name = "件数/箱", width = 15)
 	@ApiModelProperty(value = "件数/箱")
@@ -96,7 +100,7 @@ public class syPackingListTailoringItem implements Serializable {
 	@ApiModelProperty(value = "箱数")
 	private java.math.BigDecimal boxNumber;
 	/**总件数*/
-    @Excel(name = "总件数", width = 15)
+	@Excel(name = "总件数", width = 15)
 	@ApiModelProperty(value = "总件数")
 	private java.math.BigDecimal total;
 	/**净重/箱*/
@@ -146,49 +150,54 @@ public class syPackingListTailoringItem implements Serializable {
 	/**备注*/
     @Excel(name = "备注", width = 15)
 	@ApiModelProperty(value = "备注")
-	private java.lang.Object remarks;
+	private Object remarks;
 	/**创建人*/
     @Excel(name = "创建人", width = 15)
 	@ApiModelProperty(value = "创建人")
-	private java.lang.String createBy;
+	private String createBy;
 	/**创建日期*/
 	@Excel(name = "创建日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "创建日期")
-	private java.util.Date createTime;
+	private Date createTime;
 	/**修改人*/
     @Excel(name = "修改人", width = 15)
 	@ApiModelProperty(value = "修改人")
-	private java.lang.String updateBy;
+	private String updateBy;
 	/**修改日期*/
 	@Excel(name = "修改日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "修改日期")
-	private java.util.Date updateTime;
+	private Date updateTime;
 	/**组织*/
     @Excel(name = "组织", width = 15)
 	@ApiModelProperty(value = "组织")
-	private java.lang.String pkOrg;
+	private String pkOrg;
 	/**删除状态*/
     @Excel(name = "删除状态", width = 15)
 	@ApiModelProperty(value = "删除状态")
-	private java.lang.String delFlag;
+	private String delFlag;
 	/**备注*/
     @Excel(name = "备注", width = 15)
 	@ApiModelProperty(value = "备注")
-	private java.lang.Object memo;
+	private Object memo;
 	/**排序*/
     @Excel(name = "排序", width = 15)
 	@ApiModelProperty(value = "排序")
-	private java.lang.Integer sort;
+	private Integer sort;
 	/**配码*/
     @Excel(name = "配码", width = 15)
 	@ApiModelProperty(value = "配码")
-	private java.lang.String withCode;
+	private String withCode;
 	/**存货名称*/
     @Excel(name = "存货名称", width = 15)
 	@ApiModelProperty(value = "存货名称")
-	private java.lang.String inventoryName;
+	private String inventoryName;
+	/**二维表格*/
+	@TableField(exist = false)
+	@ApiModelProperty(value = "二维表格")
+	private List<SizeTable> sizeTables;
+
 }

+ 28 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringItemMapper.java

@@ -0,0 +1,28 @@
+package org.jeecg.modules.splt.mapper;
+
+import java.util.List;
+
+import org.jeecg.modules.spapl.entity.SizeTable;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 装箱单子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+public interface SyPackingListTailoringItemMapper extends BaseMapper<SyPackingListTailoringItem> {
+
+	public boolean deleteByMainId(String mainId);
+
+	public List<SyPackingListTailoringItem> selectByMainId(String mainId);
+
+	public List<SyPackingListTailoringItem> querySpaplItemId(String id);
+
+	public List<SyPackingListTailoringItem> queryId(String pId);
+
+	public List<SizeTable>size(String colour,String id);
+
+	public List<SizeTable> sizes(String id);
+}

+ 18 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/mapper/SyPackingListTailoringMapper.java

@@ -0,0 +1,18 @@
+package org.jeecg.modules.splt.mapper;
+
+import org.jeecg.modules.splt.entity.SyPackingListTailoring;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 装箱单主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+public interface SyPackingListTailoringMapper extends BaseMapper<SyPackingListTailoring> {
+    public SyPackingListTailoring querySpaplId(String id);
+
+    public void deleteByMainId(String id);
+
+    public SyPackingListTailoring queryId(String id);
+}

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

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.splt.mapper.SyPackingListTailoringItemMapper">
+
+	<update id="deleteByMainId" parameterType="java.lang.String">
+		update sy_packing_list_tailoring_item set del_flag='1' where
+		sy_packing_list_tailoring_id = #{id}
+	</update>
+	
+	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">
+		SELECT * 
+		FROM  sy_packing_list_tailoring_item
+		WHERE
+			 sy_packing_list_tailoring_id = #{id} 		
+	</select>
+
+	<select id="querySpaplItemId" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">
+		SELECT
+			id syPreAssembledPackingListItemId,
+			sy_pre_assembled_packing_list_id syPreAssembledPackingListId,
+			ac_set_no,
+			garment_factory,
+			hod,
+			style_no,
+			po_no,
+			item_code,
+			distribution_point,
+			prepack_sku,
+			size,
+			starting_box_number,
+			end_case_number,
+			colour,
+			pieces_box,
+			box_number,
+			sum(total) total,/*件数*/
+			net_weight,
+			total_net_weight total_net_weight,/*总净重*/
+			gross_weight,
+			total_gross_weight total_gross_weight,/*总毛重*/
+			outer_box_length,
+			outer_Box_Width,
+			total_volume total_volume,/*总体积*/
+			net_weight_too net_weight_too,/*净净重*/
+			unit_price,
+			total_price total_price,/*总价*/
+			with_code,
+			small_po,
+			inventory_name,
+			spur_or_sub_order,
+			factory_unit_price,
+			/*SUM(total_quantity) total_quantity,合计数量/件数*/
+			customer_abbreviation
+		FROM  sy_pre_assembled_packing_list_item
+		WHERE sy_pre_assembled_packing_list_id = #{value} AND del_flag = 0
+		GROUP BY colour/*根据发运明细主表id分组 改为了按照 颜色进行分组*/
+	</select>
+
+	<select id="queryId" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">
+	SELECT
+		id syPreAssembledPackingListItemId,
+		sy_pre_assembled_packing_list_id syPreAssembledPackingListId,
+		ac_set_no,
+		garment_factory,
+		hod,
+		style_no,
+		po_no,
+		item_code,
+		distribution_point,
+		prepack_sku,
+		size,
+		starting_box_number,
+		end_case_number,
+		colour,
+		pieces_box,
+		box_number,
+		SUM(total) total,/*件数*/
+		net_weight,
+		total_net_weight total_net_weight,/*总净重*/
+		gross_weight,
+		total_gross_weight total_gross_weight,/*总毛重*/
+		outer_box_length,
+		outer_Box_Width,
+		total_volume total_volume,/*总体积*/
+		net_weight_too net_weight_too,/*净净重*/
+		unit_price,
+		total_price total_price,/*总价*/
+		with_code
+	FROM  sy_packing_list_tailoring_item
+	WHERE sy_packing_list_tailoring_id =#{value} AND del_flag = 0
+	GROUP BY colour
+	</select>
+
+	<select id="size" resultType="org.jeecg.modules.spapl.entity.SizeTable">
+       SELECT sy_packing_list_tailoring_item.size,alias,total quantity,box_Number,total/box_Number proportion,
+		sy_packing_list_tailoring_item.id itemId
+			FROM sy_packing_list_tailoring_item
+			LEFT JOIN sizetable ON sy_packing_list_tailoring_item.`size`=sizetable.`size`
+			OR sy_packing_list_tailoring_item.`size`=sizetable.`alias`
+		WHERE colour=#{colour} AND
+		sy_packing_list_tailoring_id=#{id}
+		ORDER BY sizetable.num
+	</select>
+
+	<select id="sizes" resultType="org.jeecg.modules.spapl.entity.SizeTable">
+       SELECT DISTINCT sy_packing_list_tailoring_item.size,alias
+		 FROM sy_packing_list_tailoring_item
+		 LEFT JOIN sizetable ON sy_packing_list_tailoring_item.`size`=sizetable.`size`
+		 OR sy_packing_list_tailoring_item.`size`=sizetable.`alias`
+		 WHERE sy_packing_list_tailoring_id =#{value}
+		 ORDER BY sizetable.num
+	</select>
+</mapper>

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

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.splt.mapper.SyPackingListTailoringMapper">
+    <select id="querySpaplId" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoring">
+        select
+        id syPreAssembledPackingListId,
+        order_Number,
+        item_Number,
+        product_Name,
+        size_Range,
+        customer,
+        container_Code,
+        container_Number,
+        u8_Remarks,
+        garment_Factory,
+        total_Boxes,
+        total_Net_Weight,
+        total_Gross_Weight,
+        total_Volume,
+        total_Price,
+        depositary_Receipt_No,
+        pre_Delivery_Date,
+        order_Type
+        from sy_pre_assembled_packing_list where id=#{value}
+    </select>
+
+    <select id="queryId" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoring">
+    SELECT
+        id syPreAssembledPackingListId,
+        order_number,
+        item_Number,
+        product_Name,
+        size_Range,
+        customer,
+        container_Code,
+        container_Number,
+        u8_Remarks,
+        garment_Factory,
+        total_Boxes,
+        total_Net_Weight,
+        total_Gross_Weight,
+        total_Volume,
+        total_Price,
+        depositary_Receipt_No,
+        pre_Delivery_Date,
+        order_Type
+    FROM sy_packing_list_tailoring
+    WHERE id=#{value}
+    </select>
+
+    <update id="deleteByMainId" parameterType="java.lang.String">
+        update sy_pre_assembled_packing_list set del_flag='1' where #{value}
+    </update>
+</mapper>

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

@@ -0,0 +1,16 @@
+package org.jeecg.modules.splt.service;
+
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 装箱单子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+public interface ISyPackingListTailoringItemService extends IService<SyPackingListTailoringItem> {
+
+	public List<SyPackingListTailoringItem> selectByMainId(String mainId);
+}

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

@@ -0,0 +1,57 @@
+package org.jeecg.modules.splt.service;
+
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import org.jeecg.modules.splt.entity.SyPackingListTailoring;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: 装箱单主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+public interface ISyPackingListTailoringService extends IService<SyPackingListTailoring> {
+
+	/**
+	 * 添加一对多
+	 * 
+	 */
+	public void saveMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList) ;
+
+	/**
+	 * 添加一对多
+	 *
+	 */
+	public SyPackingListTailoring saveMain2(SyPackingListTailoring syPackingListTailoring) ;
+	
+	/**
+	 * 修改一对多
+	 * 
+	 */
+	public void updateMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList);
+	
+	/**
+	 * 删除一对多
+	 */
+	public void delMain(String id);
+	
+	/**
+	 * 批量删除一对多
+	 */
+	public void delBatchMain(Collection<? extends Serializable> idList);
+
+	/**
+	 * 根据预装箱单主表id获取数据
+	 */
+	public SyPackingListTailoring querySpaplId(String id);
+
+	/**
+	 * 根据装箱单主表id获取数据
+	 * @param id
+	 * @return
+	 */
+	public SyPackingListTailoring queryId(String id);
+}

+ 36 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringItemServiceImpl.java

@@ -0,0 +1,36 @@
+package org.jeecg.modules.splt.service.impl;
+
+import org.jeecg.modules.spapl.service.ISyPreAssembledPackingListItemService;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import org.jeecg.modules.splt.mapper.SyPackingListTailoringItemMapper;
+import org.jeecg.modules.splt.service.ISyPackingListTailoringItemService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Description: 装箱单子表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+@Service
+public class SyPackingListTailoringItemServiceImpl extends ServiceImpl<SyPackingListTailoringItemMapper, SyPackingListTailoringItem> implements ISyPackingListTailoringItemService {
+	
+	@Autowired
+	private SyPackingListTailoringItemMapper syPackingListTailoringItemMapper;
+	@Autowired
+	private ISyPreAssembledPackingListItemService syPreAssembledPackingListItemService;
+	
+	@Override
+	public List<SyPackingListTailoringItem> selectByMainId(String mainId) {
+		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.selectByMainId(mainId);
+		for (SyPackingListTailoringItem item : items){
+			System.out.println("withcode"+item.getWithCode());
+			System.out.println("total"+item.getTotal());
+			item.setSizeTables(syPreAssembledPackingListItemService.selectSize(item.getWithCode(),item.getTotal()));
+		}
+		return items;
+	}
+}

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

@@ -0,0 +1,181 @@
+package org.jeecg.modules.splt.service.impl;
+
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.spapl.entity.SizeTable;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
+import org.jeecg.modules.spapl.mapper.SyPreAssembledPackingListItemMapper;
+import org.jeecg.modules.spapl.mapper.SyPreAssembledPackingListMapper;
+import org.jeecg.modules.splt.entity.SyPackingListTailoring;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import org.jeecg.modules.splt.mapper.SyPackingListTailoringItemMapper;
+import org.jeecg.modules.splt.mapper.SyPackingListTailoringMapper;
+import org.jeecg.modules.splt.service.ISyPackingListTailoringService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Collection;
+
+/**
+ * @Description: 装箱单主表
+ * @Author: jeecg-boot
+ * @Date:   2022-06-29
+ * @Version: V1.0
+ */
+@Service
+public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingListTailoringMapper, SyPackingListTailoring> implements ISyPackingListTailoringService {
+
+	@Autowired
+	private SyPackingListTailoringMapper syPackingListTailoringMapper;
+	@Autowired
+	private SyPackingListTailoringItemMapper syPackingListTailoringItemMapper;
+	@Autowired
+	private SyPreAssembledPackingListItemMapper syPreAssembledPackingListItemMapper;
+	
+	@Override
+	@Transactional
+	public void saveMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList) {
+		syPackingListTailoringMapper.insert(syPackingListTailoring);
+		for(SyPackingListTailoringItem entity:syPackingListTailoringItemList) {
+			//外键设置
+			entity.setSyPackingListTailoringId(syPackingListTailoring.getId());
+			syPackingListTailoringItemMapper.insert(entity);
+		}
+	}
+
+	public SyPackingListTailoring saveMain2(SyPackingListTailoring syPackingListTailoring){
+		List<SyPackingListTailoringItem> items=syPackingListTailoring.getSyPackingListTailoringItemList();
+		//SyPackingListTailoring.setDocumentNo(oConvertUtils.id());//随机单据号
+		syPackingListTailoring.setDelFlag("0");//删除状态默认为0
+		syPackingListTailoring.setPushState("0");//推送状态默认为0
+		syPackingListTailoring.setTheDocumentsState("0");//单据装填默认为0
+		syPackingListTailoringMapper.insert(syPackingListTailoring);//往主表添加数据
+		System.out.println("syPackingListTailoring的id为:\t"+syPackingListTailoring.getId());
+		BigDecimal totalBoxes=new BigDecimal(0);//总箱数
+		BigDecimal totalNetWeight=new BigDecimal(0);//总净重
+		BigDecimal totalGrossWeight=new BigDecimal(0);//总毛重
+		BigDecimal totalVolume=new BigDecimal(0);//总体积
+		BigDecimal totalPrice=new BigDecimal(0);//总价
+		for (SyPackingListTailoringItem item : items){
+			totalBoxes=totalBoxes.add(item.getBoxNumber());//箱数
+			totalNetWeight=totalNetWeight.add(item.getTotalNetWeight());//总净重
+			totalGrossWeight=totalGrossWeight.add(item.getTotalGrossWeight());//总毛重
+			totalVolume=totalVolume.add(item.getTotalVolume());//总体积
+			totalPrice=totalPrice.add(item.getTotalPrice());//总价
+			System.out.println("箱数\t"+totalBoxes);
+			System.out.println("总净重\t"+totalNetWeight);
+			System.out.println("总毛重\t"+totalGrossWeight);
+			System.out.println("总体积\t"+totalVolume);
+			System.out.println("总价\t"+totalPrice);
+			List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
+			BigDecimal total=item.getTotal();//总件数
+			BigDecimal piecesBox=item.getPiecesBox();//箱/件数
+			item.setSyPackingListTailoringId(syPackingListTailoring.getId());//获取主表id
+			for (SizeTable size : sizes){
+				BigDecimal quantity=total.divide(piecesBox,4,BigDecimal.ROUND_HALF_UP) ;//总件数除以箱/件数
+				quantity=quantity.multiply(new BigDecimal(size.getProportion()));//乘以比例可获得
+				item.setTotal(quantity);//该尺码件数
+				item.setSize(size.getSize());//获取尺码信息
+				item.setSyPreAssembledPackingListItemId(size.getItemId());//获取到预装箱单子表id
+				item.setDelFlag("0");//默认为未删除
+				item.setSort(size.getNum());//序号
+				item.setId(oConvertUtils.id());//获取到随机id
+				int row =syPackingListTailoringItemMapper.insert(item);//添加子表数据
+				System.out.println("尺码大小:\t"+item.getSize());
+				System.out.println("尺码件数:\t"+item.getTotal());
+				System.out.println("尺码比例:\t"+size.getProportion());
+				System.out.println("预装箱单主表id\t"+syPackingListTailoring.getSyPreAssembledPackingListId());
+				System.out.println("预装箱单子表id\t"+item.getSyPreAssembledPackingListItemId());
+				System.out.println("预装箱单子表id为"+item.getId());
+				System.out.println("插入数据库后返回消息为"+row);
+			}
+		}
+		syPackingListTailoring.setTotalBoxes(totalBoxes);
+		syPackingListTailoring.setTotalNetWeight(totalNetWeight);
+		syPackingListTailoring.setTotalGrossWeight(totalGrossWeight);
+		syPackingListTailoring.setTotalVolume(totalVolume);
+		syPackingListTailoring.setTotalPrice(totalPrice);
+		syPackingListTailoringMapper.updateById(syPackingListTailoring);
+		return syPackingListTailoring;
+	}
+
+	@Override
+	@Transactional
+	public void updateMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList) {
+		syPackingListTailoringMapper.updateById(syPackingListTailoring);
+		
+		//1.先删除子表数据
+		syPackingListTailoringItemMapper.deleteByMainId(syPackingListTailoring.getId());
+		
+		//2.子表数据重新插入
+		for(SyPackingListTailoringItem entity:syPackingListTailoringItemList) {
+			//外键设置
+			entity.setSyPackingListTailoringId(syPackingListTailoring.getId());
+			entity.setDelFlag("0");//修改成为未删除状态
+			int row=syPackingListTailoringItemMapper.updateById(entity);
+			if(row<1){//如果为0就insert
+				syPackingListTailoringItemMapper.insert(entity);
+			}
+		}
+	}
+
+	@Override
+	@Transactional
+	public void delMain(String id) {
+		syPackingListTailoringItemMapper.deleteByMainId(id);
+		syPackingListTailoringMapper.deleteByMainId(id);
+	}
+
+	@Override
+	@Transactional
+	public void delBatchMain(Collection<? extends Serializable> idList) {
+		for(Serializable id:idList) {
+			syPackingListTailoringItemMapper.deleteByMainId(id.toString());
+			syPackingListTailoringMapper.deleteByMainId(id.toString());
+		}
+	}
+
+	@Override
+	public SyPackingListTailoring querySpaplId(String id) {
+		SyPackingListTailoring syPackingListTailoring=syPackingListTailoringMapper.querySpaplId(id);
+		//获得所有尺码组
+		List<SizeTable> sizes=syPreAssembledPackingListItemMapper.querySizes2(syPackingListTailoring.getSyPreAssembledPackingListId());
+		if(sizes.size()>0){
+			syPackingListTailoring.setSizeTables(this.sort(sizes));
+		}
+		//获取子表数据
+		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.querySpaplItemId(id);
+		if(items.size()>0){
+			for (SyPackingListTailoringItem item : items){
+				//循环子表获得尺码组
+				item.setSizeTables(sort(syPreAssembledPackingListItemMapper.querySize2(item.getColour(),item.getSyPreAssembledPackingListId())));
+			}
+			syPackingListTailoring.setSyPackingListTailoringItemList(items);
+		}
+		return syPackingListTailoring;
+	}
+
+	/**
+	 * 根据装箱单id获取数据
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public SyPackingListTailoring queryId(String id) {
+		SyPackingListTailoring syPackingListTailoring=queryId(id);
+		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.queryId(id);
+		syPackingListTailoring.setSyPackingListTailoringItemList(items);
+		return syPackingListTailoring;
+	}
+
+	public List<SizeTable> sort(List<SizeTable> sizes) {
+		int i=0;
+		for(SizeTable size : sizes){
+			size.setNum(++i);
+		}
+		return sizes;
+	}
+}