From 53f7989afc051a45ccbadc89702ef3a491c59059 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 12 二月 2025 10:52:39 +0800
Subject: [PATCH] 生成合同导出
---
ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java | 13 ++++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java | 62 +++++++++++++++++--------------
ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml | 35 +++++++++++++----
ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java | 4 ++
ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java | 2 +
5 files changed, 79 insertions(+), 37 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index 8df9388..e0d70ff 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/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();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java
new file mode 100644
index 0000000..7a6767f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SetContractDto.java
@@ -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;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java
index 5d90194..52031d9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java
+++ b/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;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java
index 789cda4..ba62b7b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java
+++ b/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;
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml
index 5a57cac..9728d27 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml
+++ b/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>
--
Gitblit v1.7.1