68 lines
3.0 KiB
XML
68 lines
3.0 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.bonus.material.devchange.mapper.MaDevRetireWarningMapper">
|
||
|
|
<resultMap id="BaseResultMap" type="com.bonus.material.devchange.domain.MaDevInfo">
|
||
|
|
<result column="brand" property="brand"/>
|
||
|
|
<result column="code" property="code"/>
|
||
|
|
<result column="company_name" property="companyName"/>
|
||
|
|
<result column="days_diff" property="daysDiff"/>
|
||
|
|
<result column="device_name" property="deviceName"/>
|
||
|
|
<result column="device_status" property="deviceStatus"/>
|
||
|
|
<result column="expiration_time" property="expirationTime"/>
|
||
|
|
<result column="ma_id" property="maId"/>
|
||
|
|
<result column="model_name" property="modelName"/>
|
||
|
|
<result column="production_date" property="productionDate"/>
|
||
|
|
<result column="remaining_days" property="remainingDays"/>
|
||
|
|
<result column="remaining_years" property="remainingYears"/>
|
||
|
|
<result column="years_diff" property="yearsDiff"/>
|
||
|
|
</resultMap>
|
||
|
|
|
||
|
|
|
||
|
|
<select id="list" resultMap="BaseResultMap">
|
||
|
|
SELECT
|
||
|
|
c.company_name,
|
||
|
|
mdi.ma_id,
|
||
|
|
mdi.device_name,
|
||
|
|
mdi.model_name,
|
||
|
|
mdi.`code`,
|
||
|
|
mdi.brand,
|
||
|
|
mdi.production_date,
|
||
|
|
mdi.expiration_time,
|
||
|
|
IF(STR_TO_DATE(production_date, '%Y-%m-%d') IS NOT NULL, DATEDIFF(CURDATE(), STR_TO_DATE(production_date,
|
||
|
|
'%Y-%m-%d')), 0) AS days_diff,
|
||
|
|
IF(STR_TO_DATE(production_date, '%Y-%m-%d') IS NOT NULL, TIMESTAMPDIFF(YEAR, STR_TO_DATE(production_date,
|
||
|
|
'%Y-%m-%d'), CURDATE()), 0) AS years_diff,
|
||
|
|
IF(STR_TO_DATE(expiration_time, '%Y-%m-%d') IS NOT NULL
|
||
|
|
AND STR_TO_DATE(expiration_time, '%Y-%m-%d') >= CURDATE(), DATEDIFF(STR_TO_DATE(expiration_time, '%Y-%m-%d'),
|
||
|
|
CURDATE()), 0) AS remaining_days,
|
||
|
|
IF(STR_TO_DATE(expiration_time, '%Y-%m-%d') IS NOT NULL
|
||
|
|
AND STR_TO_DATE(expiration_time, '%Y-%m-%d') >= CURDATE(), TIMESTAMPDIFF(YEAR, CURDATE(),
|
||
|
|
STR_TO_DATE(expiration_time, '%Y-%m-%d')), 0) AS remaining_years,
|
||
|
|
CASE
|
||
|
|
WHEN STR_TO_DATE(expiration_time, '%Y-%m-%d') IS NOT NULL
|
||
|
|
AND DATEDIFF(STR_TO_DATE(expiration_time, '%Y-%m-%d'), CURDATE()) > 365
|
||
|
|
THEN '正常使用'
|
||
|
|
WHEN STR_TO_DATE(expiration_time, '%Y-%m-%d') IS NOT NULL
|
||
|
|
AND DATEDIFF(STR_TO_DATE(expiration_time, '%Y-%m-%d'), CURDATE()) > 0
|
||
|
|
AND DATEDIFF(STR_TO_DATE(expiration_time, '%Y-%m-%d'), CURDATE()) <= 365
|
||
|
|
THEN CONCAT('临近', DATEDIFF(STR_TO_DATE(expiration_time, '%Y-%m-%d'), CURDATE()), '天退役')
|
||
|
|
WHEN STR_TO_DATE(expiration_time, '%Y-%m-%d') IS NOT NULL
|
||
|
|
AND STR_TO_DATE(expiration_time, '%Y-%m-%d') <= CURDATE()
|
||
|
|
THEN '已过期'
|
||
|
|
ELSE '日期无效'
|
||
|
|
END AS device_status
|
||
|
|
FROM
|
||
|
|
ma_dev_info mdi
|
||
|
|
LEFT JOIN sys_dept sd ON sd.dept_id = mdi.own_co
|
||
|
|
LEFT JOIN bm_company_info c ON sd.dept_id = c.company_id
|
||
|
|
WHERE mdi.is_active = 1
|
||
|
|
<if test="deviceName != null">
|
||
|
|
AND mdi.device_name like concat('%',#{deviceName},'%')
|
||
|
|
</if>
|
||
|
|
<if test="brand != null">
|
||
|
|
AND mdi.brand like concat('%',#{brand},'%')
|
||
|
|
</if>
|
||
|
|
</select>
|
||
|
|
|
||
|
|
</mapper>
|