diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java index 980e4e4f2..cdb409c38 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java @@ -205,6 +205,7 @@ public class WxPropertyContractController extends WxContractBaseController { if(propertyContractHasWorkFlow(contract)) { return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。"); } + if(contract.getOperationType().intValue() == EnumContractOperationType.PART.getCode().intValue()) { if (contract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { contract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_PRO_CONTRACT, EnumFlowContractType.PROPERTY, contract.getRemark(), contract.getId(),null)); 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 7bcb5005d..a36a5dbac 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -240,10 +240,7 @@ public class WxRentContractController extends WxContractBaseController { return new ResultData(Result.ERROR,"商户未绑定店铺!"); } WxRentContract rentq = new WxRentContract(); - List status = new ArrayList(); - status.add(EnumRentContractStatus.PAING.getCode()); - status.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); - rentq.setStatuss(status); + rentq.setStatuss(EnumRentContractStatus.getValidStatus()); rentq.updateTenantInfo(getUser()); List rentContractList = wxRentContractService.findList(rentq); List rentShopList = new ArrayList(); @@ -300,10 +297,7 @@ public class WxRentContractController extends WxContractBaseController { public ResultData getRentContractList(@ModelAttribute WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); wxRentContract.updateTenantInfo(getTenantInfo()); - List statuss = new ArrayList(); - statuss.add(EnumRentContractStatus.PAING.getCode()); - statuss.add(EnumRentContractStatus.OUT_DATE.getCode()); - wxRentContract.setStatuss(statuss); + wxRentContract.setStatuss(EnumRentContractStatus.getValidStatus()); wxRentContract.setSortColumn(BaseEntity.SortField.Createtime_DESC.getValue()); PageInfo page = wxRentContractService.getRentContractList(wxRentContract, 1, 100000); if (null != page && null != page.getList()) { @@ -443,6 +437,23 @@ public class WxRentContractController extends WxContractBaseController { if(rentContractHasWorkFlow(rentContract)) { return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。"); } + //判断是否该合同的时间和有效的合同是否冲突 + List shopIds = rentContract.shopIdsByRentInfo(); + for (Long sid: shopIds) { + WxRentContract rcq = new WxRentContract(); + rcq.setStatuss(EnumRentContractStatus.getValidStatus()); + rcq.setQueryShopId(sid); + List crcs = wxRentContractService.findList(rcq); + if (null != crcs) { + for (WxRentContract crc : crcs) { + if((rentContract.getRentalEndDate().before(crc.getRentalStartDate()) && rentContract.getRentalStartDate().after(new Date())) || + rentContract.getRentalStartDate().after(crc.getRentalEndDate())) { + }else { + return new ResultData(Result.ERROR,"店铺["+sid+"]的计租时间区间与合同["+crc.getContractNumber()+"]有冲突。"); + } + } + } + } if(rentContract.getOperationType().intValue() == EnumContractOperationType.PART.getCode().intValue()) { if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { @@ -470,10 +481,7 @@ public class WxRentContractController extends WxContractBaseController { if (null == wxRentContract) wxRentContract = new WxRentContract(); wxRentContract.updateTenantInfo(getTenantInfo()); if (1 == validStatus) { - List statuss = new ArrayList(); - statuss.add(EnumRentContractStatus.PAING.getCode()); - statuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); - wxRentContract.setStatuss(statuss); + wxRentContract.setStatuss(EnumRentContractStatus.getValidStatus()); } return new ResultData(wxRentContractService.getRentContractList(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 71baedc8c..201cfa2e8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -246,6 +246,10 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "联营扣点-时间范围 1年2月3周期", name = "busDiscountTime") private Integer busDiscountTime; + + @io.swagger.annotations.ApiModelProperty(value = "查询店铺", name = "queryShopId") + @TableField(exist = false) + private Long queryShopId; public void setAdjustPeriodHandle() { if(EnumPriceUnit.D.getCode().equals(this.getPriceUnit()) && EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode().equals(adjustPeriod)){ diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java index 49ee18fea..fa015ba1c 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java @@ -1,5 +1,7 @@ package com.iformall.enums; +import java.util.ArrayList; +import java.util.List; /** * @author gongbiao @@ -53,4 +55,11 @@ public enum EnumRentContractStatus { public String getMessage() { return message; } + + public static List getValidStatus() { + List retList = new ArrayList(); + retList.add(PAING.getCode()); + retList.add(READY_FOR_PAING.getCode()); + return retList; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 86a20c186..a54c9afd8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -266,15 +266,13 @@ public class WxMerchantServiceImpl implements WxMerchantService { WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(id); long countRentContract = wxRentContractMapper.selectList(new QueryWrapper<>(wxRentContract)).parallelStream(). - filter(c -> c.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || - c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + filter(c -> EnumRentContractStatus.getValidStatus().contains(c.getStatus())).count(); //是否有物业合同 WxPropertyContract wxPropertyContract = new WxPropertyContract(); wxPropertyContract.setMerchantId(id); long countPropertyContract = wxPropertyContractMapper.selectList(new QueryWrapper<>(wxPropertyContract)).parallelStream(). - filter(c -> c.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || - c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + filter(c -> EnumRentContractStatus.getValidStatus().contains(c.getStatus())).count(); //商户状态停用-没有租赁合同和物业合同才允许停用 if (countRentContract == 0 || countPropertyContract == 0){ wxMerchant.setStatus(EnumMerchantStatus.NOT_VALID.getCode()); @@ -832,15 +830,16 @@ public class WxMerchantServiceImpl implements WxMerchantService { WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(id); long countRentContract = wxRentContractMapper.selectList(new QueryWrapper<>(wxRentContract)).parallelStream(). - filter(c -> c.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || - c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); - +// filter(c -> c.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || +// c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + filter(c -> EnumRentContractStatus.getValidStatus().contains(c.getStatus())).count(); + + //是否有物业合同 WxPropertyContract wxPropertyContract = new WxPropertyContract(); wxPropertyContract.setMerchantId(id); long countPropertyContract = wxPropertyContractMapper.selectList(new QueryWrapper<>(wxPropertyContract)).parallelStream(). - filter(c -> c.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || - c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + filter(c -> EnumRentContractStatus.getValidStatus().contains(c.getStatus())).count(); //没有租赁合同和物业合同才允许停用商户和解绑商铺 if (countRentContract == 0 || countPropertyContract == 0){ //停用商户 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 5ae2d5743..554912323 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -950,8 +950,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService // propertyContract.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) || // propertyContract.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); - long count = select.stream().filter(propertyContract -> propertyContract.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || - propertyContract.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + long count = select.stream().filter(propertyContract -> EnumRentContractStatus.getValidStatus().contains(propertyContract.getStatus())).count(); if (count > 0) { return new ResultData(true); } @@ -1125,9 +1124,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService public void outDateContract(WxMall wxMall) { //查询有计租合同的商户 WxPropertyContract wr = new WxPropertyContract(); - List statuss = new ArrayList(); - statuss.add(EnumRentContractStatus.PAING.getCode()); - wr.setStatuss(statuss); + wr.setStatuss(EnumRentContractStatus.getValidStatus()); List contractList = wxPropertyContractMapper.findList(wr); for (WxPropertyContract contract: contractList) { try { 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 a61a57523..b603c9cfb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1497,10 +1497,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContract.updateTenantInfo(wxRentContract); wxPropertyContract.setRentContractId(wxRentContract.getId()); //终止有效的合同 - List validstatuss = new ArrayList(); - validstatuss.add(EnumRentContractStatus.PAING.getCode()); - validstatuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); - wxPropertyContract.setStatuss(validstatuss); + wxPropertyContract.setStatuss(EnumRentContractStatus.getValidStatus()); wxPropertyContract.setUpdatetime(new Date()); wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); wxPropertyContractMapper.endContract(wxRentContract); @@ -2502,9 +2499,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { public void outDateContract(WxMall wxMall) { //查询有计租合同的商户 WxRentContract wr = new WxRentContract(); - List statuss = new ArrayList(); - statuss.add(EnumRentContractStatus.PAING.getCode()); - wr.setStatuss(statuss); + wr.setStatuss(EnumRentContractStatus.getValidStatus()); List merchantIds = wxRentContractMapper.getMerchantIdsByStatuss(wr); for (Long mid: merchantIds) { try { @@ -2561,10 +2556,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { public boolean hasOtherValidContractShop(WxRentContract wxRentContract) { WxRentContract wrc = new WxRentContract(); wrc.setMerchantId(wxRentContract.getMerchantId()); - List validstatuss = new ArrayList(); - validstatuss.add(EnumRentContractStatus.PAING.getCode()); - validstatuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); - wrc.setStatuss(validstatuss); + wrc.setStatuss(EnumRentContractStatus.getValidStatus()); List contractList = wxRentContractMapper.findList(wrc); boolean exists =false; for (WxRentContract wc : contractList) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index fa81f7007..4bcfc628a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -133,8 +133,7 @@ public class WxShopServiceImpl implements WxShopService { // .filter(r -> !r.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) && // !r.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) && // !r.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); - .filter(r -> !r.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) && - !r.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + .filter(r -> !EnumRentContractStatus.getValidStatus().contains(r.getStatus())).count(); } else { @@ -142,8 +141,7 @@ public class WxShopServiceImpl implements WxShopService { // count = list.stream().filter(r -> !r.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) && // !r.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) && // !r.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); - count = list.stream().filter(r -> !r.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) && - !r.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); + count = list.stream().filter(r -> EnumRentContractStatus.getValidStatus().contains(r.getStatus())).count(); } if (count > 0) { return new ResultData(ErrorCode.SHOP_CONTRACT_HAS_CONNECT); diff --git a/mallinkService/src/main/java/com/iformall/service/invest/event/InvestListener.java b/mallinkService/src/main/java/com/iformall/service/invest/event/InvestListener.java index 36bc92b5b..6dec918fa 100644 --- a/mallinkService/src/main/java/com/iformall/service/invest/event/InvestListener.java +++ b/mallinkService/src/main/java/com/iformall/service/invest/event/InvestListener.java @@ -47,11 +47,15 @@ public class InvestListener implements ApplicationListener { //if (Objects.equals(EnumRentContractStatus.INTENTION, rentContractStatus)) { // status = EnumTaskStatus.INTENTION; //} else - if (Objects.equals(EnumRentContractStatus.READY_FOR_PAING, rentContractStatus)) { + + if (EnumRentContractStatus.getValidStatus().contains(rentContractStatus.getCode())) { status = EnumTaskStatus.FINISH; - } else if (Objects.equals(EnumRentContractStatus.PAING, rentContractStatus)) { - status = EnumTaskStatus.FINISH; - } + } + //if (Objects.equals(EnumRentContractStatus.READY_FOR_PAING, rentContractStatus)) { + // status = EnumTaskStatus.FINISH; + //} else if (Objects.equals(EnumRentContractStatus.PAING, rentContractStatus)) { + // status = EnumTaskStatus.FINISH; + //} //else if (Objects.equals(EnumRentContractStatus.CONTRACT_END_SOON, rentContractStatus)) { // status = EnumTaskStatus.FINISH; //} diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index 835b2233b..ea85c90ae 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -130,7 +130,7 @@ and `end_date` = #{endDate} and `rent_shop_type` = #{rentShopType} and `operation_type` = #{operationType} - + and json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',#{queryShopId},'"')) and status in