emis-service/emis-biz/src/main/resources/mapper/EmisWaybillProblemInfoMapper.xml

297 lines
21 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.xdadan.erp.emis.mapper.EmisWaybillProblemInfoMapper">
<resultMap type="EmisWaybillProblemInfo" id="EmisWaybillProblemInfoResult" extends="com.xdadan.erp.emis.mapper.EmisBaseMapper.EmisBaseResult">
<result property="id" column="id" />
<result property="billCode" column="bill_code" />
<result property="mainBillCode" column="main_bill_code" />
<result property="blSubBill" column="bl_sub_bill" />
<result property="problemType" column="problem_type" />
<result property="problemTitle" column="problem_title" />
<result property="problemCause" column="problem_cause" />
<result property="sendSite" column="send_site" />
<result property="sendSiteCode" column="send_site_code" />
<result property="registerManCode" column="register_man_code" />
<result property="registerManDept" column="register_man_dept" />
<result property="registerSiteCode" column="register_site_code" />
<result property="registerDate" column="register_date" />
<result property="registerSaveDate" column="register_save_date" />
<result property="dataFrom" column="data_from" />
<result property="status" column="status" />
<result property="isSendSiteRegister" column="is_send_site_register" />
<result property="blReversion" column="bl_reversion" />
<result property="reversionStr" column="reversion_str" />
<result property="reversionMan" column="reversion_man" />
<result property="reversionManCode" column="reversion_man_code" />
<result property="reversionSiteCode" column="reversion_site_code" />
<result property="reversionDate" column="reversion_date" />
<result property="blCheckok" column="bl_checkok" />
<result property="dealResult" column="deal_result" />
<result property="blSee" column="bl_see" />
<result property="filePath" column="file_path" />
<association property="problemTypeName" column="problem_type" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectProblemTypeNameById"/>
<association property="sendSiteName" column="send_site_code" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectSiteNameByCode"/>
<association property="registerSiteName" column="register_site_code" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectSiteNameByCode"/>
<association property="registerManName" column="register_man_code" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectEmpNameByCode"/>
<association property="reversionSiteName" column="reversion_site_code" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectSiteNameByCode"/>
<association property="reversionManName" column="reversion_man_code" select="com.xdadan.erp.emis.mapper.EmisBaseMapper.selectEmpNameByCode"/>
</resultMap>
<sql id="selectEmisWaybillProblemInfoVo">
select id, bill_code, main_bill_code, bl_sub_bill, problem_type, problem_title, problem_cause, send_site, send_site_code, register_man_code, register_man_dept, register_site_code, register_date, register_save_date, data_from, status, is_send_site_register, bl_reversion, reversion_str, reversion_man, reversion_man_code, reversion_site_code, reversion_date, bl_checkok, deal_result, bl_see, file_path, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site from emis_waybill_problem_info
</sql>
<select id="selectEmisWaybillProblemInfoList" parameterType="EmisWaybillProblemInfo" resultMap="EmisWaybillProblemInfoResult">
<include refid="selectEmisWaybillProblemInfoVo"/>
<where>
del_flag='0'
<if test="id != null "> and id = #{id}</if>
<if test="billCode != null and billCode != ''"> and ( FIND_IN_SET(`bill_code`,#{billCode}) or bill_code like concat('%', #{billCode}, '%') ) </if>
<if test="mainBillCode != null and mainBillCode != ''"> and main_bill_code=#{mainBillCode}</if>
<if test="blSubBill != null and blSubBill != ''"> and bl_sub_bill=#{blSubBill}</if>
<if test="problemType != null and problemType != ''"> and FIND_IN_SET(problem_type,#{problemType})</if>
<if test="problemTitle != null and problemTitle != ''"> and problem_title like concat('%', #{problemTitle}, '%')</if>
<if test="problemCause != null and problemCause != ''"> and problem_cause like concat('%', #{problemCause}, '%')</if>
<if test="sendSiteCode != null and sendSiteCode != ''"> and send_site_code=#{sendSiteCode}</if>
<if test="registerManCode != null and registerManCode != ''"> and register_man_code=#{registerManCode}</if>
<if test="registerManDept != null and registerManDept != ''"> and register_man_dept like concat('%', #{registerManDept}, '%')</if>
<if test="registerSiteCode != null and registerSiteCode != ''"> and register_site_code=#{registerSiteCode}</if>
<if test="registerDate != null "> and register_date = #{registerDate}</if>
<if test="dataFrom != null and dataFrom != ''"> and data_from=#{dataFrom}</if>
<if test="status != null and status != ''"> and status=#{status}</if>
<if test="isSendSiteRegister != null and isSendSiteRegister != ''"> and is_send_site_register=#{isSendSiteRegister}</if>
<if test="dealResult != null and dealResult != ''"> and deal_result=#{dealResult}</if>
<if test="blReversion != null and blReversion != ''"> and bl_reversion=#{blReversion}</if>
<if test="reversionStr != null and reversionStr != ''"> and reversion_str like concat('%', #{reversionStr}, '%')</if>
<if test="reversionMan != null and reversionMan != ''"> and reversion_man like concat('%', #{reversionMan}, '%')</if>
<if test="reversionManCode != null and reversionManCode != ''"> and reversion_man_code=#{reversionManCode}</if>
<if test="reversionDate != null and reversionDate != ''"> and reversion_date like concat('%', #{reversionDate}, '%')</if>
<if test="blCheckok != null and blCheckok != ''"> and bl_checkok=#{blCheckok}</if>
<if test="blSee != null and blSee != ''"> and bl_see=#{blSee}</if>
<if test="filePath != null and filePath != ''"> and file_path like concat('%', #{filePath}, '%')</if>
<if test="delFlag != null and delFlag != ''"> and del_flag like concat('%', #{delFlag}, '%')</if>
<if test="createBy != null and createBy != ''"> and create_by like concat('%', #{createBy}, '%')</if>
<if test="createTime != null "> and create_time = #{createTime}</if>
<if test="updateBy != null and updateBy != ''"> and update_by like concat('%', #{updateBy}, '%')</if>
<if test="updateTime != null "> and update_time = #{updateTime}</if>
<if test="remark != null and remark != ''"> and remark like concat('%', #{remark}, '%')</if>
<if test="createSite != null and createSite != ''"> and create_site like concat('%', #{createSite}, '%')</if>
<if test="updateSite != null and updateSite != ''"> and update_site like concat('%', #{updateSite}, '%')</if>
<if test="params.beginRegisterDate != null and params.beginRegisterDate != ''">
and register_date <![CDATA[ >= ]]> #{params.beginRegisterDate}
</if>
<if test="params.endRegisterDate != null and params.endRegisterDate != ''">
and register_date <![CDATA[ <= ]]> #{params.endRegisterDate}
</if>
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
and (
register_site_code=#{params.privSiteCode}
or
send_site_code=#{params.privSiteCode}
)
</if>
</where>
order by create_time desc
</select>
<select id="checkUnique" parameterType="EmisWaybillProblemInfo" resultType="int">
select count(1) from emis_waybill_problem_info
where del_flag='0'
and bill_code = #{billCode}
and problem_type = #{problemType}
and register_site_code = #{registerSiteCode}
and to_days(create_time) = to_days(now())
limit 1
</select>
<select id="checkIsNoNeedScanBill" parameterType="String" resultType="int">
select count(1) from emis_waybill_problem_info
where del_flag='0' and problem_type in(173,170,151) and main_bill_code = #{billCode}
limit 1
</select>
<select id="selectEmisWaybillProblemInfoById" parameterType="Long" resultMap="EmisWaybillProblemInfoResult">
select id, bill_code, main_bill_code, bl_sub_bill, problem_type, problem_title, problem_cause, send_site, send_site_code, register_man_code, register_man_dept, register_site_code, register_date, register_save_date, data_from, status, is_send_site_register, bl_reversion, reversion_str, reversion_man, reversion_man_code, reversion_site_code, reversion_date, bl_checkok, deal_result, bl_see, file_path, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site
from emis_waybill_problem_info a
where a.id = #{id}
</select>
<select id="selectEmisWaybillProblemInfoByBillCode" parameterType="String" resultMap="EmisWaybillProblemInfoResult">
select id, bill_code, main_bill_code, bl_sub_bill, problem_type, problem_title, problem_cause, send_site, send_site_code, register_man_code, register_man_dept, register_site_code, register_date, register_save_date, data_from, status, is_send_site_register, bl_reversion, reversion_str, reversion_man, reversion_man_code, reversion_site_code, reversion_date, bl_checkok, deal_result, bl_see, file_path, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site
from emis_waybill_problem_info a
where a.bill_code = #{billCode}
and a.problem_type in ('173','170')
</select>
<select id="selectEmisWaybillProblemInfoByBillCodes" parameterType="list" resultMap="EmisWaybillProblemInfoResult">
select distinct bill_code,id, problem_type, problem_cause
from emis_waybill_problem_info
where bill_code in
<foreach item="billCode" collection="billCodes" open="(" separator="," close=")">
#{billCode}
</foreach>
</select>
<insert id="insertEmisWaybillProblemInfo" parameterType="EmisWaybillProblemInfo" useGeneratedKeys="true" keyProperty="id">
insert into emis_waybill_problem_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="billCode != null and billCode != ''">bill_code,</if>
<if test="mainBillCode != null and mainBillCode != ''">main_bill_code,</if>
<if test="blSubBill != null and blSubBill != ''">bl_sub_bill,</if>
<if test="problemType != null">problem_type,</if>
<if test="problemTitle != null and problemTitle != ''">problem_title,</if>
<if test="problemCause != null and problemCause != ''">problem_cause,</if>
<if test="sendSite != null and sendSite != ''">send_site,</if>
<if test="sendSiteCode != null and sendSiteCode != ''">send_site_code,</if>
<if test="registerManCode != null and registerManCode != ''">register_man_code,</if>
<if test="registerManDept != null and registerManDept != ''">register_man_dept,</if>
<if test="registerSiteCode != null and registerSiteCode != ''">register_site_code,</if>
<if test="registerDate != null">register_date,</if>
<if test="registerSaveDate != null">register_save_date,</if>
<if test="dataFrom != null and dataFrom != ''">data_from,</if>
<if test="status != null and status != ''">status,</if>
<if test="isSendSiteRegister != null and isSendSiteRegister != ''">is_send_site_register,</if>
<if test="blReversion != null and blReversion != ''">bl_reversion,</if>
<if test="reversionStr != null and reversionStr != ''">reversion_str,</if>
<if test="reversionMan != null and reversionMan != ''">reversion_man,</if>
<if test="reversionManCode != null and reversionManCode != ''">reversion_man_code,</if>
<if test="reversionSiteCode != null and reversionSiteCode != ''">reversion_site_code,</if>
<if test="reversionDate != null">reversion_date,</if>
<if test="blCheckok != null and blCheckok != ''">bl_checkok,</if>
<if test="dealResult != null and dealResult != ''">deal_result,</if>
<if test="blSee != null and blSee != ''">bl_see,</if>
<if test="filePath != null and filePath != ''">file_path,</if>
<if test="delFlag != null and delFlag != ''">del_flag,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createSite != null and createSite != ''">create_site,</if>
<if test="updateSite != null and updateSite != ''">update_site,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="billCode != null and billCode != ''">#{billCode},</if>
<if test="mainBillCode != null and mainBillCode != ''">#{mainBillCode},</if>
<if test="blSubBill != null and blSubBill != ''">#{blSubBill},</if>
<if test="problemType != null">#{problemType},</if>
<if test="problemTitle != null and problemTitle != ''">#{problemTitle},</if>
<if test="problemCause != null and problemCause != ''">#{problemCause},</if>
<if test="sendSite != null and sendSite != ''">#{sendSite},</if>
<if test="sendSiteCode != null and sendSiteCode != ''">#{sendSiteCode},</if>
<if test="registerManCode != null and registerManCode != ''">#{registerManCode},</if>
<if test="registerManDept != null and registerManDept != ''">#{registerManDept},</if>
<if test="registerSiteCode != null and registerSiteCode != ''">#{registerSiteCode},</if>
<if test="registerDate != null">#{registerDate},</if>
<if test="registerSaveDate != null">#{registerSaveDate},</if>
<if test="dataFrom != null and dataFrom != ''">#{dataFrom},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="isSendSiteRegister != null and isSendSiteRegister != ''">#{isSendSiteRegister},</if>
<if test="blReversion != null and blReversion != ''">#{blReversion},</if>
<if test="reversionStr != null and reversionStr != ''">#{reversionStr},</if>
<if test="reversionMan != null and reversionMan != ''">#{reversionMan},</if>
<if test="reversionManCode != null and reversionManCode != ''">#{reversionManCode},</if>
<if test="reversionSiteCode != null and reversionSiteCode != ''">#{reversionSiteCode},</if>
<if test="reversionDate != null">#{reversionDate},</if>
<if test="blCheckok != null and blCheckok != ''">#{blCheckok},</if>
<if test="dealResult != null and dealResult != ''">#{dealResult},</if>
<if test="blSee != null and blSee != ''">#{blSee},</if>
<if test="filePath != null and filePath != ''">#{filePath},</if>
<if test="delFlag != null and delFlag != ''">#{delFlag},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createSite != null and createSite != ''">#{createSite},</if>
<if test="updateSite != null and updateSite != ''">#{updateSite},</if>
</trim>
</insert>
<update id="updateEmisWaybillProblemInfo" parameterType="EmisWaybillProblemInfo">
update emis_waybill_problem_info
<trim prefix="SET" suffixOverrides=",">
<if test="billCode != null and billCode != ''">bill_code = #{billCode},</if>
<if test="mainBillCode != null and mainBillCode != ''">main_bill_code = #{mainBillCode},</if>
<if test="blSubBill != null and blSubBill != ''">bl_sub_bill = #{blSubBill},</if>
<if test="problemType != null">problem_type = #{problemType},</if>
<if test="problemTitle != null and problemTitle != ''">problem_title = #{problemTitle},</if>
<if test="problemCause != null and problemCause != ''">problem_cause = #{problemCause},</if>
<if test="sendSite != null and sendSite != ''">send_site = #{sendSite},</if>
<if test="sendSiteCode != null and sendSiteCode != ''">send_site_code = #{sendSiteCode},</if>
<if test="registerManCode != null and registerManCode != ''">register_man_code = #{registerManCode},</if>
<if test="registerManDept != null and registerManDept != ''">register_man_dept = #{registerManDept},</if>
<if test="registerSiteCode != null and registerSiteCode != ''">register_site_code = #{registerSiteCode},</if>
<if test="registerDate != null">register_date = #{registerDate},</if>
<if test="registerSaveDate != null">register_save_date = #{registerSaveDate},</if>
<if test="dataFrom != null and dataFrom != ''">data_from = #{dataFrom},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="isSendSiteRegister != null and isSendSiteRegister != ''">is_send_site_register = #{isSendSiteRegister},</if>
<if test="blReversion != null and blReversion != ''">bl_reversion = #{blReversion},</if>
<if test="reversionStr != null and reversionStr != ''">reversion_str = #{reversionStr},</if>
<if test="reversionMan != null and reversionMan != ''">reversion_man = #{reversionMan},</if>
<if test="reversionManCode != null and reversionManCode != ''">reversion_man_code = #{reversionManCode},</if>
<if test="reversionSiteCode != null and reversionSiteCode != ''">reversion_site_code = #{reversionSiteCode},</if>
<if test="reversionDate != null">reversion_date = #{reversionDate},</if>
<if test="blCheckok != null and blCheckok != ''">bl_checkok = #{blCheckok},</if>
<if test="dealResult != null and dealResult != ''">deal_result = #{dealResult},</if>
<if test="blSee != null and blSee != ''">bl_see = #{blSee},</if>
<if test="filePath != null and filePath != ''">file_path = #{filePath},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null and remark != ''">remark = #{remark},</if>
<if test="createSite != null and createSite != ''">create_site = #{createSite},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteEmisWaybillProblemInfoById" parameterType="Long">
update emis_waybill_problem_info set del_flag='1' where id = #{id}
</delete>
<delete id="deleteByBillCode" parameterType="string">
update emis_waybill_problem_info
set del_flag='1'
where bill_code = #{billCode}
and (problem_type = '170' or problem_type = '173')
</delete>
<delete id="deleteEmisWaybillProblemInfoByIds" parameterType="String">
update emis_waybill_problem_info set del_flag='1' where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- 根据运单号列表统计每个运单的总延迟天数 -->
<select id="selectWaybillTotalDelayDays" parameterType="list" resultType="map">
SELECT
wpi.bill_code as billCode,
COALESCE(SUM(pt.delay_day), 0) as totalDelayDays
FROM emis_waybill_problem_info wpi
LEFT JOIN emis_problem_type pt ON wpi.problem_type = pt.id AND pt.del_flag = '0'
WHERE wpi.del_flag = '0'
AND wpi.bill_code IN
<foreach item="billCode" collection="billCodes" open="(" separator="," close=")">
#{billCode}
</foreach>
GROUP BY wpi.bill_code
</select>
</mapper>