fix:调整物料分类/大类创建接口,新家删除和详情接口
This commit is contained in:
@@ -173,8 +173,11 @@ public interface ErrorCodeConstants {
|
|||||||
// -------------物料试剂-------------
|
// -------------物料试剂-------------
|
||||||
ErrorCode MATERIAL_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_160_000, "试剂耗材不存在");
|
ErrorCode MATERIAL_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_160_000, "试剂耗材不存在");
|
||||||
ErrorCode MATERIAL_PRODUCT_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料分类/大类不存在");
|
ErrorCode MATERIAL_PRODUCT_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料分类/大类不存在");
|
||||||
|
ErrorCode MATERIAL_PRODUCT_PARENT_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料分类/大类的父类不存在");
|
||||||
ErrorCode MATERIAL_PRODUCT_CODE_EXISTED = new ErrorCode(1_032_160_000, "物料大类编码重复");
|
ErrorCode MATERIAL_PRODUCT_CODE_EXISTED = new ErrorCode(1_032_160_000, "物料大类编码重复");
|
||||||
ErrorCode MATERIAL_CATEGORY_EXISTS_CHILDREN = new ErrorCode(1_032_160_000, "分类下含有子分类或物料大类,不可删除");
|
ErrorCode MATERIAL_CATEGORY_EXISTS_CHILDREN = new ErrorCode(1_032_160_000, "分类下含有子分类或物料大类,不可删除");
|
||||||
|
ErrorCode MATERIAL_PRODUCT_EXISTS_BATCH = new ErrorCode(1_032_160_000, "物料大类下存在物料批次,不可删除");
|
||||||
|
ErrorCode MATERIAL_PRODUCTS_EXISTS_CATEGORY = new ErrorCode(1_032_160_000, "物料大类列表中存在分类数据");
|
||||||
ErrorCode MATERIAL_LIFECYCLE_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程明细不存在");
|
ErrorCode MATERIAL_LIFECYCLE_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程明细不存在");
|
||||||
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
|
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
|
||||||
|
|
||||||
|
|||||||
@@ -62,11 +62,12 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
|||||||
return success(materialProductService.getMaterialCategoryTree());
|
return success(materialProductService.getMaterialCategoryTree());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO 后边再对接
|
||||||
@GetMapping("/orig-material/{code}")
|
@GetMapping("/orig-material/{code}")
|
||||||
@Operation(summary = "根据物料编码获取外部系统原始物料")
|
@Operation(summary = "根据物料编码获取外部系统原始物料")
|
||||||
public CommonResult<Object> getOriginalMaterial(@PathVariable String code) {
|
public CommonResult<MaterialProductRespVO> getOriginalMaterial(@PathVariable String code) {
|
||||||
return null;
|
|
||||||
|
return success(new MaterialProductRespVO().setCode(code).setName("测试物料"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/save-material")
|
@PostMapping("/save-material")
|
||||||
@@ -104,7 +105,7 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
|||||||
|
|
||||||
@DeleteMapping("/delete-list")
|
@DeleteMapping("/delete-list")
|
||||||
@Parameter(name = "ids", description = "编号", required = true)
|
@Parameter(name = "ids", description = "编号", required = true)
|
||||||
@Operation(summary = "批量删除物料")
|
@Operation(summary = "批量删除物料大类")
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-product:delete')")
|
@PreAuthorize("@ss.hasPermission('qms:material-product:delete')")
|
||||||
public CommonResult<Boolean> deleteMaterialProductList(@RequestBody BatchDeleteReqVO req) {
|
public CommonResult<Boolean> deleteMaterialProductList(@RequestBody BatchDeleteReqVO req) {
|
||||||
materialProductService.deleteMaterialProductListByIds(req.getIds());
|
materialProductService.deleteMaterialProductListByIds(req.getIds());
|
||||||
@@ -114,7 +115,7 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
|||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "获得物料")
|
@Operation(summary = "获得物料")
|
||||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
@PreAuthorize("@ss.hasPermission('qms:material-product:query')")
|
// @PreAuthorize("@ss.hasPermission('qms:material-product:query')")
|
||||||
public CommonResult<MaterialProductRespVO> getMaterialProduct(@RequestParam("id") Long id) {
|
public CommonResult<MaterialProductRespVO> getMaterialProduct(@RequestParam("id") Long id) {
|
||||||
MaterialProductDO materialProduct = materialProductService.getMaterialProduct(id);
|
MaterialProductDO materialProduct = materialProductService.getMaterialProduct(id);
|
||||||
return success(BeanUtils.toBean(materialProduct, MaterialProductRespVO.class));
|
return success(BeanUtils.toBean(materialProduct, MaterialProductRespVO.class));
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.zt.plat.module.qms.core.constant.DataTypeConstant;
|
||||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductPageReqVO;
|
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductPageReqVO;
|
||||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@@ -18,6 +19,7 @@ public interface MaterialProductMapper extends BaseMapperX<MaterialProductDO> {
|
|||||||
|
|
||||||
default PageResult<MaterialProductDO> selectPage(MaterialProductPageReqVO reqVO) {
|
default PageResult<MaterialProductDO> selectPage(MaterialProductPageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialProductDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialProductDO>()
|
||||||
|
.eq(MaterialProductDO::getNodeType, DataTypeConstant.DATA_TYPE_DATA)
|
||||||
.eqIfPresent(MaterialProductDO::getParentId, reqVO.getParentId())
|
.eqIfPresent(MaterialProductDO::getParentId, reqVO.getParentId())
|
||||||
.likeIfPresent(MaterialProductDO::getIdPath, reqVO.getIdPath())
|
.likeIfPresent(MaterialProductDO::getIdPath, reqVO.getIdPath())
|
||||||
.likeIfPresent(MaterialProductDO::getName, reqVO.getName())
|
.likeIfPresent(MaterialProductDO::getName, reqVO.getName())
|
||||||
|
|||||||
@@ -68,4 +68,20 @@ public interface MaterialBatchService {
|
|||||||
* @return 工段编号
|
* @return 工段编号
|
||||||
*/
|
*/
|
||||||
List<MaterialBatchRespVO> assignMaterialBatchGongduan(@Valid List<MaterialBatchSaveReqVO> createReqVOs);
|
List<MaterialBatchRespVO> assignMaterialBatchGongduan(@Valid List<MaterialBatchSaveReqVO> createReqVOs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查物料大类下是否有物料批次
|
||||||
|
*
|
||||||
|
* @param pdtId id
|
||||||
|
* @return 存在与否
|
||||||
|
*/
|
||||||
|
boolean checkIsExistsDataByPdt(Long pdtId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查物料大类下是否有物料批次
|
||||||
|
*
|
||||||
|
* @param ids id 集合
|
||||||
|
* @return 存在与否
|
||||||
|
*/
|
||||||
|
boolean checkIsExistsDataByPdts(List<Long> ids);
|
||||||
}
|
}
|
||||||
@@ -169,4 +169,20 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
|||||||
).toList();
|
).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkIsExistsDataByPdt(Long pdtId) {
|
||||||
|
|
||||||
|
return materialBatchMapper.exists(Wrappers.lambdaQuery(MaterialBatchDO.class)
|
||||||
|
.eq(MaterialBatchDO::getProductId, pdtId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkIsExistsDataByPdts(List<Long> ids) {
|
||||||
|
|
||||||
|
return materialBatchMapper.exists(Wrappers.lambdaQuery(MaterialBatchDO.class)
|
||||||
|
.in(MaterialBatchDO::getProductId, ids));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -37,6 +37,9 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MaterialProductMapper materialProductMapper;
|
private MaterialProductMapper materialProductMapper;
|
||||||
|
//
|
||||||
|
// @Resource
|
||||||
|
// private MaterialBatchService materialBatchService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存分类
|
* 保存分类
|
||||||
@@ -60,6 +63,15 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
|||||||
|
|
||||||
mtrl.setNodeType(DataTypeConstant.DATA_TYPE_CATEGORY);
|
mtrl.setNodeType(DataTypeConstant.DATA_TYPE_CATEGORY);
|
||||||
|
|
||||||
|
if (mtrl.getParentId() != 0) {
|
||||||
|
// 从父分类继承 是否危险品、是否标准物质、是否标准溶液
|
||||||
|
MaterialProductDO prnCtg = materialProductMapper.selectById(mtrl.getParentId());
|
||||||
|
if (prnCtg == null) throw exception(MATERIAL_PRODUCT_PARENT_NOT_EXISTS);
|
||||||
|
mtrl.setHazardous(prnCtg.getHazardous())
|
||||||
|
.setStandardMaterialFlag(prnCtg.getStandardMaterialFlag())
|
||||||
|
.setStandardSolutionFlag(prnCtg.getStandardSolutionFlag());
|
||||||
|
}
|
||||||
|
|
||||||
materialProductMapper.insert(mtrl);
|
materialProductMapper.insert(mtrl);
|
||||||
|
|
||||||
String newIdPath = getIdPath(mtrl);
|
String newIdPath = getIdPath(mtrl);
|
||||||
@@ -226,8 +238,10 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
|||||||
}
|
}
|
||||||
// 大类
|
// 大类
|
||||||
else {
|
else {
|
||||||
// 大类下批次时不可删除 TODO 以及其他不可删除的情况
|
// 大类下有批次时不可删除
|
||||||
|
// TODO 以及其他不可删除的情况,如库存记录、物料实例、使用记录等
|
||||||
|
// boolean exists = materialBatchService.checkIsExistsDataByPdt(id);
|
||||||
|
// if (exists) throw exception(MATERIAL_PRODUCT_EXISTS_BATCH);
|
||||||
}
|
}
|
||||||
materialProductMapper.deleteById(id);
|
materialProductMapper.deleteById(id);
|
||||||
}
|
}
|
||||||
@@ -235,7 +249,16 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
|||||||
@Override
|
@Override
|
||||||
public void deleteMaterialProductListByIds(List<Long> ids) {
|
public void deleteMaterialProductListByIds(List<Long> ids) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateMaterialProductExists(ids);
|
List<MaterialProductDO> list = materialProductMapper.selectByIds(ids);
|
||||||
|
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||||
|
throw exception(MATERIAL_PRODUCT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
// 检查物料大类中是否含有分类数据
|
||||||
|
List<MaterialProductDO> mtCtgList = list.stream().filter(m -> DataTypeConstant.DATA_TYPE_CATEGORY.equals(m.getNodeType())).toList();
|
||||||
|
if (CollUtil.isNotEmpty(mtCtgList)) throw exception(MATERIAL_PRODUCTS_EXISTS_CATEGORY);
|
||||||
|
// 检查是否可删除 大类下有批次时不可删除
|
||||||
|
// TODO 以及其他不可删除的情况,如库存记录、物料实例、使用记录等
|
||||||
|
// boolean exists = materialBatchService.checkIsExistsDataByPdts(ids);
|
||||||
// 删除
|
// 删除
|
||||||
materialProductMapper.deleteByIds(ids);
|
materialProductMapper.deleteByIds(ids);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user