Newer
Older
casic-metering / casic-metering-dao / src / main / resources / mapper / MeterCertificateMapper.xml
xiezhuangzhuang on 29 Nov 2022 4 KB 计量人员相关接口开发
<?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.casic.missiles.mapper.MeterCertificateMapper">
    <insert id="addStaffCertificate" parameterType="java.util.List">
        INSERT INTO meter_certificate ( `id`, `staff_id`, `certificate_no`, `certificate_name`, `certificate_date`,
                                       `certificate_company`, `valid_date`, `certificate_status`, `minio_file_name`, `remark`, `is_del` )
        VALUES
        <foreach collection ="certificateList" item="bean" separator =",">
            (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName},
            DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'),
             #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0)
        </foreach >
    </insert>
    <update id="updateStaffCertificate" parameterType="com.casic.missiles.model.MeterCertificate">
        UPDATE meter_certificate
        SET `staff_id` = #{bean.staffId},
            `certificate_no` =  #{bean.certificateNo},
            `certificate_name` =  #{bean.certificateName},
            `certificate_date` =  DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'),
            `certificate_company` =  #{bean.certificateCompany},
            `valid_date` =  DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'),
            `certificate_status` =  #{bean.certificateStatus},
            `minio_file_name` =  #{bean.minioFileName},
            `remark` =  #{bean.remark},
            `update_time` =  DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S')
        WHERE
            `id` =  #{bean.id}
    </update>
    <select id="queryCertificateList" resultType="com.casic.missiles.dto.MeterCertificateDto" parameterType="com.casic.missiles.dto.meter.MeterStaffRequest">
        SELECT
            t1.id,
            t1.staff_id,
            t1.certificate_no,
            t1.certificate_name,
            t1.certificate_date,
            t1.certificate_company,
            t1.valid_date,
            t1.certificate_status,
            t1.remark,
            t2.NAME,
            t2.sex,
            t2.staff_no,
            (select `NAME` from sys_dict where id = t2.education) as education,
            (select `NAME` from sys_dict where id = t2.technology_job) as technology_job,
            (select `NAME` from sys_dict where id = t2.administration_job) as administration_job,
            (select `FULL_NAME` from sys_dept where id = t2.dept_id ) as dept_name,
            t2.dept_id
        FROM
            meter_certificate AS t1
        LEFT JOIN meter_staff t2 ON t1.staff_id = t2.id
        <where>
            and t1.is_del = 0
            <if test="request.staffNo != null  and request.staffNo != ''">
                and t2.staff_no like CONCAT('%',#{request.staffNo},'%')
            </if>
            <if test="request.name != null  and request.name != ''">
                and t2.`NAME` like concat('%', #{request.name}, '%')
            </if>
            <if test="request.deptId != null  and  request.deptId != ''">
                and t2.dept_id = #{request.deptId}
            </if>
            <if test="request.verifierCertificateNo != null  and request.verifierCertificateNo != ''">
                and t1.certificate_no like concat('%', #{request.verifierCertificateNo}, '%')
            </if>
            <if test="request.certificateStatus != null  and request.certificateStatus != ''">
                and t1.certificate_status = #{request.certificateStatus}
            </if>
        </where>
    </select>

    <select id="queryReminderList" resultType="com.casic.missiles.model.MeterCertificateExpireMessage">
        SELECT
            t1.id as certificate_id,
            t1.staff_id,
            t1.certificate_no,
            t1.certificate_name,
            t1.valid_date,
            t2.account as staff_no
        FROM
            meter_certificate AS t1
                LEFT JOIN meter_staff t2 ON t1.staff_id = t2.id where DATE_FORMAT(t1.valid_date,'%Y-%m-%d') = DATE_SUB(curdate(),INTERVAL -30 day)
    </select>

    <update id="deleteCertificate" parameterType="long">
        UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id}
    </update>
</mapper>