From 768498719683f85e5ed19c73eb3d14cdbf420df4 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期一, 01 七月 2024 14:03:01 +0800
Subject: [PATCH] 绑定小车码,预装总成码,手动工位扫码,拧紧逻辑优化

---
 jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java |  150 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 138 insertions(+), 12 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java b/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java
index a1a0b2c..0d833f4 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java
@@ -1,14 +1,22 @@
 package com.jcdm.main.restful.qingYan.service;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
+import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jcdm.common.core.domain.AjaxResult;
+import com.jcdm.common.utils.StringUtils;
+import com.jcdm.framework.websocket.WebSocketUsers;
+import com.jcdm.main.bs.beatSetting.domain.BsBeatSetting;
+import com.jcdm.main.bs.beatSetting.service.IBsBeatSettingService;
+import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
+import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
 import com.jcdm.main.constant.Constants;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
@@ -18,27 +26,33 @@
 import com.jcdm.main.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
-import com.jcdm.main.restful.qingYan.doman.ChildVO;
-import com.jcdm.main.restful.qingYan.doman.ParentVO;
-import com.jcdm.main.restful.qingYan.doman.PostEntity;
+import com.jcdm.main.restful.factoryMes.service.RestfulService;
+import com.jcdm.main.restful.qingYan.doman.*;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.weaver.loadtime.Aj;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.websocket.Session;
 import java.lang.reflect.Field;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
-
+@Slf4j
 @RestController
 @RequestMapping("/jcdmMes")
 public class ExternalInterface {
+    Map<String, Session> map = WebSocketUsers.getUsers();
+
+    private static final Logger logger = LoggerFactory.getLogger("sys-user");
+
+    public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
     @Autowired
     private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
     @Autowired
@@ -50,7 +64,20 @@
     @Autowired
     private IOmProductionOrdeInfoService productionOrdeInfoService;
 
-    String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+    @Autowired
+    private IOmProductionOrdeInfoService omProductionOrdeInfoService;
+
+    @Autowired
+    private IBsFormulaChildInfoService bsFormulaChildInfoService;
+
+    @Autowired
+    private IBsBeatSettingService bsBeatSettingService;
+
+    private IDaPassingStationCollectionService passingStationCollectionService;
+
+//    String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+
+    String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
 
     /**
      * 瀵煎嚭鐐规浠诲姟鍒楄〃
@@ -142,9 +169,100 @@
         daTestDeviceInterface.setProductNum(parentVO.getProductNum());
         daTestDeviceInterface.setTotalResult(parentVO.getTotalResult());
         daTestDeviceInterface.setCheckList(s);
+        daTestDeviceInterface.setCreateTime(new Date());
         daTestDeviceInterfaceService.save(daTestDeviceInterface);
+        if(parentVO.getStationCode().contains("OP480")){
+            if(StringUtils.isNotBlank(parentVO.getProductNum())){
+                OmProductionOrdeInfo one = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, parentVO.getProductNum()));
+                if(ObjectUtil.isNotNull(one)){
+                    logger.info("瑙g粦灏忚溅{}锛宲ack鐮佹槸{}"+one.getTrolleyYard(),one.getProductNum());
+                    one.setTrolleyYard("");
+                    omProductionOrdeInfoService.saveOrUpdate(one);
+                }
+            }
+        }
+//        try{
+//            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
+//                logger.info("寮�濮嬫墽琛屽紓姝ユ柟娉�");
+//                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+//                logger.info("寮傛鏂规硶鎵ц缁撴潫");
+//                logger.info("鎺ユ敹娓呯爺锛屾皵瀵嗗紓姝ユ柟娉晎}"+execute.body());
+//            });
+//        }catch (Exception e){
+//            System.out.println(e.getMessage());
+//        }
         HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
         return AjaxResult.success(execute.body());
+    }
+
+    @GetMapping("/productionWorkOrderRequest")
+    public AjaxResult productionWorkOrderRequest(){
+        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list();
+        List<RestFulOrder> restFulOrders = new ArrayList<>();
+        for (OmProductionOrdeInfo omProductionOrdeInfo : list) {
+            RestFulOrder order = new RestFulOrder();
+            order.setProductionOrderNum(omProductionOrdeInfo.getWorkOrderNo());
+            order.setProductNum(omProductionOrdeInfo.getProductNum());
+            order.setMaterialCode(omProductionOrdeInfo.getMaterialCode());
+            order.setStationCode(omProductionOrdeInfo.getStationCode());
+            order.setPlanQty(omProductionOrdeInfo.getPlanQty());
+            order.setCreateTime(format.format(omProductionOrdeInfo.getCreateTime()));
+            restFulOrders.add(order);
+        }
+        return AjaxResult.success(restFulOrders);
+    }
+
+    public static void main(String[] args) {
+        String str = "0RSPB0011A2E3AE5P0000002  2024-05-28 15:48:51";
+        String[] split = str.split("  ");
+        System.out.println(split[0]);
+        System.out.println(split[1]);
+
+    }
+
+    @GetMapping("/getQualityData")
+    public AjaxResult getQualityData(){
+//        List<DaPassingStationCollection> qualified = daPassingStationCollectionService.list(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getOutRsSign, "1"));
+//        List<DaPassingStationCollection> unQualified = daPassingStationCollectionService.list(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getOutRsSign, "2"));
+//        Map<String,Integer> map = new HashMap<>();
+//        map.put("qualified",qualified.size());
+//        map.put("unQualified",unQualified.size());
+        for (BsBeatSetting bsBeatSetting : bsBeatSettingService.list()) {
+            String str = bsBeatSetting.getProductCode();
+            String[] split = str.split("  ");
+            String reportResult = RestfulService.getWorkReportResultFeedback(split[0], "OP500", "2024-06-27 15:48:51");
+            JSONObject jsonObject = new JSONObject(reportResult);
+            String code = jsonObject.getStr("code");
+            String status = jsonObject.getJSONObject("data").getStr("resultCode");
+            if("success".equals(code)&&"S".equals(status)){
+                //濡傛灉鎴愬姛锛屾墽琛屾姤宸ユ垚鍔熸柟娉曪紝淇敼鏄惁鎶ュ伐涓�1锛屾坊鍔犳姤宸ユ椂闂�
+                bsBeatSetting.setProductName("S");
+                this.bsBeatSettingService.saveOrUpdate(bsBeatSetting);
+            }else{
+                bsBeatSetting.setProductName("F");
+                this.bsBeatSettingService.saveOrUpdate(bsBeatSetting);
+            }
+        }
+        return AjaxResult.success();
+    }
+
+
+
+    @GetMapping("/productionOrderComponentRequest")
+    public AjaxResult productionOrderComponentRequest(BsFormulaChildInfo bsFormulaChildInfo){
+        Map<String,List<String>> map = new HashMap<>();
+        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        );
+        List<ProductionOrderComponentRequest> requests = new ArrayList<>();
+        for (BsFormulaChildInfo info : list) {
+            ProductionOrderComponentRequest request = new ProductionOrderComponentRequest();
+            request.setMaterialCode(info.getMaterialCode());
+            request.setOperationSteps(info.getOperationSteps());
+            requests.add(request);
+        }
+        return AjaxResult.success(requests);
     }
 
 
@@ -178,6 +296,14 @@
 
     }
 
+    /**
+     * 鏀捐璇风┖鐘舵��
+     */
+    @PostMapping("/sendWebSocket")
+    public void sendWebSocket(@RequestBody BsFormulaChildInfo bsFormulaChildInfo)
+    {
+        WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults());
+    }
 
     /**
      * 浣跨敤鍙嶅皠鑾峰彇瀵硅薄鐨勫睘鎬у��

--
Gitblit v1.9.3