From 0926a39aef0c9fdcee823e189bac2e532c6f0d4b Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期日, 20 十月 2024 21:06:51 +0800 Subject: [PATCH] 1、对接原片仓储opc 2、关闭liquibase,仅需要有脚本变动的时候开启在执行,避免启动报错 3、原片仓储新增入库请求、出库情况,调整整体逻辑,增加格子号架子号,任务表、详情表、工位表都需要记录架子信息,用于任务执行过程中,架子在执行过程中可返回架子对应的工位上,避免架子乱放后格子架子号不对应的情况发生。 --- hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 85 insertions(+), 6 deletions(-) diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java index 702e9d7..699cbf6 100644 --- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java +++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java @@ -1,5 +1,6 @@ package com.mes.rawglassdetails.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,9 +9,13 @@ import com.mes.rawglassdetails.entity.request.RawGlassRequest; import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper; import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; +import com.mes.rawglasstask.entity.RawGlassStorageTask; +import com.mes.rawglasstask.service.RawGlassStorageTaskService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; @@ -22,6 +27,10 @@ @Service @Slf4j public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService { + + @Autowired + RawGlassStorageTaskService rawGlassStorageTaskService; + @Override public boolean deleteRawGlassStorageDetails(String device_id) { QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>(); @@ -40,13 +49,42 @@ @Override - public String patternWarehousing(RawGlassRequest request) { - //todo:鍘熺墖淇℃伅瀛樺叆璇︽儏琛� + public String warehousingRequest(int leftingStation) { + RawGlassStorageDetails storageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>() + .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)); + if (null != storageDetails) { + log.info("褰撳墠鍚婅浣嶆湁鏋跺瓙锛岀粨鏉熸湰鍦板叆搴撹姹�"); + return "fail"; + } + List<Integer> shelfList = listBySlotState(Const.RAW_GLASS_DEVICE, Const.RAW_GLASS_STATE_IN_ALL); + if (CollectionUtils.isEmpty(shelfList)) { + log.info("褰撳墠宸ヤ綅涓嶅瓨鍦ㄥ彲鐢ㄧ殑绌烘灦瀛�"); + return "fail"; + } + Integer shelf = shelfList.get(0); + log.info("鐢熸垚浠诲姟"); + generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST); + //鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬� RawGlassStorageDetails details = new RawGlassStorageDetails(); - BeanUtils.copyProperties(request, details); - details.setState(Const.GLASS_STATE_IN); - details.setCreateTime(new Date()); + details.setSlot(shelf); + details.setShelf(shelf); + details.setState(Const.RAW_GLASS_STATE_RUNNING); save(details); + return "success"; + } + + @Override + public String patternWarehousing(RawGlassRequest request) { + RawGlassStorageDetails glassStorageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>() + .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN) + .eq(RawGlassStorageDetails::getSlot, request.getSlot())); + if (null == glassStorageDetails) { + log.info("褰撳墠鍚婅浣嶆病鏈夋灦瀛�"); + } + //todo:鍘熺墖淇℃伅瀛樺叆璇︽儏琛� + BeanUtils.copyProperties(request, glassStorageDetails); + log.info("瑕嗙洊鍚庡緱鍒扮殑宸ヤ綅璇︽儏淇℃伅涓猴細{}", glassStorageDetails); + updateById(glassStorageDetails); return "success"; } @@ -73,12 +111,53 @@ update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId) .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN) .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT)); + //鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬� return "success"; } @Override - public List<Integer> listBySlotState(List<String> liftingStation, List<Integer> state) { + public List<Integer> listBySlotState(List<Integer> liftingStation, List<Integer> state) { return baseMapper.listBySlotState(liftingStation, state); } + + @Override + public String outWarehousingRequest(int leftingStation) { + //瀵瑰簲宸ヤ綅鏄惁鏈夌┖鏋跺瓙 + RawGlassStorageDetails details = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN) + .eq(RawGlassStorageDetails::getSlot, leftingStation)); + if (null == details) { + log.info("鏃犵┖鏋跺瓙锛岀粨鏉熸湰鍦板嚭鐗囪姹�"); + return "fail"; + } + //鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬� + update(new LambdaUpdateWrapper<RawGlassStorageDetails>() + .eq(RawGlassStorageDetails::getSlot, details.getSlot()) + .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN) + .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING)); + generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST); + return "success"; + } + + /** + * 鐢熸垚鍘熺墖浠撳偍浠诲姟 + * + * @param startSlot + * @param endSlot + * @param patternQuantity + * @param taskType + * @return + */ + @Override + public boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) { + RawGlassStorageTask task = RawGlassStorageTask.builder() + .startSlot(startSlot) + .endSlot(endSlot) + .patternQuantity(patternQuantity) + .taskType(taskType) + .taskState(Const.RAW_GLASS_TASK_NEW) + .shelf(shelf) + .createTime(new Date()).build(); + return rawGlassStorageTaskService.save(task); + } } \ No newline at end of file -- Gitblit v1.8.0