From 984039880e1f6ccc4cb61c35e0004147aa46d5bc Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期六, 21 九月 2024 11:20:39 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 185 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 140 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index 940d621..ddfc242 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -3,18 +3,18 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.AgvBasDevp;
+import com.zy.asrs.entity.AgvLocMast;
import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.entity.param.AgvTaskCreateParam;
import com.zy.asrs.entity.param.AgvTaskParam;
-import com.zy.asrs.entity.param.AgvTaskkDescribeParam;
import com.zy.asrs.mapper.AgvWrkMastMapper;
-import com.zy.asrs.service.AgvLocMastService;
-import com.zy.asrs.service.AgvWrkDetlService;
-import com.zy.asrs.service.AgvWrkMastService;
-import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.*;
+import com.zy.common.service.AgvCommonService;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,11 +22,7 @@
import org.springframework.stereotype.Service;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.*;
@Service
@Slf4j
@@ -37,6 +33,9 @@
@Value("${agv.taskCreatePath}")
private String taskCreatePath;
+
+ @Value("${agv.taskCancelPath}")
+ private String taskCancelPath;
@Value("${agv.containerMoveInPath}")
private String containerMoveInPath;
@@ -55,12 +54,32 @@
AgvLocMastService agvLocMastService;
@Autowired
ApiLogService apiLogService;
+ @Autowired
+ AgvBasDevpService agvBasDevpService;
+ @Autowired
+ private AgvCommonService agvCommonService;
+ @Autowired
+ private AgvWrkMastService agvWrkMastService;
+
public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
AgvWrkMast agvWrkMast = this.selectById(wrkNo);
//鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父
checkWrkSts(agvWrkMast,wrkSts);
agvWrkMast.setWrkSts(wrkSts);
+ agvWrkMast.setModiTime(new Date());
+ this.updateById(agvWrkMast);
+ }
+
+ public void updateWrkStsByWrkNo(int wrkNo, long wrkSts,String manuType,long userId) {
+ Date now = new Date();
+ AgvWrkMast agvWrkMast = this.selectById(wrkNo);
+ //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父
+ checkWrkSts(agvWrkMast,wrkSts);
+ agvWrkMast.setWrkSts(wrkSts);
+ agvWrkMast.setManuType(manuType);
+ agvWrkMast.setModiTime(now);
+ agvWrkMast.setModiUser(userId);
this.updateById(agvWrkMast);
}
@@ -72,21 +91,37 @@
return true;
}
- public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException {
+ public int startWrk(AgvWrkMast agvWrkMast) throws IOException {
AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
- agvTaskCreateParam.setTaskType(taskType);
+ //agvTaskCreateParam.setTaskType(taskType);
- getRequestParam(agvTaskCreateParam,agvWrkMastList);
+ getRequestParam(agvTaskCreateParam,agvWrkMast);
return doHttpRequest(agvTaskCreateParam,"鎼繍浠诲姟涓嬪彂",url, taskCreatePath,null,"127.0.0.1");
//return containerMoveParam;
}
- //瀹瑰櫒鍏ュ満
+ public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
+ AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor(),false,true);
+ agvWrkMast.setLocNo(locMast.getLocNo());
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setLogErrMemo("startAllcationIn");
+ agvWrkMast.setModiTime(new Date());
+ agvWrkMastService.updateById(agvWrkMast);
+ // 鏇寸洰鏍囧簱浣�
+ locMast.setLocSts("S");
+ agvLocMastService.updateById(locMast);
+ return 0;
+
+ }
+
+ //璐ф灦鍏ュ満
public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException {
- //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁�
+ //璋冪敤璐ф灦鍏ュ満鏃舵墍闇�瑕佸弬鏁�
Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
List<Map<String,String>> positionCodeMapList = new ArrayList<>();
containerMoveParam.put("containerMoveIns",positionCodeMapList);
@@ -96,11 +131,11 @@
if(Cools.isEmpty(positionCodeMapList)){
return 0;
}
- return doHttpRequest(containerMoveParam,"瀹瑰櫒鍏ュ満浠诲姟涓嬪彂",url, containerMoveInPath,null,"127.0.0.1");
+ return doHttpRequest(containerMoveParam,"璐ф灦鍏ュ満浠诲姟涓嬪彂",url, containerMoveInPath,null,"127.0.0.1");
}
- //瀹瑰櫒绂诲満
+ //璐ф灦绂诲満
public int containerMoveOut(List<AgvWrkMast> agvWrkMastList){
Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
List<Map<String,String>> positionCodeMapList = new ArrayList<>();
@@ -110,7 +145,7 @@
positionCodeMap.put("positionCode",agvWrkMast.getLocNo());
positionCodeMapList.add(positionCodeMap);
}
- return doHttpRequest(containerMoveParam,"瀹瑰櫒绂诲満浠诲姟涓嬪彂",url, containerMoveOutPath,null,"127.0.0.1");
+ return doHttpRequest(containerMoveParam,"璐ф灦绂诲満浠诲姟涓嬪彂",url, containerMoveOutPath,null,"127.0.0.1");
}
public boolean insertByIncrease(AgvWrkMast agvWrkMast) {
@@ -124,20 +159,45 @@
return this.delete(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
}
- //瀹瑰櫒鍒拌揪閫氱煡
+ //璐ф灦鍒拌揪閫氱煡
public int containerArrived(AgvWrkMast agvWrkMast) {
Map<String,String> containerArrivedParam = new HashMap<>();
containerArrivedParam.put("slotCode",agvWrkMast.getSourceLocNo());
containerArrivedParam.put("containerCode",agvWrkMast.getBarcode());
- return doHttpRequest(containerArrivedParam,"瀹瑰櫒杈惧埌閫氱煡",url, containerArrivedPath,null,"127.0.0.1");
+ return doHttpRequest(containerArrivedParam,"璐ф灦杈惧埌閫氱煡",url, containerArrivedPath,null,"127.0.0.1");
}
+ @Override
+ public List<AgvWrkMast> selectReadyAgvWrkMast() {
+ List<String> stationCodes = agvBasDevpService.selectAllStationCode();
+ Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 21L).like(false, "loc_no", "@");
+ wrapper.in("loc_no",stationCodes);
+ return this.selectList(wrapper);
+ //return this.baseMapper.selectReadyAgvWrkMast();
+ }
+
+ @Override
+ public AgvWrkMast selectByContainerCode(String containerCode) {
+ return this.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",containerCode));
+ }
+
+ @Override
+ public int callCancelTask(int wrkNo) {
+
+ AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+ agvTaskCreateParam.setTaskCode(wrkNo + "");
+
+ return doHttpRequest(agvTaskCreateParam,"鍙栨秷浠诲姟涓嬪彂",url, taskCancelPath,null,"127.0.0.1");
+
+ }
+
+
private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){
- //寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
+ //寰�璐ф灦鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
for(AgvWrkMast agvWrkMast : agvWrkMastList){
- //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佸鍣ㄨ繘鍦鸿姹�
+ //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佽揣鏋惰繘鍦鸿姹�
if("Y".equals(agvWrkMast.getMk())){
continue;
}
@@ -147,31 +207,66 @@
}
}
- private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,List<AgvWrkMast> agvWrkMastList){
- List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
- AgvTaskParam agvTaskParam = new AgvTaskParam();
- AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
- agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
- //AgvTaskParam
- if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){
- agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + "");
- }else{
- agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + "");
- }
+ private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,AgvWrkMast agvWrkMast){
- agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
+ List<AgvTaskParam> agvTaskParamList = Arrays.asList(
+ //璧峰浣�
+ new AgvTaskParam(agvWrkMast.getSourceLocNo()),
+ //鐩爣浣�
+ new AgvTaskParam(agvWrkMast.getLocNo()));
- //AgvTaskkDescribeParam
- if(agvWrkMast.getSourceLocNo().contains("C")){
- agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
- }
- agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
- agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
- agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
- return agvTaskParam;
- }).collect(Collectors.toList());
+// //璧峰浣�
+// agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getSourceLocNo()));
+// //鐩爣浣�
+// agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo()));
- agvTaskCreateParam.setTasks(agvTaskParamList);
+ if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 ){
+ agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
+ }
+ agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
+ switch (agvWrkMast.getIoType()) {
+ case 108:
+ case 12:
+ agvTaskCreateParam.setTaskTyp("F06");
+ break;
+ case 109:
+ if (agvWrkMast.getWrkSts() == 201) {
+ agvTaskCreateParam.setTaskTyp("F06");
+ } else {
+ agvTaskCreateParam.setTaskTyp("F01");
+ }
+ break;
+ case 1:
+ case 57:
+ // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅
+ AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
+ String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
+ if ("02".equals(locSub)) {
+ if (agvBasDevp.getFloor() == 4) {
+ agvTaskCreateParam.setTaskTyp("F01");
+ } else {
+ agvTaskCreateParam.setTaskTyp("F06");
+ }
+
+ } else {
+ // 鐩爣妤煎眰浣�1妤� 浣嗘簮搴撲綅锛堟帴椹充綅锛夊湪鍚稿浜屾ゼ
+ if (agvBasDevp.getFloor() == 4) {
+ agvTaskCreateParam.setTaskTyp("F06");
+ } else {
+ agvTaskCreateParam.setTaskTyp("F01");
+ }
+
+
+ }
+ break;
+ default:
+ agvTaskCreateParam.setTaskTyp("F01");
+ break;
+ }
+
+ agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
+
}
private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
@@ -187,7 +282,7 @@
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- int code = (int) jsonObject.get("code");
+ int code = Integer.parseInt(jsonObject.get("code").toString());
if(code != 0){
throw new CoolException("璋冪敤AGV鍝嶅簲閿欒");
}
--
Gitblit v1.9.1