Browse Source

发运明细导出,托书调整

zengtx 2 years ago
parent
commit
db687c837f

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

@@ -180,11 +180,13 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
 		if(flourOrGarment.equals("0")){//面辅料
+			queryWrapper.eq("1",1);
 			 IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 				result.setSuccess(true);
 				result.setResult(pageList);
 				result.setMessage("查询成功");
 		}else{//成衣
+			queryWrapper.eq("1",1);
 			IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 			result.setSuccess(true);
 			result.setResult(pageList);
@@ -442,12 +444,8 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 	  Result<String> result = new Result<String>();
 
-	  IPage<SyShippingDetailsVo> pageList = null;
-
 	  List<SyPreAssembledPackingListVo> syPreList = new ArrayList<>();
 
-	  DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-
 	  QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 	  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 	  if(oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())){
@@ -492,82 +490,107 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	  try {
 		  Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
 		  if(flourOrGarment.equals("0")){//面辅料
-			  pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
-		  }else{//成衣
-			  pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
-		  }
-		  for(SyShippingDetailsVo li:pageList.getRecords()){
-		  	String pre = sf.format(li.getPreDeliveryDate());
-		  	//用到货日期代替一下预发货日期
-		  	li.setArrivalDate(pre);
-			if(oConvertUtils.isNotEmpty(li.getIsTc())){
-				if(li.getIsTc().equals("0")){
-					li.setIsTc("否");
-				}else{
-					li.setIsTc("是");
-				}
-			}
-			  //转换数据
-			  SyPreAssembledPackingListVo entity = new SyPreAssembledPackingListVo(li);
-			  syPreList.add(entity);
-		  }
+			  List<SyShippingDetailsVo> itemList = syShippingDetailsMapper.excelItem(queryWrapper);
 
-		  String load="D:\\单证模板\\发运明细数据.xlsx";
-		  int count = syPreList.size();//分几条sheet
-		  File file=new File(load);
-		  cn.afterturn.easypoi.excel.entity.TemplateExportParams templateExcelConstants=new TemplateExportParams(file.getAbsolutePath(),true,"发运明细");
-		  List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
-		  Map<Integer, List<Map<String, Object>>> maps = new HashMap<Integer, List<Map<String, Object>>>();
-		  for (int i = 0; i < count ; i++) {
-			  List<SyPreAssembledPackingListVo> exportList=new ArrayList<>();
-			  exportList.add(syPreList.get(i));
-			  SyPreAssembledPackingListVo exportList2=syPreList.get(i);
-			  Map<String, Object> map = new HashMap<String, Object>();
-			  map.put("entity", exportList2);
-			  listMap.add(map);
-		  }
-		  maps.put(0,listMap);
-		  templateExcelConstants.setColForEach(true);
-		  Workbook workbook = cn.afterturn.easypoi.excel.ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
-
-		  Iterator sheets=workbook.sheetIterator();
-
-		  int index = 0;
-		  while (sheets.hasNext()){
-			  Sheet sheet=(Sheet) sheets.next();
-			  workbook.setSheetName(index,"数据源"+(index+1));
-			  StringBuilder builder = new StringBuilder();
-			  //获取尺码组
-			  List<SizeTable> sizeGroup = syPreAssembledPackingListItemMapper.querySize(syPreList.get(index).getId(),syPreList.get(index).getGroupId());
-			  for(SizeTable si:sizeGroup){
-				  builder.append(si.getSize());
-				  builder.append("*");
+			  org.jeecgframework.poi.excel.entity.TemplateExportParams params = new org.jeecgframework.poi.excel.entity.TemplateExportParams("D:\\单证模板\\出运面辅料数据.xlsx");
+
+              Map<String,Object> map = new HashMap<>();
+              List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
+
+			  //集合转map
+			  for(SyShippingDetailsVo li:itemList){
+				  Field[] fieldsList = li.getClass().getDeclaredFields();
+				  Map<String, Object> mapList = new HashMap<String, Object>();
+				  for (Field field : fieldsList) {
+					  field.setAccessible(true);
+					  mapList.put(field.getName(), field.get(li));
+				  }
+				  listMap.add(mapList);
 			  }
-			  //创建列名放在第一行
-			  String[] 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()).split("\\*");
-			  Row row1 = sheet.createRow(0);
-			  Row row2 = sheet.createRow(1);
-
-			  for (int x=0;x<params.length;x++){
-				  Cell cell = row1.createCell(x);
-				  cell.setCellValue(params[x]);
-
-				  if(x > 9 && x < params.length-27){
-					  Cell cell1 = row2.createCell(x);
-					  cell1.setCellValue(" ");
-				  }else{
-					  Cell cell1 = row2.createCell(x);
-					  cell1.setCellValue(params1[x]);
+			  map.put("item", listMap);
+
+			  Workbook workbook = ExcelExportUtil.exportExcel(params,map);
+
+			  ServletOutputStream outputStream = req.getOutputStream();
 
+			  workbook.write(outputStream);
+
+
+		  }else{//成衣
+			  IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
+			  for(SyShippingDetailsVo li:pageList.getRecords()){
+				  String pre = sf.format(li.getPreDeliveryDate());
+				  //用到货日期代替一下预发货日期
+				  li.setArrivalDate(pre);
+				  if(oConvertUtils.isNotEmpty(li.getIsTc())){
+					  if(li.getIsTc().equals("0")){
+						  li.setIsTc("否");
+					  }else{
+						  li.setIsTc("是");
+					  }
 				  }
+				  //转换数据
+				  SyPreAssembledPackingListVo entity = new SyPreAssembledPackingListVo(li);
+				  syPreList.add(entity);
+			  }
 
+			  String load="D:\\单证模板\\出运成衣数据.xlsx";
+			  int count = syPreList.size();//分几条sheet
+			  File file=new File(load);
+			  cn.afterturn.easypoi.excel.entity.TemplateExportParams templateExcelConstants=new TemplateExportParams(file.getAbsolutePath(),true,"发运明细");
+			  List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
+			  Map<Integer, List<Map<String, Object>>> maps = new HashMap<Integer, List<Map<String, Object>>>();
+			  for (int i = 0; i < count ; i++) {
+				  List<SyPreAssembledPackingListVo> exportList=new ArrayList<>();
+				  exportList.add(syPreList.get(i));
+				  SyPreAssembledPackingListVo exportList2=syPreList.get(i);
+				  Map<String, Object> map = new HashMap<String, Object>();
+				  map.put("entity", exportList2);
+				  listMap.add(map);
+			  }
+			  maps.put(0,listMap);
+			  templateExcelConstants.setColForEach(true);
+			  Workbook workbook = cn.afterturn.easypoi.excel.ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
+
+			  Iterator sheets=workbook.sheetIterator();
+
+			  int index = 0;
+			  while (sheets.hasNext()){
+				  Sheet sheet=(Sheet) sheets.next();
+				  workbook.setSheetName(index,"数据源"+(index+1));
+				  StringBuilder builder = new StringBuilder();
+				  //获取尺码组
+				  List<SizeTable> sizeGroup = syPreAssembledPackingListItemMapper.querySize(syPreList.get(index).getId(),syPreList.get(index).getGroupId());
+				  for(SizeTable si:sizeGroup){
+					  builder.append(si.getSize());
+					  builder.append("*");
+				  }
+				  //创建列名放在第一行
+				  String[] 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()).split("\\*");
+				  Row row1 = sheet.createRow(0);
+				  Row row2 = sheet.createRow(1);
+
+				  for (int x=0;x<params.length;x++){
+					  Cell cell = row1.createCell(x);
+					  cell.setCellValue(params[x]);
+
+					  if(x > 9 && x < params.length-27){
+						  Cell cell1 = row2.createCell(x);
+						  cell1.setCellValue(" ");
+					  }else{
+						  Cell cell1 = row2.createCell(x);
+						  cell1.setCellValue(params1[x]);
+
+					  }
+
+				  }
+				  index++;
 			  }
-			  index++;
+			  ServletOutputStream outputStream = req.getOutputStream();
+			  workbook.write(outputStream);
 		  }
 
-		  ServletOutputStream outputStream = req.getOutputStream();
-		  workbook.write(outputStream);
 
 	  }catch (Exception ex){
 

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

@@ -201,7 +201,9 @@ public class SyPreAssembledPackingListVo {
 
         return account+"*"+garmentFactory+"*"+preDeliveryDate+"*"+itemNumber+"*"+smallPo+"*"+distributionPoint+
                 "*"+""+"*"+""+"*"+""+"*"+""+"*"+builder+color+"*"+codingRules+"*"+""+"*"+plannedShippingQuantity+
-                "*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+unitPrice+
+                "*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+""+"*"+unitPrice+
                 "*"+""+"*"+""+"*"+itemId+"*"+groupId+"*"+id+"*"+orderNumber+"*"+itemNuber+"*"+fwSplit+"*"+customer+"*"+customerAbb+"*"+elenmentId;
     }
+
+
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyShippingDetailsVo.java

@@ -295,4 +295,7 @@ public class SyShippingDetailsVo {
 
     @ApiModelProperty(value = "二维表格")
     private List<SizeTable> sizeTables;
+
+    //单位
+    private String masterMetering;
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/SyShippingDetailsMapper.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
 import org.jeecg.modules.documents.shippingDetails.entity.VO.*;
 
 /**
@@ -56,4 +57,6 @@ public interface SyShippingDetailsMapper extends BaseMapper<SyShippingDetails> {
     //查询其他发运明细(维护报关要素,其他所有一样的条件全部更新掉)
     public List<SyShippingDetailsVo> queryAllsyShippingDeial(@Param("itemNumber") String itemNumber,@Param("inventoryName") String inventoryName,@Param("ompoAccount") String ompoAccount);
 
+    //面辅料导出使用
+    public List<SyShippingDetailsVo> excelItem(@Param("ew") QueryWrapper<SyShippingDetailsVo> queryWrapper);
 }

+ 18 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/mapper/xml/SyShippingDetailsMapper.xml

@@ -231,4 +231,22 @@ ${ew.customSqlSegment}
 
     </select>
 
+    <select id="excelItem" resultType="org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo">
+        select b.salesman as salesman,b.order_number as orderNumber,b.item_number as itemNumber,b.colour,
+        b.inventory_code as inventoryCode,b.inventory_name as inventoryName,c.declaration_name as declarationName,
+        b.material_composition as materialComposition,b.guangpei_gate_width as guangpeiGateWidth,b.weight,
+        b.excess_quantity as excessQuantity,d.master_metering as masterMetering,b.garment_factory as garmentFactory,
+        b.id as itemIds,a.id as id,b.elements_id as b.elementsId,b.r_supplier_code as rSupplierCode,b.r_supplier as rSupplier,
+        b.supplier,b.supplier_code as supplierCode,b.specification_and_model as specificationAndModel
+         from sy_shipping_details a
+left join sy_shipping_details_item b
+on a.id = b.shipping_details_id
+left join sy_declaration_elements c
+on b.elements_id = c.id
+left join sy_order_data_item d
+on b.sy_order_data_item_id = d.id
+where a.del_flag = 0 and b.del_flag = 0
+${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/mapper/xml/SyShippingOrderMapper.xml

@@ -5,7 +5,7 @@
     <select id="syShippingOrderPageList" resultType="org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder">
   select a.id,a.shipping_order_number as shippingOrderNumber,b.order_number as orderNumber,a.export_invoice_no as exportInvoiceNo,
   b.distribution_point as distributionPoint,a.unit_in_operation as unitInOperation,a.box_number as boxNumber,b.garment_factory as garmentFactory,
-  sum(b.gross_weight) as totalGrossWeight,sum(b.volume) as totalVolume,b.box_number as planQuantity,b.client_abbreviation as clientAbbreviation,
+  sum(b.gross_weight) as totalGrossWeight,case when b.ready_fabric != '成衣' then sum(b.volume) else a.total_volume end as totalVolume,b.box_number as planQuantity,b.client_abbreviation as clientAbbreviation,
   a.money,a.the_actual_shipping_date as theActualShippingDate,a.exchange_earnings_text as exchangeEarningsText,
   a.consignee,a.bill_of_lading_or_carriage_receipt as billOfLadingOrCarriageReceipt,a.the_final_shipping_date as theFinalShippingDate,
   a.addressee,a.trade_country as tradeCountry,a.arrive_in_country as arriveInCountry,a.export_port as exportPort,

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/service/impl/SyShippingOrderServiceImpl.java

@@ -184,8 +184,8 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
                         syShippingOrderItem.setGrossWeight(itemli.getGrossWeight());
                         totalGrossWeight.add(itemli.getGrossWeight());
                         syShippingOrderItem.setNetWeight(itemli.getNetWeight());
-                        syShippingOrderItem.setVolume(BigDecimal.ZERO);
-                        totalVolume.add(BigDecimal.ZERO);
+                        syShippingOrderItem.setVolume(syShippingOrder.getTatolVolume());//体积
+                        totalVolume = syShippingOrder.getTatolVolume();
                         syShippingOrderItem.setDistributionPoint(itemli.getDistributionPoint());
                         //单价 = 总金额/净重
                         BigDecimal price = itemli.getTotalPrice().divide(itemli.getNetWeight(),4,BigDecimal.ROUND_DOWN);