Newer
Older
casic-metering-biz-xichang / casic-metering-dao / src / main / resources / mapper / business / BizBusinessDeviceMeasureApprovalMapper.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.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval">
        <id column="id" property="id" />
        <result column="certificate_no" property="certificateNo" />
        <result column="certificate_name" property="certificateName" />
        <result column="lab_code" property="labCode" />
        <result column="group_code" property="groupCode" />
        <result column="order_id" property="orderId" />
        <result column="sample_id" property="sampleId" />
        <result column="data_id" property="dataId" />
        <result column="original_record_file" property="originalRecordFile" />
        <result column="certificate_file" property="certificateFile" />
        <result column="create_user_id" property="createUserId" />
        <result column="create_user_name" property="createUserName" />
        <result column="approval_status" property="approvalStatus" />
        <result column="process_id" property="processId" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, certificate_no, certificate_name, lab_code, group_code, order_id, sample_id, data_id, original_record_file, certificate_file,
        create_user_id, create_user_name, approval_status, process_id, create_time, update_time
    </sql>

    <select id="selectBatchForApprovalList" resultMap="BaseResultMap">
        SELECT bbdma.*, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS model, eei.manufacture_no AS manufactureNo,
        bbdmi.measure_category AS measureCategory,  bbdmi.create_user_name AS staffName, bbdmi.trace_date AS traceDate,
        bbdmi.manufacturer AS manufacturer, bbdmi.conclusion AS conclusion, bbdmi.restriction_instruction AS restrictionInstruction,
        bbdmi.measure_address AS measureAddress, bbdmi.data_no AS measureDataNo, bbdmi.measure_valid_date, bbdmi.meter_identify, bbdmi.measure_valid_date,
        bbdmii.belong_standard_equipment, bbdmii.item_category_id, bbdmii.item_category_name
        FROM biz_business_device_measure_approval bbdma
        JOIN eqpt_equipment_info eei ON bbdma.sample_id = eei.id
        JOIN biz_business_device_measure_info bbdmi ON bbdma.data_id = bbdmi.id
        JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id
        WHERE 1=1
        <if test="request != null and request.approvalStatus != null and request.approvalStatus !=''">
            and bbdma.approval_status = #{request.approvalStatus}
        </if>
        <if test="request != null and request.createUserId != null and request.createUserId !=''">
            and bbdma.create_user_id = #{request.createUserId}
        </if>
        <if test="request != null and request.certificateNo != null and request.certificateNo !=''">
            and bbdma.certificate_no like concat('%',#{request.certificateNo},'%')
        </if>
        <if test="request != null and request.certificateName != null and request.certificateName !=''">
            and (bbdma.certificate_name like concat('%',#{request.certificateName},'%') OR bbdma.certificate_no like concat('%',#{request.certificateNo},'%'))
        </if>
        <if test="request != null and request.sampleNo != null and request.sampleNo !=''">
            and eei.equipment_no like concat('%',#{request.sampleNo},'%')
        </if>
        <if test="request != null and request.measureCategory != null and request.measureCategory !=''">
            and bbdmi.measure_category = #{request.measureCategory}
        </if>
        <if test="request != null and request.staffName != null and request.staffName !=''">
            and bbdmi.create_user_name = #{request.staffName}
        </if>
        <if test="request != null and request.traceDateStart != null and request.traceDateStart !=''">
            and bbdmi.trace_date &gt;= #{request.traceDateStart}
        </if>
        <if test="request != null and request.traceDateEnd != null and request.traceDateEnd !=''">
            and bbdmi.trace_date &lt;= #{request.traceDateEnd}
        </if>
        <if test="businessKeys != null">
            and bbdma.id in
            <foreach collection="businessKeys" item="id" index="index" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </if>
        ORDER BY bbdma.create_time DESC
    </select>

    <select id="selectMaxCertNo" resultType="java.lang.Long">
        SELECT IFNULL(max(RIGHT(certificate_no, 4)), 0) from biz_business_device_measure_approval
    </select>

    <select id="selectDetailById" resultMap="BaseResultMap">
        SELECT bbdma.*, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS model, eei.model AS model, eei.manufacture_no AS manufactureNo,
        bbdmi.measure_category AS measureCategory,  bbdmi.create_user_name AS staffName, bbdmi.trace_date AS traceDate, bbdmi.meter_identify, bbdmi.measure_valid_date
        FROM biz_business_device_measure_approval bbdma
        JOIN eqpt_equipment_info eei ON bbdma.sample_id = eei.id
        JOIN biz_business_device_measure_info bbdmi ON bbdma.data_id = bbdmi.id
        WHERE bbdma.id = #{id}
    </select>

    <select id="customTemplateUrl" resultType="java.lang.String">
        SELECT minio_file_name
        FROM  system_template
        WHERE template_name= #{templateName}
        AND   template_type= #{coverModuleName}
        <if test="descn != null and descn!=''">
            AND   template_desc like concat('%',#{descn},'%')
        </if>

    </select>

    <select id="customTemplateByCategory" resultType="java.lang.String">
        SELECT minio_file_name
        FROM  system_template
        WHERE measure_item_id= #{itemCategoryId}
        AND   template_type= #{templateType}
    </select>

    <select id="getMeasureAddress" resultType="java.lang.String">
        SELECT location_name
        FROM  env_location_info
        WHERE id= #{addressId}
    </select>

    <update id="updateCertificate">
        UPDATE biz_business_device_measure_approval
        SET original_record_file=#{originalRecordFile},certificate_file=#{certificateFile}
        WHERE id= #{id}
    </update>


    <select id="certificateRecordsById" resultType="com.casic.missiles.dto.business.certificate.CertificateRecordResponse">
        SELECT bcr.id AS certificationId, bcr.certificate_no AS certificateReportNo, bcr.certificate_name AS certificateReportName,
        bbdmi.trace_date AS calibrationTime, bbdmi.measure_valid_date AS expirationDate, bcr.certificate_file AS certificateReportFile,
        bbdmi.conclusion, bbdmi.restriction_instruction, bbdmi.meter_identify, bbdmi.measure_person_id, brsi.staff_name AS measurePersonName
        FROM biz_business_device_measure_approval bcr
        JOIN biz_business_device_measure_info bbdmi ON bcr.data_id = bbdmi.id
        JOIN (
        select id
        from biz_business_order_info
        where 1=1
        <if test="request.customerId != null and request.customerId !=''">
            AND customer_id = #{request.customerId}
        </if>
        )bo ON bo.id = bcr.order_id
        LEFT JOIN biz_resource_staff_info brsi ON brsi.id = bbdmi.measure_person_id
        WHERE 1=1
        <if test="request.sampleId != null and request.sampleId !=''">
            AND bcr.sample_id = #{request.sampleId}
        </if>
        ORDER BY bcr.create_time DESC
    </select>

    <select id="certificateMonitorsById" resultType="com.casic.missiles.dto.business.certificate.CertificateMonitorDTO">
        SELECT bcr.id AS certificateId, bcr.certificate_no AS certificateReportNo, bcr.certificate_name AS certificateReportName,
        bcr.create_time AS submitTime, bcr.update_time AS finishedTime, bcr.approval_status AS certificateStatus, ms.staff_name AS staffName
        FROM biz_business_device_measure_approval bcr
        JOIN biz_business_device_measure_info bbdmi ON bcr.data_id = bbdmi.id
        LEFT JOIN biz_resource_staff_info ms ON bbdmi.measure_person_id = ms.id
        WHERE 1=1
        <if test="request.sampleId != null and request.sampleId !=''">
            AND bcr.sample_id = #{request.sampleId}
        </if>
        ORDER BY bcr.update_time DESC
    </select>
    <select id="selectApprovedCertificateListPage" resultType="com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval">
        SELECT bbdma.certificate_no,
               bbdma.certificate_name,
               bbdmi.measure_valid_date,
               bbdmi.measure_address,
               bbdmi.measure_person_id,
               bbdmi.sample_id,
               bbdmi.sample_name,
               bbdmi.model,
               bbdmi.manufacture_no,
               bboi.customer_id,
               bboi.customer_name,
               bboi.dept_id,
               bboi.dept_name,
               brsi.staff_name
        FROM biz_business_device_measure_info bbdmi
                 JOIN biz_business_device_measure_item_info bbdmii ON bbdmii.id = bbdmi.item_id
                 JOIN eqpt_equipment_model_info eemi ON eemi.id = bbdmii.device_model_id
                 JOIN biz_business_order_sample_relation bbosr ON (bbosr.order_id = bbdmi.order_id AND bbosr.sample_id = bbdmi.sample_id)
                 JOIN biz_business_order_info bboi ON bbosr.order_id = bboi.id
                 JOIN biz_business_device_measure_equipment bbdme ON bbdmi.id = bbdme.data_id
                 JOIN biz_business_device_measure_approval bbdma ON bbdma.data_id = bbdmi.id
                 JOIN biz_resource_staff_info brsi ON brsi.id = bbdmi.measure_person_id
        WHERE bbdme.equipment_id = #{request.equipmentId} AND bbdma.approval_status = #{request.approvalStatus}
        <if test="request.certificateNo !=null and request.certificateNo !=''">
            AND bbdma.certificate_no like concat('%',#{request.certificateNo},'%')
        </if>
        <if test="request.startDate != null and request.startDate !=''">
            and bbdmi.measure_valid_date &gt;= #{request.startDate}
        </if>
        <if test="request.endDate != null and request.endDate !=''">
            and bbdmi.measure_valid_date &lt;= #{request.endDate}
        </if>
        <if test="request.measureAddress != null and request.measureAddress != ''">
            AND bbdmi.measure_address like concat('%',#{request.measureAddress},'%')
        </if>
        <if test="request.measurePersonName != null and request.measurePersonName !=''">
            AND bbdmi.staff_name like concat('%',#{request.measurePersonName},'%')
        </if>
        <if test="request.sampleName !=null and request.sampleName !=''">
            AND bbdmi.sample_name like concat('%',#{request.sampleName},'%')
        </if>
        <if test="request.model != null and request.model !=''">
            AND bbdmi.model like concat('%',#{request.model},'%')
        </if>
        <if test="request.manufactureNo !=null and request.manufactureNo !=''">
            AND bbdmi.manufacture_no like concat('%',#{request.manufactureNo},'%')
        </if>
        <if test="request.customerName != null and request.customerName !=''">
            AND bboi.customer_name like concat('%',#{request.customerName},'%')
        </if>
        <if test="request.deptName != null and request.deptName !=''">
            AND bboi.dept_name like concat('%',#{requestt.deptName},'%')
        </if>
        order by measure_valid_date DESC
    </select>

    <delete id="deleteMeasureApproval">
        delete
        from  biz_business_device_measure_approval
        where  id=#{id}
    </delete>

    <select id="selectAmountGroupByDevice" resultType="com.casic.missiles.model.workbench.BizWorkbenchCommonDTO">
        SELECT eei.equipment_name AS dimension, COUNT(bbdma.id) AS amount
        FROM biz_business_device_measure_approval bbdma
        JOIN eqpt_equipment_info eei ON bbdma.sample_id = eei.id
        WHERE bbdma.approval_status = 4 AND bbdma.original_record_file IS NOT NULL
        <if test="userId != null and userId !=''">
            AND bbdma.create_user_id = #{userId}
        </if>
        <if test="request != null and request.labCode != null and request.labCode !=''">
            AND bbdma.lab_code = #{request.labCode}
        </if>
        <if test="request != null and request.groupCode != null and request.groupCode !=''">
            AND bbdma.group_code = #{request.groupCode}
        </if>
        <if test="request != null and request.startDate != null and request.startDate !=''">
            and bbdma.create_time &gt;= #{request.startDate}
        </if>
        <if test="request != null and request.endDate != null and request.endDate !=''">
            and bbdma.create_time &lt;= #{request.endDate}
        </if>
        GROUP BY eei.equipment_name
    </select>

    <select id="getAmountGroupByConclusion" resultType="com.casic.missiles.model.workbench.BizWorkbenchCommonDTO">
        SELECT bbdmi.conclusion AS dimension, COUNT(bbdma.id) AS amount
        FROM biz_business_device_measure_approval bbdma
        JOIN biz_business_device_measure_info bbdmi ON bbdma.data_id = bbdmi.id
        WHERE bbdma.approval_status = 4 AND bbdma.original_record_file IS NOT NULL
        <if test="userId != null and userId !=''">
            AND bbdma.create_user_id = #{userId}
        </if>
        <if test="request != null and request.labCode != null and request.labCode !=''">
            AND bbdma.lab_code = #{request.labCode}
        </if>
        <if test="request != null and request.groupCode != null and request.groupCode !=''">
            AND bbdma.group_code = #{request.groupCode}
        </if>
        <if test="request != null and request.startDate != null and request.startDate !=''">
            and bbdma.create_time &gt;= #{request.startDate}
        </if>
        <if test="request != null and request.endDate != null and request.endDate !=''">
            and bbdma.create_time &lt;= #{request.endDate}
        </if>
        GROUP BY bbdmi.conclusion
    </select>
</mapper>