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