From 29d3f24dc43df41103bc5f483bfc439494a80971 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 17 十二月 2025 09:30:32 +0800
Subject: [PATCH] 对接mes 对接华晓agv 对接海康agv 初始化开发
---
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java | 124 ++
src/main/java/com/zy/asrs/entity/mes/TransInOutStationAllow.java | 16
src/main/java/com/zy/asrs/entity/mes/TransTask.java | 13
src/main/java/com/zy/asrs/entity/Task.java | 19
src/main/resources/mapper/LocDetlMapper.xml | 60
src/main/java/com/zy/asrs/entity/OrderPakout.java | 27
src/main/java/com/zy/asrs/entity/mes/MesOutApply.java | 87 +
src/main/java/com/zy/common/web/WcsController.java | 69 +
pom.xml | 2
src/main/java/com/zy/asrs/entity/mes/MesCallOutApply.java | 42
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java | 752 +++++++++-------
src/main/resources/mapper/WrkDetlMapper.xml | 4
src/main/java/com/zy/common/web/AuthController.java | 163 +-
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 13
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 508 +++++++---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 69 +
src/main/resources/application-dev.yml | 23
src/main/java/com/zy/asrs/service/RcsService.java | 4
src/main/java/com/zy/asrs/controller/MesController.java | 20
src/main/webapp/static/js/common.js | 2
src/main/java/com/zy/asrs/controller/OutController.java | 71 +
src/main/java/com/zy/asrs/entity/LocMast.java | 18
src/main/java/com/zy/common/service/CommonService.java | 18
src/main/java/com/zy/asrs/service/MobileService.java | 2
src/main/java/com/zy/asrs/entity/WrkDetlLog.java | 12
src/main/java/com/zy/asrs/service/WorkService.java | 4
src/main/java/com/zy/asrs/entity/OrderDetlPakout.java | 12
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 60 +
src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java | 126 +-
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 6
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 71 +
src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java | 66 +
src/main/resources/mapper/TaskMapper.xml | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 22
src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java | 10
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 41
src/main/java/com/zy/common/model/LocTypeDto.java | 6
src/main/java/com/zy/asrs/entity/rcs/RcsReporterTask.java | 3
src/main/java/com/zy/asrs/task/BareBoardScheduler.java | 28
src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java | 11
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 9
src/main/java/com/zy/asrs/controller/RcsController.java | 2
src/main/java/com/zy/asrs/task/WorkLogScheduler.java | 18
src/main/java/com/zy/asrs/entity/mes/TransParent.java | 8
src/main/java/com/zy/asrs/service/TaskService.java | 1
src/main/webapp/views/login.html | 13
46 files changed, 1,779 insertions(+), 878 deletions(-)
diff --git a/pom.xml b/pom.xml
index cecba08..ef5393c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,7 +124,7 @@
</dependencies>
<build>
- <finalName>jgwms</finalName>
+ <finalName>ljqwms</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/MesController.java b/src/main/java/com/zy/asrs/controller/MesController.java
index 92c13b4..7b4343c 100644
--- a/src/main/java/com/zy/asrs/controller/MesController.java
+++ b/src/main/java/com/zy/asrs/controller/MesController.java
@@ -41,16 +41,16 @@
return mesReturn;
}
- // 鍑哄簱鐢宠
- @PostMapping("/api/mes/outBoundOrder")
- public MesReturn outBoundOrder(@RequestBody MesOutApply param){
+// // 鍑哄簱鐢宠
+// @PostMapping("/api/mes/outBoundOrder")
+// public MesReturn outBoundOrder(@RequestBody MesOutApply param){
+//
+// MesReturn mesReturn = new MesReturn();
+// mesReturn.setSuccess(mesService.outBoundOrder(param) == 1 ? "1" : "2");
+// return mesReturn;
+// }
- MesReturn mesReturn = new MesReturn();
- mesReturn.setSuccess(mesService.outBoundOrder(param) == 1 ? "1" : "2");
- return mesReturn;
- }
-
- // 鍑哄簱鐢宠锛堝彨鏂欙級锛岃閰嶅簱銆佹粦鍧楀簱
+// // 鍑哄簱鍏ュ簱璁㈠崟鐢宠
@PostMapping("/api/mes/callOutBoundOrder")
public MesReturn callOutBoundOrder(@RequestBody MesCallOutApply param){
@@ -71,14 +71,12 @@
// 鍏ョ珯鍏佽
@PostMapping("/api/mes/allowInStation")
public MesReturn allowInStation(@RequestBody TransInOutStationAllow param){
-
return mesService.allowInStation(param);
}
// 绂荤珯鍏佽锛岃閰嶅簱銆佹粦鍧楀簱
@PostMapping("/api/mes/allowOutStation")
public MesReturn allowOutStation(@RequestBody TransInOutStationAllow param){
-
return mesService.allowOutStation(param);
}
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 7e048b2..81cd8f6 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -15,6 +16,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.model.WrkDto;
+import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -525,14 +527,26 @@
return R.ok("鍑哄簱鎴愬姛");
}
+ /**
+ * 琛ョ┖鏉�
+ *
+ * @param locNo 鐩爣绔欑偣
+ * @param size 鎵樼洏澶у皬 1锛氬皬鎵樼洏 2锛氬ぇ鎵樼洏
+ * @return
+ */
// pda鍛煎彨绌烘枡妗嗗嚭搴�
@PostMapping("/callEmptyBinOutBound")
@ManagerAuth(memo = "pda鍛煎彨绌烘枡妗嗗嚭搴�")
- public synchronized R callEmptyBinOutBound(@RequestBody JSONObject param) {
- if(!param.containsKey("staNo") || !param.containsKey("locType")){ // 1.绐勶紝2.瀹�
- return R.parse(BaseRes.PARAM);
+ public synchronized R callEmptyBinOutBound(@RequestParam(required = false) String locNo
+ , @RequestParam(required = false) String size) {
+ if (Cools.isEmpty(locNo) || Cools.isEmpty(size)) {
+ return R.error("绔欑偣鎴栬�呭ぇ灏忎笉鑳戒负绌�");
}
- return mobileService.callEmptyBinOutBound(param.getString("staNo"),param.getString("locType"),getUserId());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("memo", locNo));
+ if (wrkMast != null) {
+ return R.error("璇ョ珯鐐�="+locNo+"宸茬粡鏈夌┖鏉垮嚭搴撲换鍔★紝涓轰簡涓嶅牭濉炲爢鍨涙満鎺ラ┏绔欑偣锛岀姝笅鍙戝涓┖鏉垮嚭搴撲换鍔�");
+ }
+ return mobileService.callEmptyBinOutBound(locNo,size,getUserId());
}
}
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 60b2dec..e222a56 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -6,6 +6,7 @@
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
@@ -126,8 +127,9 @@
if (issued <= 0.0D) {
continue;
}
+
List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist,orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
+ orderDetl.getBrand(),orderPakOut.getDocType()==11?null:orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
@@ -212,10 +214,75 @@
taskDtos.add(taskDto);
}
}
+ OrderPakout orderPakout = orderPakOutService.selectByNo(locDtos.get(0).getOrderNo());
+
+ //閰嶇洏鍑哄簱鍗曠敤锛� i=5鏃舵垨鑰呭嚭搴撳埌鏈�鍚庢椂涓嬪彂绌烘澘鍑哄簱浠诲姟
+ int i = 0;
+ //闇�瑕佸嚭搴撶殑鎵樼洏鏁伴噺
+ int size = taskDtos.size();
+ //浼樺厛绾�
+ int ioPri = 50;
+ //宸蹭笅绌烘澘鍑哄簱浠诲姟鏁伴噺
+ int j=1;
// -----------------------------------------------------------------------------------------------
for (TaskDto taskDto : taskDtos) {
BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
- workService.stockOut(staNo, taskDto, getUserId());
+ workService.stockOut(staNo, taskDto, getUserId(),ioPri);
+ ioPri--;
+ i++;
+ //閰嶇洏鍑哄簱鍗曚娇鐢紝涓嬪彂闇�瑕佸嚭鐨勭┖鏉夸换鍔�
+ if (orderPakout.getDocType() == 11) {
+ if (size<5&&i==size){
+ for (;j<=orderPakout.getPayType();j++){
+ String bar="";
+ if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
+ bar = "A01";
+ }
+ LocMast locMast = new LocMast();
+ if(Cools.isEmpty(bar)){
+ locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D"));
+ }else {
+ locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").like("barcode", bar));
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ return R.error("搴撳瓨娌℃湁绌烘澘");
+ }
+ String locNo = locMast.getLocNo();
+ EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+ emptyPlateOutParam.setOutSite(303);
+ emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
+ WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
+ ioPri--;
+
+ }
+ }else if(i == 5){
+ String bar="";
+ if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
+ bar = "A01";
+ }
+ LocMast locMast = null;
+ if(Cools.isEmpty(bar)){
+ locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D"));
+ }else {
+ locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "D").like("barcode", bar));
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ return R.error("搴撳瓨娌℃湁绌烘澘");
+ }
+ String locNo = locMast.getLocNo();
+ EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+ emptyPlateOutParam.setOutSite(303);
+ emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
+ WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
+ ioPri--;
+ }
+ }
}
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/controller/RcsController.java b/src/main/java/com/zy/asrs/controller/RcsController.java
index 0f0d58e..3b0f903 100644
--- a/src/main/java/com/zy/asrs/controller/RcsController.java
+++ b/src/main/java/com/zy/asrs/controller/RcsController.java
@@ -36,7 +36,7 @@
// 鍗庢檽AGV鐢宠杩涘叆浜х嚎锛堝厜骞曪級
@PostMapping("/api/robot/apply/inLine")
- public JSONObject hxApplyInLine(@RequestBody TransParent param){
+ public RcsReturn hxApplyInLine(@RequestBody TransParent param){
return rcsService.hxApplyInLine(param);
}
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index 7eaa33e..c9c6ba9 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -96,15 +96,29 @@
@TableField("loc_type")
private String locType;
+ /**
+ * 1.浣庡簱浣�
+ * 2.楂樺簱浣�
+ *
+ */
@ApiModelProperty(value= "楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿")
@TableField("loc_type1")
private Short locType1;
- @ApiModelProperty(value= "瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿")
+ /**
+ * 1.灏忔墭鐩�
+ * 2.澶ф墭鐩�
+ */
+ @ApiModelProperty(value= "")
@TableField("loc_type2")
private Short locType2;
- @ApiModelProperty(value= "杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿")
+ /**
+ * 婊戝潡鍜岃繛鎺ュ櫒搴撳尯鍒�
+ * 1.婊戝潡搴�
+ * 2.閾炬帴鍣ㄥ簱
+ */
+ @ApiModelProperty(value= "")
@TableField("loc_type3")
private Short locType3;
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
index 3af2a93..d7258be 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
@@ -93,6 +93,12 @@
private String batch;
/**
+ * 鏂欐灦鍙�
+ */
+ @ApiModelProperty(value= "鏂欐灦鍙�")
+ private String sku;
+
+ /**
* 瑙勬牸
*/
@ApiModelProperty(value= "瑙勬牸")
@@ -128,11 +134,7 @@
@ApiModelProperty(value= "鍗曚环")
private Double price;
- /**
- * sku
- */
- @ApiModelProperty(value= "sku")
- private String sku;
+
/**
* 鍗曚綅閲�
diff --git a/src/main/java/com/zy/asrs/entity/OrderPakout.java b/src/main/java/com/zy/asrs/entity/OrderPakout.java
index aaa08a9..08ffcc2 100644
--- a/src/main/java/com/zy/asrs/entity/OrderPakout.java
+++ b/src/main/java/com/zy/asrs/entity/OrderPakout.java
@@ -60,6 +60,20 @@
private Long docType;
/**
+ * 绌烘澘鍑哄簱鏁伴噺
+ */
+ @ApiModelProperty(value= "绌烘澘鍑哄簱鏁伴噺")
+ @TableField("pay_type")
+ private Integer payType;
+
+ /**
+ * 鍖哄煙鍦板潃
+ */
+ @ApiModelProperty(value= "鍖哄煙鍦板潃")
+ @TableField("ship_code")
+ private String shipCode;
+
+ /**
* 椤圭洰缂栧彿
*/
@ApiModelProperty(value= "椤圭洰缂栧彿")
@@ -150,12 +164,6 @@
@TableField("act_fee")
private Double actFee;
- /**
- * 浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处
- */
- @ApiModelProperty(value= "浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 ")
- @TableField("pay_type")
- private Integer payType;
/**
* 涓氬姟鍛�
@@ -206,13 +214,6 @@
@ApiModelProperty(value= "鐗╂祦鍚嶇О")
@TableField("ship_name")
private String shipName;
-
- /**
- * 鐗╂祦鍗曞彿
- */
- @ApiModelProperty(value= "鐗╂祦鍗曞彿")
- @TableField("ship_code")
- private String shipCode;
/**
* 璁㈠崟鐘舵��
diff --git a/src/main/java/com/zy/asrs/entity/Task.java b/src/main/java/com/zy/asrs/entity/Task.java
index 17b831f..aff7888 100644
--- a/src/main/java/com/zy/asrs/entity/Task.java
+++ b/src/main/java/com/zy/asrs/entity/Task.java
@@ -66,6 +66,9 @@
/**
* 鍏ュ嚭搴撶被鍨�
+ * 3.绔欏埌绔�
+ * 4.绔欏埌鍖哄煙
+ * 5.鍖哄煙鍒扮珯
*/
@ApiModelProperty(value= "鍏ュ嚭搴撶被鍨�")
@TableField("io_type")
@@ -125,6 +128,13 @@
@TableField("loc_sts")
private String locSts;
+ @ApiModelProperty(value= "1.娴峰悍AGV 2.鍗庢檽AGV 榛樿鏄�1.娴峰悍")
+ @TableField("plt_type")
+ private Integer pltType=1;
+
+ @ApiModelProperty(value= "鏂欐灦鍙�")
+ private String packed;
+
/**
* 鎷f枡
*/
@@ -139,7 +149,7 @@
@TableField("online_yn")
private String onlineYn;
- @ApiModelProperty(value= "")
+ @ApiModelProperty(value= "鏄惁浠诲姟鎶ラ敊")
@TableField("upd_mk")
private String updMk;
@@ -149,10 +159,6 @@
@ApiModelProperty(value= "閫�鍑�")
@TableField("exit_mk")
private String exitMk;
-
- @ApiModelProperty(value= "")
- @TableField("plt_type")
- private Integer pltType;
/**
* 绌烘澘
@@ -171,9 +177,6 @@
@ApiModelProperty(value= "")
@TableField("ctn_type")
private Integer ctnType;
-
- @ApiModelProperty(value= "")
- private String packed;
@ApiModelProperty(value= "")
@TableField("ove_mk")
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
index 6fa1590..12fada6 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -72,6 +72,12 @@
private String orderNo;
/**
+ * 鍙栨秷浠诲姟鏍囪 1
+ */
+ @ApiModelProperty(value= "鍙栨秷浠诲姟鏍囪")
+ private Integer danger;
+
+ /**
* 瑙勬牸
*/
@ApiModelProperty(value= "瑙勬牸")
@@ -229,12 +235,6 @@
*/
@ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ")
private Integer inspect;
-
- /**
- * 鍗遍櫓鍝� 1: 鏄� 0: 鍚�
- */
- @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ")
- private Integer danger;
/**
* 淇敼浜哄憳
diff --git a/src/main/java/com/zy/asrs/entity/mes/MesCallOutApply.java b/src/main/java/com/zy/asrs/entity/mes/MesCallOutApply.java
index 1d141cf..dd78348 100644
--- a/src/main/java/com/zy/asrs/entity/mes/MesCallOutApply.java
+++ b/src/main/java/com/zy/asrs/entity/mes/MesCallOutApply.java
@@ -12,23 +12,23 @@
@Data
public class MesCallOutApply extends MesParent {
-// // 浠诲姟缂栧彿
-// private String taskno;
-// // 浠诲姟鍚嶇О
-// private String taskname;
-// // 鐢熶骇璁㈠崟鍙�
-// @JsonProperty("OrderNo")
-// private String OrderNo;
+ // 浠诲姟缂栧彿
+ private String taskno;
+ // 浠诲姟鍚嶇О
+ private String taskname;
+ // 鐢熶骇璁㈠崟鍙�
+ @JsonProperty("OrderNo")
+ private String OrderNo;
// 杩愯緭绫诲瀷锛屽瓧鍏稿��(wms_tranfs_type) 06 瑁呴厤棰嗘枡锛�01锛氱┖鎵�
@JsonProperty("TransType")
@JSONField(name = "TransType")
private String TransType;
-// // 鐢熶骇绾跨紪鐮�
-// @JsonProperty("ProductLineId")
-// private String ProductLineId;
-// // 宸ヤ綅缂栫爜
-// @JsonProperty("StationId")
-// private String StationId;
+ // 鐢熶骇绾跨紪鐮�
+ @JsonProperty("ProductLineId")
+ private String ProductLineId;
+ // 宸ヤ綅缂栫爜
+ @JsonProperty("StationId")
+ private String StationId;
// 褰撳墠宸ュ簭
@JsonProperty("CurProcess")
@JSONField(name = "CurProcess")
@@ -37,6 +37,11 @@
@JsonProperty("Itemdata")
@JSONField(name = "Itemdata")
private List<MesOutApplyItem> Itemdata;
+
+ // 绌烘墭鐩樻暟閲�
+ @JsonProperty("EmptyCount")
+ @JSONField(name = "EmptyCount")
+ private List<MesOutApplyItem> EmptyCount;
// 锛坰fc_shop_route_consume锛塵es涓厤鐩樿〃鍚�
@Data
@@ -56,6 +61,17 @@
@JsonProperty("ItemBarcode")
@JSONField(name = "ItemBarcode")
private String ItemBarcode;
+
+ // 鐗╂枡浜岀淮鐮�
+ @JsonProperty("stationAGV")
+ @JSONField(name = "stationAGV")
+ private String stationAGV;
+
+ //鎵樼洏鐮�
+ private String wmsBarcode;
+
+ //鏂欐灦鍙�
+ private String rackNumber;
}
}
diff --git a/src/main/java/com/zy/asrs/entity/mes/MesOutApply.java b/src/main/java/com/zy/asrs/entity/mes/MesOutApply.java
index 2c79729..230e26a 100644
--- a/src/main/java/com/zy/asrs/entity/mes/MesOutApply.java
+++ b/src/main/java/com/zy/asrs/entity/mes/MesOutApply.java
@@ -12,37 +12,66 @@
@Data
public class MesOutApply extends MesParent {
-// // 浠诲姟缂栧彿
-// private String taskno;
-// // 浠诲姟鍚嶇О
-// private String taskname;
-// // 鐢熶骇璁㈠崟鍙�
-// @JsonProperty("OrderNo")
-// @JSONField(name = "OrderNo")
-// private String OrderNo;
- // 杩愯緭绫诲瀷锛屽瓧鍏稿��(wms_tranfs_type) 01锛氱珛搴撳嚭绌烘墭锛�02 绔嬪簱鍏ョ┖鎵橈紱03 绔嬪簱鍑烘瘺鍧紱 04 绔嬪簱鍥炴瘺鍧紱 05 绔嬪簱鍑烘垚鍝侊紱06 绔嬪簱鍏ユ垚鍝侊紱
+ // 浠诲姟缂栧彿
+ private String taskno;
+ // 浠诲姟鍚嶇О
+ private String taskname;
+ // 鐢熶骇璁㈠崟鍙�
+ @JsonProperty("OrderNo")
+ private String OrderNo;
+ // 杩愯緭绫诲瀷锛屽瓧鍏稿��(wms_tranfs_type) 06 瑁呴厤棰嗘枡锛�01锛氱┖鎵�
@JsonProperty("TransType")
@JSONField(name = "TransType")
private String TransType;
- // 闆朵欢缂栫爜
- @JsonProperty("Itemno")
- @JSONField(name = "Itemno")
- private String Itemno;
- // 鏁伴噺
- @JsonProperty("Qty")
- @JSONField(name = "Qty")
- private Integer Qty;
-// // 鐢熶骇绾跨紪鐮�
-// @JsonProperty("ProductLineId")
-// @JSONField(name = "ProductLineId")
-// private String ProductLineId;
-// // 宸ヤ綅缂栫爜
-// @JsonProperty("StationId")
-// @JSONField(name = "StationId")
-// private String StationId;
- // 鐗╂枡浜岀淮鐮�
- @JsonProperty("ItemBarcode")
- @JSONField(name = "ItemBarcode")
- private List<String> ItemBarcode;
+ // 鐢熶骇绾跨紪鐮�
+ @JsonProperty("ProductLineId")
+ private String ProductLineId;
+ // 宸ヤ綅缂栫爜
+ @JsonProperty("StationId")
+ private String StationId;
+ // 褰撳墠宸ュ簭
+ @JsonProperty("CurProcess")
+ @JSONField(name = "CurProcess")
+ private String CurProcess;
+ // 閰嶇洏淇℃伅
+ @JsonProperty("Itemdata")
+ @JSONField(name = "Itemdata")
+ private List<MesOutApply.MesOutApplyItem> Itemdata;
+
+ // 绌烘墭鐩樻暟閲�
+ @JsonProperty("EmptyCount")
+ @JSONField(name = "EmptyCount")
+ private Integer EmptyCount;
+
+ // 锛坰fc_shop_route_consume锛塵es涓厤鐩樿〃鍚�
+ @Data
+ public static class MesOutApplyItem {
+
+ // 閰嶇洏鍙�
+ private String trayid;
+ // 闆朵欢缂栫爜
+ @JsonProperty("Itemno")
+ @JSONField(name = "Itemno")
+ private String Itemno;
+ // 鏁伴噺
+ @JsonProperty("Qty")
+ @JSONField(name = "Qty")
+ private Integer Qty;
+ // 鐗╂枡浜岀淮鐮�
+ @JsonProperty("ItemBarcode")
+ @JSONField(name = "ItemBarcode")
+ private String ItemBarcode;
+
+ // 鐗╂枡浜岀淮鐮�
+ @JsonProperty("stationAGV")
+ @JSONField(name = "stationAGV")
+ private String stationAGV;
+
+ //鎵樼洏鐮�
+ private String wmsBarcode;
+
+ //鏂欐灦鍙�
+ private String rackNumber;
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/mes/TransInOutStationAllow.java b/src/main/java/com/zy/asrs/entity/mes/TransInOutStationAllow.java
index 73565ca..928d915 100644
--- a/src/main/java/com/zy/asrs/entity/mes/TransInOutStationAllow.java
+++ b/src/main/java/com/zy/asrs/entity/mes/TransInOutStationAllow.java
@@ -7,6 +7,22 @@
@EqualsAndHashCode(callSuper = true)
@Data
public class TransInOutStationAllow extends TransParent {
+ //浠诲姟缂栧彿
+ private String taskno;
+ //浠诲姟鍚嶇О
+ private String taskname;
+ //AGV缂栧彿
+ private String AgvCode;
+ //杩愯緭绫诲瀷
+ private String TransType;
+ //鐢熶骇绾跨紪鍙�
+ private String ProductLineId;
+ //宸ヤ綅缂栧彿
+ private String StationId;
+
+ //浠诲姟绫诲瀷
+
+ private String taskType;
// 鏄惁鍏佽锛孻 鍏佽锛汵锛屼笉鍏佽
private String status;
diff --git a/src/main/java/com/zy/asrs/entity/mes/TransParent.java b/src/main/java/com/zy/asrs/entity/mes/TransParent.java
index fc44cf7..3f94b61 100644
--- a/src/main/java/com/zy/asrs/entity/mes/TransParent.java
+++ b/src/main/java/com/zy/asrs/entity/mes/TransParent.java
@@ -28,4 +28,12 @@
@JsonProperty("StationId")
@JSONField(name = "StationId")
private String StationId;
+ // 浠诲姟绫诲瀷
+ @JsonProperty("TaskType")
+ @JSONField(name = "TaskType")
+ private String TaskType;
+
+ //璇锋眰绫诲瀷
+ private String method;
+
}
diff --git a/src/main/java/com/zy/asrs/entity/mes/TransTask.java b/src/main/java/com/zy/asrs/entity/mes/TransTask.java
index 02204e0..14c53c6 100644
--- a/src/main/java/com/zy/asrs/entity/mes/TransTask.java
+++ b/src/main/java/com/zy/asrs/entity/mes/TransTask.java
@@ -58,10 +58,17 @@
@JsonProperty("OperateType")
@JSONField(name = "OperateType")
private Integer OperateType;
+
// 鎸囧畾AGV鍘傚锛�1 娴峰悍锛�2 鍗庢檽锛涘崕鏅撲笌娴峰悍AGV杩愯浇鑳藉姏涓嶅悓锛孧ES鍙寜闇�姹傛寚瀹�
- @JsonProperty("AgvFactory")
- @JSONField(name = "AgvFactory")
- private Integer AgvFactory;
+// @JsonProperty("AgvFactory")
+// @JSONField(name = "AgvFactory")
+ private Integer agvFactory;
+
+ //鎵樼洏鐮�
+ private String barcode;
+
+ //鏂欐灦鍙�
+ private String rackNumber;
// 鎵樼洏ID
@JsonProperty("TuoPanId")
diff --git a/src/main/java/com/zy/asrs/entity/rcs/RcsReporterTask.java b/src/main/java/com/zy/asrs/entity/rcs/RcsReporterTask.java
index 3fc7170..57a3144 100644
--- a/src/main/java/com/zy/asrs/entity/rcs/RcsReporterTask.java
+++ b/src/main/java/com/zy/asrs/entity/rcs/RcsReporterTask.java
@@ -15,4 +15,7 @@
private Integer currentSeq;
// 璇︾粏淇℃伅
private JSONObject extra;
+
+ //鍗庢檽AGV浠诲姟鐘舵�佸強璇锋眰
+ private String method;
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 389b487..6c5a8f5 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -6,6 +6,7 @@
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.*;
+import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
@@ -107,4 +108,5 @@
* @param userId 鐢ㄦ埛id
*/
R callEmptyBinOutBound(String staNo, String locType, Long userId);
+
}
diff --git a/src/main/java/com/zy/asrs/service/RcsService.java b/src/main/java/com/zy/asrs/service/RcsService.java
index 8fddd1c..29123b8 100644
--- a/src/main/java/com/zy/asrs/service/RcsService.java
+++ b/src/main/java/com/zy/asrs/service/RcsService.java
@@ -29,7 +29,7 @@
* @param rcsFactory
* @return
*/
- int continueTask(RcsTaskContinue rcsTaskContinue, int rcsFactory);
+ int continueTask(Object rcsTaskContinue, int rcsFactory);
/**
* 2.1.4浠诲姟鍙栨秷鎺ュ彛
@@ -62,5 +62,5 @@
* @param apply
* @return
*/
- JSONObject hxApplyInLine(TransParent apply);
+ RcsReturn hxApplyInLine(TransParent apply);
}
diff --git a/src/main/java/com/zy/asrs/service/TaskService.java b/src/main/java/com/zy/asrs/service/TaskService.java
index e510b48..9d80237 100644
--- a/src/main/java/com/zy/asrs/service/TaskService.java
+++ b/src/main/java/com/zy/asrs/service/TaskService.java
@@ -14,4 +14,5 @@
void pickWrkMast(String workNo, Long userId);
List<Task> selectToBeCompleteData();
+
}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 8d34c6e..835461b4 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -40,7 +40,7 @@
*/
void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
- void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
+ void stockOut(BasDevp staNo, TaskDto taskDto, Long userId,Integer ioPri);
/**
* 绌烘澘鍏ュ簱
@@ -58,7 +58,7 @@
* @param param
* @return
*/
- public WrkMast emptyPlateOut(EmptyPlateOutParam param);
+ public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri);
/**
* 鐩樼偣鍑哄簱
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index de80492..9e42536 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -22,6 +22,7 @@
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
+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;
@@ -90,6 +91,10 @@
@Resource
private MobileService mobileService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private OrderService orderService;
// region MES鎺ュ彛
@@ -124,7 +129,8 @@
} else {
throw new CoolException("鍚屾鐗╂枡淇℃伅锛岀敓鎴愬叆搴撳崟澶辫触");
}
-
+ mesReturn.setSuccess("1");
+ mesReturn.setMessage("");
return mesReturn;
}
@@ -189,20 +195,6 @@
if (mat == null) {
if (!matService.insert(newMat))
return -2;
- } else {
- JSONObject dbMemo = JSONObject.parseObject(mat.getMemo());
- dbMemo.remove("OrderNo");
- dbMemo.remove("qty");
- dbMemo.remove("ItemBarcode");
- JSONObject newMemo = JSONObject.parseObject(newMat.getMemo());
- newMemo.remove("OrderNo");
- newMemo.remove("qty");
- dbMemo.remove("ItemBarcode");
- if (!dbMemo.equals(newMemo)) {
- newMat.setId(mat.getId());
- if (!matService.updateById(newMat))
- return -2;
- }
}
} else {
return -1;
@@ -214,13 +206,12 @@
/**
* 鐗╂枡鍚屾鍏ュ簱鍗曪紝鎸塐rderNo鐢熸垚澶氫釜璁㈠崟
*
- *
* @param matRecvForm
* @return
*/
- public int inBoundOrder_List(MesMatRecvForm matRecvForm){
+ public int inBoundOrder_List(MesMatRecvForm matRecvForm) {
- long docType = 4; // docType鏍规嵁搴撶被鍨嬬‘瀹�
+ long docType = 1; // docType鏍规嵁搴撶被鍨嬬‘瀹� 鏉ユ枡鐢宠鍗�
long settle = 1;
Date now = new Date();
@@ -232,8 +223,12 @@
// 鏍¢獙璁㈠崟鏄惁閲嶅
OrderPakin order = orderPakinService.selectByNo(entry.getKey());
- if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
- return -1;
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+ if (!Cools.isEmpty(order)) {
+ if (order.getSettle() > 1L) {
+ throw new CoolException(entry.getKey() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ }
+ orderPakinService.remove(order.getId());
}
// 鐢熸垚璁㈠崟
@@ -243,52 +238,56 @@
newMemo.put("operuser", matRecvForm.getOperuser());
newMemo.put("itemdata", list);
+
+
+ // 鐢熸垚璁㈠崟
OrderPakin orderPakin = new OrderPakin();
orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
orderPakin.setOrderNo(entry.getKey());
orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
orderPakin.setDocType(docType);
- orderPakin.setSettle(settle);
+ orderPakin.setSettle(1L);
orderPakin.setStatus(1);
orderPakin.setCreateBy(defaultUserId);
orderPakin.setCreateTime(now);
orderPakin.setUpdateBy(defaultUserId);
orderPakin.setUpdateTime(now);
- orderPakin.setMemo(newMemo.toJSONString()); //涓洪鏂欏叆搴撳畬鎴愬弽棣堜繚瀛� JSONObject.toJSONString(matRecvForm)
+ orderPakin.setMemo(JSONObject.toJSONString(newMemo)); //涓哄嚭搴撳畬鎴愬弽棣堜繚瀛�
orderPakin.setPakinPakoutStatus(1);
- if (!orderPakinService.insert(orderPakin)) {
- log.error("MES淇濆瓨鍏ュ簱璁㈠崟涓绘。澶辫触");
- throw new CoolException("淇濆瓨鍏ュ簱璁㈠崟涓绘。澶辫触");
- }
+ orderPakinService.insert(orderPakin);
+ if (list != null && !list.isEmpty()) {
+ for (MesMatInfo mesMatInfo : list) {
- // 鐢熸垚鏄庣粏
- for (MesMatInfo mesMat : list) {
- Mat mat = matService.selectByMatnr(mesMat.getItemNo());
- OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
- orderDetlPakin.setOrderId(orderPakin.getId());
- orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
- orderDetlPakin.setAnfme(Double.valueOf(mesMat.getQty()));
- orderDetlPakin.setQty(0.0);
- orderDetlPakin.setMatnr(mat.getMatnr());
- orderDetlPakin.setMaktx(mat.getMaktx());
- orderDetlPakin.setSpecs(mat.getSpecs());
- orderDetlPakin.setModel(mat.getModel());
- orderDetlPakin.setStandby1(JSONObject.toJSONString(mesMat.getItemBarcode())); // 闆朵欢浜岀淮鐮�
- orderDetlPakin.setStandby2("1"); //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
- orderDetlPakin.setCreateBy(defaultUserId);
- orderDetlPakin.setCreateTime(now);
- orderDetlPakin.setUpdateBy(defaultUserId);
- orderDetlPakin.setUpdateTime(now);
- orderDetlPakin.setStatus(1);
- orderDetlPakin.setPakinPakoutStatus(1);
- if (!orderDetlPakinService.insert(orderDetlPakin)) {
- log.error("MES淇濆瓨鍏ュ簱璁㈠崟鏄庣粏妗eけ璐�1");
- throw new CoolException("淇濆瓨鍏ュ簱璁㈠崟鏄庣粏妗eけ璐�1");
+ // 鐢熸垚鏄庣粏
+ Mat mat = matService.selectByMatnr(mesMatInfo.getItemNo());
+ if(Cools.isEmpty(mat)){
+ log.error("璇ョ墿鏂欑紪鍙风珛搴撴病鏈�="+mesMatInfo.getItemNo());
+ continue;
+ }
+ OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
+ orderDetlPakin.setOrderId(orderPakin.getId());
+ orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
+ orderDetlPakin.setAnfme(Double.valueOf(mesMatInfo.getQty()));
+ orderDetlPakin.setQty(0.0);
+ orderDetlPakin.setMatnr(mat.getMatnr());
+ orderDetlPakin.setMaktx(mat.getMaktx());
+ orderDetlPakin.setSpecs(mat.getSpecs());
+ orderDetlPakin.setModel(mat.getModel());
+// orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode());
+// orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid()); //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+ orderDetlPakin.setStandby2("0"); //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
+ orderDetlPakin.setCreateBy(defaultUserId);
+ orderDetlPakin.setCreateTime(now);
+ orderDetlPakin.setUpdateBy(defaultUserId);
+ orderDetlPakin.setUpdateTime(now);
+ orderDetlPakin.setStatus(1);
+ orderDetlPakin.setPakinPakoutStatus(1);
+ orderDetlPakinService.insert(orderDetlPakin);
}
}
}
-
return 1;
+
}
/**
@@ -348,9 +347,9 @@
String url = MES_URL + "MaterialReceiptAndReturn";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesRecvFeedback));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -367,137 +366,137 @@
* @param mesOutApply
* @return 1 鎴愬姛锛�-1 璁㈠崟閲嶅锛�
*/
- public int outBoundOrder(MesOutApply mesOutApply){
+ public int outBoundOrder(MesOutApply mesOutApply) {
- // 绌烘墭鍑哄簱
- if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) {
- // 鐢熸垚绌烘墭鍑哄簱浠诲姟
- mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1,"1",defaultUserId);
-
- try {
- if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
- TransTask transTask = new TransTask();
- transTask.setTaskno(mesOutApply.getTaskno());
- transTask.setTaskname(mesOutApply.getTaskname());
- transTask.setOrderNo(mesOutApply.getOrderNo());
- transTask.setTransType(mesOutApply.getTransType());
- transTask.setCurStationId(WMS_TRANS_START_STATION_1);
- transTask.setNextProcess(mesOutApply.getProductLineId());
- transTask.setNextStationId(mesOutApply.getStationId());
- transTask.setItemno(WMS_ZPALLET_ID); // 鍥哄畾涓虹┖鎵樼殑缂栫爜
- transTask.setQty(1); // 绌烘墭鍙嚭1涓�
- transTask.setProductLineId(mesOutApply.getProductLineId());
- transTask.setOperateType(1);
- transTask.setAgvFactory(1);
- JSONObject sendAgvTask = submitTask(transTask);
- if (!"1".equals(sendAgvTask.getString("Success"))) {
- log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
- }
- }
- } catch (Exception e) {
- log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
- }
-
- return 1;
- } else { // 姣涘澂锛堢墿鏂欙級鍑哄簱
- // docType鏍规嵁搴撶被鍨嬬‘瀹�
- long docType = 7;
- long settle = 1;
-
- // 鏍¢獙璁㈠崟鏄惁閲嶅
- OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo());
- if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
- log.error("鍑哄簱璁㈠崟鍙烽噸澶嶏細{}",mesOutApply.getOrderNo());
- return -1;
- }
-
- // 鐢熸垚璁㈠崟
- Date now = new Date();
- OrderPakout orderPakout = new OrderPakout();
- orderPakout.setUuid( String.valueOf(snowflakeIdWorker.nextId()));
- orderPakout.setOrderNo(mesOutApply.getOrderNo());
- orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
- orderPakout.setDocType(docType);
- orderPakout.setSettle(settle);
- orderPakout.setStatus(1);
- orderPakout.setCreateBy(defaultUserId);
- orderPakout.setCreateTime(now);
- orderPakout.setUpdateBy(defaultUserId);
- orderPakout.setUpdateTime(now);
- orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
- orderPakout.setPakinPakoutStatus(2);
- if (!orderPakoutService.insert(orderPakout)) {
- log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
- throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
- }
-
- // 鐢熸垚鏄庣粏
- Mat mat = matService.selectByMatnr(mesOutApply.getItemno());
- OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
- orderDetlPakout.setOrderId(orderPakout.getId());
- orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
- orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty()));
- orderDetlPakout.setQty(0.0);
- orderDetlPakout.setMatnr(mat.getMatnr());
- orderDetlPakout.setMaktx(mat.getMaktx());
- orderDetlPakout.setSpecs(mat.getSpecs());
- orderDetlPakout.setModel(mat.getModel());
- orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode()));
- orderDetlPakout.setCreateBy(defaultUserId);
- orderDetlPakout.setCreateTime(now);
- orderDetlPakout.setUpdateBy(defaultUserId);
- orderDetlPakout.setUpdateTime(now);
- orderDetlPakout.setStatus(1);
- orderDetlPakout.setPakinPakoutStatus(2);
- if (!orderDetlPakoutService.insert(orderDetlPakout)) {
- log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
- throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
- }
-
- // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
- // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV杩愰�佸埌绔欑偣锛岀洰鍓嶅鎵樼敓鎴愬涓��
- try {
- if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
- // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
- String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
- EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
- matItemBarcodeEntityWrapper.in("item_barcode", barCode);
- List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
- if (barcodes != null) {
- Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
- for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
- List<MatItemBarcode> list = entry.getValue();
- List<String> codes = new ArrayList<>();
- for (MatItemBarcode zapllet : list) {
- codes.add(zapllet.getItemBarcode());
- }
-
- TransTask transTask = new TransTask();
- transTask.setTaskno(mesOutApply.getTaskno());
- transTask.setTaskname(mesOutApply.getTaskname());
- transTask.setOrderNo(mesOutApply.getOrderNo());
- transTask.setTransType(mesOutApply.getTransType());
- transTask.setCurStationId(WMS_TRANS_START_STATION_3);
- transTask.setNextProcess(mesOutApply.getProductLineId());
- transTask.setNextStationId(mesOutApply.getStationId());
- transTask.setItemno(mesOutApply.getItemno());
- transTask.setQty(list.size());
- transTask.setProductLineId(mesOutApply.getProductLineId());
- transTask.setItemBarcode(codes);
- transTask.setTuoPanId(entry.getKey());
- transTask.setOperateType(1);
- transTask.setAgvFactory(1);
- JSONObject sendAgvTask = submitTask(transTask);
- if (!"1".equals(sendAgvTask.getString("Success"))) {
- log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
- }
- }
- }
- }
- } catch (Exception e) {
- log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
- }
- }
+// // 绌烘墭鍑哄簱
+// if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) {
+// // 鐢熸垚绌烘墭鍑哄簱浠诲姟
+// mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1, "1", defaultUserId);
+//
+// try {
+// if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
+// TransTask transTask = new TransTask();
+// transTask.setTaskno(mesOutApply.getTaskno());
+// transTask.setTaskname(mesOutApply.getTaskname());
+// transTask.setOrderNo(mesOutApply.getOrderNo());
+// transTask.setTransType(mesOutApply.getTransType());
+// transTask.setCurStationId(WMS_TRANS_START_STATION_1);
+// transTask.setNextProcess(mesOutApply.getProductLineId());
+// transTask.setNextStationId(mesOutApply.getStationId());
+// transTask.setItemno(WMS_ZPALLET_ID); // 鍥哄畾涓虹┖鎵樼殑缂栫爜
+// transTask.setQty(1); // 绌烘墭鍙嚭1涓�
+// transTask.setProductLineId(mesOutApply.getProductLineId());
+// transTask.setOperateType(1);
+// transTask.setAgvFactory(1);
+// JSONObject sendAgvTask = submitTask(transTask);
+// if (!"1".equals(sendAgvTask.getString("Success"))) {
+// log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
+// }
+// }
+// } catch (Exception e) {
+// log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
+// }
+//
+// return 1;
+// } else { // 姣涘澂锛堢墿鏂欙級鍑哄簱
+// // docType鏍规嵁搴撶被鍨嬬‘瀹�
+// long docType = 7;
+// long settle = 1;
+//
+// // 鏍¢獙璁㈠崟鏄惁閲嶅
+// OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo());
+// if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
+// log.error("鍑哄簱璁㈠崟鍙烽噸澶嶏細{}", mesOutApply.getOrderNo());
+// return -1;
+// }
+//
+// // 鐢熸垚璁㈠崟
+// Date now = new Date();
+// OrderPakout orderPakout = new OrderPakout();
+// orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+// orderPakout.setOrderNo(mesOutApply.getOrderNo());
+// orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
+// orderPakout.setDocType(docType);
+// orderPakout.setSettle(settle);
+// orderPakout.setStatus(1);
+// orderPakout.setCreateBy(defaultUserId);
+// orderPakout.setCreateTime(now);
+// orderPakout.setUpdateBy(defaultUserId);
+// orderPakout.setUpdateTime(now);
+// orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
+// orderPakout.setPakinPakoutStatus(2);
+// if (!orderPakoutService.insert(orderPakout)) {
+// log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+// throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+// }
+//
+// // 鐢熸垚鏄庣粏
+// Mat mat = matService.selectByMatnr(mesOutApply.getItemno());
+// OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
+// orderDetlPakout.setOrderId(orderPakout.getId());
+// orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
+// orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty()));
+// orderDetlPakout.setQty(0.0);
+// orderDetlPakout.setMatnr(mat.getMatnr());
+// orderDetlPakout.setMaktx(mat.getMaktx());
+// orderDetlPakout.setSpecs(mat.getSpecs());
+// orderDetlPakout.setModel(mat.getModel());
+// orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode()));
+// orderDetlPakout.setCreateBy(defaultUserId);
+// orderDetlPakout.setCreateTime(now);
+// orderDetlPakout.setUpdateBy(defaultUserId);
+// orderDetlPakout.setUpdateTime(now);
+// orderDetlPakout.setStatus(1);
+// orderDetlPakout.setPakinPakoutStatus(2);
+// if (!orderDetlPakoutService.insert(orderDetlPakout)) {
+// log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+// throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+// }
+//
+// // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
+// // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV杩愰�佸埌绔欑偣锛岀洰鍓嶅鎵樼敓鎴愬涓��
+// try {
+// if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
+// // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
+// String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
+// EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
+// matItemBarcodeEntityWrapper.in("item_barcode", barCode);
+// List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
+// if (barcodes != null) {
+// Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
+// for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
+// List<MatItemBarcode> list = entry.getValue();
+// List<String> codes = new ArrayList<>();
+// for (MatItemBarcode zapllet : list) {
+// codes.add(zapllet.getItemBarcode());
+// }
+//
+// TransTask transTask = new TransTask();
+// transTask.setTaskno(mesOutApply.getTaskno());
+// transTask.setTaskname(mesOutApply.getTaskname());
+// transTask.setOrderNo(mesOutApply.getOrderNo());
+// transTask.setTransType(mesOutApply.getTransType());
+// transTask.setCurStationId(WMS_TRANS_START_STATION_3);
+// transTask.setNextProcess(mesOutApply.getProductLineId());
+// transTask.setNextStationId(mesOutApply.getStationId());
+// transTask.setItemno(mesOutApply.getItemno());
+// transTask.setQty(list.size());
+// transTask.setProductLineId(mesOutApply.getProductLineId());
+// transTask.setItemBarcode(codes);
+// transTask.setTuoPanId(entry.getKey());
+// transTask.setOperateType(1);
+// transTask.setAgvFactory(1);
+// JSONObject sendAgvTask = submitTask(transTask);
+// if (!"1".equals(sendAgvTask.getString("Success"))) {
+// log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
+// }
+// }
+// }
+// }
+// } catch (Exception e) {
+// log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
+// }
+// }
return 1;
}
@@ -509,33 +508,33 @@
* @param mesInApply
*/
@Transactional
- public int inBoundOrder(MesInApply mesInApply){
+ public int inBoundOrder(MesInApply mesInApply) {
// 绌烘墭鍥炲簱
if (StringUtils.isEmpty(mesInApply.getOrderNo()) && StringUtils.isEmpty(mesInApply.getItemno())) {
- if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) {
- TransTask transTask = new TransTask();
- transTask.setTaskno(mesInApply.getTaskno());
- transTask.setTaskname(mesInApply.getTaskname());
- transTask.setOrderNo(mesInApply.getOrderNo());
- transTask.setTransType(mesInApply.getTransType());
- transTask.setCurProcess(mesInApply.getProductLineId());
- transTask.setCurStationId(mesInApply.getStationID());
- transTask.setNextStationId(WMS_TRANS_START_STATION_2);
- transTask.setItemno(WMS_ZPALLET_ID); // 鍥哄畾涓虹┖鎵樼殑缂栫爜
- transTask.setQty(1); // 绌烘墭鍙洖1涓�
- transTask.setProductLineId(mesInApply.getProductLineId());
- transTask.setOperateType(1);
- transTask.setAgvFactory(1);
- JSONObject sendAgvTask = submitTask(transTask);
- if (!"1".equals(sendAgvTask.getString("Success"))) {
- log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触,{}", JSONObject.toJSONString(transTask));
- return 2;
- }
- } else {
- log.error("鏃犱换鍔″彿锛歿}锛屾垨鏃犵墿鏂欑紪鐮�:{}",mesInApply.getTaskno(),mesInApply.getItemno() );
+ if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) {
+ TransTask transTask = new TransTask();
+ transTask.setTaskno(mesInApply.getTaskno());
+ transTask.setTaskname(mesInApply.getTaskname());
+ transTask.setOrderNo(mesInApply.getOrderNo());
+ transTask.setTransType(mesInApply.getTransType());
+ transTask.setCurProcess(mesInApply.getProductLineId());
+ transTask.setCurStationId(mesInApply.getStationID());
+ transTask.setNextStationId(WMS_TRANS_START_STATION_2);
+ transTask.setItemno(WMS_ZPALLET_ID); // 鍥哄畾涓虹┖鎵樼殑缂栫爜
+ transTask.setQty(1); // 绌烘墭鍙洖1涓�
+ transTask.setProductLineId(mesInApply.getProductLineId());
+ transTask.setOperateType(1);
+ transTask.setAgvFactory(1);
+ JSONObject sendAgvTask = submitTask(transTask);
+ if (!"1".equals(sendAgvTask.getString("Success"))) {
+ log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触,{}", JSONObject.toJSONString(transTask));
return 2;
}
+ } else {
+ log.error("鏃犱换鍔″彿锛歿}锛屾垨鏃犵墿鏂欑紪鐮�:{}", mesInApply.getTaskno(), mesInApply.getItemno());
+ return 2;
+ }
return 1;
} else { // 姣涘澂銆佹垚鍝佸洖搴�
@@ -716,9 +715,9 @@
String url = MES_URL + "issueComplete";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
success = 1;
}
}
@@ -759,9 +758,9 @@
String url = MES_URL + "loadComplete";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
success = 1;
}
}
@@ -819,9 +818,9 @@
String url = MES_URL + "loadComplete";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
success++;
}
}
@@ -885,9 +884,9 @@
String url = MES_URL + "issueComplete";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
success++;
}
}
@@ -934,67 +933,144 @@
* @param mesCallOutApply
* @return
*/
- public int callOutBoundOrder(MesCallOutApply mesCallOutApply){
-
- // docType鏍规嵁搴撶被鍨嬬‘瀹�
- long docType = 7;
- long settle = 1;
-
- // 鏍¢獙璁㈠崟鏄惁閲嶅
- OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo());
- if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
- return -1;
+ public int callOutBoundOrder(MesCallOutApply mesCallOutApply) {
+ DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", mesCallOutApply.getTransType()));
+ if (docType == null) {
+ return 0;
}
+ //鐢熸垚鍑哄簱鍗�
+ if (docType.getPakout() == 1) {
+ long settle = 1;
- // 鐢熸垚璁㈠崟
- Date now = new Date();
- OrderPakout orderPakout = new OrderPakout();
- orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
- orderPakout.setOrderNo(mesCallOutApply.getOrderNo());
- orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
- orderPakout.setDocType(docType);
- orderPakout.setSettle(settle);
- orderPakout.setStatus(1);
- orderPakout.setCreateBy(defaultUserId);
- orderPakout.setCreateTime(now);
- orderPakout.setUpdateBy(defaultUserId);
- orderPakout.setUpdateTime(now);
- orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
- orderPakout.setPakinPakoutStatus(2);
- if (!orderPakoutService.insert(orderPakout)) {
- log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
- throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
- }
+ // 鏍¢獙璁㈠崟鏄惁閲嶅
+ OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo());
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+ if (!Cools.isEmpty(order)) {
+ if (order.getSettle() > 1L) {
+ throw new CoolException(mesCallOutApply.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ }
+ orderPakoutService.remove(order.getId());
+ }
- // 鐢熸垚鏄庣粏
- if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
- for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) {
- Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
- OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
- orderDetlPakout.setOrderId(orderPakout.getId());
- orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
- orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
- orderDetlPakout.setQty(0.0);
- orderDetlPakout.setMatnr(mat.getMatnr());
- orderDetlPakout.setMaktx(mat.getMaktx());
- orderDetlPakout.setSpecs(mat.getSpecs());
- orderDetlPakout.setModel(mat.getModel());
- orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode());
- orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid()); //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
- orderDetlPakout.setCreateBy(defaultUserId);
- orderDetlPakout.setCreateTime(now);
- orderDetlPakout.setUpdateBy(defaultUserId);
- orderDetlPakout.setUpdateTime(now);
- orderDetlPakout.setStatus(1);
- orderDetlPakout.setPakinPakoutStatus(2);
- if (!orderDetlPakoutService.insert(orderDetlPakout)) {
- log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
- throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+ // 鐢熸垚璁㈠崟
+ Date now = new Date();
+ OrderPakout orderPakout = new OrderPakout();
+ orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ orderPakout.setOrderNo(mesCallOutApply.getOrderNo());
+ orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
+ orderPakout.setDocType(docType.getDocId());
+ orderPakout.setSettle(settle);
+ orderPakout.setStatus(1);
+ orderPakout.setCreateBy(defaultUserId);
+ orderPakout.setCreateTime(now);
+ orderPakout.setUpdateBy(defaultUserId);
+ orderPakout.setUpdateTime(now);
+ orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
+ orderPakout.setPakinPakoutStatus(2);
+ if (!orderPakoutService.insert(orderPakout)) {
+ log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
+ throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
+ }
+ Set<String> set = new HashSet<>();
+ // 鐢熸垚鏄庣粏
+ if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
+ for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) {
+
+ set.add(mesOutApplyItem.getTrayid());
+ Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
+ OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
+ orderDetlPakout.setOrderId(orderPakout.getId());
+ orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
+ orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
+ orderDetlPakout.setQty(0.0);
+ orderDetlPakout.setMatnr(mat.getMatnr());
+ orderDetlPakout.setMaktx(mat.getMaktx());
+ orderDetlPakout.setSpecs(mat.getSpecs());
+ orderDetlPakout.setModel(mat.getModel());
+ orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode());
+ orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid()); //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+ orderDetlPakout.setCreateBy(defaultUserId);
+ orderDetlPakout.setCreateTime(now);
+ orderDetlPakout.setUpdateBy(defaultUserId);
+ orderDetlPakout.setUpdateTime(now);
+ orderDetlPakout.setStatus(1);
+ orderDetlPakout.setPakinPakoutStatus(2);
+ if (!orderDetlPakoutService.insert(orderDetlPakout)) {
+ log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+ throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+ }
}
}
+
+ //鏈夊灏戠涓嶅悓鐨勯厤鐩樺彿 鍙湁閰嶇洏鍑哄簱鍗曢渶瑕佺煡閬�
+ if (mesCallOutApply.getTransType().equals("閰嶇洏鍑哄簱鍗�")){
+ orderPakout.setPayType(set.size());
+ String shipCode =mesCallOutApply.getItemdata().get(0).getTrayid().split("-")[2];
+ orderPakout.setShipCode(shipCode);//鍖哄煙 鏄惁鏄壒娈婃墭鐩�
+ orderPakoutService.updateById(orderPakout);
+ }
+
+ return 1;
+ } else {
+ // 鏍¢獙璁㈠崟鏄惁閲嶅
+ OrderPakin order = orderPakinService.selectByNo(mesCallOutApply.getOrderNo());
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+ if (!Cools.isEmpty(order)) {
+ if (order.getSettle() > 1L) {
+ throw new CoolException(mesCallOutApply.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ }
+ orderPakinService.remove(order.getId());
+ }
+
+ // 鐢熸垚璁㈠崟
+ Date now = new Date();
+ OrderPakin orderPakin = new OrderPakin();
+ orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ orderPakin.setOrderNo(mesCallOutApply.getOrderNo());
+ orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
+ orderPakin.setDocType(docType.getDocId());
+ orderPakin.setSettle(1L);
+ orderPakin.setStatus(1);
+ orderPakin.setCreateBy(defaultUserId);
+ orderPakin.setCreateTime(now);
+ orderPakin.setUpdateBy(defaultUserId);
+ orderPakin.setUpdateTime(now);
+ orderPakin.setMemo(JSONObject.toJSONString(mesCallOutApply)); //涓哄嚭搴撳畬鎴愬弽棣堜繚瀛�
+ orderPakin.setPakinPakoutStatus(1);
+ orderPakinService.insert(orderPakin);
+ if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
+ for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()){
+ // 鐢熸垚鏄庣粏
+ Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
+ if(Cools.isEmpty(mat)){
+ log.error("璇ョ墿鏂欑紪鍙风珛搴撴病鏈�="+mesOutApplyItem.getItemno());
+ continue;
+ }
+ OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
+ orderDetlPakin.setOrderId(orderPakin.getId());
+ orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
+ orderDetlPakin.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
+ orderDetlPakin.setQty(0.0);
+ orderDetlPakin.setMatnr(mat.getMatnr());
+ orderDetlPakin.setMaktx(mat.getMaktx());
+ orderDetlPakin.setSpecs(mat.getSpecs());
+ orderDetlPakin.setModel(mat.getModel());
+ orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode());
+ orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid()); //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+ orderDetlPakin.setStandby2("0"); //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
+ orderDetlPakin.setCreateBy(defaultUserId);
+ orderDetlPakin.setCreateTime(now);
+ orderDetlPakin.setUpdateBy(defaultUserId);
+ orderDetlPakin.setUpdateTime(now);
+ orderDetlPakin.setStatus(1);
+ orderDetlPakin.setPakinPakoutStatus(1);
+ orderDetlPakinService.insert(orderDetlPakin);
+ }
+
+ }
+ return 1;
}
- return 1;
}
// endregion
@@ -1046,18 +1122,18 @@
rcsTaskSubmit.setTargetRoute(targetRouteList);
// 杞彂缁欐捣搴锋垨鍗庢檽RCS
-// int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
- int success = 1;
+ int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
if (success == 1) {
int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
Date now = new Date();
Task task = new Task();
task.setWrkNo(workNo);
- task.setTaskType("AGV");
- task.setWrkSts(301L);
- task.setIoType(3);
+ task.setTaskType("ZX-AGV");
+ task.setWrkSts(302L);//302.AGV浠诲姟鎵ц涓�
+ task.setIoType(3);//3.绔欏埌绔�
task.setIoPri(10.00);
task.setWrkDate(now);
+ task.setBarcode(transTask.getBarcode());
task.setSourceStaNo(transTask.getCurStationId());
task.setStaNo(transTask.getNextStationId());
task.setBarcode(transTask.getTuoPanId());
@@ -1067,25 +1143,27 @@
task.setAppeTime(now);
task.setTaskNo(transTask.getTaskno());
task.setMemo(JSONObject.toJSONString(transTask));
+ task.setPltType(transTask.getAgvFactory());//鍗庢檽AGV
+ task.setPacked(transTask.getRackNumber());//鏂欐灦鍙�
taskService.insert(task);
- Mat mat = matService.selectByMatnr(transTask.getItemno());
- TaskDetl taskDetl = new TaskDetl();
- taskDetl.setWrkNo(task.getWrkNo());
- taskDetl.setIoTime(task.getIoTime());
- taskDetl.setMatnr(transTask.getItemno());
- taskDetl.setAnfme(0.0);
- taskDetl.setStandby1(String.valueOf(transTask.getQty()));
- taskDetl.setMaktx(mat.getMaktx());
- taskDetl.setSpecs(mat.getSpecs());
- taskDetl.setOrderNo(transTask.getOrderNo());
- taskDetl.setZpallet(transTask.getTuoPanId());
- taskDetl.setMemo(JSONObject.toJSONString(transTask.getItemBarcode()));
- taskDetl.setModiUser(defaultUserId);
- taskDetl.setModiTime(now);
- taskDetl.setAppeUser(defaultUserId);
- taskDetl.setAppeTime(now);
- taskDetlService.insert(taskDetl);
+// Mat mat = matService.selectByMatnr(transTask.getItemno());
+// TaskDetl taskDetl = new TaskDetl();
+// taskDetl.setWrkNo(task.getWrkNo());
+// taskDetl.setIoTime(task.getIoTime());
+// taskDetl.setMatnr(transTask.getItemno());
+// taskDetl.setAnfme(0.0);
+// taskDetl.setStandby1(String.valueOf(transTask.getQty()));
+// taskDetl.setMaktx(mat.getMaktx());
+// taskDetl.setSpecs(mat.getSpecs());
+// taskDetl.setOrderNo(transTask.getOrderNo());
+// taskDetl.setZpallet(transTask.getTuoPanId());
+// taskDetl.setMemo(JSONObject.toJSONString(transTask.getItemBarcode()));
+// taskDetl.setModiUser(defaultUserId);
+// taskDetl.setModiTime(now);
+// taskDetl.setAppeUser(defaultUserId);
+// taskDetl.setAppeTime(now);
+// taskDetlService.insert(taskDetl);
result.put("Success", "1");
result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
} else {
@@ -1125,9 +1203,9 @@
String url = MES_URL + "api/task/reporter";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(transTaskFeedback));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -1146,9 +1224,9 @@
String url = MES_URL + "api/apply/inLine";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
JSONObject jsonObject = JSONObject.parseObject(response);
- if("1".equals(jsonObject.getString("Success"))) {
+ if ("1".equals(jsonObject.getString("Success"))) {
return jsonObject.getJSONObject("Data").getString("status");
}
}
@@ -1163,12 +1241,12 @@
* @return
*/
public int applyInStation(TransParent apply) {
- String path = ("LL").equals(apply.getProductLineId()) ? "AGVTransportPalletNotice" : "AprsAGVTransportPalletNotice";
+ String path = "AGVTransportPalletNotice";
String url = MES_URL + path;
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -1185,19 +1263,34 @@
public MesReturn allowInStation(TransInOutStationAllow allow) {
MesReturn mesReturn = new MesReturn();
- mesReturn.setSuccess("1");
+ mesReturn.setSuccess("2");
if ("Y".equals(allow.getStatus())) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(allow.getTaskno());
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno()));
+ if (Cools.isEmpty(task)) {
+ mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + allow.getTaskno() + "鐨凙GV绉诲姩浠诲姟");
+ } else {
+ //鏌ョ湅鐢宠绔欑偣鐨勬槸娴峰悍杩樻槸鍗庢檽
+ //娴峰悍
+ if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(allow.getTaskno());
// rcsTaskContinue.setTriggerType("ROBOT");
// rcsTaskContinue.setTriggerCode(allow.getAgvCode());
- int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode()));
- mesReturn.setSuccess(success == 1 ? "1" : "2");
- mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ int success = rcsService.continueTask(rcsTaskContinue, 1);
+ mesReturn.setSuccess(success == 1 ? "1" : "2");
+ mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ } else {
+ allow.setMethod("APPLY_IN_STATION");
+ int success = rcsService.continueTask(allow, 2);
+ mesReturn.setSuccess(success == 1 ? "1" : "2");
+ mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ }
+
+ }
}
return mesReturn;
@@ -1219,9 +1312,9 @@
String url = MES_URL + "AGVArrivalCompleted";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(arrivalStation));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -1237,11 +1330,11 @@
*/
public int applyOutStation(TransParent apply) {
- String url = MES_URL + "api/apply/outStation";
+ String url = MES_URL + "AGVDepartureRequest";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -1258,17 +1351,34 @@
public MesReturn allowOutStation(TransInOutStationAllow allow) {
MesReturn mesReturn = new MesReturn();
- mesReturn.setSuccess("1");
+ mesReturn.setSuccess("2");
if ("Y".equals(allow.getStatus())) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(allow.getTaskno());
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno()));
+ if (Cools.isEmpty(task)) {
+ mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + allow.getTaskno() + "鐨凙GV绉诲姩浠诲姟");
+ } else {
+ //鏌ョ湅鐢宠绔欑偣鐨勬槸娴峰悍杩樻槸鍗庢檽
+ //娴峰悍
+ if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(allow.getTaskno());
+// rcsTaskContinue.setTriggerType("ROBOT");
+// rcsTaskContinue.setTriggerCode(allow.getAgvCode());
- int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode()));
- mesReturn.setSuccess(success == 1 ? "1" : "2");
- mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ int success = rcsService.continueTask(rcsTaskContinue, 1);
+ mesReturn.setSuccess(success == 1 ? "1" : "2");
+ mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ } else {
+ allow.setMethod("APPLY_OFF_STATION");
+ int success = rcsService.continueTask(allow, 2);
+ mesReturn.setSuccess(success == 1 ? "1" : "2");
+ mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+ }
+
+ }
}
return mesReturn;
@@ -1284,9 +1394,9 @@
String url = MES_URL + "AGVDepartureCompleted";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
- if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
- if("1".equals(mesReturn.getSuccess())) {
+ if ("1".equals(mesReturn.getSuccess())) {
return 1;
}
}
@@ -1295,13 +1405,13 @@
}
@Override
- public MesReturn queryInventory(String itemno,String orderNo) {
+ public MesReturn queryInventory(String itemno, String orderNo) {
MesReturn mesReturn = new MesReturn();
mesReturn.setSuccess("1");
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no",orderNo));
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no", orderNo));
int count = 0;
- for(LocDetl locDetl:locDetls) {
+ for (LocDetl locDetl : locDetls) {
count += locDetl.getAnfme();
}
mesReturn.setMessage(String.valueOf(count));
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 c3021b9..b48d5d9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -622,6 +622,15 @@
waitPakin.setModiTime(now);
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }else {
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", param.getBarcode())
+ .eq("io_type",110));
+ if (wrkMast != null) {
+ wrkMast.setWrkSts(15L);//绌烘澘鍑哄簱浠诲姟杞巻鍙叉。
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ }
}
}
// 鍏宠仈缁勬墭
@@ -720,8 +729,46 @@
Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, orderNo);
OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId);
});
- }
+ if(!Cools.isEmpty(param.getLocNo())){
+ //鐢熸垚AGV鎼繍浠诲姟
+ //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+ // 淇濆瓨宸ヤ綔妗�
+ Task task = new Task();
+ Date date = new Date();
+ String s = "";
+ if (param.getBarcode().charAt(0) == '3'){
+ s = "307";
+ }else if (param.getBarcode().charAt(0) == '4'){
+ s = "401";
+ }else if (param.getBarcode().charAt(0) == '5'){
+ s = "402";
+ }
+ String TaskNo = param.getBarcode()+"-"+date.getTime();
+ task.setWrkNo(Integer.getInteger(param.getBarcode()))
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(s)
+ .setSourceStaNo(param.getLocNo())//绌烘枡鏋剁紦瀛樺尯E1
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode(param.getBarcode())// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (!taskService.insert(task)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ }
+ }
}
// 鍟嗗搧涓婃灦
@@ -1279,14 +1326,25 @@
if(locMast == null) {
return R.parse("璇ョ被鍨嬶細" + locType +"绌烘墭鐩樹笉瀛樺湪");
}
+ String sta="";
+ //婊戝潡搴�
+ if(locMast.getLocType3()==1){
+ if(locMast.getLocType2()==1){
+
+
+ }
+ }else if(locMast.getLocType3()==2){
+ sta="307";
+ }
+
// 鑾峰彇璺緞
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
- .eq("stn_no", staNo)
+ .eq("stn_no", sta)
.eq("crn_no", locMast.getCrnNo());
StaDesc staDesc = staDescService.selectOne(wrapper);
if (staDesc == null) {
- R.parse("鍑哄簱璺緞涓嶅瓨鍦�,绔欑偣锛�" + staNo);
+ R.parse("鍑哄簱璺緞涓嶅瓨鍦�,绔欑偣锛�" + sta);
}
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -1297,8 +1355,8 @@
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
wrkMast.setIoPri(10D);
- wrkMast.setSourceStaNo(staDesc.getCrnStn$()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo$()); // 鐩爣绔�
+ wrkMast.setSourceStaNo(sta); // 婧愮珯
+ wrkMast.setStaNo(sta); // 鐩爣绔�
wrkMast.setCrnNo(staDesc.getCrnNo());
wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -1310,6 +1368,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMemo(staNo);
wrkMastService.insert(wrkMast);
// 鏇存柊搴撲綅鐘舵��
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java
index 2437d39..a69e0a4 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java
@@ -36,6 +36,8 @@
private DocTypeService docTypeService;
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderDetlPakinServiceImpl orderDetlPakinService;
@Override
public OrderPakin selectByNo(String orderNo) {
@@ -71,7 +73,7 @@
if (Cools.isEmpty(order) || order.getSettle() >= 4L) {
return;
}
- List<OrderDetlPakin> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()));
+ List<OrderDetlPakin> orderDetls = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()));
boolean complete = true;
for (OrderDetlPakin orderDetl : orderDetls) {
if (orderDetl.getAnfme() > orderDetl.getQty()) {
@@ -83,7 +85,7 @@
// 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
DocType docType = docTypeService.selectById(order.getDocType());
if (null != docType && docType.getPakout() == 1) {
- if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()))) {
+ if (!orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()))) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
@@ -98,7 +100,7 @@
orderDetl.setCreateBy(order.getCreateBy());
orderDetl.setUpdateTime(order.getUpdateTime());
orderDetl.setUpdateBy(order.getUpdateBy());
- if (!orderDetlService.insert(orderDetl)) {
+ if (!orderDetlPakinService.insert(orderDetl)) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
}
@@ -169,7 +171,7 @@
if (!this.deleteById(orderId)) {
throw new CoolException("鍒犻櫎鍗曟嵁澶辫触");
}
- orderDetlService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", orderId));
+ orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", orderId));
}
@Override
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
index 592f297..2e41247 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java
@@ -36,6 +36,8 @@
private DocTypeService docTypeService;
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderDetlPakoutServiceImpl orderDetlPakoutService;
@Override
public OrderPakout selectByNo(String orderNo) {
@@ -71,7 +73,7 @@
if (Cools.isEmpty(order) || order.getSettle() >= 4L) {
return;
}
- List<OrderDetlPakout> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()));
+ List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()));
boolean complete = true;
for (OrderDetlPakout orderDetl : orderDetls) {
if (orderDetl.getAnfme() > orderDetl.getQty()) {
@@ -83,7 +85,7 @@
// 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
DocType docType = docTypeService.selectById(order.getDocType());
if (null != docType && docType.getPakout() == 1) {
- if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) {
+ if (!orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
@@ -98,7 +100,8 @@
orderDetl.setCreateBy(order.getCreateBy());
orderDetl.setUpdateTime(order.getUpdateTime());
orderDetl.setUpdateBy(order.getUpdateBy());
- if (!orderDetlService.insert(orderDetl)) {
+ orderDetl.setBarcode(wrkDetl.getZpallet());
+ if (!orderDetlPakoutService.insert(orderDetl)) {
throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
}
}
@@ -168,7 +171,7 @@
if (!this.deleteById(orderId)) {
throw new CoolException("鍒犻櫎鍗曟嵁澶辫触");
}
- orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId));
+ orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId));
}
@Override
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index ba05f58..4f44d10 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -37,6 +37,15 @@
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderPakinService orderPakinService;
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+ @Autowired
+ private OrderDetlPakinService orderDetlPakinService;
+ @Autowired
+ private OrderDetlPakoutService orderDetlPakoutService;
+
@Override
public Order selectByNo(String orderNo) {
List<Order> orderList = this.selectList(new EntityWrapper<Order>().eq("order_no", orderNo));
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index b7d7be5..e77e4a2 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.TransArrivalStation;
import com.zy.asrs.entity.mes.TransParent;
@@ -16,7 +17,10 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URL;
@@ -39,6 +43,12 @@
// 鍗庢檽RCS鍦板潃
@Value("${hx.url}")
private String HX_URL;
+ // 鍗庢檽RCS鍦板潃
+ @Value("${hx.taskNo}")
+ private String taskNo;
+ // 鍗庢檽RCS鍦板潃
+ @Value("${hx.inOk}")
+ private String inOk;
@Value("${mes.defaultUserId}")
public long defaultUserId;
@@ -55,6 +65,9 @@
private TaskDetlServiceImpl taskDetlService;
@Resource
private WrkMastService wrkMastService;
+
+ @Resource
+ private ApiLogService apiLogService;
// region 灏侀攣鍖洪�昏緫锛岀洰鍓嶅彧鏈変竴涓ぇ灏侀攣鍖猴紝浠诲姟鍏ㄩ儴杞埌婊戝潡搴撳鐞嗭紝鎴栫洿鎺ュ啓鍒版粦鍧楀簱
@@ -85,40 +98,40 @@
*/
public void managerBlock() {
- try {
- BlockTask firstTask = blockTaskMapper.findTop();
- if (firstTask == null) {
- return;
- }
- EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
- wrapper.eq("block_no", firstTask.getBlockNo());
- List<BlockStation> stations = blockStationMapper.selectList(wrapper);
- if (!stations.isEmpty()) {
- boolean locked = false;
- for (BlockStation station : stations) {
- // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
- if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
- locked = true;
- break;
- }
- }
+ try {
+ BlockTask firstTask = blockTaskMapper.findTop();
+ if (firstTask == null) {
+ return;
+ }
+ EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
+ wrapper.eq("block_no", firstTask.getBlockNo());
+ List<BlockStation> stations = blockStationMapper.selectList(wrapper);
+ if (!stations.isEmpty()) {
+ boolean locked = false;
+ for (BlockStation station : stations) {
+ // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
+ if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
+ locked = true;
+ break;
+ }
+ }
- if (!locked) {
- // 灏侀攣鐘舵��
- int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
- if (success > 0) {
- // 閫氱煡RCS
- RcsEqptNotify notify = new RcsEqptNotify();
- notify.setEqptCode(firstTask.getBlockNo());
- notify.setTaskCode(firstTask.getTaskCode());
- notify.setActionStatus("1");
- notifyEqpt(notify, firstTask.getAgvFactory());
- }
- }
- }
- } catch (Exception e) {
- log.error("绠$悊灏侀攣鍖哄紓甯�", e);
- }
+ if (!locked) {
+ // 灏侀攣鐘舵��
+ int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
+ if (success > 0) {
+ // 閫氱煡RCS
+ RcsEqptNotify notify = new RcsEqptNotify();
+ notify.setEqptCode(firstTask.getBlockNo());
+ notify.setTaskCode(firstTask.getTaskCode());
+ notify.setActionStatus("1");
+ notifyEqpt(notify, firstTask.getAgvFactory());
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("绠$悊灏侀攣鍖哄紓甯�", e);
+ }
}
/**
@@ -168,13 +181,59 @@
*/
public int submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/submit";
- String response = sendPost(url, rcsTaskSubmit.toString());
+// String response = "";
+// boolean success = false;
+// Map<String,Object> headers = new HashMap<>();
+// headers.put("Content-Type","application/json");
+// headers.put("Content-Length","<calculated when request is sent>");
+// headers.put("Host","<calculated when request is sent>");
+//// headers.put("Connection","keep-alive");
+//// headers.put("Accept","*/*");
+//// headers.put("Accept-Encoding","gzip, deflate, br");
+// headers.put("X-lr-request-id","123");
+// headers.put("X-lr-version","4.3");
+// try {
+// response = new HttpHandler.Builder()
+// .setUri(HIK_URL)
+// .setPath("api/robot/controller/task/submit")
+// .setHeaders(headers)
+// .setJson(JSON.toJSONString(rcsTaskSubmit))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getBoolean("success")) {
+// success = true;
+// } else {
+// log.error("涓嬪彂agv浠诲姟澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIK_URL + "api/robot/controller/task/submit", JSON.toJSONString(rcsTaskSubmit), response);
+// }
+// } catch (Exception e) {
+// log.error("涓嬪彂agv浠诲姟寮傚父", e);
+// } finally {
+// try {
+// // 淇濆瓨鎺ュ彛鏃ュ織
+// apiLogService.save(
+// "涓嬪彂agv浠诲姟",
+// HIK_URL + "api/robot/controller/task/submit",
+// null,
+// "127.0.0.1",
+// JSON.toJSONString(rcsTaskSubmit),
+// response,
+// success
+// );
+// } catch (Exception e) {
+// log.error("涓嬪彂agv浠诲姟淇濆瓨鎺ュ彛鏃ュ織寮傚父", e);
+// }
+// }
+// return success ? 1 : 0;
+
+ String url = rcsFactory == 2 ? HX_URL+taskNo :HIK_URL + "api/robot/controller/task/submit";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
+
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
- if("SUCCESS".equals(rcsReturn.getCode())) {
+ if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
JSONObject data = rcsReturn.getData();
- String robotTaskCode = data.getString("robotTaskCode");
+ String robotTaskCode = data.getString("RobotTaskCode");
if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
return 1;
}
@@ -191,18 +250,14 @@
* @param rcsFactory
* @return
*/
- public int continueTask(RcsTaskContinue rcsTaskContinue, int rcsFactory){
+ public int continueTask(Object rcsTaskContinue, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/extend/continue";
- String response = sendPost(url, rcsTaskContinue.toString());
+ String url = rcsFactory == 2 ? HX_URL+inOk :HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
- if("SUCCESS".equals(rcsReturn.getCode())) {
- JSONObject data = rcsReturn.getData();
- String robotTaskCode = data.getString("robotTaskCode");
- if (robotTaskCode.equals(rcsTaskContinue.getRobotTaskCode())) {
- return 1;
- }
+ if("200".equals(rcsReturn.getCode())) {
+ return 1;
}
}
@@ -218,7 +273,7 @@
*/
public int cancelTask(RcsTaskCancel rcsTaskCancel, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/cancel";
+ String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/robot/controller/task/cancel";
String response = sendPost(url, rcsTaskCancel.toString());
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
@@ -243,7 +298,7 @@
*/
private int notifyEqpt(RcsEqptNotify rcsEqptNotify, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/wcs/robot/eqpt/notify";
+ String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/wcs/robot/eqpt/notify";
String response = sendPost(url, rcsEqptNotify.toString());
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
@@ -272,65 +327,51 @@
String robotTaskCode = rcsReporterTask.getRobotTaskCode();
String singleRobotCode = rcsReporterTask.getSingleRobotCode();
- JSONObject values = rcsReporterTask.getExtra().getJSONObject("values");
- // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
- String method = values.getString("method");
- String carrierType = values.getString("carrierType");
- String slotCategory = values.getString("slotCategory");
- String slotCode = values.getString("slotCode");
-
- try {
- if ("Q3".equals(carrierType) || "Q8".equals(carrierType)) { //AGV
+ //鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+ if(Cools.isEmpty(rcsReporterTask.getExtra())){
+ if(Cools.isEmpty(rcsReporterTask.getMethod())){
+ log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
EntityWrapper<Task> wrapper = new EntityWrapper<>();
wrapper.eq("task_no", robotTaskCode);
Task task = taskService.selectOne(wrapper);
- if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
- rcsReturn.setCode("Err_RobotCodeNotMatch");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- return rcsReturn;
- }
- JSONObject memo = JSONObject.parseObject(task.getMemo());
-
- switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
- case TASK_START: {
+ String method = rcsReporterTask.getMethod();
+ JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
+ switch (method) {
+ case "TASK_START": {
task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
task.setModiTime(new Date());
task.setModiUser(defaultUserId);
taskService.updateById(task);
} break;
- case TASK_OUT_BIN: {
+ case "TASK_OUT_BIN": {
// TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
- JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
- mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
+// JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
+// mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
} break;
- case TASK_END: {
+ case "TASK_END": {
+ if(Cools.isEmpty(task)){
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
// 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
task.setModiTime(new Date());
task.setModiUser(defaultUserId);
taskService.updateById(task);
- // 浠诲姟瀹屾垚
-// mesService.reporterTask(rcsReporterTask);
-
-// EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
-// wapper2.eq("wrk_no", task.getWrkNo())
-// .eq("matnr", memo.getString("ItemNo"))
-// .eq("order_no", memo.getString("OrderNo"));
-// TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
-// taskDetl.setAnfme()
-// taskDetlService.updateById();
-
-// // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-// taskService.completeWrkMast();
-// taskDetlService.
-
} break;
- case APPLY_IN_STATION:
- case APPLY_OFF_STATION:
- case ARRIVE_OFF_STATION: {
+ case "APPLY_IN_STATION":
+ case "APPLY_OFF_STATION":
+ case "ARRIVE_OFF_STATION": {
TransParent apply = new TransParent();
apply.setTaskno(robotTaskCode);
apply.setTaskname(memo.getString("taskName"));
@@ -338,21 +379,19 @@
String transType = memo.getString("TransType");
apply.setTransType(transType);
apply.setProductLineId(memo.getString("ProductLineId"));
- if(transType.equals("02") || transType.equals("04") || transType.equals("06")) {
- apply.setStationId(task.getSourceStaNo());
- } else {
- apply.setStationId(task.getStaNo());
- }
-
- if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+ apply.setStationId(task.getSourceStaNo());
+ //agv鍏ョ珯鐢宠
+ if ("APPLY_IN_STATION".equals(method)) {
mesService.applyInStation(apply);
- } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
+ //agv绂荤珯璇锋眰
+ } else if ("APPLY_OFF_STATION".equals(method)) {
mesService.applyOutStation(apply);
- } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+ //agv绂荤珯瀹屾垚
+ } else {
mesService.outStation(apply);
}
} break;
- case ARRIVE_ON_STATION: {
+ case "ARRIVE_ON_STATION": {
// TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
break;
@@ -389,67 +428,155 @@
} break;
default: {} break;
}
- } else if ("CTU".equals(carrierType)) { //CTU
- EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
- wrapper.eq("task_no", robotTaskCode);
- WrkMast task = wrkMastService.selectOne(wrapper);
- if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
- rcsReturn.setCode("Err_RobotCodeNotMatch");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- return rcsReturn;
- }
-// JSONObject memo = JSONObject.parseObject(task.getMemo());
-
- switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
- case TASK_START: {
-// task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-// task.setModiTime(new Date());
-// task.setModiUser(defaultUserId);
-// taskService.updateById(task);
- } break;
-// case TASK_OUT_BIN: {} break;
- case TASK_END: {
- // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
- long wrkSts = task.getWrkSts(); // 1.鍏ュ簱锛�101.鍑哄簱锛�
- if (task.getIoType() == 1) {
- wrkSts = 4L;
- } else if (task.getIoType() == 101) {
- wrkSts = 14L;
- }
-
- task.setWrkSts(wrkSts); // 4.鍏ュ簱瀹屾垚锛�14.宸插嚭搴撴湭纭锛�
- task.setModiTime(new Date());
- task.setModiUser(defaultUserId);
- wrkMastService.updateById(task);
-
- // TODO锛氫换鍔″畬鎴愯Е鍙戝嚭鍏ュ簱鍙樻洿鎿嶄綔
-
-
-// // 鍏ュ簱瀹屾垚
-// mesService.inFeedback(memo.getString("OrderNo"));
-// // 鍑哄簱瀹屾垚
-// mesService.outFeedback(memo.getString("OrderNo"));
- } break;
- default: {} break;
- }
}
-
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
- } catch (Exception e) {
- log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
- rcsReturn.setCode("Err_Internal");
- rcsReturn.setMessage("鍐呴儴澶勭悊寮傚父");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
+ //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+ }else {
+ JSONObject values = rcsReporterTask.getExtra().getJSONObject("values");
+ // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
+ String method = values.getString("method");
+ String carrierType = values.getString("carrierType");
+ String slotCategory = values.getString("slotCategory");
+ String slotCode = values.getString("slotCode");
+ try {
+ // q3,q8=1
+ if ("1".equals(carrierType)) { //AGV
+ EntityWrapper<Task> wrapper = new EntityWrapper<>();
+ wrapper.eq("task_no", robotTaskCode);
+ Task task = taskService.selectOne(wrapper);
+ if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
+ JSONObject memo = JSONObject.parseObject(task.getMemo());
+
+ switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+ case TASK_START: {
+ task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ task.setModiUser(defaultUserId);
+ taskService.updateById(task);
+ }
+ break;
+ case TASK_OUT_BIN: {
+ // TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
+// JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
+// mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
+ }
+ break;
+ case TASK_END: {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ task.setModiUser(defaultUserId);
+ taskService.updateById(task);
+ // 浠诲姟瀹屾垚
+// mesService.reporterTask(rcsReporterTask);
+
+// EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
+// wapper2.eq("wrk_no", task.getWrkNo())
+// .eq("matnr", memo.getString("ItemNo"))
+// .eq("order_no", memo.getString("OrderNo"));
+// TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
+// taskDetl.setAnfme()
+// taskDetlService.updateById();
+
+// // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+// taskService.completeWrkMast();
+// taskDetlService.
+
+ }
+ break;
+ case APPLY_IN_STATION:
+ case APPLY_OFF_STATION:
+ case ARRIVE_OFF_STATION: {
+ TransParent apply = new TransParent();
+ apply.setTaskno(robotTaskCode);
+ apply.setTaskname(memo.getString("taskName"));
+ apply.setAgvCode(singleRobotCode);
+ String transType = memo.getString("TransType");
+ apply.setTransType(transType);
+ apply.setProductLineId(memo.getString("ProductLineId"));
+ if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+ apply.setStationId(task.getSourceStaNo());
+ } else {
+ apply.setStationId(task.getStaNo());
+ }
+
+ if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+ mesService.applyInStation(apply);
+ } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
+ mesService.applyOutStation(apply);
+ } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+ mesService.outStation(apply);
+ }
+ }
+ break;
+ case ARRIVE_ON_STATION: {
+ // TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
+ if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
+ break;
+ }
+
+ EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
+ wapper2.eq("wrk_no", task.getWrkNo())
+ .eq("matnr", memo.getString("Itemno"))
+ .eq("order_no", memo.getString("OrderNo"));
+ TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
+ TransArrivalStation arrivalStation = new TransArrivalStation();
+ arrivalStation.setTaskno(robotTaskCode);
+ arrivalStation.setTaskname(memo.getString("taskName"));
+ arrivalStation.setTuoPanId(taskDetl.getZpallet()); // memo.getString("TuoPanId")
+ arrivalStation.setProductLineId(memo.getString("ProductLineId"));
+ String transType = memo.getString("TransType");
+ arrivalStation.setDaotype(transType);
+ if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+ arrivalStation.setStationID(task.getSourceStaNo());
+ } else {
+ arrivalStation.setStationID(task.getStaNo());
+ }
+ arrivalStation.setOrderNo(memo.getString("OrderNo"));
+ arrivalStation.setAgvCode(singleRobotCode);
+ arrivalStation.setItemno(memo.getString("Itemno"));
+ String memo2 = taskDetl.getMemo();
+ List<String> itemBarCode = new ArrayList<>();
+ Matcher matcher = Pattern.compile("\"([^\"]*)\"").matcher(memo2);
+ while (matcher.find()) {
+ itemBarCode.add(matcher.group(1));
+ }
+ arrivalStation.setItemBarcode(itemBarCode);
+ mesService.arriveOnStation(arrivalStation);
+ }
+ break;
+ default: {
+ }
+ break;
+ }
+ }
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } catch (Exception e) {
+ log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍐呴儴澶勭悊寮傚父");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+
}
return rcsReturn;
@@ -530,17 +657,53 @@
* @param apply
* @return
*/
- public JSONObject hxApplyInLine(TransParent apply) {
+ public RcsReturn hxApplyInLine(TransParent apply) {
- String status = mesService.applyInLine(apply);
- JSONObject result = new JSONObject();
- result.put("Success", 1);
- result.put("Message", status);
- JSONObject data = new JSONObject();
- data.put("status", status);
- result.put("Data", data);
+ RcsReturn rcsReturn = new RcsReturn();
- return result;
+ String robotTaskCode = apply.getTaskno();
+ String singleRobotCode = apply.getAgvCode();
+ //鍗庢檽AGV鐢宠
+ if(Cools.isEmpty(apply.getMethod())){
+ log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ EntityWrapper<Task> wrapper = new EntityWrapper<>();
+ wrapper.eq("task_no", robotTaskCode);
+ Task task = taskService.selectOne(wrapper);
+ String method = apply.getMethod();
+ JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
+ switch (method) {
+ case "APPLY_IN_STATION":
+ case "APPLY_OFF_STATION":
+ case "ARRIVE_OFF_STATION": {
+ //agv鍏ョ珯鐢宠
+ if ("APPLY_IN_STATION".equals(method)) {
+ mesService.applyInStation(apply);
+ //agv绂荤珯璇锋眰
+ } else if ("APPLY_OFF_STATION".equals(method)) {
+ mesService.applyOutStation(apply);
+ //agv绂荤珯瀹屾垚
+ } else {
+ mesService.outStation(apply);
+ }
+ } break;
+ default: {} break;
+ }
+ }
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+
+ return rcsReturn;
}
// endregion
@@ -563,11 +726,16 @@
log.info("sendPost - {} - {}", url, param);
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
- conn.setRequestProperty("accept", "*/*");
- conn.setRequestProperty("connection", "Keep-Alive");
- conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
- conn.setRequestProperty("Accept-Charset", "utf-8");
- conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+ conn.setRequestProperty("Content-Type", "application/json");
+ conn.setRequestProperty("Content-Length", "<calculated when request is sent>");
+ conn.setRequestProperty("Host", "<calculated when request is sent>");
+ conn.setRequestProperty("Accept", "*/*");
+ conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
+ conn.setRequestProperty("Connection", "keep-alive");
+
+ conn.setRequestProperty("X-lr-request-id", String.valueOf(new Date().getTime()));
+ conn.setRequestProperty("X-lr-version", "4.3");
+
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setDoOutput(true);
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 2c21f63..0e276ff 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -397,7 +397,7 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
+ public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId,Integer ioPri) {
Date now = new Date();
List<LocDto> locDtos = taskDto.getLocDtos();
for (LocDto locDto : locDtos) {
@@ -420,7 +420,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setIoPri(ioPri+0.0); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
@@ -629,7 +629,7 @@
@Override
@Transactional
- public WrkMast emptyPlateOut(EmptyPlateOutParam param) {
+ public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri) {
WrkMast wrkMast = new WrkMast();
if (Cools.isEmpty(param.getOutSite())) {
throw new CoolException("绔欑偣涓嶅瓨鍦�");
@@ -659,7 +659,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
- wrkMast.setIoPri(10D);
+ wrkMast.setIoPri(ioPri+0.0);
wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
wrkMast.setStaNo(param.getOutSite() + ""); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
@@ -1079,7 +1079,7 @@
@Transactional
public void cancelWrkMast(String workNo, Long userId) {
Date now = new Date();
- WrkMast wrkMast = wrkMastService.selectById(workNo);
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
@@ -1210,6 +1210,9 @@
boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
+ //鍙栨秷鏍囪锛岃鍗曞畬鎴愬悗鍙嶅啓璁㈠崟鏄庣粏鏃惰繃婊ゆ帀danger = 1鐨勬暟鎹�
+ wrkDetlService.updateForSet("danger = 1" ,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
new file mode 100644
index 0000000..fbd0213
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -0,0 +1,124 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.AGVTaskReportHandler;
+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.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AGVTaskReportScheduler {
+
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private AGVTaskReportHandler AGVTaskReportHandler;
+ @Value("${hik.switch}")
+ private Boolean switchErpReportOld;
+ @Autowired
+ private WrkMastService wrkMastService;
+
+ /**
+ * 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈GV鎼繍浠诲姟
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void createAGVTask(){
+ if (!switchErpReportOld){
+ return;
+ }
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 300));
+ if (wrkMasts.isEmpty()){
+ return;
+ }
+ for (WrkMast wrkMast : wrkMasts){
+ //鏌ヨ鏄惁鏈夋簮绔欏拰鐩爣绔欐湁涓�鏍风殑agv鎼繍浠诲姟
+ //濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
+ Task task1 = taskService.selectOne(new EntityWrapper<Task>()
+ .in("source_sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo())
+ .in("sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo()));
+ if (Cools.isEmpty(task1)) {
+
+ //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+ // 淇濆瓨宸ヤ綔妗�
+ Task task = new Task();
+ Date date = new Date();
+ String TaskNo = wrkMast.getWrkNo()+"-"+date.getTime();
+ task.setWrkNo(wrkMast.getWrkNo())
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(wrkMast.getMemo())
+ .setSourceStaNo(wrkMast.getSourceStaNo())//绌烘枡鏋剁紦瀛樺尯E1
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode(wrkMast.getBarcode())// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (!taskService.insert(task)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }else {
+ wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
+ wrkMast.setModiTime(date);
+ wrkMastService.updateById(wrkMast);
+ }
+ }
+ }
+ }
+
+ /**
+ * AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){
+ if (!switchErpReportOld){
+ return;
+ }
+ //鏌ヨ鎵�鏈塧gv寰呬笅鍙戜换鍔�
+ List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301));
+ if (wrkSts!=null&& !wrkSts.isEmpty()){
+ for (Task task:wrkSts){
+ //鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑agv鎼繍浠诲姟
+ //濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
+ Task task1 = taskService.selectOne(new EntityWrapper<Task>()
+ .eq("wrk_sts", 302)
+ .andNew()
+ .in("source_sta_no", task.getSourceStaNo(), task.getStaNo())
+ .in("sta_no", task.getStaNo(), task.getSourceStaNo()));
+ if (Cools.isEmpty(task1)) {
+ //AGV浠诲姟涓嬪彂
+ ReturnT<String> start = AGVTaskReportHandler.start(task);
+ if (!start.isSuccess()){
+ task.setUpdMk("X");
+ task.setErrorMemo(start.getMsg());
+ task.setModiTime(new Date());
+ if (!taskService.updateById(task)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
index 698e864..bacfd9b 100644
--- a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
@@ -40,67 +40,67 @@
@Autowired
private AutoMoveService autoMoveService;
- //瀹氭椂鍑哄簱 缁忓吀鍙屼几
- @Scheduled(cron = "0/3 * * * * ? ")
- public void locToLocAutoLocMove(){
- if (slaveWmsParameterProperties.isAutoLocMoveBoolean()){
- Config config = configService.selectConfigByCode("AutoLocMove");
- if (Cools.isEmpty(config) || config.getValue().equals("false")) {
- return;
- }
- OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus();
- if (!Cools.isEmpty(orderPakout)){
-// autoMoveService.selectList()
- }else {
- orderPakout = orderPakoutService.selectOrderMoveStatusInitial();
- if (Cools.isEmpty(orderPakout)){
- return;
- }
- orderPakout.setMoveStatus(2);
- orderPakoutService.updateById(orderPakout);
- }
- }
- }
-
- //瀹氭椂鍑哄簱
- @Scheduled(cron = "0/3 * * * * ? ")
- public void locToLoc11(){
- if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
- Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
- if (Cools.isEmpty(config) || config.getValue().equals("false")) {
- return;
- }
- int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
- for (int crnNo = 1;crnNo < crnCount;crnNo++){
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
- WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
- if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
- autoLocMoveHandler.start(crnNo,11);
- }
- }
- }
- }
-
- //瀹氭椂鍏ュ簱
- @Scheduled(cron = "0/3 * * * * ? ")
- public void locToLoc111() {
- if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
- Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
- if (Cools.isEmpty(config) || config.getValue().equals("false")) {
- return;
- }
- int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
- for (int crnNo = 1;crnNo < crnCount;crnNo++){
- BasCrnp basCrnp = basCrnpService.selectById(crnNo);
- if (basCrnp == null) {
- continue;
- }
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
- WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
- if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
- autoLocMoveHandler.start(crnNo,111);
- }
- }
- }
- }
+// //瀹氭椂鍑哄簱 缁忓吀鍙屼几
+// @Scheduled(cron = "0/3 * * * * ? ")
+// public void locToLocAutoLocMove(){
+// if (slaveWmsParameterProperties.isAutoLocMoveBoolean()){
+// Config config = configService.selectConfigByCode("AutoLocMove");
+// if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+// return;
+// }
+// OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus();
+// if (!Cools.isEmpty(orderPakout)){
+//// autoMoveService.selectList()
+// }else {
+// orderPakout = orderPakoutService.selectOrderMoveStatusInitial();
+// if (Cools.isEmpty(orderPakout)){
+// return;
+// }
+// orderPakout.setMoveStatus(2);
+// orderPakoutService.updateById(orderPakout);
+// }
+// }
+// }
+//
+// //瀹氭椂鍑哄簱
+// @Scheduled(cron = "0/3 * * * * ? ")
+// public void locToLoc11(){
+// if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
+// Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
+// if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+// return;
+// }
+// int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
+// for (int crnNo = 1;crnNo < crnCount;crnNo++){
+// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
+// WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
+// if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
+// autoLocMoveHandler.start(crnNo,11);
+// }
+// }
+// }
+// }
+//
+// //瀹氭椂鍏ュ簱
+// @Scheduled(cron = "0/3 * * * * ? ")
+// public void locToLoc111() {
+// if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()){
+// Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
+// if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+// return;
+// }
+// int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
+// for (int crnNo = 1;crnNo < crnCount;crnNo++){
+// BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+// if (basCrnp == null) {
+// continue;
+// }
+// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
+// WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
+// if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)){
+// autoLocMoveHandler.start(crnNo,111);
+// }
+// }
+// }
+// }
}
diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
index 498483b..b1f3f05 100644
--- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
+++ b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
@@ -25,18 +25,18 @@
@Autowired
private SlaveWmsParameterProperties slaveWmsParameterProperties;
- /*
- * 鑷姩璋冪┖鏉垮嚭搴�
- * */
- @Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
- if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
- Config config = configService.selectConfigByCode("AutomaticFillingBoard");
- if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("true")){
- for (Integer staNo : slaveWmsParameterProperties.getAutomaticFillingBoardStaNos()){
- bareBoardHandler.start(110,staNo,"D");
- }
- }
- }
- }
+// /*
+// * 鑷姩璋冪┖鏉垮嚭搴�
+// * */
+// @Scheduled(cron = "0/3 * * * * ? ")
+// private void execute(){
+// if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+// Config config = configService.selectConfigByCode("AutomaticFillingBoard");
+// if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("true")){
+// for (Integer staNo : slaveWmsParameterProperties.getAutomaticFillingBoardStaNos()){
+// bareBoardHandler.start(110,staNo,"D");
+// }
+// }
+// }
+// }
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index c6f6da8..3e27a83 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -5,9 +5,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.mes.MesInApply;
-import com.zy.asrs.entity.mes.MesRecvFeedback;
-import com.zy.asrs.entity.mes.MesReturn;
+import com.zy.asrs.entity.mes.*;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
@@ -49,6 +47,8 @@
@Resource
private OrderDetlPakinService orderDetlPakinService;
+ @Resource
+ private OrderDetlPakoutService orderDetlPakoutService;
@Value("${mes.url}")
public String MES_URL;
@@ -130,7 +130,7 @@
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("settle", 4)
- .eq("doc_type",4).orderBy("update_time"));
+ .eq("doc_type",1).orderBy("update_time"));
if (orderPakin == null) {
return;
}
@@ -160,7 +160,7 @@
mesRecvFeedback.setOperuser(dbMemo.getString("operuser"));
mesRecvFeedback.setItemdata(list);
- String url = MES_URL + "MaterialReceiptAndReturn";
+ String url = MES_URL + "ActualInventoryFeedback";
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesRecvFeedback));
if (!StringUtils.isEmpty(response) && response.contains("Success")) {
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
@@ -173,32 +173,71 @@
}
}
- // 鍏朵粬鍏ュ簱鍗曚笂鎶�
+ // 閰嶇洏鍏ュ簱鍗曚笂鎶�
@Scheduled(cron = "0/30 * * * * ? ")
@Async("orderThreadPool")
void otherInOrderCompleteReport() {
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("settle", 4)
- .eq("doc_type", 3).orderBy("update_time"));
+ .ne("doc_type", 1).orderBy("update_time"));
if (orderPakin == null) {
return;
}
List<OrderDetlPakin> orderDetlPakins = orderDetlPakinService.selectByOrderId(orderPakin.getId());
for (OrderDetlPakin orderDetl : orderDetlPakins) {
- MesInApply result = JSONObject.parseObject(orderPakin.getMemo(), MesInApply.class);
- result.setQty(orderDetl.getQty().intValue());
+ MesOutApply result = JSONObject.parseObject(orderPakin.getMemo(), MesOutApply.class);
+ for(MesOutApply.MesOutApplyItem mes:result.getItemdata()){
+ if (orderDetl.getMatnr().equals(mes.getItemno())){
+ mes.setWmsBarcode(orderDetl.getBarcode());
+ mes.setRackNumber(orderDetl.getSku());
+ }
+ }
-// String url = MES_URL + "loadComplete";
-// String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
-// if (!StringUtils.isEmpty(response) && response.contains("Success")) {
-// MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-// if ("1".equals(mesReturn.getSuccess())) {
+ String url = MES_URL + "loadComplete";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
orderPakin.setSettle(6L);
orderPakinService.updateById(orderPakin);
log.info("璁㈠崟涓婃姤鎴愬姛锛宱rderNo={}", orderPakin.getOrderNo());
-// }
-// }
+ }
+ }
+ }
+ }
+ }
+
+ // 鍑哄簱鍗曚笂鎶�
+ @Scheduled(cron = "0/30 * * * * ? ")
+ @Async("orderThreadPool")
+ void otherOutOrderCompleteReport() {
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+ OrderPakout orderPakout = orderPakoutService.selectOne(new EntityWrapper<OrderPakout>().eq("settle", 4).orderBy("update_time"));
+ if (orderPakout == null) {
+ return;
+ }
+ List<OrderDetlPakout> orderDetlPakouts = orderDetlPakoutService.selectByOrderId(orderPakout.getId());
+ for (OrderDetlPakout orderDetl : orderDetlPakouts) {
+ MesOutApply result = JSONObject.parseObject(orderPakout.getMemo(), MesOutApply.class);
+ for(MesOutApply.MesOutApplyItem mes:result.getItemdata()){
+ if (orderDetl.getMatnr().equals(mes.getItemno())){
+ mes.setWmsBarcode(orderDetl.getBarcode());
+ mes.setRackNumber(orderDetl.getSku());
+ }
+ }
+
+ String url = MES_URL + "loadComplete";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ orderPakout.setSettle(6L);
+ orderPakoutService.updateById(orderPakout);
+ log.info("璁㈠崟涓婃姤鎴愬姛锛宱rderNo={}", orderPakout.getOrderNo());
+ }
+ }
}
}
}
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index 06a0624..9d52fc9 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,6 +1,8 @@
package com.zy.asrs.task;
+import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkLogHandler;
@@ -22,6 +24,8 @@
private WorkLogHandler workLogHandler;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private TaskService taskService;
@Scheduled(cron = "0/3 * * * * ? ")
private void execute(){
@@ -37,4 +41,18 @@
}
}
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void AGVexecute(){
+ List<Task> tasks = taskService.selectToBeCompleteData();
+ if (tasks.isEmpty()) {
+ return;
+ }
+ for (Task task : tasks) {
+ ReturnT<String> result = workLogHandler.AGVstart(task);
+ if (!result.isSuccess()) {
+ log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", task.getTaskNo());
+ }
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 714bd84..c574b8c 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.MesService;
@@ -54,9 +55,12 @@
}
}
+ /**
+ * AGV 304浠诲姟瀹屾垚锛屾湁鍜學MS鍏宠仈浠诲姟锛屽鍏宠仈浠诲姟鍋氬搴斿鐞嗭紝浠诲姟鐘舵�佷粠304--銆�305锛涙病鏈夊叧鑱斾换鍔★紝浠诲姟鐘舵�佷粠304--銆�305
+ */
@Scheduled(cron = "0/3 * * * * ? ")
private void executeTask(){
- List<Task> wrkMasts = taskService.selectToBeCompleteData();
+ List<Task> wrkMasts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 304));
if (wrkMasts.isEmpty()) {
return;
}
diff --git a/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java b/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java
new file mode 100644
index 0000000..2dd58e0
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java
@@ -0,0 +1,66 @@
+package com.zy.asrs.task.handler;
+
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.rcs.RcsTaskSubmit;
+import com.zy.asrs.entity.rcs.RcsTaskTargetRoute;
+import com.zy.asrs.service.RcsService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Service
+@Transactional
+public class AGVTaskReportHandler extends AbstractHandler<String> {
+
+ @Resource
+ private RcsService rcsService;
+
+
+ public ReturnT<String> start(Task task) {
+ String SourceStaNoType = "SITE";
+ String TargetStaNoType = "SITE";
+ //缁檃gv涓嬪彂鐨勪换鍔$被鍨�,榛樿绔欏埌绔�
+ //浠诲姟绫诲瀷 4.绔欏埌鍖哄煙
+ if(task.getIoType()==4){
+ TargetStaNoType = "ZONE";
+
+ //浠诲姟绫诲瀷 5.鍖哄煙鍒扮珯
+ }else if(task.getIoType()==5){
+ SourceStaNoType = "ZONE";
+ }
+ // 涓嬪彂缁橰CS
+ RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
+ rcsTaskSubmit.setRobotTaskCode(task.getTaskNo());
+ rcsTaskSubmit.setInitPriority(10); //榛樿10
+ List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
+ RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute();
+ startRoute.setSeq(0);
+ startRoute.setType(SourceStaNoType);
+ startRoute.setCode(task.getSourceStaNo());
+ startRoute.setOperation("COLLECT");
+ targetRouteList.add(startRoute);
+ RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute();
+ endRoute.setSeq(1);
+ endRoute.setType(TargetStaNoType);
+ endRoute.setCode(task.getStaNo());
+ endRoute.setOperation("DELIVERY");
+ targetRouteList.add(endRoute);
+ rcsTaskSubmit.setTargetRoute(targetRouteList);
+
+ // 杞彂缁欐捣搴锋垨鍗庢檽RCS
+ int success = rcsService.submitTask(rcsTaskSubmit, task.getPltType());
+ if (success == 0){
+ return FAIL;
+ }
+ return SUCCESS;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index dc6f573..7199a61 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,10 +2,13 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.OrderPakinServiceImpl;
+import com.zy.asrs.service.impl.OrderPakoutServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -39,6 +42,14 @@
private WaitPakinLogService waitPakinLogService;
@Autowired
private OrderService orderService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private TaskLogService taskLogService;
+ @Autowired
+ private OrderPakoutServiceImpl orderPakoutService;
+ @Autowired
+ private OrderPakinServiceImpl orderPakinService;
@Transactional
public ReturnT<String> start(WrkMast wrkMast) {
@@ -50,12 +61,19 @@
while (iterator.hasNext()) {
WrkDetl wrkDetl = iterator.next();
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-// orderService.checkComplete(wrkDetl.getOrderNo());
- if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 8 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 104){
- OrderInAndOutUtil.checkComplete(Boolean.TRUE,wrkDetl.getOrderNo());
- } else {
- OrderInAndOutUtil.checkComplete(Boolean.FALSE,wrkDetl.getOrderNo());
+ //鍑哄簱鍗�
+ if(wrkMast.getIoType()>100){
+ orderPakoutService.checkComplete(wrkDetl.getOrderNo());
+ //鍏ュ簱鍗�
+ }else {
+ orderPakinService.checkComplete(wrkDetl.getOrderNo());
}
+
+// if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 8 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 104){
+// OrderInAndOutUtil.checkComplete(Boolean.TRUE,wrkDetl.getOrderNo());
+// } else {
+// OrderInAndOutUtil.checkComplete(Boolean.FALSE,wrkDetl.getOrderNo());
+// }
iterator.remove();
}
}
@@ -125,4 +143,17 @@
return SUCCESS;
}
+ @Transactional
+ public ReturnT<String> AGVstart(Task task) {
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!taskLogService.save(task.getWrkNo())) {
+ exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔涓绘。
+ if (!taskService.deleteById(task.getId())) {
+ exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触",task.getWrkNo());
+ }
+ return SUCCESS;
+ }
+
}
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 4d77aac..d715373 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,20 +1,21 @@
package com.zy.asrs.task.handler;
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
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.mes.MesReturn;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.BasStationServiceImpl;
-import com.zy.asrs.service.impl.LocCacheServiceImpl;
-import com.zy.asrs.service.impl.OrderPakinServiceImpl;
-import com.zy.asrs.service.impl.TaskDetlServiceImpl;
+import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
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 org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -56,6 +57,8 @@
private TaskDetlService taskDetlService;
@Autowired
private BasStationServiceImpl basStationService;
+ @Value("${mes.url}")
+ private String url;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -568,8 +571,13 @@
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(15L);
+ if(!Cools.isEmpty(wrkMast.getMemo())){
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(30L);//30.绛夊緟鍒涘缓AGV鎼繍浠诲姟
+ }else {
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
+ }
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -593,12 +601,40 @@
*/
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> AgvStart(Task task) {
- // 4.鍏ュ簱瀹屾垚
- if (task.getWrkSts() == 4) {
- return agvDoIn(task);
- // 14.鍑哄簱瀹屾垚
- } else if (task.getWrkSts() == 14) {
- return agvDoOut(task);
+ //鏌ヨ鏄惁鏈夊叧鑱旂殑WrkMast浠诲姟
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", task.getWrkNo()));
+ if (wrkMast != null) {
+ if (wrkMast.getIoType()==110){
+ wrkMast.setWrkSts(32L);//32.绛夊緟缁勬墭
+ }else if (wrkMast.getIoType()==101){
+ wrkMast.setWrkSts(15L);//15.鍑哄簱鏇存柊瀹屾垚
+ }
+ wrkMast.setModiTime(new Date());
+ wrkMastService.updateById(wrkMast);
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+
+ //瀵硅浆搴忔惉杩愬畬鎴愮殑浠诲姟缁撴灉鍙嶉缁檓es
+ }else if(task.getTaskType().equals("ZX-AGV")){
+ HashMap<String,Object> map = new HashMap<>();
+ map.put("taskno", task.getTaskNo());
+ String mesUrl = url+"AGVArrivalCompletedFit";
+ String response = RcsServiceImpl.sendPost(mesUrl, JSONObject.toJSONString(map));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ }else {
+ return new ReturnT<>(500, mesReturn.getMessage());
+ }
+ }
+ }else {
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
}
return SUCCESS;
}
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 154c4b8..e8ac917 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -14,7 +14,7 @@
public class LocTypeDto {
// 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
- private Short locType1;
+ private Short locType1=1;
// 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
private Short locType2;
@@ -30,9 +30,9 @@
throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
}
if (basDevp.getLocType2() == 1) {
- this.locType2 = 1; // 浣庡簱浣�
+ this.locType1 = 1; // 浣庡簱浣�
} else {
- this.locType2 = 2; // 楂樺簱浣�
+ this.locType1 = 2; // 楂樺簱浣�
}
log.info(JSON.toJSONString(this));
}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index ad88815..baf4f20 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -158,11 +158,11 @@
@Transactional
public StartupDto getLocNoNew(Integer staDescId,Integer sourceStaNo, LocTypeDto locTypeDto) {
- List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).eq("in_enable", "Y"));
- if(basCrnps.size() == 0) {
- log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氬爢鍨涙満鎶ヨ/鏃犲彲鐢�/鏃犲彲鍏�");
- throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氬爢鍨涙満鎶ヨ/鏃犲彲鐢�/鏃犲彲鍏�");
- }
+// List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).eq("in_enable", "Y"));
+// if(basCrnps.size() == 0) {
+// log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氬爢鍨涙満鎶ヨ/鏃犲彲鐢�/鏃犲彲鍏�");
+// throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氬爢鍨涙満鎶ヨ/鏃犲彲鐢�/鏃犲彲鍏�");
+// }
StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("type_no", staDescId).eq("stn_no", sourceStaNo).eq("crn_no", 1));
if (staDesc == null) {
@@ -170,11 +170,11 @@
throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氳矾寰勪笉瀛樺湪" + staDescId +"," + sourceStaNo);
}
- Short locType2 = locTypeDto.getLocType2();
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_type2", locType2).orderBy("lev1").orderBy("bay1").orderBy("row1"));
+ Short locType1 = 1;
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_type1", locType1).orderBy("lev1").orderBy("bay1").orderBy("row1"));
if (locMast == null) {
- log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType2);
- throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType2);
+ log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
+ throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
}
StartupDto startupDto = new StartupDto();
diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java
index cc00686..4df945c 100644
--- a/src/main/java/com/zy/common/web/AuthController.java
+++ b/src/main/java/com/zy/common/web/AuthController.java
@@ -14,10 +14,8 @@
import com.zy.common.properties.SystemProperties;
import com.zy.common.utils.RandomValidateCodeUtil;
import com.zy.system.entity.*;
-import com.zy.system.entity.license.LicenseVerify;
import com.zy.system.service.*;
import com.zy.system.timer.LicenseTimer;
-import com.zy.system.timer.LoadingConfigTimer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
@@ -50,42 +48,37 @@
private RolePermissionService rolePermissionService;
@Autowired
private LicenseTimer licenseTimer;
- @Autowired
- private LoadingConfigTimer loadingConfigTimer;
-
- @PostMapping("/login.action")
+ @RequestMapping("/login.action")
@ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "鐧诲綍")
- public R loginAction(@RequestBody Map<String, String> param) {
+ public R loginAction(String username, String password){
//楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
- if (!licenseTimer.getSystemSupport()) {
+ if (!licenseTimer.getSystemSupport()){
return R.parse(CodeRes.SYSTEM_20001);
}
+ if (username.equals("super") && password.equals(Cools.md5(superPwd))) {
+ Map<String, Object> res = new HashMap<>();
+ res.put("username", username);
+ res.put("token", Cools.enToken(System.currentTimeMillis() + username, superPwd));
+ return R.ok(res);
+ }
EntityWrapper<User> userWrapper = new EntityWrapper<>();
- userWrapper.eq("username", param.get("username"));
+ userWrapper.eq("username", username);
User user = userService.selectOne(userWrapper);
- if (Cools.isEmpty(user)) {
- if (param.get("username").equals("super") && param.get("password").equals(Cools.md5(superPwd))) {
- Map<String, Object> res = new HashMap<>();
- res.put("username", param.get("username"));
- res.put("token", Cools.enToken(System.currentTimeMillis() + param.get("username"), superPwd));
- return R.ok(res);
- }
+ if (Cools.isEmpty(user)){
return R.parse(CodeRes.USER_10001);
}
- if (user.getStatus() != 1) {
+ if (user.getStatus()!=1){
return R.parse(CodeRes.USER_10002);
}
- if (!user.getPassword().equals(param.get("password"))) {
+ if (!user.getPassword().equals(password)){
return R.parse(CodeRes.USER_10003);
}
- String token = Cools.enToken(System.currentTimeMillis() + param.get("username"), user.getPassword());
- if (loadingConfigTimer.getTokenNumber() == 1) {
- userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId()).eq("system", "WMS"));
- } UserLogin userLogin = new UserLogin();
+ String token = Cools.enToken(System.currentTimeMillis() + username, user.getPassword());
+ userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", user.getId()));
+ UserLogin userLogin = new UserLogin();
userLogin.setUserId(user.getId());
userLogin.setToken(token);
userLogin.setCreateTime(new Date());
- userLogin.setSystem("WMS");
userLoginService.insert(userLogin);
Map<String, Object> res = new HashMap<>();
res.put("username", user.getUsername());
@@ -109,7 +102,7 @@
int time = 0;
while (time < 3000) {
code = RandomValidateCodeUtil.code.get(sd);
- if (!Cools.isEmpty(code)) {
+ if (!Cools.isEmpty(code)){
break;
} else {
Thread.sleep(10);
@@ -122,13 +115,13 @@
@RequestMapping("/user/detail/auth")
@ManagerAuth
- public R userDetail() {
+ public R userDetail(){
return R.ok(userService.selectById(getUserId()));
}
@RequestMapping("/menu/auth")
@ManagerAuth
- public R menu() {
+ public R menu(){
// 鑾峰彇鎵�鏈変竴绾ц彍鍗�
List<Resource> oneLevel;
User user = null;
@@ -147,7 +140,7 @@
List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", user.getRoleId()));
List<Long> resourceIds = new ArrayList<>();
roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId()));
- if (resourceIds.isEmpty()) {
+ if (resourceIds.isEmpty()){
return R.ok();
}
resourceWrapper = new EntityWrapper<Resource>().in("id", resourceIds).eq("level", 2).eq("status", 1).orderBy("sort");
@@ -165,11 +158,11 @@
// 鏄惁鎷ユ湁鏌ョ湅鏉冮檺
if (getUserId() != 9527) {
Resource view = resourceService.selectOne(new EntityWrapper<Resource>().eq("resource_id", resource.getId()).like("code", "#view"));
- if (!Cools.isEmpty(view)) {
+ if (!Cools.isEmpty(view)){
RoleResource param = new RoleResource();
param.setResourceId(view.getId());
param.setRoleId(user.getRoleId());
- if (null == roleResourceService.selectOne(new EntityWrapper<>(param))) {
+ if (null == roleResourceService.selectOne(new EntityWrapper<>(param))){
continue;
}
}
@@ -194,11 +187,11 @@
@RequestMapping("/power/list/auth")
@ManagerAuth
- public R powerList() {
+ public R powerList(){
List<Resource> oneLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort"));
List<Map> result = new ArrayList<>();
// 涓�绾�
- for (Resource oneLevel : oneLevels) {
+ for (Resource oneLevel : oneLevels){
List<Map> twoLevelsList = new ArrayList<>();
Map<String, Object> oneLevelMap = new HashMap<>();
oneLevelMap.put("title", oneLevel.getName());
@@ -207,7 +200,7 @@
oneLevelMap.put("children", twoLevelsList);
List<Resource> twoLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", oneLevel.getId()).eq("level", 2).eq("status", 1).orderBy("sort"));
// 浜岀骇
- for (Resource twoLevel : twoLevels) {
+ for (Resource twoLevel : twoLevels){
Map<String, Object> twoLevelMap = new HashMap<>();
twoLevelMap.put("title", twoLevel.getName());
twoLevelMap.put("id", twoLevel.getId());
@@ -217,7 +210,7 @@
twoLevelMap.put("children", threeLevelsList);
// 涓夌骇
List<Resource> threeLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", twoLevel.getId()).eq("level", 3).eq("status", 1).orderBy("sort"));
- for (Resource threeLevel : threeLevels) {
+ for (Resource threeLevel : threeLevels){
Map<String, Object> threeLevelMap = new HashMap<>();
threeLevelMap.put("title", threeLevel.getName());
threeLevelMap.put("id", threeLevel.getId());
@@ -256,19 +249,19 @@
List<Object> result = new ArrayList<>();
// 鑿滃崟
List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", roleId));
- for (RoleResource roleResource : roleResources) {
+ for (RoleResource roleResource : roleResources){
Resource resource = resourceService.selectById(roleResource.getResourceId());
- if (!Cools.isEmpty(resource)) {
- if (resource.getLevel() == 3) {
+ if (!Cools.isEmpty(resource)){
+ if (resource.getLevel() == 3){
result.add(resource.getId());
}
}
}
// 鍔熻兘
List<RolePermission> rolePermissions = rolePermissionService.selectList(new EntityWrapper<RolePermission>().eq("role_id", roleId));
- for (RolePermission rolePermission : rolePermissions) {
+ for (RolePermission rolePermission : rolePermissions){
Permission permission = permissionService.selectById(rolePermission.getPermissionId());
- if (!Cools.isEmpty(permission)) {
+ if (!Cools.isEmpty(permission)){
result.add(permission.getAction());
}
}
@@ -278,12 +271,12 @@
@RequestMapping("/power/auth")
@ManagerAuth(memo = "鎺堟潈")
@Transactional
- public R power(Long roleId, String powers) {
+ public R power(Long roleId, String powers){
Role role = roleService.selectById(roleId);
Long leaderId = role.getLeader();
roleResourceService.delete(new EntityWrapper<RoleResource>().eq("role_id", roleId));
rolePermissionService.delete(new EntityWrapper<RolePermission>().eq("role_id", roleId));
- if (!Cools.isEmpty(powers)) {
+ if (!Cools.isEmpty(powers)){
List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class);
for (PowerDto dto : dtos) {
Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2));
@@ -301,14 +294,14 @@
roleResourceService.insert(roleResource);
} else {
Permission permission = permissionService.selectOne(new EntityWrapper<Permission>().eq("action", dto.getTwo()));
- if (!Cools.isEmpty(permission)) {
+ if (!Cools.isEmpty(permission)){
RolePermission rolePermission = new RolePermission();
rolePermission.setRoleId(roleId);
rolePermission.setPermissionId(permission.getId());
rolePermissionService.insert(rolePermission);
}
}
- for (String three : dto.getThree()) {
+ for (String three : dto.getThree()){
Resource resource1 = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", three).eq("level", 3));
if (!Cools.isEmpty(resource1)) {
// 鏍¢獙涓婄骇鏉冮檺
@@ -344,48 +337,48 @@
return R.ok(resources);
}
-// @GetMapping(value = "/system/activation/auth")
-// public R activation() {
-// if (SystemProperties.SYSTEM_ACTIVATION) {
-// String activationCode = SystemProperties.getActivationCode(OSinfo.getOSname().getActivationCodePath());
-// String timeStr = AesUtils.decrypt(activationCode, SystemProperties.SALT);
-// if (null == timeStr) {
-// SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
-// return R.error();
-// }
-// Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
-// if (new Date().getTime() < exprTime.getTime()) {
-// return R.ok().add(DateUtils.convert(exprTime));
-// } else {
-// SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
-// return R.error();
-// }
-// } else {
-// return R.error();
-// }
-// }
-//
-// @PostMapping(value = "/system/secret/auth")
-// @ManagerAuth
-// public R systemSecret(@RequestParam(value = "secret") String secret) {
-// if (Cools.isEmpty(secret)) {
-// return R.error("璇疯緭鍏ユ縺娲荤爜");
-// }
-// // 楠岃瘉婵�娲荤爜
-// String timeStr = AesUtils.decrypt(secret, SystemProperties.SALT);
-// if (null == timeStr) {
-// return R.error("婵�娲荤爜閿欒");
-// }
-// Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
-// if (new Date().getTime() >= exprTime.getTime()) {
-// return R.error("婵�娲荤爜宸插け鏁�");
-// }
-// boolean result = SystemProperties.saveActivationCode(OSinfo.getOSname().getActivationCodePath(), secret);
-// if (!result) {
-// return R.error("婵�娲诲け璐�");
-// }
-// SystemProperties.SYSTEM_ACTIVATION = Boolean.TRUE;
-// return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦" + DateUtils.convert(exprTime));
-// }
+ @GetMapping(value = "/system/activation/auth")
+ public R activation() {
+ if (SystemProperties.SYSTEM_ACTIVATION) {
+ String activationCode = SystemProperties.getActivationCode(OSinfo.getOSname().getActivationCodePath());
+ String timeStr = AesUtils.decrypt(activationCode, SystemProperties.SALT);
+ if (null == timeStr) {
+ SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
+ return R.error();
+ }
+ Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
+ if (new Date().getTime() < exprTime.getTime()) {
+ return R.ok().add(DateUtils.convert(exprTime));
+ } else {
+ SystemProperties.SYSTEM_ACTIVATION = Boolean.FALSE;
+ return R.error();
+ }
+ } else {
+ return R.error();
+ }
+ }
+
+ @PostMapping(value = "/system/secret/auth")
+ @ManagerAuth
+ public R systemSecret(@RequestParam(value = "secret") String secret) {
+ if (Cools.isEmpty(secret)) {
+ return R.error("璇疯緭鍏ユ縺娲荤爜");
+ }
+ // 楠岃瘉婵�娲荤爜
+ String timeStr = AesUtils.decrypt(secret, SystemProperties.SALT);
+ if (null == timeStr) {
+ return R.error("婵�娲荤爜閿欒");
+ }
+ Date exprTime = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss);
+ if (new Date().getTime() >= exprTime.getTime()) {
+ return R.error("婵�娲荤爜宸插け鏁�");
+ }
+ boolean result = SystemProperties.saveActivationCode(OSinfo.getOSname().getActivationCodePath(), secret);
+ if (!result) {
+ return R.error("婵�娲诲け璐�");
+ }
+ SystemProperties.SYSTEM_ACTIVATION = Boolean.TRUE;
+ return R.ok("婵�娲绘垚鍔燂紝鏈夋晥鏈熻嚦"+DateUtils.convert(exprTime));
+ }
}
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 8e8fcba..bcad0a9 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -12,6 +12,7 @@
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.web.param.SearchLocParam;
import lombok.extern.slf4j.Slf4j;
@@ -50,6 +51,8 @@
private RowLastnoService rowLastnoService;
@Autowired
private WorkService workService;
+ @Autowired
+ private TaskService taskService;
// TODO锛氱О閲嶃�佹媿鐓т笂鎶ュ瓨鍌紝CTU鏂欑杩愯浆
@@ -87,9 +90,9 @@
}
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
- sourceStaNo.setLocType2(param.getLocType1());
- LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+// BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+// sourceStaNo.setLocType2(param.getLocType1());
+ LocTypeDto locTypeDto = new LocTypeDto();
StartupDto dto = null;
switch (param.getIoType()) {
@@ -153,7 +156,7 @@
EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
emptyPlateOutParam.setOutSite(12);
emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
- WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
+ WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50);
return R.ok(!Cools.isEmpty(wrkMast)? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
}
@@ -163,7 +166,7 @@
@Transactional
public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+// BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
// List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
// List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
@@ -190,7 +193,7 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("Y");
- wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+ wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
// 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiTime(now);
@@ -221,11 +224,11 @@
throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
}
// 鏇存柊婧愮珯鐐逛俊鎭�
- sourceStaNo.setWrkNo(workNo);
- sourceStaNo.setModiTime(now);
- if (!basDevpService.updateById(sourceStaNo)){
- throw new CoolException("鏇存柊婧愮珯澶辫触");
- }
+// sourceStaNo.setWrkNo(workNo);
+// sourceStaNo.setModiTime(now);
+// if (!basDevpService.updateById(sourceStaNo)){
+// throw new CoolException("鏇存柊婧愮珯澶辫触");
+// }
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("O")){
@@ -294,4 +297,48 @@
return dto;
}
+ @PostMapping("/createAGVMoveTask")
+ @ResponseBody
+ public synchronized R createAGVMoveTask(@RequestBody WrkMast wrkMast){
+ if (Cools.isEmpty(wrkMast)){
+ return R.error("鍑哄簱鏃跺垱寤篈GV鎼繍绌烘枡鏋朵换鍔′笉鑳戒负绌�");
+ }
+ //鏌ョ湅鏄惁鏈夌浉鍏崇殑AGV鎼繍浠诲姟瀛樺湪
+ List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
+ .in("sta_no", wrkMast.getStaNo(),wrkMast.getMemo())
+ .or()
+ .in("source_sta_no", wrkMast.getStaNo(),wrkMast.getMemo()));
+ if (!tasks.isEmpty()){
+ return R.error("鏈夊鍫嗗灈鏈烘帴椹崇珯鐐圭殑AGV鎼繍浠诲姟,鏆傛椂鏃犳硶鐢熸垚AGV鎼繍浠诲姟");
+ }
+ //鐢熸垚AGV鎼繍绌烘枡鏋朵换鍔�
+ // 淇濆瓨宸ヤ綔妗�
+ Task task = new Task();
+ Date date = new Date();
+ String TaskNo = wrkMast.getWrkNo()+"-"+date.getTime();
+ task.setWrkNo(wrkMast.getWrkNo())
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(5) // 鍏ュ嚭搴撶姸鎬侊細 5.鍖哄煙鍒扮珯
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("N") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(wrkMast.getStaNo())
+ .setSourceStaNo("E1")//绌烘枡鏋剁紦瀛樺尯E1
+ .setEmptyMk("Y")// 绌烘澘
+ .setBarcode("")// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (!taskService.insert(task)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ return R.ok();
+ }
+
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 07d72b5..c807524 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,5 +1,5 @@
server:
- port: 8089
+ port: 8083
servlet:
context-path: /@pom.build.finalName@
@@ -12,7 +12,7 @@
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: sa@123
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=jgwms
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-ljqwms
# username: sa
# password: Skyouc#23
# url: jdbc:sqlserver://192.168.4.24:1433;databasename=jsxswms
@@ -43,14 +43,14 @@
path: /stock/out/@pom.build.finalName@/logs
super:
- pwd: asrs2023
+ pwd: xltys1995
swagger:
enable: false
#License鐩稿叧閰嶇疆
license:
- subject: integrationasrs
+ subject: jnejc-ljqasrs
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
@@ -131,15 +131,24 @@
#mes瀵规帴
mes:
- url: http://172.26.11.250/dev-api/basicmodel/Api/WMS/
+
+ url: http://172.26.160.5:80/dev-api/basicmodel/WmsFit/Api/
#榛樿鎺ュ彛鎿嶄綔浜哄憳id
defaultUserId: 30
#娴峰悍瀵规帴
hik:
- url: http://127.0.0.1:8089/hik/
+ switch: false
+ url: http://172.26.11.98:80/
#鍗庢檽瀵规帴
hx:
- url: http://127.0.0.1:8089/hx/
+ url: http://172.26.3.131:8300/api/robot/
+ #杞簭浠诲姟涓嬪彂
+ taskNo: controller/task/submit
+ #鍏ョ珯鍏佽
+ inOk: eqpt/notify/product
+ #绂荤珯鍏佽
+
+ #绂荤珯瀹屾垚
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 31cc31b..9db0603 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -125,65 +125,65 @@
<when test="batch != null and batch != ''">
and a.batch = #{batch}
</when>
- <otherwise>
- and (a.batch IS NULL OR a.batch = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.batch IS NULL OR a.batch = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="brand != null and brand != ''">
and a.brand = #{brand}
</when>
- <otherwise>
- and (a.brand IS NULL OR a.brand = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.brand IS NULL OR a.brand = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="standby1 != null and standby1 != ''">
and a.standby1 = #{standby1}
</when>
- <otherwise>
- and (a.standby1 IS NULL OR a.standby1 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.standby1 IS NULL OR a.standby1 = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="standby2 != null and standby2 != ''">
and a.standby2 = #{standby2}
</when>
- <otherwise>
- and (a.standby2 IS NULL OR a.standby2 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.standby2 IS NULL OR a.standby2 = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="standby3 != null and standby3 != ''">
and a.standby3 = #{standby3}
</when>
- <otherwise>
- and (a.standby3 IS NULL OR a.standby3 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.standby3 IS NULL OR a.standby3 = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="boxType1 != null and boxType1 != ''">
and a.box_type1 = #{boxType1}
</when>
- <otherwise>
- and (a.box_type1 IS NULL OR a.box_type1 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.box_type1 IS NULL OR a.box_type1 = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="boxType2 != null and boxType2 != ''">
and a.box_type2 = #{boxType2}
</when>
- <otherwise>
- and (a.box_type2 IS NULL OR a.box_type2 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.box_type2 IS NULL OR a.box_type2 = '')-->
+<!-- </otherwise>-->
</choose>
<choose>
<when test="boxType3 != null and boxType3 != ''">
and a.box_type3 = #{boxType3}
</when>
- <otherwise>
- and (a.box_type3 IS NULL OR a.box_type3 = '')
- </otherwise>
+<!-- <otherwise>-->
+<!-- and (a.box_type3 IS NULL OR a.box_type3 = '')-->
+<!-- </otherwise>-->
</choose>
</sql>
<sql id="batchSeqNew">
@@ -545,12 +545,12 @@
<include refid="batchSeqA"></include>
- <if test="locNos != null and locNos.size > 0">
- and b.loc_no not in
- <foreach item="item" collection="locNos" index="index" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
+<!-- <if test="locNos != null and locNos.size > 0">-->
+<!-- and b.loc_no not in-->
+<!-- <foreach item="item" collection="locNos" index="index" separator="," open="(" close=")">-->
+<!-- #{item}-->
+<!-- </foreach>-->
+<!-- </if>-->
order by
DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 66cbbeb..37b366b 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -9,7 +9,7 @@
</resultMap>
<select id="selectToBeCompleteData" resultType="com.zy.asrs.entity.Task">
- select * from agv_task where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
+ select * from agv_task where wrk_sts = 305 order by upd_mk,error_time,io_time,wrk_no
</select>
</mapper>
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 2d7e421..02f8087 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -88,9 +88,9 @@
</update>
<select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
- select * from asr_wrk_detl where order_no = #{orderNo}
+ select * from asr_wrk_detl where order_no = #{orderNo} and danger != 1
union
- select * from asr_wrk_detl_log where order_no = #{orderNo}
+ select * from asr_wrk_detl_log where order_no = #{orderNo} and danger != 1
</select>
<update id="updateInspect">
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 3bf62ea..ca66c3c 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/jgwms";
+var baseUrl = "/ljqwms";
// 璇︽儏绐楀彛-楂樺害
var detailHeight = '80%';
diff --git a/src/main/webapp/views/login.html b/src/main/webapp/views/login.html
index 23f1ef0..ca0a611 100644
--- a/src/main/webapp/views/login.html
+++ b/src/main/webapp/views/login.html
@@ -134,12 +134,14 @@
}
let params = {username: username, password: hex_md5(password)}
$.ajax({
- url: baseUrl + "/login.action",
- headers: {'Content-Type': 'application/json'},
- data: JSON.stringify(params),
+ url: baseUrl+"/login.action",
+ data: {
+ username: username,
+ password: hex_md5(password)
+ },
method: 'POST',
success: function (res) {
- if (res.code === 200) {
+ if (res.code === 200){
localStorage.setItem("token", res.data.token);
localStorage.setItem("username", res.data.username);
window.location.href = "index.html";
@@ -149,9 +151,6 @@
layer.tips(res.msg, '#username', {tips: [4, '#ff0000']});
} else if (res.code === 10003) {
layer.tips(res.msg, '#password', {tips: [4, '#ff0000']});
- } else if (res.code == 20001) {
- layer.tips(res.msg, '.login-btn', {tips: [3, '#ff0000']});
- $("#updateLicense").show()
} else {
layer.tips(res.msg, '.login-btn', {tips: [3, '#ff0000']});
}
--
Gitblit v1.9.1