Forráskód Böngészése

大屏看板后端接口

oyq28 11 hónapja
szülő
commit
a00e4eea34

+ 2 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/dao/TTaskMapper.java

@@ -84,4 +84,6 @@ public interface TTaskMapper extends SuperMapper<TTask> {
     Integer getYearProductCount();
 
     Integer getMonthProductCount();
+
+    ToolCostomAddressHistory getMinTool(@Param("startTime") String startTime, @Param("ip") String ip);
 }

+ 53 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -1803,6 +1803,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 
         Map<String,Integer> useMap=new HashMap<>();
 
+        // 计算机床效率 ---start
         minProduct.forEach(vo->{
             cn.hutool.json.JSONObject jsonObject=new cn.hutool.json.JSONObject(vo.getValue());
             JSONArray minJsonArray = JSONArray.parseArray(jsonObject.get("values").toString());
@@ -1834,7 +1835,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
             }
 
         });
-
+        // 计算机床效率 ---end
 
 
 
@@ -1842,6 +1843,57 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         entries.stream().forEach(vo->{
             ChfProduct chfProduct=new ChfProduct();
             List<ChfTwoDatas> collect = product.stream().filter(it -> it.getName().equals(vo.getKey())).collect(Collectors.toList());
+            //获取机床当天最早采集数据
+            if(CollectionUtil.isNotEmpty(collect)){
+                collect.stream().forEach(item->{
+                    String ip;
+                    if(StringUtils.equals("GMU800AVI-1",vo.getKey())){
+                        ip="10.161.30.245";
+                    }else if(StringUtils.equals("GMU800AVI-2",vo.getKey())){
+                        ip="10.161.30.246";
+                    }else if(StringUtils.equals("GMU800AVI-3",vo.getKey())){
+                        ip="10.161.30.247";
+                    } else {
+                        ip = null;
+                    }
+                    //获取机床启动程序时间的数据采集
+                    ToolCostomAddressHistory minTool = baseMapper.getMinTool(item.getStartTime(),ip);
+                    if(minTool!=null){
+                        cn.hutool.json.JSONObject jsonObject=new cn.hutool.json.JSONObject(minTool.getValue());
+                        JSONArray minJsonArray = JSONArray.parseArray(jsonObject.get("values").toString());
+                        String min = minJsonArray.get(101).toString();
+
+                        Optional<ToolCostomAddressHistory> first = maxProduct.stream().filter(it -> it.getIp().equals(ip)).findFirst();
+                        if(!first.isPresent()){
+                            item.setRemainTime();
+                            return;
+                        }
+                        String value = first.get().getValue();
+                        cn.hutool.json.JSONObject maxJsonObject=new cn.hutool.json.JSONObject(value);
+                        JSONArray maxJsonArray = JSONArray.parseArray(maxJsonObject.get("values").toString());
+                        String max = maxJsonArray.get(101).toString();
+
+                        // 转换为 double
+                        double value1 = Double.parseDouble(max);
+                        double value2 = Double.parseDouble(min);
+
+                        // 计算差值
+                        double difference = value1 - value2;
+
+
+                        double result = (difference / (60));
+
+                        double point=result/item.getSumTime()*100;
+                        int finalPoint = (int) Math.round(point);
+                        // 已加工时长
+                        int finalResult = (int) Math.round(result);
+                        item.setProcessedTime(finalResult);
+                        item.setPoint(finalPoint);
+                    }
+
+                });
+            }
+
             chfProduct.setChfTwoDatas(collect);
 
             List<ChfTwoDatas> pendingCollect = pendProduct.stream().filter(it -> it.getName().equals(vo.getKey())).collect(Collectors.toList());

+ 2 - 2
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/centralToolMagezine/PlcCostomAddressHistoryMapper.xml

@@ -5,13 +5,13 @@
     <select id="getGroupByList" resultType="com.github.zuihou.business.centralToolMagazine.entity.PlcCostomAddressHistory">
         select * from plc_costom_address_history
 
-        order by create_time desc limit 0,1
+        order by id desc limit 0,1
 
     </select>
 
     <delete id="deleteHistory30">
         DELETE FROM plc_costom_address_history
-        WHERE create_time &lt; NOW() - INTERVAL 30 DAY
+        WHERE create_time &lt; NOW() - INTERVAL 5 DAY
     </delete>
 
 </mapper>

+ 3 - 2
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/centralToolMagezine/ToolCostomAddressHistoryMapper.xml

@@ -5,13 +5,14 @@
     <select id="getGroupByList" resultType="com.github.zuihou.business.centralToolMagazine.entity.ToolCostomAddressHistory">
         select tcah.* from tool_costom_address_history tcah
                                left join imcs_tenant_productionresource itp on tcah.ip=itp.ip
-        order by tcah.create_time desc limit 0,3
+        where tcah.result='true'
+        order by tcah.id desc limit 0,3
 
     </select>
 
     <delete id="deleteHistory30">
         DELETE FROM tool_costom_address_history
-        WHERE create_time &lt; NOW() - INTERVAL 30 DAY
+        WHERE create_time &lt; NOW() - INTERVAL 5 DAY
     </delete>
 
 </mapper>

+ 22 - 6
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/TTaskMapper.xml

@@ -455,7 +455,7 @@
     <select id="getProduct" resultType="com.github.zuihou.business.centralToolMagazine.dto.ChfTwoDatas">
         select oo.order_name as orderName,
                oo.product_num as productNum,
-               ifnull(oo.produce_num,0)  as produceNum,
+               ifnull(oo.complete_num,0)  as produceNum,
                oo.delivery_time as deliveryTime,
                tp.online_status as onlineStatus,
                 CASE
@@ -472,7 +472,8 @@
                 END AS downTime,
                tp.name
         <if test="planStatus==null">
-        ,ROUND(ROUND((TIMESTAMPDIFF(MINUTE, ttn.start_time, NOW()) / bbp.rated_workHours), 3) * 100, 0) AS point
+        /*,ROUND(ROUND((TIMESTAMPDIFF(MINUTE, ttn.start_time, NOW()) / bbp.rated_workHours), 3) * 100, 0) AS point,*/
+            ,DATE_FORMAT(ttn.start_time, '%Y-%m-%d %H:%i') as startTime,bbp.rated_workHours as sumTime
         </if>
         from imcs_o_order oo
                INNER JOIN imcs_p_plan pp on oo.id=pp.order_id
@@ -556,23 +557,38 @@
     <select id="getYearProductCount" resultType="java.lang.Integer">
         SELECT IFNULL(COUNT(*),0)
         FROM (
-                 SELECT MAX(end_time) AS endTime, complete_batch_no
+                 SELECT MAX(end_time) AS endTime, complete_batch_no,count(*) as count
                  FROM imcs_t_task
                  GROUP BY complete_batch_no
              ) a
         WHERE a.endTime IS NOT NULL
-                  AND YEAR(a.endTime) = YEAR(CURDATE());
+                  AND YEAR(a.endTime) = YEAR(CURDATE()) and count=4;
     </select>
 
     <select id="getMonthProductCount" resultType="java.lang.Integer">
         SELECT IFNULL(COUNT(*),0)
         FROM (
-                 SELECT MAX(end_time) AS endTime, complete_batch_no
+                 SELECT MAX(end_time) AS endTime, complete_batch_no,count(*) as count
                  FROM imcs_t_task
                  GROUP BY complete_batch_no
              ) a
         WHERE a.endTime IS NOT NULL
-                  AND MONTH(a.endTime) = MONTH(CURDATE());
+          AND WEEK(a.endTime, 1) = WEEK(CURDATE(), 1)
+          and count=4
+    </select>
+
+    <select id="getMinTool" resultType="com.github.zuihou.business.centralToolMagazine.entity.ToolCostomAddressHistory">
+        SELECT t.*
+        FROM tool_costom_address_history t
+                 JOIN (
+            SELECT ip, MIN(create_time) AS earliest_time
+            FROM tool_costom_address_history
+            WHERE DATE_FORMAT(create_time, '%Y-%m-%d %H:%i') = #{startTime} and ip=#{ip}
+              AND result = 'true'
+            GROUP BY ip
+        ) sub
+                      ON t.ip = sub.ip AND t.create_time = sub.earliest_time;
+
     </select>
 
 </mapper>

+ 4 - 1
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/AAutoNodeLogMapper.xml

@@ -49,6 +49,7 @@
     <select id="selectLogs" resultType="com.github.zuihou.business.productionReadyCenter.entity.AAutoNodeLog">
         SELECT
             aanl.id,
+            oo.order_name as orderName,
             aanl.task_node_name,-- 节点名称
             aanl.execute_time,-- 执行时间
             aanl.exe_status,-- 执行状态
@@ -65,7 +66,9 @@
             taskNode.exe_status as nodeExeStatus,-- 执行状态
             taskNode.exe_result as nodeExeResult-- 执行结果
         FROM
-            imcs_a_auto_node_log aanl left join imcs_t_task_node taskNode on aanl.task_node_id=taskNode.id
+            imcs_a_auto_node_log aanl
+                left join imcs_t_task_node taskNode on aanl.task_node_id=taskNode.id
+                left join imcs_o_order oo on taskNode.order_id=oo.id
         ORDER BY
             aanl.execute_time DESC
     </select>

+ 18 - 3
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/centralToolMagazine/dto/ChfTwoDatas.java

@@ -14,13 +14,28 @@ public class ChfTwoDatas {
     private Integer produceNum;
 
     @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date deliveryTime;
+    private Date deliveryTime;//预计完成时间
 
     private int point;
 
-    private String onlineStatus;
+    private String onlineStatus;//机床状态
 
-    private String downTime;
+    private String downTime;//维保时间
 
     private BigDecimal useRadio;
+
+    private String startTime;
+
+    //已加工时间
+    private int processedTime;
+
+    //剩余时间
+    private int remainTime;
+
+    //预计总时间
+    private int sumTime;
+
+    public void setRemainTime() {
+        this.remainTime = sumTime-processedTime;
+    }
 }

+ 2 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/AAutoNodeLog.java

@@ -264,6 +264,8 @@ public class AAutoNodeLog extends Entity<Long> {
     private String nodeExeStatus;
     @TableField(exist = false)
     private String nodeExeResult;
+    @TableField(exist = false)
+    private String orderName;
 
 
     /**

+ 3 - 1
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/properties/IgnoreTokenProperties.java

@@ -47,7 +47,9 @@ public class IgnoreTokenProperties {
             "/wms/**",
             "/productionresource/getStations",
             "/synStatus/synProductionStatus",
-            "/synStatus/synDeviceStatus"
+            "/synStatus/synDeviceStatus",
+            "/task/chfTwoDatas",
+            "/task/chfTwoDatasProductAndMes"
             );
 
     public boolean isIgnoreToken(String path) {