2/27 器械 药品 虚拟槽位 上货-剔除 bug优化

dev_2.5_optimize
wangwei 4 months ago
parent 95b8b7c04a
commit 92900c1390

@ -612,7 +612,7 @@ public class IoCodeTempController extends BaseController {
} }
} }
} else { } else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); baseResponse = addMaterOrder(addOrderRequest, udiEntity, code,groupNumber);
} }
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
@ -695,11 +695,11 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.equals("return", addOrderRequest.getSplitType())) { if (StrUtil.equals("return", addOrderRequest.getSplitType())) {
//ioSplitFifoInvService.getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getInvCode,"").last("limit 1")); //ioSplitFifoInvService.getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getInvCode,"").last("limit 1"));
} }
if (IntUtil.value(udiEntity.getProductType()) == 2) {
Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1; Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1;
if (IntUtil.value(udiEntity.getProductType()) == 2) {
return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber); return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} else { } else {
return addMaterOrder(addOrderRequest, udiEntity, code); return addMaterOrder(addOrderRequest, udiEntity, code,groupNumber);
} }
} }
@ -711,7 +711,7 @@ public class IoCodeTempController extends BaseController {
private IoOrderDetailCodeDao orderDetailCodeDao; private IoOrderDetailCodeDao orderDetailCodeDao;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) { public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code,Integer groupNumber) {
AddCodeResult addCodeResult = new AddCodeResult(); AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
@ -1142,7 +1142,8 @@ public class IoCodeTempController extends BaseController {
if (byBillNo != null && !StrUtil.isBlank(byBillNo.getWorkPlaceQueueCode())){ if (byBillNo != null && !StrUtil.isBlank(byBillNo.getWorkPlaceQueueCode())){
queueCode = byBillNo.getWorkPlaceQueueCode(); queueCode = byBillNo.getWorkPlaceQueueCode();
} else { } else {
queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),null); // userId 没有什么用 设置为1 问题不大 避免空指针
queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),1+"",udiRelevanceResponse1.getRelId());
addCodeResult.setQueueCode(queueCode); addCodeResult.setQueueCode(queueCode);
} }
}else { }else {
@ -1173,6 +1174,7 @@ public class IoCodeTempController extends BaseController {
codeEnttity.setCount(1); codeEnttity.setCount(1);
codeEnttity.setPrice(udiRelevanceResponse1.getPrice()); codeEnttity.setPrice(udiRelevanceResponse1.getPrice());
codeEnttity.setQueueCode(queueCode); codeEnttity.setQueueCode(queueCode);
codeEnttity.setGroupNumber(groupNumber);
String unitFk = null; String unitFk = null;
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
unitFk = addOrderRequest.getFromCorp(); unitFk = addOrderRequest.getFromCorp();
@ -1648,6 +1650,20 @@ public class IoCodeTempController extends BaseController {
if (codeTempService.ieExitRel(code, orderId)) { if (codeTempService.ieExitRel(code, orderId)) {
return ResultVOUtils.error(500, "当前追溯码已上传关联关系,请勿重复扫码!"); return ResultVOUtils.error(500, "当前追溯码已上传关联关系,请勿重复扫码!");
} }
UdiRelevanceResponse udiRelevanceResponse1 = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
// 只要是一单的话就用同一个 虚拟槽位 加载orderQueueCode !!!!
IoOrderEntity byBillNo = orderService.findByBillNo(orderId);
String queueCode;
if (StrUtil.isBlank(addOrderRequest.getWorkPlaceQueueCode())){
if (byBillNo != null && !StrUtil.isBlank(byBillNo.getWorkPlaceQueueCode())){
queueCode = byBillNo.getWorkPlaceQueueCode();
} else {
queueCode = ioSplitFifoInvService.setQueueCode(addOrderRequest.getWorkPlaceCode(),1 + "",udiRelevanceResponse1.getRelId());
addCodeResult.setQueueCode(queueCode);
}
} else {
queueCode = addOrderRequest.getWorkPlaceQueueCode();
}
IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); IoCodeTempEntity codeEnttity = new IoCodeTempEntity();
codeEnttity.setCode(code); codeEnttity.setCode(code);
codeEnttity.setOrderId(orderId); codeEnttity.setOrderId(orderId);
@ -1672,7 +1688,7 @@ public class IoCodeTempController extends BaseController {
codeEnttity.setProductType(2); codeEnttity.setProductType(2);
codeEnttity.setCount(1); codeEnttity.setCount(1);
codeEnttity.setGroupNumber(groupNumber); codeEnttity.setGroupNumber(groupNumber);
codeEnttity.setQueueCode(addOrderRequest.getWorkPlaceQueueCode()); codeEnttity.setQueueCode(queueCode);
//如果是阿里拉的单据会有批次号 //如果是阿里拉的单据会有批次号
@ -1785,7 +1801,7 @@ public class IoCodeTempController extends BaseController {
orderEntity.setSplitBusType(addOrderRequest.getSplitBusType()); orderEntity.setSplitBusType(addOrderRequest.getSplitBusType());
orderEntity.setFifoSplit(addOrderRequest.getFifoSplit()); orderEntity.setFifoSplit(addOrderRequest.getFifoSplit());
orderEntity.setSplitBusType(addOrderRequest.getSplitBusType()); orderEntity.setSplitBusType(addOrderRequest.getSplitBusType());
orderEntity.setWorkPlaceQueueCode(addOrderRequest.getWorkPlaceQueueCode()); orderEntity.setWorkPlaceQueueCode(queueCode);
orderEntity.setProductType(2); orderEntity.setProductType(2);
orderService.insertOrder(orderEntity); orderService.insertOrder(orderEntity);
} }
@ -1802,8 +1818,8 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.isNotBlank(workplaceQueue.getRelId())) { if (StrUtil.isNotBlank(workplaceQueue.getRelId())) {
if (!udiRelevanceResponse.getId().equals(Long.parseLong(workplaceQueue.getRelId()))) { if (!udiRelevanceResponse.getId().equals(Long.parseLong(workplaceQueue.getRelId()))) {
// orderService.deleteByBillNo(orderId); // orderService.deleteByBillNo(orderId);
UdiRelevanceResponse udiRelevanceResponse1 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId()); UdiRelevanceResponse udiRelevanceResponse2 = udiRelevanceService.selectByRelId(workplaceQueue.getRelId());
return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse1.getCpmctymc() + "使用"); return ResultVOUtils.error(507, "上货产品不符!" + "当前取货槽已被" + udiRelevanceResponse2.getCpmctymc() + "使用");
} }
} else { } else {
//判断产品是否已经绑定其他槽位 //判断产品是否已经绑定其他槽位
@ -3063,7 +3079,7 @@ public class IoCodeTempController extends BaseController {
} }
} else { } else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); baseResponse = addMaterOrder(addOrderRequest, udiEntity, code,groupNumber);
} }
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {

@ -139,7 +139,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
.availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0) .availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0)
.createTime(new Date()).updateTime(new Date()).remark(null) .createTime(new Date()).updateTime(new Date()).remark(null)
.enableRemind(false).invRemindCount(0) .enableRemind(false).invRemindCount(0)
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()) .workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser(),ioSplitFifoCodeEntity.getRelId()) : orderEntity.getWorkPlaceQueueCode())
.build(); .build();
// if (isOnlyInv) { // if (isOnlyInv) {
// splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType()); // splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
@ -174,20 +174,26 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
@Resource @Resource
SysWorkplaceLayerService sysWorkplaceLayerService; SysWorkplaceLayerService sysWorkplaceLayerService;
public String setQueueCode(Long workPlaceCode, String userId) { public String setQueueCode(Long workPlaceCode, String userId,Long relId) {
List<SysWorkplaceQueue> queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode)); List<SysWorkplaceQueue> queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode));
if (queues.size() == 0) { if (queues.size() == 0) {
throw new JsonException(500, "请增加取货槽"); throw new JsonException(500, "请增加取货槽");
} }
//需要先判断 该产品是否已经有库存了 不然 工位有库存 在设置新的虚拟槽位 会显示同样产品 的多条数据但是 下面码明细一样
List<IoSplitFifoInv> ioSplitFifoInvs = list(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getRelId, relId));
if (ioSplitFifoInvs != null && ioSplitFifoInvs.size() > 0){
return ioSplitFifoInvs.get(0).getWorkPlaceQueueCode();
}
SysWorkplaceQueue workplaceQueue = queues.get(0); SysWorkplaceQueue workplaceQueue = queues.get(0);
// 使用流来过滤掉匹配的元素 // 使用流来过滤掉匹配的元素
List<SysWorkplaceQueue> filteredQueues = queues.stream() List<SysWorkplaceQueue> filteredQueues = queues.stream()
.filter(queue -> { .filter(queue -> {
IoSplitFifoInv one = getOne( List<IoSplitFifoInv> list = list(
new LambdaQueryWrapper<IoSplitFifoInv>() new LambdaQueryWrapper<IoSplitFifoInv>()
.eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()) .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())
); );
return one == null; // 只保留那些没有匹配的槽位 return list == null || list.isEmpty();
}) })
.sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())) .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode()))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -208,7 +214,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
throw new JsonException(500, "虚拟槽位增加失败"); throw new JsonException(500, "虚拟槽位增加失败");
} }
} }
return setQueueCode(workPlaceCode, userId); return setQueueCode(workPlaceCode, userId,relId);
} }

Loading…
Cancel
Save