package com.ruoyi.basic.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.SupplierManageDto; import com.ruoyi.basic.dto.SupplierArchiveSaveDto; import com.ruoyi.basic.pojo.SupplierCooperationRecord; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.basic.pojo.SupplierManage; import com.ruoyi.basic.service.ISupplierService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.util.List; @RestController @RequestMapping("/system/supplier") @Api(tags = "供应商档案") public class SupplierManageController { @Autowired private ISupplierService supplierService; /** * 供应商新增 * @param supplierManage * @return */ @PostMapping("/add") @ApiOperation("新增供应商") public AjaxResult add(@RequestBody SupplierManage supplierManage) { supplierService.saveSupplier(supplierManage); return AjaxResult.success(); } /** * 供应商删除 * @param ids * @return */ @DeleteMapping("/del") @ApiOperation("删除供应商") public AjaxResult delSupplier(@RequestBody List ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("请选择至少一条数据"); } supplierService.delSupplier(ids); return AjaxResult.success(); } /** * 供应商详情 * @param id * @return */ @GetMapping("/{id}") @ApiOperation("供应商详情") public AjaxResult supplierDetail(@PathVariable("id") Integer id) { return AjaxResult.success(supplierService.supplierDetail(id)); } /** * 供应商修改 * @param supplierManage * @return */ @PostMapping("/update") @ApiOperation("修改供应商") public AjaxResult update(@RequestBody SupplierManage supplierManage) { supplierService.supplierUpdate(supplierManage); return AjaxResult.success(); } /** * 供应商管理分页查询 * @param page * @param supplierManageDto * @return */ @GetMapping("/listPage") @ApiOperation("供应商分页查询") public AjaxResult supplierListPage(Page page, SupplierManageDto supplierManageDto) { return AjaxResult.success(supplierService.supplierListPage(page, supplierManageDto)); } /** * 供应商导出 * @param response * @param supplierManageDto */ @PostMapping("/export") public void supplierExport(HttpServletResponse response,SupplierManageDto supplierManageDto) { supplierService.supplierExport(response, supplierManageDto); } @PostMapping("/downloadTemplate") @Log(title = "供应商-下载模板", businessType = BusinessType.EXPORT) public void downloadTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(SupplierManage.class); util.importTemplateExcel(response, "供应商档案模板"); } /** * 供应商导入 */ @PostMapping("/import") @Log(title = "供应商导入", businessType = BusinessType.IMPORT) public AjaxResult importData(MultipartFile file) { Boolean b = supplierService.importData(file); if (b) { return AjaxResult.success("导入成功"); } return AjaxResult.error("导入失败"); } /** * 供应商选项接口 * @return */ @GetMapping("/getOptions") @ApiOperation("供应商选项") public AjaxResult getOptions() { return AjaxResult.success(supplierService.lambdaQuery().eq(SupplierManage::getCooperationStatus,1) .eq(SupplierManage::getDeleteFlag,0) .eq(SupplierManage::getTenantId, SecurityUtils.getLoginUser().getTenantId()).list()); } @GetMapping("/{id}/archive") @ApiOperation("供应商完整档案") public AjaxResult archive(@PathVariable Integer id) { return AjaxResult.success(supplierService.supplierArchiveDetail(id)); } @PostMapping("/archive/save") @ApiOperation("保存供应商完整档案") @Transactional(rollbackFor = Exception.class) public AjaxResult saveArchive(@RequestBody SupplierArchiveSaveDto archive) { return AjaxResult.success(supplierService.saveArchive(archive)); } @PostMapping("/{id}/cooperation") @ApiOperation("新增供应商合作记录") public AjaxResult addCooperation(@PathVariable Integer id, @RequestBody SupplierCooperationRecord record) { supplierService.addCooperationRecord(id, record); return AjaxResult.success(); } }