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