chushangcloud/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml

329 lines
15 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.chushang.inspection.work.mapper.WrkInfoMapper">
<select id="queryDispatchPage" resultMap="wrkInfoDetailsVOResult">
<include refid="wrkInfoDetailSql"/>
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
ORDER BY i.create_time desc
</select>
<select id="exportDispatchPage" resultType="com.chushang.inspection.work.vo.WrkInfoExportVO">
<include refid="wrkInfoDetailSql"/>
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
ORDER BY i.create_time desc
</select>
<resultMap id="resultWrkInfoExportVO" type="com.chushang.inspection.work.vo.WrkInfoExportVO">
<id column="terminal_id" property="terminalId"/>
<result column="user_name" property="userName"/>
<result column="create_time" property="createTime"/>
<result column="legal_name" property="legalName"/>
<result column="terminal_address" property="terminalAddress"/>
<result column="terminal_no" property="terminalNo"/>
<result column="terminal_sn" property="terminalSn"/>
<result column="terminal_source" property="terminalSource"/>
<result column="work_no" property="workNo"/>
</resultMap>
<select id="queryArchivePage" resultMap="wrkInfoDetailsVOResult">
<include refid="wrkInfoDetailSql"/>
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
ORDER BY i.create_time desc
</select>
<select id="queryAppPage" resultType="com.chushang.inspection.work.vo.WrkListAppVO">
SELECT i.wrk_id AS wrkId,
i.work_type AS workType,
i.task_name AS taskName,
isr.store_name AS storeName,
isr.store_contact AS storeContact,
isr.store_phone AS storePhone,
isr.ins_fre AS insFre,
itr.terminal_id AS terminalId,
itr.terminal_address AS terminalAddress,
(SELECT count(w1.wrk_id)
FROM wrk_info w1
INNER JOIN
wrk_info_terminal_record w2 ON w1.wrk_id = w2.wrk_id
WHERE w2.terminal_id = itr.terminal_id
AND w1.wrk_status = #{query.wrkStatus}) AS numberOfPickups,
(SELECT w1.dispose_time
FROM wrk_info w1
INNER JOIN
wrk_info_terminal_record w2 ON w1.wrk_id = w2.wrk_id
WHERE w2.terminal_id = itr.terminal_id
AND w1.wrk_status = #{query.wrkStatus}
order by w1.dispose_time desc
limit 1) AS lastDisposeTime,
(SELECT w1.service_result
FROM wrk_info w1
INNER JOIN
wrk_info_terminal_record w2 ON w1.wrk_id = w2.wrk_id
WHERE w2.terminal_id = itr.terminal_id
AND w1.wrk_status = #{query.wrkStatus}
order by w1.dispose_time desc
limit 1) AS lastServiceResult
FROM wrk_info i
INNER JOIN wrk_info_store_record isr ON i.wrk_id = isr.wrk_id
INNER JOIN wrk_info_terminal_record itr ON i.wrk_id = itr.wrk_id
where i.del_state = 0
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
ORDER BY i.create_time desc
</select>
<resultMap id="wrkInfoDetailsVOResult" type="com.chushang.inspection.work.vo.WrkInfoDetailsVO">
<association property="wrkInfo" javaType="com.chushang.inspection.work.vo.WrkInfoVO">
<id column="wrk_id" property="wrkId"/>
<result column="remark" property="remark"/>
<result column="account_manager" property="accountManager"/>
<result column="account_phone" property="accountPhone"/>
<result column="create_by" property="createBy"/>
<result column="create_time" property="createTime"/>
<result column="dept_id" property="deptId"/>
<result column="dept_name" property="deptName"/>
<result column="dispose_time" property="disposeTime"/>
<result column="end_time" property="endTime"/>
<result column="lower_task_id" property="lowerTaskId"/>
<result column="lower_task_name" property="lowerTaskName"/>
<result column="service_result" property="serviceResult"/>
<result column="task_id" property="taskId"/>
<result column="task_name" property="taskName"/>
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="work_method" property="workMethod"/>
<result column="work_no" property="workNo"/>
<result column="work_sort" property="workSort"/>
<result column="work_source" property="workSource"/>
<result column="work_type" property="workType"/>
<result column="wrk_status" property="wrkStatus"/>
</association>
<association property="infoStore" javaType="com.chushang.inspection.work.vo.WrkInfoStoreVO">
<id column="store_id" property="storeId"/>
<result column="ins_fre" property="insFre"/>
<result column="legal_name" property="legalName"/>
<result column="products" property="products"/>
<result column="register_address" property="registerAddress"/>
<result column="shop_name" property="shopName"/>
<result column="special_num" property="specialNum"/>
<result column="store_address" property="storeAddress"/>
<result column="store_contact" property="storeContact"/>
<result column="store_name" property="storeName"/>
<result column="store_no" property="storeNo"/>
<result column="store_phone" property="storePhone"/>
<result column="state" property="storeStatus"/>
<result column="store_type" property="storeType"/>
<result column="tip_tool" property="tipTool"/>
</association>
<association property="infoTerminal" javaType="com.chushang.inspection.work.vo.WrkInfoTerminalVO">
<id column="terminal_id" property="terminalId"/>
<result column="terminal_address" property="terminalAddress"/>
<result column="terminal_model" property="terminalModel"/>
<result column="terminal_no" property="terminalNo"/>
<result column="terminal_property" property="terminalProperty"/>
<result column="terminal_sn" property="terminalSn"/>
<result column="terminal_source" property="terminalSource"/>
<result column="terminal_status" property="terminalStatus"/>
<result column="terminal_type" property="terminalType"/>
<result column="terminal_version" property="terminalVersion"/>
</association>
<association property="infoTerminalIns" javaType="com.chushang.inspection.work.vo.WrkInfoTerminalInsVO">
<id column="terminal_id" property="terminalId"/>
<result column="deviation" property="deviation"/>
<result column="geographic_location" property="geographicLocation"/>
<result column="work_address" property="workAddress"/>
<result column="work_location" property="workLocation"/>
<result column="geographic_address" property="locationAddress"/>
<result column="pre_code_encoding" property="preCodeEncoding"/>
<result column="service_result" property="serviceResult"/>
<result column="storage_time" property="storageTime"/>
<result column="times_pass" property="timesPass"/>
<result column="delivery_time" property="deliveryTime"/>
<result column="inspection_status" property="inspectionStatus"/>
<result column="inspection_time" property="inspectionTime"/>
</association>
</resultMap>
<select id="listInsTemplate" resultMap="wrkInfoDetailsVOResult">
<include refid="wrkInfoDetailSql"/>
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
ORDER BY i.create_time desc
</select>
<select id="getWrkInfoDetails" resultMap="wrkInfoDetailsVOResult">
<include refid="wrkInfoDetailSql"/>
AND i.wrk_id = #{wrkId}
ORDER BY i.create_time desc
</select>
<sql id="wrkInfoDetailSql">
SELECT i.wrk_id,
i.`dept_id`,
i.`task_id`,
i.`lower_task_id`,
i.`user_id`,
i.`user_name`,
i.`work_no`,
i.`work_type`,
i.`work_method`,
i.`work_sort`,
i.`work_source`,
i.`dispose_time`,
i.`account_manager`,
i.`account_phone`,
i.`service_result`,
i.`remark`,
i.`end_time`,
i.`create_by`,
i.`create_time`,
i.`task_name`,
i.`lower_task_name`,
i.`dept_name`,
i.`wrk_status`,
isr.`store_id`,
isr.`state`,
isr.`store_no`,
isr.`store_name`,
isr.`store_contact`,
isr.`store_phone`,
isr.`store_address`,
isr.`special_num`,
isr.`shop_name`,
isr.`store_type`,
isr.`products`,
isr.`tip_tool`,
isr.`ins_fre`,
isr.`register_address`,
isr.`legal_name`,
itir.`geographic_location`,
itir.`geographic_address`,
itir.`work_location`,
itir.`work_address`,
itir.`deviation`,
itir.`pre_code_encoding`,
itir.`service_result`,
itir.`deviation`,
itir.`storage_time`,
itir.`delivery_time`,
itir.`times_pass`,
itir.`inspection_status`,
itir.`inspection_time`,
itr.`terminal_id`,
itr.`terminal_sn`,
itr.`terminal_type`,
itr.`terminal_model`,
itr.`terminal_no`,
itr.`terminal_source`,
itr.`terminal_address`,
itr.`terminal_version`,
itr.`terminal_property`,
itr.`terminal_status`
FROM `wrk_info` i
LEFT JOIN wrk_info_store_record isr ON i.wrk_id = isr.wrk_id
LEFT JOIN wrk_info_terminal_record itr ON i.wrk_id = itr.wrk_id
LEFT JOIN wrk_info_terminal_ins_record itir ON i.wrk_id = itir.wrk_id
WHERE i.del_state = 0
</sql>
<select id="countByProjectIds" resultType="com.chushang.inspection.project.vo.CountVO">
SELECT COUNT(*) AS total, wi.project_id AS projectId
FROM wrk_info wi
where wi.del_state = 0
<if test="projectIds != null and projectIds.size() > 0">
AND wi.project_id IN
<foreach collection="projectIds" open="(" close=")" item="projectId" separator=",">
#{projectId}
</foreach>
</if>
<if test="wrkTypes != null and wrkTypes.size() > 0">
AND wi.work_type IN
<foreach collection="wrkTypes" open="(" close=")" separator="," item="wrkType">
#{wrkType}
</foreach>
</if>
GROUP BY wi.project_id
</select>
<select id="wrkData" resultType="com.chushang.inspection.work.vo.WrkDataVO">
SELECT wi.dept_id AS deptId,
p.project_name AS projectName,
pt.project_id AS projectId,
pt.`name` AS taskName,
pt.id AS taskId,
(SELECT count(*)
FROM wrk_info_terminal_record
WHERE wi.project_id = project_id) AS totalTer,
(SELECT COUNT(*) FROM wrk_info WHERE project_id = wi.project_id) AS totalwrk,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
AND wrk_status in (4, 7, 8)) AS totalSuc,
(SELECT COUNT(*)
FROM wrk_info
WHERE project_id = wi.project_id
AND end_time IS not NULL
AND end_time &lt;= wi.dispose_time) AS totalTimeOut
FROM wrk_info wi
LEFT JOIN ta_polling_task pt ON pt.id = wi.lower_task_id
LEFT JOIN wrk_project p ON pt.project_id = p.project_id
WHERE wi.del_state = 0
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
<if test="1 == 1">
${query.sqlParam.get('dataScope')}
</if>
GROUP BY pt.project_id
</select>
<select id="empData" resultType="com.chushang.inspection.project.vo.EmployeeVO">
SELECT user_id as userId,dept_id as deptId,count(user_id) as dispatchNum,count(CASE WHEN wrk_status = 4 OR wrk_status = 7
THEN 1 ELSE 0 END) as aduitNum
FROM wrk_info
where del_state = 0
<if test="query.projectConcat != null and query.projectConcat != ''">
AND project_concat = #{query.projectConcat}
</if>
<if test="1 == 1">
${query.sqlParam.get('sqlWhere')}
</if>
GROUP BY user_id
</select>
<select id="empDetail" resultType="com.chushang.inspection.project.vo.EmployeeVO">
SELECT t1.user_id as userId,
t1.dept_id as deptId,
t1.lower_task_name as taskName,
t2.project_name as projectName,
count(1) as dispatchNum,count(CASE WHEN t1.wrk_status = 4 OR t1.wrk_status = 7
THEN 1 ELSE 0 END) as aduitNum
FROM wrk_info t1 inner join wrk_project t2 on t1.project_id = t2.project_id
where t1.del_state = 0
and t1.user_id = #{userId}
GROUP BY t1.project_id,t1.lower_task_id
</select>
</mapper>