Merge remote-tracking branch 'origin/master'
commit
05a931c3a5
@ -0,0 +1,75 @@
|
|||||||
|
package com.op.device.domain.vo;
|
||||||
|
|
||||||
|
// 设备信息VO、设备维修质量VO
|
||||||
|
public class IEquipmentVO {
|
||||||
|
// 设备名称
|
||||||
|
private String equipmentName;
|
||||||
|
// 设备编码
|
||||||
|
private String equipmentCode;
|
||||||
|
// 所在部门
|
||||||
|
private String department;
|
||||||
|
// 设备故障率
|
||||||
|
private Double failureRate;
|
||||||
|
// 设备有效利用率
|
||||||
|
private Double utilizationRatio;
|
||||||
|
// 设备维修质量
|
||||||
|
private Double rapairQuantity;
|
||||||
|
// 设备状态
|
||||||
|
private String equipmentStatus;
|
||||||
|
|
||||||
|
public String getEquipmentStatus() {
|
||||||
|
return equipmentStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentStatus(String equipmentStatus) {
|
||||||
|
this.equipmentStatus = equipmentStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getRapairQuantity() {
|
||||||
|
return rapairQuantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRapairQuantity(Double rapairQuantity) {
|
||||||
|
this.rapairQuantity = rapairQuantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEquipmentName() {
|
||||||
|
return equipmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentName(String equipmentName) {
|
||||||
|
this.equipmentName = equipmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEquipmentCode() {
|
||||||
|
return equipmentCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentCode(String equipmentCode) {
|
||||||
|
this.equipmentCode = equipmentCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDepartment() {
|
||||||
|
return department;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDepartment(String department) {
|
||||||
|
this.department = department;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getFailureRate() {
|
||||||
|
return failureRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFailureRate(Double failureRate) {
|
||||||
|
this.failureRate = failureRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getUtilizationRatio() {
|
||||||
|
return utilizationRatio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUtilizationRatio(Double utilizationRatio) {
|
||||||
|
this.utilizationRatio = utilizationRatio;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,77 @@
|
|||||||
package com.op.device.domain.vo;
|
package com.op.device.domain.vo;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
// 看板维修工单返回VO
|
// 看板维修工单返回VO
|
||||||
public class IRepairWorkOrderVO {
|
public class IRepairWorkOrderVO {
|
||||||
|
// 设备名称
|
||||||
|
private String equipmentName;
|
||||||
|
// 设备编码
|
||||||
|
private String equipmentCode;
|
||||||
|
// 故障描述
|
||||||
|
private String workFaultDesc;
|
||||||
|
// 维修班组
|
||||||
|
private String teamName;
|
||||||
|
// 是否立即维修
|
||||||
|
private String workHandle;
|
||||||
|
// 计划维修时间
|
||||||
|
private Date workPlanTime;
|
||||||
|
// 设备位置
|
||||||
|
private String equipmentLocation;
|
||||||
|
|
||||||
|
public String getEquipmentName() {
|
||||||
|
return equipmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentName(String equipmentName) {
|
||||||
|
this.equipmentName = equipmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEquipmentCode() {
|
||||||
|
return equipmentCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentCode(String equipmentCode) {
|
||||||
|
this.equipmentCode = equipmentCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkFaultDesc() {
|
||||||
|
return workFaultDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkFaultDesc(String workFaultDesc) {
|
||||||
|
this.workFaultDesc = workFaultDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTeamName() {
|
||||||
|
return teamName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTeamName(String teamName) {
|
||||||
|
this.teamName = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkHandle() {
|
||||||
|
return workHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkHandle(String workHandle) {
|
||||||
|
this.workHandle = workHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getWorkPlanTime() {
|
||||||
|
return workPlanTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkPlanTime(Date workPlanTime) {
|
||||||
|
this.workPlanTime = workPlanTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEquipmentLocation() {
|
||||||
|
return equipmentLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentLocation(String equipmentLocation) {
|
||||||
|
this.equipmentLocation = equipmentLocation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
package com.op.device.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.op.device.domain.EquOperationRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备运行记录Mapper接口
|
||||||
|
*
|
||||||
|
* @author Open Platform
|
||||||
|
* @date 2023-11-27
|
||||||
|
*/
|
||||||
|
public interface EquOperationRecordMapper {
|
||||||
|
/**
|
||||||
|
* 查询设备运行记录
|
||||||
|
*
|
||||||
|
* @param id 设备运行记录主键
|
||||||
|
* @return 设备运行记录
|
||||||
|
*/
|
||||||
|
public EquOperationRecord selectEquOperationRecordById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询设备运行记录列表
|
||||||
|
*
|
||||||
|
* @param equOperationRecord 设备运行记录
|
||||||
|
* @return 设备运行记录集合
|
||||||
|
*/
|
||||||
|
public List<EquOperationRecord> selectEquOperationRecordList(EquOperationRecord equOperationRecord);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增设备运行记录
|
||||||
|
*
|
||||||
|
* @param equOperationRecord 设备运行记录
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertEquOperationRecord(EquOperationRecord equOperationRecord);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改设备运行记录
|
||||||
|
*
|
||||||
|
* @param equOperationRecord 设备运行记录
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateEquOperationRecord(EquOperationRecord equOperationRecord);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除设备运行记录
|
||||||
|
*
|
||||||
|
* @param id 设备运行记录主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteEquOperationRecordById(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除设备运行记录
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteEquOperationRecordByIds(String[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过设备编码查询设备运行记录
|
||||||
|
* @param equipmentCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<EquOperationRecord> selectEquOperationRecordByEquipmentCode(String equipmentCode);
|
||||||
|
|
||||||
|
//设备稳定性 MTBF设备平均故障间隔
|
||||||
|
List<EquOperationRecord> getMTBFList(EquOperationRecord equOperationRecord);
|
||||||
|
|
||||||
|
//设备完好率
|
||||||
|
EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord);
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.op.device.mapper.DeviceInterfaceMapper">
|
||||||
|
|
||||||
|
<select id="selectEquRepairWorkOrderList" resultType="com.op.device.domain.vo.IRepairWorkOrderVO">
|
||||||
|
select be.equipment_name AS "equipmentName",
|
||||||
|
wo.equipment_code AS "equipmentCode",
|
||||||
|
wo.work_fault_desc AS "workFaultDesc",
|
||||||
|
et.team_name AS "teamName",
|
||||||
|
wo.work_handle AS "workHandle",
|
||||||
|
wo.work_plan_time AS "workPlanTime",
|
||||||
|
be.equipment_location AS "equipmentLocation"
|
||||||
|
from equ_repair_work_order wo
|
||||||
|
left join base_equipment be
|
||||||
|
on wo.equipment_code = be.equipment_code
|
||||||
|
left join equ_team et
|
||||||
|
on wo.work_team = et.team_code
|
||||||
|
where wo.work_status = '0'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEquipmentList" resultType="com.op.device.domain.vo.IEquipmentVO">
|
||||||
|
select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName'
|
||||||
|
from base_equipment be
|
||||||
|
where be.equipment_code in (select wo.equipment_code
|
||||||
|
from equ_repair_work_order wo
|
||||||
|
where wo.del_flag = '0'
|
||||||
|
and wo.work_status = '1'
|
||||||
|
GROUP BY wo.equipment_code)
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRepairEquipmentList" resultType="com.op.device.domain.vo.IEquipmentVO">
|
||||||
|
select be.equipment_code AS 'equipmentCode', be.equipment_name AS 'equipmentName'
|
||||||
|
from base_equipment be
|
||||||
|
where be.equipment_code in (select wo.equipment_code
|
||||||
|
from equ_repair_work_order wo
|
||||||
|
where wo.del_flag = '0'
|
||||||
|
and wo.work_status = '1'
|
||||||
|
GROUP BY wo.equipment_code)
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectReportWorkByEquipmentCode" resultType="com.op.device.domain.MesReportWork">
|
||||||
|
select SUM(mrw.quantity) AS "quantity",
|
||||||
|
SUM(mrw.quantity_feedback) AS "quantityFeedback"
|
||||||
|
from mes_report_work mrw
|
||||||
|
where mrw.del_flag = '0'
|
||||||
|
and mrw.status = 'PREPARE'
|
||||||
|
and mrw.machine_code = #{equipmentCode}
|
||||||
|
and mrw.feedback_time >= DATEADD(MONTH, -1, GETDATE())
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRepairRecordByEquipmentCode" resultType="com.op.device.domain.EquRepairWorkOrder">
|
||||||
|
select wo.work_start_time AS "workStartTime", wo.work_end_time AS "workEndTime"
|
||||||
|
from equ_repair_work_order wo
|
||||||
|
where wo.del_flag = '0'
|
||||||
|
and wo.equipment_code = #{equipmentCode}
|
||||||
|
and wo.work_status = '1'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
@ -0,0 +1,182 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.op.device.mapper.EquOperationRecordMapper">
|
||||||
|
|
||||||
|
<resultMap type="EquOperationRecord" id="EquOperationRecordResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="equipmentCode" column="equipment_code"/>
|
||||||
|
<result property="startTime" column="start_time"/>
|
||||||
|
<result property="endTime" column="end_time"/>
|
||||||
|
<result property="type" column="type"/>
|
||||||
|
<result property="maintenanceType" column="maintenance_type"/>
|
||||||
|
<result property="parentId" column="parent_id"/>
|
||||||
|
<result property="factoryCode" column="factory_code"/>
|
||||||
|
<result property="attr1" column="attr1"/>
|
||||||
|
<result property="attr2" column="attr2"/>
|
||||||
|
<result property="attr3" column="attr3"/>
|
||||||
|
<result property="delFlag" column="del_flag"/>
|
||||||
|
<result property="createBy" column="create_by"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateBy" column="update_by"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectEquOperationRecordVo">
|
||||||
|
select id,
|
||||||
|
equipment_code,
|
||||||
|
start_time,
|
||||||
|
end_time,
|
||||||
|
type,
|
||||||
|
maintenance_type,
|
||||||
|
parent_id,
|
||||||
|
factory_code,
|
||||||
|
attr1,
|
||||||
|
attr2,
|
||||||
|
attr3,
|
||||||
|
del_flag,
|
||||||
|
create_by,
|
||||||
|
create_time,
|
||||||
|
update_by,
|
||||||
|
update_time
|
||||||
|
from equ_operation_record
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectEquOperationRecordList" parameterType="EquOperationRecord" resultMap="EquOperationRecordResult">
|
||||||
|
<include refid="selectEquOperationRecordVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="equipmentCode != null and equipmentCode != ''">and equipment_code = #{equipmentCode}</if>
|
||||||
|
<if test="startTime != null ">and start_time = #{startTime}</if>
|
||||||
|
<if test="endTime != null ">and end_time = #{endTime}</if>
|
||||||
|
<if test="type != null and type != ''">and type = #{type}</if>
|
||||||
|
<if test="maintenanceType != null and maintenanceType != ''">and maintenance_type = #{maintenanceType}</if>
|
||||||
|
<if test="parentId != null and parentId != ''">and parent_id = #{parentId}</if>
|
||||||
|
<if test="factoryCode != null and factoryCode != ''">and factory_code = #{factoryCode}</if>
|
||||||
|
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
|
||||||
|
<if test="attr2 != null and attr2 != ''">and attr2 = #{attr2}</if>
|
||||||
|
<if test="attr3 != null and attr3 != ''">and attr3 = #{attr3}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEquOperationRecordById" parameterType="String" resultMap="EquOperationRecordResult">
|
||||||
|
<include refid="selectEquOperationRecordVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEquOperationRecordByEquipmentCode" resultType="com.op.device.domain.EquOperationRecord">
|
||||||
|
select eor.start_time AS "startTime",
|
||||||
|
eor.end_time AS "endTime",
|
||||||
|
eor.maintenance_type AS "maintenanceType",
|
||||||
|
eor.type AS "type"
|
||||||
|
from equ_operation_record eor
|
||||||
|
where eor.del_flag = '0'
|
||||||
|
and eor.end_time is not null
|
||||||
|
and eor.equipment_code = #{equipmentCode}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertEquOperationRecord" parameterType="EquOperationRecord">
|
||||||
|
insert into equ_operation_record
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="equipmentCode != null">equipment_code,</if>
|
||||||
|
<if test="startTime != null">start_time,</if>
|
||||||
|
<if test="endTime != null">end_time,</if>
|
||||||
|
<if test="type != null">type,</if>
|
||||||
|
<if test="maintenanceType != null">maintenance_type,</if>
|
||||||
|
<if test="parentId != null">parent_id,</if>
|
||||||
|
<if test="factoryCode != null">factory_code,</if>
|
||||||
|
<if test="attr1 != null">attr1,</if>
|
||||||
|
<if test="attr2 != null">attr2,</if>
|
||||||
|
<if test="attr3 != null">attr3,</if>
|
||||||
|
<if test="delFlag != null">del_flag,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="equipmentCode != null">#{equipmentCode},</if>
|
||||||
|
<if test="startTime != null">#{startTime},</if>
|
||||||
|
<if test="endTime != null">#{endTime},</if>
|
||||||
|
<if test="type != null">#{type},</if>
|
||||||
|
<if test="maintenanceType != null">#{maintenanceType},</if>
|
||||||
|
<if test="parentId != null">#{parentId},</if>
|
||||||
|
<if test="factoryCode != null">#{factoryCode},</if>
|
||||||
|
<if test="attr1 != null">#{attr1},</if>
|
||||||
|
<if test="attr2 != null">#{attr2},</if>
|
||||||
|
<if test="attr3 != null">#{attr3},</if>
|
||||||
|
<if test="delFlag != null">#{delFlag},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateEquOperationRecord" parameterType="EquOperationRecord">
|
||||||
|
update equ_operation_record
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="equipmentCode != null">equipment_code = #{equipmentCode},</if>
|
||||||
|
<if test="startTime != null">start_time = #{startTime},</if>
|
||||||
|
<if test="endTime != null">end_time = #{endTime},</if>
|
||||||
|
<if test="type != null">type = #{type},</if>
|
||||||
|
<if test="maintenanceType != null">maintenance_type = #{maintenanceType},</if>
|
||||||
|
<if test="parentId != null">parent_id = #{parentId},</if>
|
||||||
|
<if test="factoryCode != null">factory_code = #{factoryCode},</if>
|
||||||
|
<if test="attr1 != null">attr1 = #{attr1},</if>
|
||||||
|
<if test="attr2 != null">attr2 = #{attr2},</if>
|
||||||
|
<if test="attr3 != null">attr3 = #{attr3},</if>
|
||||||
|
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteEquOperationRecordById" parameterType="String">
|
||||||
|
delete
|
||||||
|
from equ_operation_record
|
||||||
|
where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteEquOperationRecordByIds" parameterType="String">
|
||||||
|
delete from equ_operation_record where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<!--设备稳定性 MTBF-->
|
||||||
|
<select id="getMTBFList" parameterType="EquOperationRecord" resultType="com.op.device.domain.EquOperationRecord">
|
||||||
|
select
|
||||||
|
row_number() over (ORDER BY sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END) DESC) AS serialNumber,
|
||||||
|
eor.equipment_code AS equipmentCode,
|
||||||
|
sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END ) AS onTime,
|
||||||
|
sum(CASE WHEN eor.type = 'off' THEN 1 ELSE 0 END) AS shutDownNumber,
|
||||||
|
cast(sum(CASE WHEN eor.type = 'on' THEN datediff(minute, eor.start_time,eor.end_time)*1.0/60 ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END)as decimal(10,2)) as mtbf
|
||||||
|
from equ_operation_record eor
|
||||||
|
left join base_equipment be on eor.equipment_code = be.equipment_code
|
||||||
|
where be.status = '1'
|
||||||
|
and be.del_flag = '0'
|
||||||
|
and eor.start_time is not null
|
||||||
|
and eor.end_time is not null
|
||||||
|
GROUP BY eor.equipment_code
|
||||||
|
ORDER BY onTime desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--完好设备占比-->
|
||||||
|
<select id="getEquipmentIntactRate" parameterType="EquOperationRecord" resultType="com.op.device.domain.EquOperationRecord">
|
||||||
|
SELECT
|
||||||
|
SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END) AS operationEquipment,
|
||||||
|
SUM(CASE WHEN equipment_status = '0' or equipment_status = '0' THEN 1 Else 0 END) AS faultEquipment,
|
||||||
|
COUNT(*) AS totalEquipment,
|
||||||
|
CONCAT(cast(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100/COUNT(*)as decimal(10,2)),'%') AS intactRate
|
||||||
|
FROM base_equipment
|
||||||
|
WHERE del_flag = '0' AND status = '1'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue