Kaynağa Gözat

出运明细导出调整

zengtx 2 yıl önce
ebeveyn
işleme
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;
 	@TableField(exist = false)
     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,
          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,
-         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(
  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,
 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,
-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
          left join sy_pre_assembled_packing_list b
          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
          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

+ 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 = "发运明细主表-导出")
   @ApiOperation(value="发运明细主表-导出", notes="发运明细主表-导出")
   @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="pageSize", defaultValue="10") Integer pageSize,
 								HttpServletResponse req) {
@@ -485,64 +485,76 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 	  QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 	  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 {
@@ -631,6 +643,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 
 		  }else{//成衣
+			 // queryWrapper.orderByAsc("t.itemNumber,t.distributionPoint");
 			  IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 
 			  if(pageList.getRecords().size()==0){
@@ -713,16 +726,16 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 				  builder1.deleteCharAt(builder1.length()-1);
 				  //创建列名放在第一行
 				  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 {
-					  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[] 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 heigt = "";
 				  String sunBox = "";
+				  String pcspack = "";//件数/每包
 
 				  Row row1 = sheet.createRow(0);
 				  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")){
 						  gross = params2[x];
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("L(CM)")){
+					  if(params[x].equals("长") || params[x].equals("L(CM)")){
 						  length = params2[x];
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("W(CM)")){
+					  if(params[x].equals("宽") || params[x].equals("W(CM)")){
 						  wide = params2[x];
 					  }
-					  if(params[x].equals("外箱") || params[x].equals("H(CM)")){
+					  if(params[x].equals("高") || params[x].equals("H(CM)")){
 						  heigt = params2[x];
 					  }
 					  if(params[x].equals("箱数") || params[x].equals("TTL CTNS")){
 						  sunBox = params2[x];
 					  }
+					  if(params[x].equals("件数/包") || params[x].equals("PCS/PACK")){
+						  pcspack = params2[x];
+					  }
 
 					  Cell cell = row1.createCell(x);
 					  cell.setCellValue(params[x]);
@@ -806,6 +823,22 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 						  Cell cell1 = row2.createCell(x);
 						  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++;
 			  }

+ 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 fwSplit = fw[0]+"~"+fw[fw.length-1];
         return garmentFactory+"*"+itemNumber+"*"+smallPo+"*"+distributionPoint+"*"+""+
-                "*"+""+"*"+""+"*"+""+"*"+builder+color+"*"+plannedShippingQuantity+
+                "*"+""+"*"+""+"*"+""+"*"+builder+""+"*"+color+"*"+plannedShippingQuantity+
                 "*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+
-                customerAbb+"*"+codingRules+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+builder1+"*"+groupId+"*"+id+"*"+elenmentId;
+                customerAbb+"*"+codingRules+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+builder1+"*"+groupId+"*"+id+"*"+elenmentId;
     }