package com.ruoyi.basic.controller; import com.ruoyi.basic.dto.CustomerContractRecordDto; import com.ruoyi.basic.service.CustomerContractRecordService; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 客户合同记录Controller * * @author ruoyi * @date 2026-06-24 */ @Tag(name = "客户合同记录") @RestController @RequestMapping("/basic/customer-contract") @RequiredArgsConstructor public class CustomerContractRecordController extends BaseController { private final CustomerContractRecordService customerContractRecordService; /** * 查询客户合同记录列表 */ @Operation(summary = "查询客户合同记录列表") @GetMapping("/list/{customerId}") public AjaxResult list(@PathVariable Long customerId) { List list = customerContractRecordService.selectListByCustomerId(customerId); return AjaxResult.success(list); } /** * 获取客户合同记录详细信息 */ @Operation(summary = "获取客户合同记录详细信息") @GetMapping("/{id}") public AjaxResult getInfo(@PathVariable Long id) { return AjaxResult.success(customerContractRecordService.selectDetailById(id)); } /** * 新增客户合同记录 */ @Operation(summary = "新增客户合同记录") @Log(title = "客户合同记录-新增", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody CustomerContractRecordDto dto) { int result = customerContractRecordService.insertCustomerContractRecord(dto); return toAjax(result); } /** * 修改客户合同记录 */ @Operation(summary = "修改客户合同记录") @Log(title = "客户合同记录-修改", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody CustomerContractRecordDto dto) { return toAjax(customerContractRecordService.updateCustomerContractRecord(dto)); } /** * 删除客户合同记录 */ @Operation(summary = "删除客户合同记录") @Log(title = "客户合同记录-删除", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") public AjaxResult remove(@PathVariable Long id) { return toAjax(customerContractRecordService.deleteCustomerContractRecord(id)); } /** * 根据总合同号查询附件(供销售台账、销售报价等模块使用) */ @Operation(summary = "根据总合同号查询附件") @GetMapping("/files/byContractNo") public AjaxResult getFilesByContractNo(@RequestParam String masterContractNo) { return AjaxResult.success(customerContractRecordService.selectFilesByMasterContractNo(masterContractNo)); } }