From f43e7d6606eaee24e93c32769166d78c574cb6ed Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 25 Aug 2020 16:51:56 +0800 Subject: [PATCH] fix contract --- .../contract/WxRentContractController.java | 54 ++++++++++++------- .../V202007311142__GROUP__ADD_002.sql | 2 +- .../V202007311200__FOR_MEMBER_ONLY_001.sql | 14 +++++ .../iformall/schedule/ContractSchedule.java | 2 +- .../mapper/WxPropertyContractMapper.xml | 2 +- .../resources/mapper/WxRentContractMapper.xml | 6 +-- 6 files changed, 55 insertions(+), 25 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 2e3c74b8e..ad6f8e470 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -435,11 +435,18 @@ public class WxRentContractController extends WxContractBaseController { if (contract.getStatus().intValue() != EnumRentContractStatus.DRAFT.getCode().intValue()) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"租赁合同状态为草稿才能进行此操作"); } - //店铺是否存在其他有效合同里面 - boolean result = wxRentContractService.hasOtherValidContractShop(contract); - if (result) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"店铺已经在其他计租中或者已签约未到期的合同里面了。"); - } +// //店铺是否存在其他有效合同里面 +// boolean result = wxRentContractService.hasOtherValidContractShop(contract); +// if (result) { +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"店铺已经在其他计租中或者已签约未到期的合同里面了。"); +// } + + try { + validConfilit(contract); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + wxRentContractService.updateRentContractStatus(wxRentContract.getId()); if(contract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()) { wxPropertyContractService.updatePropertyContractStatus(wxRentContract.getPropertyId()); @@ -447,19 +454,8 @@ public class WxRentContractController extends WxContractBaseController { return new ResultData(Result.SUCCESS,"合同生效成功!"); } - @PostMapping("apply") - @SystemControllerLog(description = "租赁合同-提交审批") - public ResultData apply(@RequestBody WxRentContract wxRentContract) { - WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); - if (null == rentContract) { - return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); - } - MallUserInfo user = getUser(); - //查询是否有审批流程 - if(rentContractHasWorkFlow(rentContract)) { - return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。"); - } - //判断是否该合同的时间和有效的合同是否冲突 + private void validConfilit(WxRentContract rentContract) throws Exception { + //判断是否该合同的时间和有效的合同是否冲突 List shopIds = rentContract.shopIdsByRentInfo(); for (Long sid: shopIds) { WxRentContract rcq = new WxRentContract(); @@ -471,11 +467,31 @@ public class WxRentContractController extends WxContractBaseController { 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()+"]有冲突。"); + throw new MallinkException(Result.ERROR, "店铺["+sid+"]的计租时间区间与合同["+crc.getContractNumber()+"]有冲突。"); } } } } + } + + @PostMapping("apply") + @SystemControllerLog(description = "租赁合同-提交审批") + public ResultData apply(@RequestBody WxRentContract wxRentContract) { + WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); + if (null == rentContract) { + return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); + } + MallUserInfo user = getUser(); + //查询是否有审批流程 + if(rentContractHasWorkFlow(rentContract)) { + return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。"); + } + + try { + validConfilit(rentContract); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } if(rentContract.getOperationType().intValue() == EnumContractOperationType.PART.getCode().intValue()) { if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { diff --git a/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql b/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql index a1cd281d3..4d1698fef 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql @@ -1,7 +1,7 @@ update mall_sale_type set menus = '[1, 2, 5, 6, 8, 10, 50, 101, 102, 104, 105, 106, 108, 203, 204, 206, 207, 501, 502, 503, 504, 505, 506, 507, 511, 512, 522, 523, 509, 591, 595, 601, 605, 621, 622, 623, 624, 625, 626, 627, 671, 901, 902]' where id=100 -CREATE DEFINER=`root`@`%` PROCEDURE `init_after_group`(IN tenantId VARCHAR(25),IN subTenantIds VARCHAR(250)) +CREATE PROCEDURE `init_after_group`(IN tenantId VARCHAR(25),IN subTenantIds VARCHAR(250)) BEGIN DECLARE tableName VARCHAR(50); DECLARE end_flag INT DEFAULT FALSE; diff --git a/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql b/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql index d07e06933..9fe7e95a9 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202007311200__FOR_MEMBER_ONLY_001.sql @@ -3,6 +3,8 @@ ADD COLUMN `user_id` bigint(11) COMMENT '用户ID' AFTER `active_time`; update `wx_c_user` set user_id = id where id in (select id from wx_c_user_basic_info); +create table wx_c_user_basic_info_20200826 like wx_c_user_basic_info; +insert into wx_c_user_basic_info_20200826 select * from wx_c_user_basic_info; ALTER TABLE `wx_c_user_basic_info` ADD COLUMN `final_tenant_id` varchar(5) NOT NULL COMMENT '归属租户ID' AFTER `parent_tenant_id`; @@ -63,6 +65,18 @@ ALTER TABLE `wx_rent_contract` ADD COLUMN `shop_name` VARCHAR(100) COMMENT '店 //待刷语句 //刷shop_name字段,合同状态为4(即将到期)更新为计租中,合同状态为8(补录),9(续签)更新为草稿。租金合同rentinfo +UPDATE wx_rent_contract SET STATUS = 3 , apply_status = 2 WHERE STATUS = 4 AND apply_status = 1; +UPDATE wx_property_contract SET STATUS = 3 WHERE STATUS = 4; + +UPDATE wx_rent_contract SET STATUS = 1 WHERE STATUS = 8 AND apply_status = 0; +UPDATE wx_rent_contract SET STATUS = 10 WHERE STATUS = 8 AND apply_status = 1; + +UPDATE wx_rent_contract SET STATUS = 1 WHERE STATUS = 9; + + + + + ALTER TABLE `wx_rent_contract` ADD COLUMN `from_id` BIGINT(20) DEFAULT NULL COMMENT '来源ID,针对续签,从哪个合同续签'; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index 23632e652..53f184794 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -37,7 +37,7 @@ public class ContractSchedule { /** * 凌晨5分 */ - @Scheduled(cron = "0 5 0 * * ?") + @Scheduled(cron = "0 0/2 * * * ?") public void updateContractStatus() { //更新合同状态,正常到期 diff --git a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml index d31578ea5..610996fc7 100644 --- a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml @@ -370,7 +370,7 @@