| @@ -0,0 +1,62 @@ | |||||
| package com.iformall.schedule; | |||||
| import com.iformall.domain.po.WxMall; | |||||
| import com.iformall.domain.po.WxPropertyContract; | |||||
| import com.iformall.domain.po.WxRentContract; | |||||
| import com.iformall.mapper.WxMallMapper; | |||||
| import com.iformall.service.WxPropertyContractService; | |||||
| import com.iformall.service.WxRentContractService; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.scheduling.annotation.Scheduled; | |||||
| import org.springframework.stereotype.Component; | |||||
| import java.util.List; | |||||
| /** | |||||
| * @author gongbiao | |||||
| */ | |||||
| @Component | |||||
| public class ContractSchedule { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| private WxRentContractService wxRentContractService; | |||||
| @Autowired | |||||
| private WxPropertyContractService wxPropertyContractService; | |||||
| @Autowired | |||||
| private WxMallMapper wxMallMapper; | |||||
| /** | |||||
| * 每天6点执行 | |||||
| */ | |||||
| @Scheduled(cron = "0 0 6 * * ?") | |||||
| public void sendMsg() { | |||||
| logger.info("合同状态更新开始"); | |||||
| List<WxMall> wxMalls = wxMallMapper.findList(null); | |||||
| for (WxMall wxMall : wxMalls) { | |||||
| String tenantId = wxMall.getTenantId(); | |||||
| WxRentContract wxRentContract = new WxRentContract(); | |||||
| wxRentContract.setTenantId(tenantId); | |||||
| logger.info("租赁合同状态更新开始"); | |||||
| wxRentContractService.updateStatus(wxRentContract); | |||||
| logger.info("租赁合同状态更新结束"); | |||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| wxPropertyContract.setTenantId(tenantId); | |||||
| logger.info("物业合同状态更新开始"); | |||||
| wxPropertyContractService.updateStatus(wxPropertyContract); | |||||
| logger.info("物业合同状态更新结束"); | |||||
| } | |||||
| logger.info("合同状态更新结束"); | |||||
| } | |||||
| } | |||||
| @@ -70,4 +70,6 @@ public interface WxPropertyContractService { | |||||
| void updatePropertyPreviewBill(WxPropertyContract record); | void updatePropertyPreviewBill(WxPropertyContract record); | ||||
| List<WxBillProperty> getWxBillPropertyPreview(Long id); | List<WxBillProperty> getWxBillPropertyPreview(Long id); | ||||
| Map<String, Object> updateStatus(WxPropertyContract record); | |||||
| } | } | ||||
| @@ -91,4 +91,6 @@ public interface WxRentContractService { | |||||
| void endContract(WxRentContract wxRentContract); | void endContract(WxRentContract wxRentContract); | ||||
| void updatePropertyPreviewBill(WxRentContract record); | void updatePropertyPreviewBill(WxRentContract record); | ||||
| Map<String, Object> updateStatus(WxRentContract record); | |||||
| } | } | ||||
| @@ -401,7 +401,11 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||||
| } | } | ||||
| wxRentContract.setMerchantId(merchantId); | wxRentContract.setMerchantId(merchantId); | ||||
| wxRentContract.setUpdatetime(new Date()); | wxRentContract.setUpdatetime(new Date()); | ||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| if (wxRentContract.getRentalStartDate().before(new Date())) { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.RENT_PAID.getCode()); | |||||
| } else { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| } | |||||
| wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | ||||
| //预览账单改为正式,并写入商户id(租赁合同需要绑定商户才变成已签约) | //预览账单改为正式,并写入商户id(租赁合同需要绑定商户才变成已签约) | ||||
| WxBillRent billRent = new WxBillRent(); | WxBillRent billRent = new WxBillRent(); | ||||
| @@ -398,13 +398,17 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| if (id == null) { | if (id == null) { | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | ||||
| } | } | ||||
| WxPropertyContract record = wxPropertyContractMapper.selectByPrimaryKey(id); | |||||
| //更新合同状态为签约 | //更新合同状态为签约 | ||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | WxPropertyContract wxPropertyContract = new WxPropertyContract(); | ||||
| wxPropertyContract.setId(id); | wxPropertyContract.setId(id); | ||||
| wxPropertyContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| if (record.getRentalStartDate().before(new Date())) { | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.RENT_PAID.getCode()); | |||||
| } else { | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| } | |||||
| wxPropertyContractMapper.updateByPrimaryKeySelective(wxPropertyContract); | wxPropertyContractMapper.updateByPrimaryKeySelective(wxPropertyContract); | ||||
| //建立账单 | //建立账单 | ||||
| WxPropertyContract record = wxPropertyContractMapper.selectByPrimaryKey(id); | |||||
| if (record.getMerchantId() != null | if (record.getMerchantId() != null | ||||
| && record.getReceivePeriod() != null && record.getPrice() > 0) { | && record.getReceivePeriod() != null && record.getPrice() > 0) { | ||||
| //预览账单改为正式,并写入商户id | //预览账单改为正式,并写入商户id | ||||
| @@ -877,6 +881,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| return new ResultData(false); | return new ResultData(false); | ||||
| } | } | ||||
| @Override | |||||
| public Map<String, Object> updateStatus(WxPropertyContract record) { | public Map<String, Object> updateStatus(WxPropertyContract record) { | ||||
| Map<String, Object> resultData = new HashMap(); | Map<String, Object> resultData = new HashMap(); | ||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | WxPropertyContract wxPropertyContract = new WxPropertyContract(); | ||||
| @@ -1208,6 +1208,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| return pageInfo; | return pageInfo; | ||||
| } | } | ||||
| @Override | |||||
| public Map<String, Object> updateStatus(WxRentContract record) { | public Map<String, Object> updateStatus(WxRentContract record) { | ||||
| Map<String, Object> resultData = new HashMap(); | Map<String, Object> resultData = new HashMap(); | ||||
| WxRentContract wxRentContract = new WxRentContract(); | WxRentContract wxRentContract = new WxRentContract(); | ||||
| @@ -1340,7 +1341,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| //更新合同状态为签约 | //更新合同状态为签约 | ||||
| WxRentContract wxRentContract = new WxRentContract(); | WxRentContract wxRentContract = new WxRentContract(); | ||||
| wxRentContract.setId(id); | wxRentContract.setId(id); | ||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| if (record.getRentalStartDate().before(new Date())) { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.RENT_PAID.getCode()); | |||||
| } else { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()); | |||||
| } | |||||
| wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); | ||||
| //建立账单 | //建立账单 | ||||
| if (record != null && | if (record != null && | ||||