ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -158,6 +158,36 @@ tContractRentType.setCycleTime(dto.getCycleTime()); contractRentTypeService.save(tContractRentType); } if (dto.getStatus().equals("2")){ //发起合同新增审批 ProcessStartBO processStartBO = new ProcessStartBO(); processStartBO.setCategory(ProcessCategoryEnum.CATEGORY1.getValue().toString()); processStartBO.setModuleName("合同新增审批"); processStartBO.setName(dto.getContractName()); //需要显示发起申请人所在单位 // String cedName = SecurityUtils.getLoginUser().getUser().getDept().getDeptName(); // String remark = String.format("【镇/街】:%s,【征收实施单位】:%s,【申请金额】:%s万元", stateProject.getStreet(), cedName, stateApplyRecord.getAmount()); processStartBO.setRemark(""); Map<String, Object> variable = new HashMap<>(); variable.put("projectId", dto.getId()); processStartBO.setVariable(variable); //开启工作流程 Boolean start = stateProcessTemplateService.start(processStartBO); if(start){ FlwTask flwTask = flwTaskMapper.selectOne(Wrappers.lambdaQuery(FlwTask.class) .like(FlwTask::getVariable, dto.getId()) .orderByDesc(FlwTask::getCreateTime) .last("LIMIT 1")); if(Objects.nonNull(flwTask)){ // 添加定时任务 Map<String, ? extends Object> maps = new ImmutableMap.Builder<String, Long>(). put("id", flwTask.getId()) .build(); QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+48*60*60*1000L), maps); } } } return R.ok(); } @Log(title = "合同管理-批量删除合同", businessType = BusinessType.DELETE) @@ -178,8 +208,6 @@ TContractVO res = new TContractVO(); TContract contract = contractService.getById(id); BeanUtils.copyProperties(contract,res); res.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,res.getPayType())); res.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,res.getStatus())); TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one(); if (contractRentType!=null){ BeanUtils.copyProperties(contractRentType,res); ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java
@@ -352,6 +352,11 @@ TContract contract = contractService.getById(bill.getContractId()); THouse tHouse = houseService.getById(contract.getHouseId()); res.setHouse(tHouse); res.setConcatStartTime(contract.getStartTime()); res.setConcatEndTime(contract.getEndTime()); res.setPartyOnePhone(contract.getPartyOnePhone()); res.setPartyOnePerson(contract.getPartyTwoPerson()); res.setMonthRent(bill.getPayableFeesMoney()); return R.ok(res); } @ApiOperation(value = "管理员-我的审批分页列表") ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
@@ -281,10 +281,25 @@ rentBill.setBillType("1"); rentBill.setStartTime(contract.getStartPayTime()); if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){ rentBill.setEndTime(contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12)); }else{ rentBill.setEndTime(contract.getEndTime()); } TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null); if (tContractRentType!=null && contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(tContractRentType.getChangeTime())){ if (tContractRentType!=null && rentBill.getEndTime().isAfter(tContractRentType.getChangeTime()) ){ long moneyDays = 0; switch (contract.getPayType()){ case "1": break; case "2": break; case "3": break; } // 计算租金变动的天数 long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))+1L; moneyDays = Math.abs(ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))+1L); contract.setChangeTime(LocalDateTime.now()); // 递增递减的租金 BigDecimal contractRentTypeMoney = new BigDecimal("0"); @@ -324,11 +339,7 @@ .multiply(new BigDecimal(originalDays)); rentBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney()); if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){ rentBill.setEndTime(contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12)); }else{ rentBill.setEndTime(contract.getEndTime()); } }else{ if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){ rentBill.setEndTime(contract.getEndTime()); ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java
@@ -41,11 +41,13 @@ .le(TContract::getStartTime, LocalDateTime.now()) .ge(TContract::getEndTime, LocalDateTime.now())); for (THouse tHouse : list) { tHouse.setLeaseStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_LEASE_STATUS,tHouse.getLeaseStatus())); tHouse.setBusinessAttributes(DictUtils.getDictLabel(DictConstants.DICT_TYPE_BUSINESS_ATTRIBUTES,tHouse.getBusinessAttributes())); TContract tContract = tContracts.stream().filter(e -> e.getHouseId().equals(tHouse.getId())).findFirst().orElse(null); if (tContract!=null){ tHouse.setTenantType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,tContract.getPayType())); tHouse.setLeaseStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_LEASE_STATUS,"2")); }else{ tHouse.setLeaseStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_LEASE_STATUS,tHouse.getLeaseStatus())); } } pageInfo.setRecords(list);