From 288e45a990a5abf4ab50f820ed4e870e8314468e Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期六, 21 六月 2025 15:14:10 +0800
Subject: [PATCH] 完善
---
src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java | 14 +-
src/main/java/com/zy/asrs/entity/WaitPakin.java | 8
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 47 +++------
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 11 -
src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java | 56 +++++++++++
src/main/java/com/zy/asrs/entity/WrkMast.java | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 57 ++++------
src/main/java/com/zy/common/web/WcsController.java | 45 ++++----
src/main/resources/application.yml | 10 +
9 files changed, 139 insertions(+), 111 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index bab271d..7971216 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -464,51 +464,41 @@
*/
@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);
+ ,@RequestParam(required = false) String staNo
+ ,Integer priority){
+ String noww="aa" + new Date().getTime();
- List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
- RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
- //鍙栬揣绫诲瀷
- taskBody.setType("load");
- taskBody.setStation(sourceStaNo);
- taskBodyList.add(taskBody);
+ LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
+ rcsParam.put("task_id",noww);
+ rcsParam.put("start_location",sourceStaNo);
+ rcsParam.put("start_command",1);
+ rcsParam.put("target_location",staNo);
+ rcsParam.put("target_command",2);
+ rcsParam.put("priority",1);//浼樺厛绾ц秺灏忓厛鎵ц
+ rcsParam.put("robot_type",1);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L
+ rcsParam.put("MoverID","XCD");
- RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
- //鏀捐揣绫诲瀷
- taskBody1.setType("unload");
- taskBody1.setStation(staNo);
- taskBodyList.add(taskBody1);
-
- dataBody.setTasks(taskBodyList);
- rcsParam.setData(dataBody);
+ LinkedHashMap<String,Object> map=new LinkedHashMap<>();
+ map.put("data",rcsParam);
String response ="";
Boolean bool =false;
-
+ String msg = "";
try {
log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
response = new HttpHandler.Builder()
// .setHeaders(headParam)
.setUri(url)
.setPath(attrcs)
- .setJson(JSON.toJSONString(rcsParam))
+ .setJson(JSON.toJSONString(map))
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if(jsonObject.getBoolean("IsSuccess")){
+ JSONObject data = jsonObject.getJSONObject("data");
+ JSONObject errInfo = jsonObject.getJSONObject("err_info");
+ if(data.getInteger("result")==0){
bool = true;
+ }else{
+ msg=errInfo.getString("err_msg");
}
} catch (Exception e) {
log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
@@ -517,13 +507,14 @@
, url + attrcs
, null
, "127.0.0.1"
- , JSON.toJSONString(rcsParam)
+ , JSON.toJSONString(map)
, response
, bool
);
}
+
if(bool){
- return R.ok();
+ return R.ok(noww);
}else {
return R.error("涓嬪彂浠诲姟澶辫触");
}
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index a786586..d3e7ed6 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -17,6 +17,10 @@
private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value= "RCS浠诲姟")
+ @TableField("item_num")
+ private String itemNum;
+
@ApiModelProperty(value= "鎵樼洏鏉$爜")
private String zpallet;
@@ -76,10 +80,6 @@
@ApiModelProperty(value= "鐢熶骇鏃ユ湡")
@TableField("manu_date")
private String manuDate;
-
- @ApiModelProperty(value= "鍝侀」鏁�")
- @TableField("item_num")
- private String itemNum;
@ApiModelProperty(value= "瀹夊叏搴撳瓨閲�")
@TableField("safe_qty")
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index f33acd0..fec3510 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -159,7 +159,7 @@
@TableField("ctn_type")
private Integer ctnType;
- @ApiModelProperty(value= "")
+ @ApiModelProperty(value= "RCS宸ヤ綔鍙�")
private String packed;
@ApiModelProperty(value= "")
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index fdd857e..27bc55b 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -217,13 +217,6 @@
}
Integer outSta = staNo.getDevNo();
- //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负103
- if(locMast.getCrnNo()==2){
- outSta = 103;
- //鍑哄簱绔欑偣涓�205锛�
- }else if(staNo.getDevNo()==205){
-
- }
// 鑾峰彇璺緞
StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
@@ -238,7 +231,7 @@
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setStaNo(104); // 鐩爣绔�
wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -250,6 +243,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMemo(outSta+"");
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
}
@@ -809,6 +803,7 @@
if (!Cools.isEmpty(waitPakin)) {
waitPakin.setIoStatus("N");
waitPakin.setLocNo("");
+ waitPakin.setZpallet("");
boolean result = waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
.eq("zpallet", wrkMast.getBarcode()));
}
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
index f99e1e7..9d8031e 100644
--- a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
@@ -39,7 +39,7 @@
* 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
*/
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
+ private synchronized void execute(){
//鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1));
if(waitPakin1!=null){
@@ -49,13 +49,15 @@
//璇ユ暟鎹繘琛�0杞�1
WaitPakin waitPakin=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",0));
if(waitPakin!=null){
- R r=mobileController.AGVMove(waitPakin.getMemo(),100+"");
+ R r=mobileController.AGVMove(waitPakin.getMemo(),6001+"",1);
if (r.get("code").equals(200)){
- waitPakin.setBeBatch(1);//0杞�1
- waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu()));
+ R r1=mobileController.AGVMove(6001+"",waitPakin.getMemo(),2);
+ if (r1.get("code").equals(200)){
+ waitPakin.setItemNum(r.get("msg")+"");
+ waitPakin.setBeBatch(1);//0杞�1
+ waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu()));
+ }
}
}
-
}
-
}
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java
new file mode 100644
index 0000000..e670647
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java
@@ -0,0 +1,56 @@
+package com.zy.asrs.task.NewWay;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+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.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;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Component
+public class AutomaticallyAssignOutTasksToRCSScheduler {
+
+ private static final Logger log = LoggerFactory.getLogger(AutomaticallyAssignOutTasksToRCSScheduler.class);
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private MobileController mobileController;
+
+ /**
+ * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private synchronized void execute(){
+ //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 15));
+ if(!Cools.isEmpty(wrkMast)){
+ return;
+ }
+ //鎵惧埌鍑哄簱浠诲姟
+ //灏嗕换鍔℃。鐘舵�佷粠30杞�15
+ WrkMast wrkMast1 =wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
+ if(wrkMast1!=null){
+ R r=mobileController.AGVMove(wrkMast1.getMemo()+"","6002",3);
+ if (r.get("code").equals(200)){
+ R r1=mobileController.AGVMove("6002",wrkMast1.getMemo()+"",4);
+ if (r1.get("code").equals(200)){
+ wrkMast1.setWrkSts(15L);
+ wrkMast1.setPacked(r.get("msg")+"");//RCS 宸ヤ綔鍙�
+ wrkMastService.updateById(wrkMast1);
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 425a04e..06f2801 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -14,6 +14,8 @@
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -58,6 +60,8 @@
private PackQualifiedService packQualifiedService;
@Autowired
private ReportQueryMapper reportQueryMapper;
+ @Autowired
+ private ConfigService configService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -504,37 +508,14 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}else{
- //鍑哄簱鏍囪
- packQualifiedService.insertPackQualified(false,new Date(),wrkDetls101.get(0).getMatnr());
- //2.鍑哄簱瀹屾垚涓婃姤
- CombParam combParam = new CombParam();
- combParam.setPackNo(wrkDetls101.get(0).getMatnr());
- combParam.setLocNo(wrkMast.getLocNo());
- combParam.setBarcode(wrkMast.getBarcode());
- //鐩爣绔�206鍑哄簱
- if(wrkMast.getStaNo()==206){
- combParam.setPackSts(1);//OK
- combParam.setStepSts(7);//娴嬭瘯搴撳嚭搴撳畬鎴�
- }else if(wrkMast.getStaNo()==204){//NG 鍑哄簱
- //NG鍑哄簱淇敼娴嬭瘯妗g殑鐘舵�佷负5.宸茬Щ搴�
- TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>()
- .eq("user_id",wrkMast.getBarcode())
- .eq("barcode",wrkDetls101.get(0).getMatnr()));
- combParam.setPackSts(2);//NG
- combParam.setStepSts(8);//NG鍑哄簱瀹屾垚
- testMast.setStatus(5);
- if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
- .eq("user_id",wrkMast.getBarcode())
- .eq("barcode",wrkDetls101.get(0).getMatnr()))){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼娴嬭瘯琛ㄧ姸鎬佷负5澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
- }
- }else if(wrkMast.getStaNo()==103){//鐩爣绔�103鍑哄簱
- combParam.setPackSts(1);//OK
- combParam.setStepSts(6);//闈欑疆搴撳嚭搴撳畬鎴�
+ Config config=configService.selectOne(new EntityWrapper<Config>().eq("code","OutTask"));
+ if(config.getValue().equals("Y")){
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(30L);//绛夊緟涓婃姤
+ }else{
+ wrkMast.setWrkSts(15L);
}
- combParam.setRequestTime(DateUtils.convert(now));
-// new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam);
+
}
}
break;
@@ -551,14 +532,16 @@
// exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }else{
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
}
}
break;
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(15L);
+
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 3d85ce9..d1c0b90 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -76,22 +76,33 @@
return R.error("鏉$爜涓嶈兘涓虹┖");
}
waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
- if (Cools.isEmpty(waitPakins) || waitPakins.size() !=1) {
+ List<WaitPakin> beBatch = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("be_batch", 1));
+ if(beBatch.size() > 1){
+ return R.error("缁勬墭妗d腑鏈夊鏉℃惉杩愪换鍔�");
+ }else if(Cools.isEmpty(beBatch)){
+ return R.error("缁勬墭妗d腑娌℃湁鎼繍浠诲姟");
+ }
+ if (Cools.isEmpty(waitPakins)) {
WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
- if (wrkMast != null || waitPakins.size() !=1) {
+ if (wrkMast != null) {
return R.parse("600-閲嶅缁勬墭");
}
- return R.parse(CodeRes.NO_COMB_700);
- }
- int countWait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode())
- .eq("io_status", "Y"));
- 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 || countWait > 0) {
- if (!Cools.isEmpty(waitPakins.get(0).getDeadWarn()) && waitPakins.get(0).getDeadWarn()!=0){
- return R.error(CodeRes.EXIST_500);
+ for (WaitPakin waitPakin : beBatch) {
+ waitPakin.setZpallet(param.getBarcode());
+ waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("be_batch",1));
+ }
+ }else {
+ int countWait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode())
+ .eq("io_status", "Y"));
+ 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 || countWait > 0) {
+ if (!Cools.isEmpty(waitPakins.get(0).getDeadWarn()) && waitPakins.get(0).getDeadWarn()!=0){
+ return R.error(CodeRes.EXIST_500);
+ }
}
}
+
}
if (Cools.isEmpty(param.getLocType1())){
param.setLocType1((short)1);
@@ -228,18 +239,6 @@
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)){
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
- }else{
- if (locMast.getRow1()<2){
- //1.鎵爜涓婃姤
- CombParam combParam = new CombParam();
- combParam.setPackNo(waitPakins.get(0).getMatnr());
- combParam.setBarcode(wrkMast.getBarcode());
- combParam.setLocNo(wrkMast.getLocNo());
- combParam.setPackSts(0);
- combParam.setStepSts(1);
- combParam.setRequestTime(DateUtils.convert(now));
-// new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam);
- }
}
} else {
throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bec9086..f63be60 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 8081
+ port: 8083
servlet:
context-path: /@pom.build.finalName@
# tomcat:
@@ -12,7 +12,7 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs
+ url: jdbc:sqlserver://178.18.1.200:1433;databasename=jxtlfasrs
# url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
username: sa
password: sa@123
@@ -60,6 +60,8 @@
doubleLocs: 3
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 3
+ workIssued : 1
+ url: 1
# MES绯荤粺
mes:
@@ -105,6 +107,6 @@
#RCS
rcs:
address:
- url: http://192.168.3.102:16001
+ url: http://178.18.1.220:50001
#浠诲姟涓嬪彂鍦板潃
- attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub.
\ No newline at end of file
+ attrcs: rbrainrobot/create_task
\ No newline at end of file
--
Gitblit v1.9.1