11/13 上货增加虚拟槽位1.0

dev_unify
wangwei 8 months ago
parent e380c8cf1f
commit 924debdaee

@ -147,7 +147,7 @@ public class SysWorkplaceController extends BaseController {
sysWorkplace.setId(IdUtil.getSnowflakeNextId());
sysWorkplace.setCreateTime(new Date());
sysWorkplace.setUpdateTime(new Date());
boolean save = sysWorkplaceService.save(sysWorkplace);
boolean save = sysWorkplaceService.saveWorkplace(sysWorkplace,getUserId());
if (!save) {
return ResultVOUtils.error("新增错误");
}

@ -72,7 +72,7 @@ public class SysWorkplaceFreightController extends BaseController {
workplaceFreight.setCreateUser(getUserId() + "");
workplaceFreight.setUpdateUser(getUserId() + "");
workplaceFreight.setUpdateTime(new Date());
boolean save = sysWorkplaceFreightService.WorkplaceFreight(workplaceFreight);
boolean save = sysWorkplaceFreightService.workplaceFreight(workplaceFreight);
if (!save) {
return ResultVOUtils.error("新增错误");
}

@ -7,20 +7,26 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.auth.SysWorkplaceDao;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.basic.SysWorkplaceFreight;
import com.glxp.api.entity.basic.SysWorkplaceLayer;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.auth.SysWorkplaceRequest;
import com.glxp.api.req.basic.SysWorkplaceLayerRequest;
import com.glxp.api.req.basic.SysWorkplaceQueueRequest;
import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.SysWorkplaceResponse;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.basic.SysWorkplaceFreightService;
import com.glxp.api.service.basic.SysWorkplaceLayerService;
import org.apache.poi.ss.formula.functions.Offset;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
@ -36,6 +42,12 @@ public class SysWorkplaceService extends ServiceImpl<SysWorkplaceDao, SysWorkpla
@Resource
private SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
private SysWorkplaceFreightService sysWorkplaceFreightService;
@Resource
private SysWorkplaceLayerService sysWorkplaceLayerService;
public Long maxWorkplaceId() {
return super.baseMapper.selectMaxWorkplaceId();
}
@ -100,4 +112,39 @@ public class SysWorkplaceService extends ServiceImpl<SysWorkplaceDao, SysWorkpla
}
@Transactional(rollbackFor = Exception.class)
public boolean saveWorkplace(SysWorkplace sysWorkplace,Long userId) {
SysWorkplace one = getOne(new LambdaQueryWrapper<SysWorkplace>().eq(SysWorkplace::getWorkplaceName, sysWorkplace.getWorkplaceName()).eq(SysWorkplace::getWorkPlaceClass,2));
if (one != null){
throw new JsonException(500,"当前上货工位已存在");
}
boolean save = save(sysWorkplace);
if(!save){
return false;
}
addOneQueue(sysWorkplace,userId);
return true;
}
public void addOneQueue(SysWorkplace sysWorkplace,Long userId){
//增加一个槽位
String freightCode = sysWorkplaceFreightService.createQueueCode();
SysWorkplaceFreight workplaceFreight = new SysWorkplaceFreight();
workplaceFreight.setCode(freightCode);
workplaceFreight.setRemark(sysWorkplace.getWorkplaceName() + "货架");
workplaceFreight.setWorkPlaceIdFk(sysWorkplace.getWorkplaceId());
workplaceFreight.setCreateTime(new Date());
workplaceFreight.setCreateUser(userId + "");
workplaceFreight.setUpdateUser(userId + "");
workplaceFreight.setUpdateTime(new Date());
sysWorkplaceFreightService.workplaceFreight(workplaceFreight);
//增加一层摆货层
String codeByFreightCode = sysWorkplaceLayerService.createCodeByFreightCode(freightCode);
SysWorkplaceLayerRequest sysWorkplaceLayerRequest = new SysWorkplaceLayerRequest();
sysWorkplaceLayerRequest.setFreightCode(freightCode);
sysWorkplaceLayerRequest.setCode(codeByFreightCode);
sysWorkplaceLayerRequest.setQueueNum(1);
sysWorkplaceLayerRequest.setWorkPlaceIdFk(sysWorkplace.getWorkplaceId());
sysWorkplaceLayerService.addSysWorkplaceLayer(sysWorkplaceLayerRequest,userId);
}
}

@ -34,7 +34,7 @@ public class SysWorkplaceFreightService extends ServiceImpl<SysWorkplaceFreightM
@Resource
private SysWorkplaceLayerService sysWorkplaceLayerService;
public boolean WorkplaceFreight(SysWorkplaceFreight workplaceFreight) {
public boolean workplaceFreight(SysWorkplaceFreight workplaceFreight) {
SysWorkplaceFreight sysWorkplaceFreight = sysWorkplaceFreightMapper.selectOne(new LambdaQueryWrapper<SysWorkplaceFreight>().eq(SysWorkplaceFreight::getName, workplaceFreight.getName()));
if (sysWorkplaceFreight != null) {
throw new JsonException(500, "货架名称重复");

@ -65,7 +65,7 @@ public class SysWorkplaceLayerService extends ServiceImpl<SysWorkplaceLayerMappe
freight.setCreateUser(userId + "");
freight.setUpdateUser(userId + "");
freight.setUpdateTime(new Date());
sysWorkplaceFreightService.WorkplaceFreight(freight);
sysWorkplaceFreightService.workplaceFreight(freight);
}
SysWorkplaceLayer workplaceLayer = this.getOne(new LambdaQueryWrapper<SysWorkplaceLayer>().eq(SysWorkplaceLayer::getCode, request.getCode()));

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

Loading…
Cancel
Save