From 1a987c661d60c77b258a3be42c09a3fd2ba3ae06 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 14 八月 2023 15:34:59 +0800
Subject: [PATCH] #订单出库自动出浅库位
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 128 ++++++++++++++++++++++---------
src/main/java/com/zy/asrs/entity/WrkMast.java | 9 ++
src/main/webapp/static/js/wrkMast/wrkMast.js | 1
src/main/java/com/zy/common/model/LocDto.java | 13 +++
src/main/webapp/static/js/common.js | 2
src/main/java/com/zy/asrs/controller/OutController.java | 41 ++++++++++
6 files changed, 153 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index dc7c1b1..51b87f7 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -10,6 +10,7 @@
import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.OrderDto;
import com.zy.common.model.OrderMergeVo;
@@ -177,7 +178,45 @@
taskDtos.add(taskDto);
}
}
-
+ List<String> locNos = new ArrayList<>();
+ for (TaskDto taskDto : taskDtos) {
+ if (!locNos.contains(taskDto.getLocNo())){
+ locNos.add(taskDto.getLocNo());
+ }
+ }
+ List<TaskDto> taskDtos1 = new ArrayList<>();
+ for (TaskDto taskDto : taskDtos) {
+ String locNo = taskDto.getLocNo();
+ List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locNo);
+ if (Utils.getBay(locNo)>=21){
+ groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locNo);
+ }
+ for (String locNo1 : groupOuterSingleLoc){
+ if (!locNos.contains(locNo1)){
+ locNos.add(locNo1);
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo1));
+ if (locMast.getLocSts().equals("F")){
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo1));
+ if (Cools.isEmpty(locDetls) || locDetls.size()==0) {
+ TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo());
+ taskDtos1.add(taskDto1);
+ }else {
+ List<LocDto> locDtos1 = new ArrayList<>();
+ for (LocDetl locDetl:locDetls){
+ LocDto locDto = new LocDto(locDetl,taskDto.getLocDtos().get(0),"浼寸敓鍑哄簱");
+ locDtos1.add(locDto);
+ }
+ TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo(),locDtos1);
+ taskDtos1.add(taskDto1);
+ }
+ }else if (locMast.getLocSts().equals("D")){
+ TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo());
+ taskDtos1.add(taskDto1);
+ }
+ }
+ }
+ }
+ taskDtos.addAll(taskDtos1);
// -----------------------------------------------------------------------------------------------
List<String> excludeLocNos = taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList());
for (TaskDto taskDto : taskDtos) {
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 34963fb..1c3bb5f 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -15,6 +15,7 @@
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
@Data
@TableName("asr_wrk_mast")
@@ -418,6 +419,14 @@
}
return null;
}
+ public String getOrderNo$(){
+ WrkDetlService wrkDetlService = SpringUtils.getBean(WrkDetlService.class);
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(this.wrkNo);
+ if (!Cools.isEmpty(wrkDetls) && wrkDetls.size()!=0){
+ return String.valueOf(wrkDetls.get(0).getOrderNo());
+ }
+ return null;
+ }
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
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 603fc03..3fe8ad8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -735,6 +735,54 @@
@Transactional
public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
Date now = new Date();
+ if (Cools.isEmpty(taskDto.getLocDtos()) || taskDto.getLocDtos().size()==0){
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+ // 鑾峰彇璺緞
+ int ioType = locMast.getLocSts().equals("D") ? 110 : 101;
+ StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+ Double ioPri = wrkMastService.getIoPri(ioType, taskDto.getLocNo());
+ wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
+ wrkMast.setOutMost(locMastService.isOutMost(taskDto.getLocNo(), false) ? 1 : 0);
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt(ioType==110? "N":"Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk(ioType==110? "Y":"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銆丏.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(taskDto.getLocNo());
+ if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ) {
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
+ }
+ } else {
+ throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ return;
+ }
List<LocDto> locDtos = taskDto.getLocDtos();
for (LocDto locDto : locDtos) {
if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
@@ -801,51 +849,53 @@
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
- // 淇敼璁㈠崟鏄庣粏
- if (!BaseController.isJSON(locDto.getOrderNo())) {
- String[] orderNos = GetOrderNo(locDto.getOrderNo());
- if (!Cools.isEmpty(orderNos)){
- Double anfme = locDto.getAnfme();
- for (String orderNo : orderNos) {
- OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null);
+ if (!wrkDetl.getOrderNo().equals("浼寸敓鍑哄簱")){
+ // 淇敼璁㈠崟鏄庣粏
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ String[] orderNos = GetOrderNo(locDto.getOrderNo());
+ if (!Cools.isEmpty(orderNos) && orderNos.length!=0){
+ Double anfme = locDto.getAnfme();
+ for (String orderNo : orderNos) {
+ OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null);
+ }
+ if (orderDetl.getAnfme() <= anfme) {
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ anfme = anfme - orderDetl.getAnfme();
+ } else {
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), anfme)) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
- if (orderDetl.getAnfme() <= anfme) {
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getAnfme())) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
- }
- anfme = anfme - orderDetl.getAnfme();
- } else {
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), anfme)) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
- }
+ }else {
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+ }
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
- }else {
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
- }
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
- }
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
- }
- } else {
- // 璁㈠崟鍚堝苟鍑哄簱
- List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+ } else {
+ // 璁㈠崟鍚堝苟鍑哄簱
+ List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
- for (OrderDto orderDto : orderDtoList) {
- OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null);
+ for (OrderDto orderDto : orderDtoList) {
+ OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null);
+ }
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDto.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDto.getAnfme())) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
- }
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
}
}
diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java
index 59dcf61..dd083d7 100644
--- a/src/main/java/com/zy/common/model/LocDto.java
+++ b/src/main/java/com/zy/common/model/LocDto.java
@@ -1,6 +1,7 @@
package com.zy.common.model;
import com.core.common.Cools;
+import com.zy.asrs.entity.LocDetl;
import lombok.Data;
import java.util.List;
@@ -58,6 +59,18 @@
this.anfme = anfme;
}
+ public LocDto(LocDetl locDetl,LocDto locDto,String orderNo) {
+ this.locNo = locDetl.getLocNo();
+ this.matnr = locDetl.getMatnr();
+ this.batch = locDetl.getBatch();
+ this.anfme = locDetl.getAnfme();
+ this.maktx = locDetl.getMaktx();
+ this.specs = locDetl.getSpecs();
+ this.orderNo = orderNo;
+ this.staNos = locDto.getStaNos();
+ this.staNo = locDto.getStaNo();
+ }
+
public String getTitle() {
return this.matnr + "锛�" + this.maktx + "锛�";
}
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 44076bf..f399cd3 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -231,7 +231,7 @@
{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true, width: 290}
,{field: 'specs', align: 'center',title: '瑙勬牸', width: 200}
,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true, width: 150}
- ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
+ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false}
,{field: 'batch', align: 'center',title: '鎵瑰彿', sort:true, hide: true}
,{field: 'anfme', align: 'center',title: '鏁伴噺'}
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index 087b08d..e0617d6 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -24,6 +24,7 @@
,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160}
,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
+ ,{field: 'orderNo$', align: 'center',title: '鍗曟嵁缂栧彿'}
,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈�'}
,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
--
Gitblit v1.9.1