From eadb3c4c77dd9008030ec029c4c55727084253ed Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 18 七月 2023 16:14:44 +0800
Subject: [PATCH] agv 入库接口调整
---
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 3
src/main/webapp/views/mat/mat.html | 7
src/main/java/com/zy/asrs/service/AgvWrkMastService.java | 8 +
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 5
src/main/java/com/zy/asrs/controller/AgvOpenController.java | 82 +++++++++-
src/main/java/com/zy/asrs/controller/AgvWrkMastController.java | 51 ++-----
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 76 ++++++++++
src/main/webapp/static/js/agvWrkMast/wrkMast.js | 2
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | 55 +++++++
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 86 ++++++++++++
src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js | 10
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 19 +-
src/main/webapp/static/js/agvLocMast/locMast.js | 2
src/main/webapp/static/js/common.js | 2
14 files changed, 333 insertions(+), 75 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 08a651a..e825c78 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -1,14 +1,17 @@
package com.zy.asrs.controller;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.AppAuth;
+import com.core.common.Cools;
import com.core.common.R;
-import com.zy.asrs.entity.AgvWaitPakin;
-import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.entity.param.AgvTaskCallBackParam;
import com.zy.asrs.service.*;
import com.zy.common.web.BaseController;
import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -20,21 +23,49 @@
import javax.annotation.PostConstruct;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.Date;
import java.util.EnumSet;
+/**
+ * 涓婃姤浜嬩欢绫诲瀷锛坋ventType锛夛細
+ * 飦� task锛氫笂鎶ヤ换鍔$姸鎬併��
+ * 飦� task_allocated: 涓婃姤浠诲姟鍒嗛厤缁欐満鍣ㄤ汉銆�
+ * 飦� tote_load锛氫笂鎶ュ彇绠辩姸鎬併��
+ * 飦� tote_unload锛氫笂鎶ユ斁绠辩姸鎬併��
+ * 飦� robot_reach锛氭満鍣ㄤ汉鍒拌揪宸ヤ綔绔欍��
+ * 飦� weight锛氱О閲嶄簨浠跺洖璋冦��
+ * 飦� rfid锛歊FID璇嗗埆浜嬩欢鍥炶皟銆�
+ *
+ * 浠诲姟鐘舵�侊紙status锛夛細
+ * 飦� success锛氭垚鍔熴��
+ * 飦� fail锛氬け璐ャ��
+ * 飦� cancel锛氬彇娑堛��
+ * 飦� suspend锛氭寕璧枫��
+ */
+@Slf4j
@RestController
@RequestMapping("/agv")
public class AgvOpenController extends BaseController {
@Autowired
AgvWrkMastService agvWrkMastService;
+ @Autowired
+ ApiLogService apiLogService;
@PostMapping("/task/event/status")
+ @AppAuth(memo = "ESS浠诲姟鍥炶皟")
public R taskEventStaus(@RequestBody AgvTaskCallBackParam param){
- int wrkMastCount = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
- if(wrkMastCount < 1){
+ //淇濆瓨姣忔璋冪敤璇ユ帴鍙g殑鍙傛暟锛屼綔涓哄巻鍙插彲鏌ヨ
+ //saveApiLog(param);
+
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
+ if(Cools.isEmpty(agvWrkMast)){
return R.error("浠诲姟缂栧彿閿欒");
+ }
+
+ if(!checkParam(param,agvWrkMast)){
+ return R.error("浠诲姟鍙傛暟涓庡伐浣滄。鍙傛暟涓嶇鍚�");
}
AgvTask agvTask = AgvTask.valueOf(param.getEventType());
@@ -45,13 +76,32 @@
} catch (NoSuchMethodException e) {
return R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎");
} catch (InvocationTargetException e) {
- e.printStackTrace();
+ log.error(e.getMessage());
return R.error();
} catch (IllegalAccessException e) {
- e.printStackTrace();
+ log.error(e.getMessage());
return R.error();
}
return R.ok();
+ }
+
+ private boolean checkParam(AgvTaskCallBackParam param, AgvWrkMast agvWrkMast){
+ if(!agvWrkMast.getLocNo().equals(param.getLocationCode())){
+ return false;
+ }
+ if(!agvWrkMast.getSourceLocNo().equals(param.getStationCode())){
+ return false;
+ }
+ return true;
+ }
+
+ private void saveApiLog(AgvTaskCallBackParam param){
+ ApiLog apiLog = new ApiLog();
+ apiLog.setNamespace("ESS浠诲姟鍥炶皟");
+ apiLog.setUrl("/agv/task/event/status");
+ apiLog.setRequest(JSONObject.toJSONString(param));
+ apiLog.setCreateTime(new Date());
+ apiLogService.insert(apiLog);
}
}
@@ -64,6 +114,11 @@
task{
@Transactional
public void success(AgvTaskCallBackParam param) {
+
+ //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
+ agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),205);
+
+ /*
int wrkNo = Integer.valueOf(param.getTaskCode());
String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
//鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
@@ -78,6 +133,7 @@
agvWaitPakinLogService.save(barcode);
//鍒犻櫎鍏ュ簱閫氱煡妗�
agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
+ */
}
@@ -122,10 +178,10 @@
public void success(AgvTaskCallBackParam param) {
//淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getStationCode(),"O","");
- //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級
- agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),2);
+ //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓�
+ agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),203);
//淇敼AGV鍏ュ簱閫氱煡妗g姸鎬�
- agvWaitPakinService.updateIoStatus(Integer.valueOf(param.getTaskCode()),"Y");
+ //agvWaitPakinService.updateIoStatus(Integer.valueOf(param.getTaskCode()),"Y");
}
@@ -150,11 +206,11 @@
int wrkNo = Integer.valueOf(param.getTaskCode());
String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
//淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
- agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
+ //agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
//鏇存柊鐩爣搴撲綅鏄庣粏
- agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
- //淇敼宸ヤ綔妗g姸鎬佷负14锛堝叆搴撳畬鎴愶級
- agvWrkMastService.updateWrkStsByWrkNo(wrkNo,14);
+ //agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
+ //淇敼宸ヤ綔妗g姸鎬佷负204.鏀捐揣瀹屾垚
+ agvWrkMastService.updateWrkStsByWrkNo(wrkNo,204);
}
public void fail(AgvTaskCallBackParam param) {
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
index 8726947..a6cc241 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -12,18 +11,14 @@
import com.core.common.DateUtils;
import com.core.common.R;
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.service.AgvWaitPakinService;
import com.zy.asrs.service.AgvWrkMastService;
-import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.*;
-import java.util.stream.Collectors;
@RestController
@RequestMapping("/agv")
@@ -31,6 +26,8 @@
@Autowired
AgvWrkMastService agvWrkMastService;
+ @Autowired
+ AgvWaitPakinService agvWaitPakinService;
@RequestMapping(value = "/wrkMast/{id}/auth")
@ManagerAuth
@@ -168,43 +165,23 @@
if (Cools.isEmpty(agvWrkMastList)){
return R.error();
}
+ Map<String, List<Map<String, String>>> containerMoveParam = agvWrkMastService.startWrk(agvWrkMastList);
- AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
- agvTaskCreateParam.setTaskType("putaway");
-
- List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
- AgvTaskParam agvTaskParam = new AgvTaskParam();
- AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
- agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
- //AgvTaskParam
- agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
- agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
- //AgvTaskkDescribeParam
- agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
- agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
- agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
- return agvTaskParam;
- }).collect(Collectors.toList());
-
- agvTaskCreateParam.setTasks(agvTaskParamList);
-
- String response = new HttpHandler.Builder()
- .setUri("localhost:8080")
- .setPath("test/task/create")
- .setJson(JSONObject.toJSONString(agvTaskCreateParam))
- .build()
- .doPost();
-
- JSONObject jsonObject = JSON.parseObject(response);
- int code = (int) jsonObject.get("code");
-
- System.out.println(response);
+ int code = agvWrkMastService.containerMove(containerMoveParam);
if(code == 0){
+ agvWrkMastList.forEach(agvWrkMast -> {
+ //202.RCS鍙栬揣涓�
+ agvWrkMast.setWrkSts((long)202);
+ //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
+ agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+ });
+ agvWrkMastService.updateBatchById(agvWrkMastList);
+ return R.ok("浠诲姟鍚姩鎴愬姛");
}
+ return R.error("浠诲姟鍚姩澶辫触");
- return R.ok();
}
}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
index 8847a8d..2ead2e4 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -3,7 +3,15 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.AgvWrkMast;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
public interface AgvWrkMastService extends IService<AgvWrkMast> {
public void updateWrkStsByWrkNo(int wrkNo, long wrkSts);
+
+ public Map<String,List<Map<String,String>>> startWrk(List<AgvWrkMast> agvWrkMastList) throws IOException;
+
+ public int containerMove(Map<String, List<Map<String, String>>> containerMoveParam) throws IOException;
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index 6b637b0..61b924b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -26,10 +26,9 @@
AgvLocDetl agvLocDetl = new AgvLocDetl();
BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
agvLocDetl.setLocNo(locNo);
+ this.insert(agvLocDetl);
return agvLocDetl;
}).collect(Collectors.toList());
-
- this.insertBatch(agvLocDetlList);
}
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index beb08ff..60f20e7 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -72,8 +72,9 @@
throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
}
AgvWaitPakin waitPakin = new AgvWaitPakin();
+ waitPakin.setBatch(detlDto.getBatch());//鎵瑰彿
+
waitPakin.sync(mat);
- waitPakin.setBatch(detlDto.getBatch());
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
@@ -179,7 +180,7 @@
public List<AgvBasDevp> getAgvBasDevpByFloor(int floor) {
EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
- wrapper.eq("floor",floor).eq("cache_shelves","Y").eq("sts_loc","F");
+ wrapper.eq("floor",floor).eq("cache_shelves","Y").eq("loc_sts","F");
return agvBasDevpService.selectList(wrapper);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 82751d4..059d889 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -3,7 +3,10 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.AgvBasDevp;
+import com.zy.asrs.entity.AgvLocMast;
+import com.zy.asrs.entity.AgvWaitPakin;
+import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.model.StartupDto;
@@ -13,7 +16,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
* Created by vincent on 2020/6/11
@@ -66,6 +71,7 @@
updateAgvBasDevp(agvBasDevp);
//鏇存柊鐩爣搴撲綅鐘舵��
updateAgvLocMast(agvLocMast);
+
});
return null;
@@ -115,7 +121,7 @@
int workNo = agvCommonService.getWorkNo(0);
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setWrkSts(201L); // 宸ヤ綔鐘舵�侊細201.鐢熸垚鍏ュ簱浠诲姟ID
wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
//鐢熸垚浼樺厛绾�
wrkMast.setIoPri(300.0);
@@ -136,12 +142,5 @@
}
return wrkMast;
- }
-
- public static void main(String[] args) {
- Set<AgvBasDevp> set = new HashSet<>();
- set.add(null);
- set.add(null);
- System.out.println(set.size());
}
}
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 297e554..cb4be34 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -1,11 +1,25 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.exception.CoolException;
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.AgvWrkMastService;
+import com.zy.common.utils.HttpHandler;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Service
public class AgvWrkMastServiceImp extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService {
@@ -18,4 +32,66 @@
agvWrkMast.setWrkSts(wrkSts);
this.updateById(agvWrkMast);
}
+
+ public Map<String,List<Map<String,String>>> startWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
+
+ AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+ agvTaskCreateParam.setTaskType("putaway");
+
+ //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁�
+ Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
+ List<Map<String,String>> positionCodeMapList = new ArrayList<>();
+ containerMoveParam.put("containerMoveIns",positionCodeMapList);
+
+ List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
+ AgvTaskParam agvTaskParam = new AgvTaskParam();
+ AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
+ agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
+ //AgvTaskParam
+ agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
+ agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
+
+ //寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
+ Map<String,String> positionCodeMap = new HashMap<>();
+ positionCodeMap.put("positionCode",agvWrkMast.getSourceLocNo());
+ positionCodeMapList.add(positionCodeMap);
+
+ //AgvTaskkDescribeParam
+ agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
+ agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
+ agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
+ return agvTaskParam;
+ }).collect(Collectors.toList());
+
+ agvTaskCreateParam.setTasks(agvTaskParamList);
+
+ String response = new HttpHandler.Builder()
+ .setUri("localhost:8080")
+ .setPath("test/task/create")
+ .setJson(JSONObject.toJSONString(agvTaskCreateParam))
+ .build()
+ .doPost();
+
+ JSONObject jsonObject = JSON.parseObject(response);
+ //save log api
+ int code = (int) jsonObject.get("code");
+ if(code != 0){
+ throw new CoolException("璋冪敤AGV鎺ュ彛澶辫触");
+ }
+
+ return containerMoveParam;
+ }
+
+ public int containerMove(Map<String, List<Map<String, String>>> containerMoveParam) throws IOException {
+ String response = new HttpHandler.Builder()
+ .setUri("localhost:8080")
+ .setPath("test/container/moveIn")
+ .setJson(JSONObject.toJSONString(containerMoveParam))
+ .build()
+ .doPost();
+
+ JSONObject jsonObject = JSON.parseObject(response);
+ return (int) jsonObject.get("code");
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
new file mode 100644
index 0000000..c59778d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -0,0 +1,55 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.AgvWrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.AgvWrkMastHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚鐨勬暟鎹�
+ */
+@Slf4j
+@Component
+public class AgvWrkMastScheduler {
+
+ @Autowired
+ AgvWrkMastHandler agvWrkMastHandler;
+ @Autowired
+ AgvWrkMastService agvWrkMastService;
+
+ @Scheduled(cron = "0/5 * * * * ? ")
+ public void excutePutwayWrk(){
+ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+ .eq("wrk_sts", 205)
+ .eq("io_type",1));
+ if(!Cools.isEmpty(agvWrkMastList)){
+ agvWrkMastList.stream().forEach(agvWrkMast -> {
+ ReturnT<String> returnT = agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
+ });
+ }
+ }
+
+ @Scheduled(cron = "0/5 * * * * ? ")
+ public void startPutwayWrk(){
+ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+ .eq("wrk_sts", 201)
+ .eq("io_type",1)
+ .last("limit 0,50"));
+ if(!Cools.isEmpty(agvWrkMastList)){
+ try {
+ ReturnT<String> returnT = agvWrkMastHandler.startPutWayWrk(agvWrkMastList);
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
new file mode 100644
index 0000000..1be3b40
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -0,0 +1,86 @@
+package com.zy.asrs.task.handler;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.AgvWaitPakin;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class AgvWrkMastHandler extends AbstractHandler<String> {
+
+ @Autowired
+ AgvWrkMastService agvWrkMastService;
+ @Autowired
+ AgvLocMastService agvLocMastService;
+ @Autowired
+ AgvLocDetlService agvLocDetlService;
+ @Autowired
+ AgvWrkMastLogService agvWrkMastLogService;
+ @Autowired
+ AgvWrkDetlService agvWrkDetlService;
+ @Autowired
+ AgvWrkDetlLogService agvWrkDetlLogService;
+ @Autowired
+ AgvWaitPakinService agvWaitPakinService;
+ @Autowired
+ AgvWaitPakinLogService agvWaitPakinLogService;
+
+ @Transactional
+ public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
+ int wrkNo = agvWrkMast.getWrkNo();
+ String barcode = agvWrkMast.getBarcode();
+
+ //淇敼宸ヤ綔妗g姸鎬佷负206.搴撳瓨鏇存柊瀹屾垚
+ agvWrkMast.setWrkSts(206L);
+ agvWrkMastService.updateById(agvWrkMast);
+ //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F");
+ //鏇存柊鐩爣搴撲綅鏄庣粏
+ agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
+ //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
+ agvWrkMastLogService.save(wrkNo);
+ //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+ agvWrkDetlLogService.save(wrkNo);
+ //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
+ agvWaitPakinLogService.save(barcode);
+ //鍒犻櫎AGV宸ヤ綔妗�
+ agvWrkMastService.deleteById(wrkNo);
+ //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+ //鍒犻櫎鍏ュ簱閫氱煡妗�
+ agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
+
+ return SUCCESS;
+ }
+
+ @Transactional
+ public ReturnT<String> startPutWayWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
+ Map<String, List<Map<String, String>>> containerMoveParam = agvWrkMastService.startWrk(agvWrkMastList);
+
+ int code = agvWrkMastService.containerMove(containerMoveParam);
+
+ if(code == 0){
+ agvWrkMastList.forEach(agvWrkMast -> {
+ //202.RCS鍙栬揣涓�
+ agvWrkMast.setWrkSts((long)202);
+ //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
+ agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+ });
+ agvWrkMastService.updateBatchById(agvWrkMastList);
+
+ return SUCCESS;
+ }
+
+ return FAIL;
+ }
+}
diff --git a/src/main/webapp/static/js/agvLocMast/locMast.js b/src/main/webapp/static/js/agvLocMast/locMast.js
index fc9c00b..0de37a1 100644
--- a/src/main/webapp/static/js/agvLocMast/locMast.js
+++ b/src/main/webapp/static/js/agvLocMast/locMast.js
@@ -226,7 +226,7 @@
$.ajax({
url: baseUrl+"/agv/locMast/init/auth",
headers: {'token': localStorage.getItem('token')},
- data: JSON.stringify(param),
+ data: JSON.stringify("param"),
dataType:'json',
contentType:'application/json;charset=UTF-8',
method: 'POST',
diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
index a9384ca..ccd559c 100644
--- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -193,7 +193,7 @@
if (data.length === 0){
layer.msg('璇烽�夋嫨鏁版嵁');
} else {
- layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ layer.confirm('纭畾鍚姩'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
$.ajax({
url: baseUrl+"/agv/wrkMast/startWrk/auth",
headers: {'token': localStorage.getItem('token')},
diff --git a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
index 7cafe4f..148dcfc 100644
--- a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
@@ -28,11 +28,11 @@
,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
- ,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈哄彿'}
- ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
- ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
- ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
- ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ //,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈哄彿'}
+ //,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
+ //,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
// ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
// var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
// if(row.picking === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 151832e..5639590 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -173,7 +173,7 @@
/*************************************************************************************************************/
function arrRemove(arr, key, val) {
- for(var i=arr.length-1; i>=0; i--){
+ for(var i=arr.length-1; i>=1; i--){
if(arr[i][key] === val){
arr.splice(i,1);
}
diff --git a/src/main/webapp/views/mat/mat.html b/src/main/webapp/views/mat/mat.html
index bc49782..4b9a401 100644
--- a/src/main/webapp/views/mat/mat.html
+++ b/src/main/webapp/views/mat/mat.html
@@ -88,13 +88,13 @@
<div class="layui-inline">
<label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍙�:</label>
<div class="layui-input-inline">
- <input name="matnr" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
+ <input name="matnr" class="layui-input" placeholder="杈撳叆鐗╂枡鍙�"/>
</div>
</div>
<div class="layui-inline">
- <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍙�:</label>
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍚嶇О:</label>
<div class="layui-input-inline">
- <input name="maktx" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
+ <input name="maktx" class="layui-input" placeholder="杈撳叆鐗╂枡鍚嶇О"/>
</div>
</div>
<div class="layui-inline">
@@ -419,6 +419,7 @@
text-overflow:ellipsis;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
+ word-break: break-all;
">{{this.specs}}</td>
</tr>
</table>
--
Gitblit v1.9.1