From 442fce2fa9c6d8d4fe7b1f2a22d66c03b07975e5 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期二, 14 五月 2024 17:07:25 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 176 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 03ff560..5a91cb0 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -1,14 +1,19 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.entity.param.LocMoveParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
+import com.zy.common.service.AgvCommonService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -44,6 +49,12 @@
private AgvWrkMastService agvWrkMastService;
@Autowired
private AgvWorkService agvWorkService;
+ @Autowired
+ private AgvWrkDetlService agvWrkDetlService;
+ @Autowired
+ private AgvLocMastService agvLocMastService;
+ @Autowired
+ private AgvCommonService agvCommonService;
/*
@@ -90,6 +101,74 @@
}
/*
+ 鍐嶆鎷f枡
+ */
+ @Override
+ @Transactional
+ public String pickAgain(PickParam pickParams, Long userId) {
+ Date now = new Date();
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo()));
+
+ for (PickParam.Pick pick : pickParams.getPicks()) {
+ if (pick.getCount().equals(0D)) continue;
+ AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()));
+ if (Cools.isEmpty(agvWrkDetl)) {
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ Mat mat = matService.selectByMatnr(pick.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
+ }
+ wrkDetl.sync(mat);
+ wrkDetl.setWrkNo(pickParams.getWrkNo());
+ wrkDetl.setOrderNo(pick.getOrderNo());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+ wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setThreeCode(pick.getThreeCode());
+ agvWrkDetlService.insert(wrkDetl);
+ } else {
+ Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
+ agvWrkDetl.setAnfme(anfme);
+ agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()));
+
+ }
+
+
+ // 鏇存柊璁㈠崟
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()));
+ orderDetl.setQty(orderDetl.getQty() + pick.getCount());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+pick.getOrderNo()+pick.getMatnr());
+ }
+ }
+ // 纭鏄惁鍏ㄩ儴鍑哄簱
+ int sameNumber = 0;
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo()));
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr())
+ && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())
+ && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode())
+ && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) {
+ sameNumber++;
+ }
+ }
+ }
+ if (agvLocDetls.size() == sameNumber) {
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ agvWrkMast.setIoType(101);
+ agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ }
+
+
+ return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�";
+ }
+
+ /*
AGV鏃犲崟缁勬墭
*/
private void NoOrderComb(CombParam param, Long userId){
@@ -101,6 +180,8 @@
syncWaitPakin(detlDto,"",param.getBarcode(),userId,now);
});
}
+
+
/*
AGV鏈夊崟缁勬墭
@@ -280,4 +361,99 @@
}
+ /*
+ 鎵嬪姩绉诲簱
+ */
+ @Override
+ @Transactional
+ public String handControlLocMove(LocMoveParam param, Long userId) {
+ String fl = String.valueOf(param.getFloor());
+ short floor =(short)Integer.parseInt(fl.substring(0, 1));
+ Integer ioType = 0;
+ AgvLocMast agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", param.getLocNo()));
+ if (Cools.isEmpty(agvLocMast)) {
+ throw new CoolException("褰撳墠搴撲綅涓虹┖锛岃妫�鏌ュ簱浣嶏紒");
+ }
+// if (agvLocMast.getLocSts() == "F") {
+// return R.error("褰撳墠搴撲綅涓嶄负鍦ㄥ簱锛屾垨鑰呯┖璐ф灦锛屼笉鏀寔绉诲簱");
+
+ // 鏍¢獙妤煎眰
+ if (agvLocMast.getLocType1() != 3) { // 涓嶄负绠卞3鍖哄煙
+ if (agvLocMast.getFloor() != floor) {
+ throw new CoolException("褰撳墠搴撲綅涓嶆敮鎸佽法妤煎眰杞Щ");
+ } else {
+ ioType = 11;
+ }
+ } else {
+ ioType = 12;
+ }
+ Date now = new Date();
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("褰撳墠妤煎眰娌℃湁绌哄簱浣�");
+ }
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(201L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(ioType);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(locMast.getLocNo());
+ //瀹瑰櫒缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //瀹瑰櫒绫诲瀷
+ mast.setWhsType(30);
+
+ mast.setAppeUser(userId);
+ mast.setAppeTime(now);
+ mast.setModiUser(userId);
+ mast.setModiTime(now);
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ if (!agvLocMast.getLocSts().equals("F")) {
+ AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+ //鐢熸垚宸ヤ綔妗f槑缁�
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+ agvLocDetls.forEach(agvLocDetl -> {
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ wrkDetl.setWrkNo(mast1.getWrkNo());
+ wrkDetl.sync(agvLocDetl);
+ wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAppeUser(9527L);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(9527L);
+ wrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ }
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(agvLocMast,"P");
+ updateAgvLocMast(locMast,"Q");
+ return "ok";
+ }
+
+ /*
+ 鏇存柊鐩爣搴撲綅淇℃伅
+ */
+ private void updateAgvLocMast(AgvLocMast locMast, String locSts){
+ locMast.setLocSts(locSts);
+ agvLocMastService.updateById(locMast);
+ }
+
}
--
Gitblit v1.9.1