2025-06-20 17:47:53 +08:00
<?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.bonus.wf.dao.TaskRecordDao" >
2025-07-09 19:01:52 +08:00
<resultMap id= "taskRecord" type= "com.bonus.wf.beans.TaskRecordBean" >
<id property= "id" column= "id" />
<result property= "processId" column= "processId" />
<result property= "companyId" column= "companyId" />
<result property= "processName" column= "processName" />
<result property= "definitionId" column= "definitionId" />
<result property= "definitionName" column= "definitionName" />
<result property= "operationTime" column= "operationTime" />
<result property= "operationUserId" column= "operationId" />
<result property= "operationUserName" column= "operationName" />
<result property= "checkerId" column= "checkerId" />
<result property= "checkerName" column= "checkerName" />
<result property= "definitionId" column= "definitionId" />
<result property= "creatorName" column= "creatorName" />
<result property= "isExamine2" column= "isExamine2" />
<result property= "isApproval2" column= "isApproval2" />
<result property= "responer2" column= "responer2" />
<result property= "responer8" column= "responer8" />
<result property= "responer11" column= "responer11" />
<result property= "checkStatus12" column= "checkStatus12" />
<result property= "isExamine12" column= "isExamine12" />
<result property= "isApproval12" column= "isApproval12" />
<result property= "checker12" column= "checker12" />
<result property= "responer12" column= "responer12" />
<result property= "responer18" column= "responer18" />
<result property= "responer19" column= "responer19" />
<result property= "responer20" column= "responer20" />
<result property= "responer21" column= "responer21" />
<result property= "responer22" column= "responer22" />
<result property= "responer23" column= "responer23" />
<result property= "responer24" column= "responer24" />
<result property= "responer25" column= "responer25" />
<result property= "number" column= "number" />
<result property= "unitName" column= "unitName" />
<result property= "projectName" column= "projectName" />
<result property= "isFinish" column= "isFinish" />
</resultMap>
<select id= "findAll" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultMap= "taskRecord" >
2025-06-20 17:47:53 +08:00
SELECT wtr.ID,wtr.DEFINITION_ID as definitionId,wtd.`NAME` as definishtionName,wtr.PROCESS_ID as processId,
2025-07-09 19:01:52 +08:00
wpd.`NAME` as processName,wtr.OPERATION_USER as operationUserId,pu.`NAME` as operationUserName,
wtr.OPERATION_TIME as operationTime,wtr.IS_FINISH as isFinish,wtr.REMARK
2025-06-20 17:47:53 +08:00
FROM wf_task_record wtr,wf_task_definition wtd,wf_process_record wpr,
2025-07-09 19:01:52 +08:00
wf_process_definition wpd,pm_user pu
WHERE wtr.DEFINITION_ID = wtd.ID AND wtr.PROCESS_ID = wpr.ID
AND wpr.PROCESS_ID = wpd.ID AND wtr.OPERATION_USER = pu.ID
AND wtr.IS_ACTIVE = 1
</select>
<select id= "findUnFinishContent" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultMap= "taskRecord" >
(
SELECT
wtr.id AS id,
CASE
WHEN wtr.DEFINITION_ID IN (1,2,8) THEN wtr.NUMBER
WHEN wtr.DEFINITION_ID IN (5,11) THEN wtr1.NUMBER
END AS number,
wpd.NAME AS processName,
wtd.NAME AS definitionName,
pu.NAME AS creatorName,
DATE_FORMAT(wtr.OPERATION_TIME, '%Y-%m-%d') AS operationTime,
wtr.DEFINITION_ID AS definitionId,
CASE
WHEN wtr.DEFINITION_ID = 11 THEN wtr1.IS_FINISH
ELSE wtr.IS_FINISH
END AS isFinish,
'TASK' AS source
FROM
wf_task_record wtr
LEFT JOIN wf_task_record wtr1 ON wtr1.ID = wtr.SUP_ID
LEFT JOIN pm_user pu ON pu.id = wtr.OPERATION_USER
LEFT JOIN wf_task_definition wtd ON wtd.ID = wtr.DEFINITION_ID
LEFT JOIN wf_process_definition wpd ON wpd.id = wtr.PROCESS_ID
WHERE
wtr.DEFINITION_ID IN (1, 2, 5, 8, 11)
AND (
(wtr.DEFINITION_ID = 11 AND wtr1.IS_FINISH = #{param.isFinish})
OR (wtr.DEFINITION_ID != 11 AND wtr.IS_FINISH = #{param.isFinish})
)
2025-06-20 17:47:53 +08:00
AND wtr.IS_ACTIVE = 1
2025-07-09 19:01:52 +08:00
<if test= "param.operationUserId != null and param.operationUserId != ''" >
AND wtr.OPERATION_USER = #{param.operationUserId}
</if>
<if test= "param.keyWord != null and param.keyWord != ''" >
AND (
wpd.NAME LIKE CONCAT('%', #{param.keyWord}, '%')
OR wtd.NAME LIKE CONCAT('%', #{param.keyWord}, '%')
OR pu.NAME LIKE CONCAT('%', #{param.keyWord}, '%')
)
</if>
)
2025-07-09 15:00:20 +08:00
2025-07-09 19:01:52 +08:00
UNION ALL
2025-06-20 17:47:53 +08:00
2025-07-09 19:01:52 +08:00
(
SELECT
cpa.id AS id,
cpa.code AS number,
'用车计划' AS processName,
'用车申请' AS definitionName,
pu.NAME AS creatorName,
DATE_FORMAT(cpa.create_time, '%Y-%m-%d') AS operationTime,
NULL AS definitionId,
NULL AS isFinish,
'PLAN' AS source
FROM
car_plan_apply cpa
LEFT JOIN pm_user pu ON pu.id = cpa.creator
WHERE
cpa.status = '1'
2025-07-10 17:58:32 +08:00
<choose >
<when test= "param.operationUserId == '14'" >
AND cpa.status_type = '4'
</when>
<when test= "param.operationUserId == '84' or param.operationUserId == '85'" >
AND cpa.status_type = '3'
</when>
<otherwise >
AND 1 = 0
</otherwise>
</choose>
2025-07-09 19:01:52 +08:00
<if test= "param.keyWord != null and param.keyWord != ''" >
AND pu.NAME LIKE CONCAT('%', #{param.keyWord}, '%')
</if>
)
2025-06-20 17:47:53 +08:00
2025-07-09 19:01:52 +08:00
UNION ALL
2025-06-20 17:47:53 +08:00
2025-07-09 19:01:52 +08:00
(
SELECT
cpa.id AS id,
cpa.code AS number,
'派车计划' AS processName,
CASE cpo.type
WHEN 1 THEN '车辆派车'
WHEN 2 THEN '吊车派车'
ELSE '派车'
END AS definitionName,
pu.NAME AS creatorName,
DATE_FORMAT(cpo.create_time, '%Y-%m-%d') AS operationTime,
NULL AS definitionId,
cpo.status AS isFinish,
'OUT' AS source
FROM
car_plan_out cpo
LEFT JOIN pm_user pu ON pu.id = cpo.creator
LEFT JOIN car_plan_apply cpa ON cpo.apply_id = cpa.id
2025-07-10 17:58:32 +08:00
<where >
<choose >
<when test= "param.operationUserId == '57' or param.operationUserId == '29' or param.operationUserId == '55' or param.operationUserId == '56' or param.operationUserId == '67'" >
AND cpa.status_type = '0'
</when>
<when test= "param.operationUserId == '49' or param.operationUserId == '50'" >
AND cpo.status = '1'
</when>
<otherwise >
AND 1 = 0
</otherwise>
</choose>
<if test= "param.keyWord != null and param.keyWord != ''" >
AND pu.NAME LIKE CONCAT('%', #{param.keyWord}, '%')
</if>
</where>
2025-07-09 19:01:52 +08:00
)
ORDER BY id DESC
2025-06-20 17:47:53 +08:00
2025-07-09 15:00:20 +08:00
</select>
2025-07-09 19:01:52 +08:00
<select id= "find" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultMap= "taskRecord" >
SELECT wtr.ID,wtr.DEFINITION_ID as definitionId,wtd.`NAME` as definishtionName,wtr.PROCESS_ID as processId,
wpd.`NAME` as processName,wtr.OPERATION_USER as operationUserId,pu.`NAME` as operationUserName,
wtr.OPERATION_TIME as operationTime,wtr.IS_FINISH as isFinish,wtr.REMARK
2025-06-20 17:47:53 +08:00
FROM wf_task_record wtr,wf_task_definition wtd,wf_process_record wpr,
2025-07-09 19:01:52 +08:00
wf_process_definition wpd,pm_user pu
WHERE wtr.DEFINITION_ID = wtd.ID AND wtr.PROCESS_ID = wpr.ID
AND wpr.PROCESS_ID = wpd.ID AND wtr.OPERATION_USER = pu.ID
AND wtr.IS_ACTIVE = 1
where wtr.ID = #{id}
</select>
<select id= "findTaskInfo" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultMap= "taskRecord" >
SELECT wtr.ID AS taskId
FROM wf_task_record wtr
LEFT JOIN wf_task_record wtr1 ON wtr1.ID = wtr.SUP_ID
LEFT JOIN wf_new_check wnc ON wnc.TASK_ID = wtr.ID
WHERE wtr.SUP_ID = #{taskId} AND wtr.DEFINITION_ID = #{definitionId}
</select>
<select id= "findRepairTask" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultMap= "taskRecord" >
SELECT wtr.ID as taskId
FROM wf_task_record wtr
WHERE wtr.SUP_ID = #{taskId} AND wtr.DEFINITION_ID = #{definitionId} and wtr.IS_FINISH = 0
</select>
<insert id= "insert" useGeneratedKeys= "true" keyProperty= "id" >
insert into wf_task_record
2025-06-20 17:47:53 +08:00
<trim prefix= "(" suffix= ")" suffixOverrides= "," >
<if test= "definitionId != null" >
DEFINITION_ID,
</if>
<if test= "processId != null" >
PROCESS_ID,
</if>
<if test= "operationUserId != null" >
OPERATION_USER,
</if>
<if test= "operationTime != null" >
OPERATION_TIME,
</if>
<if test= "number != null" >
NUMBER,
</if>
<if test= "isSplit != null" >
IS_SPLIT,
</if>
<if test= "isFinish != null" >
IS_FINISH,
</if>
<if test= "leasePerson != null" >
LEASE_PERSON,
</if>
<if test= "phone != null" >
PHONE,
</if>
<if test= "remark != null" >
REMARK,
</if>
<if test= "taskId != null" >
SUP_ID,
</if>
<if test= "subcontractors != null" >
SUBCONTRACTORS_ID,
</if>
2025-07-09 19:01:52 +08:00
2025-06-20 17:47:53 +08:00
<if test= "companyId != null" >
org_id,
</if>
IS_ACTIVE,PLAN_OUT_ID
</trim>
<trim prefix= "values (" suffix= ")" suffixOverrides= "," >
<if test= "definitionId != null" >
#{definitionId},
</if>
<if test= "processId != null" >
#{processId},
</if>
<if test= "operationUserId != null" >
#{operationUserId},
</if>
<if test= "operationTime != null" >
#{operationTime},
</if>
<if test= "number != null" >
#{number},
</if>
<if test= "isFinish != null" >
#{isFinish},
</if>
<if test= "isSplit != null" >
#{isSplit},
</if>
<if test= "leasePerson != null" >
#{leasePerson},
</if>
<if test= "phone != null" >
#{phone},
</if>
<if test= "remark != null" >
#{remark},
</if>
<if test= "taskId != null" >
#{taskId},
</if>
<if test= "subcontractors != null" >
#{subcontractors},
</if>
2025-07-09 19:01:52 +08:00
2025-06-20 17:47:53 +08:00
<if test= "companyId != null" >
#{companyId},
</if>
1,#{planOutId}
</trim>
2025-07-09 19:01:52 +08:00
</insert>
<select id= "findNumber" parameterType= "com.bonus.wf.beans.TaskRecordBean" resultType= "java.lang.String" >
SELECT COUNT(*) FROM wf_task_record wtr
2025-06-20 17:47:53 +08:00
WHERE wtr.OPERATION_TIME LIKE CONCAT("%",#{operationTime},"%")
2025-07-09 19:01:52 +08:00
AND wtr.DEFINITION_ID = #{definitionId}
</select>
<delete id= "delete" parameterType= "com.bonus.wf.beans.TaskRecordBean" >
delete from wf_task_record where id = #{id}
</delete>
<update id= "update" parameterType= "com.bonus.wf.beans.TaskRecordBean" >
update wf_task_record
<set >
<if test= "definitionId != null" >
DEFINITION_ID = #{definitionId},
</if>
<if test= "processId != null" >
PROCESS_ID = #{processId},
</if>
<if test= "operationUserId !=null" >
OPERATION_USER = #{operationUserId},
</if>
<if test= "operationTime !=null" >
OPERATION_TIME = #{operationTime},
</if>
<if test= "number !=null" >
NUMBER = #{number},
</if>
<if test= "isFinish !=null" >
IS_FINISH = #{isFinish},
</if>
<if test= "isSplit !=null" >
IS_SPLIT = #{isSplit},
</if>
<if test= "companyId !=null" >
ORG_ID = #{companyId},
</if>
<if test= "remark != null" >
REMARK = #{remark},
</if>
</set>
where id = #{id}
</update>
<insert id= "addTaskAgreement" parameterType= "com.bonus.wf.beans.TaskRecordBean" >
insert into wf_agreement_task(TASK_ID,AGREEMENT_ID)
values(#{taskId},#{agreementId})
</insert>
<delete id= "deleteBatch" parameterType= "java.util.List" >
2025-06-20 17:47:53 +08:00
DELETE FROM wf_process_record WHERE id in(
<foreach item= "o" collection= "list" open= "" separator= ","
2025-07-09 19:01:52 +08:00
close="">
2025-06-20 17:47:53 +08:00
#{o.id}
</foreach>
)
</delete>
2025-07-09 19:01:52 +08:00
2025-06-20 17:47:53 +08:00
<select id= "checkTask" parameterType= "java.lang.String" resultMap= "taskRecord" >
2025-07-09 19:01:52 +08:00
SELECT wtr.ID AS taskId,number
FROM wf_task_record wtr
WHERE wtr.SUP_ID = #{taskId} AND wtr.DEFINITION_ID = 20 AND wtr.IS_SPLIT = 0
</select>
2025-06-20 17:47:53 +08:00
</mapper>