08-19-供应商入库
This commit is contained in:
@ -23,4 +23,9 @@ public interface MinioPathConstant {
|
||||
String Formalities = "formalities";
|
||||
//手续附件
|
||||
String FormalitiesAnnex = Formalities +"/annex";
|
||||
|
||||
//招标
|
||||
String Tender = "tender";
|
||||
//供应商入库资料
|
||||
String SupplierInput = Tender+"/supplierInput";
|
||||
}
|
||||
|
||||
@ -0,0 +1,111 @@
|
||||
package org.dromara.tender.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 供应商入库
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/supplierInput/supplierInput")
|
||||
public class TenderSupplierInputController extends BaseController {
|
||||
|
||||
private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
|
||||
@Autowired
|
||||
private ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 查询供应商入库列表
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<TenderSupplierInputVo> list(TenderSupplierInputBo bo, PageQuery pageQuery) {
|
||||
return tenderSupplierInputService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商入库列表
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:export")
|
||||
@Log(title = "供应商入库", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(TenderSupplierInputBo bo, HttpServletResponse response) {
|
||||
List<TenderSupplierInputVo> list = tenderSupplierInputService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "供应商入库", TenderSupplierInputVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应商入库详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<TenderSupplierInputVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(tenderSupplierInputService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商入库
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:add")
|
||||
@Log(title = "供应商入库", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(TenderSupplierInputBo bo,@RequestPart("file") MultipartFile file) {
|
||||
return toAjax(tenderSupplierInputService.insertByBo(bo,file));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商入库
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:edit")
|
||||
@Log(title = "供应商入库", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(TenderSupplierInputBo bo,@RequestPart("file") MultipartFile file) {
|
||||
return toAjax(tenderSupplierInputService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商入库
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:remove")
|
||||
@Log(title = "供应商入库", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(tenderSupplierInputService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package org.dromara.tender.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 供应商入库对象 tender_supplier_input
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("tender_supplier_input")
|
||||
public class TenderSupplierInput extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 供应商类型
|
||||
*/
|
||||
private String supplierType;
|
||||
|
||||
/**
|
||||
* 入库资料
|
||||
*/
|
||||
private String inputFile;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package org.dromara.tender.domain.bo;
|
||||
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 供应商入库业务对象 tender_supplier_input
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = TenderSupplierInput.class, reverseConvertGenerate = false)
|
||||
public class TenderSupplierInputBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 供应商类型
|
||||
*/
|
||||
private String supplierType;
|
||||
|
||||
/**
|
||||
* 入库资料
|
||||
*/
|
||||
private String inputFile;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package org.dromara.tender.domain.vo;
|
||||
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 供应商入库视图对象 tender_supplier_input
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = TenderSupplierInput.class)
|
||||
public class TenderSupplierInputVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 供应商类型
|
||||
*/
|
||||
@ExcelProperty(value = "供应商类型")
|
||||
private String supplierType;
|
||||
|
||||
/**
|
||||
* 入库资料
|
||||
*/
|
||||
@ExcelProperty(value = "入库资料")
|
||||
private String inputFile;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.tender.mapper;
|
||||
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 供应商入库Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface TenderSupplierInputMapper extends BaseMapperPlus<TenderSupplierInput, TenderSupplierInputVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package org.dromara.tender.service;
|
||||
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 供应商入库Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface ITenderSupplierInputService extends IService<TenderSupplierInput>{
|
||||
|
||||
/**
|
||||
* 查询供应商入库
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 供应商入库
|
||||
*/
|
||||
TenderSupplierInputVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询供应商入库列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 供应商入库分页列表
|
||||
*/
|
||||
TableDataInfo<TenderSupplierInputVo> queryPageList(TenderSupplierInputBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的供应商入库列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 供应商入库列表
|
||||
*/
|
||||
List<TenderSupplierInputVo> queryList(TenderSupplierInputBo bo);
|
||||
|
||||
/**
|
||||
* 新增供应商入库
|
||||
*
|
||||
* @param bo 供应商入库
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(TenderSupplierInputBo bo, MultipartFile file);
|
||||
|
||||
/**
|
||||
* 修改供应商入库
|
||||
*
|
||||
* @param bo 供应商入库
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(TenderSupplierInputBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除供应商入库信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,143 @@
|
||||
package org.dromara.tender.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.service.OssService;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.tender.mapper.TenderSupplierInputMapper;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
||||
import static org.dromara.common.constant.MinioPathConstant.SupplierInput;
|
||||
|
||||
/**
|
||||
* 供应商入库Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class TenderSupplierInputServiceImpl extends ServiceImpl<TenderSupplierInputMapper, TenderSupplierInput> implements ITenderSupplierInputService {
|
||||
|
||||
private final TenderSupplierInputMapper baseMapper;
|
||||
@Autowired private ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 查询供应商入库
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 供应商入库
|
||||
*/
|
||||
@Override
|
||||
public TenderSupplierInputVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询供应商入库列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 供应商入库分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<TenderSupplierInputVo> queryPageList(TenderSupplierInputBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TenderSupplierInput> lqw = buildQueryWrapper(bo);
|
||||
Page<TenderSupplierInputVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的供应商入库列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 供应商入库列表
|
||||
*/
|
||||
@Override
|
||||
public List<TenderSupplierInputVo> queryList(TenderSupplierInputBo bo) {
|
||||
LambdaQueryWrapper<TenderSupplierInput> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TenderSupplierInput> buildQueryWrapper(TenderSupplierInputBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TenderSupplierInput> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(TenderSupplierInput::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierType()), TenderSupplierInput::getSupplierType, bo.getSupplierType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInputFile()), TenderSupplierInput::getInputFile, bo.getInputFile());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商入库
|
||||
*
|
||||
* @param bo 供应商入库
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TenderSupplierInputBo bo, MultipartFile file) {
|
||||
TenderSupplierInput add = MapstructUtils.convert(bo, TenderSupplierInput.class);
|
||||
SysOssUploadVo sysOssUploadVo = ossService.uploadWithNoSave(file, ossService.minioFileName(SupplierInput, file));
|
||||
add.setInputFile(sysOssUploadVo.getUrl());
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商入库
|
||||
*
|
||||
* @param bo 供应商入库
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TenderSupplierInputBo bo) {
|
||||
TenderSupplierInput update = MapstructUtils.convert(bo, TenderSupplierInput.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(TenderSupplierInput entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除供应商入库信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user