diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java index 5668d9061..fb986e328 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java @@ -7,6 +7,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumFinanceCashierType; import com.iformall.enums.EnumFinanceReceiveStatus; import com.iformall.enums.EnumFinanceReceiveType; +import com.iformall.utils.PriceUtilV2; import lombok.Data; import lombok.EqualsAndHashCode; @@ -48,13 +49,37 @@ public class WxFinanceReceive extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "实收金额", name = "receiveMoney") private String receiveMoney; + @TableField(exist = false) + private String receiveMoneyChinese; + public String getReceiveMoneyChinese() { + if (StringUtils.isNotBlank(receiveMoney)) { + receiveMoneyChinese = PriceUtilV2.number2CNMontrayUnit(new BigDecimal(receiveMoney)); + } + return receiveMoneyChinese; + } @io.swagger.annotations.ApiModelProperty(value = "支付给商户金额", name = "payMoney") private String payMoney; + @TableField(exist = false) + private String payMoneyChinese; + public String getPayMoneyChinese() { + if (StringUtils.isNotBlank(payMoney)) { + payMoneyChinese = PriceUtilV2.number2CNMontrayUnit(new BigDecimal(payMoney)); + } + return payMoneyChinese; + } //跟useMoney的区别是,这个字段是记录此次收款冲抵了多少费用。useMoney是使用了自身多少的实收金额,预充用的到 @io.swagger.annotations.ApiModelProperty(value = "冲抵金额", name = "setOffMoney") private String setOffMoney; + @TableField(exist = false) + private String setOffMoneyChinese; + public String getSetOffMoneyChinese() { + if (StringUtils.isNotBlank(setOffMoney)) { + setOffMoneyChinese = PriceUtilV2.number2CNMontrayUnit(new BigDecimal(setOffMoney)); + } + return setOffMoneyChinese; + } @io.swagger.annotations.ApiModelProperty(value = "已使用金额,冲抵里面使用", name = "useMoney") private String useMoney; @@ -69,6 +94,8 @@ public class WxFinanceReceive extends TenantEntity { return new BigDecimal(receiveMoney).subtract(new BigDecimal(useMoney)).toPlainString(); } + @TableField(exist = false) + private String allReceiveMoney; public String getAllReceiveMoney() { if (StringUtils.isBlank(receiveMoney)) { receiveMoney = "0"; @@ -76,7 +103,14 @@ public class WxFinanceReceive extends TenantEntity { if (StringUtils.isBlank(setOffMoney)) { setOffMoney = "0"; } - return new BigDecimal(receiveMoney).add(new BigDecimal(setOffMoney)).toPlainString(); + allReceiveMoney = new BigDecimal(receiveMoney).add(new BigDecimal(setOffMoney)).toPlainString(); + return allReceiveMoney; + } + @TableField(exist = false) + private String allReceiveMoneyChinese; + public String getAllReceiveMoneyChinese() { + allReceiveMoneyChinese = PriceUtilV2.number2CNMontrayUnit(new BigDecimal(getAllReceiveMoney())); + return allReceiveMoneyChinese; } @io.swagger.annotations.ApiModelProperty(value = "状态EnumFinanceReceiveStatus", name = "status") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java index 75895886a..8914b0f98 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java @@ -1,9 +1,11 @@ package com.iformall.domain.po; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumBillAllType; +import com.iformall.utils.Constant; import lombok.Data; import lombok.EqualsAndHashCode; @@ -70,6 +72,23 @@ public class WxFinanceReceiveBill extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "是否已删除", name = "isDel") private Integer isDel; + @TableField(exist = false) + private String receivePay; + public String getReceivePay() { + if (null != payWay && payWay != Constant.bill_pay_way_setoff) { + receivePay = receive; + } + return receivePay; + } + @TableField(exist = false) + private String setOff; + public String getSetOff() { + if (null != payWay && payWay == Constant.bill_pay_way_setoff) { + setOff = receive; + } + return setOff; + } + @TableField(exist = false) private String shopNumber; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java index 292c72b22..43e1a0f9a 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -44,6 +44,7 @@ public class PrintCustomedTableDataHandler{ } Document doc = Jsoup.parse(componentContent); Element titleTr = doc.getElementById("titletr"); + int trindex = titleTr.siblingIndex(); List titleAllTds = titleTr.childNodes(); List titleTds = new ArrayList();; for (int i = 0 ; i < titleAllTds.size() ; i ++) { @@ -56,8 +57,10 @@ public class PrintCustomedTableDataHandler{ String trstyle = titleTr.attr("style"); for (int i = 0 ; i < listdata.size(); i ++) { Object object = listdata.get(i); - JSONObject o = JSON.parseObject(JSON.toJSONString(object)); - Element tr = titleTr.parent().appendElement("tr"); + Element tr = new Element("tr"); + titleTr.parent().insertChildren(trindex+1, tr); + trindex = trindex+1; + if (StringUtils.isNotBlank(trclass)) { tr.attr("class", trclass); } diff --git a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java index af34c83ea..448ad2341 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java @@ -31,7 +31,6 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ public Object getObjectValue(String name, Object o, Object... params) { Map merchantMap = (Map) params[0]; Map feesMap = (Map) params[1]; - Map shopNumber = (Map) params[2]; WxFinanceReceive receive = (WxFinanceReceive) o; if (name.equals("id")) { return receive.getId(); @@ -40,28 +39,19 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ }else if (name.equals("receiveMoney")) { return receive.getReceiveMoney(); }else if (name.equals("receiveMoneyChinese")) { - if (StringUtils.isNotBlank(receive.getReceiveMoney())) { - return PriceUtilV2.number2CNMontrayUnit(new BigDecimal(receive.getReceiveMoney())); - } - return ""; + return receive.getReceiveMoneyChinese(); }else if (name.equals("payMoney")) { return receive.getPayMoney(); }else if (name.equals("payMoneyChinese")) { - if (StringUtils.isNotBlank(receive.getPayMoney())) { - return PriceUtilV2.number2CNMontrayUnit(new BigDecimal(receive.getPayMoney())); - } - return ""; + return receive.getPayMoneyChinese(); }else if (name.equals("setOffMoney")) { return receive.getSetOffMoney(); }else if (name.equals("setOffMoneyChinese")) { - if (StringUtils.isNotBlank(receive.getSetOffMoney())) { - return PriceUtilV2.number2CNMontrayUnit(new BigDecimal(receive.getSetOffMoney())); - } - return ""; + return receive.getSetOffMoneyChinese(); }else if (name.equals("allReceiveMoney")) { return receive.getAllReceiveMoney(); }else if (name.equals("allReceiveMoneyChinese")) { - return PriceUtilV2.number2CNMontrayUnit(new BigDecimal(receive.getAllReceiveMoney())); + return receive.getAllReceiveMoneyChinese(); }else if (name.equals("useMoney")) { return receive.getUseMoney(); }else if (name.equals("receiveTypeName")) { @@ -72,7 +62,10 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ return receive.getMoneyDetail(); }else if (name.equals("remark")) { return receive.getRemark(); - }else if (name.equals("merchantName")) { + }else if (name.equals("merchantId") || name.equals("merchantName")) { + if (StringUtils.isNotBlank(receive.getMerchantName())) { + return receive.getMerchantName(); + } if (null != merchantMap) { WxMerchant m = merchantMap.get(receive.getMerchantId()); if (null != m) { @@ -81,10 +74,7 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ } return ""; }else if (name.equals("shopNumber")) { - if (null != shopNumber) { - return shopNumber.get(receive.getMerchantId()); - } - return ""; + return receive.getShopNumber(); } return null; } diff --git a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintReceiveBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintReceiveBillDataHandler.java new file mode 100644 index 000000000..dbab44c3e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintReceiveBillDataHandler.java @@ -0,0 +1,86 @@ +package com.iformall.print.data.impl; + +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.iformall.domain.po.WxAllBill; +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxFinanceReceiveBill; +import com.iformall.domain.po.WxMerchant; +import com.iformall.print.data.PrintDataParser; +import com.iformall.utils.DateUtils; + +@Service +public class PrintReceiveBillDataHandler implements PrintDataParser{ + + + @Override + public Object getObjectValue(String name, Object o,Object... params) { + Map merchantMap = (Map) params[0]; + Map feesMap = (Map) params[1]; + Map shopNumber = (Map) params[2]; + WxFinanceReceiveBill receive = (WxFinanceReceiveBill) o; + if (name.equals("id")) { + return receive.getId(); + }else if (name.equals("createtime")) { + if (null != receive.getCreateTime()) { + return DateUtils.date2String(receive.getCreateTime()); + } + return ""; + }else if (name.equals("receiveId")) { + return receive.getReceiveId(); + }else if (name.equals("billId")) { + return receive.getBillId(); + }else if (name.equals("feesId") || name.equals("feesName")) { + if (StringUtils.isNotBlank(receive.getFeesName())) { + return receive.getFeesName(); + } + if (null != feesMap && null != receive.getFeesId()) { + WxEnergyFees f = feesMap.get(receive.getFeesId()); + if (null != f) { + return f.getName(); + } + } + return ""; + }else if (name.equals("receive")) { + return receive.getReceive(); + }else if (name.equals("pay")) { + return receive.getPay(); + }else if (name.equals("receivePay")) { + return receive.getReceivePay(); + }else if (name.equals("setOff")) { + return receive.getSetOff(); + }else if (name.equals("starttime")) { + if (null != receive.getStarttime()) { + return DateUtils.date2String(receive.getStarttime(),DateUtils.DATE_PATTERN); + } + return ""; + }else if (name.equals("endtime")) { + if (null != receive.getEndtime()) { + return DateUtils.date2String(receive.getEndtime(),DateUtils.DATE_PATTERN); + } + return ""; + }else if (name.equals("merchantName") || name.equals("merchantId")) { + if (null != merchantMap && null != receive.getMerchantId()) { + WxMerchant m = merchantMap.get(receive.getMerchantId()); + if (null != m) { + return m.getName(); + } + } + return ""; + }else if (name.equals("shopNumber")) { + if (StringUtils.isNotBlank(receive.getShopNumber())) { + return receive.getShopNumber(); + } + if (null != shopNumber && null != receive.getMerchantId()) { + String m = shopNumber.get(receive.getMerchantId()); + return m; + } + return ""; + } + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index 092175cdc..9eafe7569 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -36,7 +36,7 @@ public interface WxFinanceService { WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); void invalidReceive(WxFinanceReceive record,MallUserInfo user,String remark); void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); - List getReceiveBillIds(WxFinanceReceiveBill record); + List getReceiveBills(WxFinanceReceiveBill record); void updateReceivePrint(WxFinanceReceive record); //预收款 List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java index e0e48dc0f..2f91f4fa5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -34,6 +34,7 @@ import com.iformall.print.data.PrintDataParser; import com.iformall.print.data.impl.PrintBillDataHandler; import com.iformall.print.data.impl.PrintFinanceReceiveDataHandler; import com.iformall.print.data.impl.PrintMerchantSettleDataHandler; +import com.iformall.print.data.impl.PrintReceiveBillDataHandler; import com.iformall.service.WxAllBillService; import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinancePrintService; @@ -78,6 +79,9 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired PrintBillDataHandler printBillDataHandler; + @Autowired + PrintReceiveBillDataHandler printReceiveBillDataHandler; + @Autowired PrintMerchantSettleDataHandler printMerchantSettleDataHandler; @@ -269,25 +273,13 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { WxFinanceReceiveBill rb = new WxFinanceReceiveBill(); rb.updateTenantInfo(re); rb.setReceiveId(re.getId()); - List billIdList = wxFinanceService.getReceiveBillIds(rb); - List billList = null; - if (null != billIdList && billIdList.size() > 0 ) { - WxAllBill billq = new WxAllBill(); - billq.updateTenantInfo(re); - billq.setIds(billIdList); - billList = wxAllBillService.list(billq); - } - - if (null != billList) { - WxAllBill billq = new WxAllBill(); - billq.setShopNumber("合计"); - billq.setEnergyFeesName(PriceUtilV2.number2CNMontrayUnit(new BigDecimal(re.getAllReceiveMoney()))); - billq.setReceivePay(re.getReceiveMoney()); - billq.setSetOff(re.getSetOffMoney()); - billList.add(billq); + if (null != shopNumber && null != re.getMerchantId()) { + re.setShopNumber(shopNumber.get(re.getMerchantId())); + }else { + re.setShopNumber(""); } - - PrintVo vo = handleComponentData(re.getId(),templateId,o,items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,shopNumber); + List rbills = wxFinanceService.getReceiveBills(rb); + PrintVo vo = handleComponentData(re.getId(),templateId,o,items, printFinanceReceiveDataHandler,re,printReceiveBillDataHandler, rbills,merchantMap,feesMap,shopNumber); if (null != vo) { voList.add(vo); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index b23fba48a..b79a16be3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -809,11 +809,10 @@ public class WxFinanceServiceImpl implements WxFinanceService { } List bills = record.getBills(); sortBills(bills); - //创建主收款单 WxFinanceReceive addreceive = generateReceive(receiveId,user,EnumFinanceCashierType.PAY ,EnumFinanceReceiveType.RECEIVE, "0",payTotal.toPlainString(), record.getMerchantId(), null, record.getRemark()); if (payTotal.compareTo(new BigDecimal(0)) > 0) { - addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays())); + addreceive.setMoneyDetail(moneyDetail.toString()); wxFinanceReceivePaywayMapper.insertPayWays(record.getTenantId(),receivePayWayList); } WxMerchant merchant = new WxMerchant(); @@ -1048,8 +1047,8 @@ public class WxFinanceServiceImpl implements WxFinanceService { } @Override - public List getReceiveBillIds(WxFinanceReceiveBill record) { - return wxFinanceReceiveBillMapper.findBillIdList(record); + public List getReceiveBills(WxFinanceReceiveBill record) { + return wxFinanceReceiveBillMapper.findList(record); } @Override