feat:入库、批量入库
This commit is contained in:
@@ -26,18 +26,20 @@ import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
||||
import static com.zt.plat.framework.common.pojo.CommonResult.error;
|
||||
|
||||
import com.zt.plat.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.MATERIAL_BATCH_ASSIGN_NOT_EXISTS;
|
||||
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchAssignDO;
|
||||
import com.zt.plat.module.qms.resource.material.service.MaterialBatchAssignService;
|
||||
|
||||
@Tag(name = "管理后台 - 物料批次分发")
|
||||
@RestController
|
||||
@RequestMapping("/qms/material-batch-assign")
|
||||
@RequestMapping("/qms/resource/material-batch-assign")
|
||||
@Validated
|
||||
@FileUploadController(source = "qms.materialbatchassign")
|
||||
public class MaterialBatchAssignController extends AbstractFileUploadController implements BusinessControllerMarker{
|
||||
@@ -94,6 +96,21 @@ public class MaterialBatchAssignController extends AbstractFileUploadController
|
||||
return success(BeanUtils.toBean(materialBatchAssign, MaterialBatchAssignRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/get-by-inf")
|
||||
@Operation(summary = "获得物料批次分发")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
// @PreAuthorize("@ss.hasPermission('qms:material-batch-assign:query')")
|
||||
public CommonResult<PageResult<MaterialBatchAssignRespVO>> getMaterialBatchAssignByInfiId(MaterialBatchAssignPageReqVO pageReqVO) {
|
||||
|
||||
if(pageReqVO.getMaterialInfomationId()==null||pageReqVO.getMaterialInfomationId().length()==0){
|
||||
return error(MATERIAL_BATCH_ASSIGN_NOT_EXISTS,"示例编号不能为空");
|
||||
}
|
||||
|
||||
PageResult<MaterialBatchAssignDO> pageResult = materialBatchAssignService.getMaterialBatchAssignByInfId(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, MaterialBatchAssignRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料批次分发分页")
|
||||
@PreAuthorize("@ss.hasPermission('qms:material-batch-assign:query')")
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.zt.plat.module.qms.resource.material.controller.admin;
|
||||
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchPageReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchRespVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchSaveReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.*;
|
||||
import com.zt.plat.module.qms.resource.material.service.MaterialBatchAssignService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -37,11 +36,14 @@ import com.zt.plat.module.qms.resource.material.service.MaterialBatchService;
|
||||
|
||||
@Tag(name = "管理后台 - 物料批次")
|
||||
@RestController
|
||||
@RequestMapping("/qms/material-batch")
|
||||
@RequestMapping("/qms/resource/material-batch")
|
||||
@Validated
|
||||
@FileUploadController(source = "qms.materialbatch")
|
||||
public class MaterialBatchController extends AbstractFileUploadController implements BusinessControllerMarker{
|
||||
|
||||
@Resource
|
||||
private MaterialBatchAssignService materialBatchAssignService;
|
||||
|
||||
static {
|
||||
FileUploadController annotation = MaterialBatchController.class.getAnnotation(FileUploadController.class);
|
||||
if (annotation != null) {
|
||||
@@ -115,4 +117,10 @@ public class MaterialBatchController extends AbstractFileUploadController implem
|
||||
BeanUtils.toBean(list, MaterialBatchRespVO.class));
|
||||
}
|
||||
|
||||
@PostMapping("/assign")
|
||||
@Operation(summary = "物料分发")
|
||||
public CommonResult<MaterialBatchAssignRespVO> assign(@Valid @RequestBody MaterialBatchAssignSaveReqVO createReqVO) {
|
||||
return success(materialBatchAssignService.assignLab(createReqVO));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.material.controller.admin;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundSaveReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductRespVO;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -37,7 +38,7 @@ import com.zt.plat.module.qms.resource.material.service.MaterialInventoryInbound
|
||||
|
||||
@Tag(name = "管理后台 - 入库")
|
||||
@RestController
|
||||
@RequestMapping("/qms/material-inventory-inbound")
|
||||
@RequestMapping("/qms/resource/material-inventory-inbound")
|
||||
@Validated
|
||||
@FileUploadController(source = "qms.materialinventoryinbound")
|
||||
public class MaterialInventoryInboundController extends AbstractFileUploadController implements BusinessControllerMarker{
|
||||
@@ -115,4 +116,16 @@ public class MaterialInventoryInboundController extends AbstractFileUploadContro
|
||||
BeanUtils.toBean(list, MaterialInventoryInboundRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/multi-put")
|
||||
@Operation(summary = "批量上架")
|
||||
public CommonResult<PageResult<MaterialInventoryInboundRespVO>> createMaterialInventoryInboundMulti(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||
return success(materialInventoryInboundService.multiCreateMaterialInventoryInbound(createReqVO));
|
||||
}
|
||||
|
||||
@PostMapping("single-put")
|
||||
@Operation(summary = "单一上架")
|
||||
public CommonResult<PageResult<MaterialInventoryInboundRespVO>> createMaterialInventoryInboundSingle(@Valid @RequestBody MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||
return success(materialInventoryInboundService.singleCreateMaterialInventoryInbound(createReqVO));
|
||||
}
|
||||
}
|
||||
@@ -37,4 +37,7 @@ public class MaterialBatchAssignPageReqVO extends PageParam {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "实例ID")
|
||||
private String materialInfomationId;
|
||||
|
||||
}
|
||||
@@ -10,13 +10,13 @@ public class MaterialBatchAssignSaveReqVO {
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15114")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "源批次ID", example = "23099")
|
||||
@Schema(description = "源批次ID",requiredMode = Schema.RequiredMode.REQUIRED, example = "23099")
|
||||
private Long batchId;
|
||||
|
||||
@Schema(description = "产品id", example = "10774")
|
||||
private String productId;
|
||||
|
||||
@Schema(description = "库房ID", example = "24720")
|
||||
@Schema(description = "库房ID",requiredMode = Schema.RequiredMode.REQUIRED, example = "24720")
|
||||
private Long warehouseId;
|
||||
|
||||
@Schema(description = "数量")
|
||||
|
||||
@@ -78,5 +78,8 @@ public class MaterialInfomationPageReqVO extends PageParam {
|
||||
@Schema(description = "大类ids")
|
||||
List<Long> productIds;
|
||||
|
||||
@Schema(description = "入库id")
|
||||
private long inventoryInboundId;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
@@ -45,4 +46,19 @@ public class MaterialInventoryInboundDetailSaveReqVO {
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "申请数量")
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 存放位置
|
||||
*/
|
||||
@TableField("LOC_ID")
|
||||
private String locationId;
|
||||
|
||||
/**
|
||||
* 物料大类id
|
||||
*/
|
||||
@TableField("PDT_ID")
|
||||
private Long productId;
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zt.plat.module.qms.resource.material.controller.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
@@ -51,4 +52,8 @@ public class MaterialInventoryInboundSaveReqVO {
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "详情",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private MaterialInventoryInboundDetailSaveReqVO detail;
|
||||
|
||||
|
||||
}
|
||||
@@ -47,7 +47,7 @@ public class MaterialBatchAssignDO extends BusinessBaseDO {
|
||||
* 数量
|
||||
*/
|
||||
@TableField("INB_QTY")
|
||||
private String inboundQuantity;
|
||||
private Long inboundQuantity;
|
||||
/**
|
||||
* 暂存位置记录
|
||||
*/
|
||||
@@ -64,4 +64,6 @@ public class MaterialBatchAssignDO extends BusinessBaseDO {
|
||||
@TableField("RMK")
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -121,4 +121,9 @@ public class MaterialInfomationDO extends BusinessBaseDO {
|
||||
@TableField("RMK")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 库存入库id
|
||||
*/
|
||||
@TableField("INVT_INB_ID")
|
||||
private long inventoryInboundId;
|
||||
}
|
||||
@@ -28,4 +28,10 @@ public interface MaterialBatchAssignMapper extends BaseMapperX<MaterialBatchAssi
|
||||
.orderByDesc(MaterialBatchAssignDO::getId));
|
||||
}
|
||||
|
||||
// default PageResult<MaterialBatchAssignDO> selectByInfId(MaterialBatchAssignPageReqVO reqVO) {
|
||||
// return selectPage(reqVO, new LambdaQueryWrapperX<MaterialBatchAssignDO>()
|
||||
// .eqIfPresent(MaterialBatchAssignDO::getMaterialInfomationId, reqVO.getMaterialInfomationId())
|
||||
// .orderByDesc(MaterialBatchAssignDO::getCreateTime));
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -41,4 +41,12 @@ public interface MaterialInfomationMapper extends BaseMapperX<MaterialInfomation
|
||||
.orderByDesc(MaterialInfomationDO::getId));
|
||||
}
|
||||
|
||||
default PageResult<MaterialInfomationDO> selectAll(MaterialInfomationPageReqVO reqVO) {
|
||||
reqVO.setPageSize(-1);
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialInfomationDO>()
|
||||
.eq(MaterialInfomationDO::getInventoryInboundId, reqVO.getInventoryInboundId()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -53,6 +53,14 @@ public interface MaterialBatchAssignService {
|
||||
*/
|
||||
MaterialBatchAssignDO getMaterialBatchAssign(Long id);
|
||||
|
||||
/**
|
||||
* 用物料实例Id获得物料批次
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料批次分发
|
||||
*/
|
||||
public PageResult<MaterialBatchAssignDO> getMaterialBatchAssignByInfId(MaterialBatchAssignPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料批次分发分页
|
||||
*
|
||||
@@ -61,4 +69,12 @@ public interface MaterialBatchAssignService {
|
||||
*/
|
||||
PageResult<MaterialBatchAssignDO> getMaterialBatchAssignPage(MaterialBatchAssignPageReqVO pageReqVO);
|
||||
|
||||
|
||||
/**
|
||||
* 分发到实验室
|
||||
* @param createReqVO
|
||||
* @return
|
||||
*/
|
||||
MaterialBatchAssignRespVO assignLab(@Valid MaterialBatchAssignSaveReqVO createReqVO);
|
||||
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.zt.plat.module.qms.resource.material.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignPageReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignRespVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialBatchAssignSaveReqVO;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -84,9 +86,24 @@ public class MaterialBatchAssignServiceImpl implements MaterialBatchAssignServic
|
||||
return materialBatchAssignMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialBatchAssignDO> getMaterialBatchAssignByInfId(MaterialBatchAssignPageReqVO pageReqVO){
|
||||
return materialBatchAssignMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialBatchAssignDO> getMaterialBatchAssignPage(MaterialBatchAssignPageReqVO pageReqVO) {
|
||||
return materialBatchAssignMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MaterialBatchAssignRespVO assignLab(MaterialBatchAssignSaveReqVO createReqVO){
|
||||
// 插入
|
||||
MaterialBatchAssignDO materialBatchAssign = BeanUtils.toBean(createReqVO, MaterialBatchAssignDO.class);
|
||||
materialBatchAssignMapper.insert(materialBatchAssign);
|
||||
// 返回
|
||||
return BeanUtils.toBean(materialBatchAssign, MaterialBatchAssignRespVO.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -61,4 +61,18 @@ public interface MaterialInventoryInboundService {
|
||||
*/
|
||||
PageResult<MaterialInventoryInboundDO> getMaterialInventoryInboundPage(MaterialInventoryInboundPageReqVO pageReqVO);
|
||||
|
||||
|
||||
/***
|
||||
* 批量入库/上架
|
||||
* @param createReqVO
|
||||
* @return
|
||||
*/
|
||||
PageResult<MaterialInventoryInboundRespVO>multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 单个入库/上架
|
||||
*/
|
||||
PageResult<MaterialInventoryInboundRespVO>singleCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO);
|
||||
|
||||
|
||||
}
|
||||
@@ -1,11 +1,17 @@
|
||||
package com.zt.plat.module.qms.resource.material.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundPageReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundRespVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInventoryInboundSaveReqVO;
|
||||
import com.zt.plat.framework.common.exception.ErrorCode;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.*;
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialBatchAssignDO;
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfomationDO;
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInventoryInboundDetailDO;
|
||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialBatchAssignMapper;
|
||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInfomationMapper;
|
||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialInventoryInboundDetailMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
@@ -30,7 +36,16 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
|
||||
public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInboundService {
|
||||
|
||||
@Resource
|
||||
private MaterialInventoryInboundMapper materialInventoryInboundMapper;
|
||||
private MaterialInventoryInboundMapper materialInventoryInboundMapper;//入库
|
||||
|
||||
@Resource
|
||||
private MaterialInventoryInboundDetailMapper materialInventoryInboundDetailMapper;//入库明细
|
||||
|
||||
@Resource
|
||||
private MaterialInfomationMapper materialInfomationMapper;//物料实例
|
||||
|
||||
@Resource
|
||||
private MaterialBatchAssignMapper materialBatchAssignMapper;//批次分配
|
||||
|
||||
@Override
|
||||
public MaterialInventoryInboundRespVO createMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||
@@ -89,4 +104,85 @@ public class MaterialInventoryInboundServiceImpl implements MaterialInventoryInb
|
||||
return materialInventoryInboundMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PageResult<MaterialInventoryInboundRespVO> multiCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||
MaterialInventoryInboundDetailSaveReqVO detail = createReqVO.getDetail();
|
||||
|
||||
//判断输入数量是否大于批次剩余数据
|
||||
this.quantityCheck(detail);
|
||||
//生成入库头数据
|
||||
MaterialInventoryInboundDO materialInventoryInbound = BeanUtils.toBean(createReqVO, MaterialInventoryInboundDO.class);
|
||||
materialInventoryInboundMapper.insert(materialInventoryInbound);
|
||||
|
||||
|
||||
|
||||
//根据入库数量创建实例数据
|
||||
List<MaterialInfomationDO> MaterialInfomationDO = new ArrayList<MaterialInfomationDO>();
|
||||
for (int i = 0; i < detail.getQuantity(); i++) {
|
||||
MaterialInfomationDO materialInfomation = new MaterialInfomationDO();
|
||||
materialInfomation.setBatchId(detail.getBatchAssignId());
|
||||
materialInfomation.setLocationId(detail.getLocationId());
|
||||
materialInfomation.setInventoryInboundId(materialInventoryInbound.getId());
|
||||
materialInfomation.setProductId(detail.getProductId());
|
||||
MaterialInfomationDO.add(materialInfomation);
|
||||
}
|
||||
|
||||
materialInfomationMapper.insert(MaterialInfomationDO);
|
||||
|
||||
|
||||
//根据实例数据创建入库明细
|
||||
MaterialInfomationPageReqVO InfomationVO = new MaterialInfomationPageReqVO();
|
||||
InfomationVO.setInventoryInboundId(materialInventoryInbound.getId());
|
||||
PageResult<MaterialInfomationDO> InfomationList = materialInfomationMapper.selectPage(InfomationVO);
|
||||
InfomationList.getList().forEach(item -> {
|
||||
MaterialInventoryInboundDetailDO detailDO = new MaterialInventoryInboundDetailDO();
|
||||
detailDO.setInboundId(materialInventoryInbound.getId());
|
||||
detailDO.setMaterialInfomationId(item.getId());
|
||||
detailDO.setInboundWay("批量入库");
|
||||
materialInventoryInboundDetailMapper.insert(detailDO);
|
||||
});
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialInventoryInboundRespVO> singleCreateMaterialInventoryInbound(MaterialInventoryInboundSaveReqVO createReqVO) {
|
||||
|
||||
MaterialInventoryInboundDetailSaveReqVO detail = createReqVO.getDetail();
|
||||
|
||||
//判断输入数量是否大于批次剩余数据
|
||||
this.quantityCheck(detail);
|
||||
//生成入库头数据
|
||||
MaterialInventoryInboundDO materialInventoryInbound = BeanUtils.toBean(createReqVO, MaterialInventoryInboundDO.class);
|
||||
materialInventoryInboundMapper.insert(materialInventoryInbound);
|
||||
|
||||
//根据实例数据创建入库明细
|
||||
MaterialInfomationPageReqVO InfomationVO = new MaterialInfomationPageReqVO();
|
||||
InfomationVO.setInventoryInboundId(materialInventoryInbound.getId());
|
||||
PageResult<MaterialInfomationDO> InfomationList = materialInfomationMapper.selectPage(InfomationVO);
|
||||
InfomationList.getList().forEach(item -> {
|
||||
MaterialInventoryInboundDetailDO detailDO = new MaterialInventoryInboundDetailDO();
|
||||
detailDO.setInboundId(materialInventoryInbound.getId());
|
||||
detailDO.setMaterialInfomationId(item.getId());
|
||||
detailDO.setInboundWay("采购入库");
|
||||
materialInventoryInboundDetailMapper.insert(detailDO);
|
||||
});
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void quantityCheck(MaterialInventoryInboundDetailSaveReqVO detail) {
|
||||
if (detail.getBatchAssignId() == null || detail.getQuantity() == null) {
|
||||
throw exception(MATERIAL_BATCH_ASSIGN_NOT_EXISTS);
|
||||
}
|
||||
|
||||
MaterialBatchAssignDO materialBatchAssignDO = materialBatchAssignMapper.selectById(detail.getBatchAssignId());
|
||||
//判断输入数量是否大于批次剩余数据
|
||||
if (materialBatchAssignDO.getInboundQuantity() < detail.getQuantity()) {
|
||||
throw exception(new ErrorCode(1_032_150_000, "批次剩余量不足"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user