|  | @@ -11,6 +11,7 @@ import com.kmall.admin.utils.ShiroUtils;
 | 
	
		
			
				|  |  |  import com.kmall.common.constant.Dict;
 | 
	
		
			
				|  |  |  import com.kmall.common.constant.JxlsXmlTemplateName;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.*;
 | 
	
		
			
				|  |  | +import com.kmall.common.utils.excel.Entry;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.excel.ExcelExport;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.excel.ExcelUtil;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.print.ticket.item.Ticket;
 | 
	
	
		
			
				|  | @@ -1346,8 +1347,10 @@ public class OrderController {
 | 
	
		
			
				|  |  |                  "Brand","EDLP","Current Price","Cost Price",/*"Prime Cost","Goods Number",*/"Deduction Rate","Unit Sold","Sales","Tax amount","Total Sales incl. Tax","Tax Rate",
 | 
	
		
			
				|  |  |                  "GP ¥","GP %","Product Category","Supplier Name","Transaction Type","Sale Return Type","Remark"};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        LinkedHashMap<String, Object> headerMap = initHeaderMap();
 | 
	
		
			
				|  |  | -        List<Map<String, Object>> list = new LinkedList<>();
 | 
	
		
			
				|  |  | +//        LinkedHashMap<String, Object> headerMap = initHeaderMap();
 | 
	
		
			
				|  |  | +        List<Entry> headerMap = initHeaderMap();
 | 
	
		
			
				|  |  | +//        List<Map<String, Object>> list = new LinkedList<>();
 | 
	
		
			
				|  |  | +        List<List<Entry>> list = new ArrayList<>();
 | 
	
		
			
				|  |  |          list.add(headerMap);
 | 
	
		
			
				|  |  |          if (systemFormatList != null && systemFormatList.size() > 0) {
 | 
	
		
			
				|  |  |              for (SystemFormatDto systemFormat : systemFormatList) {
 | 
	
	
		
			
				|  | @@ -1377,7 +1380,8 @@ public class OrderController {
 | 
	
		
			
				|  |  |  //                }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                LinkedHashMap<String, Object> map = new LinkedHashMap<>(32);
 | 
	
		
			
				|  |  | +//                LinkedHashMap<String, Object> map = new LinkedHashMap<>(32);
 | 
	
		
			
				|  |  | +                List<Entry> entries = new ArrayList<>();
 | 
	
		
			
				|  |  |                  if (Objects.nonNull(systemFormat.getTaxRate()) && Objects.nonNull(systemFormat.getTotalSalesInclTax())){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1445,7 +1449,7 @@ public class OrderController {
 | 
	
		
			
				|  |  |                      primeCost = gp.setScale(2,BigDecimal.ROUND_HALF_UP).toString();
 | 
	
		
			
				|  |  |                      systemFormat.setPrimeCost(primeCost);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                map.put("ReceiptNo",systemFormat.getReceiptNo());
 | 
	
		
			
				|  |  | +                /*map.put("ReceiptNo",systemFormat.getReceiptNo());
 | 
	
		
			
				|  |  |                  map.put("StoreName",systemFormat.getStoreName());
 | 
	
		
			
				|  |  |                  map.put("CashRegisterNo",systemFormat.getCashRegisterNo());
 | 
	
		
			
				|  |  |                  map.put("TimeStampDetails",systemFormat.getTimeStampDetails());
 | 
	
	
		
			
				|  | @@ -1487,62 +1491,107 @@ public class OrderController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  map.put("Remark",systemFormat.getRemark());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                list.add(map);
 | 
	
		
			
				|  |  | +                list.add(map);*/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                entries.add(new Entry("ReceiptNo",systemFormat.getReceiptNo()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("StoreName",systemFormat.getStoreName()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("CashRegisterNo",systemFormat.getCashRegisterNo()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("TimeStampDetails",systemFormat.getTimeStampDetails()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("StaffID",systemFormat.getStaffID()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("StaffName",systemFormat.getStaffName()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("PayFlag",systemFormat.getPayFlag()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("OrderStatus",orderStatus));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("OrderSnWx",systemFormat.getOrderSnWx()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("OrderSnAli",systemFormat.getOrderSnAli()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("HSCode",systemFormat.getHsCode()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("HSCodeName",systemFormat.getHsCodeName()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("EmatouCode",systemFormat.getEmatouCode()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("PLU",systemFormat.getPlu()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("MychemID",systemFormat.getMychemID()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("ProductNameEN",systemFormat.getProductNameEN()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("ProductNameCN",systemFormat.getProductNameCN()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("Barcode",systemFormat.getBarcode()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("PackSize",systemFormat.getPackSize()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("ProductSpecification",systemFormat.getProductSpecification()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("Brand",systemFormat.getBrand()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("EDLP",systemFormat.getEdlp()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("CurrentPrice",systemFormat.getCurrentPrice()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("CostPrice",systemFormat.getCostPrice()));
 | 
	
		
			
				|  |  | +//                entries.add(new Entry("PrimeCost",systemFormat.getPrimeCost()));
 | 
	
		
			
				|  |  | +//                entries.add(new Entry("GoodsNumber",systemFormat.getGoodsNumber()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("DeductionRate",systemFormat.getDeductionRate()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("UnitSold",systemFormat.getUnitSold()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("Sales",systemFormat.getSales()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("TaxAmount",systemFormat.getTaxAmount()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("TotalSalesInclTax",systemFormat.getTotalSalesInclTax()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("TaxRate",systemFormat.getTaxRate()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("GP1",systemFormat.getGp1()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("GP2",systemFormat.getGp2()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("ProductCategory",systemFormat.getProductCategory()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("SupplierName",systemFormat.getSupplierName()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("TransactionType",systemFormat.getTransactionType()));
 | 
	
		
			
				|  |  | +                entries.add(new Entry("SaleReturnType",systemFormat.getSaleReturnType()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                entries.add(new Entry("Remark",systemFormat.getRemark()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                list.add(entries);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // =================================================System Format导出结束=====================================
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        ee.addSheetByMap("Daily sales report", list, header);
 | 
	
		
			
				|  |  | +        ee.addSheetByList("Daily sales report", list, header);
 | 
	
		
			
				|  |  |          ee.export(response);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return R.ok();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private LinkedHashMap<String, Object> initHeaderMap() {
 | 
	
		
			
				|  |  | -        LinkedHashMap<String, Object> headerMap = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | -        headerMap.put("ReceiptNo","销售单号");
 | 
	
		
			
				|  |  | -        headerMap.put("StoreName","门店名称");
 | 
	
		
			
				|  |  | -        headerMap.put("CashRegisterNo","收银台");
 | 
	
		
			
				|  |  | -        headerMap.put("TimeStampDetails","销售时间");
 | 
	
		
			
				|  |  | -        headerMap.put("StaffID","收银员");
 | 
	
		
			
				|  |  | -        headerMap.put("StaffName","收银员姓名");
 | 
	
		
			
				|  |  | -        headerMap.put("PayFlag","支付方式");
 | 
	
		
			
				|  |  | -        headerMap.put("OrderStatus","支付状态");
 | 
	
		
			
				|  |  | -        headerMap.put("OrderSnWx","微信流水号");
 | 
	
		
			
				|  |  | -        headerMap.put("OrderSnAli","支付宝流水号");
 | 
	
		
			
				|  |  | -        headerMap.put("HSCode","海关商品编码");
 | 
	
		
			
				|  |  | -        headerMap.put("HSCodeName","品类名称");
 | 
	
		
			
				|  |  | -        headerMap.put("EmatouCode","料件号");
 | 
	
		
			
				|  |  | -        headerMap.put("PLU","PLU");
 | 
	
		
			
				|  |  | -        headerMap.put("MychemID","MychemID");
 | 
	
		
			
				|  |  | -        headerMap.put("ProductNameEN","商品名称(英文)");
 | 
	
		
			
				|  |  | -        headerMap.put("ProductNameCN","商品名称(中文)");
 | 
	
		
			
				|  |  | -        headerMap.put("Barcode","商品主条码");
 | 
	
		
			
				|  |  | -        headerMap.put("PackSize","规格");
 | 
	
		
			
				|  |  | -        headerMap.put("ProductSpecification","单位");
 | 
	
		
			
				|  |  | -        headerMap.put("Brand","品牌");
 | 
	
		
			
				|  |  | -        headerMap.put("EDLP","日常价");
 | 
	
		
			
				|  |  | -        headerMap.put("CurrentPrice","实际销售价");
 | 
	
		
			
				|  |  | -        headerMap.put("CostPrice","进货价");
 | 
	
		
			
				|  |  | -//        headerMap.put("PrimeCost","成本价");
 | 
	
		
			
				|  |  | -//        headerMap.put("GoodsNumber","可用库存数");
 | 
	
		
			
				|  |  | -        headerMap.put("DeductionRate","扣率 (EDLP vs 实际销售价)");
 | 
	
		
			
				|  |  | -        headerMap.put("UnitSold","销售数量");
 | 
	
		
			
				|  |  | -        headerMap.put("Sales","销售额");
 | 
	
		
			
				|  |  | -        headerMap.put("TaxAmount","综合税额");
 | 
	
		
			
				|  |  | -        headerMap.put("TotalSalesInclTax","总销售额");
 | 
	
		
			
				|  |  | -        headerMap.put("TaxRate","综合税率");
 | 
	
		
			
				|  |  | -        headerMap.put("GP1","预估毛利额");
 | 
	
		
			
				|  |  | -        headerMap.put("GP2","预估毛利率");
 | 
	
		
			
				|  |  | -        headerMap.put("ProductCategory","商品类型");
 | 
	
		
			
				|  |  | -        headerMap.put("SupplierName","主供应商名称");
 | 
	
		
			
				|  |  | -        headerMap.put("TransactionType","销售类型");
 | 
	
		
			
				|  |  | -        headerMap.put("SaleReturnType","退货类型");
 | 
	
		
			
				|  |  | -        headerMap.put("Remark","备注");
 | 
	
		
			
				|  |  | -        return headerMap;
 | 
	
		
			
				|  |  | +    private ArrayList<Entry> initHeaderMap() {
 | 
	
		
			
				|  |  | +//        LinkedHashMap<String, Object> headerMap = new LinkedHashMap<>();
 | 
	
		
			
				|  |  | +        ArrayList<Entry> entries = new ArrayList<>();
 | 
	
		
			
				|  |  | +        entries.add(new Entry("ReceiptNo","销售单号"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("StoreName","门店名称"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("CashRegisterNo","收银台"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("TimeStampDetails","销售时间"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("StaffID","收银员"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("StaffName","收银员姓名"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("PayFlag","支付方式"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("OrderStatus","支付状态"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("OrderSnWx","微信流水号"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("OrderSnAli","支付宝流水号"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("HSCode","海关商品编码"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("HSCodeName","品类名称"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("EmatouCode","料件号"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("PLU","PLU"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("MychemID","MychemID"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("ProductNameEN","商品名称(英文)"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("ProductNameCN","商品名称(中文)"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("Barcode","商品主条码"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("PackSize","规格"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("ProductSpecification","单位"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("Brand","品牌"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("EDLP","日常价"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("CurrentPrice","实际销售价"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("CostPrice","进货价"));
 | 
	
		
			
				|  |  | +//        entries.add(new Entry("PrimeCost","成本价");
 | 
	
		
			
				|  |  | +//        entries.add(new Entry("GoodsNumber","可用库存数");
 | 
	
		
			
				|  |  | +        entries.add(new Entry("DeductionRate","扣率 (EDLP vs 实际销售价)"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("UnitSold","销售数量"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("Sales","销售额"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("TaxAmount","综合税额"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("TotalSalesInclTax","总销售额"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("TaxRate","综合税率"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("GP1","预估毛利额"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("GP2","预估毛利率"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("ProductCategory","商品类型"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("SupplierName","主供应商名称"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("TransactionType","销售类型"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("SaleReturnType","退货类型"));
 | 
	
		
			
				|  |  | +        entries.add(new Entry("Remark","备注"));
 | 
	
		
			
				|  |  | +        return entries;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |