feat: 关联预验收入库单号

dev_2.5_optimize
chenhc 4 months ago
parent b1334bd15c
commit 984e5c6a0b

@ -12,9 +12,11 @@ import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.CollectOrderCodeManRequest;
import com.glxp.api.req.collect.IoCollectCodeRequest;

@ -62,12 +62,7 @@ public class IoSplitController extends BaseController {
BasicSkPrescribeService basicSkPrescribeService;
@Resource
BasicSkPrescribeItemCodeService basicSkPrescribeItemCodeService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IoCodeService codeService;
@Resource
private IoCodeTempService codeTempService;
/**
*
@ -217,43 +212,6 @@ public class IoSplitController extends BaseController {
if (basicSkPrescribeDiEntity == null)
return ResultVOUtils.error(500, "非此处方单UDI码");
//2-1.校验预验收库存是否已存在
String preInBillNo = addTagCodeReqeust.getPreInBillNo();
String orderId = addTagCodeReqeust.getBillNo();
if (StrUtil.isNotEmpty(preInBillNo)){
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction("SC74047369831589");
if (bussinessTypeEntity.isScanPreIn() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse, 2)) {
if (bussinessTypeEntity.getBackPreinType() == 1 && bussinessTypeEntity.isPreInBack()) {//按单出库&& bussinessTypeEntity.isPreInBack()
String orderIds = preInBillNo;
if (StrUtil.isNotEmpty(orderIds)) {
String[] orderIdArray = orderIds.split(",");
List<String> orderList = CollUtil.toList(orderIdArray);
int count = codeService.findByOrderIdsCount(orderList, code);
if (count <= 0) {
return ResultVOUtils.error(500, "非预验收单产品或预验收库存数量不足!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (count < (codeTempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
} else {
if (count < 1) {
return ResultVOUtils.error(500, "预验收库存数量不足");
}
}
}
} else {
return ResultVOUtils.error(500, "未选择预验收入库单,请先选择预验收入库单!");
}
}
}
}
//3.校验该UDI码是否已经出库是否在预出库队列
Boolean b1 = splitFifoCodeService.isExitCode(code, basicSkPrescribeEntity.getWorkPlaceCode());
if (!b1) {
@ -322,18 +280,4 @@ public class IoSplitController extends BaseController {
}
/**
* @param purType 1:23
*/
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse
udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true;
} else
return false;
}
return true;
}
}

@ -15,6 +15,7 @@ import com.glxp.api.constant.WorkOperType;
import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.UdiEntity;
@ -37,10 +38,13 @@ import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.BasicCollectBustypeService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoCodeLostService;
import com.glxp.api.service.inout.IoCodeTempService;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.AnncmntProductService;
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
@ -96,6 +100,13 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
@Resource
IoCollectCodeBackService ioCollectCodeBackService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IoCodeService codeService;
@Resource
private IoCodeTempService codeTempService;
public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) {
if (collectOrderCodeManRequest == null) {
return Collections.emptyList();
@ -203,6 +214,44 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
// }
// }
//2-1.校验预验收库存是否已存在
String preInBillNo = addTagCodeReqeust.getPreInBillNo();
String orderId = addTagCodeReqeust.getBillNo();
if (StrUtil.isNotEmpty(preInBillNo)){
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction("SC74047369831589");
if (bussinessTypeEntity.isScanPreIn() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse, 2)) {
if (bussinessTypeEntity.getBackPreinType() == 1 && bussinessTypeEntity.isPreInBack()) {//按单出库&& bussinessTypeEntity.isPreInBack()
String orderIds = preInBillNo;
if (StrUtil.isNotEmpty(orderIds)) {
String[] orderIdArray = orderIds.split(",");
List<String> orderList = CollUtil.toList(orderIdArray);
int count = codeService.findByOrderIdsCount(orderList, code);
if (count <= 0) {
throw new JsonException(500, "非预验收单产品或预验收库存数量不足!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (count < (codeTempEntity.getMyCount() + 1)) {
throw new JsonException(500, "超出预验收库存数量");
}
}
} else {
if (count < 1) {
throw new JsonException(500, "预验收库存数量不足");
}
}
}
} else {
throw new JsonException(500, "未选择预验收入库单,请先选择预验收入库单!");
}
}
}
}
//流通数量
Integer circleCount = calCountUtil.getCirActCount(udiRelevanceResponse);
//使用数量
@ -772,4 +821,18 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
public Integer getScanCount(String billNo, Long relId) {
return collectOrderCodeManMapper.getScanCount(billNo,relId);
}
/**
* @param purType 1:23
*/
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse
udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true;
} else
return false;
}
return true;
}
}

Loading…
Cancel
Save