2/13 虚拟槽位bug优化1.0

dev_fifo_z
wangwei 5 months ago
parent edea7945a0
commit 3ec2a73b91

@ -254,5 +254,9 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
return sortedRespList;
}
public String selectMaxCodeByLayerCode(String layerCode) {
return sysWorkplaceQueueMapper.selectMaxCode(layerCode);
}
}

@ -26,6 +26,7 @@ import com.glxp.api.service.collect.IoSplitFifoInvRelService;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
import com.glxp.api.util.IntUtil;
import org.apache.xpath.operations.Bool;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -145,6 +146,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
.enableRemind(false)
.invRemindCount(0)
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build();
// setQueueCode 如果根据槽位上货那就设置orderEntity.getWorkPlaceQueueCode() 如果没有根据槽位上货那就设置一个虚拟槽位
// if (isOnlyInv) {
// splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
// }
@ -181,23 +183,19 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
if (queues.size() == 0) {
throw new JsonException(500, "请增加取货槽");
}
// 直接根据 workPlaceCode 增加一个槽位
SysWorkplaceQueue workplaceQueue = queues.get(0);
// 使用流来过滤掉匹配的元素
List<SysWorkplaceQueue> filteredQueues = queues.stream()
.filter(queue -> {
IoSplitFifoInv one = getOne(
new LambdaQueryWrapper<IoSplitFifoInv>()
.eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())
);
return one == null; // 只保留那些没有匹配的槽位
})
.sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode()))
.collect(Collectors.toList());
if (filteredQueues.size() > 0) {
//还有剩余的槽位 可分配
SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0);
return sysWorkplaceQueue.getCode();
} else {
// // 使用流来过滤掉匹配的元素
// List<SysWorkplaceQueue> filteredQueues = queues.stream()
// .filter(queue -> {
// IoSplitFifoInv one = getOne(
// new LambdaQueryWrapper<IoSplitFifoInv>()
// .eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())
// );
// return one == null; // 只保留那些没有匹配的槽位
// })
// .sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode()))
// .collect(Collectors.toList());
//增加一个槽位
SysWorkplaceLayer layer = sysWorkplaceLayerService.getOne(new LambdaQueryWrapper<SysWorkplaceLayer>().eq(SysWorkplaceLayer::getCode, workplaceQueue.getLayerCode()));
SysWorkplaceLayerRequest sysWorkplaceLayerRequest = new SysWorkplaceLayerRequest();
@ -206,8 +204,8 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
sysWorkplaceLayerRequest.setWorkPlaceIdFk(workPlaceCode);
sysWorkplaceLayerRequest.setQueueNum(layer.getQueueNum() + 1);
sysWorkplaceLayerService.addSysWorkplaceLayer(sysWorkplaceLayerRequest, Long.valueOf(userId));
}
return setQueueCode(workPlaceCode, userId);
String queueCode = sysWorkplaceQueueService.selectMaxCodeByLayerCode(workplaceQueue.getLayerCode());
return queueCode;
}
@Resource

Loading…
Cancel
Save