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