liurunyu
2024-11-08 b18f999a5a899edec35a14daec21e764cc58ff2b
pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
@@ -5,22 +5,25 @@
    <!--@mbg.generated-->
    <!--@Table ope_work_order-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="dispatcher" jdbcType="BIGINT" property="dispatcher" />
    <result column="inspector" jdbcType="BIGINT" property="inspector" />
    <result column="task_type" jdbcType="TINYINT" property="taskType" />
    <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="dispatch_time" jdbcType="TIMESTAMP" property="dispatchTime" />
    <result column="task_result" jdbcType="TINYINT" property="taskResult" />
    <result column="photos" jdbcType="VARCHAR" property="photos" />
    <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, inspector, task_type, task_content, complete_criteria, dead_line,
    dispatch_time, task_result, photos, complete_time, deleted
    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-->
@@ -36,16 +39,16 @@
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder">
    <!--@mbg.generated-->
    insert into ope_work_order (id, dispatcher, inspector,
      task_type, task_content, complete_criteria,
      dead_line, dispatch_time, task_result,
      photos, complete_time, deleted
      )
    values (#{id,jdbcType=BIGINT}, #{dispatcher,jdbcType=BIGINT}, #{inspector,jdbcType=BIGINT},
      #{taskType,jdbcType=TINYINT}, #{taskContent,jdbcType=VARCHAR}, #{completeCriteria,jdbcType=VARCHAR},
      #{deadLine,jdbcType=TIMESTAMP}, #{dispatchTime,jdbcType=TIMESTAMP}, #{taskResult,jdbcType=TINYINT},
      #{photos,jdbcType=VARCHAR}, #{completeTime,jdbcType=TIMESTAMP}, #{deleted,jdbcType=BIGINT}
      )
    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-->
@@ -54,14 +57,14 @@
      <if test="id != null">
        id,
      </if>
      <if test="dispatcher != null">
        dispatcher,
      <if test="dispatcherId != null">
        dispatcher_id,
      </if>
      <if test="inspector != null">
        inspector,
      <if test="inspectorId != null">
        inspector_id,
      </if>
      <if test="taskType != null">
        task_type,
      <if test="taskTypeId != null">
        task_type_id,
      </if>
      <if test="taskContent != null">
        task_content,
@@ -72,17 +75,23 @@
      <if test="deadLine != null">
        dead_line,
      </if>
      <if test="completeTime != null">
        complete_time,
      </if>
      <if test="dispatchTime != null">
        dispatch_time,
      </if>
      <if test="taskResult != null">
        task_result,
      <if test="clientReportId != null">
        client_report_id,
      </if>
      <if test="photos != null">
        photos,
      <if test="inspectorReportId != null">
        inspector_report_id,
      </if>
      <if test="completeTime != null">
        complete_time,
      <if test="state != null">
        `state`,
      </if>
      <if test="rejectTimes != null">
        reject_times,
      </if>
      <if test="deleted != null">
        deleted,
@@ -92,14 +101,14 @@
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="dispatcher != null">
        #{dispatcher,jdbcType=BIGINT},
      <if test="dispatcherId != null">
        #{dispatcherId,jdbcType=BIGINT},
      </if>
      <if test="inspector != null">
        #{inspector,jdbcType=BIGINT},
      <if test="inspectorId != null">
        #{inspectorId,jdbcType=BIGINT},
      </if>
      <if test="taskType != null">
        #{taskType,jdbcType=TINYINT},
      <if test="taskTypeId != null">
        #{taskTypeId,jdbcType=BIGINT},
      </if>
      <if test="taskContent != null">
        #{taskContent,jdbcType=VARCHAR},
@@ -110,17 +119,23 @@
      <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="taskResult != null">
        #{taskResult,jdbcType=TINYINT},
      <if test="clientReportId != null">
        #{clientReportId,jdbcType=BIGINT},
      </if>
      <if test="photos != null">
        #{photos,jdbcType=VARCHAR},
      <if test="inspectorReportId != null">
        #{inspectorReportId,jdbcType=BIGINT},
      </if>
      <if test="completeTime != null">
        #{completeTime,jdbcType=TIMESTAMP},
      <if test="state != null">
        #{state,jdbcType=TINYINT},
      </if>
      <if test="rejectTimes != null">
        #{rejectTimes,jdbcType=INTEGER},
      </if>
      <if test="deleted != null">
        #{deleted,jdbcType=BIGINT},
@@ -131,14 +146,14 @@
    <!--@mbg.generated-->
    update ope_work_order
    <set>
      <if test="dispatcher != null">
        dispatcher = #{dispatcher,jdbcType=BIGINT},
      <if test="dispatcherId != null">
        dispatcher_id = #{dispatcherId,jdbcType=BIGINT},
      </if>
      <if test="inspector != null">
        inspector = #{inspector,jdbcType=BIGINT},
      <if test="inspectorId != null">
        inspector_id = #{inspectorId,jdbcType=BIGINT},
      </if>
      <if test="taskType != null">
        task_type = #{taskType,jdbcType=TINYINT},
      <if test="taskTypeId != null">
        task_type_id = #{taskTypeId,jdbcType=BIGINT},
      </if>
      <if test="taskContent != null">
        task_content = #{taskContent,jdbcType=VARCHAR},
@@ -149,17 +164,23 @@
      <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="taskResult != null">
        task_result = #{taskResult,jdbcType=TINYINT},
      <if test="clientReportId != null">
        client_report_id = #{clientReportId,jdbcType=BIGINT},
      </if>
      <if test="photos != null">
        photos = #{photos,jdbcType=VARCHAR},
      <if test="inspectorReportId != null">
        inspector_report_id = #{inspectorReportId,jdbcType=BIGINT},
      </if>
      <if test="completeTime != null">
        complete_time = #{completeTime,jdbcType=TIMESTAMP},
      <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},
@@ -170,17 +191,145 @@
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder">
    <!--@mbg.generated-->
    update ope_work_order
    set dispatcher = #{dispatcher,jdbcType=BIGINT},
      inspector = #{inspector,jdbcType=BIGINT},
      task_type = #{taskType,jdbcType=TINYINT},
    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},
      dispatch_time = #{dispatchTime,jdbcType=TIMESTAMP},
      task_result = #{taskResult,jdbcType=TINYINT},
      photos = #{photos,jdbcType=VARCHAR},
      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,
        CASE
            WHEN ord.state = 1 THEN '未完成'
            WHEN ord.state = 2 THEN '已完成'
        END AS state,
        CASE
            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 ope_processing_result 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
    WHERE deleted = 0 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 ope_processing_result res ON res.work_order_id = ord.id
    <where>
      AND ord.deleted = 0
      <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 = "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,
        CASE
            WHEN ord.state = 1 THEN '未完成'
            WHEN ord.state = 2 THEN '已完成'
        END AS state,
        CASE
            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 ope_processing_result res ON res.work_order_id = ord.id
    <where>
      AND ord.deleted = 0
      <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 = "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>