From 9f095733d13185290cfedd242b5f299585fbcad0 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 07 四月 2025 10:05:34 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 636 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 473 insertions(+), 163 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 f4a67da..16c4148 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,5 +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;
@@ -19,8 +22,10 @@
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
+import com.zy.common.web.BaseController;
import com.zy.common.web.WcsController;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -75,6 +80,10 @@
private RowLastnoService rowLastnoService;
@Autowired
private SlaveProperties slaveProperties;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private AgvWaitPakinService agvWaitPakinService;
@Override
@Transactional
@@ -98,7 +107,9 @@
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ Double ioPri = wrkMastService.getIoPri(1, dto.getLocNo());
+ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
+ wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true)?1:0);;
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
@@ -120,9 +131,9 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
List<DetlDto> detlDtos = new ArrayList<>();
param.getList().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode());
if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
assert detlDto1 != null;
detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
} else {
@@ -155,13 +166,64 @@
@Override
@Transactional
public void startupFullTakeStore(StockOutParam param, Long userId) {
+ ArrayList<String> locNos = new ArrayList<>();
+ for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
+ if (!locNos.contains(locDetl.getLocNo())){
+ locNos.add(locDetl.getLocNo());
+ }
+ }
+ //妫�娴嬫槸鍚︿负娴呭簱浣�
+ boolean sign=false;
+ String th = "";
+ for (String locNo:locNos){
+ if (sign){
+ break;
+ }
+
+ //妫�娴嬪嚭搴撶殑璐х墿涓槸鍚︽湁鐘舵�佷负绂佹鐨勮揣鐗┿��
+ for (LocDetl locDetl : locDetlService.selectByLocNo(locNo)) {
+ if (locDetl.getStockFreeze() == 0) {
+ th="搴撲綅鍙凤細"+locNo+" 鏈夌姝㈠嚭搴撶殑璐х墿锛�";
+ throw new CoolException("鍑哄簱澶辫触锛�"+th);
+ }
+
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (mat == null) {
+ continue;
+ }
+ if (mat.getStatus() == 0) {
+ th="搴撲綅鍙凤細"+locNo+" 鏈夌姝㈠嚭搴撶殑璐х墿锛�";
+ throw new CoolException("鍑哄簱澶辫触锛�"+th);
+ }
+ }
+
+ List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+ if (!Cools.isEmpty(groupOuterLoc)) {
+ for (String outerLoc : groupOuterLoc) {
+ if (locNos.contains(outerLoc)){
+ continue;
+ }
+ 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;
+ }
+ }
+ }
+ }
+ }
+ if (sign){
+ throw new CoolException("鍑哄簱澶辫触锛�"+th);
+ }
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getSuppCode());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -171,6 +233,33 @@
} else {
throw new CoolException("搴撳瓨涓嶅瓨鍦�");
}
+ }
+ /**
+ * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
+ */
+ public static int getRow(String locNo) {
+ if (!Cools.isEmpty(locNo)) {
+ return Integer.parseInt(locNo.substring(0, 2));
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+ }
+ /**
+ * 閫氳繃搴撲綅鍙疯幏鍙� 鍒�
+ */
+ public static int getBay(String locNo) {
+ if (!Cools.isEmpty(locNo)) {
+ return Integer.parseInt(locNo.substring(2, 5));
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+ }
+ /**
+ * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+ */
+ public static int getLev(String locNo) {
+ if (!Cools.isEmpty(locNo)) {
+ return Integer.parseInt(locNo.substring(5, 7));
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
}
@Override
@@ -194,7 +283,76 @@
dtos.add(new OutLocDto(locNo, locDetlDto));
}
}
+
+ for (OutLocDto dto : dtos) {
+ dto.sortLocDetlDtos();
+ }
+
+
+ ArrayList<String> outerLocs = new ArrayList<>();
+ //妫�娴嬫槸鍚︿负娴呭簱浣�
+ boolean sign=false;
+ String th = "";
+ for (String locNo : locNos) {
+ if (sign) {
+ break;
+ }
+
+ List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+ if (!Cools.isEmpty(groupOuterLoc)) {
+ for (String outerLoc : groupOuterLoc) {
+ if (locNos.contains(outerLoc)) {
+ continue;
+ }
+ 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;
+
+ 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);
+// }
+
+ //**************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());
// 鐢熸垚宸ヤ綔妗�
for (OutLocDto dto : dtos) {
// 濡傛灉涓烘繁搴撲綅锛屼笖瀵瑰簲娴呭簱浣嶄负X.绂佺敤锛屽垯鐣ヨ繃姝ゅ簱浣�
@@ -215,19 +373,45 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ Boolean outMost = locMastService.isOutMost(dto.getLocNo(), false);
+ Integer outCrnNo = locMastService.getOutCrnNo(locMast);
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+ Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+ Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+ 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());
+ if (lev == 1 || lev == 2) {
+ if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) {
+ throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�");
+ }
+ }
+
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(now);
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
- wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo());
+ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
+ wrkMast.setOutMost(outMost?1:0);;
+ wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(stnNo); // 鐩爣绔�
wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -244,14 +428,15 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ if (detlDto.getCount()==null) {continue;}
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(detlDto.getLocDetl());
wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
- wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setAnfme(anfme); // 浣滀笟鏁伴噺
+ wrkDetl.setStock(detlDto.getLocDetl().getAnfme());
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -279,6 +464,7 @@
@Transactional
public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
Date now = new Date();
+ taskDto.sortLocDtos();
List<LocDto> locDtos = taskDto.getLocDtos();
for (LocDto locDto : locDtos) {
if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
@@ -289,19 +475,42 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ Boolean outMost = locMastService.isOutMost(taskDto.getLocNo(), false);
+ Integer outCrnNo = locMastService.getOutCrnNo(locMast);
+ StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, outCrnNo, staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+ Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+ Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+ if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
+ stnNo = staDesc.getCrnStn();
+ sourceStaNo = staDesc.getStnNo();
+ }
+
+ int lev = Utils.getLev(taskDto.getLocNo());
+ if (lev == 1 || lev == 2) {
+ if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) {
+ throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�");
+ }
+ }
+
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(now);
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
- wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ Double ioPri = wrkMastService.getIoPri(ioType, taskDto.getLocNo());
+ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
+ wrkMast.setOutMost(outMost?1:0);;
+ wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(stnNo); // 鐩爣绔�
+ if(ioType == 101 && taskDto.getStaNo()>=300){
+ wrkMast.setSourceStaNo(346); // 婧愮珯
+ wrkMast.setStaNo(346); // 鐩爣绔�
+ }
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -318,31 +527,109 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
- if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+ if (locDto.getAnfme()==null) { continue; }
+ LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getContainerCode());
+ if (locDetl == null || locDetl.getAnfme() < locDto.getAnfme()) {
+ throw new CoolException(locDto.getLocNo() + "搴撲綅涓�" + locDto.getMatnr() + "鍟嗗搧搴撳瓨涓嶈冻锛�");
}
- 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槑缁嗗け璐�");
+ Mat mat = matService.selectByMatnr(locDto.getMatnr());
+ assert mat != null;
+
+ if (locDto.getStock() < locDto.getAnfme()) {
+ //鎬诲簱瀛樺皬浜庝綔涓氭暟閲忥紝寮傚父鏁版嵁
+ throw new CoolException("搴撳瓨涓嶈冻锛岃绋嶅悗閲嶈瘯");
}
- // 淇敼璁㈠崟鏄庣粏
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+
+ 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.setStock(locDto.getStock());//鎬诲簱瀛�
+ 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.setStock(locDto.getStock());//鎬诲簱瀛�
+ 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);
+ });
}
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+
+ if (locDto.getAnfme() > 0) {
+ // 淇敼璁㈠崟鏄庣粏
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ }
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ } else {
+ // 璁㈠崟鍚堝苟鍑哄簱
+ List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+
+ //瀹為檯鍑哄簱鏁伴噺
+ Double locAnfme = locDto.getAnfme();
+ //璁㈠崟瀹為檯鍑哄簱鏁伴噺
+ Double orderAnfme;
+
+ for (OrderDto orderDto : orderDtoList) {
+ OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ }
+
+ orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+ if(locAnfme > orderAnfme){
+ locAnfme -= orderAnfme;
+ }else {
+ orderAnfme = locAnfme;
+ }
+
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ }
+ }
+ }
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -373,7 +660,9 @@
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
- wrkMast.setIoPri(10D); // 浼樺厛绾э細10
+ Double ioPri = wrkMastService.getIoPri(10, dto.getLocNo());
+ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細10
+ wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), true)?1:0);;
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
@@ -418,6 +707,34 @@
@Override
@Transactional
public void emptyPlateOut(EmptyPlateOutParam param, Long userId) {
+ List<String> locNos = param.getLocNos();
+ //妫�娴嬫槸鍚︿负娴呭簱浣�
+ boolean sign=false;
+ String th = "";
+ for (String locNo:locNos){
+ if (sign){
+ break;
+ }
+ List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo);
+ if (!Cools.isEmpty(groupInnerLoc)) {
+ for (String insideLoc : groupInnerLoc) {
+ if (locNos.contains(insideLoc)){
+ continue;
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc));
+ if (locMast != null) {
+ if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){
+ sign=true;
+ th="搴撲綅鍙凤細"+locNo+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (sign){
+ throw new CoolException("鍑哄簱澶辫触锛�"+th);
+ }
if (Cools.isEmpty(param.getOutSite())) {
throw new CoolException("绔欑偣涓嶅瓨鍦�");
}
@@ -436,12 +753,16 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
}
+ Boolean outMost = locMastService.isOutMost(locNo, false);
+ Integer outCrnNo = locMastService.getOutCrnNo(locMast);
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
- .eq("stn_no", param.getOutSite())
- .eq("crn_no", locMast.getCrnNo());
+ .eq("stn_no", param.getOutSite());
StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("闈炴硶璺緞锛�");
+ }
Integer sourceStaNo = staDesc.getCrnStn();
if (Cools.isEmpty(sourceStaNo)) {
throw new CoolException("妫�绱㈡簮绔欏け璐�");
@@ -450,12 +771,14 @@
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
- wrkMast.setIoPri(10D);
+ Double ioPri = wrkMastService.getIoPri(110, locNo);
+ wrkMast.setIoPri(ioPri);
wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
- wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setOutMost(outMost?1:0);;
+ wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -491,7 +814,7 @@
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
- LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getSuppCode());
if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
@@ -516,17 +839,19 @@
throw new CoolException("鏈壘鍒板簱浣�");
}
if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
- throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
+// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); todo:luxiaotao
}
+ Date now = new Date();
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
// 淇濆瓨宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟
wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
wrkMast.setIoPri(10D);
+ wrkMast.setOutMost(locMastService.isOutMost(locNo, false)?1:0);;
wrkMast.setCrnNo(sourceLoc.getCrnNo());
wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
@@ -537,9 +862,9 @@
wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
wrkMast.setAppeUser(userId);
- wrkMast.setAppeTime(new Date());
+ wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
- wrkMast.setModiTime(new Date());
+ wrkMast.setModiTime(now);
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -549,11 +874,11 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(locDetl);
wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(new Date());
+ wrkDetl.setIoTime(now);
wrkDetl.setAnfme(locDetl.getAnfme());
- wrkDetl.setAppeTime(new Date());
+ wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
- wrkDetl.setModiTime(new Date());
+ wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
@@ -563,17 +888,17 @@
if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiUser(userId);
- sourceLoc.setModiTime(new Date());
+ sourceLoc.setModiTime(now);
if (!locMastService.updateById(sourceLoc)){
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+ throw new CoolException(sourceLoc.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
}
// 淇敼鐩爣搴撲綅鐘舵��
if (loc.getLocSts().equals("O")) {
loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
+ loc.setModiTime(now);
loc.setModiUser(userId);
if (!locMastService.updateById(loc)) {
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
@@ -590,15 +915,22 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 17) {
+
+ if (wrkMast.getIoType() == 200) {
+ //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
+ wrkMastService.deleteById(wrkMast);
+ return;
+ }
+
+ if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) {
throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
}
// 鍏ュ簱 + 搴撲綅杞Щ
if (wrkMast.getWrkSts() < 9 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
wrkMast.setWrkSts(9L);
// 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
- wrkMast.setWrkSts(17L);
+ } else if (wrkMast.getWrkSts() > 20) {
+ wrkMast.setWrkSts(29L);
}
Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
@@ -638,11 +970,11 @@
while (iterator1.hasNext()) {
LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
if (adjust.getCount() == 0) { continue; }
- if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
+ if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(),adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(),adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(),adjust.getDeadTime())) {
if (!locDetl.getAnfme().equals(adjust.getCount())) {
// todo 鐩樼偣璁板綍
// 淇敼搴撳瓨
- if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
}
// 淇濆瓨璋冩暣璁板綍
@@ -656,6 +988,10 @@
adjDetl.setModiUser(userId);
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
+ adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
+ adjDetl.setCsocode(locDetl.getThreeCode());
+ adjDetl.setIsoseq(locDetl.getDeadTime());
+
adjDetlService.save(adjDetl, userId);
}
iterator.remove();
@@ -667,7 +1003,7 @@
// 鍒犻櫎搴撳瓨
for (LocDetl locDetl : locDetls) {
// todo 鐩樼偣璁板綍
- if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) {
throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
}
// 淇濆瓨璋冩暣璁板綍
@@ -681,6 +1017,7 @@
adjDetl.setModiUser(userId);
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
+ adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
adjDetlService.save(adjDetl, userId);
}
@@ -697,6 +1034,8 @@
locDetl.setModiTime(now);
locDetl.setAppeUser(userId);
locDetl.setAppeTime(now);
+ locDetl.setThreeCode(adjust.getThreeCode());
+ locDetl.setDeadTime(adjust.getDeadTime());
if (!locDetlService.insert(locDetl)) {
throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
}
@@ -711,6 +1050,10 @@
adjDetl.setModiUser(userId);
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
+ adjDetl.setCsocode(locDetl.getThreeCode());
+ adjDetl.setIsoseq(locDetl.getDeadTime());
+ adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
+
adjDetlService.save(adjDetl, userId);
}
// 淇敼搴撲綅鐘舵��
@@ -740,10 +1083,17 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
+
+ if (wrkMast.getIoType() == 200) {
+ //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
+ wrkMastService.deleteById(wrkMast);
+ return;
+ }
+
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
- if (wrkMast.getWrkSts() < 4) {
+ if (wrkMast.getWrkSts() < 9) {
locNo = wrkMast.getLocNo();
locSts = "O";
@@ -752,29 +1102,29 @@
// 搴撲綅杞Щ锛氭簮搴撲綅
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
}
locMast.setLocSts("F");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
- // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+ // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+ } else if (wrkMast.getWrkSts() > 20) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
locSts = "F";
- // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+ // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
- // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+ // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
- locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
+ locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
}
locMast.setLocSts("O");
locMast.setModiTime(new Date());
@@ -788,11 +1138,33 @@
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
- if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
- throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
+ if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme(),wrkDetl.getThreeCode(),wrkDetl.getDeadTime())) {
+ throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
+ } else {
+ // 璁㈠崟鍚堝苟鍑哄簱
+
+ //瀹為檯鍙栨秷鐨勫嚭搴撴暟閲�
+ Double wrkDetlAnfme = wrkDetl.getAnfme();
+ //璁㈠崟瀹為檯鍑哄簱鏁伴噺
+ Double orderAnfme;
+
+ List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class);
+ for (OrderDto orderDto : orderDtoList) {
+
+ if(wrkDetlAnfme > orderDto.getAnfme()){
+ orderAnfme = orderDto.getAnfme();
+ wrkDetlAnfme -= orderAnfme;
+ }else {
+ orderAnfme = wrkDetlAnfme;
+ }
+
+ if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme,wrkDetl.getThreeCode(),wrkDetl.getDeadTime())) {
+ throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
+ }
}
- // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-// stockOutRe(wrkMast, wrkDetls);
}
}
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
@@ -890,107 +1262,45 @@
@Override
public StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId) {
- if (Cools.isEmpty(list)) {
- throw new CoolException("鍏ュ簱閫氱煡妗d笉鑳戒负绌�");
- }
- LocTypeDto locTypeDto = new LocTypeDto();
- locTypeDto.setLocType1((short) 1);
- return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
+ return null;
}
@Override
@Transactional
public String dealPreHaveStart(Integer wrkNo, Long userId) {
- WrkMast wrkMast = wrkMastService.selectById(wrkNo);
- if (wrkMast == null) {
- throw new CoolException("浠诲姟宸插け鏁�");
+ if (true) {
+ throw new CoolException("鍔熻兘鍋滅敤");
}
- String locNo = wrkMast.getLocNo();
- LocMast locMast = locMastService.selectById(locNo);
- assert locMast != null;
- RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1());
- assert rowLastno != null;
+ return "";
+ }
- // 鐩爣搴撲綅
- LocMast targetLoc = null;
+ private void generateAgvWaitpakin(WrkDetl wrkDetl){
+ if (wrkDetl.getAnfme() <= 0D) {
+ return;
+ }
- for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
-
- if (Utils.isShallowLoc(slaveProperties, curRow)) {
- Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
- targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
- continue;
- }
- }
- if (Cools.isEmpty(targetLoc)) {
- targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
- continue;
- }
- // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
- if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) {
- LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo()));
- if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
- continue;
- }
- }
- // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
- if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) {
- LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo()));
- if (!shallowLoc.getLocSts().equals("O")) {
- continue;
- }
+ 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"));
}
}
- if (!Cools.isEmpty(targetLoc)) {
- break;
+ }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);
}
-
}
- if (targetLoc == null) {
- throw new CoolException("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�");
- }
-
- Date now = new Date();
- // 淇敼宸ヤ綔妗�
- StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo());
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- }
- wrkMast.setWrkSts(2L);
- wrkMast.setLocNo(targetLoc.getLocNo());
- wrkMast.setStaNo(staDesc.getCrnStn());
- wrkMast.setCrnNo(targetLoc.getCrnNo());
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- wrkMast.setPreHave("N");
- if (!wrkMastService.updateById(wrkMast)) {
- throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
- }
- // 淇敼搴撲綅鐘舵�� O ===>>> S
- if (targetLoc.getLocSts().equals("O")){
- targetLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
- targetLoc.setModiUser(userId);
- targetLoc.setModiTime(now);
- if (!locMastService.updateById(targetLoc)){
- throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
- }
- } else {
- throw new CoolException(targetLoc.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
- }
- // 绂佺敤寮傚父搴撲綅
-// locMast.setLocSts("X"); // X.绂佺敤
-// locMast.setModiUser(userId);
-// locMast.setModiTime(now);
-// if (!locMastService.updateById(locMast)){
-// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-// }
- return targetLoc.getLocNo();
}
}
--
Gitblit v1.9.1