From 72149078ff14f391cdd3c312b74455e441630343 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 10 十一月 2025 13:51:52 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/task/handler/GroupOrderFormHandler.java | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 213 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/GroupOrderFormHandler.java b/src/main/java/com/zy/asrs/task/handler/GroupOrderFormHandler.java
index a3b94c5..235c4ec 100644
--- a/src/main/java/com/zy/asrs/task/handler/GroupOrderFormHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/GroupOrderFormHandler.java
@@ -1,48 +1,249 @@
package com.zy.asrs.task.handler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.OrderDetlPakout;
import com.zy.asrs.entity.OrderPakout;
-import com.zy.asrs.service.OrderDetlPakoutService;
-import com.zy.asrs.service.OrderDetlService;
-import com.zy.asrs.service.OrderPakoutService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.entity.param.OrderInspectionRollParam;
+import com.zy.asrs.entity.param.OrderOutLocBoxCsUtilParam;
+import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.CodeDetectionUtil;
+import com.zy.asrs.utils.OrderOutBatchUtil;
+import com.zy.common.constant.MesConstant;
+import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
* Created by Monkey D. Luffy on 2025.11.10
- * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鎷嗗灈瀹屾垚淇℃伅澶勭悊
+ * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............缁勮揣鍗曠浉鍏�
*/
@Slf4j
@Service
public class GroupOrderFormHandler extends AbstractHandler<String> {
@Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
- @Autowired
private OrderPakoutService orderPakoutService;
@Autowired
private OrderDetlPakoutService orderDetlPakoutService;
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private LocDetlService locDetlService;
@Transactional
public ReturnT<String> abandoned(OrderPakout orderPakout) {
List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectByOrderId(orderPakout.getId());
-
+ moveBoth(orderPakout,orderDetls);
return SUCCESS;
+ }
+
+ private void moveBoth(OrderPakout order, List<OrderDetlPakout> orderDetls){
+ Date now = new Date();
+ if (!Cools.isEmpty(orderDetls)) {
+ for (OrderDetlPakout orderDetl : orderDetls) {
+ orderDetl.setUpdateBy(0L);
+ orderDetl.setUpdateTime(now);
+// orderDetlPakoutService.addToLogTable(orderDetl);
+ orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>()
+ .eq("id",orderDetl.getId()));
+ }
+ }
+ if (!Cools.isEmpty(order)){
+ order.setUpdateBy(0L);
+ order.setUpdateTime(now);
+// orderPakoutService.addToLogTable(order);
+ orderPakoutService.delete(new EntityWrapper<OrderPakout>()
+ .eq("id",order.getId()));
+ }
+ }
+
+ @Transactional
+ public ReturnT<String> inspection(OrderPakout orderPakout) {
+ List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectByOrderId(orderPakout.getId());
+ String memo = "";
+ for (OrderDetlPakout orderDetl : orderDetls) {
+ boolean signD = true;
+ if (!CodeDetectionUtil.barcodeDetection(orderDetl.getManu(),7)){
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("model", orderDetl.getModel()));
+ if (!Cools.isEmpty(locDetl)){
+ signD = false;
+ orderDetl.sync(locDetl);
+ orderDetl.setManu(locDetl.getLocNo());
+ orderDetl.setBarcode(locDetl.getBarcode());
+ orderDetl.setDanger(locDetl.getDanger());
+ orderDetl.setMemo(locDetl.getMemo());
+ if (!Cools.isEmpty(locDetl.getDanger$()) && locDetl.getDanger()==1){
+ orderDetl.setDanger(1);
+ orderDetlPakoutService.updateById(orderDetl);
+ continue;
+ }
+ } else {
+ if (Cools.isEmpty(memo)){
+ memo = "鏃犲簱瀛�";
+ }else {
+ memo = memo+";鏃犲簱瀛�";
+ }
+ continue;
+ }
+ }
+ if (signD){
+ if (!Cools.isEmpty(orderDetl.getDanger$()) && orderDetl.getDanger()==1){//鍚堟牸涓嶉渶瑕佹楠�
+ continue;
+ } else {
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("model", orderDetl.getModel()));
+ if (!Cools.isEmpty(locDetl.getDanger$()) && locDetl.getDanger()==1){
+ orderDetl.setDanger(1);
+ orderDetlPakoutService.updateById(orderDetl);
+ continue;
+ }
+ }
+ }
+ OrderInspectionRollParam orderInspectionRollParam = new OrderInspectionRollParam(orderDetl.getModel());
+ String response = "";
+ boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.URL)
+ .setPath(MesConstant.PAKIN_URL)
+ .setJson(JSON.toJSONString(orderInspectionRollParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ if (jsonObject.getBoolean("state")) {
+ String value = jsonObject.getString("value");
+ if (value.equals("鍚堟牸")){
+ orderDetl.setDanger(1);
+ orderDetlPakoutService.updateById(orderDetl);
+ } else if (!Cools.isEmpty(orderDetl.getDanger$()) && value.equals(orderDetl.getDanger$())){
+ if (Cools.isEmpty(memo)){
+ memo = "鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }else {
+ memo = memo+";鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }
+ continue;
+ } else {
+ if (Cools.isEmpty(memo)){
+ memo = "鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }else {
+ memo = memo+";鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }
+ if (value.equals("涓嶅悎鏍�")){
+ orderDetl.setDanger(2);
+ orderDetlPakoutService.updateById(orderDetl);
+ }
+ continue;
+ }
+ } else {
+ if (Cools.isEmpty(memo)){
+ memo = "鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }else {
+ memo = memo+";鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }
+ }
+ success = true;
+ } else {
+ if (Cools.isEmpty(memo)){
+ memo = "鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }else {
+ memo = memo+";鏌ヨ鍗峰彿缁撴灉锛�"+jsonObject.getString("message");
+ }
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(orderInspectionRollParam), response);
+// throw new CoolException("鏌ヨ鍗峰彿鏄惁鍚堟牸澶辫触");
+ }
+ } catch (Exception e) {
+ if (Cools.isEmpty(memo)){
+ memo = "鏌ヨ鍗峰彿缁撴灉锛�"+"寮傚父"+e.getMessage();
+ }else {
+ memo = memo+";鏌ヨ鍗峰彿缁撴灉锛�"+"寮傚父"+e.getMessage();
+ }
+ log.error("fail", e);
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// return FAIL.setMsg(e.getMessage());
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鏌ヨ鍗峰彿鏄惁鍚堟牸",
+ MesConstant.URL + MesConstant.PAKIN_URL,
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(orderInspectionRollParam),
+ response,
+ success
+ );
+ } catch (Exception e) { log.error("鏌ヨ鍗峰彿鏄惁鍚堟牸淇濆瓨鎺ュ彛鏃ュ織寮傚父", e); }
+ }
+ }
+ if (Cools.isEmpty(memo)){
+ return SUCCESS;
+ }
+ orderPakout.setSettle(13L);//妫�楠屽瓨鍦ㄤ笉鍚堟牸
+ orderPakout.setMemo(memo);
+ orderPakoutService.updateById(orderPakout);
+ return FAIL;
}
@Transactional
public ReturnT<String> start(OrderPakout orderPakout) {
- List<OrderDetlPakout> orderDetls = orderDetlPakoutService.selectByOrderId(orderPakout.getId());
+ List<OrderDetlPakout> orderDetlPakoutList = orderDetlPakoutService.selectByOrderId(orderPakout.getId());
+ if (orderDetlPakoutList.isEmpty()){
+ orderPakout.setSettle(98L);
+ orderPakout.setMemo("涓嶅瓨鍦ㄦ槑缁嗭紒锛侊紒");
+ orderPakoutService.updateById(orderPakout);
+ return FAIL;
+ }
+ List<OrderOutLocBoxCsUtilParam> outLocBoxCs = new ArrayList<>();
+ String orderNo = "ZH" + snowflakeIdWorker.nextId();
+ for (OrderDetlPakout orderDetl : orderDetlPakoutList) {
+ if (!CodeDetectionUtil.barcodeDetection(orderDetl.getManu(),7)){//鏃犲簱瀛�
+ continue;
+ }
+ if (Cools.isEmpty(orderDetl.getDanger$()) || orderDetl.getDanger()!=1){//涓嶅悎鏍间笉鍑哄簱
+ continue;
+ }
+ OrderOutLocBoxCsUtilParam outLocBox = new OrderOutLocBoxCsUtilParam();
+ outLocBox.setBoxNo(orderDetl.getBatch());
+ outLocBox.setRoll(orderDetl.getModel());
+ outLocBox.setMemo(orderDetl.getMemo());
+ outLocBox.setOrderOneNo(orderNo);
+ outLocBox.setCstmrName(orderPakout.getCstmrName());
+ outLocBox.setDanger(orderDetl.getDanger$());
+ outLocBoxCs.add(outLocBox);
+ }
+ if (outLocBoxCs.isEmpty()){
+ orderPakout.setSettle(98L);
+ orderPakout.setMemo("涓嶅瓨鍦ㄥ悎鏍肩殑鐗╂枡鏄庣粏锛侊紒锛�");
+ orderPakoutService.updateById(orderPakout);
+ return FAIL;
+ }
- return SUCCESS;
+ OrderOutBatchUtil orderOutBatchUtil = new OrderOutBatchUtil(orderNo,orderPakout.getCstmrName(),"","MES涓嬪彂缁勮揣鍗�","缁勮揣鍗�",true,orderPakout.getItemName());
+ R r = orderOutBatchUtil.outGroupOrderForm(outLocBoxCs);
+ int code = Integer.parseInt(String.valueOf(r.get("code")));
+ if (code==200){
+ return SUCCESS;
+ }
+ String meg = String.valueOf(r.get("msg"));
+ orderPakout.setSettle(98L);
+ orderPakout.setMemo(meg);
+ orderPakoutService.updateById(orderPakout);
+ return FAIL;
}
}
--
Gitblit v1.9.1