From 56b1b873191d6e7022ed225cf81c3eda774f210e Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 11 四月 2026 18:02:42 +0800
Subject: [PATCH] WMS2.0与WCS3.0对接完整版
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 110 insertions(+), 48 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 f3821ff..d7455b9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,29 +1,28 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.core.common.*;
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.mapper.LocMastMapper;
+import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.param.CompleteParam;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
+import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
+import com.zy.common.constant.MesConstant;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
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;
@@ -70,10 +69,6 @@
@Autowired
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
private WcsController wcsController;
@Autowired
private RowLastnoService rowLastnoService;
@@ -91,8 +86,17 @@
@Resource
private LocMastMapper locMastMapper;
- @Resource
- private OrderPakoutService orderPakOutService;
+ @Autowired
+ private OrderPakinService orderPakinService;
+
+ @Autowired
+ private OrderDetlPakinService orderDetlPakinService;
+
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+
+ @Autowired
+ private OrderDetlPakoutService orderDetlPakoutService;
@Override
@Transactional
@@ -403,7 +407,7 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鍒ゆ柇鏄惁鏄洏鐐瑰崟
String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
- OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
+ OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo);
int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
@@ -437,13 +441,11 @@
if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
continue;
}
-// OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
+ OrderDetlPakout orderDetl = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
, locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
// if (orderDetl == null) {
-//// orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
-// orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
-//
+// orderDetl = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
+// , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
// }
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
@@ -461,15 +463,11 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
// // 淇敼璁㈠崟鏄庣粏
-// if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
-// throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
-// }
-// orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
- OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
- orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
- , locDto.getAnfme());
- OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
+ if (!orderDetlPakoutService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
+ orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3(), locDto.getAnfme())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderPakoutService.updateSettle(orderDetl.getOrderId(), 2L, userId);
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -817,7 +815,7 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+ if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 5 || wrkMast.getWrkSts() == 15) {
throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
}
// 鍏ュ簱 + 搴撲綅杞Щ
@@ -995,7 +993,7 @@
}
Mat mat = matService.selectByMatnr(adjust.getMatnr());
LocDetl locDetl = new LocDetl();
- locDetl.sync(mat);
+ BeanUtils.copyProperties(mat, locDetl);
locDetl.setBatch(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
locDetl.setZpallet(locMast.getBarcode());
@@ -1138,34 +1136,29 @@
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-// }
- OrderInAndOutUtil.decrease(Boolean.FALSE, wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
+ if (!orderDetlPakoutService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
- wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme());
-
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+ throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
//淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
boolean flag = true;
-// List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
- Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
- List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
- for (OrderDetl orderDetl : orderDetls) {
+ List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_no", wrkDetl.getOrderNo()));
+ for (OrderDetlPakout orderDetl : orderDetls) {
if (orderDetl.getWorkQty() > 0) {
flag = false;
}
}
if (flag) {
-// Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
+ OrderPakout order = orderPakoutService.selectOne(new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()));
if (!Cools.isEmpty(order) && order.getSettle() == 2) {
order.setSettle(1L);
order.setUpdateBy(userId);
order.setUpdateTime(now);
}
-// if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
-// throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
-// }
- OrderInAndOutUtil.updateOrder(Boolean.FALSE, order.getId(), order.getSettle(), userId);
+ if (!orderPakoutService.update(order, new EntityWrapper<OrderPakout>().eq("order_no", wrkDetl.getOrderNo()))) {
+ throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+ }
}
}
}
@@ -1410,4 +1403,73 @@
}
}
+ /**
+ * 鎵ц绉诲簱浠诲姟
+ * @param combParam
+ * @param userId
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R taskMove(CompleteParam combParam, Long userId) {
+
+ if (Objects.isNull(combParam.getTaskNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+ if (Objects.isNull(combParam.getSourceLocNo())) {
+ return R.error("婧愬簱浣嶄笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(combParam.getLocNo())) {
+ return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛�");
+ }
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getTaskNo()));
+ if (Objects.isNull(wrkMast)) {
+ return R.error("浠诲姟妗d笉瀛樺湪锛侊紒");
+ }
+
+ String body = JSON.toJSONString(combParam);
+ boolean success = false;
+ String response = "";
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.WCS_URL)
+ .setPath(MesConstant.MOVE_LOC_TASK)
+ .setJson(body)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ wrkMast.setWrkSts(2L);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ if (!Objects.isNull(locMast)) {
+ locMast.setMoveStatus(1);
+ locMastService.updateById(locMast);
+ }
+ success = true;
+ } else {
+ log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.WCS_URL + MesConstant.MOVE_LOC_TASK, body, response);
+ }
+ } catch (Exception e) {
+ log.error("鍙戦�乤gv浠诲姟寮傚父", e);
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鍙戦�乤gv浠诲姟",
+ MesConstant.WCS_URL + MesConstant.MOVE_LOC_TASK,
+ null,
+ "127.0.0.1",
+ body,
+ response,
+ success);
+ } catch (Exception e) {
+ log.error("", e);
+ }
+ }
+
+ return null;
+ }
+
}
--
Gitblit v1.9.1