From 43efe016c156158b9fc3a8b647810f612fb126e6 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 02 九月 2025 11:39:52 +0800
Subject: [PATCH] 自动补货单新增 1.订单中只能生成两笔自动补货单 2.CTU库是否有足够的空库位,空库位数需要大于100才会生成自动补货单 3.在补货时加上订单明细的数量进行判断
---
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 40 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 05ae409..0697692 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -73,8 +73,7 @@
鍏ュ簱
*/
@Transactional
- @Synchronized
- public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
+ public synchronized StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
Date now = new Date();
@@ -97,7 +96,7 @@
wrkMast.setMk(isConveyor ? "Y" : "N");
//鐢熸垚宸ヤ綔妗f槑缁�
agvWaitPakinList.forEach(wp -> {
- createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
+ createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProddate(),wp.getDeadline());
});
//鏇存柊婧愮珯鐐逛俊鎭�
updateAgvBasDevp(agvBasDevp,"R");
@@ -149,7 +148,9 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
+ locDto.getIsoseq(),
+ locDto.getProddate(),
+ locDto.getDeadline());
}else {
List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
orderDtoList.forEach(orderDto -> {
@@ -163,7 +164,9 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
+ locDto.getIsoseq(),
+ locDto.getProddate(),
+ locDto.getDeadline());
});
}
@@ -246,7 +249,7 @@
List<TaskDto> taskDtos = new ArrayList<>();
param.getLocDetls().forEach(locDetl -> {
- LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode());
+ LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode(),locDetl.getProddate(),locDetl.getDeadline());
TaskDto taskDto = new TaskDto(locDetl.getLocNo(),station,locDto);
if(TaskDto.has(taskDtos,taskDto)){
TaskDto.find(taskDtos,taskDto).getLocDtos().add(locDto);
@@ -278,7 +281,9 @@
now,
userId,
locDto.getCsocode(),
- locDto.getIsoseq());
+ locDto.getIsoseq(),
+ locDto.getProddate(),
+ locDto.getDeadline());
});
updateAgvLocMast(agvLocMastService.selectById(wrkMast.getSourceLocNo()),"P");
//鏇存柊鐩爣绔欑偣鐘舵��
@@ -308,7 +313,7 @@
//鐢熸垚绉诲簱宸ヤ綔妗�
AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,false);
//鐢熸垚宸ヤ綔鍏氭槑缁�
- createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
+ createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProddate(),sourceLocDetl.getDeadline());
//淇敼鐩爣搴撲綅鐘舵��
updateAgvLocMast(targetLocMast,"S");
//淇敼鍘熷簱浣嶇姸鎬�
@@ -407,6 +412,7 @@
adjDetl.setBatch(locDetl.getBatch());
adjDetl.setOriQty(locDetl.getAnfme());
adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setMemo(locDetl.getSuppCode());
adjDetl.setModiTime(now);
adjDetl.setModiUser(userId);
adjDetl.setAppeTime(now);
@@ -536,11 +542,13 @@
}
//鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
- throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+ if (userId != 9527) {
+ throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+ }
}
//鍏ュ簱鍙栨秷
- if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
+ if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
//婧愮珯鐐�
String devNo = wrkMast.getSourceLocNo();
//鐩爣搴撲綅
@@ -597,6 +605,25 @@
}
+ @Override
+ public void changeToOutWrkMast(String workNo, Long userId) {
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectById(workNo);
+ if (Cools.isEmpty(agvWrkMast)){
+ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ }
+ if (agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53){
+ throw new CoolException(workNo+"鍏ュ簱浠诲姟鏃犳硶杞嚭搴�");
+ }
+
+ agvWrkMast.setIoType(101);
+ agvWrkMast.setWrkSts(206L);
+ agvWrkMast.setModiTime(new Date());
+ agvWrkMast.setModiUser(userId);
+
+ agvWrkMastService.updateById(agvWrkMast);
+
+ }
+
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
@@ -618,7 +645,7 @@
/*
鐢熸垚宸ヤ綔妗f槑缁�
*/
- private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
+ private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq,Date proddate,Date deadline){
Mat mat = matService.selectByMatnr(matnr);
if (Cools.isEmpty(mat)) {
throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触");
@@ -635,7 +662,8 @@
wrkDetl.setAppeTime(now);
wrkDetl.setModiUser(userId);
wrkDetl.setModiTime(now);
-
+ wrkDetl.setProddate(proddate);
+ wrkDetl.setDeadline(deadline);
wrkDetl.setThreeCode(csocode);
wrkDetl.setDeadTime(isoseq);
if (!agvWrkDetlService.insert(wrkDetl)) {
--
Gitblit v1.9.1