From 080fdceed464c56f43633e85daeaf929d40496af Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期三, 18 十月 2023 13:16:07 +0800
Subject: [PATCH] 连接ERP 获取ERP库存信息
---
src/main/java/com/zy/asrs/service/LocDetlService.java | 2
src/main/java/com/zy/asrs/utils/Utils.java | 2
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 18 ++++++
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 39 +++++++++++++
src/main/java/com/zy/asrs/controller/OutController.java | 86 ++++++++++++++++++++++------
5 files changed, 128 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 41f3c3e..3c368d0 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -53,6 +53,8 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManPakOutService manPakOutService;
+ @Autowired
+ private DocTypeService docTypeService;
@Autowired
private AgvLocDetlService agvLocDetlService;
@@ -69,28 +71,75 @@
@ManagerAuth
public R pakoutPreview(@RequestBody List<Long> ids) {
+// Order order = orderService.selectById(ids.get(0));
+//
+// DocType docType = docTypeService.selectById(order.getDocType());
+//
+// if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+// List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids);
+// //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅
+// List<LocDto> locDtoList = new ArrayList<>();
+//
+// for (OrderDetl orderDetl : orderDetlList) {
+//
+// double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+// if (issued <= 0.0D) { continue; }
+//
+// //浠庡钩搴撳鎵�
+// //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+//
+// //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
+// //issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+//
+// //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛�
+// issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+//
+// if (issued > 0) {
+// LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+// locDto.setLack(Boolean.TRUE);
+// locDtoList.add(locDto);
+// }
+// }
+// return R.ok().add(locDtoList);
+// }
+
List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids);
//杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅
List<LocDto> locDtoList = new ArrayList<>();
for (OrderDetl orderDetl : orderDetlList) {
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
- if (issued <= 0.0D) { continue; }
+ Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+ if (issued <= 0.0D) { continue; }
+ issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+ if (issued > 0) {
+ LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+ locDto.setLack(Boolean.TRUE);
+ locDtoList.add(locDto);
+ }
+ }else {
+ //double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+ if (issued <= 0.0D) { continue; }
- //浠庡钩搴撳鎵�
- issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+ //浠庡钩搴撳鎵�
+ issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
- //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
- issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+ //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
+ issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
- //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛�
- issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+ //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛�
+ issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
- if (issued > 0) {
- LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
- locDto.setLack(Boolean.TRUE);
- locDtoList.add(locDto);
+ if (issued > 0) {
+ LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+ locDto.setLack(Boolean.TRUE);
+ locDtoList.add(locDto);
+ }
}
+
+
}
return R.ok().add(locDtoList);
@@ -434,13 +483,14 @@
}else{
manPakOut.setUuid(manPakOutExist.getUuid());
}
- try{
- if (!manPakOutService.insert(manPakOut)){
- return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- }catch (Exception e){
- return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
+ manPakOutService.insert(manPakOut);
+// try{
+// if (!manPakOutService.insert(manPakOut)){
+// return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+// }
+// }catch (Exception e){
+// return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+// }
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 3ac2cb5..9e3c2bc 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -54,6 +54,8 @@
double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq);
+ double queryStockAndSetLocDto1(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq);
+
Double queryStockAnfme(String matnr, String batch);
List<StockVo> queryStockTotal();
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 7da76c4..9638cdc 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -141,6 +141,45 @@
return issued;
}
+ //琛ヨ揣鍑哄簱
+ public double queryStockAndSetLocDto1(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) {
+ Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", matnr).orderBy("modi_time");
+ wapperSetCondition(wrapper,"batch",batch);
+ wapperSetCondition(wrapper,"three_code",csocode);
+ wapperSetCondition(wrapper,"dead_time",isoseq);
+// if(Cools.isEmpty(batch)){
+// wrapper.isNull("batch");
+// }else {
+// wrapper.eq("batch",batch);
+// }
+
+ List<LocDetl> locDetlList = this.selectList(wrapper);
+ for (LocDetl locDetl : locDetlList) {
+ //鍒ゆ柇褰撳墠搴撲綅璐х墿鏄惁F鍦ㄥ簱
+ LocMast locMast = locMastService.selectById(locDetl.getLocNo());
+ if(!"F".equals(locMast.getLocSts())){
+ continue;
+ }
+ if (issued > 0) {
+ double anfme = locDetl.getAnfme();
+ int ioType = anfme > issued ? 103 : 101;
+ //anfme = anfme > issued ? issued : anfme;
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
+ //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
+ List<Integer> outSite = basDevpService.getAvailableOutSite(101);
+
+ locDto.setStaNos(outSite);
+ locDto.setCsocode(csocode);
+ locDto.setIsoseq(isoseq);
+ locDto.setContainerCode(locDetl.getSuppCode());
+ locDtoList.add(locDto);
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }
+ }
+ return issued;
+ }
+
@Override
public Double queryStockAnfme(String matnr, String batch) {
return this.baseMapper.queryStockAnfme(matnr, batch);
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 4a76d35..11f75cf 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -23,6 +23,7 @@
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;
@@ -77,6 +78,10 @@
private RowLastnoService rowLastnoService;
@Autowired
private SlaveProperties slaveProperties;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private AgvWaitPakinService agvWaitPakinService;
@Override
@Transactional
@@ -465,6 +470,9 @@
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+
// 淇敼璁㈠崟鏄庣粏
if (!BaseController.isJSON(locDto.getOrderNo())) {
OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
@@ -1151,4 +1159,14 @@
return "";
}
+ 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);
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 49274c9..d2754c8 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -387,7 +387,7 @@
}
public static void wapperSetCondition(Wrapper wrapper, String column, String condition){
- if(Cools.isEmpty(condition)){
+ if(Cools.isEmpty(condition) || "null".equals(condition)){
wrapper.andNew().eq(column,"").or().isNull(column);
}else {
wrapper.eq(column,condition);
--
Gitblit v1.9.1