package com.ruoyi.outsourcing.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.outsourcing.dto.OutsourcingPartnerDto; import com.ruoyi.outsourcing.excel.OutsourcingPartnerExcelDto; import com.ruoyi.outsourcing.service.IOutsourcingPartnerService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * 委外合作商档案 Controller */ @RestController @RequestMapping("/outsourcing/partner") @AllArgsConstructor @Tag(name = "委外合作商档案") public class OutsourcingPartnerController extends BaseController { private final IOutsourcingPartnerService outsourcingPartnerService; /** * 新增合作商(含附件) */ @Operation(summary = "新增合作商") @Log(title = "合作商档案", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody OutsourcingPartnerDto dto) { return AjaxResult.success(outsourcingPartnerService.savePartner(dto)); } /** * 修改合作商(含附件) */ @Operation(summary = "修改合作商") @Log(title = "合作商档案", businessType = BusinessType.UPDATE) @PostMapping("/update") public AjaxResult update(@RequestBody OutsourcingPartnerDto dto) { return toAjax(outsourcingPartnerService.updatePartner(dto)); } /** * 删除合作商 */ @Operation(summary = "删除合作商") @Log(title = "合作商档案", businessType = BusinessType.DELETE) @DeleteMapping("/del") public AjaxResult del(@RequestBody List ids) { if (CollectionUtils.isEmpty(ids)) { return AjaxResult.error("请选择至少一条数据"); } return toAjax(outsourcingPartnerService.delPartner(ids)); } /** * 合作商详情(含附件回显) */ @Operation(summary = "合作商详情") @GetMapping("/{id}") public AjaxResult detail(@PathVariable("id") Long id) { return AjaxResult.success(outsourcingPartnerService.partnerDetail(id)); } /** * 合作商分页查询 */ @Operation(summary = "合作商分页查询") @GetMapping("/listPage") public AjaxResult listPage(Page page, OutsourcingPartnerDto dto) { IPage result = outsourcingPartnerService.partnerListPage(page, dto); return AjaxResult.success(result); } /** * 合作商导出 */ @Operation(summary = "合作商导出") @Log(title = "合作商档案", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, OutsourcingPartnerDto dto) { outsourcingPartnerService.partnerExport(response, dto); } /** * 下载导入模板 */ @Operation(summary = "下载合作商导入模板") @Log(title = "合作商档案-下载模板", businessType = BusinessType.EXPORT) @PostMapping("/downloadTemplate") public void downloadTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(OutsourcingPartnerExcelDto.class); util.importTemplateExcel(response, "合作商档案模板"); } /** * 合作商导入 */ @Operation(summary = "合作商导入") @Log(title = "合作商档案导入", businessType = BusinessType.IMPORT) @PostMapping("/import") public AjaxResult importData(MultipartFile file) { return outsourcingPartnerService.importData(file) ? AjaxResult.success("导入成功") : AjaxResult.error("导入失败"); } /** * 合作商下拉选项 */ @Operation(summary = "合作商下拉选项") @GetMapping("/getOptions") public AjaxResult getOptions() { return AjaxResult.success(outsourcingPartnerService.options()); } }