<?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.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper"> 
 | 
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    <!--@mbg.generated--> 
 | 
    <!--@Table ope_work_order--> 
 | 
    <id column="id" jdbcType="BIGINT" property="id" /> 
 | 
    <result column="dispatcher_id" jdbcType="BIGINT" property="dispatcherId" /> 
 | 
    <result column="inspector_id" jdbcType="BIGINT" property="inspectorId" /> 
 | 
    <result column="task_type_id" jdbcType="BIGINT" property="taskTypeId" /> 
 | 
    <result column="task_content" jdbcType="VARCHAR" property="taskContent" /> 
 | 
    <result column="complete_criteria" jdbcType="VARCHAR" property="completeCriteria" /> 
 | 
    <result column="dead_line" jdbcType="TIMESTAMP" property="deadLine" /> 
 | 
    <result column="complete_time" jdbcType="TIMESTAMP" property="completeTime" /> 
 | 
    <result column="dispatch_time" jdbcType="TIMESTAMP" property="dispatchTime" /> 
 | 
    <result column="client_report_id" jdbcType="BIGINT" property="clientReportId" /> 
 | 
    <result column="inspector_report_id" jdbcType="BIGINT" property="inspectorReportId" /> 
 | 
    <result column="state" jdbcType="TINYINT" property="state" /> 
 | 
    <result column="reject_times" jdbcType="INTEGER" property="rejectTimes" /> 
 | 
    <result column="deleted" jdbcType="BIGINT" property="deleted" /> 
 | 
  </resultMap> 
 | 
  <sql id="Base_Column_List"> 
 | 
    <!--@mbg.generated--> 
 | 
    id, dispatcher_id, inspector_id, task_type_id, task_content, complete_criteria, dead_line,  
 | 
    complete_time, dispatch_time, client_report_id, inspector_report_id, `state`, reject_times,  
 | 
    deleted 
 | 
  </sql> 
 | 
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select  
 | 
    <include refid="Base_Column_List" /> 
 | 
    from ope_work_order 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
    <!--@mbg.generated--> 
 | 
    delete from ope_work_order 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </delete> 
 | 
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into ope_work_order (id, dispatcher_id, inspector_id,  
 | 
      task_type_id, task_content, complete_criteria,  
 | 
      dead_line, complete_time, dispatch_time,  
 | 
      client_report_id, inspector_report_id, `state`,  
 | 
      reject_times, deleted) 
 | 
    values (#{id,jdbcType=BIGINT}, #{dispatcherId,jdbcType=BIGINT}, #{inspectorId,jdbcType=BIGINT},  
 | 
      #{taskTypeId,jdbcType=BIGINT}, #{taskContent,jdbcType=VARCHAR}, #{completeCriteria,jdbcType=VARCHAR},  
 | 
      #{deadLine,jdbcType=TIMESTAMP}, #{completeTime,jdbcType=TIMESTAMP}, #{dispatchTime,jdbcType=TIMESTAMP},  
 | 
      #{clientReportId,jdbcType=BIGINT}, #{inspectorReportId,jdbcType=BIGINT}, #{state,jdbcType=TINYINT},  
 | 
      #{rejectTimes,jdbcType=INTEGER}, #{deleted,jdbcType=BIGINT}) 
 | 
  </insert> 
 | 
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into ope_work_order 
 | 
    <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        id, 
 | 
      </if> 
 | 
      <if test="dispatcherId != null"> 
 | 
        dispatcher_id, 
 | 
      </if> 
 | 
      <if test="inspectorId != null"> 
 | 
        inspector_id, 
 | 
      </if> 
 | 
      <if test="taskTypeId != null"> 
 | 
        task_type_id, 
 | 
      </if> 
 | 
      <if test="taskContent != null"> 
 | 
        task_content, 
 | 
      </if> 
 | 
      <if test="completeCriteria != null"> 
 | 
        complete_criteria, 
 | 
      </if> 
 | 
      <if test="deadLine != null"> 
 | 
        dead_line, 
 | 
      </if> 
 | 
      <if test="completeTime != null"> 
 | 
        complete_time, 
 | 
      </if> 
 | 
      <if test="dispatchTime != null"> 
 | 
        dispatch_time, 
 | 
      </if> 
 | 
      <if test="clientReportId != null"> 
 | 
        client_report_id, 
 | 
      </if> 
 | 
      <if test="inspectorReportId != null"> 
 | 
        inspector_report_id, 
 | 
      </if> 
 | 
      <if test="state != null"> 
 | 
        `state`, 
 | 
      </if> 
 | 
      <if test="rejectTimes != null"> 
 | 
        reject_times, 
 | 
      </if> 
 | 
      <if test="deleted != null"> 
 | 
        deleted, 
 | 
      </if> 
 | 
    </trim> 
 | 
    <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        #{id,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="dispatcherId != null"> 
 | 
        #{dispatcherId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="inspectorId != null"> 
 | 
        #{inspectorId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="taskTypeId != null"> 
 | 
        #{taskTypeId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="taskContent != null"> 
 | 
        #{taskContent,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
      <if test="completeCriteria != null"> 
 | 
        #{completeCriteria,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
      <if test="deadLine != null"> 
 | 
        #{deadLine,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="completeTime != null"> 
 | 
        #{completeTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="dispatchTime != null"> 
 | 
        #{dispatchTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="clientReportId != null"> 
 | 
        #{clientReportId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="inspectorReportId != null"> 
 | 
        #{inspectorReportId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="state != null"> 
 | 
        #{state,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="rejectTimes != null"> 
 | 
        #{rejectTimes,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
      <if test="deleted != null"> 
 | 
        #{deleted,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
    </trim> 
 | 
  </insert> 
 | 
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    <!--@mbg.generated--> 
 | 
    update ope_work_order 
 | 
    <set> 
 | 
      <if test="dispatcherId != null"> 
 | 
        dispatcher_id = #{dispatcherId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="inspectorId != null"> 
 | 
        inspector_id = #{inspectorId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="taskTypeId != null"> 
 | 
        task_type_id = #{taskTypeId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="taskContent != null"> 
 | 
        task_content = #{taskContent,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
      <if test="completeCriteria != null"> 
 | 
        complete_criteria = #{completeCriteria,jdbcType=VARCHAR}, 
 | 
      </if> 
 | 
      <if test="deadLine != null"> 
 | 
        dead_line = #{deadLine,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="completeTime != null"> 
 | 
        complete_time = #{completeTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="dispatchTime != null"> 
 | 
        dispatch_time = #{dispatchTime,jdbcType=TIMESTAMP}, 
 | 
      </if> 
 | 
      <if test="clientReportId != null"> 
 | 
        client_report_id = #{clientReportId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="inspectorReportId != null"> 
 | 
        inspector_report_id = #{inspectorReportId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="state != null"> 
 | 
        `state` = #{state,jdbcType=TINYINT}, 
 | 
      </if> 
 | 
      <if test="rejectTimes != null"> 
 | 
        reject_times = #{rejectTimes,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
      <if test="deleted != null"> 
 | 
        deleted = #{deleted,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
    </set> 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    <!--@mbg.generated--> 
 | 
    update ope_work_order 
 | 
    set dispatcher_id = #{dispatcherId,jdbcType=BIGINT}, 
 | 
      inspector_id = #{inspectorId,jdbcType=BIGINT}, 
 | 
      task_type_id = #{taskTypeId,jdbcType=BIGINT}, 
 | 
      task_content = #{taskContent,jdbcType=VARCHAR}, 
 | 
      complete_criteria = #{completeCriteria,jdbcType=VARCHAR}, 
 | 
      dead_line = #{deadLine,jdbcType=TIMESTAMP}, 
 | 
      complete_time = #{completeTime,jdbcType=TIMESTAMP}, 
 | 
      dispatch_time = #{dispatchTime,jdbcType=TIMESTAMP}, 
 | 
      client_report_id = #{clientReportId,jdbcType=BIGINT}, 
 | 
      inspector_report_id = #{inspectorReportId,jdbcType=BIGINT}, 
 | 
      `state` = #{state,jdbcType=TINYINT}, 
 | 
      reject_times = #{rejectTimes,jdbcType=INTEGER}, 
 | 
      deleted = #{deleted,jdbcType=BIGINT} 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  
 | 
  <!--根据主键获取工单视图对象--> 
 | 
  <select id="getWorkOrderById" resultType="com.dy.pipIrrGlobal.voOp.VoWorkOrder"> 
 | 
    SELECT 
 | 
        ord.id AS workOrderId, 
 | 
        ord.dispatcher_id AS dispatcherId, 
 | 
        us1.name AS dispatcher, 
 | 
        ord.inspector_id AS inspectorId, 
 | 
        us2.name AS inspector, 
 | 
        typ.task_type AS taskType, 
 | 
        ord.task_content AS taskContent, 
 | 
        ord.complete_criteria AS completeCriteria, 
 | 
        ord.dead_line AS deadLine, 
 | 
        ord.client_report_id AS clientReportId, 
 | 
        ord.inspector_report_id AS inspectorReportId, 
 | 
        ord.complete_time AS completeTime, 
 | 
        ord.dispatch_time AS dispatchTime, 
 | 
        ord.reject_times AS rejectTimes, 
 | 
        res.id AS proResultId, 
 | 
        IFNULL(res.state,0) AS proResultStateId, 
 | 
        CASE 
 | 
            WHEN ord.state = 1 THEN '未完成' 
 | 
            WHEN ord.state = 2 THEN '已完成' 
 | 
        END AS state, 
 | 
        CASE 
 | 
            WHEN IFNULL(res.state,0) = 0 THEN    '未上报' 
 | 
            WHEN res.state = 1 THEN    '待审核' 
 | 
            WHEN res.state = 2 THEN    '已通过' 
 | 
            WHEN res.state = 3 THEN    '被驳回' 
 | 
            ELSE '未上报' 
 | 
        END AS processingState 
 | 
    FROM ope_work_order ord 
 | 
        INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id 
 | 
        INNER JOIN ba_user us2 ON us2.id = ord.inspector_id 
 | 
        INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id 
 | 
        LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id 
 | 
    WHERE ord.deleted = 0 AND ord.id = #{workOrderId} 
 | 
  </select> 
 | 
  
 | 
  <!--获取指定派单人的、未上报的指定未删除工单,删除工单前判断使用使用--> 
 | 
  <select id="getWorkOrder" resultType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder"> 
 | 
    SELECT 
 | 
        * 
 | 
    FROM ope_work_order ord 
 | 
    WHERE deleted = 0 
 | 
        AND NOT EXISTS(SELECT * FROM ope_processing_result res WHERE res.work_order_id = ord.id) 
 | 
        AND id = #{workOrderId} AND dispatcher_id = #{dispatcherId} LIMIT 1 
 | 
  </select> 
 | 
  
 | 
  <!--逻辑删除一个未删除的工单--> 
 | 
  <update id="deleteWorkOrder"> 
 | 
    UPDATE ope_work_order SET deleted = UNIX_TIMESTAMP() WHERE deleted = 0 AND id = #{workOrderId} 
 | 
  </update> 
 | 
  
 | 
<!--  根据指定条件获取工单数量--> 
 | 
  <select id="getWorkOrdersCount" resultType="java.lang.Long"> 
 | 
    select 
 | 
      COUNT(*) AS recordCount 
 | 
    FROM ope_work_order ord 
 | 
    INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id 
 | 
    INNER JOIN ba_user us2 ON us2.id = ord.inspector_id 
 | 
    INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id 
 | 
    LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id 
 | 
    <where> 
 | 
      AND ord.deleted = 0 
 | 
  
 | 
      <if test = "dispatcherId != null"> 
 | 
        AND ord.dispatcher_id = #{dispatcherId} 
 | 
      </if> 
 | 
  
 | 
      <if test = "inspectorId != null"> 
 | 
        AND ord.inspector_id = #{inspectorId} 
 | 
      </if> 
 | 
  
 | 
      <if test = "dispatcher != null and dispatcher !=''"> 
 | 
        AND us1.name like CONCAT('%',#{dispatcher},'%') 
 | 
      </if> 
 | 
  
 | 
      <if test = "inspector != null and inspector !=''"> 
 | 
        AND us2.name like CONCAT('%',#{inspector},'%') 
 | 
      </if> 
 | 
  
 | 
      <if test = "state != null"> 
 | 
        AND ord.state = #{state} 
 | 
      </if> 
 | 
  
 | 
      <if test = "timeStart != null and timeStop != null"> 
 | 
        AND ord.dispatch_time BETWEEN #{timeStart} AND #{timeStop} 
 | 
      </if> 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
  <select id="getWorkOrders" resultType="com.dy.pipIrrGlobal.voOp.VoWorkOrder"> 
 | 
    SELECT 
 | 
        ord.id AS workOrderId, 
 | 
        ord.dispatcher_id AS dispatcherId, 
 | 
        us1.name AS dispatcher, 
 | 
        ord.inspector_id AS inspectorId, 
 | 
        us2.name AS inspector, 
 | 
        typ.task_type AS taskType, 
 | 
        ord.task_content AS taskContent, 
 | 
        ord.complete_criteria AS completeCriteria, 
 | 
        ord.dead_line AS deadLine, 
 | 
        ord.client_report_id AS clientReportId, 
 | 
        ord.inspector_report_id AS inspectorReportId, 
 | 
        ord.complete_time AS completeTime, 
 | 
        ord.dispatch_time AS dispatchTime, 
 | 
        ord.reject_times AS rejectTimes, 
 | 
        IFNULL(res.state,0) AS proResultStateId, 
 | 
        CASE 
 | 
            WHEN ord.state = 1 THEN '未完成' 
 | 
            WHEN ord.state = 2 THEN '已完成' 
 | 
        END AS state, 
 | 
        CASE 
 | 
            WHEN IFNULL(res.state,0) = 0 THEN    '未上报' 
 | 
            WHEN res.state = 1 THEN    '待审核' 
 | 
            WHEN res.state = 2 THEN    '已通过' 
 | 
            WHEN res.state = 3 THEN    '被驳回' 
 | 
            ELSE '未上报' 
 | 
        END AS processingState, 
 | 
        res.id AS proResultId 
 | 
    FROM ope_work_order ord 
 | 
        INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id 
 | 
        INNER JOIN ba_user us2 ON us2.id = ord.inspector_id 
 | 
        INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id 
 | 
        LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id 
 | 
    <where> 
 | 
      AND ord.deleted = 0 
 | 
  
 | 
      <if test = "dispatcherId != null"> 
 | 
        AND ord.dispatcher_id = #{dispatcherId} 
 | 
      </if> 
 | 
  
 | 
      <if test = "inspectorId != null"> 
 | 
        AND ord.inspector_id = #{inspectorId} 
 | 
      </if> 
 | 
  
 | 
      <if test = "dispatcher != null and dispatcher !=''"> 
 | 
        AND us1.name like CONCAT('%',#{dispatcher},'%') 
 | 
      </if> 
 | 
  
 | 
      <if test = "inspector != null and inspector !=''"> 
 | 
        AND us2.name like CONCAT('%',#{inspector},'%') 
 | 
      </if> 
 | 
  
 | 
      <if test = "state != null"> 
 | 
        AND ord.state = #{state} 
 | 
      </if> 
 | 
  
 | 
      <if test = "timeStart != null and timeStop != null"> 
 | 
        AND ord.dispatch_time BETWEEN #{timeStart} AND #{timeStop} 
 | 
      </if> 
 | 
    </where> 
 | 
    ORDER BY ord.dispatch_time DESC 
 | 
    <trim prefix="limit " > 
 | 
      <if test="start != null and count != null"> 
 | 
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} 
 | 
      </if> 
 | 
    </trim> 
 | 
  </select> 
 | 
</mapper> 
 |