From ed13d4fecbb497c98df3bed3d5d4037d1448124b Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 23 十月 2024 20:17:14 +0800 Subject: [PATCH] 1、修改表结构,修改liquibase,在本地启动需要打开liquibase开关,重新执行执行脚本,将最新的结构更新到数据库,之后关闭liquibase开关 2、将各个模块的opc设为关闭状态,可按照实际开发情况在本地开关 --- hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 183 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 161 insertions(+), 22 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 031e115..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,54 +1,193 @@ 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.UpdateWrapper; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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; /** - * <p> - * 鏈嶅姟瀹炵幇绫� - * </p> - * - * @author wf - * @since 2024-09-10 + * @author system + * @since 2024-07-09 14:51:27 */ @Service -public abstract class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService { +@Slf4j +public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService { - @Override - public boolean updateRawGlassStorageDetails(String films_id) { - UpdateWrapper<RawGlassStorageDetails> wrapper = new UpdateWrapper<>(); //杩欎釜绫诲瀷瀹氫箟閿欎簡锛屼笉搴旇鏄痶asking - wrapper.set("films_id","1005") - .eq( "films_id",films_id); + @Autowired + RawGlassStorageTaskService rawGlassStorageTaskService; - return update(wrapper);//杩欎釜鏂规硶榛樿杩斿洖鐨勫氨鏄痓ool绫诲瀷 鎵�鏈夊彲浠ョ洿鎺eturn杩欎釜鏂规硶锛宱k浜嗭紝浣犳甯稿垱寤烘柟娉曞幓涓婁竴灞傚垱 - } + @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 - + return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool } @Override - //杩斿洖绫诲瀷 鏂规硶鍚� 浼犺緭鍊� + //杩斿洖绫诲瀷 鏂规硶鍚� 浼犺緭鍊� public List<RawGlassStorageDetails> selectDetails() { // QueryWrapper<RawGlassStorageDetails>queryWrapper=new QueryWrapper<>(); // queryWrapper.eq("id",rs.getId()); // return list(queryWrapper); 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) { + 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