From 0a197e5dcceccf8cd3eff2207586388bf64ab057 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 18 Aug 2020 16:13:22 +0800 Subject: [PATCH] fix contract --- .../iformall/schedule/ContractSchedule.java | 24 +++--- .../iformall/mapper/WxMerchantShopMapper.java | 2 +- .../iformall/mapper/WxRentContractMapper.java | 2 + .../service/WxPropertyContractService.java | 3 + .../service/WxRentContractService.java | 2 +- .../impl/WxPropertyContractServiceImpl.java | 22 ++++++ .../impl/WxRentContractServiceImpl.java | 74 ++++++++++++------- .../resources/mapper/WxMerchantShopMapper.xml | 8 +- .../resources/mapper/WxRentContractMapper.xml | 11 +++ 9 files changed, 110 insertions(+), 38 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index fc5a0c844..23632e652 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -45,18 +45,22 @@ public class ContractSchedule { //如果店铺没有有效合同,则释放店铺,不停用商户 List wxMalls = wxMallMapper.findList(null); for (WxMall wxMall : wxMalls) { - TenantEntity tenantEntity = wxMall.getTenantInfo(); - WxRentContract wxRentContract = new WxRentContract(); - wxRentContract.updateTenantInfo(tenantEntity); - wxRentContractService.outDateContract(wxRentContract); - - + try { + //租金合同 + wxRentContractService.outDateContract(wxMall); + }catch(Exception e) { + log.error("rentcontract outDate error.",e); + } + + try { + //物业合同 + wxPropertyContractService.outDateContract(wxMall); + }catch(Exception e) { + log.error("propertycontract outDate error.",e); + } + } - - - - // log.info("合同状态更新开始"); // List wxMalls = wxMallMapper.findList(null); // for (WxMall wxMall : wxMalls) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java index ac447b336..ada67981b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java @@ -13,7 +13,7 @@ public interface WxMerchantShopMapper extends CommonMapper findShopIds(@Param("merchantId") Long merchantId); - + void delShops(@Param("merchantId") Long merchantId,@Param("shopList") List shopIds); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java index a42f775c0..a4fe96b5e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java @@ -82,4 +82,6 @@ public interface WxRentContractMapper extends CommonMapper List getContractByMerchant(WxRentContract wxRentContract); Integer getCanApplyCount(@Param("id") Long id); + + List getMerchantIdsByStatuss(WxRentContract wxRentContract); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 0060b5e97..73baac2fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -4,6 +4,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxBillRent; +import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxPropertyContract; import javax.servlet.http.HttpServletRequest; @@ -78,5 +79,7 @@ public interface WxPropertyContractService { WxPropertyContract getByBill(WxBillProperty billRent); ResultData apply(WxPropertyContract wxPropertyContract,MallUserInfo user); + + void outDateContract(WxMall wxMall); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index 9b15bf8b9..4192c97be 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -110,7 +110,7 @@ public interface WxRentContractService { * 合同正常到期 * @param wxRentContract */ - void outDateContract(WxRentContract wxRentContract); + void outDateContract(WxMall wxMall); WxRentContract getSimpleDeatil(Long id); 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 df4c57149..3a68efcee 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -1144,6 +1144,28 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return new ResultData(Result.ERROR, "编号["+record.getId()+"]物业合同状态不能提交审批.允许提交的状态为 [草稿+未提交审批],[履约中+审批驳回]"); } } + + @Override + public void outDateContract(WxMall wxMall) { + //查询有计租合同的商户 + WxPropertyContract wr = new WxPropertyContract(); + List statuss = new ArrayList(); + statuss.add(EnumRentContractStatus.PAING.getCode()); + wr.setStatuss(statuss); + List contractList = wxPropertyContractMapper.findList(wr); + for (WxPropertyContract contract: contractList) { + try { + + if (contract.getRentalEndDate().before(new Date())) { + contract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); + wxPropertyContractMapper.updateById(contract); + } + }catch(Exception e) { + logger.error("WxPropertyContract["+contract.getId()+"] outDateContract error.",e); + } + + } + } } 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 b134f9470..20e75018b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2502,35 +2502,59 @@ public class WxRentContractServiceImpl implements WxRentContractService { } @Override - public void outDateContract(WxRentContract wxRentContract) { - //只有计租中的合同状态才能正常到期 - if (wxRentContract.getStatus().intValue()== EnumRentContractStatus.PAING.getCode().intValue()) { - if (wxRentContract.getRentalEndDate().before(new Date())) { - wxRentContract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); - //wxRentContractMapper.updateRentContractEndStatus(wxRentContract); - //TODO 11111111111111111111 + public void outDateContract(WxMall wxMall) { + //查询有计租合同的商户 + WxRentContract wr = new WxRentContract(); + List statuss = new ArrayList(); + statuss.add(EnumRentContractStatus.PAING.getCode()); + wr.setStatuss(statuss); + List merchantIds = wxRentContractMapper.getMerchantIdsByStatuss(wr); + for (Long mid: merchantIds) { + try { + //查询商户下计租到期的合同,更新合同状态 + WxRentContract wrc = new WxRentContract(); + wrc.setMerchantId(mid); + wrc.setStatus(EnumRentContractStatus.PAING.getCode()); + List contractList = wxRentContractMapper.findList(wrc); + List shopIdList = new ArrayList(); + for (WxRentContract contract:contractList) { + if (contract.getRentalEndDate().before(new Date())) { + contract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); + wxRentContractMapper.updateById(contract); + List shopIds = contract.shopIdsByRentInfo(); + for (Long sid: shopIds) { + if (!shopIdList.contains(sid)) { + shopIdList.add(sid); + } + } + } + } + + //到期合同中的店铺,如果存在有效合同,则不释放 + if (shopIdList.size() > 0 ) { + WxRentContract wrcq = new WxRentContract(); + wrcq.setMerchantId(mid); + wrcq.setStatus(EnumRentContractStatus.PAING.getCode()); + List contractList0 = wxRentContractMapper.findList(wrc); + for (WxRentContract w : contractList0) { + List shopids0 = w.shopIdsByRentInfo(); + if (null != shopids0) { + shopIdList.removeAll(shopids0); + } + } + } + + //释放店铺 + if (null != shopIdList && shopIdList.size() > 0) { + wxMerchantShopMapper.delShops(mid, shopIdList); + } + }catch(Exception e) { + logger.error("merchantId["+mid+"] outDateContract error.",e); } + } } - private void contractEnd(String tenantId) { - //查询状态为合同正常到期的数据 - WxRentContract wxRentContract = new WxRentContract(); - wxRentContract.setTenantId(tenantId); - wxRentContract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); -// List> rentContractData = wxRentContractMapper.queryRentContractData(wxRentContract); -// for (int i = 0, size = rentContractData.size(); i < size; i++) { -// Map contract = rentContractData.get(i); -// Object merchantId = contract.get("merchantId"); -// if (merchantId != null) { -// WxMerchant merchant = wxMerchantMapper.selectById((Long) merchantId); -// Integer status = merchant.getStatus(); -// if (status.equals(EnumMerchantStatus.VALID.getCode())) { -// wxMerchantService.disableMerchat((Long) merchantId); -// } -// } -// } - } @Override public WxRentContract getSimpleDeatil(Long id) { return wxRentContractMapper.selectById(id); diff --git a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml index 3d517ce4c..cfe09daa2 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml @@ -75,7 +75,13 @@ select shop_id from wx_merchant_shop where `merchant_id` = #{merchantId} and is_del = 0 - + + update wx_merchant_shop set is_del = 1 where merchant_id = #{merchantId} + and shop_id in + + #{shopItem} + + diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index 5486128e2..5899aaef4 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -675,6 +675,17 @@ + +