From f132b0d90c0e06cf251ba9d7fda2a8cc8401db5a Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 20:29:18 +0800 Subject: [PATCH 1/5] fix --- .../data/PrintCustomedTableDataHandler.java | 54 +++++++------------ .../iformall/print/data/PrintDataParser.java | 11 ++++ .../data/{ => impl}/PrintBillDataHandler.java | 8 +-- .../PrintFinanceReceiveDataHandler.java | 13 +++-- .../PrintMerchantSettleDataHandler.java | 9 ++-- .../impl/WxFinancePrintServiceImpl.java | 19 +++---- 6 files changed, 58 insertions(+), 56 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintDataParser.java rename mallinkService/src/main/java/com/iformall/print/data/{ => impl}/PrintBillDataHandler.java (88%) rename mallinkService/src/main/java/com/iformall/print/data/{ => impl}/PrintFinanceReceiveDataHandler.java (82%) rename mallinkService/src/main/java/com/iformall/print/data/{ => impl}/PrintMerchantSettleDataHandler.java (88%) 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 09ead6131..ea2e1cdab 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -1,44 +1,41 @@ package com.iformall.print.data; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.StringReader; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; - -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathFactory; - +import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.nodes.Node; import org.springframework.stereotype.Service; -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.WxFinanceReceive; +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxMerchant; @Service public class PrintCustomedTableDataHandler{ - - public String getTableContent(String componentContent,JSONArray datas,JSONObject entity) { + + public String getTableContent(PrintDataParser parser,String componentContent,JSONArray datas,JSONObject entity,Map merchantMap,Map feesMap,Map shopNumber) { if (null != entity) { for (Iterator it = entity.keySet().iterator(); it.hasNext();) { String fieldName = it.next(); - Object o = entity.get(fieldName); - componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", String.valueOf(o)); + //Object o = entity.get(fieldName); + Object o = parser.getObjectValue(fieldName, entity, merchantMap, feesMap, shopNumber); + if (null == o) { + componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", ""); + }else { + componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", String.valueOf(o)); + } + } } - componentContent = getTableListContent(componentContent,datas); + componentContent = getTableListContent(parser,componentContent,datas,merchantMap,feesMap,shopNumber); return componentContent; } - private String getTableListContent(String componentContent,JSONArray datas) { + private String getTableListContent(PrintDataParser parser,String componentContent,JSONArray datas,Map merchantMap,Map feesMap,Map shopNumber) { if (null == datas || datas.size() <= 0) { return componentContent; } @@ -90,7 +87,8 @@ public class PrintCustomedTableDataHandler{ String[] fs = fieldName.split(","); if (null != fs) { for (int k = 0 ; k房间名称费用科目费用区间应收金额冲抵金额优惠金额实收金额"; - List rlist = new ArrayList(); - WxFinanceReceive r1 = new WxFinanceReceive(); - r1.setFeesName("adssasd"); - WxFinanceReceive r2 = new WxFinanceReceive(); - r2.setFeesName("11111"); - rlist.add(r1); - rlist.add(r2); - String sss = p.getTableListContent(s, JSON.parseArray(JSON.toJSONString(rlist))); - System.out.println(sss); - } - } diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintDataParser.java b/mallinkService/src/main/java/com/iformall/print/data/PrintDataParser.java new file mode 100644 index 000000000..d5d17551d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintDataParser.java @@ -0,0 +1,11 @@ +package com.iformall.print.data; + +import java.util.Map; + +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxMerchant; + +public interface PrintDataParser { + + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber); +} diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java similarity index 88% rename from mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java rename to mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java index c1d5450ae..18ba0c6f5 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java @@ -1,4 +1,4 @@ -package com.iformall.print.data; +package com.iformall.print.data.impl; import java.util.Map; @@ -8,13 +8,15 @@ 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.print.data.PrintDataParser; import com.iformall.utils.DateUtils; @Service -public class PrintBillDataHandler{ +public class PrintBillDataHandler implements PrintDataParser{ - public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap) { + @Override + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber) { WxAllBill receive = (WxAllBill) o; if (name.equals("id")) { return receive.getId(); diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java similarity index 82% rename from mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java rename to mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java index 4ccf4e1e4..a094f43be 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintFinanceReceiveDataHandler.java @@ -1,4 +1,4 @@ -package com.iformall.print.data; +package com.iformall.print.data.impl; import java.util.ArrayList; import java.util.List; @@ -11,6 +11,7 @@ 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.print.data.PrintDataParser; import com.iformall.utils.DateUtils; /** @@ -21,10 +22,12 @@ import com.iformall.utils.DateUtils; * */ @Service -public class PrintFinanceReceiveDataHandler { +public class PrintFinanceReceiveDataHandler implements PrintDataParser{ - public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber) { - WxFinanceReceive receive = (WxFinanceReceive) o; + @Override + public Object getObjectValue(String name, Object o, Map merchantMap, + Map feesMap,Map shopNumber) { + WxFinanceReceive receive = (WxFinanceReceive) o; if (name.equals("id")) { return receive.getId(); }else if (name.equals("createTime")) { @@ -60,6 +63,6 @@ public class PrintFinanceReceiveDataHandler { return ""; } return null; - } + } } diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java similarity index 88% rename from mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java rename to mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java index 673d77ca3..30709771f 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java @@ -1,4 +1,4 @@ -package com.iformall.print.data; +package com.iformall.print.data.impl; import java.util.Map; @@ -8,13 +8,14 @@ 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.print.data.PrintDataParser; import com.iformall.utils.DateUtils; @Service -public class PrintMerchantSettleDataHandler{ +public class PrintMerchantSettleDataHandler implements PrintDataParser{ - - public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap) { + @Override + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber) { //根据科目来查询对应的信息 // if (name.equals("id")) { // return receive.getId(); 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 c6e24fd37..f617c551a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -29,10 +29,10 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; import com.iformall.print.PrintComponentHandler; -import com.iformall.print.data.PrintBillDataHandler; import com.iformall.print.data.PrintCustomedTableDataHandler; -import com.iformall.print.data.PrintFinanceReceiveDataHandler; -import com.iformall.print.data.PrintMerchantSettleDataHandler; +import com.iformall.print.data.impl.PrintBillDataHandler; +import com.iformall.print.data.impl.PrintFinanceReceiveDataHandler; +import com.iformall.print.data.impl.PrintMerchantSettleDataHandler; import com.iformall.service.WxAllBillService; import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinancePrintService; @@ -250,7 +250,8 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //表格解析 String componentContent = ov.getString("value"); if (null != billList) { - ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(printFinanceReceiveDataHandler,componentContent, JSON.parseArray(JSON.toJSONString(billList)), + JSON.parseObject(JSON.toJSONString(re)),merchantMap,feesMap,shopNumber)); ov.put("value", ""); } }else { @@ -295,10 +296,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //} }else { if (isSetDefaultValue) { - ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); ov.put("value", ""); }else { - ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); } } @@ -357,15 +358,15 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { String componentContent = ov.getString("value"); if (null != sumlist && sumlist.size() > 0 ) { - ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq)))); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(printMerchantSettleDataHandler,componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq)),merchantMap,feesMap,shopNumber)); ov.put("value", ""); } }else { if (isSetDefaultValue) { - ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap,shopNumber)); ov.put("value", ""); }else { - ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap,shopNumber)); } } From cf77e38073ec96db3a1fef37848623e2ddd210e8 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 21:31:55 +0800 Subject: [PATCH 2/5] fix --- .../data/PrintCustomedTableDataHandler.java | 38 ++++++------ .../iformall/print/data/PrintDataParser.java | 7 +-- .../print/data/impl/PrintBillDataHandler.java | 6 +- .../impl/PrintFinanceReceiveDataHandler.java | 6 +- .../impl/PrintMerchantSettleDataHandler.java | 7 ++- .../impl/WxFinancePrintServiceImpl.java | 62 +++++++++++-------- 6 files changed, 71 insertions(+), 55 deletions(-) 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 ea2e1cdab..d35303b48 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -2,41 +2,42 @@ package com.iformall.print.data; import java.util.Iterator; import java.util.List; -import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.nodes.Node; import org.springframework.stereotype.Service; -import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSON; 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; @Service public class PrintCustomedTableDataHandler{ - public String getTableContent(PrintDataParser parser,String componentContent,JSONArray datas,JSONObject entity,Map merchantMap,Map feesMap,Map shopNumber) { - if (null != entity) { + public String getTableContent(String componentContent,PrintDataParser objectParser,Object object,PrintDataParser listParser,List listdata,Object... params) { + if (null != object) { + JSONObject entity = JSON.parseObject(JSON.toJSONString(object)); for (Iterator it = entity.keySet().iterator(); it.hasNext();) { String fieldName = it.next(); //Object o = entity.get(fieldName); - Object o = parser.getObjectValue(fieldName, entity, merchantMap, feesMap, shopNumber); - if (null == o) { - componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", ""); + if (StringUtils.isBlank(fieldName)) { }else { - componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", String.valueOf(o)); + Object o = objectParser.getObjectValue(fieldName, object,params); + if (null == o) { + componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", ""); + }else { + componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", String.valueOf(o)); + } } - } } - componentContent = getTableListContent(parser,componentContent,datas,merchantMap,feesMap,shopNumber); + + componentContent = getTableListContent(listParser,componentContent,listdata,params); return componentContent; } - private String getTableListContent(PrintDataParser parser,String componentContent,JSONArray datas,Map merchantMap,Map feesMap,Map shopNumber) { - if (null == datas || datas.size() <= 0) { + private String getTableListContent(PrintDataParser parser,String componentContent,List listdata,Object... params) { + if (null == listdata || listdata.size() <= 0) { return componentContent; } Document doc = Jsoup.parse(componentContent); @@ -45,8 +46,9 @@ public class PrintCustomedTableDataHandler{ String trclass = titleTr.attr("class"); String trstyle = titleTr.attr("style"); StringBuffer sb = new StringBuffer(); - for (int i = 0 ; i < datas.size(); i ++) { - JSONObject o = datas.getJSONObject(i); + 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"); sb.append(" merchantMap,Map feesMap,Map shopNumber); + public Object getObjectValue(String name, Object o,Object... params); } diff --git a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java index 18ba0c6f5..4ba405ebb 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java @@ -6,7 +6,6 @@ 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.print.data.PrintDataParser; import com.iformall.utils.DateUtils; @@ -16,7 +15,10 @@ public class PrintBillDataHandler implements PrintDataParser{ @Override - public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber) { + public Object getObjectValue(String name, Object o,Object... params) { + Map merchantMap = (Map) params[0]; + Map feesMap = (Map) params[1]; + Map shopNumber = (Map) params[2]; WxAllBill receive = (WxAllBill) o; if (name.equals("id")) { return receive.getId(); 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 a094f43be..ef3a5d936 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 @@ -25,8 +25,10 @@ import com.iformall.utils.DateUtils; public class PrintFinanceReceiveDataHandler implements PrintDataParser{ @Override - public Object getObjectValue(String name, Object o, Map merchantMap, - Map feesMap,Map shopNumber) { + 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(); diff --git a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java index 30709771f..6c75a3dee 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintMerchantSettleDataHandler.java @@ -8,6 +8,7 @@ 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.domain.vo.WxMerchantBillVo; import com.iformall.print.data.PrintDataParser; import com.iformall.utils.DateUtils; @@ -15,7 +16,11 @@ import com.iformall.utils.DateUtils; public class PrintMerchantSettleDataHandler implements PrintDataParser{ @Override - public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap,Map shopNumber) { + public Object getObjectValue(String name, Object o,Object... params) { + Map merchantMap = (Map) params[0]; + Map feesMap = (Map) params[1]; + Map shopNumber = (Map) params[2]; + WxMerchantBillVo receive = (WxMerchantBillVo) o; //根据科目来查询对应的信息 // if (name.equals("id")) { // return receive.getId(); 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 f617c551a..f602a248c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -30,6 +30,7 @@ import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; import com.iformall.print.PrintComponentHandler; import com.iformall.print.data.PrintCustomedTableDataHandler; +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; @@ -191,6 +192,38 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { return isSetDefaultValue; } + private void handleComponentData(JSONArray items,PrintDataParser objectParser,Object object,PrintDataParser listParser,List listdata,Object... params) { + if (null != items) { + for (int j = 0 ; j < items.size() ; j ++) { + JSONObject ov = items.getJSONObject(j); + //是否是定制化的表格 + Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); + + boolean isSetDefaultValue = isSetDefaultValue(ov); + if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { + //表格解析 + String componentContent = ov.getString("value"); + if (null != listdata) { + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, objectParser,object,listParser,listdata,params)); + ov.put("value", ""); + } + }else { + String fieldName = ov.getString("name"); + if (StringUtils.isBlank(fieldName)) { + + }else { + if (isSetDefaultValue) { + ov.put("defaultValue", objectParser.getObjectValue(fieldName,object,params)); + ov.put("value", ""); + }else { + ov.put("value", objectParser.getObjectValue(fieldName,object,params)); + } + } + } + } + } + } + @Override public List parseTemplateData(String tenantId, Long templateId, List dataIds,Object entity) { WxFinancePrintTemplate template = this.getTemplateById(templateId); @@ -239,31 +272,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { billq.setIds(billIdList); billList = wxAllBillService.list(billq); } - if (null != items) { - for (int j = 0 ; j < items.size() ; j ++) { - JSONObject ov = items.getJSONObject(j); - //是否是定制化的表格 - Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); - - boolean isSetDefaultValue = isSetDefaultValue(ov); - if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { - //表格解析 - String componentContent = ov.getString("value"); - if (null != billList) { - ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(printFinanceReceiveDataHandler,componentContent, JSON.parseArray(JSON.toJSONString(billList)), - JSON.parseObject(JSON.toJSONString(re)),merchantMap,feesMap,shopNumber)); - ov.put("value", ""); - } - }else { - if (isSetDefaultValue) { - ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); - ov.put("value", ""); - }else { - ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); - } - } - } - } + handleComponentData(items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,feesMap); vo.setTemplate(o); voList.add(vo); } @@ -358,7 +367,8 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { String componentContent = ov.getString("value"); if (null != sumlist && sumlist.size() > 0 ) { - ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(printMerchantSettleDataHandler,componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq)),merchantMap,feesMap,shopNumber)); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, printMerchantSettleDataHandler,bq, + printMerchantSettleDataHandler,sumlist,merchantMap,feesMap,shopNumber)); ov.put("value", ""); } }else { From 71a11d44f582dbefbb04d52d31e69844132da068 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 22:05:44 +0800 Subject: [PATCH 3/5] fix --- .../print/data/impl/PrintBillDataHandler.java | 16 +- .../impl/WxFinancePrintServiceImpl.java | 148 ++++++------------ 2 files changed, 62 insertions(+), 102 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java index 4ba405ebb..e1be4b8dd 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/impl/PrintBillDataHandler.java @@ -30,10 +30,12 @@ public class PrintBillDataHandler implements PrintDataParser{ return receive.getPay(); }else if (name.equals("setOff")) { return receive.getSetOff(); + }else if (name.equals("returnPay")) { + return receive.getReturnPay(); }else if (name.equals("starttime")) { - return DateUtils.date2String(receive.getStarttime()); + return DateUtils.date2String(receive.getStarttime(),DateUtils.DATE_PATTERN); }else if (name.equals("endtime")) { - return DateUtils.date2String(receive.getEndtime()); + return DateUtils.date2String(receive.getEndtime(),DateUtils.DATE_PATTERN); }else if (name.equals("owe")) { return receive.getOwe(); }else if (name.equals("statusName")) { @@ -46,7 +48,7 @@ public class PrintBillDataHandler implements PrintDataParser{ } } return ""; - }else if (name.equals("energyFeesName")) { + }else if (name.equals("feesName")) { if (null != feesMap) { WxEnergyFees f = feesMap.get(receive.getEnergyFeesId()); if (null != f) { @@ -54,10 +56,14 @@ public class PrintBillDataHandler implements PrintDataParser{ } } return ""; - }else if (name.equals("returnPay")) { - return receive.getReturnPay(); }else if (name.equals("billRemark")) { return receive.getBillRemark(); + }else if (name.equals("shopNumber")) { + if (null != shopNumber) { + String m = shopNumber.get(receive.getMerchantId()); + return m; + } + return ""; } return null; } 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 f602a248c..9e7950890 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -192,8 +192,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { return isSetDefaultValue; } - private void handleComponentData(JSONArray items,PrintDataParser objectParser,Object object,PrintDataParser listParser,List listdata,Object... params) { + private PrintVo handleComponentData(Long templateId,JSONObject templateContent,JSONArray items,PrintDataParser objectParser,Object object,PrintDataParser listParser,List listdata,Object... params) { if (null != items) { + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); for (int j = 0 ; j < items.size() ; j ++) { JSONObject ov = items.getJSONObject(j); //是否是定制化的表格 @@ -205,7 +207,6 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { String componentContent = ov.getString("value"); if (null != listdata) { ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, objectParser,object,listParser,listdata,params)); - ov.put("value", ""); } }else { String fieldName = ov.getString("name"); @@ -214,14 +215,16 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { }else { if (isSetDefaultValue) { ov.put("defaultValue", objectParser.getObjectValue(fieldName,object,params)); - ov.put("value", ""); }else { ov.put("value", objectParser.getObjectValue(fieldName,object,params)); } } } } + vo.setTemplate(templateContent); + return vo; } + return null; } @Override @@ -258,9 +261,6 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List voList = new ArrayList(); for (int i = 0 ; i < receiveList.size(); i ++) { WxFinanceReceive re = receiveList.get(i); - PrintVo vo = new PrintVo(); - vo.setDataId(templateId); - WxFinanceReceiveBill rb = new WxFinanceReceiveBill(); rb.updateTenantInfo(re); rb.setReceiveId(re.getId()); @@ -272,9 +272,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { billq.setIds(billIdList); billList = wxAllBillService.list(billq); } - handleComponentData(items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,feesMap); - vo.setTemplate(o); - voList.add(vo); + PrintVo vo = handleComponentData(templateId,o,items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,feesMap); + if (null != vo) { + voList.add(vo); + } } return voList; }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.BILL.getCode()) { @@ -288,34 +289,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List voList = new ArrayList(); for (int i = 0 ; i < billAllList.size(); i ++) { WxAllBill re = billAllList.get(i); - PrintVo vo = new PrintVo(); - vo.setDataId(templateId); - if (null != items) { - for (int j = 0 ; j < items.size() ; j ++) { - JSONObject ov = items.getJSONObject(j); - //是否是定制化的表格 - Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); - - boolean isSetDefaultValue = isSetDefaultValue(ov); - if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { - //表格解析 - String componentContent = ov.getString("value"); - //if (null != billList) { - // printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); - //} - }else { - if (isSetDefaultValue) { - ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); - ov.put("value", ""); - }else { - ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); - } - } - - } - } - vo.setTemplate(o); - voList.add(vo); + PrintVo vo = handleComponentData(templateId,o,items, printBillDataHandler,re,null, null,merchantMap,feesMap,feesMap); + if (null != vo) { + voList.add(vo); + } } return voList; }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.RENT_OWE.getCode()) { @@ -324,66 +301,43 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List feesId = dataIds; List voList = new ArrayList(); - PrintVo vo = new PrintVo(); - vo.setDataId(templateId); - if (null != items) { - for (int j = 0 ; j < items.size() ; j ++) { - JSONObject ov = items.getJSONObject(j); - //是否是定制化的表格 - Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); - boolean isSetDefaultValue = isSetDefaultValue(ov); - if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { - //表格解析 - List sumlist = new ArrayList(); - BigDecimal receiveTotal = new BigDecimal(0); - BigDecimal payTotal = new BigDecimal(0); - BigDecimal oweTotal = new BigDecimal(0); - for (int k = 0 ; k< bq.getBillSumList().size() ; k++) { - WxBillSum billSum = bq.getBillSumList().get(k); - if (feesId.contains(billSum.getEnergyFeesId())) { - WxEnergyFees fee = feesMap.get(billSum.getEnergyFeesId()); - billSum.setTaxRate(fee.getTaxRate()); - sumlist.add(billSum); - receiveTotal = receiveTotal.add(billSum.getNeedPayNumber()); - payTotal = payTotal.add(billSum.getPaidNumber()); - oweTotal = oweTotal.add(billSum.getOweNumber()); - - } - } - WxBillSum heji = new WxBillSum(); - heji.setBillName("合计"); - heji.setNeedPay(receiveTotal.toPlainString()); - sumlist.add(heji); - - WxBillSum yishou = new WxBillSum(); - yishou.setBillName("已收"); - yishou.setNeedPay(payTotal.toPlainString()); - sumlist.add(yishou); - - WxBillSum owe = new WxBillSum(); - owe.setBillName("本期应收"); - owe.setNeedPay(payTotal.toPlainString()); - sumlist.add(owe); - - String componentContent = ov.getString("value"); - if (null != sumlist && sumlist.size() > 0 ) { - ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, printMerchantSettleDataHandler,bq, - printMerchantSettleDataHandler,sumlist,merchantMap,feesMap,shopNumber)); - ov.put("value", ""); - } - }else { - if (isSetDefaultValue) { - ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap,shopNumber)); - ov.put("value", ""); - }else { - ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap,shopNumber)); - } - } - - } - } - vo.setTemplate(o); - voList.add(vo); + List sumlist = new ArrayList(); + BigDecimal receiveTotal = new BigDecimal(0); + BigDecimal payTotal = new BigDecimal(0); + BigDecimal oweTotal = new BigDecimal(0); + for (int k = 0 ; k< bq.getBillSumList().size() ; k++) { + WxBillSum billSum = bq.getBillSumList().get(k); + if (feesId.contains(billSum.getEnergyFeesId())) { + WxEnergyFees fee = feesMap.get(billSum.getEnergyFeesId()); + billSum.setTaxRate(fee.getTaxRate()); + sumlist.add(billSum); + receiveTotal = receiveTotal.add(billSum.getNeedPayNumber()); + payTotal = payTotal.add(billSum.getPaidNumber()); + oweTotal = oweTotal.add(billSum.getOweNumber()); + + } + } + WxBillSum heji = new WxBillSum(); + heji.setBillName("合计"); + heji.setNeedPay(receiveTotal.toPlainString()); + sumlist.add(heji); + + WxBillSum yishou = new WxBillSum(); + yishou.setBillName("已收"); + yishou.setNeedPay(payTotal.toPlainString()); + sumlist.add(yishou); + + WxBillSum owe = new WxBillSum(); + owe.setBillName("本期应收"); + owe.setNeedPay(payTotal.toPlainString()); + sumlist.add(owe); + + PrintVo vo = handleComponentData(templateId,o,items, printMerchantSettleDataHandler,bq,printMerchantSettleDataHandler, sumlist,merchantMap,feesMap,feesMap); + if (null != vo) { + voList.add(vo); + } + + return voList; } return null; From 6abe2688db72e170f92007a944f665e9dad8be44 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 22:20:41 +0800 Subject: [PATCH 4/5] fix --- .../print/data/impl/PrintFinanceReceiveDataHandler.java | 2 +- .../iformall/service/impl/WxFinancePrintServiceImpl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 ef3a5d936..0e4f26cdc 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 @@ -54,7 +54,7 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ if (null != merchantMap) { WxMerchant m = merchantMap.get(receive.getMerchantId()); if (null != m) { - return receive.getRemark(); + return m; } } return ""; 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 9e7950890..c5aeda79f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -272,7 +272,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { billq.setIds(billIdList); billList = wxAllBillService.list(billq); } - PrintVo vo = handleComponentData(templateId,o,items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,feesMap); + PrintVo vo = handleComponentData(templateId,o,items, printFinanceReceiveDataHandler,re,printBillDataHandler, billList,merchantMap,feesMap,shopNumber); if (null != vo) { voList.add(vo); } @@ -289,7 +289,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List voList = new ArrayList(); for (int i = 0 ; i < billAllList.size(); i ++) { WxAllBill re = billAllList.get(i); - PrintVo vo = handleComponentData(templateId,o,items, printBillDataHandler,re,null, null,merchantMap,feesMap,feesMap); + PrintVo vo = handleComponentData(templateId,o,items, printBillDataHandler,re,null, null,merchantMap,feesMap,shopNumber); if (null != vo) { voList.add(vo); } @@ -332,7 +332,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { owe.setNeedPay(payTotal.toPlainString()); sumlist.add(owe); - PrintVo vo = handleComponentData(templateId,o,items, printMerchantSettleDataHandler,bq,printMerchantSettleDataHandler, sumlist,merchantMap,feesMap,feesMap); + PrintVo vo = handleComponentData(templateId,o,items, printMerchantSettleDataHandler,bq,printMerchantSettleDataHandler, sumlist,merchantMap,feesMap,shopNumber); if (null != vo) { voList.add(vo); } From 689ea5983094263b63cc1555fb2dff9acf6adc66 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 22:24:54 +0800 Subject: [PATCH 5/5] fix --- .../print/data/impl/PrintFinanceReceiveDataHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0e4f26cdc..3573fdd10 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 @@ -54,7 +54,7 @@ public class PrintFinanceReceiveDataHandler implements PrintDataParser{ if (null != merchantMap) { WxMerchant m = merchantMap.get(receive.getMerchantId()); if (null != m) { - return m; + return m.getName(); } } return "";