From d61d4384e19580a32becb54e8e7f2287bed5469a Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 26 五月 2025 09:08:18 +0800
Subject: [PATCH] 1.出库口补空板 2.组托时调用agv 3.新增agv调用程序
---
src/main/java/com/zy/asrs/entity/param/RCSParam.java | 51 ++++++++++++
src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java | 61 +++++++++++++++
src/main/java/com/zy/asrs/entity/WaitPakin.java | 4
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 16 +---
src/main/java/com/zy/asrs/controller/MobileController.java | 88 +++++++++++++++++++++
src/main/java/com/zy/asrs/controller/WorkController.java | 2
src/main/resources/application.yml | 11 ++
7 files changed, 216 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 7fcf3f4..bab271d 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -14,10 +14,12 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.RCSParam;
import com.zy.asrs.entity.param.Review;
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.MobileServiceImpl;
+import com.zy.asrs.task.WorkMastScheduler;
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.LocDto;
@@ -26,13 +28,18 @@
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import com.zy.common.web.param.SearchLocParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@@ -42,7 +49,7 @@
@RestController
@RequestMapping("mobile")
public class MobileController extends BaseController {
-
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
@Autowired
private MobileService mobileService;
@Autowired
@@ -63,6 +70,12 @@
private BasDevpService basDevpService;
@Autowired
private PackService packService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Value("${rcs.address.url}")
+ private String url;
+ @Value("${rcs.address.attrcs}")
+ private String attrcs;
// 鍟嗗搧涓婃灦
@@ -443,5 +456,78 @@
/*...........................璧e窞鏂板..............浠ヤ笂.............璧e窞鏂板...........................*/
+ /**
+ * 鎵ц绉诲簱浠诲姟
+ * @param sourceStaNo
+ * @param staNo
+ * @return
+ */
+ @RequestMapping("/AGVMove")
+ public R AGVMove(@RequestParam(required = false) String sourceStaNo
+ ,@RequestParam(required = false) String staNo){
+ RCSParam rcsParam = new RCSParam();
+ LocalDateTime now = LocalDateTime.now();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss");
+ String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂�
+ //缃戠粶娴佹按鍙�
+ rcsParam.setReqId(now.toString());
+ //搴旂敤鏍囪瘑
+ rcsParam.setClientId("WMS");
+ //閫氱煡鏃堕棿
+ rcsParam.setReqTime(formattedDate);
+ RCSParam.DataBody dataBody=new RCSParam.DataBody();
+ //浠诲姟鍙�
+ dataBody.setId(formattedDate);
+
+ List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
+ RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
+ //鍙栬揣绫诲瀷
+ taskBody.setType("load");
+ taskBody.setStation(sourceStaNo);
+ taskBodyList.add(taskBody);
+
+ RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
+ //鏀捐揣绫诲瀷
+ taskBody1.setType("unload");
+ taskBody1.setStation(staNo);
+ taskBodyList.add(taskBody1);
+
+ dataBody.setTasks(taskBodyList);
+ rcsParam.setData(dataBody);
+ String response ="";
+ Boolean bool =false;
+
+ try {
+ log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
+ response = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(url)
+ .setPath(attrcs)
+ .setJson(JSON.toJSONString(rcsParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if(jsonObject.getBoolean("IsSuccess")){
+ bool = true;
+ }
+ } catch (Exception e) {
+ log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
+ } finally {
+ apiLogService.save("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍"
+ , url + attrcs
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(rcsParam)
+ , response
+ , bool
+ );
+ }
+ if(bool){
+ return R.ok();
+ }else {
+ return R.error("涓嬪彂浠诲姟澶辫触");
+ }
+
+ }
}
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index eae764b..3ba64de 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -158,4 +158,6 @@
return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo);
}
+
+
}
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index 21a45ed..a786586 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -70,7 +70,7 @@
@ApiModelProperty(value= "浜у湴")
private String origin;
- @ApiModelProperty(value= "鍘傚")
+ @ApiModelProperty(value= "鍞竴鐮�")
private String manu;
@ApiModelProperty(value= "鐢熶骇鏃ユ湡")
@@ -105,7 +105,7 @@
@TableField("supp_code")
private String suppCode;
- @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ")
+ @ApiModelProperty(value= "agv浠诲姟涓嬪彂 锛� 0锛氬緟涓嬪彂 1锛氫笅鍙戞垚鍔� 2锛氫换鍔″畬鎴�")
@TableField("be_batch")
private Integer beBatch;
diff --git a/src/main/java/com/zy/asrs/entity/param/RCSParam.java b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
new file mode 100644
index 0000000..0bf6f65
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/RCSParam.java
@@ -0,0 +1,51 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RCSParam {
+ /**
+ * 缃戠粶娴佹按鍙�
+ */
+ private String ReqId;
+
+ /**
+ * 搴旂敤琛ㄧず wms
+ */
+ private String ClientId;
+
+ /**
+ * 閫氱煡鏃堕棿
+ */
+ private String ReqTime;
+
+ /**
+ * 鏁版嵁
+ */
+ private DataBody Data;
+
+ @Data
+ public static class DataBody {
+ /**
+ * 浠诲姟鍙�
+ */
+ private String Id;
+
+ private List<TaskBody> tasks;
+ }
+ @Data
+ public static class TaskBody {
+ /**
+ * 浠诲姟绫诲瀷 锛�
+ * load 鍙栬揣 锛� unload 鏀捐揣 锛�
+ */
+ private String Type;
+
+ /**
+ * 鐩爣搴撲綅
+ */
+ private String Station;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 0723b34..314f1f1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -125,17 +125,6 @@
if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
throw new CoolException(BaseRes.PARAM);
}
- // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
- if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
- eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
- throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
- }
-
- int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
- int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
- if (countLoc > 0 || countWrk > 0) {
- throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
- }
Date now = new Date();
@@ -164,7 +153,7 @@
WaitPakin waitPakin = new WaitPakin();
waitPakin.sync(mat);
waitPakin.setBatch(detlDto.getBatch());
- waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setZpallet(""); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
waitPakin.setStatus("Y"); // 鐘舵��
@@ -172,6 +161,9 @@
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
+ waitPakin.setMemo(param.getBarcode());//AGV婧愮珯
+ waitPakin.setBeBatch(0);//AGV 浠诲姟绛夊緟涓嬪彂
+ waitPakin.setManu(now.getTime()+"");//鍞竴鐮�
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
new file mode 100644
index 0000000..f99e1e7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
@@ -0,0 +1,61 @@
+package com.zy.asrs.task.NewWay;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.R;
+import com.zy.asrs.controller.MobileController;
+import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.WaitPakinServiceImpl;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.WorkMastHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Component
+public class AutomaticallyAssignInTasksToRCSScheduler {
+
+ private static final Logger log = LoggerFactory.getLogger(AutomaticallyAssignInTasksToRCSScheduler.class);
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WorkMastHandler workMastHandler;
+ @Autowired
+ private WaitPakinServiceImpl waitPakinService;
+ @Autowired
+ private MobileController mobileController;
+
+ /**
+ * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){
+ //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
+ WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1));
+ if(waitPakin1!=null){
+ return;
+ }
+ //鎵惧埌姝e湪绛夊緟鐨勭粍鎵樻暟鎹�
+ //璇ユ暟鎹繘琛�0杞�1
+ WaitPakin waitPakin=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",0));
+ if(waitPakin!=null){
+ R r=mobileController.AGVMove(waitPakin.getMemo(),100+"");
+ if (r.get("code").equals(200)){
+ waitPakin.setBeBatch(1);//0杞�1
+ waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu()));
+ }
+ }
+
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 9486b42..bec9086 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs
+ url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs
# url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
username: sa
password: sa@123
@@ -100,4 +100,11 @@
# 鍚姩娴嬭瘯璇锋眰
startUpTestPACK: TestStart
#鏆傚仠娴嬭瘯
- suspendTestPACK: TestStop
\ No newline at end of file
+ suspendTestPACK: TestStop
+
+#RCS
+rcs:
+ address:
+ url: http://192.168.3.102:16001
+ #浠诲姟涓嬪彂鍦板潃
+ attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub.
\ No newline at end of file
--
Gitblit v1.9.1