From f97effec07e9ef4ca39d39181487fdabe9c620dc Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 26 三月 2024 16:57:36 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionServiceImpl.java | 65 ++++++++++++++++++++++++++++++++ 1 files changed, 65 insertions(+), 0 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionServiceImpl.java index 3180bb0..5a492a1 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/MotionServiceImpl.java @@ -1,12 +1,77 @@ package com.zy.asrs.wcs.rcs.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; +import com.zy.asrs.wcs.core.model.enums.MotionStsType; +import com.zy.asrs.wcs.core.service.DeviceCtgService; import com.zy.asrs.wcs.rcs.mapper.MotionMapper; import com.zy.asrs.wcs.rcs.entity.Motion; import com.zy.asrs.wcs.rcs.service.MotionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zy.asrs.wcs.rcs.service.MotionStsService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; @Service("motionService") public class MotionServiceImpl extends ServiceImpl<MotionMapper, Motion> implements MotionService { + @Autowired + private DeviceCtgService deviceCtgService; + @Autowired + private MotionStsService motionStsService; + + @Override + public List<Motion> selectUnCompleteByUuidAndDeviceCtg(String uuid, DeviceCtgType deviceCtgType) { + return this.list(new LambdaQueryWrapper<Motion>() + .eq(Motion::getUuid, uuid) + .eq(Motion::getDeviceCtg, deviceCtgService.selectByFlag(deviceCtgType.toString()).getId()) + .lt(Motion::getMotionSts, motionStsService.selectByFlag(MotionStsType.COMPLETE.toString()).getId()) + .orderByDesc(Motion::getPriority) + ); + } + + @Override + public Motion selectOfTop1(String uuid, Long motionSts, Long hostId) { + return this.baseMapper.selectOfTop1(uuid, motionSts, hostId); + } + + @Override + public Boolean hasRunningMotion(String uuid, Long hostId) { + return null != this.selectOfTop1(uuid, MotionStsType.EXECUTING.val(), hostId) + || null != this.selectOfTop1(uuid, MotionStsType.ERROR.val(), hostId); + } + + @Override + public List<Motion> selectBySts(Long motionSts) { + return this.list(new LambdaQueryWrapper<Motion>() + .eq(Motion::getMotionSts, motionSts) + .orderByDesc(Motion::getPriority)); + } + + @Override + public Boolean theNextBeWaiting(String uuid, Motion motion) { + Motion next = null; + if (null == motion) { + next = this.baseMapper.selectOfTop1(uuid, MotionStsType.INIT.val(), motion.getHostId()); + } else { + next = this.selectOfNext(uuid, motion); + } + if (null != next) { + next.setMotionSts(MotionStsType.WAITING.val()); + next.setUpdateTime(new Date()); + if (!this.updateById(next)) { + throw new CoolException(uuid + " - [" + (motion == null ? 0 : (motion.getPriority() - 1)) + "] 鍔ㄤ綔鏇存柊鐘舵�佸け璐�"); + } + } + return Boolean.TRUE; + } + + @Override + public Motion selectOfNext(String uuid, Motion motion) { + return this.baseMapper.selectOfNext(uuid, motion.getPriority(), motion.getHostId()); + } } -- Gitblit v1.9.1