设备综合管理数据新增线体故障率

master
FCD 7 days ago
parent dc0fa3c606
commit d97681fb36

@ -261,4 +261,20 @@ public class DeviceInterfaceController {
} }
} }
/**
* 线
* @param equOperation
* @return
*/
@GetMapping("/getFaultRateList")
public AjaxResult getFaultRateList(EquOperation equOperation) {
DynamicDataSourceContextHolder.push(equOperation.getPoolName());
try {
return deviceInterfaceService.getFaultRateList();
}finally {
DynamicDataSourceContextHolder.poll();
}
}
} }

@ -0,0 +1,62 @@
package com.op.device.domain.vo;
import java.math.BigDecimal;
/**
* remark
*
* @author 019117
* @date
*/
public class EquFaultRateVO {
private String lineCode;
private String lineName;
private BigDecimal workTime;
private BigDecimal fixTime;
private BigDecimal faultRate;
public String getLineCode() {
return lineCode;
}
public void setLineCode(String lineCode) {
this.lineCode = lineCode;
}
public String getLineName() {
return lineName;
}
public void setLineName(String lineName) {
this.lineName = lineName;
}
public BigDecimal getWorkTime() {
return workTime;
}
public void setWorkTime(BigDecimal workTime) {
this.workTime = workTime;
}
public BigDecimal getFixTime() {
return fixTime;
}
public void setFixTime(BigDecimal fixTime) {
this.fixTime = fixTime;
}
public BigDecimal getFaultRate() {
return faultRate;
}
public void setFaultRate(BigDecimal faultRate) {
this.faultRate = faultRate;
}
}

@ -92,4 +92,7 @@ public interface DeviceInterfaceMapper {
Map getWave(); Map getWave();
List<Map> getRepairWorkOrderCostTime(); List<Map> getRepairWorkOrderCostTime();
List<EquFaultRateVO> getFaultRateList();
} }

@ -75,6 +75,8 @@ public interface IDeviceInterfaceService {
AjaxResult getWave(); AjaxResult getWave();
AjaxResult getRepairWorkOrderCostTime(); AjaxResult getRepairWorkOrderCostTime();
AjaxResult getFaultRateList();
// //
// AjaxResult getInspectionWorkOrder(EquOrder equOrder); // AjaxResult getInspectionWorkOrder(EquOrder equOrder);
// //

@ -2,7 +2,6 @@ package com.op.device.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.*; import com.op.device.domain.*;
import com.op.device.domain.vo.*; import com.op.device.domain.vo.*;
@ -312,4 +311,10 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService {
List<Map> resultMap = deviceInterfaceMapper.getRepairWorkOrderCostTime(); List<Map> resultMap = deviceInterfaceMapper.getRepairWorkOrderCostTime();
return success(resultMap); return success(resultMap);
} }
@Override
public AjaxResult getFaultRateList() {
//获取当天在生产的产线的故障率
return AjaxResult.success(deviceInterfaceMapper.getFaultRateList());
}
} }

@ -537,4 +537,64 @@
ORDER BY erwo.work_cost_time DESC; ORDER BY erwo.work_cost_time DESC;
</select> </select>
<select id="getFaultRateList" resultType="com.op.device.domain.vo.EquFaultRateVO">
SELECT
lineCode,
lineName,
work_time,
fixTime,
faultRate
FROM
(
SELECT
a.lineCode,
a.lineName,
a.work_time,
b.fixTime,
CASE WHEN COALESCE ( a.work_time, 0 ) = 0 THEN NULL ELSE COALESCE ( b.fixTime, 0 ) / ( COALESCE ( a.work_time, 0 ) * 60.0 ) END AS faultRate
FROM
(
SELECT
a.workorder_name AS lineCode,
e.equipment_name AS lineName,
SUM ( b.work_time ) AS work_time
FROM pro_order_workorder a
LEFT JOIN mes_report_work b ON a.workorder_code = b.workorder_code AND a.workorder_name= b.machine_code
LEFT JOIN base_equipment e ON e.equipment_code = a.workorder_name
WHERE
b.work_time IS NOT NULL
AND b.parent_order = '0'
AND CONVERT ( VARCHAR ( 7 ), a.product_date, 23 ) = CONVERT ( VARCHAR ( 7 ), GETDATE( ), 23 )
AND a.status IN ( 'w2', 'w3' )
AND a.parent_order = '0'
AND b.del_flag= '0'
GROUP BY
a.workorder_name,
e.equipment_name
) a
LEFT JOIN (
SELECT
ae.equipment_code AS lineCode,
ae.equipment_name AS line_name,
SUM ( DATEDIFF( MINUTE, o.order_time, w.work_end_time ) ) AS fixTime
FROM
equ_repair_order o
LEFT JOIN equ_repair_work_order w ON w.order_id = o.order_id
LEFT JOIN base_equipment e ON e.equipment_code = o.equipment_code
LEFT JOIN equ_bind_auxiliary_equipment ae ON ae.auxiliary_equipment_code = e.equipment_code
WHERE
o.del_flag = 0
AND w.del_flag = 0
AND CONVERT ( VARCHAR ( 7 ), o.order_time, 23 ) = CONVERT ( VARCHAR ( 7 ), GETDATE( ), 23 )
GROUP BY
ae.equipment_code,
ae.equipment_name
) b ON a.lineCode = b.lineCode
) t
ORDER BY
faultRate ASC
</select>
</mapper> </mapper>

@ -304,4 +304,15 @@
and del_flag = '0' and del_flag = '0'
</update> </update>
<select id="selectUnqualifiedCount" resultType="java.lang.Integer" parameterType="java.lang.String">
SELECT COUNT
( 0 )
FROM
equ_order_standard a
WHERE
a.order_code = #{orderCode}
AND a.del_flag = '0'
AND a.detail_reach = '0'
</select>
</mapper> </mapper>

Loading…
Cancel
Save