From eab4454169760cbbbf80226caca08f545c516464 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 24 十月 2024 16:48:37 +0800
Subject: [PATCH] mes调用立即出库
---
src/main/java/com/zy/asrs/service/WorkService.java | 6 ++
src/main/java/com/zy/asrs/controller/OpenController.java | 11 +--
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 86 ++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 4
src/main/java/com/zy/asrs/service/OpenService.java | 4
src/main/java/com/zy/asrs/entity/param/OutBoundParam.java | 24 ++++++++
6 files changed, 123 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 30bd744..adc21bc 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,7 +8,6 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.OpenService;
-import com.zy.common.model.LocDto;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -72,16 +71,16 @@
}
@PostMapping("/outbound")
- @AppAuth(memo = "AGV鍑哄簱璋冪敤")
+ @AppAuth(memo = "MES璋冪敤鍑哄簱")
public synchronized R outbound(@RequestHeader(required = false) String appkey,
- @RequestBody(required = false) List<LocDto> locDtos,
+ @RequestBody(required = false) OutBoundParam param,
HttpServletRequest request) throws InterruptedException {
- auth(appkey, locDtos, request);
- if (Cools.isEmpty(locDtos)) {
+ auth(appkey, param, request);
+ if (Cools.isEmpty(param.getEndLocation(),param.getLocDtos())) {
return R.parse(BaseRes.PARAM);
}
- return openService.outbound(locDtos);
+ return openService.outbound(param.getLocDtos(),param.getEndLocation());
}
@PostMapping("/order/matSync/default/v1")
diff --git a/src/main/java/com/zy/asrs/entity/param/OutBoundParam.java b/src/main/java/com/zy/asrs/entity/param/OutBoundParam.java
new file mode 100644
index 0000000..3e6794f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/OutBoundParam.java
@@ -0,0 +1,24 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.common.model.LocDto;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description MES璋冪敤鍑哄簱鍏ュ弬
+ * @createDate 2024/10/24 16:24
+ */
+@Data
+public class OutBoundParam {
+ /**
+ * 鍦扮爜
+ */
+ private String endLocation;
+
+ /**
+ * 鐗╂枡鏄庣粏
+ */
+ private List<LocDto> locDtos;
+}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 0796874..3667cf5 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -21,9 +21,9 @@
R barcodeVerificatio(String barcode);
/**
- * AGV鍑哄簱璋冪敤
+ * MES璋冪敤鍑哄簱
*/
- R outbound(List<LocDto> locDtos) throws InterruptedException;
+ R outbound(List<LocDto> locDtos,String endLocation) throws InterruptedException;
/**
* 娣诲姞鍏ュ簱鍗�
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 99fdc5e..61750ed 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -38,6 +38,12 @@
void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
/**
+ * mes璋冪敤鍑哄簱
+ * @param endLocation 鍦扮爜
+ */
+ void stockOut(BasDevp staNo, TaskDto taskDto, Long userId,String endLocation);
+
+ /**
* 绌烘澘鍏ュ簱
* @return 搴撲綅鍙�
*/
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index be9b476..c04b55a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -163,7 +163,7 @@
@Override
@Transactional
- public R outbound(List<LocDto> locDtos) throws InterruptedException {
+ public R outbound(List<LocDto> locDtos,String endLocation) throws InterruptedException {
if (Cools.isEmpty(locDtos)) {
return R.parse(BaseRes.PARAM);
}
@@ -198,7 +198,7 @@
// -----------------------------------------------------------------------------------------------
for (TaskDto taskDto : taskDtos) {
BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
- workService.stockOut(staNo, taskDto, null);
+ workService.stockOut(staNo, taskDto, null, endLocation);
}
return R.ok("鍑哄簱鎴愬姛");
}
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 7b453a6..935d321 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
@@ -27,7 +26,6 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -370,6 +368,90 @@
}
@Override
+ public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId, String endLocation) {
+ Date now = new Date();
+ List<LocDto> locDtos = taskDto.getLocDtos();
+ for (LocDto locDto : locDtos) {
+ if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
+ throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+ // 鑾峰彇璺緞
+ int ioType = taskDto.isAll() ? 101 : 103;
+ StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setInvWh(endLocation); // 鍦扮爜
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDto locDto : taskDto.getLocDtos()) {
+ if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
+ continue;
+ }
+ log.info("宸ヤ綔妗f槑缁嗭細{},{},{},{}", locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getAnfme());
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto);
+
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(orderDetl);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ //wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ // 淇敼璁㈠崟鏄庣粏
+ if (!orderDetlService.increaseWorkQty(orderDetl, locDto.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(taskDto.getLocNo());
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType == 101 ? "R" : "P");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
+ }
+ } else {
+ throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ }
+
+ @Override
@Transactional
public String emptyPlateIn(Integer devpNo, Long userId) {
// 婧愮珯鐐圭姸鎬佹娴�
--
Gitblit v1.9.1