From ba1a7a9ef126296e2798e313dc5b43f775a1123c Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期四, 23 五月 2024 17:44:36 +0800
Subject: [PATCH] 修改数据采集

---
 guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java |  369 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 343 insertions(+), 26 deletions(-)

diff --git a/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java b/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java
index 5bf5e95..c8ad14d 100644
--- a/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java
+++ b/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java
@@ -6,6 +6,14 @@
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
 import cn.afterturn.easypoi.view.PoiBaseView;
 import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
+import cn.stylefeng.guns.modular.bs.locationInfo.entity.LocationInfo;
+import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService;
+import cn.stylefeng.guns.modular.bs.materialInfo.entity.MaterialInfo;
+import cn.stylefeng.guns.modular.bs.materialInfo.service.MaterialInfoService;
+import cn.stylefeng.guns.modular.cm.passingStationCollection.entity.PassingStationCollection;
+import cn.stylefeng.guns.modular.cm.passingStationCollection.model.params.PassingStationCollectionParam;
+import cn.stylefeng.guns.modular.cm.passingStationCollection.model.result.PassingStationCollectionResult;
+import cn.stylefeng.guns.modular.cm.passingStationCollection.service.PassingStationCollectionService;
 import cn.stylefeng.guns.modular.om.productionOrdeInfo.entity.ProductionOrdeInfo;
 import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.params.ProductionOrdeInfoParam;
 import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.result.ProductionOrdeInfoResult;
@@ -42,6 +50,7 @@
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -204,6 +213,18 @@
     }
 
     /**
+     * 娴嬪姛鏈烘柊澧炴帴鍙�
+     * @return
+     */
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/addStationInfo")
+    public ResponseData addStationInfo(PassingStationCollectionParam passingStationCollectionParam) {
+        this.passingStationCollectionService.add(passingStationCollectionParam);
+        return ResponseData.success();
+    }
+
+    /**
      * 澶у睆鍒楄〃鎺ュ彛
      * @param productionOrdeInfoParam
      * @return
@@ -362,16 +383,17 @@
     @CrossOrigin
     @RequestMapping("/lineChart")
     public ResponseData lineChart(ProductionOrdeInfoParam productionOrdeInfoParam) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         List<String> list = new ArrayList();
         List<Integer> planQtyList = new ArrayList();
         List<Integer> actualQtyList = new ArrayList();
         Map map = new HashMap<String,String>();
-//        for (int i = 0; i < 7; i++) {
-//            String str = LocalDate.now().minusDays(i).toString();
-        for (Object o : getWeek()) {
+        List<ProductionOrdeInfoResult> ColumnarDateList = productionOrdeInfoService.getColumnarDate();
+        for (ProductionOrdeInfoResult result : ColumnarDateList) {
+            String s = format.format(result.getActualStartTime());
             QueryWrapper<ProductionOrdeInfo> queryWrapper = new QueryWrapper<ProductionOrdeInfo>();
             queryWrapper.select("SUM(plan_qty) as planQty,SUM(actual_qty) as actualQty");
-            queryWrapper.apply("CONVERT ( VARCHAR ( 100 ), plan_start_time, 23 ) = {0}",o.toString() );
+            queryWrapper.apply("CONVERT ( VARCHAR ( 100 ), actual_start_time, 23 ) = {0}",s);
             ProductionOrdeInfo one = productionOrdeInfoService.getOne(queryWrapper);
             if(one!=null){
                 if(one.getPlanQty()!=null){
@@ -388,37 +410,25 @@
                 planQtyList.add(0);
                 actualQtyList.add(0);
             }
-            list.add(o.toString());
+            list.add(s);
         }
 
-//        }
         map.put("category",list);
         map.put("lineData",planQtyList);
         map.put("barData",actualQtyList);
         return ResponseData.success(map);
     }
 
-    public static void main(String[] args) {
-//        List<String> weeks = getFormatDate("month");
-//        System.out.println(JSONObject.toJSONString(weeks));
-//        for (int i = 0; i < 7; i++) {
-//            System.out.println(LocalDate.now().minusDays(i));
-//        }
-        System.out.println(getWeek());
-
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/findOrdrList")
+    public ResponseData findOrdrList(ProductionOrdeInfoParam productionOrdeInfoParam) {
+        ProductionOrdeInfoParam param = new ProductionOrdeInfoParam();
+        param.setProductionLine("");//浜х嚎
+        param.setOrderStatus("3");//宸ュ崟鐘舵��
+        List<ProductionOrdeInfoResult> list = productionOrdeInfoService.findListBySpec(param);
+        return ResponseData.success(list);
     }
-    public static List getWeek(){
-        List<String> list = new ArrayList<>();
-        list.add(LocalDate.now().minusDays(6).toString());
-        list.add(LocalDate.now().minusDays(5).toString());
-        list.add(LocalDate.now().minusDays(4).toString());
-        list.add(LocalDate.now().minusDays(3).toString());
-        list.add(LocalDate.now().minusDays(2).toString());
-        list.add(LocalDate.now().minusDays(1).toString());
-        list.add(LocalDate.now().minusDays(0).toString());
-        return list;
-    }
-
 
     /**
      * 涓嬭浇excel瀵煎叆妯℃澘
@@ -540,6 +550,313 @@
         return value.trim();
     }
 
+    @Autowired
+    MaterialInfoService materialInfoService;
+
+    @Autowired
+    PassingStationCollectionService passingStationCollectionService;
+
+    @Autowired
+    LocationInfoService locationInfoService;
+
+    /**
+     * 澶у睆杞﹂棿宸ュ崟淇℃伅鎺ュ彛
+     * @return
+     */
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/topData")
+    public ResponseData topData(ProductionOrdeInfoParam productionOrdeInfoParam) {
+        Map map = new HashMap<String,String>();
+        ProductionOrdeInfo result = null;
+        //浣嗗墠宸ュ崟
+        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+        if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }else if(orderStatus.size()!=0){
+            result = orderStatus.get(0);
+        }else {
+            List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }
+        //浜у搧
+        List<MaterialInfo> materialCode = materialInfoService.list(new QueryWrapper<MaterialInfo>().eq("material_code", result.getMaterialCode()));
+        Integer planQty = result.getPlanQty();
+        Integer actualQty = result.getActualQty();
+        Date date2 = new Date(); // 绗簩涓棩鏈�
+        long diffInMillis =result.getPlanEndTime().getTime() - date2.getTime(); //璁$畻涓や釜鏃ユ湡鐨勬绉掑樊
+        long diffInHours = diffInMillis / (60 * 60 * 1000); // 灏嗘绉掑樊杞崲涓哄皬鏃跺樊
+        List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>()
+                .eq("out_rs_sign", "2")
+                .eq("work_order_no", result.getWorkOrderNo())
+                .eq("location_code", "OP1060")
+        );
+        Integer NgNumber = list.size();
+        map.put("workOrderNo",result.getWorkOrderNo());
+        map.put("planQty",planQty);
+        map.put("actualQty",actualQty);
+        map.put("materialName",materialCode.get(0).getMaterialName());
+        map.put("completionRate",Math.round((float) actualQty / planQty * 100));
+        map.put("remainder",diffInHours);
+        map.put("NgNumber",NgNumber);
+        if(list.size() == 0){
+            map.put("passRate","100");
+        }else {
+            map.put("passRate",Math.round((float) NgNumber / actualQty * 100));
+        }
+        return ResponseData.success(map);
+    }
+
+
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/centerLeftData")
+    public ResponseData centerLeftData(ProductionOrdeInfoParam productionOrdeInfoParam) {
+        Map map = new HashMap<String,String>();
+        List categoryList = new ArrayList();
+        List lineDataList = new ArrayList();
+        List barDataList = new ArrayList();
+        List percentageList = new ArrayList();
+        percentageList.add(0);
+
+        ProductionOrdeInfo result = null;
+        //浣嗗墠宸ュ崟
+        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+        if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }else if(orderStatus.size()!=0){
+            result = orderStatus.get(0);
+        }else {
+            List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }
+        List<PassingStationCollectionResult> resultList = passingStationCollectionService.centerLeftData(productionOrdeInfoParam.getWorkOrderNo());
+        int unQuantity = passingStationCollectionService.getUnqualifiedQuantity(productionOrdeInfoParam.getWorkOrderNo());
+        int variableInt = 0;
+        if(unQuantity == 0){
+            map.put("category",getLocationList());
+            map.put("barData",getZeroList());
+            map.put("percentage",getPercentageList());
+
+        }else {
+            for (int i = 0; i < resultList.size(); i++) {
+                categoryList.add(resultList.get(i).getLocationCode());
+                barDataList.add(resultList.get(i).getNum());
+                variableInt+=Integer.valueOf(resultList.get(i).getNum());
+                percentageList.add(Math.round((float) variableInt / unQuantity * 100));
+            }
+            map.put("category",categoryList);
+            map.put("barData",barDataList);
+            map.put("lineData",lineDataList);
+            map.put("percentage",percentageList);
+        }
+        return ResponseData.success(map);
+//        Map map = new HashMap<String,String>();
+//        List categoryList = new ArrayList();
+//        List lineDataList = new ArrayList();
+//        List barDataList = new ArrayList();
+//
+//        ProductionOrdeInfo result = null;
+//        //浣嗗墠宸ュ崟
+//        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+//        if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){
+//            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo()));
+//            result = workOrderNo.get(0);
+//        }else if(orderStatus.size()!=0){
+//            result = orderStatus.get(0);
+//        }else {
+//            List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+//            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo()));
+//            result = workOrderNo.get(0);
+//        }
+//        for (String o : getLocationList()) {
+//            List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>()
+//                    .eq("location_code", o)
+//                    .eq("out_rs_sign", "2")
+//                    .eq("work_order_no",result.getWorkOrderNo())
+//            );
+//            List<PassingStationCollection> lineList = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>()
+//                    .eq("location_code", o)
+//                    .eq("work_order_no",result.getWorkOrderNo())
+//            );
+//            categoryList.add(o);
+//            barDataList.add(list.size());
+//            lineDataList.add(lineList.size());
+//        }
+//        map.put("category",categoryList);
+//        map.put("barData",barDataList);
+//        map.put("lineData",lineDataList);
+//
+//        return ResponseData.success(map);
+    }
+
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/bottomData")
+    public ResponseData bottomData(ProductionOrdeInfoParam productionOrdeInfoParam) {
+        Map map = new HashMap<String,String>();
+        List unqualifiedList = new ArrayList();
+        List qualifiedList = new ArrayList();
+        List passRate = new ArrayList();
+//        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+//        ProductionOrdeInfo result = orderStatus.get(0);
+        ProductionOrdeInfo result = null;
+        //浣嗗墠宸ュ崟
+        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+        if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }else if(orderStatus.size()!=0){
+            result = orderStatus.get(0);
+        }else {
+            List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }
+        for (String o : getLocationList()) {
+            List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>()
+                    .eq("location_code", o)
+                    .eq("out_rs_sign", "2")
+                    .eq("work_order_no",result.getWorkOrderNo())
+            );
+            List<PassingStationCollection> list1 = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>()
+                    .eq("location_code", o)
+                    .eq("work_order_no",result.getWorkOrderNo())
+            );
+            Integer unqualified = list.size();
+            Integer qualified = list1.size()-list.size();
+            unqualifiedList.add(unqualified);
+            qualifiedList.add(qualified);
+            if(unqualified == 0){
+                passRate.add(100);
+            }else {
+                passRate.add(Math.round((float) qualified / result.getActualQty() * 100));
+            }
+        }
+        map.put("unqualifiedList",unqualifiedList);
+        map.put("qualifiedList",qualifiedList);
+        map.put("passRate",passRate);
+        return ResponseData.success(map);
+    }
+
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/centerRightData")
+    public ResponseData centerRightData(ProductionOrdeInfoParam productionOrdeInfoParam) {
+//        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+//        ProductionOrdeInfo result = orderStatus.get(0);
+        ProductionOrdeInfo result = null;
+        //浣嗗墠宸ュ崟
+        List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3"));
+        if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }else if(orderStatus.size()!=0){
+            result = orderStatus.get(0);
+        }else {
+            List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+            List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo()));
+            result = workOrderNo.get(0);
+        }
+        Integer targetNumber = 70;
+        List resultList = new ArrayList();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String format1 = format.format(new Date());
+        String paramPrefix = format1+" ";
+        for (String s : getCenterRightSpit()) {
+            List itemList = new ArrayList();
+            int outTotal = passingStationCollectionService.bigCenterRightTable(paramPrefix+s+":00",paramPrefix+s.substring(0,1)+":59:59",null,result.getWorkOrderNo());
+            int i = passingStationCollectionService.bigCenterRightTable(paramPrefix+s+":00",paramPrefix+s.substring(0,1)+":59:59","1",result.getWorkOrderNo());
+            if(outTotal<targetNumber){
+                itemList.add(boldText(s));
+                itemList.add(boldText(targetNumber.toString()));
+                itemList.add(boldText(String.valueOf(outTotal)));
+                itemList.add(boldText(String.valueOf(targetNumber-outTotal)));
+                itemList.add(boldText(Math.round((float) i / outTotal * 100)+"%"));
+            }else {
+                itemList.add(s);
+                itemList.add(targetNumber);
+                itemList.add(outTotal);
+                itemList.add(targetNumber-outTotal);
+                itemList.add(Math.round((float) i / outTotal * 100)+"%");
+            }
+           resultList.add(itemList);
+        }
+        return ResponseData.success(resultList);
+    }
+
+    @ResponseBody
+    @CrossOrigin
+    @RequestMapping("/orderDescListFive")
+    public ResponseData orderDescListFive() {
+        List list = new ArrayList();
+        List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive();
+        for (ProductionOrdeInfoResult result : results) {
+            Map itemMap = new HashMap();
+            itemMap.put("value",result.getWorkOrderNo());
+            itemMap.put("label",result.getWorkOrderNo());
+            list.add(itemMap);
+        }
+        return ResponseData.success(list);
+    }
+
+    public static List<String> getLocationList(){
+        List<String> locationList = new ArrayList<>();
+        locationList.add("OP070");
+        locationList.add("OP100");
+        locationList.add("OP140");
+        locationList.add("OP150");
+        locationList.add("EOP080");
+        locationList.add("EOP090");
+        return locationList;
+    }
+
+    public static List<String> getZeroList(){
+        List<String> locationList = new ArrayList<>();
+        locationList.add("0");
+        locationList.add("0");
+        locationList.add("0");
+        locationList.add("0");
+        locationList.add("0");
+        locationList.add("0");
+        return locationList;
+    }
+
+    public static List<String> getPercentageList(){
+        List<String> locationList = new ArrayList<>();
+        locationList.add("100");
+        locationList.add("100");
+        locationList.add("100");
+        locationList.add("100");
+        locationList.add("100");
+        locationList.add("100");
+        return locationList;
+    }
+
+
+    public static List<String> getCenterRightSpit(){
+        List<String> locationList = new ArrayList<>();
+        locationList.add("8:00");
+        locationList.add("9:00");
+        locationList.add("10:00");
+        locationList.add("11:00");
+        locationList.add("12:00");
+        locationList.add("13:00");
+        locationList.add("14:00");
+        locationList.add("15:00");
+        locationList.add("16:00");
+        locationList.add("17:00");
+        return locationList;
+    }
+
+    public static String boldText(String param){
+        return "<span style='font-size: 20px' class='colorRed'>"+param+"</span>";
+    }
+
 }
 
 

--
Gitblit v1.9.3