From 8b6c03b3f14f1e140c2ab694f1e2a3bbc123d7f4 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期六, 13 八月 2022 16:32:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 180 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 143 insertions(+), 37 deletions(-)
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 2268ad4..6fad629 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -533,14 +533,16 @@
continue;
}
- //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
- if(crnThread.isBackHpFlag()){
- continue;
- }
+// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
+// if(crnThread.isBackHpFlag()){
+// continue;
+// }
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
&& crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+ // 搴撲綅绉昏浆
+ this.stnToStn(crn, crnProtocol);
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
if (crnProtocol.getLastIo().equals("I")) {
if (basCrnp.getInEnable().equals("Y")) {
@@ -1412,7 +1414,7 @@
ledCommand.setStaNo(wrkMast.getStaNo());
if (wrkMast.getIoType() != 110) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatNo(), wrkDetl.getMatName(), wrkDetl.getQty())));
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
}
commands.add(ledCommand);
}
@@ -1557,7 +1559,7 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
- wrkDetl.setQty(locDetl.getQty());
+ wrkDetl.setAnfme(locDetl.getAnfme());
VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setModiTime(now);
@@ -1674,7 +1676,7 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
- wrkDetl.setQty(locDetl.getQty());
+ wrkDetl.setAnfme(locDetl.getAnfme());
VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setModiTime(new Date());
@@ -1905,52 +1907,156 @@
}
/**
+ * 绔欏埌绔� ===>> 鍫嗗灈鏈�109绔欏埌108绔�
+ * 109闃茬垎娌欑绔欑偣 鍑哄簱 鍒� 108绔欑偣
+ */
+ public void stnToStn(CrnSlave slave, CrnProtocol crnProtocol){
+ for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+ if(crnStn.getStaNo()!=109){ continue; }
+
+ boolean flag = false;
+ // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ continue;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) {
+ flag = true;
+ }
+
+ StaProtocol staProtocol1 = devpThread.getStation().get(108);
+ if (staProtocol1 == null) {
+ continue;
+ } else {
+ staProtocol1 = staProtocol1.clone();
+ }
+ if (!staProtocol1.isAutoing() || staProtocol1.isLoading() || staProtocol1.getWorkNo() != 0 || !staProtocol1.isOutEnable()) {
+ flag = false;
+ }
+
+ if (!flag) {
+ continue;
+ }
+
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ continue;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo((short)9999); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short)2); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short)19); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short)1); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 1, JSON.toJSON(crnCommand));
+ } else {
+ }
+ }
+ }
+
+ /**
* 鏍规嵁PLC鎸夐挳娴嬭瘯淇″彿锛屽彂閫佸惎鍔ㄧ敵璇峰埌娴嬭瘯绯荤粺
*/
+ @Transactional
public void startTest() {
try {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
if(null != devpThread){
- if (devpThread.startSignal1 == 1){
- TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
- .eq("channel",1).eq("status",0));
- if(null != testMast){
- Date now = new Date();
- //http璇锋眰娴嬭瘯
- TestDto testDto = new TestDto();
- testDto.setLocNo(testMast.getLocNo());
- testDto.setBarcode(testMast.getBarcode());
- testDto.setUserId(testMast.getUserId());
- testDto.setRequestTime(DateUtils.convert(now));
- String response = new HttpHandler.Builder()
- .setUri(testUrl)
- .setPath("/testUrlPath")
- .setJson(JSON.toJSONString(testDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- //鏇存柊娴嬭瘯琛ㄧ姸鎬�
- testMast.setStatus(1);
- testMast.setModiTime(now);
- testMastService.update(testMast,new EntityWrapper<TestMast>()
- .eq("channel",1).eq("status",0));
- //澶嶄綅PLC淇″彿
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, 0));
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿},request锛歿},response锛歿}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response);
- }
-
+ int channel = 0;
+ for (int i = 0; i < 4; i++){
+ switch (i){
+ case 0:
+ channel = devpThread.startSignal1;
+ break;
+ case 1:
+ channel = devpThread.startSignal2;
+ break;
+ case 2:
+ channel = devpThread.startSignal3;
+ break;
+ case 3:
+ channel = devpThread.startSignal4;
+ break;
}
+ if (channel == 1){
+ TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
+ .eq("channel",(i+1)).eq("status",0));
+ if(null != testMast){
+ Date now = new Date();
+ //http璇锋眰娴嬭瘯
+ TestDto testDto = new TestDto();
+ testDto.setLocNo(testMast.getLocNo());
+ testDto.setBarcode(testMast.getBarcode());
+ testDto.setUserId(testMast.getUserId());
+ testDto.setRequestTime(DateUtils.convert(now));
+ String response = new HttpHandler.Builder()
+ .setUri(testUrl)
+ .setPath("/testUrlPath")
+ .setJson(JSON.toJSONString(testDto))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ //鏇存柊娴嬭瘯琛ㄧ姸鎬�
+ testMast.setStatus(1);
+ testMast.setModiTime(now);
+ if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
+ .eq("channel",1).eq("status",0))){
+ throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+ }
+// //鏇存柊搴撲綅鐘舵�侊紝閿佸畾pack鐘舵�侊紝绂佹鍏ュ嚭搴撲綔涓�
+// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo()));
+// if(null != locMast){
+// locMast.setPackStatus(2);//娴嬭瘯涓�
+// locMast.setModiTime(now);
+// if(!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo()))){
+// throw new CoolException("浜у搧寮�濮嬫祴璇曪紝鏇存柊鐩爣搴撲綅閿佸畾鐘舵�佸け璐�");
+// }
+// }
+ //澶嶄綅PLC淇″彿
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, i*2));
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿},request锛歿},response锛歿}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response);
+ }
+
+ }
+ }
+
}
+
}
}
} catch (Exception e) {
+ log.error("鍚姩娴嬭瘯 ===>> 鍚姩娴嬭瘯澶辫触", e);
e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
--
Gitblit v1.9.1