|
|
|
@ -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
|
|
|
|
|