From 276db2b3109580974bf55d294f6080dff7665749 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 9 Aug 2024 20:04:12 +0800 Subject: [PATCH 01/11] fix --- .../controller/market/WxFinanceController.java | 8 ++++---- .../market/WxFinancePrintController.java | 6 +++--- .../domain/po/WxFinancePrintTemplate.java | 2 ++ .../data/PrintCustomedTableDataHandler.java | 15 ++++++++++++++- .../com/iformall/service/WxFinanceService.java | 4 ++-- .../service/impl/WxFinanceServiceImpl.java | 16 ++++++++++++---- 6 files changed, 37 insertions(+), 14 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 29ea3fb8a..21819fea8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -223,8 +223,8 @@ public class WxFinanceController extends BaseController { if (null == record.getBills() || null == record.getPayWays()) { return new ResultData(Result.ERROR,"请选择账单和支付方式"); } - List list = wxFinanceService.createReceive(record,this.getUser()); - return new ResultData(list); + Map map = wxFinanceService.createReceive(record,this.getUser()); + return new ResultData(map); } @ApiOperation("新增付款单") @@ -237,8 +237,8 @@ public class WxFinanceController extends BaseController { if (null == record.getBills() || null == record.getPayWays()) { return new ResultData(Result.ERROR,"请选择账单和支付方式"); } - List list = wxFinanceService.createPay(record,this.getUser()); - return new ResultData(list); + Map map = wxFinanceService.createPay(record,this.getUser()); + return new ResultData(map); } @GetMapping("receiveStatus") 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 50719e911..7da74d9cf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -133,11 +133,11 @@ public class WxFinancePrintController extends BaseController { @ApiOperation("预览") @PostMapping("viewTemplate") @TenantIgnore - public ResultData viewTemplate(@RequestBody String tenantId,Long templateId,List dataIds) { - if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == templateId) { + public ResultData viewTemplate(@RequestBody WxFinancePrintTemplate record) { + if (StringUtils.isBlank(record.getTenantId())||null == record.getDataIds() || record.getDataIds().size() <= 0 || null == record.getId()) { return new ResultData(Result.ERROR,"参数不对"); } - return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,templateId,dataIds,null)); + return new ResultData(wxFinancePrintService.parseTemplateData(record.getTenantId(),record.getId(),record.getDataIds(),null)); } @ApiOperation("") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java index a5ac59413..63ff9e873 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java @@ -57,5 +57,7 @@ public class WxFinancePrintTemplate extends TenantEntity { private JSONObject contentJsonUpdate; @TableField(exist = false) private List tempItems; + @TableField(exist = false) + List dataIds; } 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 8385dc4d1..b8fc87d89 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -53,7 +53,20 @@ public class PrintCustomedTableDataHandler{ sb.append(">"); //取什么属性 String fieldName = td.attr("fieldName"); - sb.append(o.get(fieldName)); + if (StringUtils.isNotBlank(fieldName)) { + if (fieldName.contains(",")) { + String sep = td.attr("sep"); + String[] fs = fieldName.split(","); + if (null != fs) { + for (int k = 0 ; k"); } sb.append(""); diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index 6237c6125..b7c372d12 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -30,8 +30,8 @@ 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); + Map createReceive(WxFinanceReceive record,MallUserInfo user); + Map createPay(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); void invalidReceive(WxFinanceReceive record,MallUserInfo user,String remark); void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); 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 59c93128d..d8e3d1ee9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -519,7 +519,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public List createReceive(WxFinanceReceive record,MallUserInfo user) { + public Map createReceive(WxFinanceReceive record,MallUserInfo user) { //冲抵信息根据页面返回的账单抵扣信息直接保存入库 //费用计算自动优先匹配时间最早的那个 @@ -591,7 +591,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { addreceive.setMerchantId(record.getMerchantId()); addreceive.setRemark(record.getRemark()); wxFinanceReceiveMapper.insert(addreceive); - return bills; + + Map retMap = new HashMap(); + retMap.put("addreceive", addreceive); + retMap.put("billlist", bills); + return retMap; } public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) { @@ -727,7 +731,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public List createPay(WxFinanceReceive record,MallUserInfo user) { + public Map createPay(WxFinanceReceive record,MallUserInfo user) { //费用计算自动优先匹配时间最早的那个 //单保存冲抵的时候,实收金额为0 BigDecimal payTotal = new BigDecimal(0); @@ -788,7 +792,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { addreceive.setMerchantId(record.getMerchantId()); addreceive.setRemark(record.getRemark()); wxFinanceReceiveMapper.insert(addreceive); - return bills; + + Map retMap = new HashMap(); + retMap.put("addreceive", addreceive); + retMap.put("billlist", bills); + return retMap; } public boolean createBillPay(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) { From b4806b8b67116dd6cda8763ee77d22dc4ef11d30 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 9 Aug 2024 21:26:10 +0800 Subject: [PATCH 02/11] fix --- .../controller/rent/WxAllBillController.java | 38 +++++++++++------- .../com/iformall/domain/po/WxAllBill.java | 2 +- .../com/iformall/domain/po/WxMerchant.java | 2 + .../domain/vo/PrintMerchantSettleVo.java | 18 --------- .../com/iformall/enums/EnumBillAllType.java | 5 +++ .../data/PrintCustomedTableDataHandler.java | 4 +- .../data/PrintMerchantSettleDataHandler.java | 2 - .../service/WxFinancePrintService.java | 2 +- .../service/impl/WxAllBillServiceImpl.java | 14 +++++++ .../impl/WxFinancePrintServiceImpl.java | 39 ++++++++++++------- 10 files changed, 73 insertions(+), 53 deletions(-) delete mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 7b3a2c6e4..bc3828d4c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -204,6 +204,15 @@ public class WxAllBillController extends BillBaseController { if (null == wxMerchant.getId()) { return new ResultData(Result.ERROR,"请选择商户"); } + WxMerchantBillVo vo = getMerchantBillVo(wxMerchant); + if (null == vo) { + return new ResultData(); + } + + return new ResultData(vo); + } + + private WxMerchantBillVo getMerchantBillVo( WxMerchant wxMerchant) { wxMerchant.updateTenantInfo(getTenantInfo()); Date starttime = wxMerchant.getStarttime(); Date enttime = wxMerchant.getEndtime(); @@ -211,7 +220,7 @@ public class WxAllBillController extends BillBaseController { wxMerchant.setEndtime(null); WxMerchant m = wxMerchantService.selectById(wxMerchant.getId()); if (null == m) { - return new ResultData(Result.ERROR,"商户未查询到"); + return null; } WxMerchantBillVo vo = new WxMerchantBillVo(); vo.setMerchantId(m.getId()); @@ -224,7 +233,7 @@ public class WxAllBillController extends BillBaseController { //根据科目来 List sumList = billAllHelper.getFeesBillSum(wxMerchant,starttime, enttime); if (null == sumList ) { - return new ResultData(); + return null; } WxEnergyFees fq = new WxEnergyFees(); @@ -249,8 +258,18 @@ public class WxAllBillController extends BillBaseController { vo.setPaid(paid.toPlainString()); vo.setOwe(owe.toPlainString()); vo.setBillSumList(sumList); - - return new ResultData(vo); + return vo; + } + + @ApiOperation("预览结算单") + @PostMapping("viewSettleTemplate") + @TenantIgnore + public ResultData viewSettleTemplate(@RequestBody WxMerchant merchant,Long templateId) { + if (null == merchant.getId() || null == merchant.getFeesIdList() || merchant.getFeesIdList().size() <= 0 ) { + return new ResultData(Result.ERROR,"清选择商户和科目"); + } + WxMerchantBillVo vo = getMerchantBillVo(merchant); + return new ResultData(wxFinancePrintService.parseTemplateData(merchant.getTenantId(),templateId,merchant.getFeesIdList(),vo)); } /** @@ -752,16 +771,5 @@ public class WxAllBillController extends BillBaseController { record.setIsPreview(EnumYesOrNo.NO.getCode()); return new ResultData(wxAllBillService.getBillMonthSum(record)); } - - @ApiOperation("预览结算单") - @PostMapping("viewSettleTemplate") - @TenantIgnore - public ResultData viewSettleTemplate(@RequestBody WxMerchant merchant,Long templateId) { - if (null == merchant.getId()) { - return new ResultData(Result.ERROR,"清选择商户"); - } - merchant.updateTenantInfo(getTenantInfo()); - return new ResultData(wxFinancePrintService.parseTemplateData(merchant.getTenantId(),templateId,null,merchant)); - } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java index 7915eccca..975073830 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -143,7 +143,7 @@ public class WxAllBill extends TenantEntity { returnPay = "0"; } if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) { - String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); return o; } return "0"; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index f9e1a2637..90895dd74 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -484,5 +484,7 @@ public class WxMerchant extends TenantEntity { public Integer toPayMerchant; @TableField(exist = false) public Integer isPreview; + @TableField(exist = false) + public List feesIdList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java deleted file mode 100644 index 77fea0df5..000000000 --- a/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.iformall.domain.vo; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -@Data -public class PrintMerchantSettleVo implements Serializable{ - - private static final long serialVersionUID = 1L; - - private Date startDate; - - private Date endDate; - - private Date ReceiveDate; -} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java index 83b282bef..4c2aeaceb 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java @@ -54,6 +54,11 @@ public enum EnumBillAllType { return isFixedPrice; } + public static EnumBillAllType[] getDepositTypes() { + EnumBillAllType[] ret = new EnumBillAllType[] {RENT_DEPOSIT,PROPERTY_DEPOSIT,OTHER_DEPOSIT}; + return ret; + } + public static EnumBillAllType[] getSystemTypes() { EnumBillAllType[] ret = new EnumBillAllType[] {RENT,RENT_BUSSINESS_MANAGE,RENT_OPERATION_MANAGE, PROPERTY,PROPERTY_DEPOSIT}; 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 b8fc87d89..89151dc13 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -36,7 +36,7 @@ public class PrintCustomedTableDataHandler{ } sb.append(">"); for (int j = 0 ; j < titleTds.size() ; j ++) { - Node td = titleTds.get(i); + Node td = titleTds.get(j); String tdclass = titleTr.attr("class"); String tdstyle = titleTr.attr("style"); String tdcolspan = titleTr.attr("colspan"); @@ -59,7 +59,7 @@ public class PrintCustomedTableDataHandler{ String[] fs = fieldName.split(","); if (null != fs) { for (int k = 0 ; k merchantMap,Map feesMap) { - PrintMerchantSettleVo receive = (PrintMerchantSettleVo) o; //根据科目来查询对应的信息 // if (name.equals("id")) { // return receive.getId(); diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index 2b8f69e7e..19e2eb1f7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -16,5 +16,5 @@ public interface WxFinancePrintService { void update(WxFinancePrintTemplate record); void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); - List parseTemplateData(String tenantId,Long templateId,List dataIds,BaseEntity entity); + List parseTemplateData(String tenantId,Long templateId,List dataIds,Object entity); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 0f0692cb5..33da1529b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -24,6 +24,7 @@ import com.iformall.domain.vo.WxBillHotNotify; import com.iformall.domain.vo.WxBillNotify; import com.iformall.domain.vo.WxBillSum; import com.iformall.enums.EnumBillAction; +import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillStatus; import com.iformall.enums.EnumRentShopType; import com.iformall.enums.EnumYesOrNo; @@ -386,6 +387,19 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill wxBillRent.updateTenantInfo(dto); wxBillRent.setUpdatetime(new Date()); wxBillRent.setReturnPay(oldpay.add(new BigDecimal(dto.getPayToMerchant())).toPlainString()); + //如果屎押金 + boolean isDeposit = false; + for (EnumBillAllType dep : EnumBillAllType.getDepositTypes()) { + if (dbBill.getBillType().intValue() == dep.getCode().intValue()) { + isDeposit = true; + break; + } + } + String owe = wxBillRent.getOwe(); +// if (isDeposit && ) { +// +// } + wxAllBillMapper.updateById(wxBillRent); this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); 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 1419ac556..181d5a095 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -20,8 +20,9 @@ import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxFinanceReceiveBill; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.BaseEntity; -import com.iformall.domain.vo.PrintMerchantSettleVo; import com.iformall.domain.vo.PrintVo; +import com.iformall.domain.vo.WxBillSum; +import com.iformall.domain.vo.WxMerchantBillVo; import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; @@ -39,6 +40,7 @@ import com.iformall.service.WxFinanceService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxShopService; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -182,7 +184,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Override - public List parseTemplateData(String tenantId, Long templateId, List dataIds,BaseEntity entity) { + public List parseTemplateData(String tenantId, Long templateId, List dataIds,Object entity) { WxFinancePrintTemplate template = this.getTemplateById(templateId); if (null == template) { return null; @@ -284,15 +286,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } return voList; }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.RENT_OWE.getCode()) { - WxMerchant bq = (WxMerchant) entity; - List merchantList = wxMerchantService.findList(bq); - if (null == merchantList || merchantList.size() <= 0 ) { - return null; - } - WxMerchant m = merchantList.get(0); + WxMerchantBillVo bq = (WxMerchantBillVo) entity; + //打哪些科目 + List feesId = dataIds; List voList = new ArrayList(); - //TODO 获取结算单信息 - PrintMerchantSettleVo sv = null; PrintVo vo = new PrintVo(); vo.setDataId(templateId); @@ -303,12 +300,26 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { //表格解析 + List sumlist = new ArrayList(); + BigDecimal receiveTotal = new BigDecimal(0); + BigDecimal payTotal = new BigDecimal(0); + BigDecimal setoffTotal = new BigDecimal(0); + BigDecimal returnTotal = new BigDecimal(0); + for (int k = 0 ; k< bq.getBillSumList().size() ; k++) { + WxBillSum billSum = bq.getBillSumList().get(k); + if (feesId.contains(billSum.getEnergyFeesId())) { + sumlist.add(billSum); + } + + } + + String componentContent = ov.getString("value"); - //if (null != billList) { - // printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); - //} +// if (null != billList) { +// printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); +// } }else { - ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); + //ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); } } From 44004eec3c447909b14719ff8288111b9de418e8 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 9 Aug 2024 23:10:54 +0800 Subject: [PATCH 03/11] fix --- .../com/iformall/domain/po/WxAllBill.java | 18 ++++++++- .../domain/po/WxFinancePrintData.java | 2 + .../com/iformall/domain/vo/WxBillSum.java | 19 ++++++++++ .../iformall/print/PrintComponentHandler.java | 2 + .../data/PrintCustomedTableDataHandler.java | 17 ++++++++- .../service/impl/WxAllBillServiceImpl.java | 18 +++++++-- .../impl/WxFinancePrintServiceImpl.java | 33 +++++++++++++---- .../main/resources/mapper/WxAllBillMapper.xml | 37 ++++++++++++++++--- .../mapper/WxFinancePrintDataMapper.xml | 3 +- 9 files changed, 127 insertions(+), 22 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java index 975073830..973588cb0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -142,8 +142,24 @@ public class WxAllBill extends TenantEntity { if (StringUtils.isBlank(returnPay)) { returnPay = "0"; } + //如果是押金,则不计算已退金额 + boolean isDeposit = false; + if (null != billType) { + for (EnumBillAllType types : EnumBillAllType.getDepositTypes()) { + if (types.getCode().intValue() == billType.intValue()) { + isDeposit = true; + break; + } + } + + } if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) { - String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + String o = "0"; + if (isDeposit) { + o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(setOff)).toPlainString(); + }else { + o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + } return o; } return "0"; 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 8bbaac082..f2fac51fc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java @@ -38,6 +38,8 @@ public class WxFinancePrintData extends BaseEntity { private String printDataJson; @io.swagger.annotations.ApiModelProperty(value="是否可编辑",name="isEdit") private Integer isEdit; + @io.swagger.annotations.ApiModelProperty(value="默认值",name="defaultValue") + private String defaultValue; @TableField(exist = false) private Object printComponents; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java index 6a1a9cdc8..cac9f93c5 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java @@ -8,6 +8,7 @@ import java.util.Date; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.annotation.TableField; +import com.iformall.utils.DateUtils; @Data public class WxBillSum implements Serializable { @@ -33,7 +34,23 @@ public class WxBillSum implements Serializable { private BigDecimal oweNumber; private Date minDate; + @TableField(exist = false) + private String minDateStr; + public String getMinDateStr() { + if (null != minDate) { + minDateStr = DateUtils.date2String(minDate,DateUtils.DATE_PATTERN); + } + return minDateStr; + } private Date maxDate; + @TableField(exist = false) + private String maxDateStr; + public String getMaxDateStr() { + if (null != maxDate) { + maxDateStr = DateUtils.date2String(maxDate,DateUtils.DATE_PATTERN); + } + return maxDateStr; + } //手续费 private String servicePay = "0"; @@ -146,5 +163,7 @@ public class WxBillSum implements Serializable { private String billName; @TableField(exist = false) private Integer billType; + @TableField(exist = false) + private String taxRate; } diff --git a/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java index decbb0ed3..25da36645 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java @@ -79,6 +79,7 @@ public class PrintComponentHandler implements Serializable { html.setTitle(data.getName()); html.setIsEdit(data.getIsEdit()); html.setValue(dataJson.getString("html")); + html.setDefaultValue(data.getDefaultValue()); return html; }else if ("braid-html-table".equals(data.getPrintDataType())) { PrintHtml html = new PrintHtml(); @@ -86,6 +87,7 @@ public class PrintComponentHandler implements Serializable { html.setIsEdit(data.getIsEdit()); html.setValue(dataJson.getString("html")); html.setIsFmCustomizedTable(EnumYesOrNo.YES.getCode()); + html.setDefaultValue(data.getDefaultValue()); return html; } return null; 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 89151dc13..aed8d05ec 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -1,5 +1,6 @@ package com.iformall.print.data; +import java.util.Iterator; import java.util.List; import org.jsoup.Jsoup; @@ -15,7 +16,19 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; public class PrintCustomedTableDataHandler{ - public String getTableContent(String componentContent,JSONArray datas){ + public String getTableContent(String componentContent,JSONArray datas,JSONObject entity){ + 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)); + } + } + componentContent = getTableListContent(componentContent,datas); + return componentContent; + } + + private String getTableListContent(String componentContent,JSONArray datas) { if (null == datas || datas.size() <= 0) { return componentContent; } @@ -71,7 +84,7 @@ public class PrintCustomedTableDataHandler{ } sb.append(""); } - return null; + return sb.toString(); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 33da1529b..5e660c336 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -395,10 +395,20 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill break; } } - String owe = wxBillRent.getOwe(); -// if (isDeposit && ) { -// -// } + if (isDeposit) { + String setoff = dbBill.getSetOff(); + if (StringUtils.isBlank(setoff)) { + setoff = "0"; + } + String pay = dbBill.getPay(); + if (StringUtils.isBlank(pay)) { + pay = "0"; + } + BigDecimal needReturn = new BigDecimal(pay).add(new BigDecimal(setoff)).subtract(new BigDecimal(wxBillRent.getReturnPay())); + if (needReturn.compareTo(new BigDecimal(0)) == 0) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + } wxAllBillMapper.updateById(wxBillRent); this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.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 181d5a095..8722e32a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -240,7 +240,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //表格解析 String componentContent = ov.getString("value"); if (null != billList) { - printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); + printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re))); } }else { ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); @@ -303,23 +303,40 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List sumlist = new ArrayList(); BigDecimal receiveTotal = new BigDecimal(0); BigDecimal payTotal = new BigDecimal(0); - BigDecimal setoffTotal = new BigDecimal(0); - BigDecimal returnTotal = 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 != billList) { -// printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); -// } + if (null != sumlist && sumlist.size() > 0 ) { + printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq))); + } }else { - //ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); + ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); } } diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index d76b5e514..581bd8c9e 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -73,18 +73,41 @@ and date_format(starttime,'%Y-%m') <= #{month} and date_format(endtime,'%Y-%m') >= #{month} - and (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') < 0 or status in (8,9)) + and ( + ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') < 0 and bill_type not in (13,21,5)) + or + ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') < 0 and bill_type in (13,21,5)) + or status in (8,9) + ) + + + and ( + (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) ) and `merchant_id` is not null and `parent_bill_id` is not null and `parent_bill_id` is null @@ -193,7 +216,9 @@ select bill_type, count(1) total_count , - sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) + CAST(IFNULL(`return_pay`,'0') AS DECIMAL(20,2))) total_money, + case when bill_type in (13,21,5) then sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) ) + else sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) + CAST(IFNULL(`return_pay`,'0') AS DECIMAL(20,2))) + end as total_money, MIN(starttime) min_begin_time from wx_all_bill group by bill_type diff --git a/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml b/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml index 91a6f7c14..ada8def8f 100644 --- a/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml @@ -11,10 +11,11 @@ + - `id`,`name`,`is_del`,`remark`,`type`,`sort`,`print_data_type`,`print_data_json`,`is_edit` + `id`,`name`,`is_del`,`remark`,`type`,`sort`,`print_data_type`,`print_data_json`,`is_edit`,`default_value` From 3f1e7229ef6c349acbf7025248ad67300ad37bf7 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 00:01:47 +0800 Subject: [PATCH 04/11] fix --- .../com/iformall/print/data/PrintCustomedTableDataHandler.java | 3 +-- 1 file changed, 1 insertion(+), 2 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 aed8d05ec..d0cb93a19 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -15,13 +15,12 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; @Service public class PrintCustomedTableDataHandler{ - public String getTableContent(String componentContent,JSONArray datas,JSONObject entity){ 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)); + componentContent = componentContent.replaceAll("\\{"+fieldName+"\\}", String.valueOf(o)); } } componentContent = getTableListContent(componentContent,datas); From e7596204639b880052315f419961e3671a89fbc0 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 00:11:45 +0800 Subject: [PATCH 05/11] fix --- .../service/impl/WxFinancePrintServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 8722e32a2..2581133ee 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -240,10 +240,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //表格解析 String componentContent = ov.getString("value"); if (null != billList) { - printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re))); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); } }else { - ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); } } } @@ -276,7 +276,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { // printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); //} }else { - ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); } } @@ -333,10 +333,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { String componentContent = ov.getString("value"); if (null != sumlist && sumlist.size() > 0 ) { - printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq))); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq)))); } }else { - ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); } } From 81bfae4ef9cc53a26186c5b9686aa21a4bfdba9f Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 00:27:13 +0800 Subject: [PATCH 06/11] fix --- .../print/data/PrintCustomedTableDataHandler.java | 3 ++- .../service/impl/WxFinancePrintServiceImpl.java | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 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 d0cb93a19..c7a0043b9 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -83,7 +83,8 @@ public class PrintCustomedTableDataHandler{ } sb.append(""); } - return sb.toString(); + titleTr.parent().appendText(sb.toString()); + return doc.html(); } } 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 2581133ee..b2e134cb8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -269,6 +269,12 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { JSONObject ov = items.getJSONObject(j); //是否是定制化的表格 Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); + + boolean isSetDefaultValue = false; + String componentType = ov.getString("type"); + if ("braid-html".equals(componentType)) { + isSetDefaultValue = true; + } if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { //表格解析 String componentContent = ov.getString("value"); @@ -276,7 +282,11 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { // printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); //} }else { - ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + if (isSetDefaultValue) { + ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + }else { + ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + } } } From 2be0b0c4406c9bac086a8419e3ef532f3d0ee77a Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 00:36:22 +0800 Subject: [PATCH 07/11] fix --- .../impl/WxFinancePrintServiceImpl.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) 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 b2e134cb8..525ba56d3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -182,6 +182,14 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { wxFinancePrintTemplateMapper.updateById(record); } + private boolean isSetDefaultValue(JSONObject component) { + boolean isSetDefaultValue = false; + String componentType = component.getString("type"); + if ("braid-html".equals(componentType)) { + isSetDefaultValue = true; + } + return isSetDefaultValue; + } @Override public List parseTemplateData(String tenantId, Long templateId, List dataIds,Object entity) { @@ -236,6 +244,8 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { 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"); @@ -243,7 +253,11 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); } }else { - ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + if (isSetDefaultValue) { + ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + }else { + ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + } } } } @@ -270,11 +284,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //是否是定制化的表格 Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); - boolean isSetDefaultValue = false; - String componentType = ov.getString("type"); - if ("braid-html".equals(componentType)) { - isSetDefaultValue = true; - } + boolean isSetDefaultValue = isSetDefaultValue(ov); if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { //表格解析 String componentContent = ov.getString("value"); @@ -283,9 +293,9 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //} }else { if (isSetDefaultValue) { - ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); }else { - ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); } } @@ -308,6 +318,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { 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(); @@ -346,7 +357,11 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq)))); } }else { - ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + if (isSetDefaultValue) { + ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + }else { + ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + } } } From 4392c50500241216824cc03ccc38721a2dd740fd Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 11:29:44 +0800 Subject: [PATCH 08/11] fix --- .../data/PrintCustomedTableDataHandler.java | 66 ++++++++++++++++--- 1 file changed, 57 insertions(+), 9 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 c7a0043b9..09ead6131 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -1,21 +1,32 @@ 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 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; @Service public class PrintCustomedTableDataHandler{ - public String getTableContent(String componentContent,JSONArray datas,JSONObject entity){ + public String getTableContent(String componentContent,JSONArray datas,JSONObject entity) { if (null != entity) { for (Iterator it = entity.keySet().iterator(); it.hasNext();) { String fieldName = it.next(); @@ -39,52 +50,89 @@ public class PrintCustomedTableDataHandler{ StringBuffer sb = new StringBuffer(); for (int i = 0 ; i < datas.size(); i ++) { JSONObject o = datas.getJSONObject(i); + Element tr = titleTr.parent().appendElement("tr"); sb.append(""); for (int j = 0 ; j < titleTds.size() ; j ++) { - Node td = titleTds.get(j); - String tdclass = titleTr.attr("class"); - String tdstyle = titleTr.attr("style"); - String tdcolspan = titleTr.attr("colspan"); + Node td = titleTds.get(j); + Element tre = tr.appendElement("td"); + String tdclass = td.attr("class"); + String tdstyle = td.attr("style"); + String tdcolspan = td.attr("colspan"); sb.append(""); //取什么属性 String fieldName = td.attr("fieldName"); if (StringUtils.isNotBlank(fieldName)) { + StringBuffer tdcontent = new StringBuffer(); if (fieldName.contains(",")) { String sep = td.attr("sep"); String[] fs = fieldName.split(","); if (null != fs) { for (int k = 0 ; k"); } sb.append(""); + } - titleTr.parent().appendText(sb.toString()); - return doc.html(); + return doc.head().html() + doc.body().html(); + } + + public static void main(String[] args) { + PrintCustomedTableDataHandler p = new PrintCustomedTableDataHandler(); + String s = "
房间名称费用科目费用区间应收金额冲抵金额优惠金额实收金额
"; + 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); } } From a339ba0ecb8a7ff8a7211ee848eb23e9c94d7fee Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 11:34:07 +0800 Subject: [PATCH 09/11] fix --- .../iformall/service/impl/WxFinancePrintServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 525ba56d3..f07aadb8f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -250,13 +250,13 @@ 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("value",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); } }else { if (isSetDefaultValue) { - ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); }else { - ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); } } } From f0bd1e87da680d1c807a150670dc3cb78e48d02c Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 11:37:55 +0800 Subject: [PATCH 10/11] fix --- .../iformall/service/impl/WxFinancePrintServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 f07aadb8f..a7f7efba9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -250,11 +250,11 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //表格解析 String componentContent = ov.getString("value"); if (null != billList) { - ov.put("value",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); + ov.put("defaultValue",printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re)))); } }else { if (isSetDefaultValue) { - ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); + ov.put("defaultValue", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); }else { ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); } @@ -295,7 +295,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { if (isSetDefaultValue) { ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); }else { - ov.put("defaultValue", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + ov.put("value", printBillDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); } } @@ -360,7 +360,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { if (isSetDefaultValue) { ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); }else { - ov.put("defaultValue", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); + ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); } } From dbdeabef97cdecc081b388b48fecbe512a8ed2d7 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 10 Aug 2024 11:48:16 +0800 Subject: [PATCH 11/11] fix --- .../com/iformall/service/impl/WxFinancePrintServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 a7f7efba9..44d58b902 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -355,6 +355,7 @@ 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("value", null); } }else { if (isSetDefaultValue) {