| | |
| | | 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 com.ruoyi.common.utils.DictUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.WebUtils; |
| | | import com.ruoyi.common.utils.*; |
| | | import com.ruoyi.system.bo.ProcessStartBO; |
| | | import com.ruoyi.system.dto.RevokeDTO; |
| | | import com.ruoyi.system.dto.SetContractDto; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | if (Objects.isNull(house)) { |
| | | throw new ServiceException("房产信息不存在"); |
| | | } |
| | | house.setRentalReturnStatus("1"); |
| | | houseService.updateById(house); |
| | | dto.setBusinessDeptId(house.getBusinessDeptId()); |
| | | // 生成合同编号 |
| | | dto.setContractNumber(CodeGenerateUtils.generateVolumeSn(house.getBusinessDeptId())); |
| | | contractService.save(dto); |
| | | if (dto.getStatus().equals("2")){ |
| | | //发起合同新增审批 |
| | |
| | | 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) |
| | | .eq(TBill::getBillType, 1) |
| | | .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, "firstRent", ""); |
| | | } |
| | | |
| | | // 其他财务字段 |
| | | fill(templateParam, "firstRentString", "人民币" + NumberToChineseUtils.numberToChinese( |
| | | (contract.getPayType().equals("1") |
| | | fill(templateParam, "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())); |
| | | :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)); |
| | | } |
| | | |