浏览代码

出运明细导出调整

zengtx 2 年之前
父节点
当前提交
d379d2edba

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyLetterDepositItem.java

@@ -250,4 +250,6 @@ public class SyLetterDepositItem {
 	private String cbm;
 	private String cbm;
 	@TableField(exist = false)
 	@TableField(exist = false)
     private String isTc;
     private String isTc;
+	@TableField(exist = false)
+	private String packs;
 }
 }

+ 4 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositMapper.xml

@@ -109,16 +109,18 @@ hod,salesman,sales_Department as salesDepartment,spur_or_sub_order as spurOrSubO
          select itemNumber,sum(boxNumber) as boxNumber,smallPo,sum(total) as total,sum(totalGrossWeight) as totalGrossWeight,
          select itemNumber,sum(boxNumber) as boxNumber,smallPo,sum(total) as total,sum(totalGrossWeight) as totalGrossWeight,
          sum(totalNetWeight) as totalNetWeight,sum(totalVolume) as totalVolume,containerCode,containerNumber,
          sum(totalNetWeight) as totalNetWeight,sum(totalVolume) as totalVolume,containerCode,containerNumber,
          unitPrice,sum(totalPrice) as totalPrice,hod,salesman,salesDepartment,spurOrSubOrder,supplier,englishName,pcs,ctns,kgs,cbm,
          unitPrice,sum(totalPrice) as totalPrice,hod,salesman,salesDepartment,spurOrSubOrder,supplier,englishName,pcs,ctns,kgs,cbm,
-         t.clientAbbreviation,t.hod,case when t.isTc = '0' then '否' else '是' end as isTc
+         t.clientAbbreviation,t.hod,case when t.isTc = '0' then '否' else '是' end as isTc,sum(packs) as packs
           from(
           from(
  select a.item_number as itemNumber,a.small_po as smallPo,round(sum(a.total),2) as total,round(a.box_number,0) as boxNumber,
  select a.item_number as itemNumber,a.small_po as smallPo,round(sum(a.total),2) as total,round(a.box_number,0) as boxNumber,
 round(a.total_gross_weight,2) as totalGrossWeight,round(a.total_net_weight,2) as totalNetWeight,round(a.total_volume,3) as totalVolume,
 round(a.total_gross_weight,2) as totalGrossWeight,round(a.total_net_weight,2) as totalNetWeight,round(a.total_volume,3) as totalVolume,
 a.container_code as containerCode,a.container_number as containerNumber,a.unit_price as unitPrice,sum(a.total_price) as totalPrice,letter_groupid as letterGroupid,
 a.container_code as containerCode,a.container_number as containerNumber,a.unit_price as unitPrice,sum(a.total_price) as totalPrice,letter_groupid as letterGroupid,
 DATE_FORMAT(a.hod,'%y-%m-%d') as hod,a.salesman,a.sales_Department as salesDepartment,a.spur_or_sub_order as spurOrSubOrder,a.supplier,a.client_abbreviation as clientAbbreviation,
 DATE_FORMAT(a.hod,'%y-%m-%d') as hod,a.salesman,a.sales_Department as salesDepartment,a.spur_or_sub_order as spurOrSubOrder,a.supplier,a.client_abbreviation as clientAbbreviation,
-c.english_product_name as englishName,'PCS' as pcs, 'CTNS' as ctns,'KGS' as kgs,'CBM' as cbm,b.is_tc as isTc
+c.english_product_name as englishName,'PCS' as pcs, 'CTNS' as ctns,'KGS' as kgs,'CBM' as cbm,b.is_tc as isTc,d.packs as packs
          from sy_letter_deposit_item a
          from sy_letter_deposit_item a
          left join sy_pre_assembled_packing_list b
          left join sy_pre_assembled_packing_list b
          on a.sy_pre_assembled_packing_list_id = b.id
          on a.sy_pre_assembled_packing_list_id = b.id
+         left join(select sy_pre_assembled_packing_list_id as sy_pre_assembled_packing_list_id,packs as packs from sy_pre_assembled_packing_list_item where del_flag = '0' group by sy_pre_assembled_packing_list_id) d
+         on d.sy_pre_assembled_packing_list_id = b.id
          left join sy_declaration_elements c
          left join sy_declaration_elements c
          on b.elements_id = c.id
          on b.elements_id = c.id
          where a.del_flag = 0 and a.sy_letter_deposit_id = #{id}  group by groupid  order by a.item_number,a.small_po desc
          where a.del_flag = 0 and a.sy_letter_deposit_id = #{id}  group by groupid  order by a.item_number,a.small_po desc

+ 101 - 68
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java

@@ -474,7 +474,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
   @AutoLog(value = "发运明细主表-导出")
   @AutoLog(value = "发运明细主表-导出")
   @ApiOperation(value="发运明细主表-导出", notes="发运明细主表-导出")
   @ApiOperation(value="发运明细主表-导出", notes="发运明细主表-导出")
   @GetMapping(value = "/exportXls")
   @GetMapping(value = "/exportXls")
-  public Result<String> exportXls(SyShippingDetailsVo syShippingDetails,
+  public Result<String> exportXls(SyShippingDetailsVo syShippingDetails,String selectAll,String groupidList,
 								@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								HttpServletResponse req) {
 								HttpServletResponse req) {
@@ -485,64 +485,76 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 
 	  QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 	  QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 	  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 	  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())){
-		  queryWrapper.like("t.documentNo",syShippingDetails.getDocumentNo());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())){
-		  queryWrapper.like("t.orderNumber",syShippingDetails.getOrderNumber());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getStartTime())){
-		  queryWrapper.ge("t.documentDate",syShippingDetails.getStartTime());
-		  queryWrapper.le("t.documentDate",syShippingDetails.getEndTime());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getPreDeliveryDateB())){
-		  queryWrapper.ge("t.preDeliveryDate",syShippingDetails.getPreDeliveryDateB());
-		  queryWrapper.le("t.preDeliveryDate",syShippingDetails.getPreDeliveryDateE());
-	  }
 
 
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())){
-		  queryWrapper.like("t.salesman",syShippingDetails.getSalesman());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())){
-		  queryWrapper.like("t.itemNumber",syShippingDetails.getItemNumber());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getRefer())){
-		  queryWrapper.eq("t.isReference",syShippingDetails.getRefer());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getSupplier())){
-		  queryWrapper.like("t.supplier",syShippingDetails.getSupplier());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getIsElement())){
-		  if(syShippingDetails.getIsElement().equals("0")){//没有维护
-			  queryWrapper.isNull("t.elementsId");
-		  }else{
-			  queryWrapper.isNotNull("t.elementsId");
+	  if(selectAll.equals("1")) {
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())) {
+			  queryWrapper.like("t.documentNo", syShippingDetails.getDocumentNo());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())) {
+			  queryWrapper.like("t.orderNumber", syShippingDetails.getOrderNumber());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getStartTime())) {
+			  queryWrapper.ge("t.documentDate", syShippingDetails.getStartTime());
+			  queryWrapper.le("t.documentDate", syShippingDetails.getEndTime());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getPreDeliveryDateB())) {
+			  queryWrapper.ge("t.preDeliveryDate", syShippingDetails.getPreDeliveryDateB());
+			  queryWrapper.le("t.preDeliveryDate", syShippingDetails.getPreDeliveryDateE());
 		  }
 		  }
 
 
-	  }
-	  //分销点
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getDistributionPoint())){
-		  queryWrapper.like("t.distributionPoint",syShippingDetails.getDistributionPoint());
-	  }
-	  //客户
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getCustomerAbbreviation())){
-		  queryWrapper.like("t.customerAbbreviation",syShippingDetails.getCustomerAbbreviation());
-	  }
-	  	if(oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())){
-			queryWrapper.eq("t.submitStatus",syShippingDetails.getSubmitStatus());
-		}
-	  //账套号
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getAccount())){
-		  queryWrapper.like("t.account",syShippingDetails.getAccount());
-	  }
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getId())){
-		  queryWrapper.like("t.id",syShippingDetails.getId());
-	  }
-	  //小po
-	  if(oConvertUtils.isNotEmpty(syShippingDetails.getSmallPo())){
-		  String[] smllSplit = syShippingDetails.getSmallPo().split(",");
-		  List<String> asList = Arrays.asList(smllSplit);
-		  queryWrapper.in("t.smallPo",asList);
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())) {
+			  queryWrapper.like("t.salesman", syShippingDetails.getSalesman());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())) {
+			  queryWrapper.like("t.itemNumber", syShippingDetails.getItemNumber());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getRefer())) {
+			  queryWrapper.eq("t.isReference", syShippingDetails.getRefer());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSupplier())) {
+			  queryWrapper.like("t.supplier", syShippingDetails.getSupplier());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getIsElement())) {
+			  if (syShippingDetails.getIsElement().equals("0")) {//没有维护
+				  queryWrapper.isNull("t.elementsId");
+			  } else {
+				  queryWrapper.isNotNull("t.elementsId");
+			  }
+
+		  }
+		  //分销点
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getDistributionPoint())) {
+			  queryWrapper.like("t.distributionPoint", syShippingDetails.getDistributionPoint());
+		  }
+		  //客户
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getCustomerAbbreviation())) {
+			  queryWrapper.like("t.customerAbbreviation", syShippingDetails.getCustomerAbbreviation());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())) {
+			  queryWrapper.eq("t.submitStatus", syShippingDetails.getSubmitStatus());
+		  }
+		  //账套号
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getAccount())) {
+			  queryWrapper.like("t.account", syShippingDetails.getAccount());
+		  }
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getId())) {
+			  queryWrapper.like("t.id", syShippingDetails.getId());
+		  }
+		  //小po
+		  if (oConvertUtils.isNotEmpty(syShippingDetails.getSmallPo())) {
+			  String[] smllSplit = syShippingDetails.getSmallPo().split(",");
+			  List<String> asList = Arrays.asList(smllSplit);
+			  queryWrapper.in("t.smallPo", asList);
+		  }
+	  }else{
+
+		  List<String> strList = new ArrayList<>();
+		  String groupidSplit[] =groupidList.split(",");
+		  for(String str : groupidSplit){
+			  strList.add(str);
+		  }
+		  queryWrapper.in("t.groupId",strList);
+
 	  }
 	  }
 
 
 	  try {
 	  try {
@@ -631,6 +643,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 
 
 
 		  }else{//成衣
 		  }else{//成衣
+			 // queryWrapper.orderByAsc("t.itemNumber,t.distributionPoint");
 			  IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 			  IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 
 
 			  if(pageList.getRecords().size()==0){
 			  if(pageList.getRecords().size()==0){
@@ -713,16 +726,16 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 				  builder1.deleteCharAt(builder1.length()-1);
 				  builder1.deleteCharAt(builder1.length()-1);
 				  //创建列名放在第一行
 				  //创建列名放在第一行
 				  String[] params = null;
 				  String[] params = null;
-				  if(oConvertUtils.isEmpty(syShippingDetails.getAccount())){
-					  result.setSuccess(false);
-					  result.setResult("导出失败!请选择账套号");
-					  result.setMessage("导出失败!请选择账套号");
-					  return result;
-				  }
-				  if(syShippingDetails.getAccount().equals("101")){
-					  params = ("成衣工厂*STYLE*PO NO.*分销点*CTN NO. FROM*CTN NO. TO*item NO./SKU NO./UPC NO./PACKS CODE*PREACKSKU*" + builder + "COLOUR*计划装箱数量*N.W/CTN*G.W/CTN*L(CM)*W(CM)*H(CM)*BUYER*配码规格*TTL CTNS*TTL PCS*TTL N.W*TTL G.W*TTL CBM*发运明细子表ID*发运明细分组ID*发运明细主表ID*申报要素ID").split("\\*");
+//				  if(oConvertUtils.isEmpty(syShippingDetails.getAccount())){
+//					  result.setSuccess(false);
+//					  result.setResult("导出失败!请选择账套号");
+//					  result.setMessage("导出失败!请选择账套号");
+//					  return result;
+//				  }
+				  if(syPreList.get(index).getAccount().equals("101")){
+					  params = ("成衣工厂*STYLE*PO NO.*分销点*CTN NO. FROM*CTN NO. TO*item NO./SKU NO./UPC NO./PACKS CODE*PREACKSKU*" + builder + "PCS/PACK*COLOUR*计划装箱数量*N.W/CTN*G.W/CTN*L(CM)*W(CM)*H(CM)*BUYER*配码规格*PACKS/CTN*PCS/CTN*PACK QTY*TTL CTNS*TTL PCS*TTL N.W*TTL G.W*TTL CBM*发运明细子表ID*发运明细分组ID*发运明细主表ID*申报要素ID").split("\\*");
 				  }else {
 				  }else {
-					  params = ("成衣工厂*款号*小po*分销点*起始箱号*结束箱号*item NO./SKU NO./UPC NO./PACKS CODE*PREACKSKU*" + builder + "颜色*计划装箱数量*净重/箱*毛重/箱*外箱*外箱*外箱*客户简称*配码规格*箱数*总件数*总净重*总毛重*总体积*发运明细子表ID*发运明细分组ID*发运明细主表ID*申报要素ID").split("\\*");
+					  params = ("成衣工厂*款号*小po*分销点*起始箱号*结束箱号*item NO./SKU NO./UPC NO./PACKS CODE*PREACKSKU*" + builder + "件数/包*颜色*计划装箱数量*净重/箱*毛重/箱*长*宽*高*客户简称*配码规格*包数/箱*件数/箱*包数*箱数*总件数*总净重*总毛重*总体积*发运明细子表ID*发运明细分组ID*发运明细主表ID*申报要素ID").split("\\*");
 				  }
 				  }
 				  String[] params1 =syPreList.get(index).toString(builder.toString(),builder1.toString()).split("\\*");
 				  String[] params1 =syPreList.get(index).toString(builder.toString(),builder1.toString()).split("\\*");
 				  String[] params2= {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ"};
 				  String[] params2= {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ"};
@@ -735,6 +748,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 				  String wide = "";
 				  String wide = "";
 				  String heigt = "";
 				  String heigt = "";
 				  String sunBox = "";
 				  String sunBox = "";
+				  String pcspack = "";//件数/每包
 
 
 				  Row row1 = sheet.createRow(0);
 				  Row row1 = sheet.createRow(0);
 				  Row row2 = sheet.createRow(1);
 				  Row row2 = sheet.createRow(1);
@@ -750,18 +764,21 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 					  if(params[x].equals("毛重/箱") || params[x].equals("G.W/CTN")){
 					  if(params[x].equals("毛重/箱") || params[x].equals("G.W/CTN")){
 						  gross = params2[x];
 						  gross = params2[x];
 					  }
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("L(CM)")){
+					  if(params[x].equals("长") || params[x].equals("L(CM)")){
 						  length = params2[x];
 						  length = params2[x];
 					  }
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("W(CM)")){
+					  if(params[x].equals("宽") || params[x].equals("W(CM)")){
 						  wide = params2[x];
 						  wide = params2[x];
 					  }
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("H(CM)")){
+					  if(params[x].equals("高") || params[x].equals("H(CM)")){
 						  heigt = params2[x];
 						  heigt = params2[x];
 					  }
 					  }
 					  if(params[x].equals("箱数") || params[x].equals("TTL CTNS")){
 					  if(params[x].equals("箱数") || params[x].equals("TTL CTNS")){
 						  sunBox = params2[x];
 						  sunBox = params2[x];
 					  }
 					  }
+					  if(params[x].equals("件数/包") || params[x].equals("PCS/PACK")){
+						  pcspack = params2[x];
+					  }
 
 
 					  Cell cell = row1.createCell(x);
 					  Cell cell = row1.createCell(x);
 					  cell.setCellValue(params[x]);
 					  cell.setCellValue(params[x]);
@@ -806,6 +823,22 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 						  Cell cell1 = row2.createCell(x);
 						  Cell cell1 = row2.createCell(x);
 						  cell1.setCellFormula("ROUND(SUM("+length+"2*"+wide+"2*"+heigt+"2*"+sunBox+"2/1000000),3)");
 						  cell1.setCellFormula("ROUND(SUM("+length+"2*"+wide+"2*"+heigt+"2*"+sunBox+"2/1000000),3)");
 					  }
 					  }
+
+					  //件数/箱 =所有尺码值
+					  if(x == params.length-11){
+						  Cell cell1 = row2.createCell(x);
+						  cell1.setCellFormula("SUM("+params2[8]+"2:"+params2[size]+"2)");
+					  }
+					  //包数/箱 =件数/箱除以件数/包
+					  if(x == params.length-12){
+						  Cell cell1 = row2.createCell(x);
+						  cell1.setCellFormula("SUM("+params2[8]+"2:"+params2[size]+"2)/"+pcspack+"2");
+					  }
+					  //包数 =包数/箱乘以箱数
+					  if(x == params.length-10){
+						  Cell cell1 = row2.createCell(x);
+						  cell1.setCellFormula("SUM("+params2[8]+"2:"+params2[size]+"2)/"+pcspack+"2*SUM(F2-E2+1)");
+					  }
 				  }
 				  }
 				  index++;
 				  index++;
 			  }
 			  }

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyPreAssembledPackingListVo.java

@@ -199,9 +199,9 @@ public class SyPreAssembledPackingListVo {
 //        String fw[] = builder.split("\\*");
 //        String fw[] = builder.split("\\*");
 //        String fwSplit = fw[0]+"~"+fw[fw.length-1];
 //        String fwSplit = fw[0]+"~"+fw[fw.length-1];
         return garmentFactory+"*"+itemNumber+"*"+smallPo+"*"+distributionPoint+"*"+""+
         return garmentFactory+"*"+itemNumber+"*"+smallPo+"*"+distributionPoint+"*"+""+
-                "*"+""+"*"+""+"*"+""+"*"+builder+color+"*"+plannedShippingQuantity+
+                "*"+""+"*"+""+"*"+""+"*"+builder+""+"*"+color+"*"+plannedShippingQuantity+
                 "*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+
                 "*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+
-                customerAbb+"*"+codingRules+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+builder1+"*"+groupId+"*"+id+"*"+elenmentId;
+                customerAbb+"*"+codingRules+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+builder1+"*"+groupId+"*"+id+"*"+elenmentId;
     }
     }