From cccb6f8d3972cfd23262dbc142adb015e8f5f7ef Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 16:57:55 +0800 Subject: [PATCH] fix --- .../domain/po/WxFinancePrintData.java | 12 ++++ .../com/iformall/print/PrintDataHandler.java | 63 +++++++++++++----- .../iformall/print/PrintDataParseHandler.java | 65 +++++++++++++++++++ 3 files changed, 122 insertions(+), 18 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java index d7b932eff..c326c527a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java @@ -1,9 +1,14 @@ package com.iformall.domain.po; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.BaseEntity; +import com.iformall.print.PrintDataHandler; + import lombok.Data; import lombok.EqualsAndHashCode; @@ -33,4 +38,11 @@ public class WxFinancePrintData extends BaseEntity { private String printDataJson; @io.swagger.annotations.ApiModelProperty(value="是否可编辑",name="isEdit") private Integer isEdit; + + @TableField(exist = false) + private Object printComponents; + public Object getPrintComponents() { + printComponents = PrintDataHandler.parseComponent(this); + return printComponents; + } } diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java index 0e3270525..e45636bd6 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java @@ -2,14 +2,17 @@ package com.iformall.print; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.enums.EnumYesOrNo; import com.iformall.print.entity.PrintDataBraidTable; import com.iformall.print.entity.PrintDataBraidTableColumns; +import com.iformall.print.entity.PrintDataBraidTableColumnsTrSet; import com.iformall.print.entity.PrintDataBraidTxt; @Data @@ -17,22 +20,46 @@ public class PrintDataHandler implements Serializable { private static final long serialVersionUID = 1L; -// public static Object parseComponent(WxFinancePrintData data) { -// JSONObject dataJson = JSON.parseObject(data.getPrintDataJson()); -// if("braid-txt".equals(data.getPrintDataType())) { -// PrintDataBraidTxt txt = new PrintDataBraidTxt(); -// txt.setTitle(data.getName()); -// txt.setIsEdit(data.getIsEdit()); -// txt.setName(dataJson.getString("fieldName")); -// txt.setValue("{"+data.getName()+"}"); -// }else if ("braid-table".equals(data.getPrintDataType())) { -// PrintDataBraidTable table = new PrintDataBraidTable(); -// table.setTitle(data.getName()); -// table.setIsEdit(data.getIsEdit()); -// -// -// -// -// } -// } + public static Object parseComponent(WxFinancePrintData data) { + JSONObject dataJson = JSON.parseObject(data.getPrintDataJson()); + if("braid-txt".equals(data.getPrintDataType())) { + PrintDataBraidTxt txt = new PrintDataBraidTxt(); + txt.setTitle(data.getName()); + txt.setIsEdit(data.getIsEdit()); + txt.setName(dataJson.getString("fieldName")); + txt.setValue("{"+data.getName()+"}"); + return txt; + }else if ("braid-table".equals(data.getPrintDataType())) { + PrintDataBraidTable table = new PrintDataBraidTable(); + table.setTitle(data.getName()); + table.setIsEdit(data.getIsEdit()); + table.setName(dataJson.getString("fieldName")); + table.setValue("{"+data.getName()+"}"); + List columnsAttr = new ArrayList(); + JSONArray columns = dataJson.getJSONArray("columns"); + if (null != columns) { + for (int i = 0 ; i < columns.size() ; i ++) { + JSONObject o = columns.getJSONObject(i); + PrintDataBraidTableColumns tc = new PrintDataBraidTableColumns(); + tc.setTitle(o.getString("title")); + tc.setValue("{"+tc.getTitle()+"}"); + tc.setName(o.getString("fieldName")); + columnsAttr.add(tc); + JSONObject trsets = o.getJSONObject("trSet"); + if (null != trsets) { + PrintDataBraidTableColumnsTrSet ptrset = new PrintDataBraidTableColumnsTrSet(); + ptrset.setTitle(trsets.getString("title")); + ptrset.setCol(trsets.getInteger("col")); + ptrset.setMargin(trsets.getString("margin")); + tc.setTrSet(ptrset); + } + + } + } + table.setColumnsAttr(columnsAttr); + return table; + } + return null; + } + } diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java new file mode 100644 index 000000000..5ff0b1d12 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java @@ -0,0 +1,65 @@ +package com.iformall.print; + +import lombok.Data; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.WxFinancePrintData; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.print.entity.PrintDataBraidTable; +import com.iformall.print.entity.PrintDataBraidTableColumns; +import com.iformall.print.entity.PrintDataBraidTableColumnsTrSet; +import com.iformall.print.entity.PrintDataBraidTxt; + +@Data +public class PrintDataParseHandler implements Serializable { + + private static final long serialVersionUID = 1L; + + public static Object parseData(WxFinancePrintData data) { + JSONObject dataJson = JSON.parseObject(data.getPrintDataJson()); + if("braid-txt".equals(data.getPrintDataType())) { + PrintDataBraidTxt txt = new PrintDataBraidTxt(); + txt.setTitle(data.getName()); + txt.setIsEdit(data.getIsEdit()); + txt.setName(dataJson.getString("fieldName")); + txt.setValue("{"+data.getName()+"}"); + return txt; + }else if ("braid-table".equals(data.getPrintDataType())) { + PrintDataBraidTable table = new PrintDataBraidTable(); + table.setTitle(data.getName()); + table.setIsEdit(data.getIsEdit()); + table.setName(dataJson.getString("fieldName")); + table.setValue("{"+data.getName()+"}"); + List columnsAttr = new ArrayList(); + JSONArray columns = dataJson.getJSONArray("columns"); + if (null != columns) { + for (int i = 0 ; i < columns.size() ; i ++) { + JSONObject o = columns.getJSONObject(i); + PrintDataBraidTableColumns tc = new PrintDataBraidTableColumns(); + tc.setTitle(o.getString("title")); + tc.setValue("{"+tc.getTitle()+"}"); + tc.setName(o.getString("fieldName")); + columnsAttr.add(tc); + JSONObject trsets = o.getJSONObject("trSet"); + if (null != trsets) { + PrintDataBraidTableColumnsTrSet ptrset = new PrintDataBraidTableColumnsTrSet(); + ptrset.setTitle(trsets.getString("title")); + ptrset.setCol(trsets.getInteger("col")); + ptrset.setMargin(trsets.getString("margin")); + tc.setTrSet(ptrset); + } + + } + } + table.setColumnsAttr(columnsAttr); + return table; + } + return null; + } + +}