From ce46efed1863d7393a396cbde8eb647dfaad2e2e Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 22:44:26 +0800 Subject: [PATCH] fix --- .../market/WxFinancePrintController.java | 17 ++++-- .../db/migration/V202408000000001.sql | 2 +- .../domain/po/WxFinancePrintData.java | 4 +- .../java/com/iformall/domain/vo/PrintVo.java | 16 +++++ .../enums/EnumFinancePrintDataType.java | 4 +- ...andler.java => PrintComponentHandler.java} | 2 +- .../print/data/PrintBillDataHandler.java | 17 ++++++ .../data/PrintFinanceReceiveDataHandler.java | 33 ++++++++++ .../service/WxFinancePrintService.java | 5 +- .../iformall/service/WxFinanceService.java | 1 + .../impl/WxFinancePrintServiceImpl.java | 61 ++++++++++++++++--- .../service/impl/WxFinanceServiceImpl.java | 6 ++ 12 files changed, 147 insertions(+), 21 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java rename mallinkService/src/main/java/com/iformall/print/{PrintDataHandler.java => PrintComponentHandler.java} (98%) create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index e5f90f02f..52ea04cf8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -121,13 +121,22 @@ public class WxFinancePrintController extends BaseController { } @ApiOperation("预览") - @GetMapping("getTemplateData") + @PostMapping("viewTemplate") @TenantIgnore - public ResultData viewTemplate(@RequestBody String tenantId,Integer type,List dataIds) { - if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == type) { + public ResultData viewTemplate(@RequestBody String tenantId,Long templateId,List dataIds) { + if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == templateId) { return new ResultData(Result.ERROR,"参数不对"); } - return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,type,dataIds)); + return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,templateId,dataIds)); + } + + @ApiOperation("") + @GetMapping("needUpdate") + @TenantIgnore + public ResultData version() { + Map retMap = new HashMap(); + retMap.put("isUpdate", "0"); + return new ResultData(retMap); } } diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql index 6f34baa2f..db350ccf7 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql @@ -779,7 +779,7 @@ CREATE TABLE `wx_finance_print_data` ( `type` int(1) NOT NULL COMMENT '类型', `sort` int(1) NOT NULL DEFAULT '0' COMMENT '排序', `print_data_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '打印的字段类型', - `print_data_json` json DEFAULT NULL COMMENT '配置项', + `print_data_json` text COLLATE utf8mb4_unicode_ci COMMENT '配置项', `is_edit` int(1) NOT NULL DEFAULT '0' COMMENT '是否可编辑', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='租赁合同'; 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 c326c527a..ebbb035f7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java @@ -7,7 +7,7 @@ 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 com.iformall.print.PrintComponentHandler; import lombok.Data; import lombok.EqualsAndHashCode; @@ -42,7 +42,7 @@ public class WxFinancePrintData extends BaseEntity { @TableField(exist = false) private Object printComponents; public Object getPrintComponents() { - printComponents = PrintDataHandler.parseComponent(this); + printComponents = PrintComponentHandler.parseComponent(this); return printComponents; } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java new file mode 100644 index 000000000..42df07dad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java @@ -0,0 +1,16 @@ +package com.iformall.domain.vo; + +import lombok.Data; +import java.io.Serializable; +import com.alibaba.fastjson.JSONObject; + +@Data +public class PrintVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + private Long dataId; + + private JSONObject template; + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java index 542d30afa..7eb9f66bf 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java @@ -2,8 +2,8 @@ package com.iformall.enums; public enum EnumFinancePrintDataType { - FINANCE_BILL(1,"财务账单"), - FINANCE_RECEIVE(2,"财务收款单") + FINANCE_RECEIVE(1,"财务收付款数据"), + BILL(2,"账单数据") ; public static EnumFinancePrintDataType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java similarity index 98% rename from mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java rename to mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java index 9c722be01..3c99d2448 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java @@ -20,7 +20,7 @@ import com.iformall.print.entity.component.table.PrintBraidTableColumnsTrSet; import com.iformall.print.entity.component.txt.PrintBraidTxt; @Data -public class PrintDataHandler implements Serializable { +public class PrintComponentHandler implements Serializable { private static final long serialVersionUID = 1L; diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java new file mode 100644 index 000000000..b0af13722 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java @@ -0,0 +1,17 @@ +package com.iformall.print.data; + +import lombok.Data; +import java.io.Serializable; +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.WxAllBill; + +@Data +public class PrintBillDataHandler implements Serializable { + + private static final long serialVersionUID = 1L; + + public static JSONObject parse(String templateContent,WxAllBill re) { + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java new file mode 100644 index 000000000..bcfc7f7a7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java @@ -0,0 +1,33 @@ +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 com.iformall.domain.po.WxFinanceReceive; +import com.iformall.utils.DateUtils; +/** + * 财务数据解析 + * 跟 WxFinancePrintData 里面的字段对应 + * + * @author Administrator + * + */ +@Data +public class PrintFinanceReceiveDataHandler implements Serializable { + + private static final long serialVersionUID = 1L; + + public static JSONObject parse(String templateContent,WxFinanceReceive re) { + //把所有可能的组件里面需要的内容都解析出来 + if (StringUtils.isBlank(templateContent)) { + return null; + } + 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; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index c19766f10..ae9719da2 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -1,10 +1,9 @@ package com.iformall.service; import java.util.List; -import java.util.Map; - import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; +import com.iformall.domain.vo.PrintVo; /** */ public interface WxFinancePrintService { @@ -16,5 +15,5 @@ public interface WxFinancePrintService { void update(WxFinancePrintTemplate record); void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); - List parseTemplateData(String tenantId,Integer type,List dataIds); + List parseTemplateData(String tenantId,Long templateId,List dataIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index b579af684..392bf8e7d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -28,6 +28,7 @@ public interface WxFinanceService { //收付款 PageInfo receiveVoListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); + List findReceiveList(WxFinanceReceive record); List createReceive(WxFinanceReceive record,MallUserInfo user); List createPay(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); 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 6e39a50f0..2c38d949d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -11,17 +11,24 @@ import com.alibaba.fastjson.JSONObject; 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.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.PrintVo; import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxFinancePrintDataMapper; 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.WxFinancePrintService; import com.iformall.service.WxFinanceService; + +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -42,6 +49,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired WxFinanceService wxFinanceService; + @Lazy + @Autowired + WxAllBillService wxAllBillService; + @Override public List printDataList(WxFinancePrintData record) { return wxFinancePrintDataMapper.findList(record); @@ -128,14 +139,48 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } @Override - public List parseTemplateData(String tenantId, Integer type, List dataIds) { -// EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(type); -// //付款单 -// if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { -// TenantEntity tenantEntity = new TenantEntity(); -// tenantEntity.setTenantId(tenantId); -// WxFinanceReceive receive = wxFinanceService.getReceiveById(tenantEntity, id); -// } + public List parseTemplateData(String tenantId, Long templateId, List dataIds) { + WxFinancePrintTemplate template = this.getTemplateById(templateId); + if (null == template) { + return null; + } + EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(template.getType()); + //付款单 + if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { + WxFinanceReceive receiveq = new WxFinanceReceive(); + receiveq.setTenantId(tenantId); + receiveq.setIds(dataIds); + List receiveList = wxFinanceService.findReceiveList(receiveq); + if (null == receiveList || receiveList.size() <= 0 ) { + return null; + } + List voList = new ArrayList(); + for (int i = 0 ; i < receiveList.size(); i ++) { + WxFinanceReceive re = receiveList.get(i); + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); + vo.setTemplate(PrintFinanceReceiveDataHandler.parse(template.getContent(), re)); + voList.add(vo); + } + return voList; + }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.BILL.getCode()) { + WxAllBill bq = new WxAllBill(); + bq.setTenantId(tenantId); + bq.setIds(dataIds); + List billAllList = wxAllBillService.list(bq); + if (null == billAllList || billAllList.size() <= 0 ) { + return null; + } + List voList = new ArrayList(); + for (int i = 0 ; i < billAllList.size(); i ++) { + WxAllBill re = billAllList.get(i); + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); + vo.setTemplate(PrintBillDataHandler.parse(template.getContent(), re)); + voList.add(vo); + } + return voList; + } return null; } 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 446a4286c..91dc33b6c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -490,6 +490,12 @@ public class WxFinanceServiceImpl implements WxFinanceService { return pageVo; } + @Override + public List findReceiveList(WxFinanceReceive record) { + initQueryParam(record); + return wxFinanceReceiveMapper.findList(record); + } + private void sortBills(List billList) { Collections.sort(billList, new Comparator() { @Override