From 29aba11b99d7d796a18e43d831a09fcfa240d60b Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Tue, 20 May 2025 21:04:25 +0800
Subject: [PATCH 01/13] fix
---
.../src/main/resources/mapper/WxCouponCarMapper.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mallinkService/src/main/resources/mapper/WxCouponCarMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponCarMapper.xml
index 97538d4e0..2f7d4fff5 100644
--- a/mallinkService/src/main/resources/mapper/WxCouponCarMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxCouponCarMapper.xml
@@ -128,14 +128,14 @@
-
+
c.id,c.tenant_id,c.parent_tenant_id,c.type,c.cover_img,c.cover_picture,c.title,c.sub_title,c.sale_price,c.use_price,c.use_limit_rule,c.use_limit_quantity,c.send_type,c.valid_type,c.valid_start_date,c.valid_end_date,c.valid_days,c.detail,c.price,c.unit,c.remain_inventory,c.inventory,c.remark,c.status,c.create_date,c.update_date,c.business,
- car.vendor_type, car.vendor_params,c.credit_price, c.`auto_refund`, c.content_type
+ car.vendor_type, car.vendor_params,c.credit_price, c.`auto_refund`, c.content_type,c.use_limit_frequency
+
+ delete from wx_rent_contract_agile_renevue_fees where agile_renevue_id = #{agileRenevueId}
+
+
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
index e8e9a537c..6929c5064 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
@@ -61,8 +61,8 @@
from wx_rent_contract_agile_renevue_item where id = #{id} and `tenant_id` = #{tenantId}
-
- delete from wx_rent_contract_agile_renevue_item where `un_deposit_id` = #{unDepositId}
+
+ delete from wx_rent_contract_agile_renevue_item where `renevue_id` = #{unDepositId}
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
index 612d5c9ea..316e2aa3b 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
@@ -14,11 +14,12 @@
+
`id`,`tenant_id`,`parent_tenant_id`,`rent_contract_id`,`setting_method`,`fees_id`,
- `time_period`,`time_unit`,`calcute_time`,`fees_create_rule`,`createtime`,`updatetime`
+ `time_period`,`time_unit`,`calcute_time`,`fees_create_rule`,`createtime`,`updatetime`,`join_renevue_up`
@@ -32,6 +33,7 @@
and `rent_contract_id` = #{rentContractId}
and `fees_id` = #{feesId}
+ and `join_renevue_up` = #{joinRenevueUp}
and id in
@@ -60,5 +62,9 @@
from wx_rent_contract_agile_un_deposit where id = #{id} and `tenant_id` = #{tenantId}
+
+ update wx_rent_contract_agile_un_deposit set join_renevue_up = #{joinRenevueUp} where id = #{id}
+
+
From 6967f9135b39843ab8275010b3887d65e92ead10 Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Thu, 22 May 2025 16:02:32 +0800
Subject: [PATCH 06/13] fix
---
.../contract/WxRentContractController.java | 9 +-
.../iformall/domain/po/WxRentContract.java | 2 +
.../service/WxRentContractService.java | 2 +-
.../impl/WxRentContractServiceImpl.java | 171 +++++++++---------
4 files changed, 91 insertions(+), 93 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
index 37f24db2b..10c2bf818 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
@@ -258,6 +258,12 @@ public class WxRentContractController extends WxContractBaseController {
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
public ResultData getRevenueContractList(@ModelAttribute WxRentContract wxRentContract, Integer pageNum, Integer pageSize) {
if (null == wxRentContract) wxRentContract = new WxRentContract();
+ WxUserDataRule dataRule = this.getCurrentDataFloors();
+ if (null != dataRule) {
+ wxRentContract.setFloorForRule(dataRule.getFloorIds());
+ wxRentContract.setBusinessForRule(dataRule.getBussinessIds());
+ wxRentContract.setShopTypeForRule(dataRule.getShopTypes());
+ }
wxRentContract.updateTenantInfo(getTenantInfo());
List typeList = new ArrayList();
typeList.add(EnumRentContractType.RENT_BY_JOINT.getCode());
@@ -269,8 +275,7 @@ public class WxRentContractController extends WxContractBaseController {
//statusList.add(EnumRentContractStatus.READY_FOR_PAING.getCode());
wxRentContract.setStatuss(statusList);
wxRentContract.setSortColumns(SortField.Createtime_DESC);
- //return new ResultData(wxRentContractService.getRentContractList(wxRentContract, pageNum, pageSize));
- return new ResultData();
+ return new ResultData(wxRentContractService.getRenevueContractList(wxRentContract, pageNum, pageSize));
}
//查询联营扣点,联营取高的合同账单周期
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
index e46c23fb5..8d28f9727 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
@@ -372,5 +372,7 @@ public class WxRentContract extends TenantEntity {
private List calcuteShopIds;
@TableField(exist = false)
private Integer calcuteIsProperty;
+ @TableField(exist = false)
+ private String shopNumber;
}
diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
index c7067908d..6b61b374c 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
@@ -80,7 +80,7 @@ public interface WxRentContractService {
ResultData updateRentContract(WxRentContract wxRentContract);
- //PageInfo getRentContractList(WxRentContract rentContract, Integer pageNum, Integer pageSize);
+ PageInfo getRenevueContractList(WxRentContract rentContract, Integer pageNum, Integer pageSize);
//void exportContract(HttpServletRequest request, HttpServletResponse response, Long rentId,Long propertyId);
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 31b0a829c..209c44f41 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
@@ -64,6 +64,7 @@ import com.iformall.enums.EnumRentContractType;
import com.iformall.enums.EnumRentDayPriceCalcute;
import com.iformall.enums.EnumRentShopType;
import com.iformall.enums.EnumRentStartType;
+import com.iformall.enums.EnumShopStatus;
import com.iformall.enums.EnumShopUsersStatus;
import com.iformall.enums.EnumShopUsersType;
import com.iformall.enums.EnumSystemUserType;
@@ -1524,96 +1525,86 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return new ResultData(Result.SUCCESS, "操作成功");
}
-// @Override
-// public PageInfo getRentContractList(WxRentContract rentContract, Integer pageIndex, Integer pageSize) {
-// if (StringUtils.isNotBlank(rentContract.getFloorForRule()) || StringUtils.isNotBlank(rentContract.getQueryShopIdStr())) {
-// List shopIdList = null;
-// if (StringUtils.isNotBlank(rentContract.getQueryShopIdStr())) {
-// String[] qsids = rentContract.getQueryShopIdStr().split(",");
-// if (null != qsids && qsids.length > 0 ) {
-// shopIdList = new ArrayList();
-// for (int i = 0 ; i < qsids.length ; i ++) {
-// String qsid = qsids[i];
-// if (StringUtils.isNotBlank(qsid)) {
-// shopIdList.add(Long.parseLong(qsid));
-// }
-// }
-// if (shopIdList.size() <= 0 ) {
-// shopIdList = null;
-// }
-// }
-// }
-//
-// List contractIds = wxAgileContractService.findBuildingFloorContractIds(rentContract, rentContract.getFloorForRule(), null, null, shopIdList, 0);
-// //List mids = wxMerchantService.getFloorBuildMerchantIds(rentContract, rentContract.getFloorForRule() , null, null,rentContract.getShopTypeForRule(), 0, 0,null);
-// if (null == contractIds || contractIds.size() <= 0 ) {
-// rentContract.setId(-1L);
-// } else {
-// rentContract.setIds(contractIds);
-// }
-// }
-// //根据客户名称查询
-// if (StringUtils.isNotBlank(rentContract.getMerchantName())) {
-// WxContractCustomers ccq = new WxContractCustomers();
-// ccq.updateTenantInfo(rentContract);
-// ccq.setName(rentContract.getMerchantName());
-// List customersIdList = wxContractCustomersMapper.findIdList(ccq);
-// if (null != customersIdList && customersIdList.size() > 0 ) {
-// rentContract.setCustomersIdList(customersIdList);
-// }else {
-// rentContract.setId(-1L);
-// }
-// }
-//
-// //PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.getRentContractList(rentContract));
-// PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(rentContract));
-// if (null != pageInfo && null != pageInfo.getList()) {
-// List customersIdList = new ArrayList();
-// for (int i = 0 ; i < pageInfo.getList().size(); i ++ ){
-// WxRentContract contract = pageInfo.getList().get(i);
-// if (null != contract.getCustomersId()) {
-// customersIdList.add(contract.getCustomersId());
-// }
-// }
-//
-// Map customersMap = getContractCustomersMap(rentContract,customersIdList);
-//
-// for (int i = 0 ; i < pageInfo.getList().size(); i ++ ) {
-// WxRentContract contract = pageInfo.getList().get(i);
-// String merchantName = "";
-// if (null != customersMap && null != contract.getCustomersId()) {
-// WxContractCustomers cc = customersMap.get(contract.getCustomersId());
-// if (null != cc) {
-// merchantName = merchantName + cc.getName();
-// }
-// }
-// contract.setMerchantName(merchantName);
-// }
-//
-// }
-// return pageInfo;
-// }
-//
-// private Map getContractCustomersMap(TenantEntity tenantEntity,List customerIds) {
-// if (null == customerIds || customerIds.size() <= 0 ) {
-// return null;
-// }
-// WxContractCustomers ccq = new WxContractCustomers();
-// ccq.updateTenantInfo(tenantEntity);
-// ccq.setIds(customerIds);
-// List cclist = wxContractCustomersMapper.findList(ccq);
-// if (null != cclist && cclist.size() > 0 ){
-// Map map = new HashMap();
-// for (int i = 0 ; i < cclist.size() ; i ++ ) {
-// WxContractCustomers cc = cclist.get(i);
-// if (null != cc) {
-// map.put(cc.getId(),cc);
-// }
-// }
-// return map;
-// }
-// return null;
-// }
+ @Override
+ public PageInfo getRenevueContractList(WxRentContract rentContract, Integer pageIndex, Integer pageSize) {
+ if (StringUtils.isNotBlank(rentContract.getFloorForRule()) || StringUtils.isNotBlank(rentContract.getShopNumber())) {
+ List shopIdList = null;
+ if (StringUtils.isNotBlank(rentContract.getShopNumber())) {
+ WxShop sq = new WxShop();
+ sq.updateTenantInfo(rentContract);
+ sq.setShopNumber(rentContract.getShopNumber());
+ sq.setIsDel(EnumYesOrNo.NO.getCode());
+ shopIdList = wxShopMapper.findIdList(sq);
+ }
+
+ List contractIds = wxAgileContractService.findBuildingFloorContractIds(rentContract, rentContract.getFloorForRule(), null, null, shopIdList, 0);
+ if (null == contractIds || contractIds.size() <= 0 ) {
+ rentContract.setId(-1L);
+ } else {
+ rentContract.setIds(contractIds);
+ }
+ }
+ //根据客户名称查询
+ if (StringUtils.isNotBlank(rentContract.getMerchantName())) {
+ WxContractCustomers ccq = new WxContractCustomers();
+ ccq.updateTenantInfo(rentContract);
+ ccq.setName(rentContract.getMerchantName());
+ List customersIdList = wxContractCustomersMapper.findIdList(ccq);
+ if (null != customersIdList && customersIdList.size() > 0 ) {
+ rentContract.setCustomersIdList(customersIdList);
+ }else {
+ rentContract.setId(-1L);
+ }
+ }
+
+ PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(rentContract));
+ if (null != pageInfo && null != pageInfo.getList()) {
+ List customersIdList = new ArrayList();
+ for (int i = 0 ; i < pageInfo.getList().size(); i ++ ){
+ WxRentContract contract = pageInfo.getList().get(i);
+ if (null != contract.getCustomersId()) {
+ customersIdList.add(contract.getCustomersId());
+ }
+ }
+
+ Map customersMap = getContractCustomersMap(rentContract,customersIdList);
+
+ for (int i = 0 ; i < pageInfo.getList().size(); i ++ ) {
+ WxRentContract contract = pageInfo.getList().get(i);
+ String merchantName = "";
+ if (null != customersMap && null != contract.getCustomersId()) {
+ WxContractCustomers cc = customersMap.get(contract.getCustomersId());
+ if (null != cc) {
+ merchantName = merchantName + cc.getName();
+ }
+ }
+ contract.setMerchantName(merchantName);
+ }
+
+ }
+ return pageInfo;
+ }
+
+ private Map getContractCustomersMap(TenantEntity tenantEntity,List customerIds) {
+ if (null == customerIds || customerIds.size() <= 0 ) {
+ return null;
+ }
+ WxContractCustomers ccq = new WxContractCustomers();
+ ccq.updateTenantInfo(tenantEntity);
+ ccq.setIds(customerIds);
+ List cclist = wxContractCustomersMapper.findList(ccq);
+ if (null != cclist && cclist.size() > 0 ){
+ Map map = new HashMap();
+ for (int i = 0 ; i < cclist.size() ; i ++ ) {
+ WxContractCustomers cc = cclist.get(i);
+ if (null != cc) {
+ map.put(cc.getId(),cc);
+ }
+ }
+ return map;
+ }
+ return null;
+ }
// @Override
// @Transactional(rollbackFor = {Exception.class})
From 9c6c65e48244fc40b446eef48c6dcd3725291e0b Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Thu, 22 May 2025 21:59:38 +0800
Subject: [PATCH 07/13] fix
---
.../contract/WxRentContractController.java | 129 +++++++++++-------
.../service/WxAgileContractService.java | 3 +
.../impl/WxAgileContractServiceImpl.java | 9 ++
3 files changed, 88 insertions(+), 53 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
index 10c2bf818..e9149df45 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
@@ -10,12 +10,14 @@ import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.BaseEntity.SortField;
+import com.iformall.domain.vo.BillTimeVo;
import com.iformall.domain.vo.WxRentContractYearsVo;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxRentContractMapper;
import com.iformall.service.*;
import com.iformall.service.helper.WxBillAllHelper;
+import com.iformall.service.helper.WxRentContractAgileHelper;
import com.iformall.utils.Constant;
import com.iformall.utils.DateUtils;
import io.swagger.annotations.ApiImplicitParam;
@@ -297,40 +299,54 @@ public class WxRentContractController extends WxContractBaseController {
}
}
- //查询所有时间区间,只查询租金的
- WxAllBill bq = wxBillAllHelper.generateRentContractQueryBill(sales,sales.getRentContractId(),null,null);
- bq.setNoExtraCreateFrom(EnumYesOrNo.YES.getCode());
- List billList = wxAllBillService.getContractSamePeriodBillSumList(bq);
- if (null == billList || billList.size() <= 0 ) {
+ //查询所有时间区间
+ WxRentContractAgileRenevue renevue = wxAgileContractService.findRenevueByContract(sales.getRentContractId(), sales);
+ if (null == renevue) {
+ return new ResultData();
+ }
+ List renevueItems = wxAgileContractService.findRenevueItemListByContract(sales.getRentContractId(), sales);
+ if (null == renevueItems || renevueItems.size() <= 0 ) {
return new ResultData();
}
List validBillList = new ArrayList();
- for (int i = 0 ; i < billList.size() ; i ++) {
- WxAllBill bill = billList.get(i);
- WxAllBill nbill = new WxAllBill();
- nbill.setStarttime(bill.getStarttime());
- nbill.setEndtime(bill.getEndtime());;
- WxRentContractRevenueSales s = billSalesMap.get(bill.getStarttime()+"_"+bill.getEndtime());
- if (null != s) {
- bill.setSales(s.getSaleMoney());
- bill.setSalesTime(s.getUpdateTime());
- //已锁定的不能再设置
- if (s.getIsConfirm() == EnumYesOrNo.YES.getCode()) {
- //
- //TODO 年度已经汇算的不能再设置
- //}else if() {
-
- }else {
- validBillList.add(nbill);
- }
- }else {
- validBillList.add(nbill);
- }
+ EnumFeesShopTimeType creatRule = EnumFeesShopTimeType.getEnum(renevue.getFeesCreateRule());
+ EnumRentContractAgilTimeUnit timeUnit = EnumRentContractAgilTimeUnit.getEnum(renevue.getTimeUnit());
+ for (int i = 0 ; i < renevueItems.size(); i++) {
+ WxRentContractAgileRenevueItem item = renevueItems.get(i);
+ List timeVoList = WxRentContractAgileHelper.initBillTimeList(null, item.getBeginTime(), item.getEndTime(), creatRule, timeUnit, renevue.getTimePeriod(), renevue.getCalcuteTime());
+ if (null != timeVoList && timeVoList.size() > 0 ) {
+ for (int j = 0 ; j < timeVoList.size(); j++) {
+ BillTimeVo tv = timeVoList.get(j);
+ WxAllBill nbill = new WxAllBill();
+ nbill.setStarttime(tv.getStartDate());
+ nbill.setEndtime(tv.getEndDate());
+ WxRentContractRevenueSales s = billSalesMap.get(tv.getStartDate()+"_"+tv.getEndDate());
+ if (null != s) {
+ nbill.setSales(s.getSaleMoney());
+ nbill.setSalesTime(s.getUpdateTime());
+ //已锁定的不能再设置
+ if (s.getIsConfirm() == EnumYesOrNo.YES.getCode()) {
+ //
+ //TODO 年度已经汇算的不能再设置
+ //}else if() {
+
+ }else {
+ validBillList.add(nbill);
+ }
+ }else {
+ validBillList.add(nbill);
+ }
+ }
+ }
}
return new ResultData(validBillList);
}
- //查询联营扣点,联营取高的合同账单周期
+ /**
+ * 查询联营扣点,联营取高的合同某一个周期的根据销售额录入生成的账单列表
+ * @param sales
+ * @return
+ */
@GetMapping("revenueBillTimesSaleBills")
public ResultData revenueBillTimesSaleBills(@ModelAttribute WxRentContractRevenueSales sales) {
if (null == sales) sales = new WxRentContractRevenueSales();
@@ -366,32 +382,39 @@ public class WxRentContractController extends WxContractBaseController {
return new ResultData(retMap);
}
-// //查询商户计租合同列表
-// @GetMapping("revenuePropertyContract")
-// public ResultData revenuePropertyContract(@ModelAttribute WxRentContract rentContract) {
-// if (null == rentContract) rentContract = new WxRentContract();
-// rentContract.updateTenantInfo(getTenantInfo());
-// WxRentContract contract = wxRentContractService.selectById(rentContract.getId());
-// //纯联营扣点方式,不能加物业费一起算
-// if (contract.getType().intValue() == EnumRentContractType.RENT_BY_JOINT.getCode()) {
-// return new ResultData();
-// }
-// WxPropertyContract bq = new WxPropertyContract();
-// bq.updateTenantInfo(rentContract);
-// bq.setRentContractId(rentContract.getId());
-// bq.setOperationType(EnumContractOperationType.WHOLE.getCode());
-// //包括提前终止的,租金+物业合同是一对一的
-// List statusList = new ArrayList();
-// statusList.add(EnumRentContractStatus.PAING.getCode());
-// statusList.add(EnumRentContractStatus.TERMINATE.getCode());
-// //bq.setStatus(EnumRentContractStatus.PAING.getCode());
-// bq.setStatuss(statusList);
-// List propertyList = wxPropertyContractService.findList(bq);
-// if (null != propertyList && propertyList.size() > 0 ) {
-// return new ResultData(propertyList.get(0));
-// }
-// return new ResultData();
-// }
+ /**
+ * 查询取高合同里面参与取高款项的当期账单列表
+ * @param sales
+ * @return
+ */
+ @GetMapping("revenuePropertyContract")
+ public ResultData revenuePropertyContract(@ModelAttribute WxRentContractRevenueSales sales) {
+ sales.updateTenantInfo(getTenantInfo());
+ WxRentContractAgileUnDeposit udq = new WxRentContractAgileUnDeposit();
+ udq.updateTenantInfo(sales);
+ udq.setRentContractId(sales.getRentContractId());
+ udq.setJoinRenevueUp(EnumYesOrNo.YES.getCode());
+ List udlist = wxAgileContractService.findUnDepositList(udq);
+ if (null != udlist && udlist.size() > 0 ) {
+ List billlist = new ArrayList();
+ for (int i = 0 ; i < udlist.size() ; i ++) {
+ WxRentContractAgileUnDeposit ad = udlist.get(i);
+ WxAllBill bq = new WxAllBill();
+ bq.updateTenantInfo(sales);
+ bq.setRentContractId(sales.getRentContractId());
+ bq.setEnergyFeesId(ad.getFeesId());
+ bq.setIsPreview(EnumYesOrNo.NO.getCode());
+ bq.setStarttimeEqual(sales.getStarttime());
+ bq.setEndtimeEqual(sales.getEndtime());
+ PageInfo billPage = wxAllBillService.listAsPage(bq,1,100);
+ if (null != billPage && null != billPage.getList() && billPage.getList().size() > 0 ) {
+ billlist.addAll(billPage.getList());
+ }
+ }
+ return new ResultData(billlist);
+ }
+ return new ResultData();
+ }
/**
* 扣点设置销售额重新计算
diff --git a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
index bc81ab568..01287d1ff 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
@@ -7,6 +7,7 @@ import com.iformall.domain.po.WxContractCustomers;
import com.iformall.domain.po.WxRentContract;
import com.iformall.domain.po.WxRentContractAgileDeposit;
import com.iformall.domain.po.WxRentContractAgileRenevue;
+import com.iformall.domain.po.WxRentContractAgileRenevueItem;
import com.iformall.domain.po.WxRentContractAgileUnDeposit;
import com.iformall.domain.po.base.TenantEntity;
@@ -48,6 +49,8 @@ public interface WxAgileContractService {
void setJoinRenevueUp(WxRentContractAgileUnDeposit unDeposit);
+ List findRenevueItemListByContract(Long rentContractId,TenantEntity tenantEntity);
+
List findBuildingFloorContractIds(TenantEntity tenantEntity,String floorRule,Long building,Long floor,List shopIds,Integer shopDel);
List findShopContractIds(TenantEntity tenantEntity,List shopIds);
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
index 2120b696b..d329bf7d6 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
@@ -909,6 +909,15 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
public void setJoinRenevueUp(WxRentContractAgileUnDeposit unDeposit) {
wxRentContractAgileUnDepositMapper.updateJoinRenevueUp(unDeposit);
}
+
+ @Override
+ public List findRenevueItemListByContract(Long rentContractId,TenantEntity tenantEntity) {
+ WxRentContractAgileRenevueItem iq = new WxRentContractAgileRenevueItem();
+ iq.updateTenantInfo(tenantEntity);
+ iq.setRentContractId(rentContractId);
+ iq.setSortColumn("begin_time asc");
+ return wxRentContractAgileRenevueItemMapper.findList(iq);
+ }
@Override
public List findBuildingFloorContractIds(TenantEntity tenantEntity, String floorRule, Long building,
From 5371c7fccfe966d3576f0a046cb40d0c8e1fdebd Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Fri, 23 May 2025 22:57:42 +0800
Subject: [PATCH 08/13] fix
---
.../contract/WxRentContractController.java | 10 -
.../iformall/domain/po/WxRentContract.java | 9 +-
.../domain/po/WxRentContractAgileRenevue.java | 3 +
.../po/WxRentContractAgileRenevueFees.java | 3 +
.../po/WxRentContractAgileRenevueItem.java | 5 +
.../domain/po/WxRentContractRevenueSales.java | 5 +-
.../iformall/enums/EnumAgileContractType.java | 38 +
.../com/iformall/mapper/WxAllBillMapper.java | 2 +
.../WxRentContractAgileUnDepositMapper.java | 2 +
.../service/WxAgileContractService.java | 7 +
.../service/WxRentContractService.java | 57 -
.../helper/WxRentContractAgileHelper.java | 2 +-
.../impl/WxAgileContractServiceImpl.java | 47 +
.../impl/WxRentContractServiceImpl.java | 2296 ++---------------
.../main/resources/mapper/WxAllBillMapper.xml | 8 +
.../WxRentContractAgileRenevueFeesMapper.xml | 4 +-
.../WxRentContractAgileRenevueItemMapper.xml | 2 +
.../WxRentContractAgileRenevueMapper.xml | 3 +-
.../WxRentContractAgileUnDepositMapper.xml | 6 +
.../WxRentContractRevenueSalesMapper.xml | 4 +-
20 files changed, 331 insertions(+), 2182 deletions(-)
create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumAgileContractType.java
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
index e9149df45..faa659f8b 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
@@ -77,16 +77,6 @@ public class WxRentContractController extends WxContractBaseController {
return new ResultData(map);
}
- /**
- * 获取免租期
- */
- @GetMapping("getFreePeriod")
- public ResultData getFreePeriod(@ModelAttribute WxRentContract wxRentContract) {
- //查询
- WxRentContract contract = wxRentContractService.selectById(wxRentContract.getId());
- return new ResultData(wxRentContractService.getFreePeriods(contract));
- }
-
/**
* 作废
* @param wxRentContract
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
index 8d28f9727..28895bf0b 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
@@ -134,16 +134,13 @@ public class WxRentContract extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "店铺编号串", name = "shopIdStr")
private String shopIdStr;
- @io.swagger.annotations.ApiModelProperty(value = "类型EnumRentContractType", name = "type")
+ @io.swagger.annotations.ApiModelProperty(value = "类型EnumAgileContractType", name = "type")
private Integer type;
@TableField(exist = false)
private String typeName;
@TableField(exist = false)
private List typeList;
-// @io.swagger.annotations.ApiModelProperty(value = "取高时保底方式EnumRentRenevueMinimunMethod", name = "revenueMinimumMethod")
-// private Integer revenueMinimumMethod;
-
@io.swagger.annotations.ApiModelProperty(value = "审核状态, 0未审核 1审核中 2审核通过 3驳回", name = "applyStatus")
private Integer applyStatus;
@@ -185,10 +182,6 @@ public class WxRentContract extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "免租期说明", name = "freePeriodRemark")
private String freePeriodRemark;
-// @io.swagger.annotations.ApiModelProperty(value = "合同类型EnumRentAgileType", name = "agileType")
-// private Integer agileType = EnumRentAgileType.AGILE.getCode();
-
-
public List shopIdsByRentInfo() {
List shopList = Lists.newArrayList();
String rentInfo = this.getRentInfo();
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevue.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevue.java
index 9853ec11a..83a0b73a3 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevue.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevue.java
@@ -64,6 +64,9 @@ public class WxRentContractAgileRenevue extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime")
private Date updatetime;
+ @io.swagger.annotations.ApiModelProperty(value="最低扣点销售额",name="limitRevenue")
+ private String limitRevenue;
+
@TableField(exist = false)
private List items;
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueFees.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueFees.java
index f972ec75e..cbd015f1d 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueFees.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueFees.java
@@ -39,6 +39,9 @@ public class WxRentContractAgileRenevueFees extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime")
private Date updatetime;
+ @io.swagger.annotations.ApiModelProperty(value="款项编号",name="feesId")
+ private Long feesId;
+
@io.swagger.annotations.ApiModelProperty(value="占比比率%,默认100",name="rate")
private String rate;
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueItem.java
index eb78f5ebc..9f170f36a 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueItem.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractAgileRenevueItem.java
@@ -53,5 +53,10 @@ public class WxRentContractAgileRenevueItem extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="页面用的字段",name="isFree")
private Integer isFather;
+
+ @TableField(exist = false)
+ private Date validBeginTime;
+ @TableField(exist = false)
+ private Date validEndTime;
}
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractRevenueSales.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractRevenueSales.java
index 1c0594e8f..7c2c11b60 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractRevenueSales.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContractRevenueSales.java
@@ -27,12 +27,9 @@ public class WxRentContractRevenueSales extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime")
private Date updateTime;
- @io.swagger.annotations.ApiModelProperty(value = "租金合同编号", name = "rentContractId")
+ @io.swagger.annotations.ApiModelProperty(value = "合同编号", name = "rentContractId")
private Long rentContractId;
- @io.swagger.annotations.ApiModelProperty(value = "物业合同编号", name = "propertyContractId")
- private Long propertyContractId;
-
@io.swagger.annotations.ApiModelProperty(value = "账单开始日期", name = "starttime")
private Date starttime;
@TableField(exist = false)
diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumAgileContractType.java b/mallinkService/src/main/java/com/iformall/enums/EnumAgileContractType.java
new file mode 100644
index 000000000..65d26c270
--- /dev/null
+++ b/mallinkService/src/main/java/com/iformall/enums/EnumAgileContractType.java
@@ -0,0 +1,38 @@
+package com.iformall.enums;
+
+
+/**
+ */
+
+public enum EnumAgileContractType {
+
+ AREA(1, "面积"),
+ RENEVUE(2, "联营扣点"),
+ RENEVUE_UP(3, "面积与联营扣点取高")
+ ;
+
+ public static EnumAgileContractType getEnum(Integer code) {
+ for (EnumAgileContractType value : values()) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+ private Integer code;
+ private String message;
+
+ EnumAgileContractType(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/mapper/WxAllBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java
index 2277505fa..cd594a975 100644
--- a/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java
+++ b/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java
@@ -55,5 +55,7 @@ public interface WxAllBillMapper extends CommonMapper {
void updateContractCusName(WxAllBill wxBillRent);
void transferCusName(WxAllBill wxBillRent);
+
+ BigDecimal getReceivePaySum(WxAllBill wxBillRent);
}
diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
index f08f36066..79ad361ab 100644
--- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
+++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
@@ -16,6 +16,8 @@ public interface WxRentContractAgileUnDepositMapper extends CommonMapper findIdList(WxRentContractAgileUnDeposit wxBillRent);
+ List findFeesIdList(WxRentContractAgileUnDeposit wxBillRent);
+
void updateJoinRenevueUp(WxRentContractAgileUnDeposit wxBillRent);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
index 01287d1ff..9dc3edd62 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
@@ -7,6 +7,7 @@ import com.iformall.domain.po.WxContractCustomers;
import com.iformall.domain.po.WxRentContract;
import com.iformall.domain.po.WxRentContractAgileDeposit;
import com.iformall.domain.po.WxRentContractAgileRenevue;
+import com.iformall.domain.po.WxRentContractAgileRenevueFees;
import com.iformall.domain.po.WxRentContractAgileRenevueItem;
import com.iformall.domain.po.WxRentContractAgileUnDeposit;
import com.iformall.domain.po.base.TenantEntity;
@@ -39,6 +40,8 @@ public interface WxAgileContractService {
List findUnDepositList(WxRentContractAgileUnDeposit unDeposit);
+ List findUnDepositFeesIdList(WxRentContractAgileUnDeposit unDeposit);
+
void createUnDepositBill(WxRentContractAgileUnDeposit unDeposit,MallUserInfo user);
WxRentContractAgileRenevue findRenevueByContract(Long rentContractId,TenantEntity tenantEntity);
@@ -51,6 +54,10 @@ public interface WxAgileContractService {
List findRenevueItemListByContract(Long rentContractId,TenantEntity tenantEntity);
+ List findRenevueFeesListByContract(Long rentContractId,TenantEntity tenantEntity);
+
+ WxRentContractAgileRenevueItem findOneRenevueItemByTime(Long rentContractId,TenantEntity tenantEntity,Date begin,Date end);
+
List findBuildingFloorContractIds(TenantEntity tenantEntity,String floorRule,Long building,Long floor,List shopIds,Integer shopDel);
List findShopContractIds(TenantEntity tenantEntity,List shopIds);
diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
index 6b61b374c..c7077776f 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
@@ -51,21 +51,6 @@ public interface WxRentContractService {
//Map getById(Long id,Integer noBillList);
WxRentContract selectById(Long id);
- /**
- * 保存或更新实体
- * @param record
- * @param userId
- * @param userName
- * @return
- */
- //ResultData save(WxRentContract record,MallUserInfo user,String userName,Date oldRentStartDate);
-
- //ResultData update(WxRentContract record, MallUserInfo user,String userName,int from,Date oldRentStartDate,boolean writeComplate,boolean setRevenJumps);
-
- //ResultData updateOneStep(WxRentContract record, MallUserInfo user,String userName,int from,Date oldRentStartDate,boolean writeComplate);
-
- //ResultData updateRentStartTime(WxRentContract record, MallUserInfo user);
-
/**
* 根据Id删除实体
*
@@ -76,62 +61,28 @@ public interface WxRentContractService {
void download(HttpServletRequest request, HttpServletResponse response);
- //Object getRentContractStatusInfo(WxRentContract record);
-
ResultData updateRentContract(WxRentContract wxRentContract);
PageInfo getRenevueContractList(WxRentContract rentContract, Integer pageNum, Integer pageSize);
- //void exportContract(HttpServletRequest request, HttpServletResponse response, Long rentId,Long propertyId);
-
- //ResultData updateFile(WxRentContract wxRentContract, MallUserInfo user,String userName,boolean writeComplate);
-
ResultData updateRentContractStatus(Long id,boolean buildPropertyBill);
List getShopIds(WxRentContract record) ;
void updateApplyStatus(WxRentContract wxRentContract);
- List getYearList(int years,int month,Date rentalStartDate,Date endContractTime );
- //List buildRent(MallUserInfo user,WxRentContract rentContract,Integer isPreview,boolean saveDb);
-
- //void buildDeposit( TenantEntity tenantEntity,MallUserInfo user,Long rentContractId);
-
- //void updateInvalidContract(Long rentContractId);
-
- //ResultData hasRentStatus(WxRentContract wxRentContract);
-
- //ResultData hasContractNumber(WxRentContract wxRentContract);
-
- //Integer getShopType(WxRentContract wxRentContract);
-
ResultData endContract(WxRentContract wxRentContract,MallUserInfo userInfo);
- //void updatePropertyPreviewBill(WxRentContract record);
-
- //Map updateStatus(WxRentContract record);
-
WxRentContract getByBill(WxAllBill billRent);
- //Map selectRentContractByShopIds(Collection shopIds, String shopIdsRegexp, TenantEntity tenantEntity);
-
- //int selectContractCountByShopId(WxRentContract wxRentContract);
-
- //ResultData getContractByContractNumber(WxRentContract wxRentContract);
-
ResultData apply(WxRentContract wxRentContract,MallUserInfo user);
- void renewal(WxRentContract wxRentContract,MallUserInfo user);
-
/**
* 合同正常到期
* @param
*/
void outDateContract(WxMall wxMall);
- //查询还有多少天到期的合同
- //List findToOutDateContracts(TenantEntity tenantEntity);
-
/**
* 已签约未计租 变为计租中
* @param wxMall
@@ -146,14 +97,8 @@ public interface WxRentContractService {
List findToEndContractList(WxRentContract record);
- void calcuteByTradeDaily(WxRentContract wxRentContract);
-
void deletePrewBill(WxRentContract wxRentContract);
- List getFreePeriods(WxRentContract wxRentContract);
-
- //void saveFreePeriods(WxRentContract wxRentContract);
-
List getContractSales(WxRentContract wxRentContract);
WxRentContractRevenueSetSalesVo setRevenueSales(MallUserInfo user,WxRentContract rentcontract,String sales,Date startime, Date endtime);
@@ -164,8 +109,6 @@ public interface WxRentContractService {
List findJumpList(WxRentContractRevenueJump jump);
- //List getRentContractYears(WxRentContract rentContract);
-
BigDecimal calcuteContractUsedShopArea(WxRentContract wxRentContract,Long shopId);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractAgileHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractAgileHelper.java
index c2439957b..bd092ccd1 100644
--- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractAgileHelper.java
+++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractAgileHelper.java
@@ -274,7 +274,7 @@ public class WxRentContractAgileHelper {
* @param end
* @return
*/
- private static String getMonthNeedPay(List freeDays,Integer decimalSize,BigDecimal price,Date start,Date end,
+ public static String getMonthNeedPay(List freeDays,Integer decimalSize,BigDecimal price,Date start,Date end,
EnumRentContractAgilTimeUnit timeUnit,int time,EnumRentDayPriceCalcute dayPriceRule,Integer monthAvageDays){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM");
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
index d329bf7d6..2af83c2f1 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
@@ -555,6 +555,11 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
return list;
}
+
+ @Override
+ public List findUnDepositFeesIdList(WxRentContractAgileUnDeposit unDeposit) {
+ return wxRentContractAgileUnDepositMapper.findFeesIdList(unDeposit);
+ }
@Override
@@ -918,6 +923,29 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
iq.setSortColumn("begin_time asc");
return wxRentContractAgileRenevueItemMapper.findList(iq);
}
+
+ @Override
+ public List findRenevueFeesListByContract(Long rentContractId,TenantEntity tenantEntity) {
+ WxRentContractAgileRenevueFees iq = new WxRentContractAgileRenevueFees();
+ iq.updateTenantInfo(tenantEntity);
+ iq.setRentContractId(rentContractId);
+ return wxRentContractAgileRenevueFeesMapper.findList(iq);
+ }
+
+ @Override
+ public WxRentContractAgileRenevueItem findOneRenevueItemByTime(Long rentContractId,TenantEntity tenantEntity,Date begin,Date end) {
+ WxRentContractAgileRenevueItem iq = new WxRentContractAgileRenevueItem();
+ iq.updateTenantInfo(tenantEntity);
+ iq.setRentContractId(rentContractId);
+ iq.setValidBeginTime(begin);
+ iq.setValidEndTime(end);;
+ iq.setSortColumn("begin_time asc");
+ List items = wxRentContractAgileRenevueItemMapper.findList(iq);
+ if (null == items || items.size() <= 0 ) {
+ return null;
+ }
+ return items.get(0);
+ }
@Override
public List findBuildingFloorContractIds(TenantEntity tenantEntity, String floorRule, Long building,
@@ -1062,6 +1090,25 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
}
+// WxRentContractRevenue
+// WxRentContractRevenueItem
+// WxRentContractRevenueFees
+
+ WxRentContractRevenueJump crjq = new WxRentContractRevenueJump();
+ crjq.updateTenantInfo(rentContract);
+ crjq.setRentContractId(rentContract.getId());
+ List jumpList = wxRentContractRevenueJumpMapper.findList(crjq);
+ if ( null != jumpList && jumpList.size() > 0 ) {
+ for (int i = 0 ; i < jumpList.size(); i++) {
+ WxRentContractRevenueJump rj = jumpList.get(i);
+ rj.setRentContractId(newContractId);
+ rj.setId(idWorker.nextId());
+ rj.setCreateTime(new Date());
+ rj.setUpdateTime(new Date());
+ wxRentContractRevenueJumpMapper.insert(rj);
+ }
+ }
+
rentContract.setId(newContractId);
rentContract.setCreatetime(new Date());
rentContract.setCreateBy(user.getId());
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 209c44f41..f126b3543 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
@@ -24,6 +24,10 @@ import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxMerchantTradeDaily;
import com.iformall.domain.po.WxPayAccountBill;
import com.iformall.domain.po.WxRentContract;
+import com.iformall.domain.po.WxRentContractAgileRenevue;
+import com.iformall.domain.po.WxRentContractAgileRenevueFees;
+import com.iformall.domain.po.WxRentContractAgileRenevueItem;
+import com.iformall.domain.po.WxRentContractAgileUnDeposit;
import com.iformall.domain.po.WxRentContractFreePeriod;
import com.iformall.domain.po.WxRentContractRevenueJump;
import com.iformall.domain.po.WxRentContractRevenueSales;
@@ -38,6 +42,7 @@ import com.iformall.domain.vo.WxBillSum;
import com.iformall.domain.vo.WxRentContractRevenueSetSalesVo;
import com.iformall.domain.vo.WxRentContractYearsSumVo;
import com.iformall.domain.vo.WxRentContractYearsVo;
+import com.iformall.enums.EnumAgileContractType;
import com.iformall.enums.EnumBillAction;
import com.iformall.enums.EnumBillExtraCreateFrom;
import com.iformall.enums.EnumBillStatus;
@@ -56,6 +61,8 @@ import com.iformall.enums.EnumPriceUnit;
import com.iformall.enums.EnumRentAgileType;
import com.iformall.enums.EnumRentContractAdjustPeriod;
import com.iformall.enums.EnumRentContractAdjustRatioWay;
+import com.iformall.enums.EnumRentContractAgilPriceUnit;
+import com.iformall.enums.EnumRentContractAgilTimeUnit;
import com.iformall.enums.EnumRentContractAgileFeesType;
import com.iformall.enums.EnumRentContractAppStatus;
import com.iformall.enums.EnumRentContractManageFeeType;
@@ -248,217 +255,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return wxRentContractMapper.findIdList(record);
}
-// @Override
-// public Map getById(Long id,Integer noBillList) {
-// Map result = new HashMap<>();
-// WxRentContract wxRentContract = wxRentContractMapper.selectById(id);
-// if (wxRentContract == null) {
-// throw new MallinkException(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND);
-// }
-//
-// WxContractCustomers customers = wxContractCustomersMapper.selectById(wxRentContract.getCustomersId(),wxRentContract.getTenantId());
-// wxRentContract.setCustomerType(customers.getPrincipalType());
-// wxRentContract.setCustomerLinkPerson(customers.getLinkPerson());
-// wxRentContract.setCustomerName(customers.getName());
-// wxRentContract.setCustomerPhone(customers.getPhone());
-// wxRentContract.setCustomerLegalPerson(customers.getLegalPerson());
-//
-// //init dateDiff
-// if(wxRentContract.getRentalStartDate() != null && wxRentContract.getRentalEndDate() != null){
-// //加1天
-// Date newEndDate = DateUtils.getDaySet(wxRentContract.getRentalEndDate(),Calendar.DATE,1);
-// int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),newEndDate);
-// result.put("totalPeriodMonth",array[0]);
-// result.put("totalPeriodDay",array[1]);
-// }
-//
-// //init 租赁单价
-// String rentInfo = wxRentContract.getRentInfo();
-// if(StringUtils.isNotBlank(rentInfo)){
-// JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
-// int size = rentInfoArray.size();
-// //查询rent_info 包括shopId
-// for (int i = 0; i < size; i++) {
-// JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
-// BigDecimal rentPrice = rentInfoObject.getBigDecimal("rentPrice");
-// //wxRentContract.setShopId(rentInfoObject.getLong("shopId"));
-// String price = wxRentContract.getPrice();
-// if(rentPrice == null){
-// if(StringUtils.isNotBlank(wxRentContract.getRentArea()) && !"0".equals(wxRentContract.getRentArea()) && !"0.00".equals(wxRentContract.getRentArea()) && !"0.0".equals(wxRentContract.getRentArea()) ) {
-// Double rentArea = Double.parseDouble(wxRentContract.getRentArea());
-// rentPrice = new BigDecimal(price).divide(new BigDecimal(rentArea),wxRentContract.getDecimalSize(), BigDecimal.ROUND_HALF_UP);
-// rentInfoObject.put("rentPrice", rentPrice);
-// }
-// }
-// }
-// wxRentContract.setRentInfo(rentInfoArray.toJSONString());
-// }else{
-// if(wxRentContract.getRentPrice() == null || "0".equals(wxRentContract.getRentPrice())){
-// if(StringUtils.isNotBlank(wxRentContract.getRentArea()) && !"0".equals(wxRentContract.getRentArea()) && !"0.00".equals(wxRentContract.getRentArea()) && !"0.0".equals(wxRentContract.getRentArea()) ) {
-// String price = wxRentContract.getPrice();
-// Double rentArea = Double.parseDouble(wxRentContract.getRentArea());
-// BigDecimal rentPrice = new BigDecimal(price).divide(new BigDecimal(rentArea),wxRentContract.getDecimalSize(), BigDecimal.ROUND_HALF_UP);
-// if(rentPrice.compareTo(new BigDecimal(0)) > 0){
-// wxRentContract.setRentPrice(rentPrice.toString());
-// }else{
-// wxRentContract.setRentPrice("0");
-// }
-// }
-//
-// }
-// }
-// if(wxRentContract.getPriceUnit() == null){
-// wxRentContract.setPriceUnit(EnumPriceUnit.M.getCode());
-// }
-// if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){
-// wxRentContract.setAdjustPeriod(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode());
-// wxRentContract.setPriceUnit(EnumPriceUnit.D.getCode());
-// }
-//
-// //商场信息
-// WxMall wxMall = new WxMall();
-// wxMall.setTenantInfo(wxRentContract);
-// List mallList = wxMallService.findList(wxMall);
-// if (!mallList.isEmpty()) {
-// result.put("mall", mallList.get(0));
-// }
-// wxRentContract.setPrice(StringUtils.isNotBlank(wxRentContract.getPrice()) ? wxRentContract.getPrice() : "0");
-// wxRentContract.setDeposit(StringUtils.isNotBlank(wxRentContract.getDeposit()) ? wxRentContract.getDeposit() : "0");
-//
-// //免租期
-// WxRentContractFreePeriod fpq = new WxRentContractFreePeriod();
-// fpq.updateTenantInfo(wxRentContract);
-// fpq.setRentContractId(wxRentContract.getId());
-// fpq.setSortColumn("year_index asc,start_date asc");
-// List freePeroids = wxRentContractFreePeriodMapper.findList(fpq);
-// wxRentContract.setFreeVo(freePeroids);
-//
-// //跳点设置
-// WxRentContractRevenueJump jq = new WxRentContractRevenueJump();
-// jq.updateTenantInfo(wxRentContract);
-// jq.setRentContractId(wxRentContract.getId());
-// wxRentContract.setRevenueJumps(wxRentContractRevenueJumpMapper.findList(jq));
-// result.put("wxRentContract", wxRentContract);
-// //关联的店铺
-// if (wxRentContract.shopIdsByRentInfo().size()> 0) {
-// WxShop record = new WxShop();
-// //record.setId(wxRentContract.getShopId());
-// record.setIds(wxRentContract.shopIdsByRentInfo());
-// record.updateTenantInfo(wxRentContract);
-// PageInfo
and `rent_contract_id` = #{rentContractId}
and `agile_renevue_id` = #{agileRenevueId}
+ and `fees_id` = #{feesId}
and id in
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
index 6929c5064..783a0b685 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
@@ -33,6 +33,8 @@
and `rent_contract_id` = #{rentContractId}
and `renevue_id` = #{renevueId}
and `is_father` = #{isFather}
+ and `begin_time` <= #{validBeginTime}
+ and `end_time` >= #{validEndTime}
and id in
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueMapper.xml
index 3d749af54..b89e6b466 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueMapper.xml
@@ -12,11 +12,12 @@
+
`id`,`tenant_id`,`parent_tenant_id`,`rent_contract_id`,
- `time_period`,`time_unit`,`calcute_time`,`fees_create_rule`,`createtime`,`updatetime`
+ `time_period`,`time_unit`,`calcute_time`,`fees_create_rule`,`createtime`,`updatetime`,`limit_revenue`
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
index 316e2aa3b..c7ad60a4f 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
@@ -56,6 +56,12 @@
+
+ select distinct fees_id
+ from wx_rent_contract_agile_un_deposit
+
+
+
select
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractRevenueSalesMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractRevenueSalesMapper.xml
index d76af906f..a588d0706 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractRevenueSalesMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractRevenueSalesMapper.xml
@@ -8,7 +8,6 @@
-
@@ -21,7 +20,7 @@
- `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`rent_contract_id`,`property_contract_id`,`starttime`,`endtime`,
+ `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`rent_contract_id`,`starttime`,`endtime`,
`sale_money`,`sale_money_valid`,`calcute_money`,`remark`,`is_confirm`,`is_calcute`
@@ -35,7 +34,6 @@
and `parent_tenant_id` = #{parentTenantId}
and `rent_contract_id` = #{rentContractId}
- and `property_contract_id` = #{propertyContractId}
and `starttime` >= #{starttime}
and `starttime` = #{starttimeEqual}
and `endtime` <= #{endtime}
From 6a68ae86a0e30f797f21a92506037320666bd588 Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Fri, 23 May 2025 23:32:08 +0800
Subject: [PATCH 09/13] fix
---
.../contract/WxRentContractController.java | 18 +--
.../service/WxAgileContractService.java | 4 +
.../service/WxRentContractService.java | 2 -
.../impl/WxAgileContractServiceImpl.java | 79 ++++++++++++
.../impl/WxRentContractServiceImpl.java | 112 +++++++-----------
5 files changed, 132 insertions(+), 83 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
index faa659f8b..8674bf896 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
@@ -377,8 +377,8 @@ public class WxRentContractController extends WxContractBaseController {
* @param sales
* @return
*/
- @GetMapping("revenuePropertyContract")
- public ResultData revenuePropertyContract(@ModelAttribute WxRentContractRevenueSales sales) {
+ @GetMapping("revenueUpFeesBills")
+ public ResultData revenueUpFeesBills(@ModelAttribute WxRentContractRevenueSales sales) {
sales.updateTenantInfo(getTenantInfo());
WxRentContractAgileUnDeposit udq = new WxRentContractAgileUnDeposit();
udq.updateTenantInfo(sales);
@@ -423,13 +423,13 @@ public class WxRentContractController extends WxContractBaseController {
return new ResultData(wxRentContractService.setRevenueSales(this.getUser(),rentContract,wxRentContract.getSalesMoney(),wxRentContract.getSalesStartTime(),wxRentContract.getSalesEndTime()));
}
-// //查询合同年限
-// @GetMapping("getContractYears")
-// public ResultData getContractYears(@ModelAttribute WxRentContract wxRentContract) {
-// if (null == wxRentContract) wxRentContract = new WxRentContract();
-// WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId());
-// return new ResultData(wxRentContractService.getRentContractYears(rentContract));
-// }
+ //查询合同年限
+ @GetMapping("getContractYears")
+ public ResultData getContractYears(@ModelAttribute WxRentContract wxRentContract) {
+ if (null == wxRentContract) wxRentContract = new WxRentContract();
+ WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId());
+ return new ResultData(wxAgileContractService.getRentContractYears(rentContract));
+ }
//查询合同年限已输入销售额情况
@PostMapping("getContractYearsSales")
diff --git a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
index 9dc3edd62..3398314fd 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
@@ -10,7 +10,9 @@ import com.iformall.domain.po.WxRentContractAgileRenevue;
import com.iformall.domain.po.WxRentContractAgileRenevueFees;
import com.iformall.domain.po.WxRentContractAgileRenevueItem;
import com.iformall.domain.po.WxRentContractAgileUnDeposit;
+import com.iformall.domain.po.WxRentContractRevenueSales;
import com.iformall.domain.po.base.TenantEntity;
+import com.iformall.domain.vo.WxRentContractYearsVo;
import java.math.BigDecimal;
import java.util.Date;
@@ -71,4 +73,6 @@ public interface WxAgileContractService {
void renewalAgile(WxRentContract wxRentContract,MallUserInfo user);
void transfer(WxRentContract wxRentContract,MallUserInfo user);
+
+ List getRentContractYears(WxRentContract rentContract);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
index c7077776f..a0d9282f3 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
@@ -109,6 +109,4 @@ public interface WxRentContractService {
List findJumpList(WxRentContractRevenueJump jump);
- BigDecimal calcuteContractUsedShopArea(WxRentContract wxRentContract,Long shopId);
-
}
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
index 2af83c2f1..65f461d30 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
@@ -27,6 +27,7 @@ import com.iformall.domain.po.WxShop;
import com.iformall.domain.po.WxShopUsers;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.BillTimeVo;
+import com.iformall.domain.vo.WxRentContractYearsVo;
import com.iformall.enums.EnumBillExtraCreateFrom;
import com.iformall.enums.EnumContractCustomersStatus;
import com.iformall.enums.EnumFeesShopTimeType;
@@ -79,6 +80,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -1168,5 +1170,82 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
wxAllBillMapper.transferCusName(bill);
}
+
+ @Override
+ public List getRentContractYears(WxRentContract rentContract) {
+ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
+ int [] diffs = DateUtils.getDiff(rentContract.getRentalStartDate(),rentContract.getRentalEndDate());
+ int months = diffs[0];
+ int days = diffs[1];
+ int ext = months % 12;
+ int years = months/12;
+ if (ext > 0 ) {
+ years = years + 1;
+ }else {
+ if (days > 0 ) {
+ years = years + 1;
+ }
+ }
+ //如果有撤铺日
+ Date endcontract = rentContract.getEndContractTime();
+ if (null != endcontract) {
+ endcontract = DateUtils.getDayEnd(endcontract);
+ }
+ List yearList = this.getYearList(years, 12, rentContract.getRentalStartDate(),endcontract);
+ List retList = new ArrayList();
+ if (null != yearList && yearList.size() > 0) {
+ if (yearList.size() == 1) {
+ WxRentContractYearsVo vo = new WxRentContractYearsVo();
+ vo.setStart(yearList.get(0));
+ vo.setEnd(rentContract.getRentalEndDate());
+ vo.setRemark("第1年度");
+ vo.setYearIndex(1);
+ retList.add(vo);
+ }else {
+ Date begin = null;
+ for (int i = 0 ; i < yearList.size()-1 ; i ++) {
+ int yearindex = i+1;
+ begin = yearList.get(i);
+ Date end = yearList.get(i+1);
+ Date realEnd = DateUtils.getDaySet(end, Calendar.SECOND, -1);
+ WxRentContractYearsVo vo = new WxRentContractYearsVo();
+ vo.setStart(begin);
+ vo.setEnd(realEnd);
+ vo.setRemark("第"+yearindex+"年度");
+ vo.setYearIndex(yearindex);
+ retList.add(vo);
+ begin = end;
+ }
+ WxRentContractYearsVo vo = new WxRentContractYearsVo();
+ vo.setStart(yearList.get(yearList.size()-1));
+ vo.setEnd(rentContract.getRentalEndDate());
+ vo.setRemark("第"+yearList.size()+"年度");
+ vo.setYearIndex(yearList.size());
+ retList.add(vo);
+ }
+ }
+ if (retList.size() > 0 ) {
+ return retList;
+ }
+ return null;
+ }
+
+ private List getYearList(int years,int month,Date rentalStartDate,Date endContractTime ) {
+ List yearList = new ArrayList();
+ for (int i = 0; i < years; i++) {
+ Calendar instance = Calendar.getInstance();
+ instance.setTime(rentalStartDate);
+ instance.set(Calendar.MILLISECOND, 0);
+ instance.add(Calendar.MONTH, month * i);
+ Date startDate = instance.getTime();
+ if (null != endContractTime && endContractTime.before(startDate)) {
+ yearList.add(endContractTime);
+ break;
+ }else {
+ yearList.add(startDate);
+ }
+ }
+ return yearList;
+ }
}
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 f126b3543..0ed136829 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
@@ -1011,27 +1011,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}else {
sb.append("跳点规则计算金额:"+jumppay.toPlainString()+",扣点规则计算金额:"+needpay+".");
}
-
- //如果是取高的,则取高计算
- if (rentcontract.getType().intValue() == EnumAgileContractType.RENEVUE_UP.getCode().intValue()) {
- //查询所有参与取高的款项的账单
- WxRentContractAgileUnDeposit udq = new WxRentContractAgileUnDeposit();
- udq.updateTenantInfo(rentcontract);
- udq.setRentContractId(rentcontract.getId());
- udq.setJoinRenevueUp(EnumYesOrNo.YES.getCode());
- List udlist = wxAgileContractService.findUnDepositFeesIdList(udq);
- if (null != udlist && udlist.size() > 0 ){
- WxAllBill udbill = new WxAllBill();
- udbill.updateTenantInfo(rentcontract);
- udbill.setRentContractId(rentcontract.getId());
- udbill.setEnergyFeesIds(udlist);
- BigDecimal uneedPay = wxAllBillMapper.getReceivePaySum(udbill);
- if (null != uneedPay && uneedPay.compareTo(new BigDecimal(0)) > 0 ){
- sb.append("参与取高款项计算金额:"+uneedPay.toPlainString());
- if (uneedPay.compareTo(new BigDecimal(needpay)) > 0 ) {
- needpay = uneedPay.toPlainString();
- }
- }
+ BigDecimal uneedPay = getJoinRenevueUpFeesReceivePayTotal(rentcontract,startime,endtime,true);
+ if (null != uneedPay && uneedPay.compareTo(new BigDecimal(0)) > 0 ){
+ sb.append("参与取高款项计算金额:"+uneedPay.toPlainString());
+ if (uneedPay.compareTo(new BigDecimal(needpay)) > 0 ) {
+ needpay = uneedPay.toPlainString();
}
}
@@ -1043,6 +1027,35 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
}
+ private BigDecimal getJoinRenevueUpFeesReceivePayTotal(WxRentContract rentcontract,Date begin,Date end,boolean isEqualTime) {
+ //如果是取高的,则取高计算
+ if (rentcontract.getType().intValue() == EnumAgileContractType.RENEVUE_UP.getCode().intValue()) {
+ //查询所有参与取高的款项的账单
+ WxRentContractAgileUnDeposit udq = new WxRentContractAgileUnDeposit();
+ udq.updateTenantInfo(rentcontract);
+ udq.setRentContractId(rentcontract.getId());
+ udq.setJoinRenevueUp(EnumYesOrNo.YES.getCode());
+ List udlist = wxAgileContractService.findUnDepositFeesIdList(udq);
+ if (null != udlist && udlist.size() > 0 ){
+ WxAllBill udbill = new WxAllBill();
+ udbill.updateTenantInfo(rentcontract);
+ udbill.setRentContractId(rentcontract.getId());
+ udbill.setIsPreview(EnumYesOrNo.NO.getCode());
+ udbill.setEnergyFeesIds(udlist);
+ if (isEqualTime) {
+ udbill.setStarttimeEqual(begin);
+ udbill.setEndtimeEqual(end);
+ }else {
+ udbill.setStarttime(rentcontract.getYearsBegin());
+ udbill.setEndtime(rentcontract.getYearsEnd());
+ };
+ BigDecimal uneedPay = wxAllBillMapper.getReceivePaySum(udbill);
+ return uneedPay;
+ }
+ }
+ return null;
+ }
+
private void addRevenueSales(WxRentContract rentcontract,Date starttime,Date endtime,String needpay,String sales,BigDecimal saleDecimalValid) {
WxRentContractRevenueSales rs = new WxRentContractRevenueSales();
rs.updateTenantInfo(rentcontract);
@@ -1242,27 +1255,12 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
}
- BigDecimal receivepay = new BigDecimal(0);
- //查询合同租金所有应收的账单
- //查询所有租金+营业管理费+商业管理费账单的信息,因为设置销售额会自动的创建或者更新对应的账单
- WxAllBill rentBillq = new WxAllBill();
- rentBillq.updateTenantInfo(rentcontract);
- rentBillq.setRentContractId(rentcontract.getId());
- List feesIdList = new ArrayList();
- //feesIdList.add(EnumBillAllType.RENT.getEnergyFeesId());
- //feesIdList.add(EnumBillAllType.RENT_BUSSINESS_MANAGE.getEnergyFeesId());
- //feesIdList.add(EnumBillAllType.RENT_OPERATION_MANAGE.getEnergyFeesId());
- rentBillq.setEnergyFeesIds(feesIdList);
- rentBillq.setIsPreview(EnumYesOrNo.NO.getCode());
- rentBillq.setStarttime(rentcontract.getYearsBegin());
- rentBillq.setEndtime(rentcontract.getYearsEnd());
- WxBillSum rentBillSum = wxAllBillMapper.getBillMonthSum(rentBillq);
- if (null != rentBillSum) {
- receivepay = receivepay.add(rentBillSum.getNeedPayNumber());
+ //查询所有参与取高的账单金额
+ BigDecimal receivepay = getJoinRenevueUpFeesReceivePayTotal(rentcontract,rentcontract.getYearsBegin(),rentcontract.getYearsEnd(),false);
+ if (null == receivepay ){
+ receivepay = new BigDecimal(0);
}
- //查询对应的物业账单,包括录入销售额自动生成的
-
WxRentContractYearsSumVo vo = new WxRentContractYearsSumVo();
vo.setTotalSales(sum.toPlainString());
vo.setTotalRevenue(jumpRevenuePay.toPlainString());
@@ -1277,32 +1275,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
private WxRentContractRevenueSetSalesVo handelHuiSuanBills(MallUserInfo user,WxRentContract rentcontract,String owe) {
-// //计算每一年的基数
-// List priceArrs = WxRentContractHelper.calcuteRentAndRevenuePrice(rentcontract);
-// String[] rentPriceArrs = priceArrs.get(0);
-// //String[] revenuePriceArrs = priceArrs.get(1);
-// //计算商业管理费
-// String[] bussinessManagerPriceArrs = WxRentContractHelper.calcuteBussinessManagementFee(rentcontract);
-// //计算运营管理费
-// String[] operationManagerPriceArrs = WxRentContractHelper.calcuteOperatingManagementFee(rentcontract);
-//
-// //物业费单价
-// String[] propertyContractArrs = null;
-// List yearList = this.getYearList(rentPriceArrs.length, 12, rentcontract.getRentalStartDate(),null);
-// int yearIndex = 0;
-// for( int i = 0 ; i < yearList.size() ; i ++) {
-// Date yearEndDate = yearList.get(i);
-// if (rentcontract.getYearsBegin().before(yearEndDate) || rentcontract.getYearsEnd().equals(yearEndDate)) {
-// yearIndex = i-1;
-// break;
-// }
-// }
-// if (yearIndex <= 0 ) {
-// yearIndex = 0;
-// }
-// StringBuffer sb = new StringBuffer("");
-// return handleBills(user,sb,rentcontract,null,owe,null,rentcontract.getYearsBegin(),rentcontract.getYearsEnd(),EnumBillExtraCreateFrom.RNET_TIAODIAN_HUISUAN,null,rentPriceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs,propertyContractArrs,yearIndex);
- return null;
+ StringBuffer sb = new StringBuffer("");
+ return handleBills(user,sb,rentcontract,owe,rentcontract.getYearsBegin(),rentcontract.getYearsEnd(),EnumBillExtraCreateFrom.RNET_TIAODIAN_HUISUAN);
}
@@ -1311,10 +1285,4 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return wxRentContractRevenueJumpMapper.findList(jump);
}
- @Override
- public BigDecimal calcuteContractUsedShopArea(WxRentContract wxRentContract,Long shopId) {
- //根据合同区间查询已使用合同的总面积
- return null;
- }
-
}
From ac63e8be793cc0f38fe48ac5f1a07e6381b86f40 Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Sun, 25 May 2025 11:31:25 +0800
Subject: [PATCH 10/13] fix
---
.../contract/WxAgileContractController.java | 2 -
.../impl/WxAgileContractServiceImpl.java | 57 +++++++++++++++----
.../impl/WxRentContractServiceImpl.java | 21 +------
3 files changed, 48 insertions(+), 32 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
index 6c47dc4da..f2c286447 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
@@ -479,8 +479,6 @@ public class WxAgileContractController extends WxContractBaseController {
rentContract.setSignDate(wxRentContract.getSignDate());
rentContract.setStartDate(wxRentContract.getStartDate());
rentContract.setEndDate(wxRentContract.getStartDate());
- rentContract.setFixStartDate(wxRentContract.getFixStartDate());
- rentContract.setFixEndDate(wxRentContract.getFixEndDate());
try {
rentContractValidShop(rentContract);
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
index 65f461d30..028f0f86c 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
@@ -1031,8 +1031,6 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
}
- //WxContractCustomers ccq = new WxContractCustomers();
-
WxRentContractAgileDeposit cadq = new WxRentContractAgileDeposit();
cadq.updateTenantInfo(rentContract);
cadq.setRentContractId(rentContract.getId());
@@ -1092,9 +1090,50 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
}
-// WxRentContractRevenue
-// WxRentContractRevenueItem
-// WxRentContractRevenueFees
+ WxRentContractAgileRenevue rq = new WxRentContractAgileRenevue();
+ rq.updateTenantInfo(rentContract);
+ rq.setRentContractId(rentContract.getId());
+ List renevueList = wxRentContractAgileRenevueMapper.findList(rq);
+ Long renevueId = null;
+ if (null != renevueList && renevueList.size() > 0 ) {
+ for (int i = 0 ; i < renevueList.size() ; i++) {
+ WxRentContractAgileRenevue ar = renevueList.get(i);
+ ar.setRentContractId(newContractId);
+ ar.setId(idWorker.nextId());
+ ar.setCreatetime(new Date());
+ ar.setUpdatetime(new Date());
+ wxRentContractAgileRenevueMapper.insert(ar);
+ renevueId = ar.getId();
+ }
+ }
+ if (null != renevueId) {
+ WxRentContractAgileRenevueItem ari = new WxRentContractAgileRenevueItem();
+ ari.setRentContractId(newContractId);
+ ari.setRenevueId(renevueId);
+ ari.setBeginTime(rentContract.getRentalStartDate());
+ ari.setBeginTime(rentContract.getRentalEndDate());
+ ari.setRate("0");
+ ari.setIsFree(EnumYesOrNo.NO.getCode());
+ ari.setId(idWorker.nextId());
+ ari.setCreatetime(new Date());
+ ari.setUpdatetime(new Date());
+ wxRentContractAgileRenevueItemMapper.insert(ari);
+ }
+ WxRentContractAgileRenevueFees fq = new WxRentContractAgileRenevueFees();
+ fq.updateTenantInfo(rentContract);
+ fq.setRentContractId(rentContract.getId());
+ List renevueFeesList = wxRentContractAgileRenevueFeesMapper.findList(fq);
+ if (null != renevueFeesList && renevueFeesList.size() > 0 && null != renevueId ) {
+ for (int i = 0 ; i < renevueFeesList.size() ; i++) {
+ WxRentContractAgileRenevueFees arf = renevueFeesList.get(i);
+ arf.setRentContractId(newContractId);
+ arf.setAgileRenevueId(renevueId);
+ arf.setId(idWorker.nextId());
+ arf.setCreatetime(new Date());
+ arf.setUpdatetime(new Date());
+ wxRentContractAgileRenevueFeesMapper.insert(arf);
+ }
+ }
WxRentContractRevenueJump crjq = new WxRentContractRevenueJump();
crjq.updateTenantInfo(rentContract);
@@ -1118,17 +1157,11 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
rentContract.setUpdatetime(new Date());
rentContract.setUpdateBy(user.getId());
rentContract.setUpdateByName(user.getName());
- rentContract.setStatus(EnumRentContractStatus.DRAFT.getCode());
+ rentContract.setStatus(EnumRentContractStatus.UNWRITE.getCode());
rentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode());
rentContract.setEndContractTime(null);
- //rentContract.setFirstBillDateStart(null);
- //rentContract.setFirstBillDateEnd(null);
- //rentContract.setFirstBillReceiveDate(null);
int[] array = DateUtils.getDiff(rentContract.getRentalStartDate(),rentContract.getRentalEndDate());
rentContract.setLease(array[0]);
- //rentContract.setAdjustRatio();
- //rentContract.setRevenueRatioSet();
- //rentContract.set
wxRentContractMapper.insert(rentContract);
}
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 0ed136829..c27c68977 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
@@ -1111,7 +1111,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
WxRentContractAgileRenevueFees fee = fees.get(i);
//更新账单费用
BigDecimal fneedpay = new BigDecimal(needpay).multiply(new BigDecimal(fee.getRate()).divide(new BigDecimal(100))).setScale(rentcontract.getDecimalSize(),BigDecimal.ROUND_HALF_UP);
- List renBill = generateRenevueBill(user,shopIdList,shopMap,shopUserMap,shopAreaRateMap,rentcontract,fneedpay,fee.getRate(),startDate,endDate,createFrom);
+ List renBill = generateRenevueBill(fee.getFeesId(),user,shopIdList,shopMap,shopUserMap,shopAreaRateMap,rentcontract,fneedpay,fee.getRate(),startDate,endDate,createFrom);
allbill.addAll(renBill);
}
@@ -1121,22 +1121,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return vo;
}
-
- private void createBillAction(WxAllBill bill,String oldMoney,String newMoney,MallUserInfo user) {
- WxBillAction wxBillAction = new WxBillAction();
- wxBillAction.setBillId(bill.getId());
- //wxBillAction.setBillType(bill.getBillType());
- wxBillAction.setOldMoney(oldMoney);
- wxBillAction.setNewMoney(newMoney);
- wxBillAction.setDetails(EnumBillAction.UPDATE_BILL.getDescription(oldMoney, newMoney,null,null,null,null));
- wxBillAction.setAction(EnumBillAction.UPDATE_BILL.getCode());
- wxBillAction.setRemark(bill.getBillRemark());
- wxBillAction.setUserType(EnumSystemUserType.ADMIN.getCode());
- wxBillActionService.modifyBill(wxBillAction, user);
- }
-
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
- public List generateRenevueBill(MallUserInfo user,List shopIds,Map shopMap,Map shopUserMap,Map shopAreaRateMap,WxRentContract rentcontract,
+ public List generateRenevueBill(Long feesId,MallUserInfo user,List shopIds,Map shopMap,Map shopUserMap,Map shopAreaRateMap,WxRentContract rentcontract,
BigDecimal moneyb,String rate,Date starttime,Date endtime,EnumBillExtraCreateFrom createFrom) {
List billList = new ArrayList();
for (int i = 0 ; i < shopIds.size(); i++) {
@@ -1149,8 +1135,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
final IdWorker idWorker = IdWorker.get();
bmbill.setId(idWorker.nextId());
bmbill.updateTenantInfo(rentcontract);
- //bmbill.setBillType(EnumBillAllType.RENT.getCode());
- //bmbill.setEnergyFeesId(EnumBillAllType.RENT.getEnergyFeesId());
+ bmbill.setEnergyFeesId(feesId);
bmbill.setRentContractId(rentcontract.getId());
bmbill.setIsPreview(EnumYesOrNo.NO.getCode());
bmbill.setCanEdit(EnumYesOrNo.NO.getCode());
From ff0231782fa62179e9496eef0265150fb8916101 Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Sun, 25 May 2025 11:55:42 +0800
Subject: [PATCH 11/13] fix
---
.../contract/WxAgileContractController.java | 8 --
.../iformall/domain/po/WxRentContract.java | 104 ++++--------------
.../resources/mapper/WxRentContractMapper.xml | 21 +---
3 files changed, 27 insertions(+), 106 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
index f2c286447..aa99bd574 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
@@ -155,8 +155,6 @@ public class WxAgileContractController extends WxContractBaseController {
if (null == wxRentContract.getSignDate()) {
return new ResultData(Result.ERROR,"请选择合同签约日期");
}
- wxRentContract.setStartDate(wxRentContract.getRentalStartDate());
- wxRentContract.setEndDate(wxRentContract.getRentalEndDate());
String rentInfo = wxRentContract.getRentInfo();
if (StringUtils.isBlank(rentInfo)) {
return new ResultData(Result.ERROR,"请选择铺位");
@@ -455,10 +453,6 @@ public class WxAgileContractController extends WxContractBaseController {
return new ResultData(Result.ERROR, "请选择租赁开始日期和截止日期");
}
- if (null == wxRentContract.getStartDate()){
- return new ResultData(Result.ERROR, "请选择计租日期");
- }
-
if (null == wxRentContract.getSignDate()){
return new ResultData(Result.ERROR, "请选择签约日期");
}
@@ -477,8 +471,6 @@ public class WxAgileContractController extends WxContractBaseController {
rentContract.setRentalStartDate(wxRentContract.getRentalStartDate());
rentContract.setRentalEndDate(wxRentContract.getRentalEndDate());
rentContract.setSignDate(wxRentContract.getSignDate());
- rentContract.setStartDate(wxRentContract.getStartDate());
- rentContract.setEndDate(wxRentContract.getStartDate());
try {
rentContractValidShop(rentContract);
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
index 28895bf0b..30981e688 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
@@ -60,37 +60,18 @@ public class WxRentContract extends TenantEntity {
private Date rentalStartDate;
@io.swagger.annotations.ApiModelProperty(value = "祖赁截止时间", name = "rentalEndDate")
private Date rentalEndDate;
- @io.swagger.annotations.ApiModelProperty(value = "计租开始日期", name = "startDate")
- private Date startDate;
- @io.swagger.annotations.ApiModelProperty(value = "计租截止日期", name = "endDate")
- private Date endDate;
@io.swagger.annotations.ApiModelProperty(value = "施工图纸", name = "designFile")
private String designFile;
- @io.swagger.annotations.ApiModelProperty(value = "装修期开始时间", name = "fixStartDate")
- private Date fixStartDate;
- @io.swagger.annotations.ApiModelProperty(value = "装修期结束时间", name = "fixEndDate")
- private Date fixEndDate;
@io.swagger.annotations.ApiModelProperty(value = "租期总月数(月)", name = "lease")
private Integer lease;
-
@io.swagger.annotations.ApiModelProperty(value = "来源ID,针对续签,从哪个合同续签", name = "fromId")
private Long fromId;
-
- //地址
+ //联系地址
private String linkAddress;
-
@io.swagger.annotations.ApiModelProperty(value = "联系人", name = "linkPerson")
private String linkPerson;
-
@io.swagger.annotations.ApiModelProperty(value = "联系电话", name = "linkPhone")
private String linkPhone;
-
- @io.swagger.annotations.ApiModelProperty(value = "付款账号", name = "payAccount")
- private String payAccount;
-
- @io.swagger.annotations.ApiModelProperty(value = "开户行", name = "bankName")
- private String bankName;
-
@io.swagger.annotations.ApiModelProperty(value = "金额小数点位数", name = "decimalSize")
private Integer decimalSize = Constant.default_short_decimal_size ;
@TableField(exist = false)
@@ -98,6 +79,8 @@ public class WxRentContract extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "合同文件路径", name = "filepath")
private String filepath;
+ @io.swagger.annotations.ApiModelProperty(value = "上传文件名", name = "fileNames")
+ private String fileNames;
@io.swagger.annotations.ApiModelProperty(value = "EnumRentContractStatus", name = "status")
private Integer status;
@TableField(exist = false)
@@ -113,7 +96,6 @@ public class WxRentContract extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value = "押金金额详细", name = "cashtypeContentLsit")
private String cashtypeContentLsit;
-
@io.swagger.annotations.ApiModelProperty(value = "是否删除1是0否", name = "isDel")
private Integer isDel;
@io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updatetime")
@@ -130,57 +112,22 @@ public class WxRentContract extends TenantEntity {
private String createByName;
@io.swagger.annotations.ApiModelProperty(value = "计租面积", name = "rentArea")
private String rentArea;
-
@io.swagger.annotations.ApiModelProperty(value = "店铺编号串", name = "shopIdStr")
private String shopIdStr;
-
@io.swagger.annotations.ApiModelProperty(value = "类型EnumAgileContractType", name = "type")
private Integer type;
- @TableField(exist = false)
- private String typeName;
- @TableField(exist = false)
- private List typeList;
-
- @io.swagger.annotations.ApiModelProperty(value = "审核状态, 0未审核 1审核中 2审核通过 3驳回", name = "applyStatus")
+ @io.swagger.annotations.ApiModelProperty(value = "审核状态, 0未审核 1审核中 2审核通过 3驳回EnumRentContractAppStatus", name = "applyStatus")
private Integer applyStatus;
-
@io.swagger.annotations.ApiModelProperty(value = "终止时间", name = "endContractTime")
private Date endContractTime;
-
- @TableField(exist = false)
- @io.swagger.annotations.ApiModelProperty(value = "审批流参数", name = "flowParams")
- private Map flowParams;
-
- @TableField(exist = false)
- @io.swagger.annotations.ApiModelProperty(value = "租赁合同预账单列表", name = "previewBillRentList")
- private List previewBillRentList;
-
@io.swagger.annotations.ApiModelProperty(value = "审批说明", name = "remark")
private String remark;
-
@io.swagger.annotations.ApiModelProperty(value = "租金信息", name = "rentInfo")
private String rentInfo;
-
- @io.swagger.annotations.ApiModelProperty(value = "上传文件名", name = "fileNames")
- private String fileNames;
-
@io.swagger.annotations.ApiModelProperty(value = "每天价格计算规则EnumRentDayPriceCalcute", name = "dayPriceCalcute")
private Integer dayPriceCalcute;
@io.swagger.annotations.ApiModelProperty(value = "每月平均天数", name = "monthAverageDays")
private Integer monthAverageDays;
-
- @io.swagger.annotations.ApiModelProperty(value = "是否有工作流 1:有 0:无", name = "flowHas")
- @TableField(exist = false)
- private Integer flowHas;
-
- //联营扣点跳点设置
- @TableField(exist = false)
- private List revenueJumps;
- @io.swagger.annotations.ApiModelProperty(value = "联营跳点设置说明", name = "revenueJumpsRemark")
- private String revenueJumpsRemark;
-
- @io.swagger.annotations.ApiModelProperty(value = "免租期说明", name = "freePeriodRemark")
- private String freePeriodRemark;
public List shopIdsByRentInfo() {
List shopList = Lists.newArrayList();
@@ -254,31 +201,6 @@ public class WxRentContract extends TenantEntity {
return null;
}
-
-// public Map getDepositEnergyFees(Map feesMap) {
-// String dsdstr = this.getCashtypeContentLsit();
-// if (!StringUtils.isBlank(dsdstr)) {
-// Map retMap = new HashMap();
-// JSONArray rentInfoArray = JSONArray.parseArray(dsdstr);
-// int size = rentInfoArray.size();
-// for (int i = 0; i < size; i++) {
-// JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
-// String depositType = rentInfoObject.getString("value");
-// String deposit = rentInfoObject.getString("deposit");
-// Long dt = Long.parseLong(depositType);
-// WxEnergyFees fees = feesMap.get(dt);
-// WxEnergyFees nfees = new WxEnergyFees();
-// nfees.setId(fees.getId());
-// nfees.setName(fees.getName());
-// nfees.setCalcuteUnit(fees.getCalcuteUnit());
-// nfees.setPrice(deposit);
-// retMap.put(dt, nfees);
-// }
-// return retMap;
-// }
-// return null;
-// }
-
@TableField(exist = false)
private List freePeriods;
public void setFreeVo(List freePeriods) {
@@ -302,6 +224,24 @@ public class WxRentContract extends TenantEntity {
this.setFreePeriods(voList);
}
}
+
+ @io.swagger.annotations.ApiModelProperty(value = "是否有工作流 1:有 0:无", name = "flowHas")
+ @TableField(exist = false)
+ private Integer flowHas;
+ //联营扣点跳点设置
+ @TableField(exist = false)
+ private List revenueJumps;
+ @TableField(exist = false)
+ @io.swagger.annotations.ApiModelProperty(value = "审批流参数", name = "flowParams")
+ private Map flowParams;
+ @TableField(exist = false)
+ @io.swagger.annotations.ApiModelProperty(value = "租赁合同预账单列表", name = "previewBillRentList")
+ private List previewBillRentList;
+
+ @TableField(exist = false)
+ private String typeName;
+ @TableField(exist = false)
+ private List typeList;
@TableField(exist = false)
private String building;
@TableField(exist = false)
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml
index 242b6afa8..52c297733 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml
@@ -23,16 +23,10 @@
-
-
-
-
-
-
@@ -40,8 +34,6 @@
-
-
@@ -50,12 +42,12 @@
`id`,`customers_id`,`tenant_id`,`parent_tenant_id`,
`decimal_size`,`rental_start_date`,`rental_end_date`,`sign_date`,
`filepath`,`status`,`contract_number`,`create_by`,`update_by`,
- `day_price_calcute`,`month_average_days`,`free_period_remark`,
- cashtype_content_lsit,`is_del`,`revenue_jumps_remark`,
+ `day_price_calcute`,`month_average_days`,
+ cashtype_content_lsit,`is_del`,
`updatetime`,`createtime`,`link_person`,`link_phone`,`link_address`,
- `pay_account`,`lease`,`type`,
- `start_date`,`end_date`,`from_id`,`end_contract_time`,
- `apply_status`,`bank_name`,`fix_start_date`,`fix_end_date`,`create_by_name`,`update_by_name`,
+ `lease`,`type`,
+ `from_id`,`end_contract_time`,
+ `apply_status`,`create_by_name`,`update_by_name`,
`rent_info`, `file_names`,
shop_id_str,
design_file,remark
@@ -92,11 +84,8 @@
and `createtime` = #{createtime}
and `link_person` = #{linkPerson}
and `link_phone` = #{linkPhone}
- and `pay_account` = #{payAccount}
and `lease` = #{lease}
and `type` = #{type}
- and `start_date` = #{startDate}
- and `end_date` = #{endDate}
and json_contains(json_extract(rent_info,'$[*].id'),concat('"',#{queryShopId},'"'))
and `day_price_calcute` = #{dayPriceCalcute}
and `month_average_days` = #{monthAverageDays}
From 152c49f091c9ac13a3db15b21166e008cf5a126a Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Sun, 25 May 2025 23:09:53 +0800
Subject: [PATCH 12/13] fix
---
.../contract/WxAgileContractController.java | 165 ++++++++++++++++--
.../com/iformall/domain/po/WxAllBill.java | 11 --
.../WxRentContractAgileUnDepositMapper.java | 2 +
.../service/WxAgileContractService.java | 7 +
.../impl/WxAgileContractServiceImpl.java | 128 ++++++++++++--
.../main/resources/mapper/WxAllBillMapper.xml | 37 ++--
.../WxRentContractAgileRenevueItemMapper.xml | 2 +-
.../WxRentContractAgileUnDepositMapper.xml | 4 +
8 files changed, 291 insertions(+), 65 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
index aa99bd574..26e7979d2 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
@@ -138,62 +138,140 @@ public class WxAgileContractController extends WxContractBaseController {
public ResultData saveOrUpdate(@RequestBody WxRentContract wxRentContract) {
MallUserInfo user = getUser();
wxRentContract.updateTenantInfo(user);
- //wxRentContract.setAgileType(EnumRentAgileType.AGILE.getCode());
- if (null == wxRentContract.getDayPriceCalcute()) {
- return new ResultData(Result.ERROR,"请选择日均单价计费规则");
+
+ //如果是修改,并且合同是生效的,则不允许
+ if (null != wxRentContract.getId()) {
+ WxRentContract r = wxAgileContractService.selectById(wxRentContract.getId());
+ if (r.getStatus().intValue() == EnumRentContractStatus.DRAFT.getCode().intValue() ||
+ r.getStatus().intValue() == EnumRentContractStatus.UNWRITE.getCode().intValue()) {
+ }else {
+ return new ResultData(Result.ERROR,"该状态不允许修改");
+ }
+ }
+
+ try {
+ handleSaveData(wxRentContract);
+ }catch(Exception e) {
+ return new ResultData(Result.ERROR,e.getMessage());
+ }
+
+ return wxAgileContractService.saveOrUpdate(wxRentContract, user);
+ }
+
+ private void handleSaveData(WxRentContract wxRentContract) {
+ if (null == wxRentContract.getDayPriceCalcute()) {
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择日均单价计费规则");
}
//以前合同必填的数据初始化
- wxRentContract.setDecimalSize(2);
+ //wxRentContract.setDecimalSize(2);
if (null == wxRentContract.getRentalStartDate()) {
- return new ResultData(Result.ERROR,"请选择合同开始日期");
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择合同开始日期");
}
if (null == wxRentContract.getRentalEndDate()) {
- return new ResultData(Result.ERROR,"请选择合同结束日期");
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择合同结束日期");
}
int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate());
wxRentContract.setLease(array[0]);
if (null == wxRentContract.getSignDate()) {
- return new ResultData(Result.ERROR,"请选择合同签约日期");
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择合同签约日期");
}
String rentInfo = wxRentContract.getRentInfo();
if (StringUtils.isBlank(rentInfo)) {
- return new ResultData(Result.ERROR,"请选择铺位");
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择铺位");
}
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
int size = rentInfoArray.size();
if (size == 0) {
- return new ResultData(ErrorCode.SHOP_NOT_SELECTED);
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择店铺");
}
List shopList = Lists.newArrayList();
//查询rent_info 包括 shopId
- String shopIdStr = "";
+ //String shopIdStr = "";
BigDecimal rentAreaDecimal = new BigDecimal(0);
for (int i = 0; i < size; i++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
Long shopId = rentInfoObject.getLong("id");
- //wxRentContract.setShopId(shopId);
- String shopNumber = rentInfoObject.getString("shopNumber");
+ //String shopNumber = rentInfoObject.getString("shopNumber");
if (!shopList.contains(shopId)) {
shopList.add(shopId);
- shopIdStr = shopIdStr +","+ shopId;
+ //shopIdStr = shopIdStr +","+ shopId;
}
String rentArea = rentInfoObject.getString("operationArea");
if (StringUtils.isNotBlank(rentArea)) {
rentAreaDecimal = rentAreaDecimal.add(new BigDecimal(rentArea));
}
}
+ Collections.sort(shopList);
wxRentContract.setRentArea(rentAreaDecimal.toPlainString());
- wxRentContract.setShopIdStr(shopIdStr);
+ wxRentContract.setShopIdStr(StringUtils.join(shopList,","));
try {
rentContractValidShop(wxRentContract);
} catch (Exception e) {
- return new ResultData(Result.ERROR,e.getMessage());
+ throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage());
}
+ }
+
+ /**
+ * 生效中合同修改
+ * @param wxRentContract
+ * @return
+ */
+ @PostMapping("updateValidContract")
+ public ResultData updateValidContract(@RequestBody WxRentContract wxRentContract) {
+ MallUserInfo user = getUser();
+ wxRentContract.updateTenantInfo(user);
+ //只能改生效的合同
+ WxRentContract r = wxAgileContractService.selectById(wxRentContract.getId());
+ if (!isValidContract(r)) {
+ return new ResultData(Result.ERROR,"该状态不允许修改");
+ }
- return wxAgileContractService.saveOrUpdate(wxRentContract, user);
+ try {
+ handleSaveData(wxRentContract);
+ }catch(Exception e) {
+ return new ResultData(Result.ERROR,e.getMessage());
+ }
+
+ //更新合同信息
+ ResultData result = wxAgileContractService.saveOrUpdate(wxRentContract, user);
+ if (result.code != Result.SUCCESS) {
+ return new ResultData(result.code,result.message);
+ }
+
+ //如果更改了合同时间,店铺,类型,每天计价规则,每月平均天数,计租面积,则需要重置
+ if (isNeedRebuildBill(wxRentContract,r)) {
+ try {
+ wxAgileContractService.reSetContract(wxRentContract, user);
+ return new ResultData();
+ }catch(Exception e) {
+ return new ResultData(Result.ERROR,e.getMessage());
+ }
+ }
+ return new ResultData();
+ }
+
+ private boolean isValidContract(WxRentContract r) {
+ if (r.getStatus().intValue() == EnumRentContractStatus.READY_FOR_PAING.getCode().intValue() ||
+ r.getStatus().intValue() == EnumRentContractStatus.PAING.getCode().intValue()) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isNeedRebuildBill(WxRentContract wxRentContract,WxRentContract dbContract) {
+ if (!wxRentContract.getRentalStartDate().equals(dbContract.getRentalStartDate())
+ || !wxRentContract.getRentalEndDate().equals(dbContract.getRentalEndDate())
+ || !wxRentContract.getShopIdStr().equals(dbContract.getShopIdStr())
+ || !wxRentContract.getRentArea().equals(dbContract.getRentArea())
+ || wxRentContract.getType().intValue() != dbContract.getType().intValue()
+ || wxRentContract.getDayPriceCalcute().intValue() != dbContract.getDayPriceCalcute().intValue()
+ || wxRentContract.getMonthAverageDays().intValue() != dbContract.getMonthAverageDays().intValue()) {
+ return true;
+ }
+ return false;
}
/**
@@ -248,6 +326,16 @@ public class WxAgileContractController extends WxContractBaseController {
return new ResultData(Result.ERROR,"请至少增加一个");
}
wxRentContract.updateTenantInfo(getTenantInfo());
+ //如果是生效的合同变更,此时变更押金,则需要清空当前时间之后未处理的账单
+ WxRentContract r = wxAgileContractService.selectById(wxRentContract.getId());
+ if (isValidContract(r)) {
+ try {
+ wxAgileContractService.endContractDespoitBill(r,this.getUser());
+ }catch(Exception e) {
+ return new ResultData(Result.ERROR,"保存信息失败:"+e.getMessage());
+ }
+ }
+
try {
wxAgileContractService.saveDeposit(wxRentContract,this.getUser());
}catch(Exception e) {
@@ -342,6 +430,30 @@ public class WxAgileContractController extends WxContractBaseController {
return new ResultData(wxAgileContractService.findUnDepositList(unDeposit));
}
+ /**
+ * 删除非押金
+ * @param unDeposit
+ * @return
+ */
+ @PostMapping("deleteUnDeposit")
+ public ResultData deleteUnDeposit(@RequestBody WxRentContractAgileUnDeposit unDeposit) {
+ unDeposit.updateTenantInfo(getTenantInfo());
+ if (null == unDeposit.getItems() || unDeposit.getItems().size() <= 0 ) {
+ return new ResultData(Result.ERROR,"无细项");
+ }
+ //如果是生效的合同删除
+ WxRentContract r = wxAgileContractService.selectById(unDeposit.getRentContractId());
+ if (isValidContract(r)) {
+ wxAgileContractService.endContractUnDespositBill(unDeposit,this.getUser());
+ }
+ try {
+ wxAgileContractService.deleteUnDeposit(unDeposit);
+ }catch(Exception e) {
+ return new ResultData(Result.ERROR,"保存账单失败:"+e.getMessage());
+ }
+ return new ResultData();
+ }
+
/**
* 设置联营扣点
*/
@@ -359,6 +471,13 @@ public class WxAgileContractController extends WxContractBaseController {
if (null != _ore) {
renevue.setId(_ore.getId());
}
+
+ //如果是生效的合同变更
+ WxRentContract r = wxAgileContractService.selectById(renevue.getRentContractId());
+ if (isValidContract(r)) {
+ wxAgileContractService.endContractRenevueBill(renevue);
+ }
+
try {
wxAgileContractService.saveRenuvue(renevue);
}catch(Exception e) {
@@ -376,6 +495,14 @@ public class WxAgileContractController extends WxContractBaseController {
if (null == contract.getRevenueJumps() || contract.getRevenueJumps().size() <= 0 ) {
return new ResultData(Result.ERROR,"无配置项");
}
+
+ //如果是生效的合同变更
+ WxRentContract r = wxAgileContractService.selectById(contract.getId());
+ if (isValidContract(r)) {
+ WxRentContractAgileRenevue renevue = wxAgileContractService.findRenevueByContract(contract.getId(), contract);
+ wxAgileContractService.endContractRenevueBill(renevue);
+ }
+
try {
wxAgileContractService.saveRenuvueJumps(contract);
}catch(Exception e) {
@@ -407,6 +534,12 @@ public class WxAgileContractController extends WxContractBaseController {
return new ResultData(Result.ERROR,"当前款项费用生成规则和扣点设置不一致。");
}
+ //如果是生效的合同变更
+ WxRentContract r = wxAgileContractService.selectById(_ore.getRentContractId());
+ if (isValidContract(r)) {
+ wxAgileContractService.endContractRenevueBill(_ore);
+ }
+
try {
wxAgileContractService.setJoinRenevueUp(unDeposit);
}catch(Exception e) {
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 d8f95ede7..058408051 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java
@@ -217,14 +217,6 @@ public class WxAllBill extends TenantEntity {
@Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6", "坏账_7", "退租待结算_8","预收待抵扣_9"}, width = 20, orderNum = "10")
@io.swagger.annotations.ApiModelProperty(value = "账单状态EnumBillStatus", name = "status")
public Integer status;
-// @TableField(exist = false)
-// private String statusName;
-// public String getStatusName() {
-// if (null != status) {
-// return EnumBillStatus.getEnum(status).getMessage();
-// }
-// return null;
-// }
@TableField(exist = false)
public List statusList;
@@ -273,9 +265,6 @@ public class WxAllBill extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="自定义合同费用类型EnumRentContractAgileFeesType",name="rentContractAgileFeesType")
public Integer rentContractAgileFeesType;
- @io.swagger.annotations.ApiModelProperty(value="物业合同ID",name="propertyContractId")
- public Long propertyContractId;
-
@io.swagger.annotations.ApiModelProperty(value="主物账单ID(针对合同里面的自定义科目账单)",name="parentBillId")
public Long parentBillId;
diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
index 79ad361ab..9dfb859ee 100644
--- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
+++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractAgileUnDepositMapper.java
@@ -19,5 +19,7 @@ public interface WxRentContractAgileUnDepositMapper extends CommonMapper findFeesIdList(WxRentContractAgileUnDeposit wxBillRent);
void updateJoinRenevueUp(WxRentContractAgileUnDeposit wxBillRent);
+
+ void deleteById(@Param("id")Long id,@Param("tenantId")String tenantId);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
index 3398314fd..7ae04b87c 100644
--- a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
+++ b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java
@@ -42,6 +42,8 @@ public interface WxAgileContractService {
List findUnDepositList(WxRentContractAgileUnDeposit unDeposit);
+ void deleteUnDeposit(WxRentContractAgileUnDeposit unDeposit);
+
List findUnDepositFeesIdList(WxRentContractAgileUnDeposit unDeposit);
void createUnDepositBill(WxRentContractAgileUnDeposit unDeposit,MallUserInfo user);
@@ -75,4 +77,9 @@ public interface WxAgileContractService {
void transfer(WxRentContract wxRentContract,MallUserInfo user);
List getRentContractYears(WxRentContract rentContract);
+
+ void reSetContract(WxRentContract wxRentContract,MallUserInfo user);
+ void endContractDespoitBill(WxRentContract wxRentContract,MallUserInfo user);
+ void endContractUnDespositBill(WxRentContractAgileUnDeposit unDeposit,MallUserInfo user);
+ void endContractRenevueBill(WxRentContractAgileRenevue renevue);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
index 028f0f86c..e4e8d854d 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
@@ -558,6 +558,24 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
return list;
}
+ @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
+ @Override
+ public void deleteUnDeposit(WxRentContractAgileUnDeposit unDeposit) {
+ wxRentContractAgileUnDepositMapper.deleteById(unDeposit.getId(),unDeposit.getTenantId());
+ WxRentContractAgileUnDepositItem itemdel = new WxRentContractAgileUnDepositItem();
+ itemdel.updateTenantInfo(unDeposit);
+ itemdel.setUnDepositId(unDeposit.getId());
+ wxRentContractAgileUnDepositItemMapper.deleteByUnDeposit(itemdel);
+ //删除账单
+ WxAllBill wxBillDel = new WxAllBill();
+ wxBillDel.updateTenantInfo(unDeposit);
+ wxBillDel.setRentContractId(unDeposit.getRentContractId());
+ wxBillDel.setIsPreview(EnumYesOrNo.YES.getCode());
+ wxBillDel.setRentContractAgileFeesType(EnumRentContractAgileFeesType.UN_DEPOSIT.getCode());
+ wxBillDel.setEnergyFeesId(unDeposit.getFeesId());
+ wxAllBillMapper.deletePreviewBill(wxBillDel);
+ }
+
@Override
public List findUnDepositFeesIdList(WxRentContractAgileUnDeposit unDeposit) {
return wxRentContractAgileUnDepositMapper.findFeesIdList(unDeposit);
@@ -1107,16 +1125,7 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
}
if (null != renevueId) {
- WxRentContractAgileRenevueItem ari = new WxRentContractAgileRenevueItem();
- ari.setRentContractId(newContractId);
- ari.setRenevueId(renevueId);
- ari.setBeginTime(rentContract.getRentalStartDate());
- ari.setBeginTime(rentContract.getRentalEndDate());
- ari.setRate("0");
- ari.setIsFree(EnumYesOrNo.NO.getCode());
- ari.setId(idWorker.nextId());
- ari.setCreatetime(new Date());
- ari.setUpdatetime(new Date());
+ WxRentContractAgileRenevueItem ari = generateRenevueItem(idWorker, rentContract, newContractId, renevueId);
wxRentContractAgileRenevueItemMapper.insert(ari);
}
WxRentContractAgileRenevueFees fq = new WxRentContractAgileRenevueFees();
@@ -1165,6 +1174,20 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
wxRentContractMapper.insert(rentContract);
}
+ private WxRentContractAgileRenevueItem generateRenevueItem(IdWorker idWorker,WxRentContract rentContract,Long newContractId,Long renevueId) {
+ WxRentContractAgileRenevueItem ari = new WxRentContractAgileRenevueItem();
+ ari.setRentContractId(newContractId);
+ ari.setRenevueId(renevueId);
+ ari.setBeginTime(rentContract.getRentalStartDate());
+ ari.setBeginTime(rentContract.getRentalEndDate());
+ ari.setRate("0");
+ ari.setIsFree(EnumYesOrNo.NO.getCode());
+ ari.setIsFather(EnumYesOrNo.YES.getCode());
+ ari.setId(idWorker.nextId());
+ ari.setCreatetime(new Date());
+ ari.setUpdatetime(new Date());
+ return ari;
+ }
private WxRentContractAgileUnDepositItem generateUnDepositItem(IdWorker idWorker,WxRentContract rentContract,Long undepositId,Long feesId,Long shopId) {
WxRentContractAgileUnDepositItem raudi = new WxRentContractAgileUnDepositItem();
@@ -1280,5 +1303,90 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
}
return yearList;
}
+
+ @Transactional(rollbackFor = {Exception.class})
+ @Override
+ public void reSetContract(WxRentContract wxRentContract, MallUserInfo user) {
+ //当前时间之后的未处理过的账单,全部删除,之前的账单,还有以后已经处理过的账单,不处理。需财务手工处理这些账单
+ WxAllBill bq = new WxAllBill();
+ bq.updateTenantInfo(wxRentContract);
+ bq.setRentContractId(wxRentContract.getId());
+ bq.setShopEndtime(new Date());
+ wxAllBillMapper.deleteNoNeedPayBill(bq);
+ //原来所有的非押金,扣点都默认设置为按合同,然后时间设置为合同开始时间和结束时间,单价为0
+ WxRentContractAgileUnDeposit udq = new WxRentContractAgileUnDeposit();
+ udq.updateTenantInfo(wxRentContract);
+ udq.setRentContractId(wxRentContract.getId());
+ List udList = wxRentContractAgileUnDepositMapper.findList(udq);
+ final IdWorker idWorker = IdWorker.get();
+ if (null != udList && udList.size() > 0 ) {
+ for (int i = 0 ; i < udList.size(); i++ ) {
+ WxRentContractAgileUnDeposit ud = udList.get(i);
+ WxRentContractAgileUnDepositItem udid = new WxRentContractAgileUnDepositItem();
+ udid.updateTenantInfo(wxRentContract);
+ udid.setUnDepositId(ud.getId());
+ wxRentContractAgileUnDepositItemMapper.deleteByUnDeposit(udid);
+ generateUnDepositItem(idWorker, wxRentContract, ud.getId(), ud.getFeesId(), null);
+ }
+ }
+ WxRentContractAgileRenevue arq = new WxRentContractAgileRenevue();
+ arq.updateTenantInfo(wxRentContract);
+ arq.setRentContractId(wxRentContract.getId());
+ List arList = wxRentContractAgileRenevueMapper.findList(arq);
+ if (null != arList && arList.size() > 0 ) {
+ for (int i = 0 ; i < arList.size(); i++ ) {
+ WxRentContractAgileRenevue ud = arList.get(i);
+ WxRentContractAgileRenevueItem arid = new WxRentContractAgileRenevueItem();
+ arid.updateTenantInfo(wxRentContract);
+ arid.setRentContractId(wxRentContract.getId());
+ arid.setRenevueId(ud.getId());
+ wxRentContractAgileRenevueItemMapper.deleteByRenevue(arid);
+ generateRenevueItem(idWorker, wxRentContract, wxRentContract.getId(), ud.getId());
+ }
+ }
+ }
+
+ @Override
+ public void endContractDespoitBill(WxRentContract wxRentContract, MallUserInfo user) {
+ //当前时间之后的未处理过的账单,全部删除,之前的账单,还有以后已经处理过的账单,不处理。需财务手工处理这些账单
+ WxAllBill bq = new WxAllBill();
+ bq.updateTenantInfo(wxRentContract);
+ bq.setRentContractId(wxRentContract.getId());
+ bq.setShopEndtime(new Date());
+ List feesIds = new ArrayList();
+ for (int i = 0 ; i < wxRentContract.getContractDepositList().size(); i++) {
+ WxRentContractAgileDeposit deposit = wxRentContract.getContractDepositList().get(i);
+ if (!feesIds.contains(deposit.getFeesId())) {
+ feesIds.add(deposit.getFeesId());
+ }
+ }
+ bq.setEnergyFeesIds(feesIds);
+ bq.setRentContractAgileFeesType(EnumRentContractAgileFeesType.DEPOSIT.getCode());
+ wxAllBillMapper.deleteNoNeedPayBill(bq);
+ }
+
+ @Override
+ public void endContractUnDespositBill(WxRentContractAgileUnDeposit unDeposit, MallUserInfo user) {
+ WxAllBill bq = new WxAllBill();
+ bq.updateTenantInfo(unDeposit);
+ bq.setRentContractId(unDeposit.getRentContractId());
+ bq.setShopEndtime(new Date());
+ bq.setEnergyFeesId(unDeposit.getFeesId());
+ bq.setRentContractAgileFeesType(EnumRentContractAgileFeesType.UN_DEPOSIT.getCode());
+ wxAllBillMapper.deleteNoNeedPayBill(bq);
+ }
+
+ @Transactional(rollbackFor = {Exception.class})
+ @Override
+ public void endContractRenevueBill(WxRentContractAgileRenevue renevue) {
+ WxAllBill bq = new WxAllBill();
+ bq.updateTenantInfo(renevue);
+ bq.setRentContractId(renevue.getRentContractId());
+ bq.setShopEndtime(new Date());
+ bq.setExtraCreateFrom(EnumBillExtraCreateFrom.RNET_REVENUE_SALES.getCode());
+ wxAllBillMapper.deleteNoNeedPayBill(bq);
+ bq.setExtraCreateFrom(EnumBillExtraCreateFrom.RNET_TIAODIAN_HUISUAN.getCode());
+ wxAllBillMapper.deleteNoNeedPayBill(bq);
+ }
}
diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml
index 70807994d..8db8896f2 100644
--- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml
@@ -36,7 +36,6 @@
-
@@ -53,7 +52,7 @@
`id`,`tenant_id`,`parent_tenant_id`,`shop_id`,`createtime`,`create_by`,`create_by_name`,`updatetime`,`update_by`,`update_by_name`,
`price_detail`,`need_pay`,`receive_pay`,`history_receive_pay`,`pay`,`pay_way`,`pay_date`,`set_off`,`use_money`,`starttime`,`endtime`,`status`,`energy_fees_id`,
`return_pay`,`bill_remark`,`last_owe_call_time`,`last_owe_call_user`,`receive_date`,`period`,
- `is_preview`,`shop_info`,`rent_contract_id`,`rent_contract_agile_fees_type`,`property_contract_id`,`parent_bill_id`,`virtual_compose_id`,`parent_virtual_compose_id`,
+ `is_preview`,`shop_info`,`rent_contract_id`,`rent_contract_agile_fees_type`,`parent_bill_id`,`virtual_compose_id`,`parent_virtual_compose_id`,
`energy_reading_calcuteId`,`energy_reading_id`,`extra_create_from`,`rent_area`,`can_edit`,`cus_name`,`fees_type`
@@ -70,7 +69,6 @@
and `energy_fees_id` = #{energyFeesId}
and `rent_contract_id` = #{rentContractId}
and `rent_contract_agile_fees_type` = #{rentContractAgileFeesType}
- and `property_contract_id` = #{propertyContractId}
and `parent_bill_id` = #{parentBillId}
and `virtual_compose_id` = #{virtualComposeId}
and `parent_virtual_compose_id` = #{parentVirtualComposeId}
@@ -143,12 +141,6 @@
#{ridItem}
-
- and property_contract_id in
-
- #{pidItem}
-
-
and `status` in
@@ -323,9 +315,6 @@
and rent_contract_id = #{rentContractId}
-
- and property_contract_id = #{propertyContractId}
-
and rent_contract_agile_fees_type = #{rentContractAgileFeesType}
@@ -340,8 +329,14 @@
and rent_contract_id = #{rentContractId}
-
- and property_contract_id = #{propertyContractId}
+
+ and energy_fees_id = #{energyFeesId}
+
+
+ and `energy_fees_id` in
+
+ #{eidItem}
+
@@ -364,9 +359,6 @@
and rent_contract_id = #{rentContractId}
-
- and property_contract_id = #{propertyContractId}
-
@@ -374,9 +366,6 @@
where rent_contract_id = #{rentContractId}
-
- where property_contract_id = #{propertyContractId}
-
@@ -391,7 +380,7 @@
#{item.needPay},#{item.receivePay},#{item.historyReceivePay},#{item.pay},#{item.payWay},#{item.payDate},#{item.setOff},#{item.useMoney},
#{item.starttime},#{item.endtime},#{item.status},#{item.energyFeesId},#{item.returnPay},#{item.billRemark},
#{item.lastOweCallTime},#{item.lastOweCallUser},
- #{item.receiveDate},#{item.period},#{item.isPreview},#{item.shopInfo},#{item.rentContractId},#{item.rentContractAgileFeesType},#{item.propertyContractId},
+ #{item.receiveDate},#{item.period},#{item.isPreview},#{item.shopInfo},#{item.rentContractId},#{item.rentContractAgileFeesType},
#{item.parentBillId},#{item.virtualComposeId},#{item.parentVirtualComposeId},#{item.energyReadingCalcuteId},
#{item.energyReadingId},#{item.extraCreateFrom},#{item.rentArea},#{item.canEdit},#{item.cusName},#{item.feesType}
)
@@ -417,18 +406,12 @@
and rent_contract_id = #{rentContractId}
-
- and property_contract_id = #{propertyContractId}
-
update wx_all_bill set cus_name = #{cusName} where tenant_id = #{tenantId}
and rent_contract_id = #{rentContractId}
-
-
- and property_contract_id = #{propertyContractId}
and(
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
index 783a0b685..780fcfe99 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileRenevueItemMapper.xml
@@ -64,7 +64,7 @@
- delete from wx_rent_contract_agile_renevue_item where `renevue_id` = #{unDepositId}
+ delete from wx_rent_contract_agile_renevue_item where `renevue_id` = #{renevueId}
diff --git a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
index c7ad60a4f..aa2b873dd 100644
--- a/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxRentContractAgileUnDepositMapper.xml
@@ -72,5 +72,9 @@
update wx_rent_contract_agile_un_deposit set join_renevue_up = #{joinRenevueUp} where id = #{id}
+
+ delete from wx_rent_contract_agile_un_deposit where id = #{id} and `tenant_id` = #{tenantId}
+
+
From 5ac6a289e66fc02755534a27ca9bc557362f2be1 Mon Sep 17 00:00:00 2001
From: winter <664946893@qq.com>
Date: Sun, 25 May 2025 23:36:48 +0800
Subject: [PATCH 13/13] fix
---
.../contract/WxAgileContractController.java | 11 ++++++++-
.../contract/WxContractBaseController.java | 23 +++++++++----------
.../iformall/domain/po/WxRentContract.java | 5 +++-
.../java/com/iformall/enums/EnumFlowKey.java | 17 +++-----------
.../service/impl/WxFlowServiceImpl.java | 16 ++-----------
5 files changed, 30 insertions(+), 42 deletions(-)
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
index 26e7979d2..6a262bd98 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
@@ -84,6 +84,7 @@ public class WxAgileContractController extends WxContractBaseController {
}
PageInfo page = wxAgileContractService.getRentContractList(wxRentContract, pageNum, pageSize);
Integer hasFlow = null;
+ Integer hasFlowValidEdit = null;
if (null != page && null != page.getList()) {
for (WxRentContract wrc: page.getList()) {
if (null == hasFlow) {
@@ -94,9 +95,17 @@ public class WxAgileContractController extends WxContractBaseController {
}
}
wrc.setFlowHas(hasFlow);
+
+ if (null == hasFlowValidEdit) {
+ if(rentContractHasEditValidWorkFlow(wrc)) {
+ hasFlowValidEdit = 1;
+ }else {
+ hasFlowValidEdit = 0;
+ }
+ }
+ wrc.setFlowHasValidEdit(hasFlowValidEdit);
}
}
-
return new ResultData(page);
}
diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java
index a1015972d..45c32719f 100644
--- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java
+++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java
@@ -89,18 +89,6 @@ public class WxContractBaseController extends BaseController{
}
- protected boolean rentPropertyHasWorkFlow(WxRentPropertyContractVo rpvo) {
- WxFlowModel wxFlowModel = new WxFlowModel();
- wxFlowModel.setFlowType(EnumFlowKey.NNEW_RENT_CONTRACT.getCode());
- wxFlowModel.updateTenantInfo(rpvo);
- List flows = wxFlowService.getModelBybusiness(wxFlowModel);
- if (null != flows && flows.size() > 0) {
- return true;
- }
- return false;
-
- }
-
protected boolean rentContractHasWorkFlow(WxRentContract wxRentContract) {
WxFlowModel wxFlowModel = new WxFlowModel();
wxFlowModel.setFlowType(EnumFlowKey.NEW_RENT_CONTRACT.getCode());
@@ -112,6 +100,17 @@ public class WxContractBaseController extends BaseController{
return false;
}
+ protected boolean rentContractHasEditValidWorkFlow(WxRentContract wxRentContract) {
+ WxFlowModel wxFlowModel = new WxFlowModel();
+ wxFlowModel.setFlowType(EnumFlowKey.NEW_EDIT_VALID_CONTRACT.getCode());
+ wxFlowModel.updateTenantInfo(wxRentContract);
+ List flows = wxFlowService.getModelBybusiness(wxFlowModel);
+ if (null != flows && flows.size() > 0) {
+ return true;
+ }
+ return false;
+ }
+
public static boolean dateHasIntersection(Date startDate1, Date endDate1, Date startDate2, Date endDate2) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (startDate1.compareTo(endDate2) <= 0 && startDate2.compareTo(endDate1) <= 0) {
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
index 30981e688..ee84996b7 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
@@ -225,9 +225,12 @@ public class WxRentContract extends TenantEntity {
}
}
- @io.swagger.annotations.ApiModelProperty(value = "是否有工作流 1:有 0:无", name = "flowHas")
+ //是否有工作流 1:有 0:无"
@TableField(exist = false)
private Integer flowHas;
+ //是否有修改履约中工作流 1:有 0:无"
+ @TableField(exist = false)
+ private Integer flowHasValidEdit;
//联营扣点跳点设置
@TableField(exist = false)
private List revenueJumps;
diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java b/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java
index 3404c1c76..69abe38a8 100644
--- a/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java
+++ b/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java
@@ -9,10 +9,9 @@ public enum EnumFlowKey {
BILL(2, "end_bill_flow"),//账单审批
END_CONTRACT(3, "end_contract_flow"),//终止合同审批
- NEW_RENT_CONTRACT(4, "租金合同签约"),
- //NEW_SHOP_CONTRACT(5, "多经点位租金合同签约"),
- NEW_RENT_END_CONTRACT(6, "租金合同终止"),
- //NEW_SHOP_END_CONTRACT(7, "多经点位租金合同终止"),
+ NEW_RENT_CONTRACT(4, "合同签约"),
+ NEW_EDIT_VALID_CONTRACT(5, "履约中合同修改"),
+ NEW_RENT_END_CONTRACT(6, "合同终止"),
NEW_BILL_CHANGE(8, "账单应收金额变更"),
@@ -26,16 +25,6 @@ public enum EnumFlowKey {
NEW_COUPON_DISTRIBUTION_UPLINE(25,"配送商品审批"),
NEW_COUPON_CREDIT_UPLINE(26,"积分券审批"),
- NEW_PRO_CONTRACT(13, "物业合同签约"),
- NEW_PRO_END(14, "物业合同终止"),
- //NEW_PRO_POINT_CONTRACT(15, "多经点位物业合同签约"),
- //NEW_PRO_POINT_CONTRACT_END(16, "多经点位物业合同终止"),
-
- NNEW_RENT_CONTRACT(17, "租金+物业合同签约"),
- NEW_RENT_END(18, "租金+物业合同合同终止"),
- //NEW_RENT_POINT_CONTRACT(19, "多经点位商铺租金+物业合同签约"),
- //NEW_RENT_POINT_CONTRACT_END(20, "多经点位商铺租金+物业合同终止"),
-
SETTLE(21,"结算单审批"),
BILL_FINISH(30,"商户账单完结审批"),
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
index 515dd0c35..117afcbff 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
@@ -177,11 +177,7 @@ public class WxFlowServiceImpl implements WxFlowService {
contractType = Integer.parseInt(str);
}
- if(EnumFlowKey.CONTRACT.getCode().equals(flowType) ||
- EnumFlowKey.NEW_RENT_CONTRACT.getCode().equals(flowType) ||
- EnumFlowKey.NEW_PRO_CONTRACT.getCode().equals(flowType)||
- EnumFlowKey.NNEW_RENT_CONTRACT.getCode().equals(flowType)
- ){
+ if(EnumFlowKey.CONTRACT.getCode().equals(flowType) || EnumFlowKey.NEW_RENT_CONTRACT.getCode().equals(flowType)){
// 1租赁合同 2点位合同 3物业 4点位物业合同 5 合并合同-店铺 6 合并合同-多经点位
if (EnumFlowContractType.RENT.getCode().equals(contractType) ||
EnumFlowContractType.WHOLE_SHOP.getCode().equals(contractType)) {
@@ -239,11 +235,7 @@ public class WxFlowServiceImpl implements WxFlowService {
}else if(EnumFlowContractType.PROPERTY.getCode().equals(contractType)){
}
- }else if(EnumFlowKey.END_CONTRACT.getCode().equals(flowType)
- || EnumFlowKey.NEW_RENT_END_CONTRACT.getCode().equals(flowType)
- || EnumFlowKey.NEW_PRO_END.getCode().equals(flowType)
- || EnumFlowKey.NEW_RENT_END.getCode().equals(flowType)
- ){
+ }else if(EnumFlowKey.END_CONTRACT.getCode().equals(flowType) || EnumFlowKey.NEW_RENT_END_CONTRACT.getCode().equals(flowType)){
if(EnumFlowContractType.RENT.getCode().equals(contractType) ||
EnumFlowContractType.WHOLE_SHOP.getCode().equals(contractType)) {
WxRentContract rent = new WxRentContract();
@@ -722,10 +714,6 @@ public class WxFlowServiceImpl implements WxFlowService {
||EnumFlowKey.END_CONTRACT.getCode().equals(flowType)
|| EnumFlowKey.NEW_RENT_CONTRACT.getCode().equals(flowType)
|| EnumFlowKey.NEW_RENT_END_CONTRACT.getCode().equals(flowType)
- || EnumFlowKey.NEW_PRO_CONTRACT.getCode().equals(flowType)
- || EnumFlowKey.NEW_PRO_END.getCode().equals(flowType)
- || EnumFlowKey.NNEW_RENT_CONTRACT.getCode().equals(flowType)
- || EnumFlowKey.NEW_RENT_END.getCode().equals(flowType)
){
return true;
}