From 160cc04d78a37d4e123d0d0f4b1337b494c040a2 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 21 Apr 2024 17:32:58 +0800 Subject: [PATCH] fix --- .../rent/WxBillDailyController.java | 13 +- .../com/iformall/domain/po/WxBillDaily.java | 3 + .../iformall/service/WxBillDailyService.java | 3 +- .../service/impl/WxBillDailyServiceImpl.java | 124 +++++++++++++----- .../resources/mapper/WxBillDailyMapper.xml | 16 ++- 5 files changed, 116 insertions(+), 43 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java index 92ba22cad..2894f4ad0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java @@ -10,6 +10,7 @@ import com.iformall.controller.base.BaseController; import com.iformall.controller.mem.BillDailyAsyncTask; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDaily; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.enums.EnumBillDailyBuildWay; import com.iformall.exception.MallinkException; import com.iformall.service.WxBillDailyService; @@ -65,6 +66,11 @@ public class WxBillDailyController extends BaseController { wxBillDaily = new WxBillDaily(); } wxBillDaily.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillDaily.setFloorForRule(dataRule.getFloorForRule()); + wxBillDaily.setBusinessForRule(dataRule.getBusinessForRule()); + } final PageInfo page = wxBillDailyService.listAsPage(wxBillDaily, pageNum, pageSize); return new ResultData(page); } @@ -104,7 +110,7 @@ public class WxBillDailyController extends BaseController { @SystemControllerLog(description = "日常账单-id查找") public ResultData findById(Long id) { logger.debug("[" + getIpAddr() + "] WxBillDailyController::findById"); - return new ResultData(Result.SUCCESS, "查询成功", wxBillDailyService.getById(id)); + return new ResultData(Result.SUCCESS, "查询成功", wxBillDailyService.getById(this.getTenantInfo(),id)); } @GetMapping("/updatePaid") @@ -246,6 +252,11 @@ public class WxBillDailyController extends BaseController { @SystemControllerLog(description = "日常费用账单-导出") public void exportBill(@ModelAttribute WxBillDaily wxBillDaily, HttpServletRequest request, HttpServletResponse response) { wxBillDaily.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillDaily.setFloorForRule(dataRule.getFloorForRule()); + wxBillDaily.setBusinessForRule(dataRule.getBusinessForRule()); + } wxBillDailyService.exportBill(request, response, wxBillDaily); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index d7bc80dd7..3c22e0701 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -11,6 +11,7 @@ import lombok.ToString; import javax.validation.constraints.NotNull; import java.util.Date; +import java.util.List; /** * @author gongbiao @@ -128,4 +129,6 @@ public class WxBillDaily extends TenantEntity { private String serviceChargePayBefore; @TableField(exist = false) private String serviceChargePayUpdate; + @TableField(exist = false) + private List merchantIds; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java index 6495d3943..c40d297a8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDaily; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBillDailyVo; import javax.servlet.http.HttpServletRequest; @@ -32,7 +33,7 @@ public interface WxBillDailyService { * @param id * @return */ - WxBillDaily getById(Long id); + WxBillDaily getById(TenantEntity tenantEntity,Long id); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index b0a3a09f8..5aba27ea2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBillDailyExportVo; import com.iformall.domain.vo.WxBillDailyVo; import com.iformall.enums.*; @@ -19,8 +20,11 @@ import com.iformall.mapper.WxShopMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillDailyService; +import com.iformall.service.WxMerchantService; import com.iformall.service.WxPayAccountBillService; import com.iformall.utils.DateUtils; + +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,21 +63,72 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { WxMerchantMapper wxMerchantMapper; @Autowired WxPayAccountBillService wxPayAccountBillService; + + @Autowired + WxMerchantService wxMerchantService; @Override public PageInfo listAsPage(WxBillDaily record, Integer pageIndex, Integer pageSize) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(record); - //分页对象设置页数和条数 - PageHelper.startPage(pageIndex, pageSize); - //查询 - List billDepositList = wxBillDailyMapper.queryBillDailyList(record); - billDepositList.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); - //结果放入分页对象 - PageInfo pageInfo = new PageInfo<>(billDepositList); - return pageInfo; + return getBillRentPropertyList(pageIndex, pageSize, record, wxPayAccountBill); + } + + private PageInfo getBillRentPropertyList(Integer pageIndex, Integer pageSize,WxBillDaily record,WxPayAccountBill wxPayAccountBill) { + if (null != record.getFloorForRule()) { + List merchantIds = wxMerchantService.getFloorBuildMerchantIds(record, record.getFloorForRule(), null, null, 0, 0); + if (null != merchantIds) { + record.setMerchantIds(merchantIds); + }else { + record.setId(-1L); + } + } + + if (StringUtils.isNotBlank(record.getMerchantName())) { + WxMerchant mq = new WxMerchant(); + mq.updateTenantInfo(record); + mq.setName(StringUtils.trimToNull(record.getMerchantName())); + List mids = wxMerchantService.findIdList(mq); + if (null != mids && mids.size() > 0 ) { + if (null != record.getMerchantIds()) { + List _mids = (List) CollectionUtils.intersection(mids, record.getMerchantIds()); + if (null == _mids || _mids.size() <= 0) { + record.setId(-1L); + }else { + record.setMerchantIds(_mids); + } + }else { + record.setMerchantIds(mids); + } + }else { + record.setId(-1L); + } + } + + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillDailyMapper.queryBillDailyList(record)); + if (null == page) { + return null; + } + + WxMerchant wq = new WxMerchant(); + wq.updateTenantInfo(record); + Map merchantMap = wxMerchantService.findMerchantMap(wq); + + if (null != page.getList()) { + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxBillDaily e = page.getList().get(i); + //手续费 = 合同应收+手续费+滞纳金 + computeTotalMoney(wxPayAccountBill, e); + + if (null != e.getMerchantId()) { + WxMerchant m = merchantMap.get(e.getMerchantId()); + if (null != m ) { + e.setMerchantName(m.getName()); + } + } + } + } + + return page; } public void computeTotalMoney(WxPayAccountBill wxPayAccountBill, WxBillDaily e) { @@ -141,12 +196,12 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { } @Override - public WxBillDaily getById(Long id) { + public WxBillDaily getById(TenantEntity tenantEntity,Long id) { + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(tenantEntity); WxBillDaily record = new WxBillDaily(); record.setId(id); - WxBillDaily wxBillDaily = wxBillDailyMapper.queryBillDailyList(record).get(0); - WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillDaily); - computeTotalMoney(wxPayAccountBill, wxBillDaily); + record.updateTenantInfo(tenantEntity); + WxBillDaily wxBillDaily = getBillRentPropertyList(1, 1, record, wxPayAccountBill).getList().get(0); wxBillDaily.setOwe(wxBillDaily.getRealReceivePay() - wxBillDaily.getPay()); wxBillDaily.setMerchant(wxMerchantMapper.selectById(wxBillDaily.getMerchantId())); // if (wxBillDaily.getShopId() != null) { @@ -371,28 +426,27 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { @Override public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDaily record) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(record); - List billDailyList = wxBillDailyMapper.queryBillDailyList(record); - billDailyList.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); + PageInfo billDailyList = getBillRentPropertyList(1, 10000, record, wxPayAccountBill); List datalist = new ArrayList<>(); - WxBillDailyExportVo wxBillDailyExportVo; - for (int i = 0, size = billDailyList.size(); i < size; i++) { - WxBillDaily b = billDailyList.get(i); - wxBillDailyExportVo = new WxBillDailyExportVo(); - wxBillDailyExportVo.setShopNumber(b.getShopName()); - wxBillDailyExportVo.setMerchantName(b.getMerchantName()); - wxBillDailyExportVo.setReceivePay(b.getRealReceivePay()); - wxBillDailyExportVo.setPay(b.getPay()); - wxBillDailyExportVo.setOwe(b.getOwe()); - wxBillDailyExportVo.setReceiveDate(b.getReceiveDate()); - wxBillDailyExportVo.setPayDate(b.getPayDate()); - wxBillDailyExportVo.setExpiredDay(b.getExpiredDay()); - wxBillDailyExportVo.setStatus(b.getStatus()); - wxBillDailyExportVo.setType(b.getType()); - datalist.add(wxBillDailyExportVo); + if (null != billDailyList && null != billDailyList.getList()) { + WxBillDailyExportVo wxBillDailyExportVo; + for (int i = 0, size = billDailyList.getList().size(); i < size; i++) { + WxBillDaily b = billDailyList.getList().get(i); + wxBillDailyExportVo = new WxBillDailyExportVo(); + wxBillDailyExportVo.setShopNumber(b.getShopName()); + wxBillDailyExportVo.setMerchantName(b.getMerchantName()); + wxBillDailyExportVo.setReceivePay(b.getRealReceivePay()); + wxBillDailyExportVo.setPay(b.getPay()); + wxBillDailyExportVo.setOwe(b.getOwe()); + wxBillDailyExportVo.setReceiveDate(b.getReceiveDate()); + wxBillDailyExportVo.setPayDate(b.getPayDate()); + wxBillDailyExportVo.setExpiredDay(b.getExpiredDay()); + wxBillDailyExportVo.setStatus(b.getStatus()); + wxBillDailyExportVo.setType(b.getType()); + datalist.add(wxBillDailyExportVo); + } } + excelService.exportExcel(datalist, null, "日常费用账单", WxBillDailyExportVo.class, "日常费用账单.xlsx", response, false); } diff --git a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml index 5eac0260b..8f1def20d 100644 --- a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml @@ -83,15 +83,14 @@