From e7d8e2c64facfa261e8b168b84e81ef6c835f57d Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 03 九月 2025 09:25:19 +0800
Subject: [PATCH] 许可证到期提醒,系统30分钟无操作下线账号
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 181 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 146 insertions(+), 35 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 e8d32e1..adae54a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -7,10 +7,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -26,6 +23,7 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -154,31 +152,81 @@
return null;
}
+// @Override
+// @Transactional
+// public void startupFullTakeStore(StockOutFloorParam param, Long userId) {
+// // 鐩爣绔欑偣鐘舵�佹娴�
+// BasDevp staNo = null;
+// // 鑾峰彇搴撲綅鏄庣粏
+// List<LocDetlDto> locDetlDtos = new ArrayList<>();
+// for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
+// staNo = basDevpService.checkSiteStatus(paramLocDetl.getSiteId());
+//
+// if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+// LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
+// if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+// }
+// }
+// if (!locDetlDtos.isEmpty()) {
+// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+// if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+// // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+// stockOut(staNo, locDetlDtos, null, userId);
+// } else {
+// throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+// }
+// } else {
+// throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+// }
+// }
+
@Override
@Transactional
- public void startupFullTakeStore(StockOutParam param, Long userId) {
- // 鐩爣绔欑偣鐘舵�佹娴�
- BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
- // 鑾峰彇搴撲綅鏄庣粏
- List<LocDetlDto> locDetlDtos = new ArrayList<>();
- for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ public void startupFullTakeStore(StockOutFloorParam param, Long userId) {
+ // 鎸� siteId 鍒嗙粍
+ Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>();
+
+ for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+ if (one != null) {
+ LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount());
+ Integer siteId = paramLocDetl.getSiteId();
+
+ if (siteId != null) {
+ siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto);
+ }
+ }
}
}
- if (!locDetlDtos.isEmpty()) {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
- if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
- // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
- stockOut(staNo, locDetlDtos, null, userId);
- } else {
- throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
- }
- } else {
+
+ if (siteIdToLocDetlsMap.isEmpty()) {
throw new CoolException("搴撳瓨涓嶅瓨鍦�");
}
+
+ // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱
+ for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) {
+ Integer siteId = entry.getKey();
+ List<LocDetlDto> locDetlDtos = entry.getValue();
+
+ // 鏍¢獙搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectOne(
+ new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())
+ );
+
+ if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+ // 鏍¢獙鐩爣绔欑偣
+ BasDevp staNo = basDevpService.checkSiteStatus(siteId);
+
+ // 鎵ц鍑哄簱
+ stockOut(staNo, locDetlDtos, null, userId);
+ } else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" +
+ locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+ }
+ }
}
+
@Override
@Transactional
@@ -295,6 +343,21 @@
}
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+ // 鏋勫缓鍑哄簱鏄庣粏锛堢敤浜� isAll 鍒ゆ柇锛�
+ List<LocDetlDto> locDetlDtos = locDtos.stream().map(locDto -> {
+ LocDetl locDetl = new LocDetl();
+ locDetl.setMatnr(locDto.getMatnr());
+ locDetl.setBatch(locDto.getBatch());
+ locDetl.setAnfme(locDto.getAnfme());
+
+ LocDetlDto dto = new LocDetlDto();
+ dto.setLocDetl(locDetl);
+ dto.setCount(locDto.getAnfme());
+ return dto;
+ }).collect(Collectors.toList());
+
+ taskDto.setLocDetlDtos(locDetlDtos);
+
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
@@ -637,29 +700,77 @@
return wrkMast;
}
+// @Override
+// @Transactional
+// public void locCheckOut(StockOutParam param, Long userId) {
+// // 鐩爣绔欑偣鐘舵�佹娴�
+// 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);
+// if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+// }
+// }
+// if (!locDetlDtos.isEmpty()) {
+// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+// if (locMast.getLocSts().equals("F")) {
+// // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+// stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+// } else {
+// throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+// }
+// } else {
+// throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+// }
+// }
+
@Override
@Transactional
- public void locCheckOut(StockOutParam param, Long userId) {
- // 鐩爣绔欑偣鐘舵�佹娴�
- BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
- // 鑾峰彇搴撲綅鏄庣粏
- List<LocDetlDto> locDetlDtos = new ArrayList<>();
- for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ public void locCheckOut(StockOutFloorParam param, Long userId) {
+
+ // 鎸� siteId 鍒嗙粍
+ Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>();
+
+ for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
- if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+ if (one != null) {
+ LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount());
+ Integer siteId = paramLocDetl.getSiteId();
+
+ if (siteId != null) {
+ siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto);
+ }
+ }
}
}
- if (!locDetlDtos.isEmpty()) {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
- if (locMast.getLocSts().equals("F")) {
- // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+
+ if (siteIdToLocDetlsMap.isEmpty()) {
+ throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+ }
+
+ // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱
+ for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) {
+ Integer siteId = entry.getKey();
+ List<LocDetlDto> locDetlDtos = entry.getValue();
+
+ // 鏍¢獙搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectOne(
+ new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())
+ );
+
+ if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+ // 鏍¢獙鐩爣绔欑偣
+ BasDevp staNo = basDevpService.checkSiteStatus(siteId);
+
+ // 鎵ц鍑哄簱
stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
} else {
- throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" +
+ locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
- } else {
- throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
}
}
@@ -1116,7 +1227,7 @@
}
LocTypeDto locTypeDto = new LocTypeDto();
locTypeDto.setLocType1((short) 1);
- return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
+ return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), 0.0, locTypeDto, list);
}
@Override
--
Gitblit v1.9.1