From 616d7aa7cd55189c3f3a392fcaf20e5a1966daad Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Fri, 30 Dec 2022 11:51:20 +0800 Subject: [PATCH] fix --- .../contract/WxRentContractController.java | 17 +++++++++++++++ .../db/migration/V202301200001__contract.sql | 3 +++ .../iformall/schedule/ContractSchedule.java | 21 +++++++++++++++++++ .../schedule/OrderExpiringSchedule.java | 1 + .../schedule/OrderRefundAuditSchedule.java | 5 +++-- .../schedule/TtMerchantReciverSchedule.java | 2 ++ .../iformall/domain/po/WxRentContract.java | 3 ++- .../iformall/mapper/WxRentContractMapper.java | 4 ++++ .../service/WxRentContractService.java | 4 ++++ .../impl/WxRentContractServiceImpl.java | 11 ++++++++++ .../resources/mapper/WxRentContractMapper.xml | 18 +++++++++++++--- 11 files changed, 83 insertions(+), 6 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 09d871f7e..1160e0ccb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -486,6 +486,23 @@ public class WxRentContractController extends WxContractBaseController { return new ResultData(); } + /** + * 设置定时终止时间 + * @return + */ + @PostMapping("setEndContractTime") + @SystemControllerLog(description = "租赁合同-设置定时终止合同时间") + public ResultData setEndContractTime(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract"); + WxRentContract contract = wxRentContractMapper.selectById(wxRentContract.getId()); + if (contract == null) { + return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); + } + contract.setEndContractTime(wxRentContract.getEndContractTime()); + wxRentContractService.setEndContractTime(contract); + return new ResultData(); + } + @RequestMapping("/download") public void download(HttpServletRequest request, HttpServletResponse response){ diff --git a/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql b/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql index 23c52a355..046a3521f 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql @@ -9,3 +9,6 @@ ADD COLUMN `revenue_ratio_way` int(1) COMMENT '联营扣点调整方式1按比 ALTER TABLE `mallink`.`wx_rent_contract` ADD COLUMN `revenue_ratio_set` JSON COMMENT '联营扣点调整比率(仅联营面积取高时用)' AFTER `revenue_ratio_way`; + +ALTER TABLE `mallink`.`wx_rent_contract` +ADD COLUMN `end_contract_time` datetime COMMENT '终止时间'; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index 2ab62f5ea..28c6e85de 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -84,5 +84,26 @@ public class ContractSchedule { log.info("合同状态更新结束"); } + /** + * 凌晨5分 + */ + @Async + @Scheduled(cron = "0 5 0 * * ?") + public void endContract() { + List wxMalls = wxMallMapper.findList(null); + for (WxMall wxMall : wxMalls) { + //租金合同 + WxRentContract record = new WxRentContract(); + record.updateTenantInfo(wxMall); + List contractList = wxRentContractService.findToEndContractList(record); + for (WxRentContract rent:contractList) { + try { + wxRentContractService.endContract(rent); + }catch(Exception e) { + log.error("rentcontract outDate error.",e); + } + } + } + } } \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index eefa4f6e4..5c6a14fbb 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -96,6 +96,7 @@ public class OrderExpiringSchedule { return wxMallMapper.findList(wxMall); } + //@Async,事物失效 @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 public void orderExpireSchedule() { diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderRefundAuditSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderRefundAuditSchedule.java index 83b1a79fa..d64d5b359 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderRefundAuditSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderRefundAuditSchedule.java @@ -13,6 +13,7 @@ import com.iformall.utils.MaUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -41,7 +42,7 @@ public class OrderRefundAuditSchedule { @Autowired MaUtil maUtil; - + @Async @Scheduled(cron = "0 */5 * * * ?")// //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 public void orderQueryRefund() { @@ -130,7 +131,7 @@ public class OrderRefundAuditSchedule { return wxAppinfoMapper.findList(appinfo); } - + @Async @Scheduled(cron = "0 30 */1 * * ?")// 每个小时的30分钟 //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 public void merchantAuditCallback() { diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java index 3e36eddfb..9beffb158 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/TtMerchantReciverSchedule.java @@ -7,6 +7,7 @@ import com.iformall.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -42,6 +43,7 @@ public class TtMerchantReciverSchedule { /** * 每半小时 */ + @Async @Scheduled(cron = "0 */30 * * * ?") // @Scheduled(cron = "0 */5 * * * *?") //测试五分钟执行 public void updateMerchantReciverSchedule() { 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 34d56a729..aabec0ed4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -317,7 +317,8 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "审批流类型: 审批流1合同2账单3终止审批", name = "businessType") private Integer businessType; - + @io.swagger.annotations.ApiModelProperty(value = "终止时间", name = "endContractTime") + private Date endContractTime; @io.swagger.annotations.ApiModelProperty(value = "租赁商铺类型", name = "rentShopType") private Integer rentShopType; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java index ab91b30e3..092b2e593 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java @@ -60,4 +60,8 @@ public interface WxRentContractMapper extends CommonMapper List getUsedRentShopIds(WxRentContract wxRentContract); long findCount(WxRentContract wxRentContract); + + void setEndContractTime(WxRentContract rentContract); + + List findToEndContractList(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 1cd411693..5f32d3100 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -131,4 +131,8 @@ public interface WxRentContractService { Map currentValidByMerchantId(TenantEntity tenantInfo, Long merchantId,String shopNumber); long findCount(WxRentContract wxRentContract); + + void setEndContractTime(WxRentContract wxRentContract); + + List findToEndContractList(WxRentContract record); } 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 38cf51275..9313b18f0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1856,6 +1856,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } contract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); contract.setUpdatetime(new Date()); + contract.setEndContractTime(wxRentContract.getEndContractTime()); wxRentContractMapper.updateById(contract); //终止租赁合同,同时终止物业合同 @@ -3440,4 +3441,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { return count; } + @Override + public void setEndContractTime(WxRentContract wxRentContract) { + wxRentContractMapper.setEndContractTime(wxRentContract); + } + + @Override + public List findToEndContractList(WxRentContract record) { + return wxRentContractMapper.findToEndContractList(record); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index 615d3c9c4..9997036ce 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -116,6 +116,7 @@ + @@ -128,7 +129,7 @@ `deposit`,cashtype_content_lsit,cashtype_lsit,`pay_date`,`is_del`,`merchant_name`, `brand`,`business_id`,`shop_type`,`shop_type_str`,`updatetime`,`createtime`,`link_person`,`link_phone`,`link_address`, `pay_account`,`filename`,`lease`,`type`,`revenue`,`revenue_ratio`,`revenue_year`,`revenue_ratio_way`,`revenue_ratio_set`,`adjust_ratio`,`adjust_period`,`pay_ratio`, - `start_date`,`end_date`,`shop_name`,`from_id`, + `start_date`,`end_date`,`shop_name`,`from_id`,`end_contract_time`, `apply_status`,`bank_name`,`rent_shop_type`,`fix_start_date`,`fix_end_date`, `business_type`,`rent_info`, `file_names`,price_unit,rent_price,other_rent_price_info,`subject_name`,rent_start_type, `rent_input_way`,`adjust_ratio_way`,`operation_type`,late_pay_ratio,late_pay_day,bus_discount_ratio,bus_discount_time @@ -495,7 +496,7 @@ rc.`deposit`,rc.cashtype_content_lsit,rc.cashtype_lsit,rc.`pay_date`,rc.`is_del`,rc.`merchant_name`, rc.`brand`,rc.`business_id`,rc.`shop_type`,rc.`shop_type_str`,rc.`updatetime`,rc.`createtime`,rc.`link_person`,rc.`link_phone`,rc.`link_address`, rc.`pay_account`,rc.`filename`,rc.`lease`,rc.`type`,rc.`revenue`,rc.`revenue_ratio`,rc.`revenue_year`,rc.`revenue_ratio_way`,rc.`revenue_ratio_set`,rc.`adjust_ratio`,rc.`adjust_period`,rc.`pay_ratio`, - rc.`start_date`,rc.`end_date`,rc.`shop_name`,rc.`from_id`, + rc.`start_date`,rc.`end_date`,rc.`shop_name`,rc.`from_id`,`rc.end_contract_time`, rc.`apply_status`,rc.`bank_name`,rc.`rent_shop_type`,rc.`fix_start_date`,rc.`fix_end_date`, rc.`business_type`,rc.`rent_info`, rc.`file_names`,rc.price_unit,rent_price,rc.other_rent_price_info,rc.`subject_name`,rc.rent_start_type, rc.`rent_input_way`,rc.`adjust_ratio_way`,rc.`operation_type`,rc.late_pay_ratio,rc.late_pay_day,rc.bus_discount_ratio,rc.bus_discount_time @@ -520,7 +521,7 @@ rc.`deposit`,rc.cashtype_content_lsit,rc.cashtype_lsit,rc.`pay_date`,rc.`is_del`,rc.`merchant_name`, rc.`brand`,rc.`business_id`,rc.`shop_type`,rc.`shop_type_str`,rc.`updatetime`,rc.`createtime`,rc.`link_person`,rc.`link_phone`,rc.`link_address`, rc.`pay_account`,rc.`filename`,rc.`lease`,rc.`type`,rc.`revenue`,rc.`revenue_ratio`,rc.`revenue_year`,rc.`revenue_ratio_way`,rc.`revenue_ratio_set`,rc.`adjust_ratio`,rc.`adjust_period`,rc.`pay_ratio`, - rc.`start_date`,rc.`end_date`,rc.`shop_name`,rc.`from_id`, + rc.`start_date`,rc.`end_date`,rc.`shop_name`,rc.`from_id`,rc.`end_contract_time`, rc.`apply_status`,rc.`bank_name`,rc.`rent_shop_type`,rc.`fix_start_date`,rc.`fix_end_date`, rc.`business_type`,rc.`rent_info`, rc.`file_names`,rc.price_unit,rent_price,rc.other_rent_price_info,rc.`subject_name`,rc.rent_start_type, rc.`rent_input_way`,rc.`adjust_ratio_way`,rc.`operation_type`,rc.late_pay_ratio,rc.late_pay_day,rc.bus_discount_ratio,rc.bus_discount_time @@ -556,5 +557,16 @@ + + update wx_rent_contract set end_contract_time = #{endContractTime} where id = #{id} + + + +