From 64781aac1c41bb8c4dda2deb4dc7ae98cace8315 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 07 十一月 2025 09:08:57 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/controller/OpenController.java | 30 ++++++
src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java | 206 +++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 2
src/main/java/com/zy/asrs/entity/param/StockOutParam.java | 1
src/main/java/com/zy/asrs/controller/WorkController.java | 1
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 30 ++++++
src/main/java/com/zy/asrs/service/OpenService.java | 2
src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java | 1
8 files changed, 272 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 6555bca..44751bb 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -305,6 +305,36 @@
return R.ok();
}
+
+
+ /**
+ * 娣诲姞鍑哄簱鍗曘�佹甯搁��搴撹嚦浜屾ゼ鍖呰
+ */
+ @PostMapping("/order/normalTransferToTheSecond-floorPackagingArea/v1")
+ @AppAuth(memo = "姝e父閫�搴撹嚦浜屾ゼ鍖呰")
+ public synchronized R packagingAreaOrderCreate(@RequestHeader(required = false) String appkey,
+ @RequestBody QualityInspectionParam param,
+ HttpServletRequest request) {
+ auth(appkey, param, request);
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getBoxNo())){
+ throw new CoolException("鍙傛暟锛氱鍙� boxNo涓虹┖");
+ }
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getModel())){
+ throw new CoolException("鍙傛暟锛氬嵎鍙� Model涓虹┖");
+ }
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getMemo())){
+ throw new CoolException("鍙傛暟锛氬娉� Memo涓虹┖");
+ }
+
+ return openService.packagingAreaOrderCreate(param);
+ }
+
/*...........................涓婇ザ姹熼摐..............浠ヤ笂.............寰愬伐姹変簯...........................*/
}
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 0fb0d13..c55fc5f 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -96,6 +96,7 @@
@RequestMapping("/plate/order/out/start")
@ManagerAuth(memo = "鎵嬪姩璁㈠崟鍑哄簱浣滀笟")
public R fullStoreTakeStartOrder(@RequestBody StockOutParam param) {
+ param.setOrderName("鎵嬪姩鍑哄簱鍗�");
workService.startupFullTakeStoreOrder(param, getUserId());
return R.ok("鍑哄簱鍚姩鎴愬姛");
}
diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
index 5143458..0f44e5f 100644
--- a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -16,6 +16,7 @@
private String orderNo;
private String cstmrName;
private Date nowTime;
+ private String orderName;
// 鐗╂枡缂栧彿闆嗗悎
private List<LocDetl> locDetls;
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 3909563..164bd6b 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service;
+import com.core.common.R;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
@@ -59,5 +60,6 @@
void cs2();
void qualityInspection(QualityInspectionParam param);
+ R packagingAreaOrderCreate(QualityInspectionParam param);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 282662d..09322fe 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -12,6 +12,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.MatUtils;
+import com.zy.asrs.utils.OrderOutBatchUtil;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocTypeDto;
@@ -1131,5 +1132,34 @@
}
+ /*
+ * 姝e父閫�搴撹嚦浜屾ゼ鍖呰
+ * */
+ @Override
+ @Transactional
+ public R packagingAreaOrderCreate(QualityInspectionParam param) {
+ try{
+// String[] split = param.getModel().split(",");
+// if (Cools.isEmpty(split)){
+// throw new CoolException("鍙傛暟锛氬嵎鍙� Model涓虹┖,瑙f瀽澶辫触锛侊紒锛�");
+// }
+ List<String[]> OutLocBoxCs = new ArrayList<>();
+ String orderNo = "TK" + snowflakeIdWorker.nextId();
+ String cstmrName = "鏈煡";
+// for (String model:split){
+ String[] outLocBox = new String[]{param.getBoxNo(),orderNo,cstmrName,param.getMemo(),"闅忔剰"};
+ OutLocBoxCs.add(outLocBox);
+// }
+
+ if (!OutLocBoxCs.isEmpty()){
+ OrderOutBatchUtil orderOutBatchUtil = new OrderOutBatchUtil(orderNo,cstmrName,"","MES涓嬪彂閫�璐ц嚦浜屾ゼ","閫�璐ц嚦浜屾ゼ");
+ return orderOutBatchUtil.setOrderOutBatch(OutLocBoxCs);
+ }
+ } catch (Exception e) {
+ throw new CoolException("瀵瑰簲绠卞彿锛�"+param.getBoxNo()+"鐨勭墿鏂欓��搴撹嚦2妤煎け璐�"+e.getMessage());
+ }
+ return R.error("瀵瑰簲绠卞彿锛�"+param.getBoxNo()+"鐨勭墿鏂欓��搴撹嚦2妤煎け璐�");
+ }
+
/*...........................涓婇ザ姹熼摐..............浠ヤ笂.............寰愬伐姹変簯...........................*/
}
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 f6745c7..8ec49ac 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -203,7 +203,7 @@
if (Cools.isEmpty(param.getOrderNo())){
throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
}
- DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE);
+ DocType docType = docTypeService.selectOrAdd(param.getOrderName(), Boolean.FALSE);
Order order = orderService.selectByNo(param.getOrderNo());
if (Cools.isEmpty(order)){
Date now = new Date();
diff --git a/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java b/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java
new file mode 100644
index 0000000..d0ed13f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java
@@ -0,0 +1,206 @@
+package com.zy.asrs.utils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WorkService;
+import com.zy.common.model.LocDto;
+import com.zy.common.properties.SlaveProperties;
+import com.zy.system.entity.OperateLog;
+import com.zy.system.service.OperateLogService;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static org.reflections.Reflections.log;
+
+public class OrderOutBatchUtil {
+ private String errorMsgOrderLoc = "";
+ private boolean sign = true;
+ private String orderOneNo = null;
+ private String cstmrName = null;
+ private String ip = "";
+ private String action = "";
+ private String orderName = "";
+ private Long userId = 9999L;
+
+
+ public OrderOutBatchUtil() {
+ this.sign = true;
+ this.errorMsgOrderLoc = "";
+ }
+
+ public OrderOutBatchUtil(String orderOneNo, String cstmrName) {
+ this.errorMsgOrderLoc = "";
+ this.sign = true;
+ this.orderOneNo = orderOneNo;
+ this.cstmrName = cstmrName;
+ }
+
+ public OrderOutBatchUtil(String orderOneNo, String cstmrName, String ip, String action,String orderName) {
+ this.errorMsgOrderLoc = "";
+ this.sign = true;
+ this.orderOneNo = orderOneNo;
+ this.cstmrName = cstmrName;
+ this.ip = ip;
+ this.action = action;
+ this.orderName = orderName;
+ this.userId = 9999L;
+ }
+
+ public R setOrderOutBatch() {
+ return R.ok();
+ }
+
+
+ public R setOrderOutBatch(List<String[]> OutLocBoxCs) {
+ int total = OutLocBoxCs.size();
+ if (!Cools.isEmpty(OutLocBoxCs) && !OutLocBoxCs.isEmpty()) {
+ LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
+ LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+ SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+ WorkService workService = SpringUtils.getBean(WorkService.class);
+ List<LocDto> locDtos = new ArrayList<>();
+ List<String[]> outLocBoxCList = new ArrayList<>();
+ List<String> outLocBoxCNew = new ArrayList<>();
+ for (String[] outLocBoxC : OutLocBoxCs) {
+ total--;
+ if (!outLocBoxCNew.contains(outLocBoxC[0])) {
+ LocDetl locDetlSou = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC[0]));
+ if (Cools.isEmpty(locDetlSou)) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC[0] + " 鏈煡璇㈠埌鏁版嵁锛侊紒锛併��===]";
+ continue;
+// throw new CoolException("绠卞彿锛�"+outLocBoxC[0]+" 鏈煡璇㈠埌鏁版嵁锛侊紒锛�");
+ }
+// if (!locDetlSou.getDanger$().equals(outLocBoxC[4])) {
+// sign = false;
+// errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC[0] + " ==銆嬪嚭搴撹緭鍏ュ緟鍒ょ姸鎬侊細" + outLocBoxC[4] + "銆佸簱瀛樼姸鎬侊細" + locDetlSou.getDanger$() + "銆傜姸鎬佷笉鍖归厤銆�===]";
+// continue;
+// }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlSou.getLocNo()));
+ if (Cools.isEmpty(locMast)) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC[0] + " 鎵�鍦ㄥ簱浣嶄笉婊¤冻鍑哄簱鏉′欢锛侊紒锛佹湭鏌ヨ鍒版绠卞彿鎵�鍦ㄥ簱浣�" + "銆�===]";
+ continue;
+ }
+ if (!locMast.getLocSts().equals("F")) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC[0] + " 鎵�鍦ㄥ簱浣嶄笉婊¤冻鍑哄簱鏉′欢锛侊紒锛佸簱浣嶇姸鎬佷笉涓篎锛侊紒锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$() + "銆�===]";
+ continue;
+ }
+
+ // 鐩爣搴撲綅 ===>> 娴呭簱浣�
+ if (Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) {
+ String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast.getLocNo());
+ LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
+ if (!Cools.isEmpty(locMast2)) {
+ if (locMast2.getLocSts().equals("P") || locMast2.getLocSts().equals("R")) {
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC[0] + " 鎵�鍦ㄥ簱浣嶆弧瓒冲嚭搴撴潯浠讹紒锛侊紒浣嗘槸娣卞簱浣嶅湪鍑哄簱涓紒锛侊紒鍥犳浼氬す鏉傚湪鍓嶈竟璁㈠崟鎵ц锛侊紒锛�" + "銆�===]";
+ }
+ }
+ }
+
+ if (sign) {
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("loc_no", locDetlSou.getLocNo()).eq("origin", locDetlSou.getOrigin()));
+ for (LocDetl locDetl : locDetls) {
+ total++;
+ String[] locDetlNow = new String[5];
+ locDetlNow[0] = locDetl.getBatch();
+ locDetlNow[1] = outLocBoxC[1];
+ locDetlNow[2] = outLocBoxC[2];
+ locDetlNow[3] = outLocBoxC[3];
+ locDetlNow[4] = outLocBoxC[4];
+ outLocBoxCList.add(locDetlNow);
+ outLocBoxCNew.add(outLocBoxC[0]);
+ }
+ }
+ }
+ }
+ for (String[] outLocBoxC : outLocBoxCList) {
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC[0]));
+ if (Cools.isEmpty(locDetl)) {
+ total--;
+ continue;
+ }
+
+ if (!Cools.isEmpty(outLocBoxC[3])) {
+ String memo = Cools.isEmpty(locDetl.getMemo()) ? "" : locDetl.getMemo() + "锛�";
+ locDetl.setMemo(memo + DateUtils.convert(new Date(), DateUtils.yyyyMMdd_C) + "澶囨敞锛�" + outLocBoxC[3]);
+ } else if (Cools.isEmpty(locDetl.getMemo())) {
+ locDetl.setMemo(outLocBoxC[3]);
+ }
+ LocDto locDto = new LocDto(locDetl);
+ locDtos.add(locDto);
+ }
+
+ StockOutParam param = new StockOutParam();
+ ArrayList<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+ List<LocDto> locDtosList = new ArrayList<>();
+ List<String> batchList = new ArrayList<>();
+ for (LocDto locDto : locDtos) {
+ if (!batchList.contains(locDto.getBatch())) {
+ batchList.add(locDto.getBatch());
+ locDtosList.add(locDto);
+ }
+ }
+ for (LocDto locDto : locDtosList) {
+ StockOutParam.LocDetl locDetl = new StockOutParam.LocDetl();
+ locDetl.setBrand(locDto.getBrand());
+ locDetl.setLocNo(locDto.getLocNo());
+ locDetl.setAnfme(locDto.getAnfme());
+ locDetl.setMatnr(locDto.getMatnr());
+ locDetl.setBatch(locDto.getBatch());
+ locDetl.setModel(locDto.getModel());
+ locDetl.setSpecs(locDto.getSpecs());
+ locDetl.setZpallet(locDto.getZpallet());
+ locDetl.setOrigin(locDto.getOrigin());
+ locDetl.setWeight(locDto.getWeight());
+ locDetl.setMemo(locDto.getMemo());
+ locDetl.setDanger(locDto.getDanger());
+
+ locDetls.add(locDetl);
+ }
+ param.setLocDetls(locDetls);
+ param.setOrderNo(orderOneNo);
+ param.setCstmrName(cstmrName);
+ param.setOrderName(orderName);
+
+ if (sign && total > 0) {
+ workService.startupFullTakeStoreOrder(param, 9999L);
+ }
+
+ try {
+ OperateLogService operateLogService = SpringUtils.getBean(OperateLogService.class);
+ // 璁板綍鎿嶄綔鏃ュ織
+ OperateLog operateLog = new OperateLog();
+ operateLog.setAction(action);
+ operateLog.setIp(ip);
+ operateLog.setUserId(9999L);
+ operateLog.setRequest("鍗曞彿锛�" + orderOneNo + "銆佸鎴峰悕锛�" + cstmrName);
+ operateLog.setResponse(errorMsgOrderLoc.equals("") ? "姝e父" : (sign && total > 0) ? "鎴愬姛:" + errorMsgOrderLoc : "澶辫触:" + errorMsgOrderLoc);
+ operateLogService.insert(operateLog);
+ } catch (Exception e) {
+ log.error("璁板綍鎿嶄綔鏃ュ織澶辫触锛�" + e.getMessage());
+ }
+
+ }
+
+ log.info("鍑哄簱{}鏉$鍙凤紒", total);
+
+ String requert = errorMsgOrderLoc.equals("") ? "姝e父" : (sign && total > 0) ? "鎴愬姛:" + errorMsgOrderLoc : "澶辫触:" + errorMsgOrderLoc;
+ if (sign && total > 0) {
+ return R.ok(requert.equals("姝e父")? "鎴愬姛":requert);
+ }
+ return R.error(requert);
+ }
+}
diff --git a/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java b/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java
index bf8ea92..5051f60 100644
--- a/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java
+++ b/src/main/java/com/zy/asrs/utils/OutLocBoxExcelListener.java
@@ -232,6 +232,7 @@
param.setLocDetls(locDetls);
param.setOrderNo(orderOneNo);
param.setCstmrName(cstmrName);
+ param.setOrderName("鎵嬪姩鍑哄簱鍗�");
if (sign && total>0){
workService.startupFullTakeStoreOrder(param,9999L);
--
Gitblit v1.9.1