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_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_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_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
|
||||
|
||||
|
||||
@@ -62,11 +62,12 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
||||
return success(materialProductService.getMaterialCategoryTree());
|
||||
}
|
||||
|
||||
// TODO
|
||||
// TODO 后边再对接
|
||||
@GetMapping("/orig-material/{code}")
|
||||
@Operation(summary = "根据物料编码获取外部系统原始物料")
|
||||
public CommonResult<Object> getOriginalMaterial(@PathVariable String code) {
|
||||
return null;
|
||||
public CommonResult<MaterialProductRespVO> getOriginalMaterial(@PathVariable String code) {
|
||||
|
||||
return success(new MaterialProductRespVO().setCode(code).setName("测试物料"));
|
||||
}
|
||||
|
||||
@PostMapping("/save-material")
|
||||
@@ -104,7 +105,7 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
||||
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除物料")
|
||||
@Operation(summary = "批量删除物料大类")
|
||||
@PreAuthorize("@ss.hasPermission('qms:material-product:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialProductList(@RequestBody BatchDeleteReqVO req) {
|
||||
materialProductService.deleteMaterialProductListByIds(req.getIds());
|
||||
@@ -114,7 +115,7 @@ public class MaterialProductController extends AbstractFileUploadController impl
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料")
|
||||
@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) {
|
||||
MaterialProductDO materialProduct = materialProductService.getMaterialProduct(id);
|
||||
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.mybatis.core.mapper.BaseMapperX;
|
||||
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.dal.dataobject.MaterialProductDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -18,6 +19,7 @@ public interface MaterialProductMapper extends BaseMapperX<MaterialProductDO> {
|
||||
|
||||
default PageResult<MaterialProductDO> selectPage(MaterialProductPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialProductDO>()
|
||||
.eq(MaterialProductDO::getNodeType, DataTypeConstant.DATA_TYPE_DATA)
|
||||
.eqIfPresent(MaterialProductDO::getParentId, reqVO.getParentId())
|
||||
.likeIfPresent(MaterialProductDO::getIdPath, reqVO.getIdPath())
|
||||
.likeIfPresent(MaterialProductDO::getName, reqVO.getName())
|
||||
|
||||
@@ -68,4 +68,20 @@ public interface MaterialBatchService {
|
||||
* @return 工段编号
|
||||
*/
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
@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
|
||||
private MaterialProductMapper materialProductMapper;
|
||||
//
|
||||
// @Resource
|
||||
// private MaterialBatchService materialBatchService;
|
||||
|
||||
/**
|
||||
* 保存分类
|
||||
@@ -60,6 +63,15 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
||||
|
||||
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);
|
||||
|
||||
String newIdPath = getIdPath(mtrl);
|
||||
@@ -226,8 +238,10 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
||||
}
|
||||
// 大类
|
||||
else {
|
||||
// 大类下批次时不可删除 TODO 以及其他不可删除的情况
|
||||
|
||||
// 大类下有批次时不可删除
|
||||
// TODO 以及其他不可删除的情况,如库存记录、物料实例、使用记录等
|
||||
// boolean exists = materialBatchService.checkIsExistsDataByPdt(id);
|
||||
// if (exists) throw exception(MATERIAL_PRODUCT_EXISTS_BATCH);
|
||||
}
|
||||
materialProductMapper.deleteById(id);
|
||||
}
|
||||
@@ -235,7 +249,16 @@ public class MaterialProductServiceImpl implements MaterialProductService {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user