You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

383 lines
26 KiB
XML

<?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.aucma.dms.mapper.DmsBillsFaultInstanceMapper">
<resultMap type="DmsBillsFaultInstance" id="DmsBillsFaultInstanceResult">
<result property="repairInstanceId" column="repair_instance_id" />
<result property="faultSourceType" column="fault_source_type" />
<result property="faultSourceId" column="fault_source_id" />
<result property="billsFaultCode" column="bills_fault_code" />
<result property="billsStatus" column="bills_status" />
<result property="applyUser" column="apply_user" />
<result property="applyTime" column="apply_time" />
<result property="realBeginTime" column="real_begin_time" />
<result property="realEndTime" column="real_end_time" />
<result property="requireEndTime" column="require_end_time" />
<result property="instanceType" column="instance_type" />
<result property="isFlag" column="is_flag" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<!-- 已废弃审批流功能 -->
<!-- <result property="wfProcessId" column="wf_process_id" /> -->
<result property="deviceId" column="device_id" />
<result property="approveStatus" column="approveStatus" />
<result property="repairConfirm" column="repair_confirm" />
<result property="confirmer" column="confirm_user" />
<result property="deviceCode" column="device_code" />
<result property="deviceName" column="device_name" />
<result property="deviceLocation" column="device_location" />
<result property="deviceSpec" column="device_spec" />
<result property="instanceActivityId" column="instance_activity_id" />
<result property="faultType" column="fault_type" />
<result property="faultLevel" column="fault_level" />
<result property="faultDescription" column="fault_description" />
<result property="applyUserPhone" column="apply_user_phone" />
<result property="designOperations" column="design_operations" />
<result property="repairType" column="repair_type" />
<result property="outsrcId" column="outsrc_id" />
<result property="processHandleResolution" column="process_handle_resolution" />
<result property="knowledgeRepairId" column="knowledge_repair_id" />
<result property="verifyMethod" column="verify_method" />
<result property="designOperations" column="design_operations" />
<result property="faultDescription" column="fault_description" />
</resultMap>
<resultMap id="DmsBillsFaultInstanceDmsFaultInstanceActivityResult" type="DmsBillsFaultInstance" extends="DmsBillsFaultInstanceResult">
<collection property="dmsFaultInstanceActivityList" notNullColumn="sub_instance_activity_id" javaType="java.util.List" resultMap="DmsFaultInstanceActivityResult" />
</resultMap>
<resultMap type="DmsFaultInstanceActivity" id="DmsFaultInstanceActivityResult">
<result property="instanceActivityId" column="sub_instance_activity_id" />
<result property="repairInstanceId" column="sub_repair_instance_id" />
<result property="processActivityId" column="sub_process_activity_id" />
<result property="faultType" column="sub_fault_type" />
<result property="faultDescription" column="sub_fault_description" />
<result property="designOperations" column="sub_design_operations" />
<result property="deviceId" column="sub_device_id" />
<result property="repairType" column="sub_repair_type" />
<result property="outsrcId" column="sub_outsrc_id" />
<result property="processHandleResolution" column="sub_process_handle_resolution" />
<result property="remark" column="sub_remark" />
<result property="processHandleStatus" column="sub_process_handle_status" />
<result property="processStepOrder" column="sub_process_step_order" />
<result property="startTime" column="sub_start_time" />
<result property="endTime" column="sub_end_time" />
<result property="handleUserId" column="sub_handle_user_id" />
<result property="handleBy" column="sub_handle_by" />
<result property="handleTime" column="sub_handle_time" />
<result property="createBy" column="sub_create_by" />
<result property="createTime" column="sub_create_time" />
<result property="transferUserId" column="sub_transfer_user_id" />
<result property="attr1" column="sub_attr1" />
<result property="repairContent" column="sub_repair_content" />
<result property="protectedMethod" column="sub_protected_method" />
<result property="repairer" column="sub_repairer" />
<result property="repairConfirm" column="sub_repair_confirm" />
<result property="confirmTime" column="sub_confirm_time" />
</resultMap>
<sql id="selectDmsBillsFaultInstanceVo">
select repair_instance_id, fault_source_type,
fault_source_id, bills_fault_code, bills_status, apply_user,
apply_user_phone, apply_time, real_begin_time, real_end_time, require_end_time,
instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id,
approveStatus, knowledge_repair_id, verify_method, repair_confirm,
confirm_user,
design_operations,
fault_description
from dms_bills_fault_instance
</sql>
<select id="selectDmsBillsFaultInstanceList" parameterType="DmsBillsFaultInstance" resultMap="DmsBillsFaultInstanceResult">
<include refid="selectDmsBillsFaultInstanceVo"/>
<where>
(approveStatus != '4' OR approveStatus IS NULL)
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
<if test="faultSourceId != null "> and fault_source_id = #{faultSourceId}</if>
<if test="repairInstanceId != null "> and repair_instance_id = #{repairInstanceId}</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null "> and wf_process_id = #{wfProcessId}</if> -->
<if test="billsFaultCode != null and billsFaultCode != ''"> and bills_fault_code = #{billsFaultCode}</if>
<if test="billsStatus != null and billsStatus != ''"> and bills_status = #{billsStatus}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</if>
<if test="realBeginTime != null "> and real_begin_time = #{realBeginTime}</if>
<if test="realEndTime != null "> and real_end_time = #{realEndTime}</if>
<if test="requireEndTime != null "> and require_end_time = #{requireEndTime}</if>
<if test="instanceType != null and instanceType != ''"> and instance_type = #{instanceType}</if>
<if test="isFlag != null and isFlag != ''"> and is_flag = #{isFlag}</if>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where>
order by create_time desc
</select>
<select id="selectDmsBillsFaultInstanceByRepairInstanceId" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
<include refid="selectDmsBillsFaultInstanceVo"/>
where repair_instance_id = #{repairInstanceId}
</select>
<insert id="insertDmsBillsFaultInstance" parameterType="DmsBillsFaultInstance">
<selectKey keyProperty="repairInstanceId" resultType="long" order="BEFORE">
SELECT seq_dms_bills_fault_instance.NEXTVAL FROM DUAL
</selectKey>
insert into dms_bills_fault_instance
<trim prefix="(" suffix=")" suffixOverrides=",">
repair_instance_id,
<if test="faultSourceType != null">fault_source_type,</if>
<if test="faultSourceId != null">fault_source_id,</if>
<if test="billsFaultCode != null and billsFaultCode != ''">bills_fault_code,</if>
<if test="billsStatus != null and billsStatus != ''">bills_status,</if>
<if test="applyUser != null">apply_user,</if>
<if test="applyUserPhone != null">apply_user_phone,</if>
<if test="faultLevel != null">fault_level,</if>
<if test="faultDescription != null">fault_description,</if>
<if test="designOperations != null">design_operations,</if>
<if test="applyTime != null">apply_time,</if>
<if test="realBeginTime != null">real_begin_time,</if>
<if test="realEndTime != null">real_end_time,</if>
<if test="requireEndTime != null">require_end_time,</if>
<if test="instanceType != null and instanceType != ''">instance_type,</if>
<if test="isFlag != null and isFlag != ''">is_flag,</if>
<if test="remark != null">remark,</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>
<if test="deviceId != null">device_id,</if>
<if test="knowledgeRepairId != null">knowledge_repair_id,</if>
<if test="verifyMethod != null">verify_method,</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null">wf_process_id,</if> -->
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{repairInstanceId},
<if test="faultSourceType != null">#{faultSourceType},</if>
<if test="faultSourceId != null">#{faultSourceId},</if>
<if test="billsFaultCode != null and billsFaultCode != ''">#{billsFaultCode},</if>
<if test="billsStatus != null and billsStatus != ''">#{billsStatus},</if>
<if test="applyUser != null">#{applyUser},</if>
<if test="applyUserPhone != null">#{applyUserPhone},</if>
<if test="faultLevel != null">#{faultLevel},</if>
<if test="faultDescription != null">#{faultDescription},</if>
<if test="designOperations != null">#{designOperations},</if>
<if test="applyTime != null">#{applyTime},</if>
<if test="realBeginTime != null">#{realBeginTime},</if>
<if test="realEndTime != null">#{realEndTime},</if>
<if test="requireEndTime != null">#{requireEndTime},</if>
<if test="instanceType != null and instanceType != ''">#{instanceType},</if>
<if test="isFlag != null and isFlag != ''">#{isFlag},</if>
<if test="remark != null">#{remark},</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>
<if test="deviceId != null">#{deviceId},</if>
<if test="knowledgeRepairId != null">#{knowledgeRepairId},</if>
<if test="verifyMethod != null">#{verifyMethod},</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null">#{wfProcessId},</if> -->
</trim>
</insert>
<update id="updateDmsBillsFaultInstance" parameterType="DmsBillsFaultInstance">
update dms_bills_fault_instance
<trim prefix="SET" suffixOverrides=",">
<if test="faultSourceType != null">fault_source_type = #{faultSourceType},</if>
<if test="faultSourceId != null">fault_source_id = #{faultSourceId},</if>
<if test="billsFaultCode != null and billsFaultCode != ''">bills_fault_code = #{billsFaultCode},</if>
<if test="billsStatus != null and billsStatus != ''">bills_status = #{billsStatus},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyUserPhone != null">apply_user_phone = #{applyUserPhone},</if>
<if test="faultLevel != null">fault_level = #{faultLevel},</if>
<if test="faultDescription != null">fault_description = #{faultDescription},</if>
<if test="designOperations != null">design_operations = #{designOperations},</if>
<if test="applyTime != null">apply_time = #{applyTime},</if>
<if test="realBeginTime != null">real_begin_time = #{realBeginTime},</if>
<if test="realEndTime != null">real_end_time = #{realEndTime},</if>
<if test="requireEndTime != null">require_end_time = #{requireEndTime},</if>
<if test="instanceType != null and instanceType != ''">instance_type = #{instanceType},</if>
<if test="isFlag != null and isFlag != ''">is_flag = #{isFlag},</if>
<if test="remark != null">remark = #{remark},</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>
<if test="deviceId != null">device_id = #{deviceId},</if>
<if test="approveStatus != null">approveStatus = #{approveStatus},</if>
<if test="repairConfirm != null">repair_confirm = #{repairConfirm},</if>
<if test="confirmer != null">confirm_user = #{confirmer},</if>
<if test="knowledgeRepairId != null">knowledge_repair_id = #{knowledgeRepairId},</if>
<if test="verifyMethod != null">verify_method = #{verifyMethod},</if>
</trim>
where repair_instance_id = #{repairInstanceId}
</update>
<delete id="deleteDmsBillsFaultInstanceByRepairInstanceId" parameterType="Long">
delete from dms_bills_fault_instance where repair_instance_id = #{repairInstanceId}
</delete>
<delete id="deleteDmsBillsFaultInstanceByRepairInstanceIds" parameterType="java.lang.Long">
delete from dms_bills_fault_instance where repair_instance_id in
<foreach item="repairInstanceId" collection="array" open="(" separator="," close=")">
#{repairInstanceId}
</foreach>
</delete>
<sql id="selectDmsBillsFaultInstanceJoinVo">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id, dbfi.APPROVESTATUS as approveStatus,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
dbdl.device_model as device_spec
from dms_bills_fault_instance dbfi left join base_deviceledger dbdl on dbfi.device_id=dbdl.OBJ_ID
</sql>
<select id="selectDmsBillsFaultInstanceJoinList" parameterType="DmsBillsFaultInstance" resultMap="DmsBillsFaultInstanceResult">
<include refid="selectDmsBillsFaultInstanceJoinVo"/>
<where>
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
<if test="faultSourceId != null "> and fault_source_id = #{faultSourceId}</if>
<if test="repairInstanceId != null "> and repair_instance_id = #{repairInstanceId}</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null "> and wf_process_id = #{wfProcessId}</if> -->
<if test="billsFaultCode != null and billsFaultCode != ''"> and bills_fault_code = #{billsFaultCode}</if>
<if test="billsStatus != null and billsStatus != ''"> and bills_status = #{billsStatus}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</if>
<if test="instanceType != null and instanceType != ''"> and instance_type = #{instanceType}</if>
<if test="isFlag != null and isFlag != ''"> and is_flag = #{isFlag}</if>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where>
order by dbfi.repair_instance_id desc
</select>
<select id="selectFaultInstanceJoinFirstAndDeviceById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id, dbfi.APPROVESTATUS as approveStatus,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
dbdl.device_model as device_spec,
dfia.instance_activity_id,dfia.fault_type,dfia.fault_description,dfia.design_operations,dfia.repair_type,dfia.outsrc_id,dfia.process_handle_resolution
,dfia.checked_fault checked_fault,
dfia.repair_content repair_content,
dfia.protected_method protected_method,
dfia.repairer repairer,
dfia.repair_confirm repair_confirm,
dfia.confirm_time confirm_time,dfia.components_parts_id components_parts_id
from dms_bills_fault_instance dbfi left join base_deviceledger dbdl on dbfi.device_id=dbdl.OBJ_ID
left join dms_fault_instance_activity dfia on dbfi.repair_instance_id=dfia.repair_instance_id
where dbfi.repair_instance_id = #{repairInstanceId} and dfia.process_step_order=1
</select>
<select id="selectFaultInstanceJoinActivityByRepairInstanceId" parameterType="Long" resultMap="DmsBillsFaultInstanceDmsFaultInstanceActivityResult">
select a.repair_instance_id, a.fault_source_type, a.fault_source_id, a.bills_fault_code, a.bills_status,
a.apply_user, a.apply_user_phone, a.apply_time, a.real_begin_time, a.real_end_time, a.require_end_time,
a.instance_type, a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.device_id,
a.APPROVESTATUS as approveStatus, a.knowledge_repair_id, a.verify_method, a.fault_level, a.confirm_user, a.repair_confirm,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
dbdl.device_model as device_spec,
b.instance_activity_id as sub_instance_activity_id, b.repair_instance_id as sub_repair_instance_id,
b.process_activity_id as sub_process_activity_id, b.fault_type as sub_fault_type,
b.fault_description as sub_fault_description, b.design_operations as sub_design_operations,
b.device_id as sub_device_id, b.repair_type as sub_repair_type, b.outsrc_id as sub_outsrc_id,
b.process_handle_resolution as sub_process_handle_resolution, b.remark as sub_remark,
b.process_handle_status as sub_process_handle_status, b.process_step_order as sub_process_step_order,
b.start_time as sub_start_time, b.end_time as sub_end_time, b.handle_user_id as sub_handle_user_id,
b.handle_by as sub_handle_by, b.handle_time as sub_handle_time,
b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time,
b.repair_content as sub_repair_content, b.protected_method as sub_protected_method,
b.repairer as sub_repairer, b.repair_confirm as sub_repair_confirm, b.confirm_time as sub_confirm_time,
-- 将第1步的关键字段固定从首步别名表中读取避免被后续步骤的空值覆盖
bf.fault_type as fault_type, bf.fault_description as fault_description,
bf.design_operations as design_operations, bf.process_handle_resolution as process_handle_resolution
from dms_bills_fault_instance a
left join base_deviceledger dbdl on a.device_id=dbdl.OBJ_ID
left join dms_fault_instance_activity bf on bf.repair_instance_id = a.repair_instance_id and bf.process_step_order = 1
left join dms_fault_instance_activity b on b.repair_instance_id = a.repair_instance_id
where a.repair_instance_id = #{repairInstanceId} order by b.process_step_order
</select>
<select id="selectCountByRepairInstanceIdAndDeviceCode" resultType="Long">
select count(1) from dms_bills_fault_instance dbfi where dbfi.repair_instance_id=#{repairInstanceId}
and exists (select 1 from base_deviceledger dbdl where dbfi.device_id=dbdl.OBJ_ID and dbdl.device_code=#{deviceCode})
</select>
<select id="selectFaultInstanceJoinFirstById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id,
dfia.instance_activity_id,dfia.fault_type,dfia.fault_description,dfia.design_operations,dfia.repair_type,dfia.outsrc_id,dfia.process_handle_resolution
from dms_bills_fault_instance dbfi
left join dms_fault_instance_activity dfia on dbfi.repair_instance_id=dfia.repair_instance_id
where dbfi.repair_instance_id = #{repairInstanceId} and dfia.process_step_order=1
</select>
<select id="selectFaults" resultType="com.aucma.dms.domain.DmsFaultInstanceActivity"
parameterType="java.lang.Long">
select
x.fault_description ,
x.checked_fault ,
-- dri.wf_process_id, -- 已废弃审批流handle_resolution,
x.repair_content ,
x.protected_method ,
x.repairer ,
a.device_name ,
a.device_code,
a.device_address as device_location ,
b.apply_user ,
b.apply_time ,
b.real_begin_time ,
b.real_end_time,
b.repair_confirm,
b.update_time,
b.confirm_user as confirmer
from
dms_fault_instance_activity x left join base_deviceledger a on x.device_id = a.OBJ_ID
left join dms_bills_fault_instance b on x.repair_instance_id = b.repair_instance_id where x.repair_instance_id = #{repairInstanceId}
</select>
<select id="selectParts" resultType="com.aucma.dms.domain.DmsFaultCompentsParts"
parameterType="java.lang.Long">
SELECT x.* FROM dms_fault_compents_parts x where x.fault_id = #{repairInstanceId}
</select>
<select id="selectDmsBillsFaultInstanceCompletedList" resultType="com.aucma.dms.domain.DmsBillsFaultInstance"
parameterType="com.aucma.dms.domain.DmsBillsFaultInstance">
select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id, APPROVESTATUS as approveStatus, repair_confirm from dms_bills_fault_instance
<where>
bills_status = 2
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
<if test="faultSourceId != null "> and fault_source_id = #{faultSourceId}</if>
<if test="repairInstanceId != null "> and repair_instance_id = #{repairInstanceId}</if>
<if test="wfProcessId != null "> and wf_process_id = #{wfProcessId}</if>
<if test="billsFaultCode != null and billsFaultCode != ''"> and bills_fault_code = #{billsFaultCode}</if>
<if test="billsStatus != null and billsStatus != ''"> and bills_status = #{billsStatus}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</if>
<if test="realBeginTime != null "> and real_begin_time = #{realBeginTime}</if>
<if test="realEndTime != null "> and real_end_time = #{realEndTime}</if>
<if test="requireEndTime != null "> and require_end_time = #{requireEndTime}</if>
<if test="instanceType != null and instanceType != ''"> and instance_type = #{instanceType}</if>
<if test="isFlag != null and isFlag != ''"> and is_flag = #{isFlag}</if>
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
</where>
order by create_time desc
</select>
<select id="getDmsPartsList" resultType="com.aucma.dms.domain.DmsFaultCompentsParts"
parameterType="java.lang.Long">
select
x.*,a.bills_fault_code
from
dms_fault_compents_parts x
left join dms_bills_fault_instance a on
x.fault_id = a.repair_instance_id where x.fault_id = #{repairInstanceId}
</select>
</mapper>