| | |
| | | import com.ruoyi.common.constant.DictConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.common.enums.DisabledEnum; |
| | | import com.ruoyi.common.enums.ProcessCategoryEnum; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Log(title = "合同管理-确认结算", businessType = BusinessType.UPDATE) |
| | | @ApiOperation(value = "确认结算") |
| | | @PostMapping(value = "/confirmSettlement") |
| | | |
| | | public R<Boolean> confirmSettlement(String id) { |
| | | TContract contract = contractService.getById(id); |
| | | contract.setStatus("8"); |
| | |
| | | // 将所有未缴费账单设置未已失效 |
| | | List<TBill> tBills = billService.list(new LambdaQueryWrapper<TBill>() |
| | | .ne(TBill::getPayFeesStatus, 3) |
| | | .ne(TBill::getBillType,4) |
| | | .eq(TBill::getContractId, contract.getId())); |
| | | for (TBill tBill : tBills) { |
| | | tBill.setPayFeesStatus("5"); |
| | | } |
| | | billService.updateBatchById(tBills); return R.ok(); |
| | | billService.updateBatchById(tBills); |
| | | // 将房屋改成待出租 |
| | | THouse house = houseService.getById(contract.getHouseId()); |
| | | house.setLeaseStatus("1"); |
| | | houseService.updateById(house); |
| | | return R.ok(); |
| | | } |
| | | @ApiOperation(value = "终止合同剩余未缴费账单列表") |
| | | @PostMapping(value = "/contractBillList") |
| | |
| | | return R.ok(res); |
| | | } |
| | | |
| | | // 计算两个日期相差天数的方法实现: |
| | | public static long calculateDaysBetween(LocalDateTime start, LocalDateTime end) { |
| | | return ChronoUnit.DAYS.between(start, end); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0); |
| | | LocalDateTime end = LocalDateTime.of(2024, 1, 5, 12, 0); |
| | | long days = calculateDaysBetween(start, end); // 返回4天(不满一天不计) |
| | | |
| | | } |
| | | |
| | | private String generateContract(TContract contract) { |
| | | String templateFileName = "1_yzj_租赁合同_个人.docx"; |
| | | String contractId = contract.getId(); |
| | |
| | | if (StringUtils.isNotEmpty(contractId)) { |
| | | firstBill = billService.lambdaQuery() |
| | | .eq(TBill::getContractId, contractId) |
| | | .orderByDesc(TBill::getStartTime) |
| | | .orderByAsc(TBill::getStartTime) |
| | | .ne(TBill::getManualAddition, DisabledEnum.YES.getCode()) |
| | | .last("limit 1") |
| | | .one(); |
| | | tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery() |
| | |
| | | fill(templateParam, "bankNumber", tenant.getBankNumber()); |
| | | fill(templateParam, "bankName", tenant.getBankName()); |
| | | fill(templateParam, "partyTwoName", tenant.getLessee()); |
| | | fill(templateParam, "email", tenant.getEmail()); |
| | | |
| | | // 企业、政府机构、国有企业 |
| | | if (Objects.nonNull(tenant.getTenantType()) |
| | |
| | | |
| | | // 首期租金处理 |
| | | if (firstBill != null) { |
| | | double firstRent = (contract.getPayType().equals("1") |
| | | ? contract.getMonthRent() |
| | | : contract.getPayType().equals("2") |
| | | ? contract.getMonthRent().multiply(new BigDecimal("3")) |
| | | : contract.getMonthRent().multiply(new BigDecimal("12"))) |
| | | .setScale(2, RoundingMode.DOWN).doubleValue(); |
| | | fill(templateParam, "firstRent", "¥" + firstBill.getPayableFeesMoney() + "元"); |
| | | // 其他财务字段 |
| | | fill(templateParam, "firstRentString", "人民币" + NumberToChineseUtils.numberToChinese(firstBill.getPayableFeesMoney().doubleValue())); |
| | | } else { |
| | | fill(templateParam, "firstRent", ""); |
| | | } |
| | | |
| | | // 其他财务字段 |
| | | fill(templateParam, "firstRentString", "人民币" + NumberToChineseUtils.numberToChinese( |
| | | (contract.getPayType().equals("1") |
| | | ? contract.getMonthRent() |
| | | : contract.getPayType().equals("2") |
| | | ? contract.getMonthRent().multiply(new BigDecimal("3")) |
| | | : contract.getMonthRent().multiply(new BigDecimal("12"))) |
| | | .setScale(2, RoundingMode.DOWN).doubleValue())); |
| | | |
| | | fill(templateParam, "firstRentString", |
| | | "人民币"+NumberToChineseUtils.numberToChinese( |
| | |
| | | if (Objects.isNull(contract)) { |
| | | throw new ServiceException("合同不存在"); |
| | | } |
| | | if (StringUtils.isNotBlank(contract.getContractFile())) { |
| | | /* if (StringUtils.isNotBlank(contract.getContractFile())) { |
| | | List<String> contractFileList = Arrays.stream(contract.getContractFile().split(",")).collect(Collectors.toList()); |
| | | List<String> memoryList = Arrays.stream(contract.getMemory().split(",")).collect(Collectors.toList()); |
| | | List<String> contractNameList = Arrays.stream(contract.getContractFileName().split(",")).collect(Collectors.toList()); |
| | |
| | | contract.setContractFile(dto.getContractFile()); |
| | | contract.setContractFileName(dto.getContractFileName()); |
| | | contract.setMemory(dto.getMemory()); |
| | | } |
| | | }*/ |
| | | contract.setContractFile(dto.getContractFile()); |
| | | contract.setContractFileName(dto.getContractFileName()); |
| | | contract.setMemory(dto.getMemory()); |
| | | return R.ok(contractService.updateById(contract)); |
| | | } |
| | | |