From 22fb46f2db1714a6b450b353669d26908884653f Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期四, 24 十月 2024 10:48:06 +0800 Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes --- hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 149 insertions(+), 10 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 13bab9a..a055efd 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,16 +1,26 @@ 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; +import com.kangaroohy.milo.model.ReadWriteEntity; +import com.kangaroohy.milo.service.MiloService; import com.mes.common.config.Const; import com.mes.rawglassdetails.entity.RawGlassStorageDetails; 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.ArrayList; +import java.util.Date; import java.util.List; /** @@ -20,8 +30,15 @@ @Service @Slf4j public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService { - @Override - public boolean deleteRawGlassStorageDetails(String device_id) { + + @Autowired + RawGlassStorageTaskService rawGlassStorageTaskService; + + @Autowired(required = false) + MiloService miloService; + + @Override + public boolean deleteRawGlassStorageDetails(String device_id) { QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("device_id", device_id); return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool @@ -36,19 +53,141 @@ return list(); } + @Override - public boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw) { - return this.save(rw); + 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("鐢熸垚浠诲姟"); + try { + generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST); + } catch (Exception e) { + return "fail"; + } + //鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬� + RawGlassStorageDetails details = new RawGlassStorageDetails(); + details.setSlot(shelf); + details.setShelf(shelf); + details.setState(Const.RAW_GLASS_STATE_RUNNING); + save(details); + return "success"; } @Override public String patternWarehousing(RawGlassRequest request) { - //todo:鍘熺墖淇℃伅瀛樺叆璇︽儏琛� - RawGlassStorageDetails details = new RawGlassStorageDetails(); - BeanUtils.copyProperties(request, details); - details.setState(Const.GLASS_STATE_IN); - save(details); - return null; + RawGlassStorageDetails glassStorageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>() + .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN) + .eq(RawGlassStorageDetails::getSlot, request.getSlot())); + if (null == glassStorageDetails) { + log.info("褰撳墠鍚婅浣嶆病鏈夋灦瀛�"); + } + //鍘熺墖淇℃伅瀛樺叆璇︽儏琛� + BeanUtils.copyProperties(request, glassStorageDetails); + log.info("瑕嗙洊鍚庡緱鍒扮殑宸ヤ綅璇︽儏淇℃伅涓猴細{}", glassStorageDetails); + updateById(glassStorageDetails); + return "success"; } + @Override + public String UpdateQuantity(RawGlassRequest request) { + update( + new LambdaUpdateWrapper<RawGlassStorageDetails>() + .set(RawGlassStorageDetails::getRemainQuantity, request.getRemainQuantity()) + .eq(RawGlassStorageDetails::getSlot, request.getSlot()) + .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)); + return "success"; + } + + @Override + public String deleteWarehousing(Long slotId) { + update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId) + .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT) + .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)); + return "success"; + } + + @Override + public String outWarehousing(Long slotId) { + 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<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)); + try { + generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST); + } catch (Exception e) { + return "fail"; + } + 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) throws Exception { + RawGlassStorageTask task = RawGlassStorageTask.builder() + .startSlot(startSlot) + .endSlot(endSlot) + .patternQuantity(patternQuantity) + .taskType(taskType) + .taskState(Const.RAW_GLASS_TASK_NEW) + .shelf(shelf) + .createTime(new Date()).build(); + rawGlassStorageTaskService.save(task); + + + List<ReadWriteEntity> list = new ArrayList<>(); + list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1)); + list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1)); + list.add(generateReadWriteEntity("A01-CC.dev.startSlot", startSlot)); + list.add(generateReadWriteEntity("A01-CC.dev.endSlot", endSlot)); + miloService.writeToOpcWord(list); + return Boolean.TRUE; + } + + private ReadWriteEntity generateReadWriteEntity(String identifier, int value) { + ReadWriteEntity readWriteEntity = new ReadWriteEntity(); + readWriteEntity.setIdentifier(identifier); + readWriteEntity.setValue(value); + return readWriteEntity; + } } \ No newline at end of file -- Gitblit v1.8.0