From 2f80aaf62144f6ea315334335ad46fbe0ab911e8 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 18 十月 2024 14:52:02 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 195 +++++++++++++++++++++++++++---------------------
1 files changed, 109 insertions(+), 86 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 6782c06..5fc5a05 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,50 +1,44 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.R;
-import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.WorkNoType;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.mapper.*;
-import com.zy.asrs.service.*;
-import com.zy.asrs.utils.*;
-import com.zy.common.model.LocTypeDto;
-import com.zy.common.model.MatDto;
-import com.zy.common.model.SearchLocParam;
-import com.zy.common.model.StartupDto;
-import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
-import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.RedisUtil;
-import com.zy.common.utils.RgvUtils;
-import com.zy.core.CrnThread;
+import com.zy.asrs.entity.BasCircularShuttle;
+import com.zy.asrs.entity.BasDevpPosition;
+import com.zy.asrs.entity.BasRgv;
+import com.zy.asrs.entity.BasSte;
+import com.zy.asrs.service.BasCircularShuttleService;
+import com.zy.asrs.service.BasDevpPositionService;
+import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil;
+import com.zy.asrs.utils.Utils;
import com.zy.core.DevpThread;
-import com.zy.core.Slave;
+import com.zy.core.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
-import com.zy.core.model.*;
-import com.zy.core.model.command.*;
-import com.zy.core.model.cpmmandParam.CrnCommandParam;
-import com.zy.core.model.protocol.*;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.SteSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.SteCommand;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.model.protocol.SteProtocol;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.*;
+import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.SiemensDevpThread;
+import com.zy.core.thread.SteThread;
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 org.springframework.transaction.interceptor.TransactionAspectSupport;
-import springfox.documentation.spring.web.json.Json;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
/**
* 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -55,69 +49,98 @@
@Transactional
public class MainServiceImpl {
- public static final long COMMAND_TIMEOUT = 5 * 1000;
-// private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
- private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
-
- private static final Integer jarMaxLoc = 7;
- private static final Float jarTemperature = 50F;
- @Autowired
- private CommonService commonService;
@Autowired
private SlaveProperties slaveProperties;
@Autowired
- private WrkMastMapper wrkMastMapper;
- @Autowired
- private WrkDetlService wrkDetlService;
- @Autowired
- private WaitPakinMapper waitPakinMapper;
- @Autowired
- private LocMastService locMastService;
- @Autowired
- private StaDescService staDescService;
- @Autowired
- private BasCrnpService basCrnpService;
- @Autowired
- private BasRgvService basRgvService;
- @Autowired
private BasDevpService basDevpService;
@Autowired
- private LocDetlService locDetlService;
+ private BasRgvServiceImpl basRgvService;
@Autowired
- private BasErrLogService basErrLogService;
+ private BasDevpPositionService basDevpPositionService;
@Autowired
- private BasCrnErrorMapper basCrnErrorMapper;
- @Autowired
- private BasRgvErrMapper basRgvErrMapper;
- @Autowired
- private BasRgvErrLogService basRgvErrLogService;
- @Autowired
- private BasRgvPathService basRgvPathService;
- @Autowired
- private RedisUtil redisUtil;
- @Autowired
- private WrkMastStaMapper wrkMastStaMapper;
- @Autowired
- private BasRgvMapMapper basRgvMapMapper;
- @Autowired
- private RgvOneSignMapper rgvOneSignMapper;
- @Autowired
- private WrkMastCrnMapper wrkMastCrnMapper;
- @Autowired
- private WrkMastSplitTwinMapper wrkMastSplitTwinMapper;
- @Autowired
- private WrkMastSplitTwinService wrkMastSplitTwinService;
- @Autowired
- private BasJarMastService basJarMastService;
- @Autowired
- private WrkMastExecuteService wrkMastExecuteService;
- @Autowired
- private BasJarService basJarService;
- @Autowired
- private BasJarMapper basJarMapper;
+ private BasCircularShuttleService basCircularShuttleService;
+ /**
+ * 绔欑偣浠诲姟妫�娴� 涓嬪彂灏忚溅鍙栨斁浠诲姟
+ */
+ public synchronized void updateStePosition() {
+ try{
+ boolean sign = false;
+ Integer rgvNo = 0;
+ List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
+ for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol.modeType != RgvModeType.AUTO || (rgvProtocol.getStatusType() != RgvStatusType.IDLE && rgvProtocol.getStatusType() != RgvStatusType.SOS1001) ){
+ sign = true;
+ } else {
+ rgvNo = basCircularShuttle.getRgvNo();
+ break;
+ }
+ }
+ if (sign && rgvNo!=0){
+ int[][] ints = new int[basCircularShuttleList.size()][2];
+ for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+ ints[basCircularShuttle.getRgvNo()-1] = new int[]{basCircularShuttle.getRgvNo(),basCircularShuttle.getRgvId()};
+ }
+ String[] oldList = new String[ints.length];
+ for (int[] rgv : ints){
+ oldList[rgv[0]-1] = Arrays.toString(rgv);
+ }
+ int[][] rgvList = SortTheExecutionOfTheCarUtil.ReorderSteId(ints, rgvNo);
+ String[] newList = new String[rgvList.length];
+ for (int[] rgv : rgvList){
+ newList[rgv[0]-1] = Arrays.toString(rgv);
+ }
- @Value("${wms.url}")
- private String wmsUrl;
+ log.info("鏇存柊灏忚溅鎺掑簭淇℃伅锛氬師濮嬪皬杞﹀彿rgvNo={},灏忚溅閲嶆柊鎺掑簭淇℃伅={},灏忚溅鍘熷鎺掑簭淇℃伅={}",rgvNo,Arrays.toString(newList),Arrays.toString(oldList));
+ for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+ int[] rgv = rgvList[basCircularShuttle.getRgvNo() - 1];
+ basCircularShuttle.setRgvId(rgv[1]);
+ basCircularShuttleService.updateById(basCircularShuttle);
+ }
+ }
+ } catch (Exception e) {
+ log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触锛屽紓甯革細"+e);
+ }
+ }
+ /**
+ * 绔欑偣浠诲姟妫�娴� 涓嬪彂灏忚溅鍙栨斁浠诲姟
+ */
+ public synchronized void DevpTaskNoRun() {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻绌烘澘鍏ュ簱鍙�
+ for (DevpSlave.Sta sta : devp.getInSta()) {
+ // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ }
+ }
+ }
+ public synchronized void loopSteCharge() {
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (Cools.isEmpty(rgvProtocol, basRgv)) { continue; }
+ try {
+ // 鍦ㄧ嚎 绌洪棽 鏃犱綔涓氭爣璁� 涓嶅湪鍏呯數
+ if (rgvProtocol.getMode() == 0
+ || !rgvProtocol.statusType.equals(RgvStatusType.IDLE)
+ || basRgv.getPakMk().equals("Y")
+// || steProtocol.getChargeStatus() == 1
+ ) {
+ continue;
+ }
+ } catch (Exception e) {
+ News.error("fail", e);
+ }
+ }
+ }
}
--
Gitblit v1.9.1