| @@ -121,13 +121,22 @@ public class WxFinancePrintController extends BaseController { | |||||
| } | } | ||||
| @ApiOperation("预览") | @ApiOperation("预览") | ||||
| @GetMapping("getTemplateData") | |||||
| @PostMapping("viewTemplate") | |||||
| @TenantIgnore | @TenantIgnore | ||||
| public ResultData viewTemplate(@RequestBody String tenantId,Integer type,List<Long> dataIds) { | |||||
| if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == type) { | |||||
| public ResultData viewTemplate(@RequestBody String tenantId,Long templateId,List<Long> dataIds) { | |||||
| if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == templateId) { | |||||
| return new ResultData(Result.ERROR,"参数不对"); | 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); | |||||
| } | } | ||||
| } | } | ||||
| @@ -779,7 +779,7 @@ CREATE TABLE `wx_finance_print_data` ( | |||||
| `type` int(1) NOT NULL COMMENT '类型', | `type` int(1) NOT NULL COMMENT '类型', | ||||
| `sort` int(1) NOT NULL DEFAULT '0' COMMENT '排序', | `sort` int(1) NOT NULL DEFAULT '0' COMMENT '排序', | ||||
| `print_data_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL 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 '是否可编辑', | `is_edit` int(1) NOT NULL DEFAULT '0' COMMENT '是否可编辑', | ||||
| PRIMARY KEY (`id`) | PRIMARY KEY (`id`) | ||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='租赁合同'; | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='租赁合同'; | ||||
| @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.baomidou.mybatisplus.annotation.TableId; | import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.iformall.domain.po.base.BaseEntity; | import com.iformall.domain.po.base.BaseEntity; | ||||
| import com.iformall.print.PrintDataHandler; | |||||
| import com.iformall.print.PrintComponentHandler; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| @@ -42,7 +42,7 @@ public class WxFinancePrintData extends BaseEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Object printComponents; | private Object printComponents; | ||||
| public Object getPrintComponents() { | public Object getPrintComponents() { | ||||
| printComponents = PrintDataHandler.parseComponent(this); | |||||
| printComponents = PrintComponentHandler.parseComponent(this); | |||||
| return printComponents; | return printComponents; | ||||
| } | } | ||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| @@ -2,8 +2,8 @@ package com.iformall.enums; | |||||
| public enum EnumFinancePrintDataType { | public enum EnumFinancePrintDataType { | ||||
| FINANCE_BILL(1,"财务账单"), | |||||
| FINANCE_RECEIVE(2,"财务收款单") | |||||
| FINANCE_RECEIVE(1,"财务收付款数据"), | |||||
| BILL(2,"账单数据") | |||||
| ; | ; | ||||
| public static EnumFinancePrintDataType getEnum(Integer code) { | public static EnumFinancePrintDataType getEnum(Integer code) { | ||||
| @@ -20,7 +20,7 @@ import com.iformall.print.entity.component.table.PrintBraidTableColumnsTrSet; | |||||
| import com.iformall.print.entity.component.txt.PrintBraidTxt; | import com.iformall.print.entity.component.txt.PrintBraidTxt; | ||||
| @Data | @Data | ||||
| public class PrintDataHandler implements Serializable { | |||||
| public class PrintComponentHandler implements Serializable { | |||||
| private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
| @@ -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; | |||||
| } | |||||
| } | |||||
| @@ -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; | |||||
| } | |||||
| } | |||||
| @@ -1,10 +1,9 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | |||||
| import com.iformall.domain.po.WxFinancePrintData; | import com.iformall.domain.po.WxFinancePrintData; | ||||
| import com.iformall.domain.po.WxFinancePrintTemplate; | import com.iformall.domain.po.WxFinancePrintTemplate; | ||||
| import com.iformall.domain.vo.PrintVo; | |||||
| /** | /** | ||||
| */ | */ | ||||
| public interface WxFinancePrintService { | public interface WxFinancePrintService { | ||||
| @@ -16,5 +15,5 @@ public interface WxFinancePrintService { | |||||
| void update(WxFinancePrintTemplate record); | void update(WxFinancePrintTemplate record); | ||||
| void copy(WxFinancePrintTemplate record); | void copy(WxFinancePrintTemplate record); | ||||
| void setTemplatesDel(WxFinancePrintTemplate record); | void setTemplatesDel(WxFinancePrintTemplate record); | ||||
| List<Map> parseTemplateData(String tenantId,Integer type,List<Long> dataIds); | |||||
| List<PrintVo> parseTemplateData(String tenantId,Long templateId,List<Long> dataIds); | |||||
| } | } | ||||
| @@ -28,6 +28,7 @@ public interface WxFinanceService { | |||||
| //收付款 | //收付款 | ||||
| PageInfo<WxFinanceReceiveVo> receiveVoListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); | PageInfo<WxFinanceReceiveVo> receiveVoListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); | ||||
| List<WxFinanceReceive> findReceiveList(WxFinanceReceive record); | |||||
| List<WxAllBill> createReceive(WxFinanceReceive record,MallUserInfo user); | List<WxAllBill> createReceive(WxFinanceReceive record,MallUserInfo user); | ||||
| List<WxAllBill> createPay(WxFinanceReceive record,MallUserInfo user); | List<WxAllBill> createPay(WxFinanceReceive record,MallUserInfo user); | ||||
| WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); | WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); | ||||
| @@ -11,17 +11,24 @@ import com.alibaba.fastjson.JSONObject; | |||||
| import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | ||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxAllBill; | |||||
| import com.iformall.domain.po.WxFinancePrintData; | import com.iformall.domain.po.WxFinancePrintData; | ||||
| import com.iformall.domain.po.WxFinancePrintTemplate; | import com.iformall.domain.po.WxFinancePrintTemplate; | ||||
| import com.iformall.domain.po.WxFinanceReceive; | import com.iformall.domain.po.WxFinanceReceive; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.PrintVo; | |||||
| import com.iformall.enums.EnumFinancePrintDataType; | import com.iformall.enums.EnumFinancePrintDataType; | ||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.mapper.WxFinancePrintDataMapper; | import com.iformall.mapper.WxFinancePrintDataMapper; | ||||
| import com.iformall.mapper.WxFinancePrintTemplateMapper; | 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.WxFinancePrintService; | ||||
| import com.iformall.service.WxFinanceService; | import com.iformall.service.WxFinanceService; | ||||
| import java.util.ArrayList; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -42,6 +49,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { | |||||
| @Autowired | @Autowired | ||||
| WxFinanceService wxFinanceService; | WxFinanceService wxFinanceService; | ||||
| @Lazy | |||||
| @Autowired | |||||
| WxAllBillService wxAllBillService; | |||||
| @Override | @Override | ||||
| public List<WxFinancePrintData> printDataList(WxFinancePrintData record) { | public List<WxFinancePrintData> printDataList(WxFinancePrintData record) { | ||||
| return wxFinancePrintDataMapper.findList(record); | return wxFinancePrintDataMapper.findList(record); | ||||
| @@ -128,14 +139,48 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public List<Map> parseTemplateData(String tenantId, Integer type, List<Long> 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<PrintVo> parseTemplateData(String tenantId, Long templateId, List<Long> 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<WxFinanceReceive> receiveList = wxFinanceService.findReceiveList(receiveq); | |||||
| if (null == receiveList || receiveList.size() <= 0 ) { | |||||
| return null; | |||||
| } | |||||
| List<PrintVo> voList = new ArrayList<PrintVo>(); | |||||
| 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<WxAllBill> billAllList = wxAllBillService.list(bq); | |||||
| if (null == billAllList || billAllList.size() <= 0 ) { | |||||
| return null; | |||||
| } | |||||
| List<PrintVo> voList = new ArrayList<PrintVo>(); | |||||
| 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; | return null; | ||||
| } | } | ||||
| @@ -490,6 +490,12 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| return pageVo; | return pageVo; | ||||
| } | } | ||||
| @Override | |||||
| public List<WxFinanceReceive> findReceiveList(WxFinanceReceive record) { | |||||
| initQueryParam(record); | |||||
| return wxFinanceReceiveMapper.findList(record); | |||||
| } | |||||
| private void sortBills(List<WxAllBill> billList) { | private void sortBills(List<WxAllBill> billList) { | ||||
| Collections.sort(billList, new Comparator<WxAllBill>() { | Collections.sort(billList, new Comparator<WxAllBill>() { | ||||
| @Override | @Override | ||||