From a55f1566b40420cac10bbe2309aebf4274c095d5 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 21 Apr 2024 14:33:55 +0800 Subject: [PATCH] fix --- .../rent/WxBillPropertyController.java | 8 +- .../iformall/domain/po/WxBillProperty.java | 7 + .../domain/po/WxBillPropertyDeposit.java | 3 + .../mapper/WxBillPropertyDepositMapper.java | 2 + .../iformall/mapper/WxBillPropertyMapper.java | 2 + .../com/iformall/service/WxShopService.java | 2 + .../impl/WxBillPropertyServiceImpl.java | 138 ++++++++++++++++++ .../service/impl/WxShopServiceImpl.java | 12 ++ .../mapper/WxBillPropertyDepositMapper.xml | 11 ++ .../resources/mapper/WxBillPropertyMapper.xml | 79 ++++++---- 10 files changed, 231 insertions(+), 33 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java index aed21669f..b6fb6777c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java @@ -6,6 +6,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxBillProperty; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.domain.po.base.BaseEntity; import com.iformall.service.WxBillPropertyService; import io.swagger.annotations.ApiImplicitParam; @@ -34,13 +35,18 @@ public class WxBillPropertyController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "物业账单-列表") public ResultData list(@ModelAttribute WxBillProperty wxBillProperty, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBillPropertyController::list"); if (null == wxBillProperty) { wxBillProperty = new WxBillProperty(); } wxBillProperty.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillProperty.setFloorForRule(dataRule.getFloorForRule()); + wxBillProperty.setBusinessForRule(dataRule.getBusinessForRule()); + } + wxBillProperty.setSortColumns(BaseEntity.SortField.Createtime_DESC,BaseEntity.SortField.Id_DESC); PageInfo result = wxBillPropertyService.listAsPage(wxBillProperty, pageNum, pageSize); return new ResultData(result); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java index aae898c6d..c22c10a34 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java @@ -11,6 +11,7 @@ import lombok.ToString; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * @author gongbiao @@ -221,4 +222,10 @@ public class WxBillProperty extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="楼层号",name="floor") @TableField(exist = false) private Long floor; + + @TableField(exist = false) + private List propertyContractIds; + + @TableField(exist = false) + private List merchantIds; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java index 7692acf0b..43eeb46b6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillPropertyDeposit.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.List; /** * @author gongbiao @@ -93,4 +94,6 @@ public class WxBillPropertyDeposit extends TenantEntity { private String serviceChargePayBefore; @TableField(exist = false) private String serviceChargePayUpdate; + @TableField(exist = false) + private List propertyContractIdList; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyDepositMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyDepositMapper.java index 077f02681..d1ab8c550 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyDepositMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyDepositMapper.java @@ -13,6 +13,8 @@ import java.util.Map; public interface WxBillPropertyDepositMapper extends CommonMapper { List findList(WxBillPropertyDeposit wxBillPropertyDeposit); + + List findPropertyContractIds(WxBillPropertyDeposit wxBillPropertyDeposit); List queryBillDepositList(WxBillPropertyDeposit record); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java index e47efc046..40d44d8bc 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java @@ -17,6 +17,8 @@ public interface WxBillPropertyMapper extends CommonMapper List findList(WxBillProperty wxBillProperty); List queryBillPropertyList(WxBillProperty record); + + List queryPropertyContractIdList(WxBillProperty record); Map queryPayInfo(Map params); diff --git a/mallinkService/src/main/java/com/iformall/service/WxShopService.java b/mallinkService/src/main/java/com/iformall/service/WxShopService.java index d66db1a8d..8c04445b8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxShopService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxShopService.java @@ -107,5 +107,7 @@ public interface WxShopService { WxShop getShopByShopNumber(TenantEntity tenantEntity,String shopNumber); List getShopIds(WxShop wxShop); + + Map findShopMap(WxShop wxShop); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index 14f822c72..7898fce1d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -15,12 +15,16 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillActionMapper; import com.iformall.mapper.WxBillPropertyDepositMapper; import com.iformall.mapper.WxBillPropertyMapper; +import com.iformall.mapper.WxPropertyContractMapper; import com.iformall.service.*; 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; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +46,9 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { @Autowired WxBillPropertyDepositMapper wxBillPropertyDepositMapper; + + @Autowired + WxPropertyContractMapper wxPropertyContractMapper; @Autowired WxBillActionService wxBillActionService; @@ -55,6 +62,15 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { WxPayAccountBillService wxPayAccountBillService; @Autowired WxBillPropertyDepositService wxBillPropertyDepositService; + + + @Lazy + @Autowired + WxMerchantService wxMerchantService; + + @Lazy + @Autowired + WxShopService wxShopService; @Override @@ -69,6 +85,128 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { PageInfo pageInfo = new PageInfo<>(billRentList); return pageInfo; } + + private PageInfo getBillPropertyList(Integer pageIndex, Integer pageSize,WxPayAccountBill wxPayAccountBill,WxBillProperty record) { + if(null != record.getDepositStatus()) { + WxBillPropertyDeposit bdq1 = new WxBillPropertyDeposit(); + bdq1.updateTenantInfo(record); + bdq1.setStatus(record.getDepositStatus()); + List rentids = wxBillPropertyDepositMapper.findPropertyContractIds(bdq1); + if (null != rentids && rentids.size() > 0 ) { + record.setPropertyContractIds(rentids); + }else { + record.setId(-1L); + } + } + if (null != record.getFloorForRule() || null != record.getFloor() || null != record.getBuilding()) { + List merchantIds = wxMerchantService.getFloorBuildMerchantIds(record, record.getFloorForRule(), record.getBuilding(), record.getFloor(), 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(() -> wxBillPropertyMapper.queryBillPropertyList(record)); + if (null == page) { + return null; + } + + List propertyContractIdList = wxBillPropertyMapper.queryPropertyContractIdList(record); + Map propertyContractMap = new HashMap(); + Map billDepositMap = new HashMap(); + if ( null != propertyContractIdList && propertyContractIdList.size() > 0 ) { + WxPropertyContract rcq = new WxPropertyContract(); + rcq.updateTenantInfo(record); + rcq.setIds(propertyContractIdList); + List rlist = wxPropertyContractMapper.findList(rcq); + if (null != rlist && rlist.size() > 0 ) { + for (int i = 0 ; i < rlist.size(); i++) { + WxPropertyContract rc = rlist.get(i); + propertyContractMap.put(rc.getId(), rc); + } + } + + WxBillPropertyDeposit bdq = new WxBillPropertyDeposit(); + bdq.updateTenantInfo(record); + bdq.setPropertyContractIdList(propertyContractIdList); + List bdlist = wxBillPropertyDepositMapper.findList(bdq); + if (null != bdlist && bdlist.size() > 0 ) { + for (int i = 0 ; i < bdlist.size(); i++) { + WxBillPropertyDeposit rc = bdlist.get(i); + billDepositMap.put(rc.getId(), rc); + } + } + } + WxMerchant wq = new WxMerchant(); + wq.updateTenantInfo(record); + Map merchantMap = wxMerchantService.findMerchantMap(wq); + + WxShop sq = new WxShop(); + sq.updateTenantInfo(record); + Map shopMap = wxShopService.findShopMap(sq); + + if (null != page.getList()) { + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxBillProperty 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()); + } + } + + if (null != e.getShopId()) { + WxShop shop = shopMap.get(e.getShopId()); + if (null != shop) { + e.setShopNumber(shop.getShopNumber()); + } + } + + WxPropertyContract rent = propertyContractMap.get(e.getPropertyContractId()); + if (null != rent) { +// if (StringUtils.isNoneBlank(rent.getLatePayRatio())) { +// e.setLatePayRatio(Integer.parseInt(rent.getLatePayRatio())); +// } + e.setLatePayDay(rent.getLatePayDay()); + } + + WxBillPropertyDeposit bd = billDepositMap.get(e.getPropertyContractId()); + if (null != bd) { + e.setDeposit(bd.getReceivePay()); + e.setDepositStatus(bd.getStatus()); + } + + } + } + + return page; + + } public void computeTotalMoney(WxPayAccountBill wxPayAccountBill, WxBillProperty e) { //手续费 = 合同应收+手续费+滞纳金 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index 38a33fd3d..374868b19 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -31,6 +31,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; @Service public class WxShopServiceImpl implements WxShopService { @@ -713,4 +715,14 @@ public class WxShopServiceImpl implements WxShopService { public List getShopIds(WxShop wxShop) { return wxShopMapper.findIdList(wxShop); } + + @Override + public Map findShopMap(WxShop wxShop) { + Map shopMap = new HashMap(); + List list = wxShopMapper.findList(wxShop); + if(!list.isEmpty()){ + shopMap = list.stream().collect(Collectors.toMap(WxShop::getId, Function.identity())); + } + return shopMap; + } } diff --git a/mallinkService/src/main/resources/mapper/WxBillPropertyDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxBillPropertyDepositMapper.xml index cafba546b..127277c59 100644 --- a/mallinkService/src/main/resources/mapper/WxBillPropertyDepositMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillPropertyDepositMapper.xml @@ -67,6 +67,12 @@ and `rent_shop_type` = #{rentShopType} and `pay_way` = #{payWay} + + and property_contract_id in + + #{pidItem} + + and id in @@ -81,6 +87,11 @@ + + - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`, + case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,br.`period`, + br.`revenue`,br.`late_pay_time`,br.`property_contract_id`,br.late_pay_price,br.`shop_info`,br.pay_way,br.late_pay_status, + br.`comments`,br.starttime,br.endtime,br.`apply_status`,br.`apply_pay_img`,br.`apply_update_time`,br.freeze,br.service_charge_pay, + br.`late_pay_ratio` + from wx_bill_property br + order by ${sortColumns} + +