From deed1f7f022f17946cbe5177720962fedfca4674 Mon Sep 17 00:00:00 2001 From: luozukai Date: Sat, 31 Aug 2019 18:59:48 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B4=A6=E5=8D=95=E7=BB=93=E7=AE=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rent/WxBillSettleController.java | 6 ++ .../migration/V201908311635__L_CONTRACT.sql | 3 + .../com/iformall/domain/po/WxBillDeposit.java | 4 +- .../com/iformall/domain/po/WxBillSettle.java | 10 ++- .../domain/po/WxBillSettleRecord.java | 2 + .../iformall/domain/po/WxMerchantSubsidy.java | 3 + .../iformall/service/WxBillSettleService.java | 2 + .../impl/WxBillSettleRecordServiceImpl.java | 12 +++- .../service/impl/WxBillSettleServiceImpl.java | 64 +++++++++++++++---- .../main/resources/mapper/WxBillAllMapper.xml | 12 ++-- .../mapper/WxBillSettleBillMapper.xml | 1 + .../mapper/WxBillSettleRecordMapper.xml | 5 +- .../mapper/WxMerchantSubsidyMapper.xml | 4 +- 13 files changed, 102 insertions(+), 26 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V201908311635__L_CONTRACT.sql diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java index 5eae2cb64..fcad811c4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java @@ -84,4 +84,10 @@ public class WxBillSettleController extends BaseController { wxBillSettleService.exportBill(request, response, wxBillSettle); } + @GetMapping("downloadSettle") + @SystemControllerLog(description = "账单管理-结算单-下载") + public void downloadSettle(@ModelAttribute WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { + wxBillSettle.setTenantId(getTenantId()); + wxBillSettleService.exportBill(request, response, wxBillSettle); + } } diff --git a/mallinkAdmin/src/main/resources/db/migration/V201908311635__L_CONTRACT.sql b/mallinkAdmin/src/main/resources/db/migration/V201908311635__L_CONTRACT.sql new file mode 100644 index 000000000..37d339f81 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201908311635__L_CONTRACT.sql @@ -0,0 +1,3 @@ +alter table wx_merchant_subsidy +add column `freeze` SMALLINT (1) NULL DEFAULT 0 COMMENT '0正常1冻结'; + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDeposit.java index 3d23f2c13..f38fb317d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDeposit.java @@ -77,5 +77,7 @@ public class WxBillDeposit extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "支付方式:见枚举EnumBillPayWay", name = "payWay") private Integer payWay; - + + @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") + private Integer freeze; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index b0c139232..b0769f873 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,6 +29,7 @@ public class WxBillSettle extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") private String tenantId; @io.swagger.annotations.ApiModelProperty(value="结算单号",name="settleNumber") + @Excel(name="结算单号",width = 20,orderNum = "1") private String settleNumber; @io.swagger.annotations.ApiModelProperty(value="商户id",name="merchantId") private Long merchantId; @@ -51,11 +53,17 @@ public class WxBillSettle extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "审批流参数", name = "flowParams") private Map flowParams; + //结余金额 + @Transient + private Long balance; + @Transient @io.swagger.annotations.ApiModelProperty(value = "收款账单列表", name = "receiveBillIds") private List receiveBillIds; @Transient @io.swagger.annotations.ApiModelProperty(value = "承付账单列表", name = "payBillIds") private List payBillIds; - + @Transient + @io.swagger.annotations.ApiModelProperty(value = "结单记录", name = "settleRecordList") + private List settleRecordList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettleRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettleRecord.java index bde9b8bda..96fbc27fd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettleRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettleRecord.java @@ -42,6 +42,8 @@ public class WxBillSettleRecord extends BaseEntity { private Long balance; @io.swagger.annotations.ApiModelProperty(value="明细",name="detail") private String detail; + @io.swagger.annotations.ApiModelProperty(value="描述",name="desc") + private String desc; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java index 85768de67..cf013d4fd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java @@ -105,6 +105,9 @@ public class WxMerchantSubsidy extends BaseEntity { @Transient protected String statusStr; + @io.swagger.annotations.ApiModelProperty(value="是否冻结",name="freeze") + private Integer freeze; + public String getOrderPaymentStr() { if(getOrderPayment()!=null) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java index a2eb19513..47baccd4b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java @@ -40,5 +40,7 @@ public interface WxBillSettleService { void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle); + void downloadBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle); + void updateFreeze(List billList, int status); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java index 96a3edd20..176d522e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java @@ -1,6 +1,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillSettleRecord; @@ -26,8 +27,13 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService @Override public ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo) { - - - return null; + final IdWorker idWorker = IdWorker.get(); + if (record.getId() == null) { + record.setId(idWorker.nextId()); + wxBillSettleRecordMapper.insertSelective(record); + }else{ + wxBillSettleRecordMapper.updateByPrimaryKeySelective(record); + } + return new ResultData(); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index 1c9f1096a..ae71d0c14 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.enums.EnumBillType; import com.iformall.enums.EnumFreezeType; import com.iformall.enums.EnumSettleBillType; import com.iformall.mapper.*; +import com.iformall.service.ExcelService; import com.iformall.service.WxBillSettleService; import com.iformall.service.WxFlowService; import org.checkerframework.checker.units.qual.A; @@ -46,6 +47,12 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { private WxBillPropertyDepositMapper wxBillPropertyDepositMapper; @Autowired private WxBillOtherDepositMapper wxBillOtherDepositMapper; + @Autowired + private WxBillSettleRecordMapper wxBillSettleRecordMapper; + @Autowired + private WxMerchantSubsidyMapper wxMerchantSubsidyMapper; + @Autowired + private ExcelService excelService; @Override public PageInfo listAsPage(WxBillSettle record, Integer pageIndex, Integer pageSize) { @@ -65,6 +72,15 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { wxBillSettleBill.setType(EnumSettleBillType.P.getCode()); billSettle.setPayBillIds(wxBillSettleBillMapper.findBySettleId(wxBillSettleBill)); + + WxBillSettleRecord wxBillSettleRecord = new WxBillSettleRecord(); + wxBillSettleRecord.setTenantId(billSettle.getTenantId()); + wxBillSettleRecord.setSettleId(billSettle.getId()); + billSettle.setSettleRecordList(wxBillSettleRecordMapper.findList(wxBillSettleRecord)); + + //计算结余金额 + //todo: + } return billSettle; @@ -76,38 +92,48 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(EnumBillType.RENT.getCode().equals(bill.getBillType())) { WxBillRent wxBillRent = new WxBillRent(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); }else if(EnumBillType.DEPOSIT.getCode().equals(bill.getBillType())) { WxBillDeposit wxBillRent = new WxBillDeposit(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); wxBillDepositMapper.updateByPrimaryKeySelective(wxBillRent); }else if(EnumBillType.PROPERTY.getCode().equals(bill.getBillType())) { WxBillProperty wxBillRent = new WxBillProperty(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillRent); WxBillPropertyDeposit propertyDeposit = new WxBillPropertyDeposit(); propertyDeposit.setId(bill.getBillId()); - propertyDeposit.setStatus(status); + propertyDeposit.setFreeze(status); wxBillPropertyDepositMapper.updateByPrimaryKeySelective(propertyDeposit); }else if(EnumBillType.ROUTINE.getCode().equals(bill.getBillType())) { WxBillOther wxBillRent = new WxBillOther(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); wxBillOtherMapper.updateByPrimaryKeySelective(wxBillRent); }else if(EnumBillType.OTHER_DEPOSIT.getCode().equals(bill.getBillType())) { WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); + wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillRent); + }else if(EnumBillType.OTHER_DEPOSIT.getCode().equals(bill.getBillType())) { + WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); + wxBillRent.setId(bill.getBillId()); + wxBillRent.setFreeze(status); wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillRent); }else{ WxBillDaily wxBillRent = new WxBillDaily(); wxBillRent.setId(bill.getBillId()); - wxBillRent.setStatus(status); + wxBillRent.setFreeze(status); wxBillDailyMapper.updateByPrimaryKeySelective(wxBillRent); + + WxMerchantSubsidy wxMerchantSubsidy = new WxMerchantSubsidy(); + wxMerchantSubsidy.setId(bill.getBillId()); + wxMerchantSubsidy.setFreeze(status); + wxMerchantSubsidyMapper.updateByPrimaryKeySelective(wxMerchantSubsidy); } } } @@ -129,6 +155,14 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { bill.setId(idWorker.nextId()); bill.setSettleId(record.getId()); bill.setTenantId(record.getTenantId()); + bill.setType(EnumSettleBillType.R.getCode()); + wxBillSettleBillMapper.insertSelective(bill); + } + for (WxBillSettleBill bill:record.getPayBillIds()) { + bill.setId(idWorker.nextId()); + bill.setSettleId(record.getId()); + bill.setTenantId(record.getTenantId()); + bill.setType(EnumSettleBillType.P.getCode()); wxBillSettleBillMapper.insertSelective(bill); } @@ -136,18 +170,24 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { updateFreeze(record.getReceiveBillIds(), EnumFreezeType.YES.getCode()); updateFreeze(record.getPayBillIds(),EnumFreezeType.YES.getCode()); - } - //启动审批流 - record.getFlowParams().put("businessId",record.getId()); - if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { - wxFlowService.start(record.getFlowParams(), userInfo.getId(), userInfo.getName(), record.getTenantId()); + //启动审批流 + record.getFlowParams().put("businessId",record.getId()); + if (record.getFlowParams() != null && record.getFlowParams().size() > 0) { + wxFlowService.start(record.getFlowParams(), userInfo.getId(), userInfo.getName(), record.getTenantId()); + } } return new ResultData(); } @Override public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle) { + List list = wxBillSettleMapper.findList(wxBillSettle); + excelService.exportExcel(list, null, "补贴记录", WxBillSettle.class, "补贴记录.xlsx", response, false); + } + + @Override + public void downloadBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle) { } } diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index ff9a08acd..424f1359b 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -679,11 +679,11 @@ left join wx_c_user cu on cu.id = cs.owner_id where ms.order_type in(3,0) and ms.status = 0 union all - select merchant_id id,receive_pay money from wx_bill_rent_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_rent_deposit where status = 3 union all - select merchant_id id,receive_pay money from wx_bill_property_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_property_deposit where status = 3 union all - select merchant_id id,receive_pay money from wx_bill_other_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_other_deposit where status = 3 )ss where ss.id = m.id )/100,2) payOut, @@ -715,11 +715,11 @@ left join wx_c_user cu on cu.id = cs.owner_id where ms.order_type in(3,0) and ms.status = 0 union all - select merchant_id id,receive_pay money from wx_bill_rent_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_rent_deposit where status = 3 union all - select merchant_id id,receive_pay money from wx_bill_property_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_property_deposit where status = 3 union all - select merchant_id id,receive_pay money from wx_bill_other_deposit where status = 3 + select receive_pay money,merchant_id id from wx_bill_other_deposit where status = 3 )ss where ss.id = m.id )/100,2)) balance diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml index 2e38f0b47..6ddccd819 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml @@ -79,6 +79,7 @@ need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,rent_shop_type from wx_bill_other_deposit ) bill on(bl.bill_id = bill.id) + where 1=1 and bl.`tenant_id` = #{tenantId} and bl.`settle_id` = #{settleId} and bl.`type` = #{type} diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml index 57f829dac..7356c8181 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml @@ -12,7 +12,7 @@ - + @@ -20,13 +20,14 @@ `id`,`tenant_id`,`settle_id`,`userid`,`user_name`,`settle_money`, - `settle_time`,`settle_way`,`balance`,detail,`createtime`,`updatetime` + `settle_time`,`settle_way`,`balance`,detail,`createtime`,`updatetime`,`desc` where 1=1 and `id` = #{id} and `tenant_id` = #{tenantId} + and `settle_id` = #{settleId} and id in diff --git a/mallinkService/src/main/resources/mapper/WxMerchantSubsidyMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantSubsidyMapper.xml index 0ebfeb34e..cf03760ab 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantSubsidyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantSubsidyMapper.xml @@ -16,10 +16,12 @@ + + - `id`,`order_id`,`order_type`,`merchant_id`,`coupon_order_id`,`coupon_type`,`order_payment`,`receiver_payment`,`real_payment`,`subsidy`,`real_subsidy`,`status`,`create_date`,`update_date` + `id`,`order_id`,`order_type`,`merchant_id`,`coupon_order_id`,`coupon_type`,`order_payment`,`receiver_payment`,`real_payment`,`subsidy`,`real_subsidy`,`status`,`create_date`,`update_date`,freeze From 4f70cd391d6757db86b45551860d5e69e679956e Mon Sep 17 00:00:00 2001 From: luozukai Date: Sun, 1 Sep 2019 14:04:25 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B4=A6=E5=8D=95=E7=BB=93=E7=AE=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxBillSettle.java | 11 +++ .../mapper/WxBillSettleRecordMapper.java | 1 + .../service/impl/WxBillSettleServiceImpl.java | 10 +- .../impl/WxRentContractServiceImpl.java | 4 +- .../resources/mapper/WxBillSettleMapper.xml | 96 ++++++++++++++++--- .../mapper/WxBillSettleRecordMapper.xml | 4 + 6 files changed, 107 insertions(+), 19 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index b0769f873..029243497 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -31,19 +31,28 @@ public class WxBillSettle extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="结算单号",name="settleNumber") @Excel(name="结算单号",width = 20,orderNum = "1") private String settleNumber; + @Transient + @Excel(name="结算商户",width = 20,orderNum = "2") + private String merchantName; @io.swagger.annotations.ApiModelProperty(value="商户id",name="merchantId") private Long merchantId; @io.swagger.annotations.ApiModelProperty(value="0待确认1未清算结余金额2结算完成",name="status") + @Excel(name="结算状态",width = 20,orderNum = "8") private Integer status; @io.swagger.annotations.ApiModelProperty(value="审核状态0未审核1审核中2审核完成3驳回4异常终止5撤回",name="applyStatus") + @Excel(name="审批状态",width = 20,orderNum = "9") private Integer applyStatus; + @Excel(name="收款(元)",width = 20,orderNum = "4") @io.swagger.annotations.ApiModelProperty(value="收款",name="receiveMoney") private Long receiveMoney; @io.swagger.annotations.ApiModelProperty(value="承付",name="payMoney") + @Excel(name="承付(元)",width = 20,orderNum = "5") private Long payMoney; @io.swagger.annotations.ApiModelProperty(value="结算时间",name="settletime") + @Excel(name="结算时间",width = 20,orderNum = "7") private Date settletime; + @Excel(name="创建时间",width = 20,orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") @@ -55,6 +64,7 @@ public class WxBillSettle extends BaseEntity { //结余金额 @Transient + @Excel(name="结算金额(元)",width = 20,orderNum = "6") private Long balance; @Transient @@ -66,4 +76,5 @@ public class WxBillSettle extends BaseEntity { @Transient @io.swagger.annotations.ApiModelProperty(value = "结单记录", name = "settleRecordList") private List settleRecordList; + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleRecordMapper.java index a602d439a..af9ed274b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleRecordMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillSettleRecordMapper.java @@ -15,5 +15,6 @@ public interface WxBillSettleRecordMapper extends CommonMapper listAsPage(WxBillSettle record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillSettleMapper.findList(record)); + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillSettleMapper.findList(record)); + pageInfo.getList().stream().forEach(e->{ + e.setBalance(e.getReceiveMoney() - e.getPayMoney()); + }); + return pageInfo; } @Override @@ -79,8 +83,8 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { billSettle.setSettleRecordList(wxBillSettleRecordMapper.findList(wxBillSettleRecord)); //计算结余金额 - //todo: - + Long sumSettleMoney = wxBillSettleRecordMapper.getSumMoneyBySettleId(billSettle); + billSettle.setBalance(billSettle.getReceiveMoney() - (billSettle.getPayMoney()+sumSettleMoney)); } return billSettle; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 137a7a8e6..48a71feae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -373,7 +373,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } } - ratioVo.setUseRatio(ratioVo.getUseRatio().substring(0,ratioVo.getUseRatio().lastIndexOf(","))+"]"); + if(!"[".equals(ratioVo.getUseRatio())) { + ratioVo.setUseRatio(ratioVo.getUseRatio().substring(0, ratioVo.getUseRatio().lastIndexOf(",")) + "]"); + } return ratioVo; } diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml index a4a9fb450..d33905470 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml @@ -8,12 +8,12 @@ - - + + - + @@ -24,22 +24,88 @@ where 1=1 - and `id` = #{id} - and `tenant_id` = #{tenantId} - - - and id in - - #{idItem} - - + and s.`id` = #{id} + and s.`tenant_id` = #{tenantId} + order by ${sortColumns} diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml index 7356c8181..55436f141 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleRecordMapper.xml @@ -45,6 +45,10 @@ + + From e3953e776154a8459b8e7b6058d0216e110feb8c Mon Sep 17 00:00:00 2001 From: luozukai Date: Mon, 2 Sep 2019 10:12:31 +0800 Subject: [PATCH 3/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B4=A6=E5=8D=95=E7=BB=93=E7=AE=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/domain/po/WxBillSettle.java | 6 ++++++ .../java/com/iformall/service/WxBillSettleService.java | 1 - .../src/main/resources/mapper/WxBillSettleMapper.xml | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index 029243497..8ce1db80a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -77,4 +77,10 @@ public class WxBillSettle extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "结单记录", name = "settleRecordList") private List settleRecordList; + @Transient + @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") + private Date starttime; + @Transient + @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") + private Date endtime; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java index 47baccd4b..bdfcfb01d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillSettleService.java @@ -14,7 +14,6 @@ import java.util.List; * @author luozukai */ public interface WxBillSettleService { - /** * 根据实体查询分页列表 * diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml index d33905470..859cc693e 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml @@ -26,6 +26,16 @@ where 1=1 and s.`id` = #{id} and s.`tenant_id` = #{tenantId} + and m.name like concat('%', #{merchantName},'%') + + and day_date >= #{startTime} + + + and day_date <= #{endTime} + + and s.`settle_number` = #{settleNumber} + and s.`status` = #{status} + and s.`apply_status` = #{applyStatus} order by ${sortColumns} From 2f51e3a238163109d867dc6b5bbef0c861c201f4 Mon Sep 17 00:00:00 2001 From: luozukai Date: Mon, 2 Sep 2019 11:10:58 +0800 Subject: [PATCH 4/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B4=A6=E5=8D=95=E7=BB=93=E7=AE=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxBillSettle.java | 4 +- .../iformall/domain/vo/WxBillSettleVo.java | 44 +++++++++++++++++++ .../com/iformall/enums/EnumSettleStatus.java | 37 ++++++++++++++++ .../service/impl/WxBillSettleServiceImpl.java | 26 ++++++++--- .../java/com/iformall/utils/DateUtils.java | 5 +++ .../resources/mapper/WxBillSettleMapper.xml | 6 +-- 6 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WxBillSettleVo.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumSettleStatus.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index 8ce1db80a..5c40af608 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -79,8 +79,8 @@ public class WxBillSettle extends BaseEntity { @Transient @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") - private Date starttime; + private Date startTime; @Transient @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") - private Date endtime; + private Date endTime; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSettleVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSettleVo.java new file mode 100644 index 000000000..fe55ed2c8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSettleVo.java @@ -0,0 +1,44 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author luozukai + */ +@Data +@ToString(callSuper = true) +public class WxBillSettleVo { + + @Excel(name="结算单号",width = 20,orderNum = "1") + private String settleNumber; + + @Excel(name="结算商户",width = 20,orderNum = "2") + private String merchantName; + + @Excel(name="创建时间",width = 20,orderNum = "3") + private String createtime; + + @Excel(name="收款(元)",width = 20,orderNum = "4") + private String receiveMoney; + + @Excel(name="承付(元)",width = 20,orderNum = "5") + private String payMoney; + + @Excel(name="结算金额(元)",width = 20,orderNum = "6") + private String balance; + + @Excel(name="结算时间",width = 20,orderNum = "7") + private String settletime; + + @Excel(name="结算状态",width = 20,orderNum = "8") + private String status; + + @Excel(name="审批状态",width = 20,orderNum = "9") + private String applyStatus; + + + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSettleStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumSettleStatus.java new file mode 100644 index 000000000..7580b04ec --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSettleStatus.java @@ -0,0 +1,37 @@ +package com.iformall.enums; + +/** + * luozukai + */ +public enum EnumSettleStatus { + //0待确认1未清算结余金额2结算完成 + DEF(0, "待确认"), + NOT_FINISH(1, "未清算结余金额"), + FINISH(2, "结算完成"), + ; + + public static EnumSettleStatus getEnum(Integer code) { + for (EnumSettleStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumSettleStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index 5045feb97..8d9b14d85 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -5,20 +5,21 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; -import com.iformall.enums.EnumBillRentStatus; -import com.iformall.enums.EnumBillType; -import com.iformall.enums.EnumFreezeType; -import com.iformall.enums.EnumSettleBillType; +import com.iformall.domain.vo.WxBillSettleVo; +import com.iformall.enums.*; import com.iformall.mapper.*; import com.iformall.service.ExcelService; import com.iformall.service.WxBillSettleService; import com.iformall.service.WxFlowService; +import com.iformall.utils.DateUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; /** @@ -187,7 +188,22 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { @Override public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillSettle wxBillSettle) { List list = wxBillSettleMapper.findList(wxBillSettle); - excelService.exportExcel(list, null, "补贴记录", WxBillSettle.class, "补贴记录.xlsx", response, false); + List voList = new ArrayList<>(); + + for (WxBillSettle s:list) { + WxBillSettleVo vo = new WxBillSettleVo(); + vo.setSettleNumber(s.getSettleNumber()); + vo.setMerchantName(s.getMerchantName()); + vo.setCreatetime(DateUtils.formatDateTime(s.getCreatetime())); + vo.setReceiveMoney(new BigDecimal(s.getReceiveMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).toString()); + vo.setPayMoney(new BigDecimal(s.getPayMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).toString()); + vo.setBalance(new BigDecimal(s.getReceiveMoney()).subtract(new BigDecimal(s.getPayMoney())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).toString()); + vo.setSettletime(DateUtils.formatDateTime(s.getSettletime())); + vo.setStatus(EnumSettleStatus.getEnum(s.getStatus()).getMessage()); + vo.setApplyStatus(EnumRentContractAppStatus.getEnum(s.getApplyStatus()).getMessage()); + voList.add(vo); + } + excelService.exportExcel(voList, null, "结算单", WxBillSettleVo.class, "结算单.xlsx", response, false); } @Override diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 4a612bbd6..ea224abba 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -28,6 +28,11 @@ public class DateUtils { return format(date, DATE_PATTERN); } + public static String formatDateTime(Date date) { + return format(date, DATE_TIME_PATTERN); + } + + public static String format(Date date, String pattern) { if(date != null){ SimpleDateFormat df = new SimpleDateFormat(pattern); diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml index 859cc693e..9525049f9 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml @@ -28,14 +28,14 @@ and s.`tenant_id` = #{tenantId} and m.name like concat('%', #{merchantName},'%') - and day_date >= #{startTime} + and createtime >= #{startTime} - and day_date <= #{endTime} + and createtime <= #{endTime} and s.`settle_number` = #{settleNumber} and s.`status` = #{status} - and s.`apply_status` = #{applyStatus} + and s.`apply_status` = #{applyStatus} order by ${sortColumns} From f2a300e0afa610cecbb2f8cfb5a35d1c86148129 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 2 Sep 2019 12:27:50 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=A7=9F=E9=87=91]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 6 +++- .../impl/WxRentContractServiceImpl.java | 28 +++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 3e6bd2e5b..ffc3f5063 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -560,12 +560,16 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService priceD = priceD + priceD * integers.get(i) / 10000.0; priceArr[i] = new BigDecimal(priceD).setScale(0, RoundingMode.HALF_EVEN).longValue(); } - } else { + } else if (wxPropertyContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { long priceD = price; for (int i = 1; i < size; i++) { priceD = priceD + integers.get(i); priceArr[i] = new BigDecimal(priceD).setScale(0, RoundingMode.HALF_EVEN).longValue(); } + } else { + for (int i = 1; i < size; i++) { + priceArr[i] = new BigDecimal(integers.get(i)).setScale(0, RoundingMode.HALF_EVEN).longValue(); + } } int month = 12; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 48a71feae..ab18f379c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -995,7 +995,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { for (int i = 0; i < arraySize; i++) { JSONObject rentInfoObject = rentInfoArray.getJSONObject(i); String priceStr = rentInfoObject.getString("price"); - if(priceStr.equalsIgnoreCase("NaN")) { + if (priceStr.equalsIgnoreCase("NaN")) { priceStr = "0"; } priceArr[i] = new BigDecimal(priceStr).multiply(new BigDecimal(100)).longValue(); @@ -1018,7 +1018,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { } priceList.add(priceArrs); } - } else { + return priceList; + } + if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { for (int i = 0; i < adjustRatioSize; i++) { long[] priceArrs = new long[arraySize]; for (int j = 0; j < arraySize; j++) { @@ -1029,12 +1031,24 @@ public class WxRentContractServiceImpl implements WxRentContractService { } priceList.add(priceArrs); } + return priceList; + } + if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())) { + for (int i = 0; i < adjustRatioSize; i++) { + long[] priceArrs = new long[arraySize]; + for (int j = 0; j < arraySize; j++) { + rentInfoObject = rentInfoArray.getJSONObject(j); + adjustRatio = rentInfoObject.getJSONArray("adjustRatio"); + BigDecimal price = new BigDecimal(adjustRatio.getString(i)).multiply(new BigDecimal(100)); + priceArrs[j] = price.setScale(0, RoundingMode.HALF_EVEN).longValue(); + } + priceList.add(priceArrs); + } } - return priceList; } - public List buildRentMonth(Long userId, WxRentContract wxRentContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview,boolean saveDb) { + public List buildRentMonth(Long userId, WxRentContract wxRentContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview, boolean saveDb) { int size = 0; long[] priceArrs = null; List> shopInfos = new ArrayList<>(); @@ -1079,11 +1093,15 @@ public class WxRentContractServiceImpl implements WxRentContractService { priceD = priceD.add(divide); priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); } - } else { + } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { for (int i = 1; i < size; i++) { priceD = priceD.add(new BigDecimal(integers.get(i))); priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); } + } else { + for (int i = 1; i < size; i++) { + priceArrs[i] = new BigDecimal(integers.get(i)).setScale(0, RoundingMode.HALF_EVEN).longValue(); + } } } From 5ceb916640d25f34a0b2476c7e8bec9f24be8fde Mon Sep 17 00:00:00 2001 From: gongbiao Date: Mon, 2 Sep 2019 13:38:35 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=A7=9F=E9=87=91]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index ab18f379c..5dcc9b107 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1296,7 +1296,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) { //设置跳点率为年周期 price不变 - if(EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){ + if (EnumRentContractAdjustRatioWay.CUSTOM.getCode().equals(wxRentContract.getAdjustRatioWay()) || + EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { return priceD.longValue(); } //年或者设置跳点率为年周期 除12