| @@ -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") | |||
| @@ -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) | |||
| @@ -44,6 +44,7 @@ public class PrintCustomedTableDataHandler{ | |||
| } | |||
| Document doc = Jsoup.parse(componentContent); | |||
| Element titleTr = doc.getElementById("titletr"); | |||
| int trindex = titleTr.siblingIndex(); | |||
| List<Node> titleAllTds = titleTr.childNodes(); | |||
| List<Node> titleTds = new ArrayList<Node>();; | |||
| 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); | |||
| } | |||
| @@ -31,7 +31,6 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ | |||
| public Object getObjectValue(String name, Object o, Object... params) { | |||
| Map<Long, WxMerchant> merchantMap = (Map<Long, WxMerchant>) params[0]; | |||
| Map<Long, WxEnergyFees> feesMap = (Map<Long, WxEnergyFees>) params[1]; | |||
| Map<Long,String> shopNumber = (Map<Long, String>) 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; | |||
| } | |||
| @@ -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<Long, WxMerchant> merchantMap = (Map<Long, WxMerchant>) params[0]; | |||
| Map<Long, WxEnergyFees> feesMap = (Map<Long, WxEnergyFees>) params[1]; | |||
| Map<Long,String> shopNumber = (Map<Long, String>) 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; | |||
| } | |||
| } | |||
| @@ -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<Long> getReceiveBillIds(WxFinanceReceiveBill record); | |||
| List<WxFinanceReceiveBill> getReceiveBills(WxFinanceReceiveBill record); | |||
| void updateReceivePrint(WxFinanceReceive record); | |||
| //预收款 | |||
| List<WxAllBill> calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); | |||
| @@ -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<Long> billIdList = wxFinanceService.getReceiveBillIds(rb); | |||
| List<WxAllBill> 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<WxFinanceReceiveBill> 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); | |||
| } | |||
| @@ -809,11 +809,10 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||
| } | |||
| List<WxAllBill> 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<Long> getReceiveBillIds(WxFinanceReceiveBill record) { | |||
| return wxFinanceReceiveBillMapper.findBillIdList(record); | |||
| public List<WxFinanceReceiveBill> getReceiveBills(WxFinanceReceiveBill record) { | |||
| return wxFinanceReceiveBillMapper.findList(record); | |||
| } | |||
| @Override | |||