integrated_traffic/src/main/resources/mybatis/datasource/maintenance/MaintenanceMapper.xml

276 lines
8.6 KiB
XML
Raw Normal View History

2024-03-15 11:25:36 +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.zcloud.mapper.datasource.maintenance.MaintenanceMapper">
<!--表名 -->
<sql id="tableName">
bus_traffic_mechanical_maintenance
</sql>
<!-- 字段 -->
<sql id="Field">
MAINTENANCE_ID,
CORPINFO_ID,
INDUSTRY_TYPE,
INDUSTRY_TYPE_TREE,
INDUSTRY_TYPE_NAMES,
OPER_CORP,
VEHICLE,
BASICINFO_LICENSE_PLATE,
BASICINFO_VIN,
BASICINFO_VEHICLETYPE,
BASICINFO_CAR_OWNERS,
BASICINFO_CARPHONE,
BASICINFO_INITIAL_REGISTRATION_DATE,
BASICINFO_PROVINCE,
BASICINFO_CITY,
BASICINFO_COUNTY,
CAR_OWNERS,
TELEPHONE,
REGISTRANT,
MAINTENANCE_LEVEL,
MAINTENANCE_CYCLE,
KILOMETERS,
PROCESSING_DATE,
DUE_DATE,
AGREEMENT_NUM,
MAINTENANCE_COMPANY,
REMINDER_DAYS,
REMINDER_DATE,
REMINDER_STATUS,
MAINTENANCEINFO,
NOTES,
NUM,
ISDELETE,
CREATOR,
CREATORNAME,
CREATTIME,
OPERATOR,
OPERATORNAME,
OPERATTIME,
DELETEOR,
DELETEORNAME,
2024-04-02 18:51:36 +08:00
DELETTIME,
ARCHIVES_TYPE
</sql>
2024-03-15 11:25:36 +08:00
<!-- 字段值定义 -->
2024-03-15 11:25:36 +08:00
<sql id="FieldValue">
#{MAINTENANCE_ID},
#{CORPINFO_ID},
#{INDUSTRY_TYPE},
#{INDUSTRY_TYPE_TREE},
#{INDUSTRY_TYPE_NAMES},
#{OPER_CORP},
#{VEHICLE},
#{BASICINFO_LICENSE_PLATE},
#{BASICINFO_VIN},
#{BASICINFO_VEHICLETYPE},
#{BASICINFO_CAR_OWNERS},
#{BASICINFO_CARPHONE},
#{BASICINFO_INITIAL_REGISTRATION_DATE},
#{BASICINFO_PROVINCE},
#{BASICINFO_CITY},
#{BASICINFO_COUNTY},
#{CAR_OWNERS},
#{TELEPHONE},
#{REGISTRANT},
#{MAINTENANCE_LEVEL},
#{MAINTENANCE_CYCLE},
#{KILOMETERS},
#{PROCESSING_DATE},
#{DUE_DATE},
#{AGREEMENT_NUM},
#{MAINTENANCE_COMPANY},
#{REMINDER_DAYS},
#{REMINDER_DATE},
#{REMINDER_STATUS},
#{MAINTENANCEINFO},
#{NOTES},
#{NUM},
#{ISDELETE},
#{CREATOR},
#{CREATORNAME},
#{CREATTIME},
#{OPERATOR},
#{OPERATORNAME},
#{OPERATTIME},
#{DELETEOR},
#{DELETEORNAME},
2024-04-02 18:51:36 +08:00
#{DELETTIME},
#{ARCHIVES_TYPE}
</sql>
2024-03-15 11:25:36 +08:00
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1',
DELETEOR = #{DELETEOR},
DELETEORNAME = #{DELETEORNAME},
DELETTIME = #{DELETTIME}
where
MAINTENANCE_ID = #{MAINTENANCE_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
NUM = #{NUM},
VEHICLE = #{VEHICLE},
CAR_OWNERS = #{CAR_OWNERS},
TELEPHONE = #{TELEPHONE},
REGISTRANT = #{REGISTRANT},
MAINTENANCE_LEVEL = #{MAINTENANCE_LEVEL},
MAINTENANCE_CYCLE = #{MAINTENANCE_CYCLE},
KILOMETERS = #{KILOMETERS},
PROCESSING_DATE = #{PROCESSING_DATE},
DUE_DATE = #{DUE_DATE},
AGREEMENT_NUM = #{AGREEMENT_NUM},
MAINTENANCE_COMPANY = #{MAINTENANCE_COMPANY},
REMINDER_DAYS = #{REMINDER_DAYS},
REMINDER_DATE = #{REMINDER_DATE},
REMINDER_STATUS = #{REMINDER_STATUS},
MAINTENANCEINFO = #{MAINTENANCEINFO},
NOTES = #{NOTES},
OPERATOR = #{OPERATOR},
OPERATORNAME = #{OPERATORNAME},
2024-04-02 18:51:36 +08:00
OPERATTIME = #{OPERATTIME},
ARCHIVES_TYPE = #{ARCHIVES_TYPE}
2024-03-15 11:25:36 +08:00
where
MAINTENANCE_ID = #{MAINTENANCE_ID}
</update>
<!-- 修改 -->
<update id="edit2" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="REMINDER_STATUS != null">
REMINDER_STATUS = #{REMINDER_STATUS},
</if>
OPERATOR = #{OPERATOR},
OPERATORNAME = #{OPERATORNAME},
OPERATTIME = #{OPERATTIME}
where
MAINTENANCE_ID = #{MAINTENANCE_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
f.MAINTENANCE_ID,
f.CORPINFO_ID,
f.NUM,
f.VEHICLE,
f.CAR_OWNERS,
f.TELEPHONE,
f.REGISTRANT,
f.MAINTENANCE_LEVEL,
f.MAINTENANCE_CYCLE,
f.KILOMETERS,
f.PROCESSING_DATE,
f.DUE_DATE,
f.AGREEMENT_NUM,
f.MAINTENANCE_COMPANY,
f.REMINDER_DAYS,
f.REMINDER_DATE,
f.REMINDER_STATUS,
(select t.FILEPATH from bus_imgfiles t where t.TYPE = 127 and t.FOREIGN_KEY = f.MAINTENANCE_ID limit 1) as MAINTENANCEINFO,
f.NOTES,
f.ISDELETE,
f.CREATOR,
f.CREATORNAME,
f.CREATTIME,
f.OPERATOR,
f.OPERATORNAME,
f.OPERATTIME,
f.DELETEOR,
f.DELETEORNAME,
2024-04-03 17:56:58 +08:00
f.DELETTIME,
v.PLATE_NUMBER
2024-03-15 11:25:36 +08:00
from
2024-04-03 17:56:58 +08:00
<include refid="tableName"></include> f
INNER JOIN v_traffic v on v.ID = f.VEHICLE
2024-03-15 11:25:36 +08:00
where
f.MAINTENANCE_ID = #{MAINTENANCE_ID}
</select>
<!-- 列表
BASICINFO_LICENSE_PLATE 车牌号
CAR_OWNERS 车主业户
REGISTRANT 登记人
DUE_DATE 到期日期
VEHICLE_MODEL 营运车型
REMINDER_STATUS 提醒状态
-->
<select id="datalistPage" parameterType="page" resultType="pd">
select
f.*,
case when f.DUE_DATE &lt; NOW() then 0 else 1 end as DUE_DATE_TYPE,
2024-04-02 18:51:36 +08:00
v1.PLATE_NUMBER,
o.ISSCRAP AS OPEAR_ISSCRAP,
2024-04-03 17:56:58 +08:00
btmf.ISSCRAP AS FREIGHT_ISSCRAP,
o.ISASSIGNED AS OPEAR_ISASSIGNED,
btmf.ISASSIGNED AS FREIGHT_ISASSIGNED
2024-03-15 11:25:36 +08:00
from
<include refid="tableName"></include>
f
2024-03-29 18:06:18 +08:00
INNER JOIN v_traffic v1 on f.VEHICLE = v1.ID
LEFT JOIN BUS_TRAFFIC_OPERATINGVEHICLE o on o.OPERATING_ID = f.VEHICLE
LEFT JOIN BUS_TRAFFIC_MECHANICAL_FREIGHTTRAILER btmf on btmf.FREIGHTTRAILER_ID = f.VEHICLE
2024-04-02 18:51:36 +08:00
where f.ISDELETE = '0' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
2024-03-15 11:25:36 +08:00
<if test="pd.BASICINFO_LICENSE_PLATE != null and pd.BASICINFO_LICENSE_PLATE != ''">
and f.BASICINFO_LICENSE_PLATE LIKE CONCAT(CONCAT('%', #{pd.BASICINFO_LICENSE_PLATE}),'%')
</if>
<if test="pd.CAR_OWNERS != null and pd.CAR_OWNERS != ''">
and f.CAR_OWNERS LIKE CONCAT(CONCAT('%', #{pd.CAR_OWNERS}),'%')
</if>
<if test="pd.REGISTRANT != null and pd.REGISTRANT != ''">
and f.REGISTRANT LIKE CONCAT(CONCAT('%', #{pd.REGISTRANT}),'%')
</if>
<if test="pd.DUE_DATE != null and pd.DUE_DATE != ''">
and f.DUE_DATE = #{pd.DUE_DATE}
</if>
<if test="pd.VEHICLE_MODEL != null and pd.VEHICLE_MODEL != ''">
and f.VEHICLE_MODEL LIKE CONCAT(CONCAT('%', #{pd.VEHICLE_MODEL}),'%')
</if>
<if test="pd.REMINDER_STATUS != null and pd.REMINDER_STATUS != ''">
and f.REMINDER_STATUS = #{pd.REMINDER_STATUS}
</if>
<if test="pd.PLATE_NUMBER != null and pd.PLATE_NUMBER != ''">
and v1.PLATE_NUMBER LIKE CONCAT(CONCAT('%', #{pd.PLATE_NUMBER}),'%')
</if>
<if test="pd.DUE_DATE_TYPE != null and pd.DUE_DATE_TYPE != ''">
2024-03-27 18:05:14 +08:00
-- 添加条件只有当当前时间NOW())处于提醒时间段内时,才会返回相应的记录。
-- 提醒时间段是由两个日期定义的:
-- 1. 提前提醒的日期即从DUE_DATE字段指定的到期日期减去REMINDER_DAYS字段指定的天数。
-- 2. 到期日期DUE_DATE字段本身。
-- DATE_SUB函数用于计算提前提醒的日期。它从到期日期中减去一定天数以得到提醒开始的日期。
-- DATE_SUB的第一个参数是到期日期f.DUE_DATE
-- 第二个参数INTERVAL f.REMINDER_DAYS DAY指定从到期日期向前推算的天数f.REMINDER_DAYS字段的值
and NOW() BETWEEN DATE_SUB(f.DUE_DATE, INTERVAL f.REMINDER_DAYS DAY) AND f.DUE_DATE
2024-03-15 11:25:36 +08:00
</if>
ORDER BY f.CREATTIME DESC
</select>
</mapper>