From 82e4870fa7b15f931cc593dc8a1a5f273cde930f Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 08 二月 2025 17:20:26 +0800 Subject: [PATCH] 房屋合同 --- ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java | 5 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java | 67 ++++++++++++++++++++- ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java | 1 ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml | 11 +++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java | 14 ++++ ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java | 51 +++++++++++++++++ 6 files changed, 142 insertions(+), 7 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 4d9f1e7..6bc7ae8 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 @@ -1,6 +1,8 @@ package com.ruoyi.web.controller.api; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; @@ -11,9 +13,12 @@ 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.system.dto.TContractDTO; import com.ruoyi.system.dto.THouseDTO; import com.ruoyi.system.dto.TerminateContractDTO; +import com.ruoyi.system.export.ContractExport; +import com.ruoyi.system.export.OpticalInspectionExport; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TContractBillQuery; import com.ruoyi.system.query.TContractQuery; @@ -29,18 +34,19 @@ import com.ruoyi.system.vo.TContractVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.math.BigDecimal; +import java.net.URLEncoder; import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * <p> @@ -178,7 +184,6 @@ @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); @@ -204,7 +209,59 @@ templateParam.put("partyTwoPhone", contract.getPartyTwoPhone()); String url = wordUtil.generatePdf("/templates", "1_yzj_租赁合同.xml", templateParam, "租赁合同", "E:\\"); return R.ok(url); + } + @ApiOperation(value = "导出") + @PostMapping("/export") + public void export(@RequestBody TContractQuery query){ + contractService.export(query); + } + /** + * 光缆巡检列表导出 + */ + @ApiOperation(value = "光缆巡检列表导出") + @Log(title = "现场作业-光缆巡检列表导出", businessType = BusinessType.EXPORT) + @PostMapping("/exportOpticalInspection") + 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(); + contractExport.setContractNumber(contract.getContractNumber()); + contractExport.setContractName(contract.getContractName()); + contractExport.setPartyOneName(contract.getPartyOneName()); + contractExport.setPartyTwoName(contract.getPartyTwoName()); + contractExport.setCreate_time(contract.getCreateTime()); + contractExport.setStartTime(contract.getStartTime()); + contractExport.setEndTime(contract.getEndTime()); + contractExport.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,contract.getPayType())); + contractExport.setDeposit(contract.getDeposit()+""); + contractExport.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,contract.getStatus())); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), ContractExport.class, contractExports); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("合同列表.xls", "utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + System.err.println("合同列表信息导出失败"); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java new file mode 100644 index 0000000..b5f25f7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java @@ -0,0 +1,51 @@ +package com.ruoyi.system.export; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +@Data +@ApiModel(value = "光缆巡检导出excel") +public class ContractExport implements Serializable { + + @Excel(name = "合同编号",width = 30) + private String contractNumber; + + @Excel(name = "合同名称",width = 30) + private String contractName; + + @Excel(name = "甲方名称",width = 30) + private String partyOneName; + + @Excel(name = "乙方名称",width = 30) + private String partyTwoName; + + @Excel(name = "创建时间",width = 30,exportFormat = "yyyy-MM-dd") + private LocalDateTime create_time; + + + @Excel(name = "生效日期",width = 30,exportFormat = "yyyy-MM-dd") + private LocalDateTime startTime; + + @Excel(name = "终止日期",width = 30,exportFormat = "yyyy-MM-dd") + private LocalDateTime endTime; + + @Excel(name = "租金支付方式",width = 30) + private String payType; + + @Excel(name = "押金",width = 30) + private String deposit; + + @Excel(name = "状态",width = 30) + private String status; + +// @Excel(name = "计划周期",width = 30,replace = {"周计划_1","月计划_2"}) +// private Integer planCycle; + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java index b02c309..4be10f7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java @@ -27,4 +27,5 @@ List<BillVO> contractBillList(@Param("query") TContractBillQuery query, @Param("pageInfo") PageInfo<BillVO> pageInfo); + List<TContract> contractExportList(@Param("query")TContractQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java index c182168..5139836 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java @@ -12,6 +12,8 @@ import com.ruoyi.system.vo.BillVO; import com.ruoyi.system.vo.CheckAcceptRecordVO; +import java.util.List; + /** * <p> * 合同管理 服务类 @@ -35,4 +37,7 @@ R signContract(SignContractDTO dto); + void export(TContractQuery query); + + List<TContract> contractExportList(TContractQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java index 10ad7c9..458ec6c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java @@ -170,8 +170,18 @@ // deposit.setPayableFeesTime(contract.getFirstPayTime()); // deposit.setPayFeesStatus("1"); // deposit.setBillType("2"); - - return R.ok(); } + + @Override + public void export(TContractQuery query) { + + } + + @Override + public List<TContract> contractExportList(TContractQuery query) { + List<TContract> list = this.baseMapper.contractExportList(query); + + return list; + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml index ecb72ec..09c437c 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml @@ -87,5 +87,16 @@ AND t2.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} 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> </mapper> -- Gitblit v1.7.1