无关风月
2025-03-21 1e1d0497cc600cc10c22c217b35fb3c43a1e024f
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -80,6 +80,8 @@
    private StateProcessTemplateService stateProcessTemplateService;
    @Autowired
    private FlwTaskMapper flwTaskMapper;
    @Autowired
    private TTenantService tenantService;
    @ApiOperation(value = "获取合同分页列表")
    @PostMapping(value = "/contractList")
@@ -92,12 +94,13 @@
    @PostMapping(value = "/addContract")
    @PreAuthorize("@ss.hasPermi('contract:list:add')")
    public R<Boolean> addContract(@Validated @RequestBody TContractDTO dto) {
        LocalDateTime changeTime = dto.getChangeTime();
        long count = contractService.count(new LambdaQueryWrapper<TContract>().eq(TContract::getContractNumber, dto.getContractNumber()));
        if (count!=0){
            return R.fail("合同编号不可重复");
        }
        dto.setChangeRent(dto.getMonthRent());
        dto.setChangeTime(null);
        contractService.save(dto);
        if (dto.getStatus().equals("2")){
            //发起合同新增审批
@@ -135,7 +138,7 @@
            tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing());
            tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType());
            tContractRentType.setNumericalValue(dto.getNumericalValue());
            tContractRentType.setChangeTime(dto.getChangeTime());
            tContractRentType.setChangeTime(changeTime);
            tContractRentType.setCycleTime(dto.getCycleTime());
            contractRentTypeService.save(tContractRentType);
        }
@@ -146,6 +149,7 @@
    @PostMapping(value = "/updateContract")
    @PreAuthorize("@ss.hasPermi('contract:list:edit')")
    public R<Boolean> updateContract(@Validated @RequestBody TContractDTO dto) {
        dto.setChangeTime(null);
        contractService.updateById(dto);
        contractRentTypeService.remove(new LambdaQueryWrapper<TContractRentType>()
                .eq(TContractRentType::getContractId,dto.getId()));
@@ -223,14 +227,14 @@
        res.setHouse(house);
        List<TBill> list = billService.lambdaQuery()
                .eq(TBill::getContractId, id)
                .in(TBill::getPayFeesStatus, Arrays.asList("1,4"))
                .ne(TBill::getPayFeesStatus, 3)
                .list();
        BigDecimal payMoney = new BigDecimal("0");
        for (TBill tBill : list) {
            payMoney = payMoney.add(tBill.getPayFeesMoney()).add(tBill.getPayableFeesPenalty());
            payMoney = payMoney.add(tBill.getOutstandingMoney()).add(tBill.getPayableFeesPenalty());
        }
        TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, id).one();
        res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)&&Objects.nonNull(tCheckAcceptRecord.getCheckResult())?tCheckAcceptRecord.getCheckResult():false);
        res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)&&Objects.nonNull(tCheckAcceptRecord.getCheckResult())?tCheckAcceptRecord.getCheckResult():null);
        res.setPayMoney(payMoney);
        return R.ok(res);
@@ -293,13 +297,25 @@
        List<TContract> list = contractService.lambdaQuery().in(TContract::getId, dto.getIds()).list();
        List<String> res = new ArrayList<>();
        for (TContract contract : list) {
            String templateFileName = "1_yzj_租赁合同_个人.docx";
            TBill firstBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId())
                    .orderByDesc(TBill::getStartTime).last("limit 1").one();
            TTenant tenant = tenantService.getById(contract.getTenantId());
            THouse tHouse = houseService.getById(contract.getHouseId());
            Map<String, Object> templateParam = new HashMap<>(5);
            templateParam.put("${contractNumber}", contract.getContractNumber());
            templateParam.put("${partyOneName}", contract.getPartyOneName());
            templateParam.put("${partyTwoName}", contract.getPartyTwoName());
            if (Objects.nonNull(tenant)) {
                templateParam.put("${mailAddress}", StringUtils.isNotBlank(tenant.getMailAddress()) ? tenant.getMailAddress() : "");
                templateParam.put("${idCard}", StringUtils.isNotBlank(tenant.getIdCard()) ? tenant.getIdCard() : "");
                //企业、政府机构、国有企业
                if (tenant.getTenantType().equals("2") || tenant.getTenantType().equals("5") || tenant.getTenantType().equals("7")){
                    templateParam.put("${creditCode}", StringUtils.isNotBlank(tenant.getCreditCode()) ? tenant.getCreditCode() : "");
                    templateParam.put("${legalPerson}", StringUtils.isNotBlank(tenant.getLegalPerson()) ? tenant.getLegalPerson() : "");
                    templateFileName = "1_yzj_租赁合同_企业.docx";
                }
            }
            templateParam.put("${houseAddress}", tHouse.getHouseAddress());
            templateParam.put("${houseArea}", tHouse.getHouseArea()+"m²");
            long between = ChronoUnit.DAYS.between(contract.getStartTime(), contract.getStartPayTime())+1;
@@ -337,7 +353,7 @@
                templateParam.put("${checkTime}", "");
            }
            String url = wordUtil.generatePdf("/usr/local/project/file/", "1_yzj_租赁合同.docx", templateParam, "租赁合同", "/usr/local/project/file/");
            String url = wordUtil.generatePdf("/usr/local/project/file/", templateFileName, templateParam, "租赁合同", "/usr/local/project/file/");
            res.add(url);
        }