From 04b8eff075a04db23e6f908855699b4d2954588c Mon Sep 17 00:00:00 2001
From: yyt <306727702@qq.com>
Date: 星期四, 23 五月 2024 18:47:01 +0800
Subject: [PATCH] 380新产品,优化

---
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java |  211 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 182 insertions(+), 29 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
index 8dee271..e20f269 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
@@ -1,45 +1,50 @@
 package com.jcdm.main.bs.orderScheduling.controller;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.jcdm.common.annotation.Excel;
-import com.jcdm.common.core.domain.R;
-import com.jcdm.common.core.domain.entity.SysDictData;
-import com.jcdm.common.utils.DictUtils;
-import com.jcdm.common.utils.StringUtils;
-import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO;
-import com.jcdm.main.bs.orderScheduling.vo.LineChartVO;
-import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
-import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
-import com.jcdm.system.service.ISysDictDataService;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.jcdm.common.annotation.Log;
 import com.jcdm.common.core.controller.BaseController;
 import com.jcdm.common.core.domain.AjaxResult;
+import com.jcdm.common.core.domain.R;
+import com.jcdm.common.core.domain.entity.SysDictData;
+import com.jcdm.common.core.page.TableDataInfo;
 import com.jcdm.common.enums.BusinessType;
+import com.jcdm.common.utils.SecurityUtils;
+import com.jcdm.common.utils.StringUtils;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.main.bs.orderScheduling.common.Constants;
 import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
 import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
-import com.jcdm.common.utils.poi.ExcelUtil;
-import com.jcdm.common.core.page.TableDataInfo;
+import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO;
+import com.jcdm.main.bs.orderScheduling.vo.LineChartVO;
+import com.jcdm.main.bs.orderScheduling.vo.SumDataVO;
+import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
+import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
+import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
+import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
+import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
+import com.jcdm.main.om.productionOrde.service.impl.OmProductionOrdeInfoServiceImpl;
+import com.jcdm.main.plcserver.conf.OPCElement;
+import com.jcdm.main.plcserver.sub.OPCUaSubscription;
+import com.jcdm.system.service.ISysDictDataService;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 璁㈠崟鎺掍骇Controller
@@ -57,6 +62,29 @@
 
     @Resource
     private ISysDictDataService iSysDictDataService;
+
+    @Resource
+    private OmProductionOrdeInfoServiceImpl productionOrdeInfoService;
+    @Resource
+    private DaParamCollectionMapper daParamCollectionService;
+
+    @Autowired
+    MiloService miloService;
+
+    @Value("${websocketUrl}")
+    private String websocketUrl;
+
+    @GetMapping("/forceUpload")
+    public void forceUpload() throws Exception {
+        ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP121_ZZ_CODE_CHECK, 1);
+        miloService.writeToOpcByte(entity);
+    }
+
+    @GetMapping("/websocketUrl")
+    public String websocketName() {
+        return websocketUrl;
+    }
+
 
     /**
      * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
@@ -168,6 +196,21 @@
         return getDataTable(list);
     }
 
+    @GetMapping("/list3")
+    public TableDataInfo list3(BsOrderScheduling bsOrderScheduling)
+    {
+        startPage();
+        List<BsOrderScheduling> list = new ArrayList<>();
+        if (StringUtils.isNotEmpty(bsOrderScheduling.getOrderNo())){
+            list = bsOrderSchedulingService.selectBsOrderSchedulingPage(bsOrderScheduling);
+        }
+        List<BsOrderScheduling> collect = list.stream().filter(x -> Constants.UN_QUALIFIED.equals(x.getQualityStatus())).collect(Collectors.toList());
+        if (CollUtil.isNotEmpty(collect)){
+            String.valueOf(collect.size());
+        }
+        return getDataTable(list);
+    }
+
     /**
      * 瀵煎嚭璁㈠崟鎺掍骇鍒楄〃
      */
@@ -223,4 +266,114 @@
     {
         return toAjax(bsOrderSchedulingService.deleteBsOrderSchedulingByIds(ids));
     }
+    @GetMapping("/getSumData")
+    public R getSumData(BsOrderScheduling bsOrderScheduling){
+        List<BsOrderScheduling> list = new ArrayList<>();
+        int onlineNum = 0;
+        int finishNum = 0;
+        if (StringUtils.isNotEmpty(bsOrderScheduling.getOrderNo())){
+
+            list = bsOrderSchedulingService.selectBsOrderSchedulingPage(bsOrderScheduling);
+            List<BsOrderScheduling> onlineNumList = list.stream().filter(x -> Constants.ORDER_STATUS_ING.equals(x.getProductionStatus())).collect(Collectors.toList());
+            if (CollUtil.isNotEmpty(onlineNumList)){
+                onlineNum = onlineNumList.size();
+            }
+            List<BsOrderScheduling> finishNumList = list.stream().filter(x -> Constants.FINISH_PRODUCTION.equals(x.getProductionStatus())).collect(Collectors.toList());
+            if (CollUtil.isNotEmpty(finishNumList)){
+                finishNum = finishNumList.size();
+            }
+        }
+        List<BsOrderScheduling> collect = list.stream().filter(x -> Constants.UN_QUALIFIED.equals(x.getQualityStatus())).collect(Collectors.toList());
+        String unqualified = "0";
+        if (CollUtil.isNotEmpty(collect)){
+            unqualified = String.valueOf(collect.size());
+        }
+        SumDataVO vo = new SumDataVO();
+        vo.setFinishNum(finishNum);
+        vo.setOnlineNum(onlineNum);
+        vo.setUnqualified(unqualified);
+        return R.ok(vo);
+    }
+
+    /**
+     * 鏍¢獙鍙戝姩鏈哄彿鏄惁鍜屾満鍨嬪尮閰嶃�佹槸鍚﹂噸澶嶆壂鎻忋�佹槸鍚﹁秴鍑鸿鍒掓暟閲�
+     * @param engineNo 绠变綋鐮�
+     * @param model 鏈哄瀷
+     * @return boolean
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @GetMapping("/engineNoIsInModel")
+    public R engineNoIsInModel(String engineNo,String model,String orderNo) throws Exception {
+
+        if (StringUtils.isEmpty(engineNo)){
+            return R.ok(500,"绠变綋鐮佷负绌烘垨宸插瓨鍦紝璇烽噸璇�");
+        }
+
+        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
+        bsOrderScheduling.setOrderNo(orderNo);
+        //bsOrderScheduling.setProductionStatus("1");
+        List<BsOrderScheduling> allList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
+        List<BsOrderScheduling> dlist = allList.stream().filter(x->x.getProductionStatus().equals(Constants.WAIT_PRODUCTION)).collect(Collectors.toList());
+        List<BsOrderScheduling> collect = allList.stream().filter(x -> x.getProductionStatus().equals(Constants.ORDER_STATUS_ING)
+                        ||x.getProductionStatus().equals(Constants.FINISH_PRODUCTION)).collect(Collectors.toList());
+
+        BsOrderScheduling OrderScheduling=dlist.get(0);
+
+        DaParamCollection daParamCollection = new DaParamCollection();
+        daParamCollection.setParamValue(engineNo);
+        daParamCollection.setSfcCode("OP010");
+        List<DaParamCollection> list = daParamCollectionService.selectDaParamCollectionList(daParamCollection);
+        if (CollUtil.isNotEmpty(list)){
+            return R.ok(500,"宸插瓨鍦ㄦ绠变綋鐮侊紝璇峰嬁閲嶅鎵弿");
+        }
+
+        OmProductionOrdeInfo info = new OmProductionOrdeInfo();
+        info.setWorkOrderNo(orderNo);
+        List<OmProductionOrdeInfo> omProductionOrdeInfos = productionOrdeInfoService.selectOmProductionOrdeInfoList(info);
+        if (CollUtil.isNotEmpty(omProductionOrdeInfos)){
+            OmProductionOrdeInfo omProductionOrdeInfo = omProductionOrdeInfos.get(0);
+            Long planQty = omProductionOrdeInfo.getPlanQty();
+            if (planQty<collect.size()){
+                return R.ok(500,"瓒呭嚭璁″垝鏁伴噺锛岃妫�鏌ュ悗閲嶈瘯");
+            }
+        }
+        //鎻掑叆鏁版嵁
+        DaParamCollection saveData = new DaParamCollection();
+        saveData.setSfcCode(OrderScheduling.getEngineNo());
+        saveData.setParamValue(engineNo);
+        saveData.setLocationCode("OP010");
+        saveData.setParamCode("XTM");
+        saveData.setParamName("绠变綋鐮�");
+        daParamCollectionService.insertDaParamCollection(saveData);
+
+        //鏇存柊涓婄嚎鏁伴噺
+        int onlineNum = 0;
+        List<BsOrderScheduling> onlineNumList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling)
+                .stream().filter(x -> Constants.ORDER_STATUS_ING.equals(x.getProductionStatus())||x.getProductionStatus().equals(Constants.FINISH_PRODUCTION)).collect(Collectors.toList());
+        if (CollUtil.isNotEmpty(onlineNumList)){
+            onlineNum = onlineNumList.size();
+        }
+        OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
+        omProductionOrdeInfo.setWorkOrderNo(orderNo);
+        List<OmProductionOrdeInfo> omList = productionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
+        if (CollUtil.isNotEmpty(omList)){
+            OmProductionOrdeInfo omInfo = omList.get(0);
+            String s = String.valueOf(onlineNum);
+            long l = Long.parseLong(s);
+            omInfo.setActualOnlineQty(l);
+            productionOrdeInfoService.updateOmProductionOrdeInfo(omInfo);
+        }
+
+        //OPC鎿嶄綔
+        ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.HOP010.Code", OrderScheduling.getEngineNo());
+        OPCUaSubscription.miloService.writeToOpcUa(entity);//鍐橲N
+        ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.HOP010.SNDoor", 1);
+        OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴�
+
+        OrderScheduling.setProductionStatus("2");
+        bsOrderSchedulingService.updateBsOrderScheduling(OrderScheduling);
+        return R.ok();
+    }
+
+
 }

--
Gitblit v1.9.3