From ae17fedf4c852aa0a0f87e635231d90a5b88f48e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 06 三月 2025 16:49:25 +0800 Subject: [PATCH] 权限 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java | 409 ++++++++++++++++++++++++---------------------------------- 1 files changed, 170 insertions(+), 239 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java index 41c16d0..3240660 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java @@ -116,7 +116,7 @@ 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); + QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name + flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT, new Date(new Date().getTime() + 48 * 60 * 60 * 1000L), maps); //对比发起人和节点审批人 @@ -139,9 +139,9 @@ List<String> roleIds = nodeAssigneeList.stream().map(NodeAssignee::getId).collect(Collectors.toList()); List<SysRole> actorList = sysRoleService.selectRoleByUserIds(roleIds); List<FlwTaskActor> flwTaskActors = new ArrayList<>(); - if(ObjectUtils.isNotEmpty(actorList)) { + if (ObjectUtils.isNotEmpty(actorList)) { for (SysRole sysRole : actorList) { - if(ObjectUtil.isEmpty(sysRole.getRoleName())) { + if (ObjectUtil.isEmpty(sysRole.getRoleName())) { continue; } NodeAssignee nodeAssignee = new NodeAssignee(); @@ -167,7 +167,7 @@ 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); + QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name + flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT, new Date(new Date().getTime() + 48 * 60 * 60 * 1000L), maps); //对比发起人和节点审批人 @@ -200,8 +200,8 @@ log.error("节点不存在 TaskName:{} InstanceId:{}", flwTask.getTaskName(), flwTask.getInstanceId()); return true; } - long count = flwTaskMapper.selectCount(new LambdaQueryWrapper<FlwTask>().eq(FlwTask::getInstanceId,flwTask.getInstanceId())); - if(count > 0){ + long count = flwTaskMapper.selectCount(new LambdaQueryWrapper<FlwTask>().eq(FlwTask::getInstanceId, flwTask.getInstanceId())); + if (count > 0) { return true; } //最后一个节点 @@ -224,7 +224,7 @@ System.out.println("流程完成:" + flwTask.getVariable()); handlerBusiness(flwTask.getVariable(), 1); } - } else if(eventType.eq(EventType.autoJump)){ + } else if (eventType.eq(EventType.autoJump)) { // 查询流程模型 自动跳转 FlwExtInstance flwExtInstance = flwExtInstanceMapper.selectById(flwTask.getInstanceId()); String modelContent = flwExtInstance.getModelContent(); @@ -234,8 +234,8 @@ log.error("节点不存在 TaskName:{} InstanceId:{}", flwTask.getTaskName(), flwTask.getInstanceId()); return true; } - long count = flwTaskMapper.selectCount(new LambdaQueryWrapper<FlwTask>().eq(FlwTask::getInstanceId,flwTask.getInstanceId())); - if(count > 0){ + long count = flwTaskMapper.selectCount(new LambdaQueryWrapper<FlwTask>().eq(FlwTask::getInstanceId, flwTask.getInstanceId())); + if (count > 0) { return true; } //最后一个节点 @@ -259,17 +259,19 @@ switch (categoryEnum) { case CATEGORY1: { // 合同新增审批 - int submitStatus = status==0?2:(status==1?3:5); + int submitStatus = status == 0 ? 2 : (status == 1 ? 3 : 5); contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus); // TODO 发短信 break; } case CATEGORY2: { // 合同签订审批 - int submitStatus = status==0?3:(status==1?4:5); + int submitStatus = status == 0 ? 3 : (status == 1 ? 4 : 5); contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus); TContract contract = contractService.getById(processParameter.getString("projectId")); List<TContractRentType> contractRentTypes = contractRentTypeService.list(); + TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null); + // 生成第一笔账单 // 第一次应缴费日期 LocalDateTime firstPayTime = contract.getStartTime().plusDays(10).withHour(0).withMinute(0).withSecond(0); @@ -281,89 +283,65 @@ 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{ + if (rentBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).isAfter(contract.getEndTime())) { + if (rentBill.getStartTime().getDayOfMonth() != 1) { + rentBill.setEndTime(rentBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth())); + } else { + rentBill.setEndTime(rentBill.getStartTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth())); + } + } else { rentBill.setEndTime(contract.getEndTime()); } - TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null); - if (tContractRentType!=null && rentBill.getEndTime().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; - - } + moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), rentBill.getEndTime()); // 计算租金变动的天数 - 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()); + contract.setChangeTime(tContractRentType.getChangeTime()); // 递增递减的租金 BigDecimal contractRentTypeMoney = new BigDecimal("0"); // 不递增递减的租金 BigDecimal originalMoney = new BigDecimal("0"); // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ + switch (tContractRentType.getIncreasingDecreasingType()) { case 1: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + // 变动后的每月租金 + contract.setChangeRent(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); break; case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contract.setChangeRent(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); break; } break; case 2: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contract.setChangeRent(contract.getChangeRent().add(tContractRentType.getNumericalValue())); break; case 2: contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - + contract.setChangeRent(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())); break; } break; } // 不需要涨租金的时间段 - long originalDays = ChronoUnit.DAYS.between(contract.getFirstPayTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + long originalDays = Math.abs(ChronoUnit.DAYS.between(contract.getFirstPayTime(), tContractRentType.getChangeTime())); + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) .multiply(new BigDecimal(originalDays)); rentBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney()); - - }else{ - if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){ - rentBill.setEndTime(contract.getEndTime()); - - }else{ - LocalDateTime firstPayTime1 = contract.getFirstPayTime(); - // 根据支付方式设置账单endTime - if (contract.getPayType().equals("1")){ - rentBill.setEndTime(firstPayTime1.with(TemporalAdjusters.lastDayOfMonth())); - }else if (contract.getPayType().equals("2")){ - firstPayTime1 = firstPayTime1.plusMonths(3); - rentBill.setEndTime(firstPayTime1.with(TemporalAdjusters.lastDayOfMonth())); - - }else if (contract.getPayType().equals("3")){ - firstPayTime1 = firstPayTime1.plusMonths(12); - rentBill.setEndTime(firstPayTime1.with(TemporalAdjusters.lastDayOfMonth())); - } - } + } else { // 不走递增递减 long allDays = ChronoUnit.DAYS.between(contract.getStartPayTime(), rentBill.getEndTime()); int dayOfMonth = rentBill.getStartTime().getDayOfMonth(); - if (dayOfMonth==1){ - rentBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))); - }else{ + if (dayOfMonth == 1) { + rentBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12))); + } else { rentBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays))); } rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney()); @@ -389,187 +367,141 @@ try { TBill beforeBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId()).eq(TBill::getBillType, 1).orderByDesc(TBill::getCreateTime) .last("limit 1").one(); - if (!beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate())){ - - - while(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isBefore(contract.getEndTime())){ + if (!beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate())) { + while (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).isBefore(contract.getEndTime())) { TBill tBill = new TBill(); tBill.setContractId(contract.getId()); tBill.setContractNumber(contract.getContractNumber()); + if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).getDayOfMonth() <= 15) { + tBill.setPayableFeesTime(contract.getEndTime().toLocalDate()); + } else { + tBill.setPayableFeesTime((contract.getPayType().equals("1") ? + beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate() : contract.getPayType().equals("2") ? + beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate() : beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).toLocalDate())); + } // 根据支付方式判断需不需要生成订单 - if (!(beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate())) - && - (contract.getPayType().equals("1")? - beforeBill.getEndTime().plusMonths(1):contract.getPayType().equals("2")? - beforeBill.getEndTime().plusMonths(3):beforeBill.getEndTime().plusMonths(12)) - .with(TemporalAdjusters.lastDayOfMonth()).isBefore(contract.getEndTime()) - && beforeBill.getEndTime().isBefore(contract.getEndTime()) - ){ - tBill.setContractId(contract.getId()); - if (contract.getIsIncreasing()){ - if (tContractRentType!=null - && beforeBill.getEndTime().isBefore(tContractRentType.getChangeTime()) - && beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).with(TemporalAdjusters.lastDayOfMonth()).isAfter(tContractRentType.getChangeTime())){ - // 如果没变过 - if (contract.getChangeTime()==null){ - contract.setChangeTime(LocalDateTime.now()); + tBill.setContractId(contract.getId()); + if (contract.getIsIncreasing()) { + if (tContractRentType != null) { + // 如果变过 并且时间在递增递减时间段内 + if (contract.getChangeTime() != null) { + // 下次递增递减时间 + LocalDateTime changeTime = contract.getChangeTime().plusYears(tContractRentType.getCycleTime()); + // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌 + if (changeTime.isBefore(tBill.getEndTime()) && changeTime.isAfter(tBill.getStartTime())) { + contract.setChangeTime(changeTime); // 租金递增递减的时长 天 - long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); + long moneyDays = Math.abs(ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), beforeBill.getEndTime())); // 递增递减的租金 BigDecimal contractRentTypeMoney = new BigDecimal("0"); // 不递增递减的租金 BigDecimal originalMoney = new BigDecimal("0"); // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ + switch (tContractRentType.getIncreasingDecreasingType()) { case 1: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + // 变动后的每月租金 + contract.setChangeRent(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); break; case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contract.setChangeRent(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); break; } break; case 2: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contract.setChangeRent(contract.getChangeRent().add(tContractRentType.getNumericalValue())); break; case 2: contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - + contract.setChangeRent(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())); break; } break; } // 不需要涨租金的时间段 long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) - .multiply(new BigDecimal(originalDays)); + if (originalDays > 0) { + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + .multiply(new BigDecimal(originalDays)); + } tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); - - }else{ - // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌 - if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){ - contract.setChangeTime(LocalDateTime.now()); - // 租金递增递减的时长 天 - long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); - // 递增递减的租金 - BigDecimal contractRentTypeMoney = new BigDecimal("0"); - // 不递增递减的租金 - BigDecimal originalMoney = new BigDecimal("0"); - // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ - case 1: - switch (tContractRentType.getIncreasingDecreasing()){ - case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); - contract.setChangeRent(contractRentTypeMoney); - break; - case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); - contract.setChangeRent(contractRentTypeMoney); - break; - } - break; - case 2: - switch (tContractRentType.getIncreasingDecreasing()){ - case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - break; - case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - - break; - } - break; - } - // 不需要涨租金的时间段 - long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) - .multiply(new BigDecimal(originalDays)); - tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); - tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); - - }else{ - // 不涨租金 用上次的 - // 租金递增递减的时长 天 - long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); - // 递增递减的租金 - BigDecimal contractRentTypeMoney = new BigDecimal("0"); - // 不递增递减的租金 - BigDecimal originalMoney = new BigDecimal("0"); - // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ - case 1: - switch (tContractRentType.getIncreasingDecreasing()){ - case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); - contract.setChangeRent(contractRentTypeMoney); - break; - case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); - contract.setChangeRent(contractRentTypeMoney); - break; - } - break; - case 2: - switch (tContractRentType.getIncreasingDecreasing()){ - case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - break; - case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); - contract.setChangeRent(contractRentTypeMoney); - - break; - } - break; - } - // 不需要涨租金的时间段 - long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) - .multiply(new BigDecimal(originalDays)); - tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); - tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); - - } + contractService.updateById(contract); + } else { + // 不涨租金 用上次的 + tBill.setPayableFeesMoney(contract.getChangeRent().multiply(new BigDecimal(contract.getPayType().equals("1")?1:contract.getPayType().equals("2")?3:12))); + tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); } - + }else{ + if (tContractRentType.getChangeTime().isBefore(tBill.getEndTime()) && tContractRentType.getChangeTime().isAfter(tBill.getStartTime())) { + contract.setChangeTime(tContractRentType.getChangeTime()); + // 租金递增递减的时长 天 + long moneyDays = Math.abs(ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), beforeBill.getEndTime())); + // 递增递减的租金 + BigDecimal contractRentTypeMoney = new BigDecimal("0"); + // 不递增递减的租金 + BigDecimal originalMoney = new BigDecimal("0"); + // 原租金 + switch (tContractRentType.getIncreasingDecreasingType()) { + case 1: + switch (tContractRentType.getIncreasingDecreasing()) { + case 1: + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + // 变动后的每月租金 + contract.setChangeRent(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); + break; + case 2: + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contract.setChangeRent(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN)); + break; + } + break; + case 2: + switch (tContractRentType.getIncreasingDecreasing()) { + case 1: + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contract.setChangeRent(contract.getChangeRent().add(tContractRentType.getNumericalValue())); + break; + case 2: + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contract.setChangeRent(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())); + break; + } + break; + } + // 不需要涨租金的时间段 + long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); + if (originalDays > 0) { + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + .multiply(new BigDecimal(originalDays)); + } + tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); + tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); + } } - }else{ + } else { - tBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))); + tBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12))); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); } tBill.setContractNumber(contract.getContractNumber()); - if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){ - tBill.setPayableFeesTime(contract.getEndTime().toLocalDate()); - }else{ - tBill.setPayableFeesTime((contract.getPayType().equals("1")? - beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate():contract.getPayType().equals("2")? - beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate():beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).toLocalDate())); - } + tBill.setPayFeesStatus("1"); tBill.setBillType("1"); tBill.setStartTime(beforeBill.getEndTime().plusDays(1)); - tBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).with(TemporalAdjusters.lastDayOfMonth())); + tBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth())); billService.save(tBill); + beforeBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth())); } - beforeBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).with(TemporalAdjusters.lastDayOfMonth())); } } - } catch (Exception e) { e.printStackTrace(); } @@ -578,19 +510,19 @@ // 生成最后一笔账单 if (!(beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate())) && beforeBill.getEndTime().isBefore(contract.getEndTime()) - ){ + ) { TBill tBill = new TBill(); tBill.setContractId(contract.getId()); tBill.setPayFeesStatus("1"); tBill.setBillType("1"); tBill.setStartTime(beforeBill.getEndTime().plusDays(1)); tBill.setEndTime(contract.getEndTime()); - if (contract.getIsIncreasing()){ - if (tContractRentType!=null + if (contract.getIsIncreasing()) { + if (tContractRentType != null && beforeBill.getEndTime().isBefore(tContractRentType.getChangeTime()) - && beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).with(TemporalAdjusters.lastDayOfMonth()).isAfter(tContractRentType.getChangeTime())){ + && beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()).isAfter(tContractRentType.getChangeTime())) { // 如果没变过 - if (contract.getChangeTime()==null){ + if (contract.getChangeTime() == null) { contract.setChangeTime(LocalDateTime.now()); // 租金递增递减的时长 天 long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); @@ -599,23 +531,23 @@ // 不递增递减的租金 BigDecimal originalMoney = new BigDecimal("0"); // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ + switch (tContractRentType.getIncreasingDecreasingType()) { case 1: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); contract.setChangeRent(contractRentTypeMoney); break; case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12), 2, BigDecimal.ROUND_DOWN)); contract.setChangeRent(contractRentTypeMoney); break; } break; case 2: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); contract.setChangeRent(contractRentTypeMoney); break; case 2: @@ -630,19 +562,19 @@ long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); // 不需要涨租金的时间段 - if (contract.getFirstPayTime().isBefore(tContractRentType.getChangeTime())){ - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + if (contract.getFirstPayTime().isBefore(tContractRentType.getChangeTime())) { + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) .multiply(new BigDecimal(originalDays)); tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); - }else{ + } else { tBill.setPayableFeesMoney(contractRentTypeMoney); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); } - }else{ + } else { // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌 - if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){ + if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear()) % tContractRentType.getCycleTime() == 0) { contract.setChangeTime(LocalDateTime.now()); // 租金递增递减的时长 天 long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); @@ -651,23 +583,23 @@ // 不递增递减的租金 BigDecimal originalMoney = new BigDecimal("0"); // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ + switch (tContractRentType.getIncreasingDecreasingType()) { case 1: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); contract.setChangeRent(contractRentTypeMoney); break; case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12), 2, BigDecimal.ROUND_DOWN)); contract.setChangeRent(contractRentTypeMoney); break; } break; case 2: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); contract.setChangeRent(contractRentTypeMoney); break; case 2: @@ -680,12 +612,12 @@ } // 不需要涨租金的时间段 long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) .multiply(new BigDecimal(originalDays)); tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); - }else{ + } else { // 不涨租金 用上次的 // 租金递增递减的时长 天 long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getEndTime()); @@ -694,23 +626,23 @@ // 不递增递减的租金 BigDecimal originalMoney = new BigDecimal("0"); // 原租金 - switch (tContractRentType.getIncreasingDecreasingType()){ + switch (tContractRentType.getIncreasingDecreasingType()) { case 1: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays))); contract.setChangeRent(contractRentTypeMoney); break; case 2: - contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12),2,BigDecimal.ROUND_DOWN)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply((new BigDecimal(100).subtract(tContractRentType.getNumericalValue()))).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)).divide(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12), 2, BigDecimal.ROUND_DOWN)); contract.setChangeRent(contractRentTypeMoney); break; } break; case 2: - switch (tContractRentType.getIncreasingDecreasing()){ + switch (tContractRentType.getIncreasingDecreasing()) { case 1: - contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); + contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)); contract.setChangeRent(contractRentTypeMoney); break; case 2: @@ -723,7 +655,7 @@ } // 不需要涨租金的时间段 long originalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), tContractRentType.getChangeTime()); - originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) + originalMoney = originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN)) .multiply(new BigDecimal(originalDays)); tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney)); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); @@ -732,18 +664,18 @@ } } - }else{ + } else { long allDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), contract.getEndTime()); tBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays))); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); } tBill.setContractNumber(contract.getContractNumber()); - if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){ + if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).getDayOfMonth() <= 15) { tBill.setPayableFeesTime(contract.getEndTime().withHour(0).withMinute(0).withSecond(0).toLocalDate()); - }else{ - tBill.setPayableFeesTime((contract.getPayType().equals("1")? - beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate():contract.getPayType().equals("2")? - beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate():beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).withHour(0).withMinute(0).withSecond(0).toLocalDate())); + } else { + tBill.setPayableFeesTime((contract.getPayType().equals("1") ? + beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate() : contract.getPayType().equals("2") ? + beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate() : beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).withHour(0).withMinute(0).withSecond(0).toLocalDate())); } billService.save(tBill); @@ -752,7 +684,7 @@ } case CATEGORY3: { // 合同提前终止审批 - int submitStatus = status==0?4:(status==1?6:5); + int submitStatus = status == 0 ? 4 : (status == 1 ? 6 : 5); contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus); // 生成验收记录 TContract contract = contractService.getById(processParameter.getString("projectId")); @@ -767,8 +699,7 @@ String replace = (now + "").replace("-", ""); int size = checkAcceptRecordMapper.selectList(new LambdaQueryWrapper<TCheckAcceptRecord>() .likeRight(TCheckAcceptRecord::getAcceptanceTime, LocalDate.now())).size(); - tCheckAcceptRecord.setCode(replace.substring(2)+String.format("%03d", size+1)); - + tCheckAcceptRecord.setCode(replace.substring(2) + String.format("%03d", size + 1)); checkAcceptRecordMapper.insert(tCheckAcceptRecord); -- Gitblit v1.7.1