Browse Source

fix

release_toaliyun_real
winter 1 year ago
parent
commit
913cc0ba02
5 changed files with 157 additions and 29 deletions
  1. +31
    -0
      mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java
  2. +54
    -9
      mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java
  3. +41
    -17
      mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java
  4. +26
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java
  5. +5
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java

+ 31
- 0
mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java View File

@@ -0,0 +1,31 @@
package com.iformall.print.data;

import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.iformall.domain.po.WxEnergyFees;
import com.iformall.domain.po.WxMerchant;

public abstract class AbstractPrintDataParser {

public JSONObject parse(String templateContent,Object re,Map<Long,WxMerchant> merchantMap,Map<Long,WxEnergyFees> feesMap) {
//把所有可能的组件里面需要的内容都解析出来
if (StringUtils.isBlank(templateContent)) {
return null;
}
JSONObject o = JSON.parseObject(templateContent);
JSONArray items = o.getJSONArray("tempItems");
if (null != items) {
for (int i = 0 ; i < items.size() ; i ++) {
JSONObject ov = items.getJSONObject(i);
ov.put("value", getObjectValue(ov.getString("name"),re,merchantMap,feesMap));
}
}
return o;
}
public abstract Object getObjectValue(String name, Object o,Map<Long,WxMerchant> merchantMap,Map<Long,WxEnergyFees> feesMap);
}

+ 54
- 9
mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java View File

@@ -1,17 +1,62 @@
package com.iformall.print.data;

import lombok.Data;
import java.io.Serializable;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.iformall.domain.po.WxAllBill;
import com.iformall.domain.po.WxEnergyFees;
import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.WxMerchant;
import com.iformall.utils.DateUtils;

@Data
public class PrintBillDataHandler implements Serializable {
@Service
public class PrintBillDataHandler extends AbstractPrintDataParser {

private static final long serialVersionUID = 1L;

public static JSONObject parse(String templateContent,WxAllBill re) {
return null;
}
@Override
public Object getObjectValue(String name, Object o,Map<Long,WxMerchant> merchantMap,Map<Long,WxEnergyFees> feesMap) {
WxAllBill receive = (WxAllBill) o;
if (name.equals("id")) {
return receive.getId();
}else if (name.equals("createtime")) {
return DateUtils.date2String(receive.getCreatetime());
}else if (name.equals("receivePay")) {
return receive.getReceivePay();
}else if (name.equals("pay")) {
return receive.getPay();
}else if (name.equals("setOff")) {
return receive.getSetOff();
}else if (name.equals("starttime")) {
return DateUtils.date2String(receive.getStarttime());
}else if (name.equals("endtime")) {
return DateUtils.date2String(receive.getEndtime());
}else if (name.equals("owe")) {
return receive.getOwe();
}else if (name.equals("statusName")) {
return receive.getStatusName();
}else if (name.equals("merchantName")) {
if (null != merchantMap) {
WxMerchant m = merchantMap.get(receive.getMerchantId());
if (null != m) {
return m.getName();
}
}
return "";
}else if (name.equals("energyFeesName")) {
if (null != feesMap) {
WxEnergyFees f = feesMap.get(receive.getEnergyFeesId());
if (null != f) {
return f.getName();
}
}
return "";
}else if (name.equals("returnPay")) {
return receive.getReturnPay();
}else if (name.equals("billRemark")) {
return receive.getBillRemark();
}
return o;
}
}

+ 41
- 17
mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java View File

@@ -1,11 +1,14 @@
package com.iformall.print.data;

import lombok.Data;
import java.io.Serializable;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.iformall.domain.po.WxEnergyFees;
import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.WxMerchant;
import com.iformall.utils.DateUtils;

/**
* 财务数据解析
* 跟 WxFinancePrintData 里面的字段对应
@@ -13,21 +16,42 @@ import com.iformall.utils.DateUtils;
* @author Administrator
*
*/
@Data
public class PrintFinanceReceiveDataHandler implements Serializable {
@Service
public class PrintFinanceReceiveDataHandler extends AbstractPrintDataParser {

private static final long serialVersionUID = 1L;
public static JSONObject parse(String templateContent,WxFinanceReceive re) {
//把所有可能的组件里面需要的内容都解析出来
if (StringUtils.isBlank(templateContent)) {
return null;
@Override
public Object getObjectValue(String name, Object o,Map<Long,WxMerchant> merchantMap,Map<Long,WxEnergyFees> feesMap) {
WxFinanceReceive receive = (WxFinanceReceive) o;
if (name.equals("id")) {
return receive.getId();
}else if (name.equals("createTime")) {
return DateUtils.date2String(receive.getCreateTime());
}else if (name.equals("receiveMoney")) {
return receive.getReceiveMoney();
}else if (name.equals("payMoney")) {
return receive.getPayMoney();
}else if (name.equals("setOffMoney")) {
return receive.getSetOffMoney();
}else if (name.equals("useMoney")) {
return receive.getUseMoney();
}else if (name.equals("receiveTypeName")) {
return receive.getReceiveTypeName();
}else if (name.equals("createByName")) {
return receive.getCreateByName();
}else if (name.equals("moneyDetail")) {
return receive.getMoneyDetail();
}else if (name.equals("remark")) {
return receive.getRemark();
}else if (name.equals("merchantName")) {
if (null != merchantMap) {
WxMerchant m = merchantMap.get(receive.getMerchantId());
if (null != m) {
return receive.getRemark();
}
}
return "";
}
templateContent = templateContent.replaceAll("id", String.valueOf(re.getId()));
templateContent = templateContent.replaceAll("createTime", DateUtils.date2String(re.getCreateTime()));
templateContent = templateContent.replaceAll("feesId", DateUtils.date2String(re.getCreateTime()));
return null;
return o;
}
}

+ 26
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java View File

@@ -12,9 +12,11 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxAllBill;
import com.iformall.domain.po.WxEnergyFees;
import com.iformall.domain.po.WxFinancePrintData;
import com.iformall.domain.po.WxFinancePrintTemplate;
import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.PrintVo;
import com.iformall.enums.EnumFinancePrintDataType;
@@ -25,8 +27,10 @@ import com.iformall.mapper.WxFinancePrintTemplateMapper;
import com.iformall.print.data.PrintBillDataHandler;
import com.iformall.print.data.PrintFinanceReceiveDataHandler;
import com.iformall.service.WxAllBillService;
import com.iformall.service.WxEnergyService;
import com.iformall.service.WxFinancePrintService;
import com.iformall.service.WxFinanceService;
import com.iformall.service.WxMerchantService;

import java.util.ArrayList;
import java.util.Date;
@@ -49,10 +53,24 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService {
@Autowired
WxFinanceService wxFinanceService;
@Lazy
@Autowired
WxEnergyService wxEnergyService;
@Lazy
@Autowired
WxAllBillService wxAllBillService;
@Autowired
PrintFinanceReceiveDataHandler printFinanceReceiveDataHandler;
@Autowired
PrintBillDataHandler printBillDataHandler;
@Lazy
@Autowired
WxMerchantService wxMerchantService;
@Override
public List<WxFinancePrintData> printDataList(WxFinancePrintData record) {
return wxFinancePrintDataMapper.findList(record);
@@ -145,6 +163,12 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService {
return null;
}
EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(template.getType());
WxMerchant mq = new WxMerchant();
mq.setTenantId(tenantId);
Map<Long,WxMerchant> merchantMap = wxMerchantService.findMerchantMap(mq);
WxEnergyFees feq = new WxEnergyFees();
feq.setTenantId(tenantId);
Map<Long, WxEnergyFees> feesMap = wxEnergyService.getFeesMap(feq);
//付款单
if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) {
WxFinanceReceive receiveq = new WxFinanceReceive();
@@ -159,7 +183,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService {
WxFinanceReceive re = receiveList.get(i);
PrintVo vo = new PrintVo();
vo.setDataId(templateId);
vo.setTemplate(PrintFinanceReceiveDataHandler.parse(template.getContent(), re));
vo.setTemplate(printFinanceReceiveDataHandler.parse(template.getContent(), re,merchantMap,feesMap));
voList.add(vo);
}
return voList;
@@ -176,7 +200,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService {
WxAllBill re = billAllList.get(i);
PrintVo vo = new PrintVo();
vo.setDataId(templateId);
vo.setTemplate(PrintBillDataHandler.parse(template.getContent(), re));
vo.setTemplate(printBillDataHandler.parse(template.getContent(), re,merchantMap,feesMap));
voList.add(vo);
}
return voList;


+ 5
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java View File

@@ -529,6 +529,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
final IdWorker idWorker = IdWorker.get();
Long receiveId = idWorker.nextId();
List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>();
StringBuffer moneyDetail = new StringBuffer();
if (null != record.getPayWays()) {
for (int i = 0 ; i < record.getPayWays().size() ; i ++) {
WxBillPayWay payWay = record.getPayWays().get(i);
@@ -549,6 +550,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
rpw.setUpdateTime(new Date());
rpw.setIsDel(EnumYesOrNo.NO.getCode());
receivePayWayList.add(rpw);
moneyDetail.append(payWay.getName()).append(":").append(payWay.getMoney()).append("元");
}
}
}
@@ -560,7 +562,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
//创建主收款单
WxFinanceReceive addreceive = generateReceive(receiveId,user, EnumFinanceCashierType.RECEIVE,EnumFinanceReceiveType.RECEIVE, receiveTotal.toPlainString(),null, record.getMerchantId(), null, record.getRemark());
if (receiveTotal.compareTo(new BigDecimal(0)) > 0) {
addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays()));
addreceive.setMoneyDetail(moneyDetail.toString());
wxFinanceReceivePaywayMapper.insertPayWays(record.getTenantId(),receivePayWayList);
}
WxMerchant merchant = new WxMerchant();
@@ -733,6 +735,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
final IdWorker idWorker = IdWorker.get();
Long receiveId = idWorker.nextId();
List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>();
StringBuffer moneyDetail = new StringBuffer();
if (null != record.getPayWays()) {
for (int i = 0 ; i < record.getPayWays().size() ; i ++) {
WxBillPayWay payWay = record.getPayWays().get(i);
@@ -752,6 +755,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
rpw.setUpdateTime(new Date());
rpw.setIsDel(EnumYesOrNo.NO.getCode());
receivePayWayList.add(rpw);
moneyDetail.append(payWay.getName()).append(":").append(payWay.getMoney()).append("元");
}
}
List<WxAllBill> bills = record.getBills();


Loading…
Cancel
Save