From 1b230d7961b2d5068298f0cba13287cabd2fd649 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 17 七月 2024 18:47:35 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 57 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 43 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 73433b6..8d5d43a 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -4,22 +4,31 @@
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.AgvLocDetl;
+import com.zy.asrs.entity.AgvWaitPakin;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Slf4j
@Service
public class AgvWrkMastHandler extends AbstractHandler<String> {
+
+ @Value("${agvBasDev.maxWorkNum}")
+ private int maxWrokNum;
@Autowired
private AgvWrkMastService agvWrkMastService;
@@ -53,10 +62,10 @@
agvWrkMastService.updateById(agvWrkMast);
if(agvWrkMast.getIoType() == 10){
// 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D");
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode());
}else{
//淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F");
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
}
//鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
agvWrkMastLogService.save(agvWrkMast);
@@ -78,7 +87,7 @@
//鏇存柊搴撳瓨鏄庣粏
agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O");
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","");
}
//鍒犻櫎AGV宸ヤ綔妗�
@@ -109,7 +118,7 @@
agvWrkMast.setWrkSts(207L);
agvWrkMastService.updateById(agvWrkMast);
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O");
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","");
if(agvWrkMast.getIoType() == 101){
//鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
@@ -158,7 +167,6 @@
continue;
}
}
-
//202.RCS鍙栬揣涓�
agvWrkMast.setWrkSts(202L);
agvWrkMastService.updateById(agvWrkMast);
@@ -167,16 +175,21 @@
agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
}
}
-
return SUCCESS;
}
-
return FAIL;
}
@Transactional
public ReturnT<String> startCarryWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
+ //log.info(agvWrkMastList.toString());
+ //浠诲姟杩囨护锛岃繃婊ゆ帀宸插瓨鍦ㄧ浉鍚岀洰鏍囧簱浣嶇殑宸ヤ綔妗�
+ //agvWrkMastList = filter(agvWrkMastList);
int code = agvWrkMastService.startWrk(agvWrkMastList,"carry");
+ //log.info(agvWrkMastList.toString());
+ if (Cools.isEmpty(agvWrkMastList)){
+ return SUCCESS;
+ }
if(code == 0){
agvWrkMastList.forEach(agvWrkMast -> {
//202.RCS鍙栬揣涓�
@@ -191,17 +204,20 @@
return FAIL;
}
+ @Synchronized
+ @Transactional
public ReturnT<String> dealWatiWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
agvWrkMastList.forEach(agvWrkMast -> {
- //瀵绘壘绌虹珯鐐逛綅缃�
- AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(agvWrkMast.getLocNo());
- if(!Cools.isEmpty(agvBasDevp)){
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
- agvWrkMast.setLocNo(agvBasDevp.getDevNo());
+ //鏌ヨ璇ョ珯鐐规墍鏈夋殏瀛樹綅鍦ㄥ伐浣滄。涓嚭鐜扮殑娆℃暟
+ List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo());
+ //鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝
+ Map<String, Object> devNoMap = devNoMaps.get(0);
+ if((int)devNoMap.get("num") < maxWrokNum){
+ agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
agvWrkMastService.updateById(agvWrkMast);
+ log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
}
-
});
return SUCCESS;
@@ -229,4 +245,17 @@
}
}
}
+
+ private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){
+ return agvWrkMastList.stream().filter(agvWrkMast -> {
+ AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo()));
+ if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){
+ System.out.println("source_loc_no > 1");
+ return false;
+ }
+ log.info(agvWrkMast.toString());
+ int num = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvWrkMast.getLocNo()));
+ return num <= maxWrokNum;
+ }).collect(Collectors.toList());
+ }
}
--
Gitblit v1.9.1