From 16b5ee9a6db2f21192d435dbf3dab71b5fad7804 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期日, 14 四月 2024 19:34:48 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 149 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 117 insertions(+), 32 deletions(-)
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 aa31c12..3680f51 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,6 +1,8 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
@@ -282,6 +284,7 @@
}
}
+ ArrayList<String> outerLocs = new ArrayList<>();
//妫�娴嬫槸鍚︿负娴呭簱浣�
boolean sign=false;
String th = "";
@@ -299,17 +302,49 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
if (locMast != null) {
if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) {
- sign = true;
- th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
- break;
+// sign = true;
+// th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+// break;
+
+ OutLocDto outLocDto = new OutLocDto();
+ outLocDto.setLocNo(locMast.getLocNo());
+ List<LocDetlDto> locDetlDtos1 = new ArrayList<>();
+ for (LocDetl locDetl : locDetlService.selectByLocNo(locMast.getLocNo())) {
+ LocDetlDto locDetlDto = new LocDetlDto();
+ locDetlDto.setLocDetl(locDetl);
+ locDetlDto.setCount(locDetl.getAnfme());
+ locDetlDtos1.add(locDetlDto);
+ }
+ outLocDto.setLocDetlDtos(locDetlDtos1);
+ if (!outerLocs.contains(locMast.getLocNo())) {
+ dtos.add(outLocDto);
+ outerLocs.add(locMast.getLocNo());
+ }
}
}
}
}
}
- if (sign){
- throw new CoolException("鍑哄簱澶辫触锛�"+th);
+// if (sign){
+// throw new CoolException("鍑哄簱澶辫触锛�"+th);
+// }
+
+ //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+ HashMap<String, Object> tmpMap = new HashMap<>();
+ if (staNo.getDevNo() == 325 || staNo.getDevNo() == 331 || staNo.getDevNo() == 333 || staNo.getDevNo() == 339) {
+ int[] data = {325,331,333,339};
+ for (String locNo : locNos) {
+ List<String> groupOuterLoc = Utils.getGroupDeepLoc(locNo);
+ if (groupOuterLoc.isEmpty()) {
+ continue;
+ }
+ int index = 0;
+ for (String loc : groupOuterLoc) {
+ tmpMap.put(loc, data[index++]);
+ }
+ }
}
+ //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
Integer ioType = null;
List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
@@ -344,6 +379,13 @@
if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
stnNo = staDesc.getCrnStn();
sourceStaNo = staDesc.getStnNo();
+
+ //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+ Object autoStnNo = tmpMap.get(dto.getLocNo());//鑾峰彇绯荤粺鑷姩鍒嗛厤绔欑偣
+ if (autoStnNo != null) {
+ sourceStaNo = Integer.parseInt(autoStnNo.toString());
+ }
+ //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
}
int lev = Utils.getLev(dto.getLocNo());
@@ -485,26 +527,53 @@
}
Mat mat = matService.selectByMatnr(locDto.getMatnr());
assert mat != null;
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(mat);
- 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);
- wrkDetl.setSuppCode(locDto.getContainerCode());
- wrkDetl.setThreeCode(locDto.getCsocode());
- wrkDetl.setDeadTime(locDto.getIsoseq());
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ 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);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ }else {
+ List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+ orderDtoList.forEach(orderDto -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(orderDto.getOrderNo());
+ wrkDetl.setAnfme(orderDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ });
}
- //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
- generateAgvWaitpakin(wrkDetl);
// 淇敼璁㈠崟鏄庣粏
if (!BaseController.isJSON(locDto.getOrderNo())) {
@@ -531,8 +600,9 @@
orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
}
- if(locAnfme > orderDetl.getAnfme()){
- orderAnfme = orderDetl.getAnfme();
+ orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+ if(locAnfme > orderAnfme){
locAnfme -= orderAnfme;
}else {
orderAnfme = locAnfme;
@@ -1189,13 +1259,28 @@
}
private void generateAgvWaitpakin(WrkDetl wrkDetl){
- Order order = orderService.selectByNo(wrkDetl.getOrderNo());
- DocType docType = docTypeService.selectById(order.getDocType());
- if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
- AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
- BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
- agvWaitPakinService.insert(agvWaitPakin);
+ String orderNo = wrkDetl.getOrderNo();
+ if(orderNo.contains("{")){
+ JSONArray orderArray = JSON.parseArray(orderNo);
+ for (Object o : orderArray){
+ JSONObject jsonobject = (JSONObject) o;
+ Order order = orderService.selectByNo(jsonobject.get("orderNo").toString());
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+ throw new CoolException("鍚堝苟鍗曟嵁涓寘鍚汉宸ヨˉ璐у崟锛屽崟鎹负: " + jsonobject.get("orderNo"));
+ }
+ }
+
+ }else {
+ Order order = orderService.selectByNo(orderNo);
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+ AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
+ BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
+ agvWaitPakinService.insert(agvWaitPakin);
+ }
}
+
}
}
--
Gitblit v1.9.1