|
|
|
@ -8,14 +8,19 @@ import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplaceLayer;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplacePutRel;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplaceQueue;
|
|
|
|
|
import com.glxp.api.entity.collect.IoSplitFifoInvRel;
|
|
|
|
|
import com.glxp.api.entity.inout.IoCodeEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
|
|
|
|
|
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
|
|
|
|
|
import com.glxp.api.req.inout.IoSplitFifoInvRequest;
|
|
|
|
|
import com.glxp.api.res.inout.IoSplitInvResponse;
|
|
|
|
|
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
|
|
|
|
|
import com.glxp.api.service.basic.SysWorkplaceLayerService;
|
|
|
|
|
import com.glxp.api.service.basic.SysWorkplaceQueueService;
|
|
|
|
|
import com.glxp.api.service.collect.IoSplitFifoInvRelService;
|
|
|
|
|
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
@ -28,6 +33,7 @@ import java.util.ArrayList;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.glxp.api.entity.inout.IoSplitFifoInv;
|
|
|
|
@ -126,7 +132,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
.remark(null)
|
|
|
|
|
.enableRemind(false)
|
|
|
|
|
.invRemindCount(0)
|
|
|
|
|
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode()).build();
|
|
|
|
|
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(),orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build();
|
|
|
|
|
// if (isOnlyInv) {
|
|
|
|
|
// splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
// }
|
|
|
|
@ -152,6 +158,42 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
splitFifoCodeService.saveBatch(splitCodeEntities);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplaceQueueService sysWorkplaceQueueService;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplaceLayerService sysWorkplaceLayerService;
|
|
|
|
|
public String setQueueCode(Long workPlaceCode,String userId){
|
|
|
|
|
List<SysWorkplaceQueue> queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getWorkPlaceIdFk, 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 {
|
|
|
|
|
//增加一个槽位
|
|
|
|
|
SysWorkplaceLayer layer = sysWorkplaceLayerService.getOne(new LambdaQueryWrapper<SysWorkplaceLayer>().eq(SysWorkplaceLayer::getCode, workplaceQueue.getLayerCode()));
|
|
|
|
|
SysWorkplaceLayerRequest sysWorkplaceLayerRequest = new SysWorkplaceLayerRequest();
|
|
|
|
|
sysWorkplaceLayerRequest.setFreightCode(workplaceQueue.getFreightCode());
|
|
|
|
|
sysWorkplaceLayerRequest.setCode(workplaceQueue.getLayerCode());
|
|
|
|
|
sysWorkplaceLayerRequest.setWorkPlaceIdFk(workPlaceCode);
|
|
|
|
|
sysWorkplaceLayerRequest.setQueueNum(layer.getQueueNum() + 1);
|
|
|
|
|
sysWorkplaceLayerService.addSysWorkplaceLayer(sysWorkplaceLayerRequest, Long.valueOf(userId));
|
|
|
|
|
}
|
|
|
|
|
return setQueueCode(workPlaceCode,userId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplacePutRelService sysWorkplacePutRelService;
|
|
|
|
|
@Resource
|
|
|
|
|