diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java index 907a19c7f..faa39c06f 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceController.java @@ -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("新增错误"); } diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceFreightController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceFreightController.java index bca97135a..cf1e7a73f 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceFreightController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceFreightController.java @@ -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("新增错误"); } diff --git a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java index 9a22d1bdd..0b6206e30 100644 --- a/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java +++ b/src/main/java/com/glxp/api/service/auth/SysWorkplaceService.java @@ -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().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); + } } diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceFreightService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceFreightService.java index a37526c04..9c2b3286d 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceFreightService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceFreightService.java @@ -34,7 +34,7 @@ public class SysWorkplaceFreightService extends ServiceImpl().eq(SysWorkplaceFreight::getName, workplaceFreight.getName())); if (sysWorkplaceFreight != null) { throw new JsonException(500, "货架名称重复"); diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java index 45a2f62fe..9e6bad756 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceLayerService.java @@ -65,7 +65,7 @@ public class SysWorkplaceLayerService extends ServiceImpl().eq(SysWorkplaceLayer::getCode, request.getCode())); diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java index d0ccae076..5ec449baa 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java @@ -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 queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode)); + SysWorkplaceQueue workplaceQueue = queues.get(0); + // 使用流来过滤掉匹配的元素 + List filteredQueues = queues.stream() + .filter(queue -> { + IoSplitFifoInv one = getOne( + new LambdaQueryWrapper() + .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().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