From d2577544b333d545cf5269a2ef6701b7f609654d Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期一, 08 七月 2024 08:23:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OpenController.java | 12 ++
src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java | 122 ++++++++++++++++++++
src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java | 34 +++++
src/main/java/com/zy/asrs/entity/WrkMast.java | 11 +
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 12 ++
src/main/java/com/zy/asrs/service/OpenService.java | 3
src/main/resources/application.yml | 2
src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 9 +
src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java | 149 ++++++++++++++++++++++++
9 files changed, 352 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index cb34a46..8dbba94 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -204,4 +204,16 @@
System.out.println(JSON.toJSONString(param1));
}
+
+ /**
+ * 搴撳瓨缁熻
+ */
+ @RequestMapping("/agv/haikang/complete/v1")
+ public R agvHaiKang(@RequestHeader(required = false) String wrkNo,
+ HttpServletRequest request) {
+// auth(wrkNo, null, request);
+ return R.ok().add(openService.agvHaiKang(wrkNo));
+ }
+
+
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 83298e9..4aeb57c 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -495,6 +495,15 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
}
-
+ public Long getWrkStsComplete(){
+ if (Cools.isEmpty(this.wrkSts)){
+ return this.wrkSts;
+ }
+ if (this.ioType>10){
+ return this.wrkSts+2;
+ }else {
+ return this.wrkSts+2;
+ }
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
index 80451ba..ec65a91 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
@@ -240,5 +240,14 @@
return null;
}
+ public Long getWrkStsCode(){
+ switch (this.wrkSts.intValue()){
+ case 1:
+ return (long)2;
+ default:
+ return this.wrkSts+1;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java
new file mode 100644
index 0000000..02a5e8f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/AgvHaiKangTaskCreateParam.java
@@ -0,0 +1,34 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 瀵规帴ESS 浠诲姟涓嬪彂鍙傛暟
+ */
+@Data
+public class AgvHaiKangTaskCreateParam implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ //浠诲姟鍙�
+ private String taskCode;
+
+ //浠诲姟绫诲瀷
+ private String taskTyp;
+
+ private Long sign;
+
+ private Integer start;
+ private Integer end;
+
+// //浠诲姟缁�
+// private String taskGroupCode;
+//
+// //浠诲姟缁勪紭鍏堢骇
+// private int groupPriority;
+}
+
+
+
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index afd90b1..93ff722 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -43,4 +43,7 @@
* @param param
*/
void syncMat(MatSyncParam param);
+
+ boolean agvHaiKang(String wrkNo);
+
}
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 5d8970a..8e74b99 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -48,6 +48,8 @@
private TagService tagService;
@Autowired
private TagMapper tagMapper;
+ @Autowired
+ private WrkMastService wrkMastService;
@Override
@Transactional
@@ -544,4 +546,14 @@
}
+
+ @Override
+ @Transactional
+ public boolean agvHaiKang(String wrkNo) {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Long.parseLong(wrkNo)));
+ wrkMast.setWrkSts(wrkMast.getWrkStsComplete());
+ wrkMastService.updateById(wrkMast);
+ return true;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java
new file mode 100644
index 0000000..791b9c9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AutoMoveHaiKangScheduler.java
@@ -0,0 +1,122 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.WrkMastExecute;
+import com.zy.asrs.service.WrkMastExecuteService;
+import com.zy.asrs.task.handler.AutoMoveHaiKangHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+// 鑷姩绉诲簱
+@Slf4j
+@Component
+public class AutoMoveHaiKangScheduler {
+
+ @Autowired
+ private WrkMastExecuteService wrkMastExecuteService;
+ @Autowired
+ private AutoMoveHaiKangHandler autoMoveHaiKangHandler;
+
+ /**
+ * 鎵цagv_wrk_mast_execute浠诲姟
+ */
+// @Scheduled(cron = "0/2 * * * * ? ")
+ private void autoMove(){
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",0L));
+ for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
+ try{
+ if (true){
+ autoMoveHaiKangHandler.start(wrkMastExecute);
+ }
+ }catch (Exception e){
+ log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+ }
+ }
+ }
+//
+// /**
+// * 涓嬩竴姝gv_wrk_mast_execute浠诲姟
+// */
+//// @Scheduled(cron = "0/2 * * * * ? ")
+// private void autoMove2(){
+// List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",3L));
+// for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
+// Date now = new Date();
+// try{
+// if (wrkMastExecute.getStatus()==2 && wrkMastExecute.getNowPosition()==1){
+// //鍒ゆ柇鐢垫蹇欎笉蹇�
+// int count = wrkMastExecuteService.selectCount(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("status", 2));
+// if(count<3){
+// wrkMastExecute.setStatus(3);
+// wrkMastExecute.setWrkSts(0L);
+// wrkMastExecute.setModiTime(now);
+// wrkMastExecute.setEndPosition(4);
+// wrkMastExecuteService.updateById(wrkMastExecute);
+// updateAgvBasDevp(agvBasDevp,"R",agvBasDevp.getLocType2(),agvBasDevp.getBarcode());
+// }
+// }
+// }catch (Exception e){
+// log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+// }
+// }
+// }
+//
+// /**
+// * 涓嬩竴姝gv_wrk_mast_execute浠诲姟
+// */
+//// @Scheduled(cron = "0/2 * * * * ? ")
+// private void autoMove3(){
+// List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",2L));
+// for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
+// Date now = new Date();
+// try{
+// if (wrkMastExecute.getStatus()==2){
+// AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", wrkMastExecute.getRoute()[wrkMastExecute.getEndPosition()]));
+// if (Cools.isEmpty(agvBasDevp) || !agvBasDevp.getLocSts().equals("S")){
+// log.error("绔欑偣鐘舵�乴ocsts鍙傛暟鏈夎锛歭ocSts:"+agvBasDevp.getLocSts$());
+// }else {
+// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
+// wrkMastExecute.setModiTime(now);
+// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition());
+// wrkMastExecuteService.updateById(wrkMastExecute);
+// updateAgvBasDevp(agvBasDevp,"F",agvBasDevp.getLocType2(),agvBasDevp.getBarcode());
+// }
+// }else if (wrkMastExecute.getStatus()==3 || wrkMastExecute.getStatus()==4){
+// AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", wrkMastExecute.getRoute()[wrkMastExecute.getNowPosition()]));
+// if (Cools.isEmpty(agvBasDevp) || !agvBasDevp.getLocSts().equals("R")){
+// log.error("绔欑偣鐘舵�乴ocsts鍙傛暟鏈夎锛歭ocSts:"+agvBasDevp.getLocSts$());
+// }else {
+// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
+// wrkMastExecute.setModiTime(now);
+// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition());
+// wrkMastExecuteService.updateById(wrkMastExecute);
+// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"O","",(short)0);
+// }
+// }else if (wrkMastExecute.getStatus()==1){
+// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
+// wrkMastExecute.setModiTime(now);
+// wrkMastExecute.setNowPosition(wrkMastExecute.getEndPosition());
+// wrkMastExecuteService.updateById(wrkMastExecute);
+// }
+// }catch (Exception e){
+// log.error("鎵цagv_wrk_mast_execute浠诲姟寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+// }
+// }
+// }
+//
+//
+//
+// private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){
+// if(!Cools.isEmpty(agvBasDevp)){
+// agvBasDevp.setLocSts(locSts);
+// agvBasDevp.setLocType2(continerType);
+// agvBasDevp.setBarcode(containerCode);
+// agvBasDevpService.updateById(agvBasDevp);
+// }
+// }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java
new file mode 100644
index 0000000..88959fe
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHaiKangHandler.java
@@ -0,0 +1,149 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkMastExecute;
+import com.zy.asrs.entity.param.AgvHaiKangTaskCreateParam;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.impl.WrkMastExecuteServiceImpl;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+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.Arrays;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class AutoMoveHaiKangHandler extends AbstractHandler<String> {
+
+ @Value("${agv.url}")
+ private String url;
+
+ @Value("${agv.taskCreatePath}")
+ private String taskCreatePath;
+
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private WrkMastExecuteServiceImpl wrkMastExecuteService;
+
+ public ReturnT<String> start(WrkMastExecute wrkMastExecute) {
+ try{
+ AgvHaiKangTaskCreateParam agvTaskCreateParam = new AgvHaiKangTaskCreateParam();
+ getRequestParam(agvTaskCreateParam,wrkMastExecute);
+ int doHttpRequest = doHttpRequest(agvTaskCreateParam, "鎼繍浠诲姟涓嬪彂==>2-3==1", url, taskCreatePath, null, "127.0.0.1");
+ if(doHttpRequest != 0){
+ throw new CoolException("浠诲姟涓嬪彂澶辫触,code:"+doHttpRequest);
+ }
+ wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
+ wrkMastExecute.setModiTime(new Date());
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ throw new CoolException("浠诲姟涓嬪彂鎴愬姛,浣嗘槸鏇存柊鎵ц浠诲姟鐘舵�佸け璐�:"+doHttpRequest);
+ }
+ }catch (Exception e){
+ log.error("鎼繍浠诲姟涓嬪彂===銆嬪紓甯革細"+e.getMessage());
+ }
+ return SUCCESS;
+ }
+
+// public ReturnT<String> start1(WrkMastExecute wrkMastExecute) {
+// try{
+// AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+// getRequestParam(agvTaskCreateParam,wrkMastExecute);
+// int doHttpRequest = doHttpRequest(agvTaskCreateParam, "鎼繍浠诲姟涓嬪彂", url, taskCreatePath, null, "127.0.0.1");
+// if(doHttpRequest != 0){
+// throw new CoolException("浠诲姟涓嬪彂澶辫触,code:"+doHttpRequest);
+// }
+// wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode());
+// wrkMastExecute.setModiTime(new Date());
+// if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+// throw new CoolException("浠诲姟涓嬪彂鎴愬姛,浣嗘槸鏇存柊鎵ц浠诲姟鐘舵�佸け璐�:"+doHttpRequest);
+// }
+// }catch (Exception e){
+// log.error("鎼繍浠诲姟涓嬪彂===銆嬪紓甯革細"+e.getMessage());
+// }
+// return SUCCESS;
+// }
+//
+ private void getRequestParam(AgvHaiKangTaskCreateParam agvHaiKangTaskCreateParam, WrkMastExecute wrkMastExecute){
+
+// List<AgvTaskParam> agvTaskParamList = Arrays.asList(
+// //璧峰浣�
+// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getNowPosition()]),
+// //鐩爣浣�
+// new AgvTaskParam(wrkMastExecute.getRoute()[wrkMastExecute.getEndPosition()]));
+
+ Long wrkNo = wrkMastExecute.getWrkNo();
+ if (wrkMastExecute.getNowPosition()==1){
+ agvHaiKangTaskCreateParam.setTaskCode(wrkMastExecute.getWrkNo().toString());
+ }else {
+ wrkNo = -wrkNo;
+ agvHaiKangTaskCreateParam.setTaskCode(wrkNo.toString());
+ }
+ if (!wrkMastExecute.getSouFloor().equals(wrkMastExecute.getEndFloor())) {
+ agvHaiKangTaskCreateParam.setTaskTyp("F06");
+ } else {
+ agvHaiKangTaskCreateParam.setTaskTyp("F01");
+ }
+
+// agvHaiKangTaskCreateParam.setPositionCodePath(agvTaskParamList);
+
+ }
+
+ private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
+// if (true){
+// apiLogService.save(
+// namespace,
+// url + path,
+// appkey,
+// ip,
+// JSON.toJSONString(JSONObject.toJSONString(requestParam)),
+// "",
+// true
+// );
+// return 0;
+// }
+ String response = "";
+ boolean success = false;
+
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(url)
+ .setPath(path)
+ .setJson(JSONObject.toJSONString(requestParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+
+ int code = Integer.parseInt(jsonObject.get("code").toString());
+ if(code != 0){
+ throw new CoolException("璋冪敤AGV鍝嶅簲閿欒");
+ }
+ success = true;
+ return code;
+ }catch (Exception e){
+ log.error(e.getMessage());
+ throw new CoolException("璋冪敤AGV鍝嶅簲閿欒");
+ }finally {
+ apiLogService.save(
+ namespace,
+ url + path,
+ appkey,
+ ip,
+ JSON.toJSONString(JSONObject.toJSONString(requestParam)),
+ response,
+ success
+ );
+ }
+
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b41e798..7f5c157 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://192.168.4.15:1433;databasename=source
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxgtasrs
username: sa
password: sa@123
mvc:
--
Gitblit v1.9.1