From b66a75d3a7d2cb09434fca2f02814dc50a1304f5 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Mon, 28 Sep 2020 22:54:01 +0800 Subject: [PATCH] . --- .../com/cowr/model/base/BaseOrderTemp.java | 46 ++++++++++++- .../devicectrl/printer/ExcelHelper.java | 2 - .../devicectrl/printer/JsdCellAddresses.java | 65 ++++++++++++++++++ .../local/ssjygl/order/LocalOrderService.java | 6 ++ .../resources/tpl_结算单_完整版.xlsx | Bin 0 -> 13027 bytes 5 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/JsdCellAddresses.java create mode 100644 ssjygl-xsx-local/src/main/resources/tpl_结算单_完整版.xlsx diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java index fc0f938..6eeef14 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java @@ -5,7 +5,7 @@ import com.jfinal.plugin.activerecord.IBean; import com.alibaba.fastjson.annotation.JSONField; /** - * Generated by COWR Mon Sep 21 22:03:28 CST 2020 + * Generated by COWR Mon Sep 28 16:46:22 CST 2020 * TableName: order_temp * Remarks: 订单相关 - 外销单 * PrimaryKey: sn @@ -1068,5 +1068,49 @@ public abstract class BaseOrderTemp> extends BaseMode return getStr("invoice_number"); } + /** + * name: invoice_type + * type: INT(10) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: 1 + * @param invoiceType 1.普票,2.专票 + */ + @JSONField(name="invoice_type") + public void setInvoiceType(Integer invoiceType) { + set("invoice_type", invoiceType); + } + + + /** + * @return invoice_type 1.普票,2.专票 + */ + @JSONField(name="invoice_type") + public Integer getInvoiceType() { + return getInt("invoice_type"); + } + + /** + * name: invoice_site + * type: INT(10) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: 1 + * @param invoiceSite 1.砂站,2.结算中心 + */ + @JSONField(name="invoice_site") + public void setInvoiceSite(Integer invoiceSite) { + set("invoice_site", invoiceSite); + } + + + /** + * @return invoice_site 1.砂站,2.结算中心 + */ + @JSONField(name="invoice_site") + public Integer getInvoiceSite() { + return getInt("invoice_site"); + } + } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/ExcelHelper.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/ExcelHelper.java index 7823ce3..ca270cf 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/ExcelHelper.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/ExcelHelper.java @@ -1,11 +1,9 @@ package com.cowr.local.ssjygl.devicectrl.printer; -import com.jfinal.kit.PathKit; import com.jfinal.log.Log; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellAddress; import org.apache.poi.xssf.usermodel.XSSFClientAnchor; -import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbookFactory; diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/JsdCellAddresses.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/JsdCellAddresses.java new file mode 100644 index 0000000..bc3c914 --- /dev/null +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/printer/JsdCellAddresses.java @@ -0,0 +1,65 @@ +package com.cowr.local.ssjygl.devicectrl.printer; + +import org.apache.poi.ss.util.CellAddress; + +import java.util.HashMap; +import java.util.Map; + +// 保存预设的发票内容单元格位置 +// 结算单 +public class JsdCellAddresses { + // 开票时间 + public static final CellAddress datetimePrint = makeCellAddress("o8"); + // 客户名称 + public static final CellAddress clientName = makeCellAddress("e9"); + // 净重 + public static final CellAddress goodsNetWeight = makeCellAddress("g18"); + + // 皮重 + public static final CellAddress goodsTareWeight = makeCellAddress("g16"); + // 毛重 + public static final CellAddress goodsGrossWeight = makeCellAddress("g14"); + + // 商品单价 + public static final CellAddress priceGoods = makeCellAddress("i14"); + // 商品总价小写 + public static final CellAddress priceGoodsTotal = makeCellAddress("m14"); + // 商品总价大写 + public static final CellAddress priceGoodsTotalUpper = makeCellAddress("m17"); + // 备注 + public static final CellAddress remark = makeCellAddress("m20"); + // 开票人 + public static final CellAddress drawer = makeCellAddress("l24"); + // 车牌号 + public static final CellAddress truckLicense = makeCellAddress("m11"); + + public static Map addrMap = new HashMap<>(); + + static { + addrMap.put("datatimePrint", datetimePrint); + addrMap.put("clientName", clientName); + addrMap.put("goodsNetWeight", goodsNetWeight); + addrMap.put("goodsTareWeight", goodsTareWeight); + addrMap.put("goodsGrossWeight", goodsGrossWeight); + addrMap.put("priceGoods", priceGoods); + addrMap.put("priceGoodsTotal", priceGoodsTotal); + addrMap.put("priceGoodsTotalUpper", priceGoodsTotalUpper); + addrMap.put("remark", remark); + addrMap.put("drawer", drawer); + addrMap.put("truck_license", truckLicense); + } + + private static CellAddress makeCellAddress(String addr) { + char[] chars = addr.toCharArray(); + int column = chars[0] - 97; + int row; + String sub = addr.substring(1, addr.length()); + row = Integer.valueOf(sub) - 1; + // if (chars.length == 3) { + // row = 10 + (chars[2] - 48 - 1) * 10; + // } else { + // row = chars[1] - 48 - 1; + // } + return new CellAddress(row, column); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java index ea3f258..3030594 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java @@ -438,6 +438,12 @@ public class LocalOrderService { out.put("truck_license", StrUtil.getRecordStr(order, "truck_license")); out.put("invoice_code", StrUtil.getRecordStr(order, "invoice_code")); + // 开票类型,从订单信息中获取 + // 订单中的开票类型在结算时,从客户信息中获取 + // 2020-09-28 开专票的单位,先临时开具结算单 + // 2020-09-28 在拿到印刷版的结算单前,需要在空白纸上打印完整的结算单信息 + out.put("invoice_type", StrUtil.getRecordStr(order, "invoice_type")); + return out; } diff --git a/ssjygl-xsx-local/src/main/resources/tpl_结算单_完整版.xlsx b/ssjygl-xsx-local/src/main/resources/tpl_结算单_完整版.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4755b99e788ab71386e430ecc2989b5ba4b710e4 GIT binary patch literal 13027 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 UUP1iZULz8~^feAln1B2Bf0^o9?EnA( literal 0 HcmV?d00001