package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TCrmSupplierVerifyDTO;
import com.ruoyi.system.model.TCrmSupplier;
import com.ruoyi.system.model.TCrmSupplierVerify;
import com.ruoyi.system.query.TCrmSupplierVerifyQuery;
import com.ruoyi.system.service.TCrmSupplierService;
import com.ruoyi.system.service.TCrmSupplierVerifyService;
import com.ruoyi.system.vo.TCrmSupplierVerifyVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
*
* 供应商资质核查 前端控制器
*
*
* @author xiaochen
* @since 2025-11-03
*/
@Api(tags = "供应商资质核查")
@RestController
@RequestMapping("/t-crm-supplier-verify")
public class TCrmSupplierVerifyController {
private final TCrmSupplierVerifyService crmSupplierVerifyService;
private final TokenService tokenService;
private final TCrmSupplierService crmSupplierService;
@Autowired
public TCrmSupplierVerifyController(TCrmSupplierVerifyService crmSupplierVerifyService, TokenService tokenService, TCrmSupplierService crmSupplierService) {
this.crmSupplierVerifyService = crmSupplierVerifyService;
this.tokenService = tokenService;
this.crmSupplierService = crmSupplierService;
}
/**
* 获取供应商资质核查管理列表
*/
@ApiOperation(value = "获取供应商资质核查分页列表")
@PostMapping(value = "/pageList")
public R> pageList(@RequestBody TCrmSupplierVerifyQuery query) {
return R.ok(crmSupplierVerifyService.pageList(query));
}
/**
* 查看供应商资质核查详情
*/
@ApiOperation(value = "查看供应商资质核查详情")
@GetMapping(value = "/getDetailById")
public R getDetailById(@RequestParam String id) {
TCrmSupplierVerify crmSupplierVerify = crmSupplierVerifyService.getById(id);
if (crmSupplierVerify == null) {
return R.fail("供应商资质核查不存在");
}
TCrmSupplierVerifyVO tCrmSupplierVerifyVO = new TCrmSupplierVerifyVO();
BeanUtils.copyProperties(crmSupplierVerify, tCrmSupplierVerifyVO);
// 查询供应商信息
TCrmSupplier crmSupplier = crmSupplierService.getById(crmSupplierVerify.getSupplierId());
tCrmSupplierVerifyVO.setCrmSupplier(crmSupplier);
return R.ok(tCrmSupplierVerifyVO);
}
/**
* 查看供应商资质核查详情
*/
@Log(title = "供应商资质核查-核查", businessType = BusinessType.UPDATE)
@ApiOperation(value = "供应商资质核查")
@PostMapping(value = "/supplierVerify")
public R supplierVerify(@RequestBody TCrmSupplierVerifyDTO dto) {
TCrmSupplierVerify crmSupplierVerify = crmSupplierVerifyService.getById(dto.getId());
if (crmSupplierVerify == null) {
return R.fail("供应商资质核查不存在");
}
String nickName = tokenService.getLoginUser().getUser().getNickName();
crmSupplierVerify.setStatus(dto.getStatus());
crmSupplierVerify.setVerifyTime(LocalDate.now());
crmSupplierVerify.setOperationName(nickName);
crmSupplierVerify.setOperationTime(LocalDateTime.now());
crmSupplierVerify.setVerifyRemark(dto.getVerifyRemark());
crmSupplierVerifyService.updateById(crmSupplierVerify);
return R.ok();
}
/**
* 查看供应商资质核查详情
*/
@Log(title = "供应商资质核查-批量核查", businessType = BusinessType.UPDATE)
@ApiOperation(value = "供应商资质批量核查")
@PostMapping(value = "/supplierVerifyBatch")
public R supplierVerifyBatch(@RequestBody TCrmSupplierVerifyDTO dto) {
if(CollectionUtils.isEmpty(dto.getIds())){
return R.fail("请选择要核查的供应商资质");
}
List crmSupplierVerifyList = crmSupplierVerifyService.list(Wrappers.lambdaQuery(TCrmSupplierVerify.class)
.in(TCrmSupplierVerify::getId, dto.getIds()));
if (CollectionUtils.isEmpty(crmSupplierVerifyList)) {
return R.fail("供应商资质核查不存在");
}
String nickName = tokenService.getLoginUser().getUser().getNickName();
for (TCrmSupplierVerify crmSupplierVerify : crmSupplierVerifyList) {
crmSupplierVerify.setStatus(dto.getStatus());
crmSupplierVerify.setVerifyTime(LocalDate.now());
crmSupplierVerify.setOperationName(nickName);
crmSupplierVerify.setOperationTime(LocalDateTime.now());
crmSupplierVerify.setVerifyRemark(dto.getVerifyRemark());
}
crmSupplierVerifyService.updateBatchById(crmSupplierVerifyList);
return R.ok();
}
/**
* 删除供应商资质核查
*/
@Log(title = "供应商资质核查信息-删除供应商资质核查", businessType = BusinessType.DELETE)
@ApiOperation(value = "删除供应商资质核查")
@DeleteMapping(value = "/deleteById")
public R deleteById(@RequestParam String id) {
return R.ok(crmSupplierVerifyService.removeById(id));
}
/**
* 批量删除供应商资质核查
*/
@Log(title = "供应商资质核查信息-删除供应商资质核查", businessType = BusinessType.DELETE)
@ApiOperation(value = "批量删除供应商资质核查")
@DeleteMapping(value = "/deleteByIds")
public R deleteByIds(@RequestBody List ids) {
return R.ok(crmSupplierVerifyService.removeByIds(ids));
}
}