huxy 3 лет назад
Родитель
Сommit
b498520c0f

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

@@ -8,6 +8,12 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.system.vo.LoginUser;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.util.oConvertUtils;
@@ -15,7 +21,9 @@ 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.PackingHeaderVo;
 import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListVo;
+import org.jeecg.modules.splt.vo.SyPackingListTailoringVo;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -49,7 +57,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
  * @Date:   2022-06-29
  * @Version: V1.0
  */
-@Api(tags="装箱单主表")
+@Api(tags="装箱单成衣")
 @RestController
 @RequestMapping("/splt/syPackingListTailoring")
 @Slf4j
@@ -64,22 +72,22 @@ public class SyPackingListTailoringController {
 	/**
 	 * 分页列表查询
 	 *
-	 * @param syPackingListTailoring
+	 * @param syPackingListTailoringVo
 	 * @param pageNo
 	 * @param pageSize
 	 * @param req
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-分页列表查询")
-	@ApiOperation(value="装箱单主表-分页列表查询", notes="装箱单主表-分页列表查询")
+	@AutoLog(value = "装箱单成衣-分页列表查询")
+	@ApiOperation(value="装箱单成衣-分页列表查询", notes="装箱单成衣-分页列表查询")
 	@GetMapping(value = "/list")
-	public Result<?> queryPageList(SyPackingListTailoring syPackingListTailoring,
+	public Result<?> queryPageList(SyPackingListTailoringVo syPackingListTailoringVo,
 								   @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);
+		QueryWrapper<SyPackingListTailoringVo> queryWrapper = QueryGenerator.initQueryWrapper(syPackingListTailoringVo, req.getParameterMap());
+		Page<SyPackingListTailoringVo> page = new Page<SyPackingListTailoringVo>(pageNo, pageSize);
+		IPage<SyPackingListTailoringVo> pageList = syPackingListTailoringService.selectList(page, queryWrapper);
 		return Result.OK(pageList);
 	}
 
@@ -147,28 +155,44 @@ public class SyPackingListTailoringController {
 	 * @param syPackingListTailoring
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-添加")
-	@ApiOperation(value="装箱单主表-添加", notes="装箱单主表-添加")
+	@AutoLog(value = "装箱单成衣-添加")
+	@ApiOperation(value="装箱单成衣-添加", notes="装箱单成衣-添加")
 	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody SyPackingListTailoring syPackingListTailoring) {
+	public Result<SyPackingListTailoring> add(@RequestBody SyPackingListTailoring syPackingListTailoring) {
+		Result<SyPackingListTailoring> result=new Result<>();
+		if(oConvertUtils.isEmpty(syPackingListTailoring)){
+			result.setMessage("对象为空");
+			result.setSuccess(false);
+			return result;
+		}
 		syPackingListTailoringService.saveMain2(syPackingListTailoring);
-		return Result.OK("添加成功!");
+		result.setSuccess(true);
+		result.setMessage("添加成功!");
+		result.setResult(syPackingListTailoring);
+		return result;
 	}
 	
 	/**
 	 * 编辑
 	 *
-	 * @param syPackingListTailoringPage
+	 * @param syPackingListTailoring
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-编辑")
-	@ApiOperation(value="装箱单主表-编辑", notes="装箱单主表-编辑")
+	@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("编辑成功!");
+	public Result<SyPackingListTailoring> edit(@RequestBody SyPackingListTailoring syPackingListTailoring) {
+		Result<SyPackingListTailoring> result=new Result<>();
+		if(oConvertUtils.isEmpty(syPackingListTailoring)){
+			result.setMessage("对象为空");
+			result.setSuccess(false);
+			return result;
+		}
+		syPackingListTailoringService.updateMain2(syPackingListTailoring);
+		result.setSuccess(true);
+		result.setMessage("编辑成功!");
+		result.setResult(syPackingListTailoring);
+		return result;
 	}
 	
 	/**
@@ -177,8 +201,8 @@ public class SyPackingListTailoringController {
 	 * @param id
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-通过id删除")
-	@ApiOperation(value="装箱单主表-通过id删除", notes="装箱单主表-通过id删除")
+	@AutoLog(value = "装箱单成衣-通过id删除")
+	@ApiOperation(value="装箱单成衣-通过id删除", notes="装箱单成衣-通过id删除")
 	@DeleteMapping(value = "/delete")
 	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
 	    syPackingListTailoringService.delMain(id);
@@ -191,8 +215,8 @@ public class SyPackingListTailoringController {
 	 * @param ids
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-批量删除")
-	@ApiOperation(value="装箱单主表-批量删除", notes="装箱单主表-批量删除")
+	@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(",")));
@@ -205,15 +229,15 @@ public class SyPackingListTailoringController {
 	 * @param id
 	 * @return
 	 */
-	@AutoLog(value = "装箱单主表-通过id查询")
-	@ApiOperation(value="装箱单主表-通过id查询", notes="装箱单主表-通过id查询")
+	@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;
+			return result;
 		}
 		SyPackingListTailoring syPackingListTailoring = syPackingListTailoringService.queryId(id);
 		if(syPackingListTailoring==null){
@@ -294,7 +318,7 @@ public class SyPackingListTailoringController {
               for (SyPackingListTailoringPage page : list) {
                   SyPackingListTailoring po = new SyPackingListTailoring();
                   BeanUtils.copyProperties(page, po);
-                  syPackingListTailoringService.saveMain(po, page.getSyPackingListTailoringItemList());
+                  syPackingListTailoringService.saveMain2(po);
               }
               return Result.OK("文件导入成功!数据行数:" + list.size());
           } catch (Exception e) {
@@ -311,4 +335,52 @@ public class SyPackingListTailoringController {
       return Result.OK("文件导入失败!");
   }
 
+
+
+	 @AutoLog(value = "装箱单成衣JSON")
+	 @ApiOperation(value="装箱单成衣JSON", notes="装箱单成衣JSON")
+	 @GetMapping(value = "/pushSplt")
+	 public JSONObject pushSplt(String id) {
+  		 List list=new ArrayList();
+  		 SyPackingListTailoring syPackingListTailoring= syPackingListTailoringService.getById(id);
+  		 QueryWrapper queryWrapper=new QueryWrapper();
+  		 queryWrapper.eq("sy_packing_list_tailoring_id",id);
+  		 List<SyPackingListTailoringItem> item=syPackingListTailoringItemService.list(queryWrapper);
+  		 syPackingListTailoring.setSyPackingListTailoringItemList(item);
+  		 list.add(syPackingListTailoring);
+		 Gson userGson = new GsonBuilder().create();
+		 JSONObject jsonObjec=new JSONObject();
+		 jsonObjec.put("payload", userGson.toJson(JSONObject.toJSON(list)));
+  		 return jsonObjec;
+	 }
+
+	 @PostMapping(value = "/saveBath")
+	 @AutoLog(value = "测试接收功能")
+	 @ApiOperation(value="测试接收功能", notes="测试接收功能")
+	 public Result saveBath(@RequestBody JSONArray json){
+		 Result result=new Result();
+		 try {
+			 if(json!=null&&json.size()>0) {
+				 //账套1
+				 List<Map<String, Object>> mapListOne = new ArrayList<>();
+				 for (int i = 0; i < json.size(); i++) {
+					 //获取对象
+					 JSONObject jsonObject = json.getJSONObject(i);
+					 //获取账套
+					 String spapl = jsonObject.get("spapl").toString();
+					 //转list
+					 List<SyPackingListTailoring> syPackingListTailorings=JSONObject.parseArray(spapl,SyPackingListTailoring.class);
+					//生成数据
+					 syPackingListTailoringService.saveList(syPackingListTailorings);
+				 }
+				 result.success("操作成功");
+			 }
+		 } catch (Exception e) {
+			 e.printStackTrace();
+			 result.error500("操作失败:"+e.getMessage());
+		 }
+
+		 return result;
+	 }
+
 }

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

@@ -36,6 +36,9 @@ public class SyPackingListTailoring implements Serializable {
 	/**预装箱单主表id*/
 	@ApiModelProperty(value = "预装箱单主表id")
 	private String syPreAssembledPackingListId;
+	/**单据号*/
+	@ApiModelProperty(value = "单据号")
+	private String documentNo;
 	/**创建人*/
 	@ApiModelProperty(value = "创建人")
 	private String createBy;
@@ -76,6 +79,9 @@ public class SyPackingListTailoring implements Serializable {
 	/**客户简称*/
 	@ApiModelProperty(value = "客户简称")
 	private String customerAbbreviation;
+	/**总箱数*/
+	@ApiModelProperty(value = "总箱数")
+	private java.math.BigDecimal totalBoxes;
 	/**集装箱代号*/
 	@ApiModelProperty(value = "集装箱代号")
 	private String containerCode;
@@ -96,27 +102,27 @@ public class SyPackingListTailoring implements Serializable {
 	private Object u8Remarks;
 	/**托书号*/
 	@ApiModelProperty(value = "托书号")
-	private String syXxxId;
+	private String shippingOrderNumber;
 	/**预托书号*/
 	@ApiModelProperty(value = "预托书号")
 	private String depositaryReceiptNo;
-	/**预发货日期*/
+/*	*//**预发货日期*//*
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
 	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 	@ApiModelProperty(value = "预发货日期")
 	private Date preDeliveryDate;
-	/**小PO*/
+	*//**小PO*//*
 	@ApiModelProperty(value = "小PO")
 	private String smailPo;
-	/**分销点*/
+	*//**分销点*//*
 	@ApiModelProperty(value = "分销点")
 	private String theDistribution;
-	/**存货名称*/
+	*//**存货名称*//*
 	@ApiModelProperty(value = "存货名称")
 	private String nameOfTheInventory;
-	/**颜色*/
+	*//**颜色*//*
 	@ApiModelProperty(value = "颜色")
-	private String color;
+	private String color;*/
 	/**采购/委外订单号*/
 	@ApiModelProperty(value = "采购/委外订单号")
 	private String purchase;
@@ -126,24 +132,6 @@ public class SyPackingListTailoring implements Serializable {
 	/**工厂单价*/
 	@ApiModelProperty(value = "工厂单价")
 	private java.math.BigDecimal theFactoryPrice;
-	/**数量(按合并规则累计)*/
-	@ApiModelProperty(value = "数量(按合并规则累计)")
-	private java.math.BigDecimal number;
-	/**箱数*/
-	@ApiModelProperty(value = "箱数")
-	private java.math.BigDecimal totalBoxes;
-	/**总净重*/
-	@ApiModelProperty(value = "总净重")
-	private java.math.BigDecimal totalNetWeight;
-	/**总毛重*/
-	@ApiModelProperty(value = "总毛重")
-	private java.math.BigDecimal totalGrossWeight;
-	/**总体积*/
-	@ApiModelProperty(value = "总体积")
-	private java.math.BigDecimal totalVolume;
-	/**总件数*/
-	@ApiModelProperty(value = "总价")
-	private java.math.BigDecimal totalPrice;
 	/**推送状态*/
 	@ApiModelProperty(value = "推送状态")
 	private String pushState;
@@ -156,9 +144,9 @@ public class SyPackingListTailoring implements Serializable {
 	/**是否云工厂推送*/
 	@ApiModelProperty(value = "是否云工厂推送")
 	private String whetherCloudFactoryPush;
-	/**状态*/
+/*	*//**状态*//*
 	@ApiModelProperty(value = "状态")
-	private String state;
+	private String state;*/
 	/**附件*/
 	@ApiModelProperty(value = "附件")
 	private String accessory;

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

@@ -63,6 +63,10 @@ public class SyPackingListTailoringItem implements Serializable {
     @Excel(name = "PO NO.", width = 15)
 	@ApiModelProperty(value = "PO NO.")
 	private String poNo;
+    /**小PO*/
+	@Excel(name = "小PO", width = 15)
+	@ApiModelProperty(value = "小PO")
+	private String smailPo;
 	/**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")
@@ -195,9 +199,25 @@ public class SyPackingListTailoringItem implements Serializable {
     @Excel(name = "存货名称", width = 15)
 	@ApiModelProperty(value = "存货名称")
 	private String inventoryName;
+	/**分组id*/
+	@Excel(name = "分组id", width = 15)
+	@ApiModelProperty(value = "分组id")
+	private String groupId;
 	/**二维表格*/
 	@TableField(exist = false)
 	@ApiModelProperty(value = "二维表格")
 	private List<SizeTable> sizeTables;
 
+	/**存货编码*/
+	@Excel(name = "存货编码", width = 15)
+	@ApiModelProperty(value = "存货编码")
+	private java.lang.String inventoryCode;
+
+	@Excel(name = "计量单位", width = 20)
+	@ApiModelProperty(value = "计量单位")
+	private String masterMetering;
+
+	@Excel(name = "工厂单价", width = 20)
+	@ApiModelProperty(value = "工厂单价")
+	private java.math.BigDecimal factoryUnitPrice;
 }

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

@@ -1,7 +1,14 @@
 package org.jeecg.modules.splt.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
 import org.jeecg.modules.splt.entity.SyPackingListTailoring;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.splt.vo.SyPackingListTailoringVo;
+
+import java.util.List;
 
 /**
  * @Description: 装箱单主表
@@ -14,5 +21,5 @@ public interface SyPackingListTailoringMapper extends BaseMapper<SyPackingListTa
 
     public void deleteByMainId(String id);
 
-    public SyPackingListTailoring queryId(String id);
+    public IPage<SyPackingListTailoringVo> selectList(IPage<SyPackingListTailoringVo> page, @Param("ew") QueryWrapper<SyPackingListTailoringVo> queryWrapper);
 }

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

@@ -34,22 +34,22 @@
 			box_number,
 			sum(total) total,/*件数*/
 			net_weight,
-			total_net_weight total_net_weight,/*总净重*/
+			sum(total_net_weight) total_net_weight,/*总净重*/
 			gross_weight,
-			total_gross_weight total_gross_weight,/*总毛重*/
+			sum(total_gross_weight) total_gross_weight,/*总毛重*/
 			outer_box_length,
 			outer_Box_Width,
-			total_volume total_volume,/*总体积*/
-			net_weight_too net_weight_too,/*净净重*/
+			outer_Box_Height,
+			sum(total_volume) total_volume,/*总体积*/
+			net_weight_too,/*净净重*/
 			unit_price,
-			total_price total_price,/*总价*/
+			sum(total_price) total_price,/*总价*/
 			with_code,
 			small_po,
 			inventory_name,
 			spur_or_sub_order,
 			factory_unit_price,
-			/*SUM(total_quantity) total_quantity,合计数量/件数*/
-			customer_abbreviation
+			group_id
 		FROM  sy_pre_assembled_packing_list_item
 		WHERE sy_pre_assembled_packing_list_id = #{value} AND del_flag = 0
 		GROUP BY colour/*根据发运明细主表id分组 改为了按照 颜色进行分组*/
@@ -57,8 +57,9 @@
 
 	<select id="queryId" resultType="org.jeecg.modules.splt.entity.SyPackingListTailoringItem">
 	SELECT
-		id syPreAssembledPackingListItemId,
-		sy_pre_assembled_packing_list_id syPreAssembledPackingListId,
+		id,
+		sy_packing_list_tailoring_id,
+		sy_pre_assembled_packing_list_id,
 		ac_set_no,
 		garment_factory,
 		hod,
@@ -72,18 +73,19 @@
 		end_case_number,
 		colour,
 		pieces_box,
-		box_number,
+		box_number,/*箱数*/
 		SUM(total) total,/*件数*/
 		net_weight,
-		total_net_weight total_net_weight,/*总净重*/
+		sum(total_net_weight) total_net_weight,/*总净重*/
 		gross_weight,
-		total_gross_weight total_gross_weight,/*总毛重*/
+		sum(total_gross_weight)  total_gross_weight,/*总毛重*/
 		outer_box_length,
 		outer_Box_Width,
-		total_volume total_volume,/*总体积*/
+		outer_Box_Height,
+		sum(total_volume)  total_volume,/*总体积*/
 		net_weight_too net_weight_too,/*净净重*/
 		unit_price,
-		total_price total_price,/*总价*/
+		sum(total_price)  total_price,/*总价*/
 		with_code
 	FROM  sy_packing_list_tailoring_item
 	WHERE sy_packing_list_tailoring_id =#{value} AND del_flag = 0

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

@@ -14,41 +14,30 @@
         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>
+    
+    <select id="selectList" resultType="org.jeecg.modules.splt.vo.SyPackingListTailoringVo">
+       SELECT a.*,
+         b.ac_set_no,
+         b.hod,
+         b.style_No,
+         b.po_No,
+         b.item_Code,
+         b.distribution_Point,
+         b.prepack_Sku,
+         SUM(b.total) total
+         FROM sy_packing_list_tailoring a
+         LEFT JOIN sy_packing_list_tailoring_item b
+         ON a.id=b.sy_packing_list_tailoring_id
+         ${ew.customSqlSegment}
+         GROUP BY a.id
+    </select>
 </mapper>

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

@@ -1,8 +1,13 @@
 package org.jeecg.modules.splt.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
 import org.jeecg.modules.splt.entity.SyPackingListTailoring;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.splt.vo.SyPackingListTailoringVo;
+
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.List;
@@ -17,22 +22,22 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 
 	/**
 	 * 添加一对多
-	 * 
+	 *
 	 */
-	public void saveMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList) ;
+	public SyPackingListTailoring saveMain2(SyPackingListTailoring syPackingListTailoring) ;
 
 	/**
-	 * 添加一对多
+	 * 循环添加
 	 *
 	 */
-	public SyPackingListTailoring saveMain2(SyPackingListTailoring syPackingListTailoring) ;
+	public List<SyPackingListTailoring> saveList(List<SyPackingListTailoring> syPackingListTailoring) ;
 	
 	/**
 	 * 修改一对多
-	 * 
+	 *
 	 */
-	public void updateMain(SyPackingListTailoring syPackingListTailoring, List<SyPackingListTailoringItem> syPackingListTailoringItemList);
-	
+	public SyPackingListTailoring updateMain2(SyPackingListTailoring syPackingListTailoring);
+
 	/**
 	 * 删除一对多
 	 */
@@ -54,4 +59,13 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 	 * @return
 	 */
 	public SyPackingListTailoring queryId(String id);
+
+	/**
+	 * 将数据汇总
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage<SyPackingListTailoringVo> selectList(IPage<SyPackingListTailoringVo> page,QueryWrapper<SyPackingListTailoringVo> queryWrapper);
+
 }

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

@@ -1,21 +1,25 @@
 package org.jeecg.modules.splt.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.spapl.entity.SizeTable;
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
 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.jeecg.modules.splt.vo.SyPackingListTailoringVo;
 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.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Collection;
 
@@ -34,92 +38,143 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 	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);
+
+
+	BigDecimal add(List<SyPackingListTailoringItem> items,String pid){
+		BigDecimal box=new BigDecimal(0);//获取总箱数
+		for (SyPackingListTailoringItem item : items){
+			List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
+			item.setSyPackingListTailoringId(pid);//获取主表id
+			BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
+			box=box.add(boxNumber1);//合计
+			item.setGroupId(oConvertUtils.id());
+			item.setDelFlag("0");//默认为未删除
+			for (SizeTable size : sizes){
+				SyPackingListTailoringItem item1=item;
+				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
+				item1.setTotal(boxNumber);//该尺码件数
+				item1.setSize(size.getSize());//获取尺码
+				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);//获取总体积						长*宽*高*箱数
+
+				item1.setSyPreAssembledPackingListItemId(size.getItemId());//获取到预装箱单子表id
+				item1.setSort(size.getNum());//获取序号
+				item1.setId(oConvertUtils.id());//获取到随机id
+				syPackingListTailoringItemMapper.insert(item1);//添加子表数据
+			}
 		}
+		return box;
 	}
 
+	BigDecimal update(List<SyPackingListTailoringItem> items,String pid){
+		BigDecimal box=new BigDecimal(0);//获取总箱数
+		for (SyPackingListTailoringItem item : items){
+			List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息
+			BigDecimal boxNumber1=item.getBoxNumber();//获取箱数
+			box=box.add(boxNumber1);//合计
+			item.setGroupId(oConvertUtils.id());
+			item.setDelFlag("0");//删除
+			for (SizeTable size : sizes){
+				SyPackingListTailoringItem item1=item;
+				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数
+				item1.setSize(size.getSize());//获取尺码信息
+				item1.setTotal(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);//获取总体积	长*宽*高*箱数
+
+				//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id
+				item1.setId(size.getItemId());//从尺码表中获取到id
+				// 获取到预装箱单子表id
+				String syPreAssembledPackingListItemId=syPackingListTailoringItemMapper.selectById(item1.getId()).getSyPreAssembledPackingListItemId();
+				item1.setSyPreAssembledPackingListItemId(syPreAssembledPackingListItemId);
+				int row=syPackingListTailoringItemMapper.updateById(item1);//如果没修改成功就是新增数据
+				if(row==0){//如果为0就添加数据
+					item1.setSyPackingListTailoringId(pid);
+					syPackingListTailoringItemMapper.insert(item1);
+				}
+			}
+		}
+		return box;
+	}
+
+	String randomStr(){
+		SimpleDateFormat sf= new SimpleDateFormat("yyyyMMdd");
+		QueryWrapper<SyPackingListTailoring> 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");
+		return  "CY"+sf.format(System.currentTimeMillis())+getOne(queryWrapperCount).getId();
+	}
+
+	@Override
+	@Transactional
 	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
+		syPackingListTailoring.setTheDocumentsState("0");//单据装态默认为0
+		syPackingListTailoring.setOrderNumber(randomStr());//订单号
 		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);
-			}
+		if(syPackingListTailoring.getSyPackingListTailoringItemList()!=null){
+			BigDecimal box=add(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
+			syPackingListTailoring.setTotalBoxes(box);
+			syPackingListTailoringMapper.updateById(syPackingListTailoring);
 		}
-		syPackingListTailoring.setTotalBoxes(totalBoxes);
-		syPackingListTailoring.setTotalNetWeight(totalNetWeight);
-		syPackingListTailoring.setTotalGrossWeight(totalGrossWeight);
-		syPackingListTailoring.setTotalVolume(totalVolume);
-		syPackingListTailoring.setTotalPrice(totalPrice);
-		syPackingListTailoringMapper.updateById(syPackingListTailoring);
 		return syPackingListTailoring;
 	}
 
+	/**
+	 * 专门处理云工厂数据
+	 * @param syPackingListTailoring
+	 * @return
+	 */
 	@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);
+	public List<SyPackingListTailoring> saveList(List<SyPackingListTailoring> syPackingListTailoring) {
+		for (SyPackingListTailoring splt : syPackingListTailoring){
+			splt.setWhetherCloudFactoryPush("y");//y代表是云工厂推送的
+			splt.setId(null);//id设置为null
+			splt.setOrderNumber(randomStr());//订单号
+			syPackingListTailoringMapper.insert(splt);
+			for (SyPackingListTailoringItem item : splt.getSyPackingListTailoringItemList()){
+				item.setId(null);
+				syPackingListTailoringItemMapper.insert(item);
 			}
 		}
+		return syPackingListTailoring;
+	}
+
+	@Override
+	@Transactional
+	public SyPackingListTailoring updateMain2(SyPackingListTailoring syPackingListTailoring) {
+		/*if(!syPackingListTailoringMapper.selectById(syPackingListTailoring.getId()).getState().equals("0")){
+			throw new JeecgBootException("单据已提交不能修改!");
+		}*/
+		List<SyPackingListTailoringItem> items=syPackingListTailoring.getSyPackingListTailoringItemList();
+		syPackingListTailoringMapper.updateById(syPackingListTailoring);//修改主表数据
+		syPackingListTailoringItemMapper.deleteByMainId(syPackingListTailoring.getId());//将子表的删除状态都变成1
+		if(syPackingListTailoring.getSyPackingListTailoringItemList()!=null){
+			BigDecimal box= update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId());
+			syPackingListTailoring.setTotalBoxes(box);
+			syPackingListTailoringMapper.updateById(syPackingListTailoring);
+		}
+		return syPackingListTailoring;
 	}
 
 	@Override
@@ -151,7 +206,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		if(items.size()>0){
 			for (SyPackingListTailoringItem item : items){
 				//循环子表获得尺码组
-				item.setSizeTables(sort(syPreAssembledPackingListItemMapper.querySize2(item.getColour(),item.getSyPreAssembledPackingListId())));
+				item.setSizeTables(sort(syPreAssembledPackingListItemMapper.querySize2(item.getGroupId(),item.getSyPreAssembledPackingListId())));
 			}
 			syPackingListTailoring.setSyPackingListTailoringItemList(items);
 		}
@@ -165,12 +220,22 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 	 */
 	@Override
 	public SyPackingListTailoring queryId(String id) {
-		SyPackingListTailoring syPackingListTailoring=queryId(id);
+		SyPackingListTailoring syPackingListTailoring=syPackingListTailoringMapper.selectById(id);
 		List<SyPackingListTailoringItem> items=syPackingListTailoringItemMapper.queryId(id);
+		List<SizeTable> size=syPackingListTailoringItemMapper.sizes(syPackingListTailoring.getId());
+		syPackingListTailoring.setSizeTables(size);//获取id
+		for (SyPackingListTailoringItem item : items){
+			item.setSizeTables(syPackingListTailoringItemMapper.size(item.getColour(),item.getSyPackingListTailoringId()));
+		}
 		syPackingListTailoring.setSyPackingListTailoringItemList(items);
 		return syPackingListTailoring;
 	}
 
+	@Override
+	public IPage<SyPackingListTailoringVo> selectList(IPage<SyPackingListTailoringVo> page, QueryWrapper<SyPackingListTailoringVo> queryWrapper) {
+		return syPackingListTailoringMapper.selectList(page,queryWrapper);
+	}
+
 	public List<SizeTable> sort(List<SizeTable> sizes) {
 		int i=0;
 		for(SizeTable size : sizes){

+ 188 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/vo/SyPackingListTailoringVo.java

@@ -0,0 +1,188 @@
+package org.jeecg.modules.splt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.splt.entity.SyPackingListTailoringItem;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description: 装箱单主表
+ * @Author: jeecg-boot
+ * @Date:   2022-07-06
+ * @Version: V1.0
+ */
+@Data
+@ApiModel(value="sy_packing_list_tailoringPage对象", description="装箱单主表")
+public class SyPackingListTailoringVo {
+
+	/**主键*/
+	private String id;
+	/**预装箱单主表id*/
+  	@Excel(name = "预装箱单主表id", width = 15)
+	private String syPreAssembledPackingListId;
+	/**创建人*/
+  	@Excel(name = "创建人", width = 15)
+	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")
+	private Date createTime;
+	/**修改人*/
+  	@Excel(name = "修改人", width = 15)
+	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")
+	private Date updateTime;
+	/**组织*/
+  	@Excel(name = "组织", width = 15)
+	private String pkOrg;
+	/**删除状态*/
+  	@Excel(name = "删除状态", width = 15)
+	private String delFlag;
+	/**订单号*/
+  	@Excel(name = "订单号", width = 15)
+	private String orderNumber;
+	/**款号*/
+  	@Excel(name = "款号", width = 15)
+	private String itemNumber;
+	/**品名*/
+  	@Excel(name = "品名", width = 15)
+	private String productName;
+	/**尺码范围*/
+  	@Excel(name = "尺码范围", width = 15)
+	private String sizeRange;
+	/**客户*/
+  	@Excel(name = "客户", width = 15)
+	private String customer;
+	/**客户简称*/
+  	@Excel(name = "客户简称", width = 15)
+	private String customerAbbreviation;
+	/**集装箱代号*/
+  	@Excel(name = "集装箱代号", width = 15)
+	private String containerCode;
+	/**集装箱号*/
+  	@Excel(name = "集装箱号", width = 15)
+	private String containerNumber;
+	/**备注*/
+  	@Excel(name = "备注", width = 15)
+	private Object memo;
+	/**成衣工厂*/
+  	@Excel(name = "成衣工厂", width = 15)
+	private String garmentFactory;
+	/**外销发票号*/
+  	@Excel(name = "外销发票号", width = 15)
+	private String exportInvoiceNo;
+	/**u8备注*/
+  	@Excel(name = "u8备注", width = 15)
+	private Object u8Remarks;
+	/**托书号*/
+  	@Excel(name = "托书号", width = 15)
+	private String syXxxId;
+	/**预托书号*/
+  	@Excel(name = "预托书号", width = 15)
+	private String syXxxxId;
+	/**预发货日期*/
+  	@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")
+	private Date preDeliveryDate;
+	/**小PO*/
+  	@Excel(name = "小PO", width = 15)
+	private String smailPo;
+	/**分销点*/
+  	@Excel(name = "分销点", width = 15)
+	private String theDistribution;
+	/**存货名称*/
+  	@Excel(name = "存货名称", width = 15)
+	private String nameOfTheInventory;
+	/**颜色*/
+  	@Excel(name = "颜色", width = 15)
+	private String color;
+	/**采购/委外订单号*/
+  	@Excel(name = "采购/委外订单号", width = 15)
+	private String purchase;
+	/**订单类型*/
+  	@Excel(name = "订单类型", width = 15)
+	private String orderType;
+	/**工厂单价*/
+  	@Excel(name = "工厂单价", width = 15)
+	private java.math.BigDecimal theFactoryPrice;
+	/**数量(按合并规则累计)*/
+  	@Excel(name = "数量(按合并规则累计)", width = 15)
+	private java.math.BigDecimal number;
+	/**箱数*/
+  	@Excel(name = "箱数", width = 15)
+	private java.math.BigDecimal totalBoxes;
+	/**总净重*/
+  	@Excel(name = "总净重", width = 15)
+	private java.math.BigDecimal totalNetWeight;
+	/**总毛重*/
+  	@Excel(name = "总毛重", width = 15)
+	private java.math.BigDecimal totalGrossWeight;
+	/**总体积*/
+  	@Excel(name = "总体积", width = 15)
+	private java.math.BigDecimal totalVolume;
+	/**推送状态*/
+  	@Excel(name = "推送状态", width = 15)
+	private String pushState;
+	/**单据状态*/
+  	@Excel(name = "单据状态", width = 15)
+	private String theDocumentsState;
+	/**原因*/
+  	@Excel(name = "原因", width = 15)
+	private String cause;
+	/**是否云工厂推送*/
+  	@Excel(name = "是否云工厂推送", width = 15)
+	private String whetherCloudFactoryPush;
+	/**状态*/
+  	@Excel(name = "状态", width = 15)
+	private String state;
+	/**附件*/
+  	@Excel(name = "附件", width = 15)
+	private String accessory;
+
+  	/*以下暂时为子表数据*/
+	/**帐套*/
+	@Excel(name = "帐套", width = 15)
+	@ApiModelProperty(value = "帐套")
+	private String acSetNo;
+	/**HOD*/
+	@Excel(name = "HOD", width = 15)
+	@ApiModelProperty(value = "HOD")
+	private String hod;
+	/**STYLE NO*/
+	@Excel(name = "STYLE NO", width = 15)
+	@ApiModelProperty(value = "STYLE NO")
+	private String styleNo;
+	/**PO NO.*/
+	@Excel(name = "PO NO.", width = 15)
+	@ApiModelProperty(value = "PO NO.")
+	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 String itemCode;
+	/**分销点/DC/LABEL*/
+	@Excel(name = "分销点/DC/LABEL", width = 15)
+	@ApiModelProperty(value = "分销点/DC/LABEL")
+	private String distributionPoint;
+	/**PREPACK SKU*/
+	@Excel(name = "PREPACK SKU", width = 15)
+	@ApiModelProperty(value = "PREPACK SKU")
+	private String prepackSku;
+	/**total*/
+	@Excel(name = "total", width = 15)
+	@ApiModelProperty(value = "total")
+	private String total;
+	
+}