diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java index be54e7327..c4636fe17 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java @@ -389,6 +389,62 @@ public class WxAgileContractController extends WxContractBaseController { record.setSortColumns(BaseEntity.SortField.CreateDate_DESC); return new ResultData(wxAgileContractService.getContractCustomersList(record, pageNum, pageSize)); } + + /** + * 续签 + */ + @PostMapping("renewal") + public ResultData renewal(@RequestBody WxRentContract wxRentContract) { + if (null == wxRentContract.getId()){ + return new ResultData(Result.ERROR, "合同ID不能为空"); + } + + if (null == wxRentContract.getRentalStartDate() || null == wxRentContract.getRentalEndDate()){ + return new ResultData(Result.ERROR, "请选择租赁开始日期和截止日期"); + } + + if (null == wxRentContract.getStartDate()){ + return new ResultData(Result.ERROR, "请选择计租日期"); + } + + if (null == wxRentContract.getSignDate()){ + return new ResultData(Result.ERROR, "请选择签约日期"); + } + + WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); + if (null == rentContract) { + return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); + } + + if (!(rentContract.getRentalEndDate().before(wxRentContract.getRentalStartDate()))) { + return new ResultData(Result.ERROR, "续租合同开始日期要大于原合同截止日期"); + } + + MallUserInfo user = getUser(); + + rentContract.setRentalStartDate(wxRentContract.getRentalStartDate()); + rentContract.setRentalEndDate(wxRentContract.getRentalEndDate()); + rentContract.setSignDate(wxRentContract.getSignDate()); + rentContract.setStartDate(wxRentContract.getStartDate()); + rentContract.setEndDate(wxRentContract.getStartDate()); + rentContract.setFixStartDate(wxRentContract.getFixStartDate()); + rentContract.setFixEndDate(wxRentContract.getFixEndDate()); + + try { + rentContractValidShop(rentContract); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + try { + wxAgileContractService.renewalAgile(rentContract,user); + }catch(Exception e) { + logger.error("renewal error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + + return new ResultData(); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java index d26dd92de..298328a04 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java @@ -292,7 +292,6 @@ public class WxPropertyContractController extends WxContractBaseController { * @return */ @PostMapping("/unvalid") - @SystemControllerLog(description = "物业合同-作废合同") public ResultData unvalid(@RequestBody WxPropertyContract proertyContract) { WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId()); if (null == contract) { @@ -339,7 +338,6 @@ public class WxPropertyContractController extends WxContractBaseController { * @return */ @PostMapping("setEndContractTime") - @SystemControllerLog(description = "物业合同-设置定时终止合同时间") public ResultData setEndContractTime(@RequestBody WxPropertyContract proertyContract) { wxPropertyContractService.setEndContractTime(proertyContract); return new ResultData(); @@ -347,7 +345,6 @@ public class WxPropertyContractController extends WxContractBaseController { @PostMapping("effective") @ApiImplicitParams({}) - @SystemControllerLog(description = "物业合同-合同生效") public ResultData effective(@RequestBody WxPropertyContract proertyContract) { WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId()); if (null == contract) { @@ -416,7 +413,6 @@ public class WxPropertyContractController extends WxContractBaseController { } @PostMapping("apply") - @SystemControllerLog(description = "物业合同-提交审批") public ResultData apply(@RequestBody WxPropertyContract proertyContract) { MallUserInfo user = getUser(); WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId()); @@ -460,6 +456,66 @@ public class WxPropertyContractController extends WxContractBaseController { return wxPropertyContractService.apply(contract,user); } + @PostMapping("renewal") + public ResultData renewal(@RequestBody WxPropertyContract proertyContract) { + MallUserInfo user = getUser(); + + if (null == proertyContract.getId()){ + return new ResultData(Result.ERROR, "合同ID不能为空"); + } + + if (null == proertyContract.getRentalStartDate() || null == proertyContract.getRentalEndDate()){ + return new ResultData(Result.ERROR, "请选择租赁开始日期和截止日期"); + } + + if (null == proertyContract.getStartDate()){ + return new ResultData(Result.ERROR, "请选择计租日期"); + } + + if (null == proertyContract.getSignDate()){ + return new ResultData(Result.ERROR, "请选择签约日期"); + } + + WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId()); + if (null == contract) { + return new ResultData(Result.ERROR, "编号["+contract.getContractNumber()+"]未找到租金合同"); + } + + if (contract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()) { + return new ResultData(Result.ERROR, "编号["+contract.getContractNumber()+"]未找到租金合同"); + } + + if (!(contract.getRentalEndDate().before(proertyContract.getRentalStartDate()))) { + return new ResultData(Result.ERROR, "续租合同开始日期要大于原合同截止日期"); + } + + if (contract.getStatus().intValue() == EnumRentContractStatus.UNWRITE.getCode().intValue()) { + return new ResultData(Result.ERROR,"租金合同未完善,请先完善。"); + } + + + contract.setRentalStartDate(proertyContract.getRentalStartDate()); + contract.setRentalEndDate(proertyContract.getRentalEndDate()); + contract.setSignDate(proertyContract.getSignDate()); + contract.setStartDate(proertyContract.getStartDate()); + contract.setEndDate(proertyContract.getStartDate()); + + try { + propertyContractValidShop(contract); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + try { + wxPropertyContractService.renewal(contract,user); + }catch(Exception e) { + logger.error("renewal error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + + return new ResultData(); + } + @GetMapping("/del") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) 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 f305622f9..00553692e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -525,6 +525,79 @@ public class WxRentContractController extends WxContractBaseController { return wxRentContractService.apply(rentContract,user); } + //续签 + @PostMapping("renewal") + public ResultData renewal(@RequestBody WxRentContract wxRentContract) { + if (null == wxRentContract.getId()){ + return new ResultData(Result.ERROR, "合同ID不能为空"); + } + + if (null == wxRentContract.getRentalStartDate() || null == wxRentContract.getRentalEndDate()){ + return new ResultData(Result.ERROR, "请选择租赁开始日期和截止日期"); + } + + if (null == wxRentContract.getStartDate()){ + return new ResultData(Result.ERROR, "请选择计租日期"); + } + + if (null == wxRentContract.getSignDate()){ + return new ResultData(Result.ERROR, "请选择签约日期"); + } + + WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); + if (null == rentContract) { + return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); + } + + if (!(rentContract.getRentalEndDate().before(wxRentContract.getRentalStartDate()))) { + return new ResultData(Result.ERROR, "续租合同开始日期要大于原合同截止日期"); + } + + if (rentContract.getStatus().intValue() == EnumRentContractStatus.UNWRITE.getCode().intValue()) { + return new ResultData(Result.ERROR,"租金合同未完善,请先完善。"); + } + + if (rentContract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()) { + if (null == wxRentContract.getPropertyId()) { + return new ResultData(Result.ERROR,"未创建物业合同,请先完善。"); + } + WxPropertyContract property = wxPropertyContractService.getSimpleDetail(wxRentContract.getPropertyId()); + if (null == property) { + return new ResultData(Result.ERROR,"未创建物业合同,请先完善。"); + } + if (property.getStatus().intValue() == EnumRentContractStatus.UNWRITE.getCode().intValue()) { + return new ResultData(Result.ERROR,"物业合同未完善,请先完善。"); + } + } + + MallUserInfo user = getUser(); + + rentContract.setRentalStartDate(wxRentContract.getRentalStartDate()); + rentContract.setRentalEndDate(wxRentContract.getRentalEndDate()); + rentContract.setSignDate(wxRentContract.getSignDate()); + rentContract.setStartDate(wxRentContract.getStartDate()); + rentContract.setEndDate(wxRentContract.getStartDate()); + rentContract.setFixStartDate(wxRentContract.getFixStartDate()); + rentContract.setFixEndDate(wxRentContract.getFixEndDate()); + + try { + rentContractValidShop(rentContract); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + try { + wxRentContractService.renewal(rentContract,user); + }catch(Exception e) { + logger.error("renewal error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + + return new ResultData(); + } + + + @GetMapping("getRentContractList") @ApiImplicitParams({ diff --git a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java index 360d1dd22..dd8fd708a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxAgileContractService.java @@ -46,4 +46,6 @@ public interface WxAgileContractService { WxContractCustomers findCustomers(TenantEntity tenantEntity,Long customerId); PageInfo getContractCustomersList(WxContractCustomers record, Integer pageIndex, Integer pageSize); + + void renewalAgile(WxRentContract wxRentContract,MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 144c2ef66..05c95b094 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -72,6 +72,8 @@ public interface WxPropertyContractService { ResultData apply(WxPropertyContract wxPropertyContract,MallUserInfo user); + void renewal(WxPropertyContract wxPropertyContract,MallUserInfo user); + void outDateContract(WxMall wxMall); void readyToNomal(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 6fc04b234..f5222bb57 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -120,7 +120,9 @@ public interface WxRentContractService { ResultData getContractByContractNumber(WxRentContract wxRentContract); ResultData apply(WxRentContract wxRentContract,MallUserInfo user); - + + void renewal(WxRentContract wxRentContract,MallUserInfo user); + /** * 合同正常到期 * @param diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java index f15442051..281b75496 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java @@ -20,6 +20,7 @@ import com.iformall.domain.po.WxRentContractAgileDeposit; import com.iformall.domain.po.WxRentContractAgileDepositShop; import com.iformall.domain.po.WxRentContractAgileUnDeposit; import com.iformall.domain.po.WxRentContractAgileUnDepositItem; +import com.iformall.domain.po.WxRentContractRevenueJump; import com.iformall.domain.po.WxShop; import com.iformall.domain.po.WxShopUsers; import com.iformall.domain.po.base.TenantEntity; @@ -832,5 +833,129 @@ public class WxAgileContractServiceImpl implements WxAgileContractService { PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxContractCustomersMapper.findList(record)); return pageInfo; } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public void renewalAgile(WxRentContract rentContract,MallUserInfo user) { + final IdWorker idWorker = IdWorker.get(); + Long newContractId = idWorker.nextId(); + //拷贝 + WxContractShop csq = new WxContractShop(); + csq.updateTenantInfo(rentContract); + csq.setContractId(rentContract.getId()); + List csqlist = wxContractShopMapper.findList(csq); + if (null != csqlist && csqlist.size() > 0 ){ + for ( int i = 0 ; i< csqlist.size() ; i ++) { + WxContractShop cs = csqlist.get(i); + cs.setId(idWorker.nextId()); + cs.setContractId(newContractId); + cs.setCreateDate(new Date()); + cs.setUpdateDate(new Date()); + wxContractShopMapper.insert(cs); + } + } + + //WxContractCustomers ccq = new WxContractCustomers(); + + WxRentContractAgileDeposit cadq = new WxRentContractAgileDeposit(); + cadq.updateTenantInfo(rentContract); + cadq.setRentContractId(rentContract.getId()); + List depositList = wxRentContractAgileDepositMapper.findList(cadq); + if (null != depositList && depositList.size() > 0 ){ + for ( int i = 0 ; i< depositList.size() ; i ++) { + WxRentContractAgileDeposit rad = depositList.get(i); + Long oldId = rad.getId(); + rad.setId(idWorker.nextId()); + rad.setRentContractId(newContractId); + rad.setCreatetime(new Date()); + rad.setUpdatetime(new Date()); + wxRentContractAgileDepositMapper.insert(rad); + + WxRentContractAgileDepositShop radsq = new WxRentContractAgileDepositShop(); + radsq.updateTenantInfo(rentContract); + radsq.setRentContractId(rentContract.getId()); + radsq.setRentDepositId(oldId); + List dslist = wxRentContractAgileDepositShopMapper.findList(radsq); + if (null != dslist && dslist.size() > 0 ){ + for ( int j = 0 ; j< dslist.size() ; j ++) { + WxRentContractAgileDepositShop ds = dslist.get(j); + ds.setId(idWorker.nextId()); + ds.setRentContractId(newContractId); + ds.setRentDepositId(rad.getId()); + ds.setCreatetime(new Date()); + ds.setUpdatetime(new Date()); + wxRentContractAgileDepositShopMapper.insert(ds); + } + } + } + } + + WxRentContractAgileUnDeposit raudq = new WxRentContractAgileUnDeposit(); + raudq.updateTenantInfo(rentContract); + raudq.setRentContractId(rentContract.getId()); + List undepositList = wxRentContractAgileUnDepositMapper.findList(raudq); + if (null != undepositList && undepositList.size() > 0 ) { + for ( int i = 0 ; i< undepositList.size() ; i ++) { + WxRentContractAgileUnDeposit raud = undepositList.get(i); + raud.setId(idWorker.nextId()); + raud.setRentContractId(newContractId); + raud.setCreatetime(new Date()); + raud.setUpdatetime(new Date()); + wxRentContractAgileUnDepositMapper.insert(raud); + + if (raud.getSettingMethod().intValue() == EnumRentContractAgilSettingMethod.BY_CONTRACT.getCode().intValue()) { + WxRentContractAgileUnDepositItem item = generateUnDepositItem(idWorker,rentContract,raud.getId(),raud.getFeesId(),null); + wxRentContractAgileUnDepositItemMapper.insert(item); + }else { + List shopIdList = rentContract.shopIdsByRentInfo(); + for (int j = 0 ; j < shopIdList.size(); j++ ){ + WxRentContractAgileUnDepositItem item = generateUnDepositItem(idWorker,rentContract,raud.getId(),raud.getFeesId(),shopIdList.get(j)); + wxRentContractAgileUnDepositItemMapper.insert(item); + } + } + } + } + + rentContract.setId(newContractId); + rentContract.setCreatetime(new Date()); + rentContract.setCreateBy(user.getId()); + rentContract.setCreateByName(user.getName()); + rentContract.setUpdatetime(new Date()); + rentContract.setUpdateBy(user.getId()); + rentContract.setUpdateByName(user.getName()); + rentContract.setStatus(EnumRentContractStatus.DRAFT.getCode()); + rentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + rentContract.setEndContractTime(null); + rentContract.setFirstBillDateStart(null); + rentContract.setFirstBillDateEnd(null); + rentContract.setFirstBillReceiveDate(null); + int[] array = DateUtils.getDiff(rentContract.getRentalStartDate(),rentContract.getRentalEndDate()); + rentContract.setLease(array[0]); + //rentContract.setAdjustRatio(); + //rentContract.setRevenueRatioSet(); + //rentContract.set + wxRentContractMapper.insert(rentContract); + } + + + private WxRentContractAgileUnDepositItem generateUnDepositItem(IdWorker idWorker,WxRentContract rentContract,Long undepositId,Long feesId,Long shopId) { + WxRentContractAgileUnDepositItem raudi = new WxRentContractAgileUnDepositItem(); + raudi.setId(idWorker.nextId()); + raudi.updateTenantInfo(rentContract); + raudi.setRentContractId(rentContract.getId()); + raudi.setUnDepositId(undepositId); + raudi.setFeesId(feesId); + raudi.setShopId(shopId); + raudi.setBeginTime(rentContract.getRentalStartDate()); + raudi.setEndTime(rentContract.getRentalEndDate()); + raudi.setPrice("0"); + raudi.setPriceUnit(EnumRentContractAgilPriceUnit.MM_MONTH.getCode()); + raudi.setCreatetime(new Date()); + raudi.setUpdatetime(new Date()); + raudi.setIsFree(EnumYesOrNo.NO.getCode()); + raudi.setRentArea(rentContract.getRentArea()); + raudi.setIsFather(EnumYesOrNo.YES.getCode()); + return raudi; + } } 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 b689e80a3..24b1f38dc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -1449,6 +1449,46 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return new ResultData(Result.ERROR, "编号["+record.getId()+"]物业合同状态不能提交审批.允许提交的状态为 [草稿],[履约中+审批驳回]"); } } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public void renewal(WxPropertyContract record, MallUserInfo user) { + final IdWorker idWorker = IdWorker.get(); + Long newContractId = idWorker.nextId(); + //拷贝 + WxContractShop csq = new WxContractShop(); + csq.updateTenantInfo(record); + csq.setContractId(record.getId()); + List csqlist = wxContractShopMapper.findList(csq); + if (null != csqlist && csqlist.size() > 0 ){ + for ( int i = 0 ; i< csqlist.size() ; i ++) { + WxContractShop cs = csqlist.get(i); + cs.setId(idWorker.nextId()); + cs.setContractId(newContractId); + cs.setCreateDate(new Date()); + cs.setUpdateDate(new Date()); + wxContractShopMapper.insert(cs); + } + } + record.setId(newContractId); + record.setCreatetime(new Date()); + record.setCreateBy(user.getId()); + record.setCreateByName(user.getName()); + record.setUpdatetime(new Date()); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + record.setStatus(EnumRentContractStatus.UNWRITE.getCode()); + record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + record.setEndContractTime(null); + record.setFirstBillDateStart(null); + record.setFirstBillDateEnd(null); + record.setFirstBillReceiveDate(null); + int[] array = DateUtils.getDiff(record.getRentalStartDate(),record.getRentalEndDate()); + record.setLease(array[0]); + record.setRentContractId(null); + record.setCreateType(EnumPropertyCreateType.BY_SHOP.getCode()); + wxPropertyContractMapper.insert(record); + } @Override public void outDateContract(WxMall wxMall) { 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 8bfe6d371..3331f3c90 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2012,7 +2012,87 @@ public class WxRentContractServiceImpl implements WxRentContractService { return new ResultData(Result.ERROR, "编号["+rentContract.getId()+"]租金合同状态不能提交审批.允许提交的状态为 [草稿],[履约中+审批驳回]"); } } - + + @Override + @Transactional(rollbackFor = {Exception.class}) + public void renewal(WxRentContract rentContract,MallUserInfo user) { + final IdWorker idWorker = IdWorker.get(); + Long newContractId = idWorker.nextId(); + //拷贝 + WxContractShop csq = new WxContractShop(); + csq.updateTenantInfo(rentContract); + csq.setContractId(rentContract.getId()); + List csqlist = wxContractShopMapper.findList(csq); + if (null != csqlist && csqlist.size() > 0 ){ + for ( int i = 0 ; i< csqlist.size() ; i ++) { + WxContractShop cs = csqlist.get(i); + cs.setId(idWorker.nextId()); + cs.setContractId(newContractId); + cs.setCreateDate(new Date()); + cs.setUpdateDate(new Date()); + wxContractShopMapper.insert(cs); + } + } + + //WxContractCustomers ccq = new WxContractCustomers(); + + WxRentContractRevenueJump crjq = new WxRentContractRevenueJump(); + crjq.updateTenantInfo(rentContract); + crjq.setRentContractId(rentContract.getId()); + List jumpList = wxRentContractRevenueJumpMapper.findList(crjq); + if ( null != jumpList && jumpList.size() > 0 ) { + for (int i = 0 ; i < jumpList.size(); i++) { + WxRentContractRevenueJump rj = jumpList.get(i); + rj.setRentContractId(newContractId); + rj.setId(idWorker.nextId()); + rj.setCreateTime(new Date()); + rj.setUpdateTime(new Date()); + wxRentContractRevenueJumpMapper.insert(rj); + } + } + + //WxRentContractFreePeriod cfpq = new WxRentContractFreePeriod(); + + Long oldId = rentContract.getId(); + rentContract.setId(newContractId); + rentContract.setCreatetime(new Date()); + rentContract.setCreateBy(user.getId()); + rentContract.setCreateByName(user.getName()); + rentContract.setUpdatetime(new Date()); + rentContract.setUpdateBy(user.getId()); + rentContract.setUpdateByName(user.getName()); + rentContract.setStatus(EnumRentContractStatus.UNWRITE.getCode()); + rentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + rentContract.setEndContractTime(null); + rentContract.setFirstBillDateStart(null); + rentContract.setFirstBillDateEnd(null); + rentContract.setFirstBillReceiveDate(null); + int[] array = DateUtils.getDiff(rentContract.getRentalStartDate(),rentContract.getRentalEndDate()); + rentContract.setLease(array[0]); + //rentContract.setAdjustRatio(); + //rentContract.setRevenueRatioSet(); + //rentContract.set + wxRentContractMapper.insert(rentContract); + + if (rentContract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()) { + WxPropertyContract pq = new WxPropertyContract(); + pq.updateTenantInfo(rentContract); + pq.setOperationType(EnumContractOperationType.WHOLE.getCode()); + pq.setRentContractId(oldId); + List pclist = wxPropertyContractService.findList(pq); + if (null != pclist && pclist.size() > 0 ) { + WxPropertyContract propertyContract = pclist.get(0); + propertyContract.setRentalStartDate(rentContract.getRentalStartDate()); + propertyContract.setRentalEndDate(rentContract.getRentalEndDate()); + propertyContract.setSignDate(rentContract.getSignDate()); + propertyContract.setStartDate(rentContract.getStartDate()); + propertyContract.setEndDate(rentContract.getStartDate()); + wxPropertyContractService.renewal(propertyContract, user); + } + + } + } + @Override public void outDateContract(WxMall wxMall) { try { @@ -2495,19 +2575,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { return unitPropertyPrice; } - public static void main(String[] args) { - Date startDate = DateUtils.stringToDate("2023-12-20 00:00:00", DateUtils.DATE_TIME_PATTERN); - Date endDate = DateUtils.stringToDate("2024-12-19 00:00:00", DateUtils.DATE_TIME_PATTERN); - int days = DateUtils.daysBetween(startDate, endDate)+1; - System.out.println(days); - - Date realEndStart = DateUtils.getDaySet(endDate, Calendar.SECOND, 1); - int[] diffs = DateUtils.getDiff(startDate, realEndStart); - Date preextraStartDay = DateUtils.getTimeAfterMonths(diffs[0], startDate); - int predays = DateUtils.daysBetween(preextraStartDay, endDate)+1; - System.out.println(diffs[0]+">>>>" +diffs[1]+ ">>>>"+predays); - } - private BigDecimal[] calcuteReveneuJump(BigDecimal sales,WxRentContract rentcontract,Date startDate,Date endDate,List freePeriods) { BigDecimal revenueDecimal = new BigDecimal(0); BigDecimal rentDecimal = new BigDecimal(0);