From 759cd0e706e252e907955073eed8e4935b21d9c8 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 31 十二月 2025 08:13:48 +0800
Subject: [PATCH] 1.修复拣料回库时拣料出库转历史档 2.生成移动任务修复 3.完善agv搬运入库出库申请
---
src/main/java/com/zy/common/model/MatDto.java | 10 +
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 8
src/main/java/com/zy/asrs/controller/OpenController.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 264 ++++++++++++++++---------------------
src/main/java/com/zy/asrs/entity/WrkMast.java | 3
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 68 +++++++--
src/main/resources/mapper/WrkMastMapper.xml | 2
src/main/java/com/zy/asrs/entity/WrkMastLog.java | 3
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java | 25 +++
src/main/java/com/zy/core/MainProcess.java | 10
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 2
src/main/resources/application.yml | 2
12 files changed, 217 insertions(+), 182 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 05d7a1f..c720da5 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -61,7 +61,7 @@
// 鍙嶉浠诲姟鎵ц缁撴灉
@GetMapping("/api/robot/reporter/task1")
public void reporterTask1(){
- Integer sourceStaNo = 401;
+ Integer sourceStaNo = 402;
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index a6d4448..9629ac2 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -25,6 +25,9 @@
private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
/**
* 宸ヤ綔鍙�
*/
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index 3af66ed..341ed84 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -51,6 +51,9 @@
@TableField("whs_type")
private Integer whsType;
+ @ApiModelProperty("鏃ュ織ID")
+ private Long logId;
+
/**
* 宸ヤ綔鐘舵��
*/
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 0365a07..d4d3e98 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -101,6 +101,8 @@
@Autowired
private HikUtils hikUtils;
+ @Autowired
+ private AgvTaskServiceImpl agvTaskService;
/**
* 缁勬墭
@@ -129,6 +131,38 @@
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ // 灏哄妫�娴嬪紓甯�
+ boolean back = false;
+ String errMsg = "";
+ if (staProtocol.isFrontError()) {
+ errMsg = "鍓嶈秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isBackError()) {
+ errMsg = "鍚庤秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isHighError()) {
+ errMsg = "楂樿秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isLeftError()) {
+ errMsg = "宸﹁秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isRightError()) {
+ errMsg = "鍙宠秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isWeightError()) {
+ errMsg = "瓒呴噸";
+ back = true;
+ }
+ if (!back && staProtocol.isBarcodeError()) {
+ errMsg = "鎵爜澶辫触";
+ back = true;
+ }
+
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (!staProtocol.isLoading()) {
continue;
@@ -142,10 +176,25 @@
&& staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+ if (back) {
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = errMsg;
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+ }
+ log.error("杈撻�佺嚎寮傚父缁勬墭閫�鍥�={}",errMsg);
+ staProtocol.setWorkNo((short) 9999);
+
+ staProtocol.setStaNo((short) 0);
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ continue;
+ }
+
String barcode = barcodeThread.getBarcode();
if (!Cools.isEmpty(barcode)) {
News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)|| "00000000".equals(barcode)) {
// staProtocol.setWorkNo((short) 9992);
// staProtocol.setStaNo(inSta.getBackSta().shortValue());
// devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -541,7 +590,7 @@
if (staProtocol.isAutoing()
&& staProtocol.isLoading()
&& staProtocol.isInEnable()
- && staProtocol.getWorkNo() > 0
+ && staProtocol.getWorkNo() == 9991
&& staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
@@ -550,7 +599,21 @@
if (barcodeThread == null) {
continue;
}
+
+ String name="401";
+ if (staProtocol.getSiteId()==402){
+ name = "402";
+ }
+ String bar = "";
+ Config name1 = configService.selectOne(new EntityWrapper<Config>().eq("name", name));
+ if (!Cools.isEmpty(name1)) {
+ bar = name1.getValue();
+ }
+
String barcode = barcodeThread.getBarcode();
+ if (barcode.equals("00000000")){
+ barcode = bar;
+ }
if (!Cools.isEmpty(barcode)) {
News.info("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", insta.getBarcode(), barcode);
if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -607,7 +670,8 @@
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
}
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
}
@@ -705,12 +769,12 @@
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading()) {
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
- && (crnProtocol.statusType == CrnStatusType.PUTTING || crnProtocol.statusType == CrnStatusType.WAITING)) {
+ && crnProtocol.statusType == CrnStatusType.WAITING) {
//鏀捐揣涓� 鎴� 绛夊緟纭
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
@@ -719,9 +783,6 @@
.eq("loc_no", wrkMast.getSourceLocNo()));
short staNo = wrkMast.getStaNo().shortValue();
- if (wrkMast.getStaNo() == 1004) {
- staNo = 2003;
- }
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
@@ -1169,7 +1230,7 @@
}
//鏌ヨ鍦ㄥ簱淇℃伅
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_sts", "R")
+ .in("loc_sts", "R","P")
.eq("loc_no", wrkMast.getSourceLocNo()));
if (Cools.isEmpty(locMast)) {
News.error("鍑哄簱 ===>> 搴撲綅涓病鏈夎繖绗旇祫鏂�", wrkMast.getSourceLocNo());
@@ -1200,11 +1261,16 @@
}
}
- // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+ // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��&& staProtocol.isOutEnable()
if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable() && staProtocol.isEmptyOutType()) {
+ && staProtocol.isEmptyOutType()) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ //鍒ゆ柇鏄惁鏈夋鍦ㄦ墽琛屼腑鐨凙GV浠诲姟
+ List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", staProtocol.getSiteId()));
+ if (agvTasks != null && agvTasks.size() > 0) {
+ continue;
+ }
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
// continue;
@@ -2007,9 +2073,8 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
// 鍛戒护闆嗗悎
List<LedCommand> commands = new ArrayList<>();
-// // 宸ヤ綔妗i泦鍚�
-// List<WrkMast> wrkMasts = new ArrayList<>();
- List<Integer> workNoList = new ArrayList<>();
+ // 宸ヤ綔妗i泦鍚�
+ List<WrkMast> wrkMasts = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -2018,48 +2083,20 @@
} else {
staProtocol = staProtocol.clone();
}
- Integer wrkNo = null;
- Integer ioType = null;
- Integer targetStaNo = null;
- String sourceLocNo = null;
- String locNo = null;
- String barcode = null;
-
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
if (null == wrkMast) {
- List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>()
- .eq("wrk_no", staProtocol.getWorkNo())
- .orderBy("modi_time", false)
- );
- if (wrkMastLogs.isEmpty()) {
- continue;
- }
-
- WrkMastLog wrkMastLog = wrkMastLogs.get(0);
- wrkNo = wrkMastLog.getWrkNo();
- ioType = wrkMastLog.getIoType();
- sourceLocNo = wrkMastLog.getSourceLocNo();
- locNo = wrkMastLog.getLocNo();
- targetStaNo = wrkMastLog.getStaNo();
- barcode = wrkMastLog.getBarcode();
- }else {
- wrkNo = wrkMast.getWrkNo();
- ioType = wrkMast.getIoType();
- sourceLocNo = wrkMast.getSourceLocNo();
- locNo = wrkMast.getLocNo();
- targetStaNo = wrkMast.getStaNo();
- barcode = wrkMast.getBarcode();
+ continue;
}
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
- workNoList.add(wrkNo);
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
+ wrkMasts.add(wrkMast);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
- ledCommand.setWorkNo(wrkNo);
- ledCommand.setIoType(ioType);
+ ledCommand.setWorkNo(wrkMast.getWrkNo());
+ ledCommand.setIoType(wrkMast.getIoType());
// 鍑哄簱妯″紡
- switch (ioType) {
+ switch (wrkMast.getIoType()) {
case 1:
ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
break;
@@ -2092,104 +2129,34 @@
ledCommand.setTitle("骞舵澘鍏ュ簱");
break;
default:
- News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkNo, ioType);
+ News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
break;
}
- ledCommand.setSourceLocNo(sourceLocNo);
- ledCommand.setLocNo(locNo);
- ledCommand.setStaNo(targetStaNo);
- ledCommand.setBarcode(barcode);
+ ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+ ledCommand.setLocNo(wrkMast.getLocNo());
+ ledCommand.setStaNo(wrkMast.getStaNo());
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
- if (ioType != 110 && ioType != 10) {
- List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkNo);
-
- if (!wrkDetls.isEmpty()) {
- WrkDetl wrkDetl = wrkDetls.get(0);
- double anfme = 0D;
- double weight = 0D;
- for (WrkDetl detl : wrkDetls) {
- anfme += detl.getAnfme();
- weight += detl.getWeight();
- wrkDetl.setAnfme(anfme);
- wrkDetl.setWeight(weight);
- }
-
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
- .eq("loc_no", wrkMast.getSourceLocNo()));
- double totalAnfme = 0D;
- double totalWeight = 0D;
- for (LocDetl locDetl : locDetls) {
- totalAnfme += locDetl.getAnfme();
- totalWeight += locDetl.getWeight();
- }
- wrkDetl.setStockNum(totalAnfme);
- wrkDetl.setStockNum2(totalWeight);
-
- ledCommand.getMatDtos().add(new MatDto(
- wrkDetl.getMatnr()
- , wrkDetl.getMaktx()
- , wrkDetl.getAnfme()
- , wrkDetl.getWeight()
- , wrkDetl.getStockNum()
- , wrkDetl.getStockNum2()
- , wrkDetl.getSpecs()
- , wrkDetl.getSku()
- , wrkDetl.getZpallet()
- , wrkDetl.getModel()
- , wrkDetl.getSupp()
- , wrkDetl.getKpCstmrName()
- , wrkDetl.getOrderNo()
- , wrkDetl.getCstateid$()
- ));
-
- }else {
- List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectTodayByWrkNo(wrkNo);
- if(!wrkDetlLogs.isEmpty()) {
- WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
-
- double anfme = 0D;
- double weight = 0D;
- for (WrkDetlLog detl : wrkDetlLogs) {
- anfme += detl.getAnfme();
- weight += detl.getWeight();
- wrkDetlLog.setAnfme(anfme);
- wrkDetlLog.setWeight(weight);
+ if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+ try{
+ if (wrkMast.getIoType()>100){
+ for (WrkDetl wrkDetl : wrkDetls){
+ LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
+ wrkDetl.setWeight(locDetl.getAnfme());
}
-
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
- .eq("loc_no", sourceLocNo));
- double totalAnfme = 0D;
- double totalWeight = 0D;
- for (LocDetl locDetl : locDetls) {
- totalAnfme += locDetl.getAnfme();
- totalWeight += locDetl.getWeight();
+ }else {
+ for (WrkDetl wrkDetl : wrkDetls){
+ wrkDetl.setWeight(wrkDetl.getAnfme());
}
- wrkDetlLog.setStockNum(totalAnfme);
- wrkDetlLog.setStockNum2(totalWeight);
-
- ledCommand.getMatDtos().add(new MatDto(
- wrkDetlLog.getMatnr()
- , wrkDetlLog.getMaktx()
- , wrkDetlLog.getAnfme()
- , wrkDetlLog.getWeight()
- , wrkDetlLog.getStockNum()
- , wrkDetlLog.getStockNum2()
- , wrkDetlLog.getSpecs()
- , wrkDetlLog.getSku()
- , wrkDetlLog.getZpallet()
- , wrkDetlLog.getModel()
- , wrkDetlLog.getSupp()
- , wrkDetlLog.getKpCstmrName()
- , wrkDetlLog.getOrderNo()
- , wrkDetlLog.getCstateid$()
- ));
}
+ }catch (Exception e){
+ log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
}
-
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
}
commands.add(ledCommand);
}
- Set<Integer> workNos = new HashSet<>(workNoList);
+ Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
// 鑾峰彇LED绾跨▼
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
// 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
@@ -2220,22 +2187,19 @@
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
continue;
- } else {
+ }else {
ledThread.setLedMk(false);
}
}
try {
// 淇敼涓绘。led鏍囪
- for (Integer wrkNo : workNoList) {
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
- if (wrkMast != null) {
- wrkMast.setOveMk("Y");
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
- throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
- }
+ for (WrkMast wrkMast : wrkMasts) {
+ wrkMast.setOveMk("Y");
+ wrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ News.errorNoLog(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�");
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
}
}
@@ -2248,7 +2212,7 @@
}
}
- News.infoNoLog("" + mark + " - 0" + " - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
+ News.infoNoLog(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
}
/**
@@ -2256,7 +2220,7 @@
*/
public synchronized void ledReset(Integer mark) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
for (LedSlave led : slaveProperties.getLed()) {
// 鑾峰彇杈撻�佺嚎plc绾跨▼
@@ -2280,13 +2244,13 @@
if (reset && !ledThread.isLedMk()) {
ledThread.setLedMk(true);
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
- News.error("" + mark + " - 1" + " - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ News.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
} else {
}
}
}
- News.infoNoLog("" + mark + " - 0" + " - 鎵ц瀹屾垚锛氬叾浠� ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+ News.infoNoLog(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠� ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
}
/**
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 995b198..2ef3390 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -77,26 +77,44 @@
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
//wcs鍙嶉rcs缁х画鎵ц
if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
- String url = HIK_URL + "api/robot/controller/task/extend/continue";
- String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
- if (!StringUtils.isEmpty(response) && response.contains("code")) {
- RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
- if ("SUCCESS".equals(rcsReturn1.getCode())) {
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ log.info("鍏佽AGV鏀捐揣鎴愬姛");
+ }
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
//鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
- log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
if (result) {
+ log.info("鍏ュ簱绔欑偣={}瑙﹀彂鎵爜鎴愬姛", staProtocol.getSiteId());
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ log.info("鍏佽AGV鏀捐揣鎴愬姛");
+ }
} else {
// 杩斿洖RCS
rcsReturn.setCode("Err_Internal");
@@ -106,7 +124,6 @@
rcsReturn.setData(data);
}
}
- }
}
}
break;
@@ -116,10 +133,19 @@
Integer sourceStaNo = Integer.valueOf(task.getStaNo());
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ Boolean boo=false;
+ Short wrkNo = 9991;
//鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- if (staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
- staProtocol.setWorkNo((short) 9991);
- staProtocol.setStaNo(Short.valueOf(task.getStaNo()));
+ //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
+ if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0){
+ boo=true;
+ wrkNo = 9995;
+ }else if(!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0){
+ boo=true;
+ }
+ if (boo) {
+ staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
+ staProtocol.setStaNo(Short.valueOf("0"));
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
if (result) {
@@ -141,6 +167,13 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
}
}
break;
@@ -150,9 +183,8 @@
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
//鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
- if (staProtocol != null && staProtocol.isLoading()
- && staProtocol.isEmptyOutType()
- && staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) {
+ if (staProtocol != null && (staProtocol.isLoading()||task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
+ && staProtocol.isEmptyOutType()) {
RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
rcsTaskContinue.setTriggerType("TASK");
@@ -187,7 +219,7 @@
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
//鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType() && staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) {
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
staProtocol.setWorkNo((short) 0);
staProtocol.setStaNo((short) 0);
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
index 5d9b9c3..c45c107 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -1,17 +1,40 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastLogMapper;
import com.zy.asrs.entity.WrkMastLog;
import com.zy.asrs.service.WrkMastLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.service.WrkMastService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.Objects;
@Service("wrkMastLogService")
public class WrkMastLogServiceImpl extends ServiceImpl<WrkMastLogMapper, WrkMastLog> implements WrkMastLogService {
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
@Override
public boolean save(Integer workNo) {
- return this.baseMapper.save(workNo) > 0;
+ WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
+ if (Objects.isNull(mast)) {
+ throw new CoolException("鏁版嵁閿欒锛氫换鍔′笉瀛樺湪锛侊紒");
+ }
+ WrkMastLog mastLog = new WrkMastLog();
+ BeanUtils.copyProperties(mast, mastLog);
+ mastLog.setLogId(mast.getId());
+
+ if (!wrkMastLogService.insert(mastLog)) {
+ throw new CoolException("浠诲姟鏃ュ織淇濆瓨澶辫触锛侊紒");
+ }
+ return true;
}
}
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index 02eb13c..b35f62a 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -71,4 +71,14 @@
this.orderNo = orderNo;
this.cstateid = cstateid;
}
+
+ public MatDto(String matNo, String maktx, Double count,Double total,String specs,String sku) {
+ this.specs = specs;
+ this.matnr = matNo;
+ this.maktx = maktx;
+ this.maknx = maktx;
+ this.count = count;
+ this.total = total;
+ this.sku = sku;
+ }
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index d506c91..1546d1f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -42,12 +42,12 @@
}
// 婕旂ず
- mainService.crnDemoOfLocMove1();
+// mainService.crnDemoOfLocMove1();
// 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
// mainService.ioConvert();
// 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
mainService.generateStoreWrkFile(1); // 缁勬墭
- mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
+// mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱
Thread.sleep(500);
// 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
// mainService.stnToCrnStnPick(3);
@@ -66,7 +66,7 @@
// 绌烘墭鐩樺叆搴�-绔嬪簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
- mainService.storeEmptyPlt(8);
+// mainService.storeEmptyPlt(8);
// 绌烘墭鐩樺叆搴�-浜х嚎
// mainService.storeEmptyPltLine(13);
@@ -83,9 +83,9 @@
// mainService.rgvFinished2(14);
//鍫嗗灈鏈烘棤浠诲姟涓ゅ垎閽燂紝鍥炲叆搴撳彛寰呮満
- mainService.crnMove();
+// mainService.crnMove();
//鍫嗗灈鏈烘湁鍏ュ簱浠诲姟鏃讹紝鍥炲叆搴撳彛寰呮満
- mainService.crnMoveByInTask();
+// mainService.crnMoveByInTask();
} catch (Exception e) {
e.printStackTrace();
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ed0455a..0e9d160 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -181,10 +181,10 @@
crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
- crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
- crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
- crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
- crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+ crnProtocol.setxDistance((short) siemensNet.getByteTransform().TransSingle(result.Content, 40));
+ crnProtocol.setyDistance((short) siemensNet.getByteTransform().TransSingle(result.Content, 44));
+ crnProtocol.setxDuration((short) siemensNet.getByteTransform().TransSingle(result.Content, 48));
+ crnProtocol.setyDuration((short) siemensNet.getByteTransform().TransSingle(result.Content, 52));
// if (slave.getId() == 1) {
// crnProtocol.setCrnLane((int) siemensNet.getByteTransform().TransInt16(result.Content, 56));
// }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index d4e2393..3c25a97 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -238,7 +238,7 @@
//澶栧舰妫�娴�
Integer[] arr={401,402};
- OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.700.0", (short) (arr.length*6));
+ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.702.0", (short) (arr.length*6));
for (int i = 0; i < arr.length; i++) {
StaProtocol staProtocol1 = station.get(arr[i]);
if(resultErr1.IsSuccess){
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 91aa221..0ed5b9f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -147,7 +147,7 @@
# 鍑哄簱鍙�1
outSta[1]:
staNo: 402
- led: ${wcs-slave.led[0].id}
+ led: ${wcs-slave.led[1].id}
# 杈撻�佺嚎2
# devp[1]:
# id: 2
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 6cb9a59..bbba8b9 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -104,7 +104,7 @@
</select>
<select id="selectPickStep" resultMap="BaseResultMap">
- select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)
+ select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=20 and (io_type=103 or io_type=107 or io_type=104)
</select>
<select id="selectPakOutStep1" resultMap="BaseResultMap">
--
Gitblit v1.9.1