From a4318c3f4c1424de21bc5dc42b3d986b171c1432 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 04 三月 2025 14:18:27 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   90 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 3c9d90a..860e32e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,13 +1,34 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
+import com.zy.asrs.domain.param.RingThroughParam;
+import com.zy.asrs.entity.BasDevpPosition;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.WcsDataSynchronizationParam;
+import com.zy.asrs.entity.param.WcsRgvListParam;
 import com.zy.asrs.entity.param.WcsTaskDistributionParam;
+import com.zy.asrs.entity.param.WcsTaskListParam;
+import com.zy.asrs.service.BasDevpPositionService;
 import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil;
+import com.zy.asrs.utils.Utils;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.RgvThread;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,22 +38,81 @@
 @Service
 public class OpenServiceImpl implements OpenService {
 
-    @Override
-    @Transactional
-    public List<String> queryStock() {
-        return null;
-    }
+
+    @Autowired
+    private SlaveProperties slaveProperties;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private BasDevpPositionService basDevpPositionService;
+
+    @Value("${constant-parameters.perimeter}")
+    private Long perimeter;
 
     @Override
     @Transactional
     public R wcsTaskDistribution(WcsTaskDistributionParam param) {
+        Date now = new Date();
+        WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getTaskNo()));
+        if (!Cools.isEmpty(wrkMast1)){
+            return R.error("宸ヤ綔鍙峰凡瀛樺湪").add("宸ヤ綔鍙峰凡瀛樺湪锛宼askNo="+param.getTaskNo());
+        }
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(param.getTaskNo());
         wrkMast.setSourceStaNo(param.getStartSta$());
         wrkMast.setStaNo(param.getEndSta$());
         wrkMast.setWrkSts(1L);
         wrkMast.setIoType(1);
+        wrkMast.setModiTime(now);
+        wrkMast.setAppeTime(now);
+        wrkMastService.insert(wrkMast);
         return R.ok();
     }
 
+    @Override
+    @Transactional
+    public R wcsTaskStatus(Long timestamp) {
+        try{
+            WcsDataSynchronizationParam wcsDataSynchronizationParam = new WcsDataSynchronizationParam();
+            List<WcsTaskListParam> wcsTaskListParamList = new ArrayList<>();
+            List<WcsRgvListParam> wcsRgvListParamList = new ArrayList<>();
+            List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<>());
+            List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",true));
+
+            for (WrkMast wrkMast : wrkMastList){
+                WcsTaskListParam wcsTaskListParam = new WcsTaskListParam(wrkMast);
+                wcsTaskListParamList.add(wcsTaskListParam);
+            }
+            for (RgvSlave rgv : slaveProperties.getRgv()) {
+                // 鑾峰彇RGV淇℃伅
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+                if (rgvThread == null) {
+                    continue;
+                }
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                WcsRgvListParam wcsRgvListParam = new WcsRgvListParam();
+                wcsRgvListParam.setRgvNo(rgv.getId().toString());
+                wcsRgvListParam.setTaskNo(Cools.isEmpty(rgvProtocol.getTaskNo1()) ? null:rgvProtocol.getTaskNo1().toString());
+                wcsRgvListParam.setStatus(rgvProtocol.statusType.id);
+                wcsRgvListParam.setCurrPos(rgvProtocol.RgvPos);
+                wcsRgvListParam.setCurrSta(SortTheExecutionOfTheCarUtil.LatelyAndLessThanWcs(basDevpPositions,rgvProtocol.getRgvPos(),perimeter).toString());
+                List<String> arrayList = new ArrayList<>();
+                if (rgvProtocol.getAlarm()!=0){
+                    arrayList.add(rgvProtocol.getAlarm$());
+                }
+                wcsRgvListParam.setError(arrayList);
+                wcsRgvListParamList.add(wcsRgvListParam);
+            }
+            wcsDataSynchronizationParam.setTaskList(wcsTaskListParamList);
+            wcsDataSynchronizationParam.setRgvList(wcsRgvListParamList);
+            wcsDataSynchronizationParam.setTimestamp(timestamp);
+            return R.ok().add(wcsDataSynchronizationParam);
+        } catch (Exception e){
+            return R.error("寮傚父").add("寮傚父淇℃伅锛�"+e);
+        }
+    }
+
 }

--
Gitblit v1.9.1