无关风月
2025-02-12 53f7989afc051a45ccbadc89702ef3a491c59059
生成合同导出
4个文件已修改
1个文件已添加
116 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.system.dto.SetContractDto;
import com.ruoyi.system.dto.TContractDTO;
import com.ruoyi.system.dto.THouseDTO;
import com.ruoyi.system.dto.TerminateContractDTO;
@@ -159,6 +160,7 @@
        TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, id).one();
        res.setCheckResult(tCheckAcceptRecord.getCheckResult());
        res.setPayMoney(payMoney);
        return R.ok(res);
    }
    @Log(title = "合同管理-撤销审批", businessType =  BusinessType.UPDATE)
@@ -189,36 +191,41 @@
    private WordUtil wordUtil;
    @ApiOperation(value = "生成合同附件")
    @PostMapping("/set")
    public R set(Integer id, HttpServletResponse response){
        TContract contract = contractService.getById(id);
        THouse tHouse = houseService.getById(contract.getHouseId());
        Map<String, Object> templateParam = new HashMap<>(5);
        templateParam.put("partyOneName", contract.getPartyOneName());
        templateParam.put("partyTwoName", contract.getPartyTwoName());
        templateParam.put("houseAddress", tHouse.getHouseAddress());
        templateParam.put("houseArea", tHouse.getHouseArea()+"m²");
        templateParam.put("startTime", DateUtils.localDateTimeToStringYear(contract.getStartTime()));
        templateParam.put("endTime", DateUtils.localDateTimeToStringYear(contract.getEndTime()));
        templateParam.put("monthRent", "¥¥"+contract.getMonthRent()+"元");
        templateParam.put("monthRentString", "人民币"+NumberToChineseUtils.numberToChinese(contract.getMonthRent().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
        templateParam.put("totalYear", "¥¥"+contract.getTotalYear()+"元");
        templateParam.put("totalYearString", "人民币"+NumberToChineseUtils.numberToChinese(contract.getTotalYear().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
        templateParam.put("payType", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
        templateParam.put("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,BigDecimal.ROUND_DOWN)+"元");
        templateParam.put("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,BigDecimal.ROUND_DOWN)).doubleValue()));
        templateParam.put("nextPayTime", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
        templateParam.put("deposit", "¥"+contract.getDeposit()+"元");
        templateParam.put("depositString", NumberToChineseUtils.numberToChinese(contract.getDeposit().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
        templateParam.put("partyOnePerson", contract.getPartyOnePerson());
        templateParam.put("partyOnePhone", contract.getPartyOnePhone());
        templateParam.put("partyTwoPerson", contract.getPartyTwoPerson());
        templateParam.put("partyTwoPhone", contract.getPartyTwoPhone());
        String url = wordUtil.generatePdf("/templates", "1_yzj_租赁合同.xml", templateParam, "租赁合同", "E:\\");
        return R.ok(url);
    public R<List<String>> set(@RequestBody SetContractDto dto,HttpServletResponse response){
        List<TContract> list = contractService.lambdaQuery().in(TContract::getId, dto.getIds()).list();
        List<String> res = new ArrayList<>();
        for (TContract contract : list) {
            THouse tHouse = houseService.getById(contract.getHouseId());
            Map<String, Object> templateParam = new HashMap<>(5);
            templateParam.put("partyOneName", contract.getPartyOneName());
            templateParam.put("partyTwoName", contract.getPartyTwoName());
            templateParam.put("houseAddress", tHouse.getHouseAddress());
            templateParam.put("houseArea", tHouse.getHouseArea()+"m²");
            templateParam.put("startTime", DateUtils.localDateTimeToStringYear(contract.getStartTime()));
            templateParam.put("endTime", DateUtils.localDateTimeToStringYear(contract.getEndTime()));
            templateParam.put("monthRent", "¥¥"+contract.getMonthRent()+"元");
            templateParam.put("monthRentString", "人民币"+NumberToChineseUtils.numberToChinese(contract.getMonthRent().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
            templateParam.put("totalYear", "¥¥"+contract.getTotalYear()+"元");
            templateParam.put("totalYearString", "人民币"+NumberToChineseUtils.numberToChinese(contract.getTotalYear().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
            templateParam.put("payType", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
            templateParam.put("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,BigDecimal.ROUND_DOWN)+"元");
            templateParam.put("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,BigDecimal.ROUND_DOWN)).doubleValue()));
            templateParam.put("nextPayTime", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
            templateParam.put("deposit", "¥"+contract.getDeposit()+"元");
            templateParam.put("depositString", NumberToChineseUtils.numberToChinese(contract.getDeposit().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
            templateParam.put("partyOnePerson", contract.getPartyOnePerson());
            templateParam.put("partyOnePhone", contract.getPartyOnePhone());
            templateParam.put("partyTwoPerson", contract.getPartyTwoPerson());
            templateParam.put("partyTwoPhone", contract.getPartyTwoPhone());
            String url = wordUtil.generatePdf("/templates", "1_yzj_租赁合同.xml", templateParam, "租赁合同", "E:\\");
            res.add(url);
        }
        return R.ok(res);
    }
    /**
     * 光缆巡检列表导出
     * 导出
     */
    @ApiOperation(value = "导出")
    @Log(title = "导出", businessType = BusinessType.EXPORT)
@@ -226,7 +233,6 @@
    public void exportOpticalInspection(@RequestBody TContractQuery query)
    {
        List<ContractExport> contractExports = new ArrayList<>();
        List<TContract> exportList = contractService.contractExportList(query);
        for (TContract contract : exportList) {
            ContractExport contractExport = new ContractExport();
ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java
New file
@@ -0,0 +1,13 @@
package com.ruoyi.system.dto;
import com.ruoyi.system.model.TBill;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "批量导出合同附件")
public class SetContractDto  {
    private List<String> ids;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java
@@ -5,6 +5,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "合同分页列表查询Query")
public class TContractQuery extends BasePage {
@@ -16,4 +18,6 @@
    private Integer contractName;
    @ApiModelProperty(value = "合同状态 1=待提交 2=待审批 3=未签订 4=已签订")
    private Integer status;
    @ApiModelProperty(value = "选中的行")
    private List<String> ids;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java
@@ -34,4 +34,6 @@
    private BigDecimal payMoney;
    @ApiModelProperty(value = "房屋验收结果")
    private Boolean checkResult;
    @ApiModelProperty(value = "周期 单位年")
    private Integer cycleTime;
}
ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml
@@ -88,15 +88,32 @@
        AND t3.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
    </select>
    <select id="contractExportList" resultType="com.ruoyi.system.model.TContract">
        select t1.*,t2.contract_number as contractNumber,t3.resident_name as residentName,t3.phone as phone
        from t_bill t1
                 left join t_contract t2 on t1.contract_id = t2.id
                 left join t_resident t3 on t2.tenant_id = t3.id
        where t2.id = #{query.id}
          and (t1.pay_fees_status = 1 or t1.pay_fees_status = 4)
          AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
          AND t2.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
          AND t3.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        select t1.* from t_contract t1
        <where>
            <if test="query.ids != null and query.ids.size()>0">
                AND t1.id IN
                <foreach collection="query.ids" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="query.ids == null and query.ids.size()=0">
                <if test="query.partyTwoName != null and query.partyTwoName != ''">
                    and t1.party_two_name like concat('%',#{query.partyTwoName},'%')
                </if>
                <if test="query.contractNumber != null and query.contractNumber != ''">
                    and t1.contract_number like concat('%',#{query.contractNumber},'%')
                </if>
                <if test="query.contractName != null and query.contractName != ''">
                    and t1.contract_name like concat('%',#{query.contractName},'%')
                </if>
                <if test="query.status != null">
                    and t1.status = #{query.status}
                </if>
            </if>
            AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
    </select>
</mapper>