From 2a7fd275313003968fc186ee4617aec4eca90266 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 10 五月 2025 16:55:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 818 ++++++----------------------------------------------------
1 files changed, 90 insertions(+), 728 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 58df8a5..f6068c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,39 +3,21 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.core.common.R;
import com.core.exception.CoolException;
-import com.zy.asrs.controller.CrnController;
-import com.zy.asrs.controller.OpenController;
-import com.zy.asrs.controller.SiteController;
import com.zy.asrs.domain.enums.TaskStatusType;
-import com.zy.asrs.domain.enums.WorkNoType;
-import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.Result;
-import com.zy.asrs.entity.param.StorageEscalationParam;
-import com.zy.asrs.entity.param.TaskOverToWms;
+import com.zy.asrs.entity.param.GenerateAgvTaskParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.CommandUtils;
-import com.zy.asrs.utils.Utils;
-import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
-import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
-import com.zy.core.model.command.CommandPackage;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -44,14 +26,12 @@
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 java.io.IOException;
import java.util.*;
/**
* 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
- * Created by vincent on 2020/8/6
*/
@Slf4j
@Service("mainService")
@@ -63,17 +43,9 @@
@Autowired
private SlaveProperties slaveProperties;
@Autowired
- private WrkMastMapper wrkMastMapper;
- @Autowired
private LocMastService locMastService;
@Autowired
- private BasCrnpService basCrnpService;
- @Autowired
private BasDevpService basDevpService;
- @Autowired
- private BasErrLogService basErrLogService;
- @Autowired
- private BasCrnErrorMapper basCrnErrorMapper;
@Autowired
private TaskWrkMapper taskWrkMapper;
@Autowired
@@ -84,236 +56,104 @@
private StaDescMapper staDescMapper;
@Autowired
private CommandInfoService commandInfoService;
-
- @Autowired
- private OpenServiceImpl openServiceImpl;
- @Autowired
- private StaDescService staDescService;
-
@Autowired
private ApiLogService apiLogService;
@Autowired
- private CommonService commonService;
-
- @Value("${wms.url}")
- private String wmsUrl;
- @Value("${wms.inboundTaskApplyPath}")
- private String inboundTaskApplyPath;
- @Value("${wms.TaskExecCallback}")
- private String TaskExecCallback;
- @Value("${wms.taskStatusFeedbackPath}")
- private String taskStatusFeedbackPath;
-
+ private OpenService openService;
@Value("${wcs.urlWcs}")
private String wcsUrl;
@Value("${wcs.inboundTaskApplyPathWcs}")
private String wcsInboundTaskApplyPath;
- @Autowired
- private CrnController crnController;
- @Autowired
- private SiteController siteController;
-
- public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
- try {
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鍏ュ簱鍙�
- for (DevpSlave.Sta inSta : devp.getInSta()) {
- StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
- // 鑾峰彇鍏ュ簱绔欎俊鎭�
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- Short workNo = staProtocol.getWorkNo();
- Short stano = staProtocol.getStaNo();
-
- // 灏哄妫�娴嬪紓甯�
- boolean back = false;
- String errMsg = "";
- if (staProtocol.isFrontErr()) {
- errMsg = "鍓嶈秴闄�";
- back = true;
- }
- if (!back && staProtocol.isBackErr()) {
- errMsg = "鍚庤秴闄�";
- back = true;
- }
- if (!back && staProtocol.isHighErr()) {
- errMsg = "楂樿秴闄�";
- back = true;
- }
- if (!back && staProtocol.isLeftErr()) {
- errMsg = "宸﹁秴闄�";
- back = true;
- }
- if (!back && staProtocol.isRightErr()) {
- errMsg = "鍙宠秴闄�";
- back = true;
- }
- if (!back && staProtocol.isWeightErr()) {
- errMsg = "瓒呴噸";
- back = true;
- }
- if (!back && staProtocol.isBarcodeErr()) {
- errMsg = "鎵爜澶辫触";
- back = true;
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing() && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && workNo >= 9790
- && staProtocol.isPakMk()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String BoxNo = barcodeThread.getBarcode();
- TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
- if (!Cools.isEmpty(taskWrk1)) {
- log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
- if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- if (Cools.isEmpty(staDesc)) {
- return;
- } else {
- continue;
- }
- }
- }
- if (back) {
- storageEscalationParam.setWCSStatus(1);
- storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
- }
- log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
- storageEscalationParam.setBoxNo(BoxNo);
- String response = "";
- Boolean success = false;
- try {
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(inboundTaskApplyPath)
- .setJson(JSON.toJSONString(storageEscalationParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (back) {
- if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
- staProtocol.setStaNo((short) 105);
- } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
- staProtocol.setStaNo((short) 107);
- } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
- staProtocol.setStaNo((short) 109);
- } else {
- staProtocol.setStaNo((short) 110);
- }
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- } else {
- if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
- Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
- // 鍒涙柊涓�涓叆搴撳伐浣滄。
- TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
- if (Cools.isEmpty(taskWrk)) {
- taskWrk = createTask1(result, BoxNo);
- if (Cools.isEmpty(taskWrk)) {
- log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
- } else {
- taskWrkService.insert(taskWrk);
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
- staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("TaskNo", taskWrk.getTaskNo());
- try {
- //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
- JSONObject jsonObject1 = JSON.parseObject(response);
- Boolean bool = false;
- if (jsonObject1.get("ReturnStatus").equals(0)) {
- bool = true;
- }
- apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(hashMap)
- , response
- , bool
- );
- } catch (Exception e) {
-
- }
- }
- } else {
-// staProtocol.setWorkNo((short) 9991);
- if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
- staProtocol.setStaNo((short) 105);
- } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
- staProtocol.setStaNo((short) 107);
- } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
- staProtocol.setStaNo((short) 109);
- } else {
- staProtocol.setStaNo((short) 110);
- }
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- }
-
- } else {
-// staProtocol.setWorkNo((short) 9991);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- }
- }
- } catch (Exception e) {
- log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
- log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
- try {
- BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
- if (Cools.isEmpty(basDevp)) {
- log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo());
- } else if (basDevp.getStaErr() != 0) {
- basDevp.setStaErr(2);
- basDevpService.updateById(basDevp);
- }
- } catch (Exception e1) {
- // 閫�鍥�
- log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1);
- }
- } finally {
- apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
- , wmsUrl + inboundTaskApplyPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(storageEscalationParam)
- , response
- , success
- );
- }
- log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
- log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
- }
- }
- }
- } catch (Exception e) {
- log.error("generateStoreWrkFile e", e);
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ public synchronized void demo() {
+ boolean demoEnable = false;
+ Config demoEnableConfig = configService.selectByCode("demoEnable");
+ if(demoEnableConfig != null) {
+ demoEnable = Boolean.parseBoolean(demoEnableConfig.getValue());
}
+
+ if (!demoEnable) {
+ return;
+ }
+
+ //婕旂ず妯″紡-AGV鍑哄簱
+ demoAgvOut();
+ //婕旂ず妯″紡-AGV鍏ュ簱
+ demoAgvIn();
+ //婕旂ず妯″紡-鍥涘悜搴撳嚭搴�
+ demoShuttleOut();
+ //婕旂ず妯″紡-鍥涘悜搴撳叆搴�
+ demoShuttleIn();
+ }
+
+ //婕旂ず妯″紡-AGV鍑哄簱
+ private synchronized void demoAgvOut() {
+ LocMast locMast = locMastService.selectByLocNo("1100601");
+ if(locMast == null) {
+ return;
+ }
+
+ if (!locMast.getLocSts().equals("O")) {
+ return;
+ }
+
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("mk", "agv")
+ .eq("loc_sts", "F")
+ .notIn("loc_no", "0900601")
+ );
+
+ if (locMasts.isEmpty()) {
+ return;
+ }
+
+ LocMast originLocMast = locMasts.get(0);
+
+ //鐢熸垚AGV鍑哄簱浠诲姟
+ GenerateAgvTaskParam param = new GenerateAgvTaskParam();
+ param.setOriginPoint(originLocMast.getLocNo());
+ param.setTargetPoint(locMast.getLocNo());
+ openService.generateAgvTask(param);
+ }
+
+ //婕旂ず妯″紡-AGV鍏ュ簱
+ private synchronized void demoAgvIn() {
+ LocMast locMast = locMastService.selectByLocNo("0900601");
+ if(locMast == null) {
+ return;
+ }
+
+ if (!locMast.getLocSts().equals("F")) {
+ return;
+ }
+
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("mk", "agv")
+ .eq("loc_sts", "O")
+ .notIn("loc_no", "1100601")
+ );
+
+ if (locMasts.isEmpty()) {
+ return;
+ }
+
+ LocMast targetLocMast = locMasts.get(0);
+
+ //鐢熸垚AGV鍑哄簱浠诲姟
+ GenerateAgvTaskParam param = new GenerateAgvTaskParam();
+ param.setOriginPoint(locMast.getLocNo());
+ param.setTargetPoint(targetLocMast.getLocNo());
+ openService.generateAgvTask(param);
+ }
+
+ //婕旂ず妯″紡-鍥涘悜搴撳嚭搴�
+ private synchronized void demoShuttleOut() {
+
+ }
+
+ //婕旂ず妯″紡-鍥涘悜搴撳叆搴�
+ private synchronized void demoShuttleIn() {
+
}
/**
@@ -564,345 +404,6 @@
}
}
- /**
- * 搴撲綅绉昏浆
- */
- public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
- for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
- // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
- List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
- .eq("crn_no", slave.getId())
- .eq("wrk_sts", 11)
- .eq("io_type", 3)
- .orderBy("io_pri", false));
- for (TaskWrk taskWrk : taskWrks) {
-
- // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-// if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
-// String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
-// TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
-// if (!Cools.isEmpty(hallowLocNoTask)){
-// continue;
-// }
-// }
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- continue;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
- continue;
- }
-
- if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) {
- continue;
- }
- // 宸ヤ綔妗g姸鎬佸垽鏂�
- if (taskWrk.getIoType() != 3 || taskWrk.getTargetPoint() == null) {
- log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/鐩爣搴撲綅鍙�, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getTargetPoint(), taskWrk.getIoType());
- continue;
- }
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-
- // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
- crnCommand.setCommand((short) 1);
- if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- Date now = new Date();
- taskWrk.setWrkSts(12);
- taskWrk.setStatus(2);
- taskWrk.setModiTime(now);
- if (taskWrkMapper.updateById(taskWrk) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
- }
- try {
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("TaskNo", taskWrk.getTaskNo());
- String response;
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , true
- );
- } catch (Exception e) {
- log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
-// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
- }
-
- }
- return;
- }
- }
-
- }
-
- /**
- * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
- */
-// public void storeFinished() {
-// for (CrnSlave crn : slaveProperties.getCrn()) {
-// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-// if (crnProtocol == null) { continue; }
-//
-// // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
-// if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
-// //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-// TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
-// if (Cools.isEmpty(taskWrk)) {
-//// log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-// continue;
-// }
-//
-// //鑾峰彇鎸囦护ID
-// Integer commandId = crnProtocol.getCommandId();
-// CommandInfo commandInfo = new CommandInfo();
-// if (Cools.isEmpty(commandId)){
-// commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
-// .eq("wrk_no",crnProtocol.getTaskNo())
-// .eq("device","Crn"));
-// }else {
-// commandInfo = commandInfoService.selectById(commandId);
-// }
-//
-//
-// if (commandInfo == null) {
-// //鎸囦护涓嶅瓨鍦�
-// continue;
-// }
-// if (commandInfo.getCommandStatus() == 3){
-// continue;
-// }
-// commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//鎸囦护瀹屾垚
-// commandInfo.setCompleteTime(new Date());//鎸囦护瀹屾垚鏃堕棿
-// if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-// // 鍫嗗灈鏈哄浣�
-// crnThread.setResetFlag(true);
-// }
-// }
-// }
-// }
-
- /**
- * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
- */
- public synchronized void storeFinished() throws InterruptedException {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
-
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
- //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(), crnProtocol.getTaskNo().intValue());
- if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
- log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
- }
- //纭瀹屾垚淇″彿
- CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
- crnOperatorParam.setCrnNo(crn.getId());
- R r = crnController.crnTaskComplete(crnOperatorParam);
- Thread.sleep(1000);
- if (!r.get("code").equals(200)) {
- return;
- }
- if (!Cools.isEmpty(taskWrk)) {
- if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
- taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
- taskWrk.setStatus(5);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
- } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
- taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
- taskWrk.setStatus(5);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast.setLocSts("O");//O.绌哄簱浣�
- locMast.setBarcode("");//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
- } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
- taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
- taskWrk.setStatus(5);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
-
- LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast1.setLocSts("O");//O.绌哄簱浣�
- locMast1.setBarcode("");//鎵樼洏鐮�
- locMast1.setModiTime(new Date());
- locMast1.setModiUser(9999L);
- locMastService.updateById(locMast1);
- }
- taskWrkService.updateById(taskWrk);
- }
-
- }
- }
- }
-
- /**
- * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
- */
- public synchronized void recCrnErr() {
- Date now = new Date();
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- if (false) {
-// if (crnProtocol.getModeType() != CrnModeType.STOP) {
- // 鏈変换鍔�
- if (crnProtocol.getTaskNo() != 0) {
- BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
- // 鏈夊紓甯�
- if (latest == null) {
- if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
- continue;
- }
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- wrkMast.getWrkNo(), // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
- wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- wrkMast.getLocNo(), // 鐩爣搴撲綅
- wrkMast.getStaNo(), // 鐩爣绔�
- wrkMast.getSourceStaNo(), // 婧愮珯
- wrkMast.getSourceLocNo(), // 婧愬簱浣�
- wrkMast.getBarcode(), // 鏉$爜
- (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "浠诲姟涓紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- } else {
- // 寮傚父淇
- if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- // 鏃犱换鍔�
- } else {
- BasErrLog latest = basErrLogService.findLatest(crn.getId());
- // 鏈夊紓甯�
- if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) {
- // 璁板綍鏂板紓甯�
- if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- null, // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- null, // 宸ヤ綔鐘舵��
- null, // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- null, // 鐩爣搴撲綅
- null, // 鐩爣绔�
- null, // 婧愮珯
- null, // 婧愬簱浣�
- null, // 鏉$爜
- (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "鏃犱换鍔″紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- // 鏃犲紓甯�
- } else {
- // 寮傚父淇
- if (latest != null && latest.getStatus() == 1) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- }
- }
-
- }
- }
-
//鑷姩娲惧彂浠诲姟
public synchronized void autoDistribute() {
Config config = configService.selectByCode("autoDistribute");
@@ -1030,145 +531,6 @@
locMastService.updateById(locMast);
}
}
- }
-
-
- public synchronized String CrnStartRunning(TaskWrk taskWrk) {
- String tasktype = null;
- switch (taskWrk.getIoType()) {
- case 1:
- tasktype = "RK";
- break;
- case 2:
- tasktype = "CK";
- break;
- case 3:
- tasktype = "YK";
- break;
- default:
- tasktype = "鏈煡";
- }
- Map<String, Object> map = new HashMap<>();
- map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
- TaskOverToWms taskOverToWms = new TaskOverToWms();
- taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
- taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
- taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
- taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
- taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
- if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3) {
- taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
- taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
- } else if (taskWrk.getIoType() == 2) {
- Map<Integer, String> map1 = new HashMap<>();
- map1.put(102, "J-1101");
- map1.put(106, "J-1103");
- map1.put(110, "J-1105");
- map1.put(114, "J-1107");
- map1.put(118, "J-1109");
- map1.put(122, "J-1111");
- map1.put(305, "H-1101");
- map1.put(405, "G-1101");
- taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
- taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
- }
-
- taskOverToWms.setTaskStatus("executing"); //浠诲姟鐘舵��
- String response = null;
- try {
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri(wmsUrl)
- .setPath("wcsManager/wcsInterface/taskStatusFeedback")
- .setJson(JSON.toJSONString(taskOverToWms))
- .build()
- .doPost();
- } catch (Exception e) {
- log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
- }
- apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�"
- , wmsUrl + "wcsManager/wcsInterface/taskStatusFeedback"
- , null
- , "127.0.0.1"
- , JSON.toJSONString(taskOverToWms)
- , response
- , true
- );
- return response;
- }
-
- private TaskWrk createTask1(Result result, String barcode) {
- String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
-
-
- Date now = new Date();
- TaskWrk taskWrk = new TaskWrk();
- int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
- taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
- taskWrk.setWrkNo(workNo1);
- taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂
- taskWrk.setCreateTime(now);
- taskWrk.setIoType(1);//浠诲姟绫诲瀷
- taskWrk.setIoPri(13);//浼樺厛绾�
- taskWrk.setBarcode(barcode);//鏉$爜
- LocMast locMast = locMastService.selectByLocNo(locNo);
- taskWrk.setCrnNo(locMast.getCrnNo());
- taskWrk.setTargetPoint(locNo);
- taskWrk.setStartPoint("116");
- if (result.getAlley().equals("1")) {
- taskWrk.setCrnNo(1);
- } else {
- taskWrk.setCrnNo(2);
- }
- if (taskWrk.getIoType() == 1) {
- taskWrk.setWrkSts(2);
- if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
- taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
- }
- }
- return taskWrk;
- }
-
- private TaskWrk createTask(GetWmsDto dto, String barcode) {
- String wcsLocNo = dto.getLocNo();
- if (Cools.isEmpty(wcsLocNo)) {
- return null;
- }
- Date now = new Date();
- TaskWrk taskWrk = new TaskWrk();
- int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
- taskWrk.setTaskNo(dto.getWrkNo());//浠诲姟鍙�
- taskWrk.setWrkNo(workNo1);
- taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
- taskWrk.setCreateTime(now);
- taskWrk.setIoType(1);//浠诲姟绫诲瀷
- taskWrk.setIoPri(Cools.isEmpty(dto.getTaskPriority()) ? 300 : Integer.parseInt(dto.getTaskPriority()));//浼樺厛绾�
- taskWrk.setBarcode(barcode);//鏉$爜
- LocMast locMast = locMastService.selectByLocNo(wcsLocNo);
- taskWrk.setCrnNo(locMast.getCrnNo());
- taskWrk.setTargetPoint(wcsLocNo);
- taskWrk.setStartPoint(dto.getStaNo().toString());
- if (taskWrk.getIoType() == 1) {
- taskWrk.setWrkSts(2);
- if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
- taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
- }
-
-// } else if (param.getIoType() == 2) {
-// taskWrk.setWrkSts(11);
-// if (!Cools.isEmpty(param.getStartPoint())) {
-// taskWrk.setStartPoint(Utils.getWcsLocNo(param.getStartPoint()));//璧风偣
-// taskWrk.setOriginStartPoint(param.getStartPoint());
-// }
-// taskWrk.setTargetPoint(param.getTargetPoint());
-// }else if (param.getIoType() == 3){
-// taskWrk.setWrkSts(11);
-// if (!Cools.isEmpty(param.getStartPoint())) {
-// taskWrk.setStartPoint(param.getStartPoint());//璧风偣
-// taskWrk.setOriginStartPoint(param.getStartPoint());
-// }
- }
- return taskWrk;
}
}
--
Gitblit v1.9.1