Bonus-Cloud-Material/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialBackInfoMapper.xml

947 lines
37 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.clz.mapper.MaterialBackInfoMapper">
<insert id="insertBackApplyInfo" useGeneratedKeys="true" keyProperty="id">
insert into clz_back_apply_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null">code,</if>
<if test="taskId != null">task_id,</if>
<if test="backPerson != null">back_person,</if>
<if test="phone != null">phone,</if>
<if test="directAuditBy != null">direct_audit_by,</if>
<if test="directAuditTime != null">direct_audit_time,</if>
<if test="directAuditRemark != null">direct_audit_remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="companyId != null">company_id,</if>
<if test="backTime != null">back_time,</if>
<if test="status != null">status,</if>
<if test="directId != null">direct_id,</if>
<if test="backStyle != null and backStyle != ''">back_style,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null">#{code},</if>
<if test="taskId != null">#{taskId},</if>
<if test="backPerson != null">#{backPerson},</if>
<if test="phone != null">#{phone},</if>
<if test="directAuditBy != null">#{directAuditBy},</if>
<if test="directAuditTime != null">#{directAuditTime},</if>
<if test="directAuditRemark != null">#{directAuditRemark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="companyId != null">#{companyId},</if>
<if test="backTime != null">#{backTime},</if>
<if test="status != null">#{status},</if>
<if test="directId != null">#{directId},</if>
<if test="backStyle != null and backStyle != ''">#{backStyle},</if>
</trim>
</insert>
<insert id="insertBackApplyDetails" useGeneratedKeys="true" keyProperty="id">
insert into clz_back_apply_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null">code,</if>
<if test="parentId != null">parent_id,</if>
<if test="typeId != null">type_id,</if>
<if test="preNum != null">pre_num,</if>
<if test="auditNum != null">audit_num,</if>
<if test="badNum != null">bad_num,</if>
<if test="goodNum != null">good_num,</if>
<if test="num != null">use_num,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="apDetection != null and apDetection != ''">ap_detection,</if>
<if test="remark != null">remark,</if>
<if test="companyId != null">company_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null">#{code},</if>
<if test="parentId != null">#{parentId},</if>
<if test="typeId != null">#{typeId},</if>
<if test="preNum != null">#{preNum},</if>
<if test="auditNum != null">#{auditNum},</if>
<if test="badNum != null">#{badNum},</if>
<if test="goodNum != null">#{goodNum},</if>
<if test="num != null">#{num},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="apDetection != null and apDetection != ''">#{apDetection},</if>
<if test="remark != null">#{remark},</if>
<if test="companyId != null">#{companyId},</if>
</trim>
</insert>
<insert id="insertCheckDetails">
insert into clz_back_check_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="parentId != null">parent_id,</if>
<if test="typeId != null">type_id,</if>
<if test="preNum != null">back_num,</if>
<if test="maId != null">ma_id,</if>
<if test="status != null">status,</if>
<if test="backStatus != null">back_status,</if>
<if test="isFinished != null">is_finished,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="remark != null">remark,</if>
<if test="apDetection != null and apDetection != ''">ap_detection,</if>
<if test="badNum != null">bad_num,</if>
<if test="goodNum != null">good_num,</if>
<if test="companyId != null">company_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="parentId != null">#{parentId},</if>
<if test="typeId != null">#{typeId},</if>
<if test="preNum != null">#{preNum},</if>
<if test="maId != null">#{maId},</if>
<if test="status != null">#{status},</if>
<if test="backStatus != null">#{backStatus},</if>
<if test="isFinished != null">#{isFinished},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="remark != null">#{remark},</if>
<if test="apDetection != null and apDetection != ''">#{apDetection},</if>
<if test="badNum != null">#{badNum},</if>
<if test="goodNum != null">#{goodNum},</if>
<if test="companyId != null">#{companyId},</if>
</trim>
</insert>
<update id="updateBack">
update clz_back_apply_info set status = #{taskStatus} where id = #{id}
</update>
<update id="updateBackDetails">
update clz_back_apply_details set status = #{taskStatus} where parent_id = #{id}
</update>
<update id="updateStlInfo">
update clz_slt_agreement_info
set end_time = now(),
update_time = now(),
back_id = #{record.id},
status = '1'
where id = #{info.id}
</update>
<update id="updateStlInfoTwo">
update clz_slt_agreement_info
set num = #{backNum},
end_time = now(),
update_time = now(),
back_id = #{record.id},
status = '1'
where id = #{info.id}
</update>
<update id="updateBackApplyInfo">
update clz_back_apply_info
<trim prefix="SET" suffixOverrides=",">
<if test="code != null">code = #{code},</if>
<if test="taskId != null">task_id = #{taskId},</if>
<if test="backPerson != null">back_person = #{backPerson},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="directAuditBy != null">direct_audit_by = #{directAuditBy},</if>
<if test="directAuditTime != null">direct_audit_time = #{directAuditTime},</if>
<if test="directAuditRemark != null">direct_audit_remark = #{directAuditRemark},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="companyId != null">company_id = #{companyId},</if>
<if test="backTime != null">back_time = #{backTime},</if>
<if test="status != null">`status` = #{status},</if>
<if test="directId != null">direct_id = #{directId},</if>
<if test="printStatus != null">print_status = #{printStatus},</if>
</trim>
where id = #{id}
</update>
<update id="updateSignById">
update clz_back_apply_info
<trim prefix="SET" suffixOverrides=",">
<if test="backSignUrl != null">back_sign_url = #{backSignUrl},</if>
<if test="backSignType != null">back_sign_type = #{backSignType},</if>
</trim>
where id = #{id}
</update>
<update id="updateCheckDetails">
update back_check_details set is_finished = '1', update_time = now()
where parent_id = #{id} and type_id = #{typeId} and (is_finished is null or is_finished != 1)
<if test="maId != null">
and ma_id = #{maId}
</if>
</update>
<delete id="deleteBackApplyDetails">
delete from clz_back_apply_details where parent_id = #{id}
</delete>
<delete id="deleteCheckDetails">
delete from clz_back_check_details where parent_id = #{id}
</delete>
<delete id="deleteBackApply">
delete from clz_back_apply_info where id = #{id}
</delete>
<insert id="insStlInfoTwo">
insert into clz_slt_agreement_info (agreement_id,type_id,ma_id,num,start_time,status,lease_id,lease_price,buy_price,is_slt,company_id,lease_type,create_time)
values (#{info.agreementId},#{info.typeId},#{info.maId},#{many},#{info.startTime},#{info.status},#{info.leaseId},#{info.leasePrice},#{info.buyPrice},'0',#{info.companyId},#{info.leaseType},now());
</insert>
<select id="selectBackApplyInfoList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
sd.dept_name AS impUnitName,
bp.pro_center AS departName,
bai.id as id,
bai.task_id as taskId,
bai.`code` as code,
bai.back_person as backPerson,
bai.phone as phone,
bp.pro_id as proId,
bai.remark as remark,
bp.pro_name as proName,
bt.unit_id as teamId,
bt.unit_name as teamName,
bai.back_time as backTime,
tt.task_status as taskStatus,
bai.create_by as createBy,
bai.create_time as createTime,
bai.back_sign_url as backSignUrl,
bai.back_sign_type as backSignType,
GROUP_CONCAT(DISTINCT mt2.type_id) as typeId,
GROUP_CONCAT(DISTINCT mt2.type_name) AS typeName,
bai.`status` AS status,
bai.print_status as printStatus,
SUM(IFNULL(bad.pre_num, 0)) AS backNum,
bp.external_id AS externalId,
bp.imp_unit AS impUnit,
bt.bzz_idcard AS idCard,
bai.direct_id as directId,
CASE
WHEN bai.direct_id is null THEN
'0'
ELSE
'1'
END isZz,
CASE WHEN bai.back_sign_url IS NOT NULL
THEN 0
ELSE 1
END as isElectronicSign
FROM
clz_back_apply_info bai
LEFT JOIN clz_back_apply_details bad on bad.parent_id = bai.id
LEFT JOIN tm_task tt on tt.task_id = bai.task_id
LEFT JOIN tm_task_agreement tta on tta.task_id = tt.task_id
LEFT JOIN clz_bm_agreement_info bagi on bagi.agreement_id = tta.agreement_id
AND bagi.`status` = '1'
LEFT JOIN bm_project bp on bp.pro_id = bagi.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bt on bt.unit_id = bagi.unit_id
AND bt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt1.type_id = bad.type_id AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt1.parent_id AND mt2.del_flag = '0'
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
WHERE
1=1
<if test="impUnitName != null and impUnitName != ''">
and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%')
</if>
<if test="departName != null and departName != ''">
and bp.pro_center LIKE CONCAT('%', #{departName}, '%')
</if>
<if test="proName != null and proName != ''">
and bp.pro_name LIKE CONCAT('%', #{proName}, '%')
</if>
<if test="teamName != null and teamName != ''">
and bt.unit_name LIKE CONCAT('%', #{teamName}, '%')
</if>
<if test="proName != null and proName != ''">
and bp.pro_name LIKE CONCAT('%', #{proName}, '%')
</if>
<if test="keyWord != null and keyWord != ''">
and (
bai.`code` like concat('%', #{keyWord}, '%') or
bai.back_person like concat('%', #{keyWord}, '%') or
bai.create_by like concat('%', #{keyWord}, '%') or
bp.pro_name like concat('%', #{keyWord}, '%') or
bai.phone like concat('%', #{keyWord}, '%')
)
</if>
<if test="teamId != null and teamId != ''">
and bt.id = #{teamId}
</if>
<if test="proId != null and proId != ''">
and bp.pro_id = #{proId}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[and DATE_FORMAT( bai.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
</if>
<if test="appTaskStatus != null and appTaskStatus == 0">
and tt.task_status = #{appTaskStatus}
</if>
<if test="appTaskStatus != null and appTaskStatus == 1">
and (tt.task_status = 1 or tt.task_status = 2)
</if>
<if test="status != null">
and tt.task_status = #{status}
</if>
<if test="idCard != null and idCard != ''">
and bt.bzz_idcard = #{idCard}
</if>
<if test="projectIdList != null and projectIdList.size() > 0">
and bp.external_id in
<foreach item="item" collection="projectIdList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY bai.`code`
ORDER BY bai.create_time desc
</select>
<select id="getTotalList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
sd.dept_name AS impUnitName,
bai.id as id,
bai.task_id as taskId,
bai.`code` as code,
bai.back_person as backPerson,
bai.phone as phone,
bp.pro_id as proId,
bai.remark as remark,
bp.pro_name as proName,
bu.unit_id as unitId,
bu.unit_name as unitName,
tt.task_status as taskStatus,
bai.create_by as createBy,
bai.create_time as backTime,
bai.back_sign_url as backSignUrl,
bai.back_sign_type as backSignType,
GROUP_CONCAT(DISTINCT mt2.type_id) as typeId,
GROUP_CONCAT(DISTINCT mt2.type_name) AS typeName,
bai.`status` AS status,
bai.print_status as printStatus,
bp.external_id AS externalId,
bp.imp_unit AS impUnit,
bai.direct_id as directId,
CASE
WHEN bai.direct_id is null THEN
'0'
ELSE
'1'
END isZz,
bu.bzz_idcard AS idCard
FROM
(select * from back_apply_info
<where>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
and create_time between concat(#{startTime},' 00:00:00') and concat(#{endTime},' 23:59:59')
</if>
</where>
) bai
LEFT JOIN back_check_details bad on bad.parent_id = bai.id
LEFT JOIN tm_task tt on tt.task_id = bai.task_id
LEFT JOIN tm_task_agreement tta on tta.task_id = tt.task_id
LEFT JOIN bm_agreement_info bagi on bagi.agreement_id = tta.agreement_id
AND bagi.`status` = '1'
LEFT JOIN bm_project bp on bp.pro_id = bagi.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bu on bu.unit_id = bagi.unit_id
AND bu.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt1.type_id = bad.type_id AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt1.parent_id AND mt2.del_flag = '0'
left join sys_dept sd on sd.dept_id = bp.imp_unit
WHERE
1=1
and bp.pro_id not in (3414,1192,3321,3595)
<if test="impUnitName != null and impUnitName != ''">
and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%')
</if>
<if test="backPerson != null and backPerson != ''">
and bai.back_person LIKE CONCAT('%', #{backPerson}, '%')
</if>
<if test="code != null and code != ''">
and bai.code LIKE CONCAT('%', #{code}, '%')
</if>
<if test="unitName != null and unitName != ''">
and bu.unit_name LIKE CONCAT('%', #{unitName}, '%')
</if>
<if test="proName != null and proName != ''">
and bp.pro_name LIKE CONCAT('%', #{proName}, '%')
</if>
<if test="unitId != null">
and bu.unit_id = #{unitId}
</if>
<if test="proId != null">
and bp.pro_id = #{proId}
</if>
<!-- <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">-->
<!-- <![CDATA[and DATE_FORMAT( bai.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>-->
<!-- </if>-->
<if test="appTaskStatus != null and appTaskStatus == 0">
and tt.task_status = #{appTaskStatus}
</if>
<if test="appTaskStatus != null and appTaskStatus == 1">
and (tt.task_status = 1 or tt.task_status = 2)
</if>
<if test="status != null">
and tt.task_status = #{status}
</if>
<if test="projectIdList != null and projectIdList.size() > 0">
and bp.external_id in
<foreach item="item" collection="projectIdList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY bai.`code`
ORDER BY bai.create_time desc
</select>
<select id="getDetailsList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
mt.type_name AS modelCode,
mt1.type_name AS typeName,
mt2.type_name AS typeCode,
mt.manage_type AS manageType,
sum(bcd.back_num) AS backNum,
mt.unit_name AS unitNames,
bcd.remark AS remark
FROM
back_check_details bcd
LEFT JOIN back_apply_info bai ON bcd.parent_id = bai.id
LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id and mt.del_flag = 0
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = 0
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id and mt2.del_flag = 0
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id and mt3.del_flag = 0
WHERE
bcd.parent_id = #{parentId}
group by bcd.type_id
</select>
<select id="selectBackApplyInfoById" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
bai.id AS id,
bai.CODE AS CODE,
bai.task_id AS taskId,
bai.back_person AS backPerson,
bai.phone AS phone,
bai.create_by AS createBy,
bai.create_time AS createTime,
bai.update_by AS updateBy,
bai.update_time AS updateTime,
bai.remark AS remark,
bai.STATUS AS STATUS,
bai.print_status AS printStatus,
ba.agreement_id AS agreementId,
bt.unit_id AS teamId,
bt.unit_name AS teamName,
bp.pro_id AS proId,
bp.pro_name AS proName,
bai.direct_audit_by AS directAuditBy,
bai.back_sign_url AS backSignUrl,
bai.back_sign_type AS backSignType,
bp.external_id AS externalId
FROM
clz_back_apply_info bai
LEFT JOIN tm_task_agreement tta ON bai.task_id = tta.task_id
LEFT JOIN clz_bm_agreement_info ba ON ba.agreement_id = tta.agreement_id
AND ba.`status` = 1
LEFT JOIN bm_unit bt ON bt.unit_id = ba.unit_id
AND bt.del_flag = '0'
LEFT JOIN bm_project bp ON ba.project_id = bp.pro_id
AND bp.del_flag = '0'
WHERE
bai.id = #{id}
</select>
<select id="selectBackApplyDetailsListByTaskId" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyDetails">
SELECT
ba.id AS id,
ba.CODE AS CODE,
ba.parent_id AS parentId,
ba.type_id AS typeId,
mt2.type_name AS materialType,
mt.type_name AS typeName,
mt1.type_name AS materialName,
mt.unit_name AS unitName,
mt.unit_value AS unitValue,
mt.manage_type AS manageType,
ba.pre_num AS preNum,
ba.use_num AS num,
ba.STATUS AS STATUS,
ba.create_by AS createBy,
ba.create_time AS createTime,
ba.update_by AS updateBy,
ba.update_time AS updateTime,
ba.remark AS remark,
ba.ap_detection AS apDetection,
ba.bad_num AS badNum,
ba.good_num AS goodNum,
ba.status AS status
FROM
clz_back_apply_details ba
LEFT JOIN ma_type mt ON mt.type_id = ba.type_id and mt.del_flag = 0
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = 0
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id and mt2.del_flag = 0
WHERE ba.parent_id = #{id}
<if test="keyWord != null and keyWord != ''">
and (
mt1.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%') or
mt2.type_name like concat('%', #{keyWord}, '%')
)
</if>
</select>
<select id="selectByCode" resultType="com.bonus.material.back.domain.vo.MaCodeVo">
SELECT
bcd.ma_id AS maId,
mm.ma_code as maCode,
bcd.type_id AS typeId,
mt2.type_name AS materialType,
mt.type_name AS typeName,
mt1.type_name AS materialName,
bcd.ap_detection AS apDetection,
sd.dict_label AS maStatusName,
bcd.bad_num AS badNum,
bcd.good_num AS goodNum,
mm.ma_status AS maStatus
FROM
clz_back_check_details bcd
left join ma_machine mm on bcd.ma_id = mm.ma_id
left join ma_type mt ON mt.type_id = mm.type_id and mt.del_flag = 0
left join ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = 0
left join ma_type mt2 ON mt1.parent_id = mt2.type_id and mt2.del_flag = 0
LEFT JOIN sys_dict_data sd ON mm.ma_status = sd.dict_value
and sd.dict_type = 'ma_machine_status'
where bcd.parent_id = #{id}
</select>
<select id="selectDto" resultType="com.bonus.material.back.domain.vo.MaCodeVo">
SELECT
bcd.ma_id AS maId,
mm.ma_code as maCode,
bcd.type_id AS typeId,
mt2.type_name AS materialType,
mt.type_name AS materialName,
mt1.type_name AS typeName,
bcd.ap_detection AS apDetection,
mm.ma_status AS maStatus,
bcd.bad_num AS badNum,
bcd.good_num AS goodNum
FROM
clz_back_check_details bcd
left join ma_machine mm on bcd.ma_id = mm.ma_id
left join ma_type mt ON mt.type_id = mm.type_id and mt.del_flag = 0
left join ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = 0
left join ma_type mt2 ON mt1.parent_id = mt2.type_id and mt2.del_flag = 0
where bcd.parent_id = #{id}
<if test="maId != null">
and bcd.ma_id = #{maId}
</if>
</select>
<select id="getDetailsById" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyDetails">
SELECT
mt1.type_name as typeName,
mt.type_name as typeModel,
bcd.type_id as typeId,
bcd.back_num as preNum,
bcd.ma_id as maId,
mm.ma_code as maCode,
bcd.parent_id as parentId,
bcd.create_by as createBy,
bcd.create_time as createTime,
bai.task_id as taskId,
bcd.ap_detection as apDetection
FROM
clz_back_check_details bcd
LEFT JOIN ma_type mt ON bcd.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN ma_machine mm ON bcd.ma_id = mm.ma_id
LEFT JOIN clz_back_apply_info bai ON bcd.parent_id = bai.id
WHERE
bcd.parent_id = #{parentId} and bcd.type_id = #{typeId}
</select>
<select id="selectBackDetails" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
bai.id AS id,
tta.agreement_id AS agreementId,
bai.task_id AS taskId,
bcd.type_id AS typeId,
SUM(bcd.back_num) AS backNum,
bcd.parent_id AS parentId,
bcd.create_by AS createBy,
bcd.ma_id AS maId,
mm.ma_code AS maCode
FROM
clz_back_check_details bcd
LEFT JOIN clz_back_apply_info bai ON bai.id = bcd.parent_id
LEFT JOIN tm_task_agreement tta ON tta.task_id = bai.task_id
LEFT JOIN ma_machine mm ON bcd.ma_id = mm.ma_id
WHERE
bcd.parent_id = #{id}
<if test="typeId != '' and typeId != null">
and bcd.type_id = #{typeId}
</if>
GROUP By bcd.type_id,bcd.ma_id
</select>
<select id="getStlInfo" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
SELECT
id AS id,
agreement_id AS agreementId,
type_id AS typeId,
ma_id AS maId,
num AS backNum,
start_time AS startTime,
end_time AS endTime,
status AS status,
lease_id AS leaseId,
lease_type AS leaseType,
back_id AS backId,
lease_price AS leasePrice,
buy_price AS buyPrice,
company_id AS companyId,
lease_style AS leaseStyle
FROM
clz_slt_agreement_info
WHERE
status = 0
<if test="agreementIds != null">
AND agreement_id in
<foreach item="item" index="index" collection="agreementIds" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND type_id = #{typeId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
order by start_time asc
</select>
<select id="getBackInfoDetails" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyTotalInfo">
select
sd.dept_name AS impUnitName,
bp.pro_center AS departName,
bcd.id AS id,
bcd.parent_id AS parentId,
mt.type_id AS typeId,
mt2.type_name AS materialName,
mt.type_name AS typeName,
mt.manage_type AS manageType,
mt.unit_name AS unitName,
SUM( bcd.back_num ) AS backNum,
bcd.create_time AS backTime,
bt.unit_name AS teamName,
bp.pro_id AS proId,
bp.pro_name AS proName,
bai.back_person AS backPerson,
bai.create_by AS createBy,
bai.`code` AS code,
bp.external_id AS externalId,
bp.imp_unit AS impUnit,
bt.bzz_idcard AS idCard,
bz.ssfbdw AS subUnitName
FROM
clz_back_check_details bcd
LEFT JOIN ma_type mt ON bcd.type_id = mt.type_id
AND mt.`level` = '4' AND mt.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
AND mt2.`level` = '3' AND mt2.del_flag = '0'
LEFT JOIN clz_back_apply_info bai ON bcd.parent_id = bai.id
LEFT JOIN tm_task tt ON tt.task_id = bai.task_id
LEFT JOIN tm_task_agreement tta ON tta.task_id = tt.task_id
LEFT JOIN clz_bm_agreement_info bagi ON bagi.agreement_id = tta.agreement_id
AND bagi.`status` = '1'
LEFT JOIN bm_project bp ON bp.pro_id = bagi.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bt ON bt.unit_id = bagi.unit_id
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
AND bt.del_flag = '0'
LEFT JOIN (select project_id, bzmc, ssfbdw from `micro-tool`.bzgl_bz where bz_status = '3'
GROUP BY project_id, bzmc) bz ON bz.bzmc = bt.unit_name
WHERE
bcd.is_finished = 1
<if test="impUnitName != null and impUnitName != ''">
and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%')
</if>
<if test="departName != null and departName != ''">
and bp.pro_center LIKE CONCAT('%', #{departName}, '%')
</if>
<if test="proName != null and proName != ''">
and bp.pro_name LIKE CONCAT('%', #{proName}, '%')
</if>
<if test="teamName != null and teamName != ''">
and bt.unit_name LIKE CONCAT('%', #{teamName}, '%')
</if>
<if test="subUnitName != null and subUnitName != ''">
and bz.ssfbdw = #{subUnitName}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[and DATE_FORMAT( bcd.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
</if>
<if test="projectIdList != null and projectIdList.size() > 0">
and bp.external_id in
<foreach item="item" collection="projectIdList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="keyWord != null and keyWord != ''">
and (
mt2.type_name like concat('%', #{keyWord}, '%') or
bp.pro_name like concat('%', #{keyWord}, '%') or
bai.back_person like concat('%', #{keyWord}, '%') or
bai.create_by like concat('%', #{keyWord}, '%') or
bai.`code` like concat('%', #{keyWord}, '%')
)
</if>
GROUP BY
mt.type_id,
bt.unit_id,
bp.pro_id,
bai.`code`
ORDER BY
bcd.create_time DESC
</select>
<select id="getSecondBackInfo" resultType="com.bonus.material.clz.domain.vo.back.MaterialBackMaCodeVo">
SELECT
mt.type_id as typeId,
mt1.type_name as materialName,
mt.type_name as typeName,
mm.ma_id as maId,
mm.ma_code as maCode,
bai.back_person as backPerson,
bcd.create_time as backTime
FROM
clz_back_check_details bcd
LEFT JOIN ma_machine mm ON bcd.ma_id = mm.ma_id
LEFT JOIN ma_type mt ON mm.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN clz_back_apply_info bai ON bcd.parent_id = bai.id
WHERE
bcd.parent_id = #{parentId}
and mt.type_id = #{typeId}
<if test="keyWord != null and keyWord != ''">
AND (
mt1.type_name LIKE CONCAT(CONCAT('%', #{keyWord}), '%')
OR mt.type_name LIKE CONCAT(CONCAT('%', #{keyWord}), '%')
OR mm.ma_code LIKE CONCAT(CONCAT('%', #{keyWord}), '%')
OR bai.back_person LIKE CONCAT(CONCAT('%', #{keyWord}), '%')
)
</if>
ORDER BY
bcd.create_time DESC
</select>
<select id="getUseTypeTreeL4" resultType="com.bonus.common.biz.domain.TypeTreeNode">
SELECT
mt.type_id as typeId,
mt1.type_name as materialName,
mt.type_name as typeName,
mt.parent_id as parentId,
mt.unit_name as unitName,
mt.unit_value as unitValue,
mt.manage_type as manageType,
SUM(sai.num) AS num,
mt.LEVEL as level,
clai.lease_style as leaseStyle
FROM
ma_type mt
LEFT JOIN clz_slt_agreement_info sai ON mt.type_id = sai.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = '0'
LEFT JOIN clz_lease_apply_info clai ON sai.lease_id = clai.id
WHERE
sai.STATUS = '0'
<if test="agreementIds != null ">
and sai.agreement_id in
<foreach item="item" collection="agreementIds" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY
mt.type_id
</select>
<select id="getMachineById" resultType="com.bonus.material.clz.domain.vo.MaterialMaCodeVo">
SELECT
mm.ma_id AS maId,
mm.ma_code AS maCode,
'在用' AS maStatusName,
mt1.type_name AS materialName,
mt.type_id AS typeId,
mt.type_name AS typeName,
mt2.type_name AS materialType
FROM
clz_lease_out_details lod
LEFT JOIN ma_machine mm ON lod.ma_id = mm.ma_id
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id
AND mt2.del_flag = '0'
LEFT JOIN clz_slt_agreement_info sai on lod.type_id = sai.type_id
and sai.ma_id = lod.ma_id
LEFT JOIN clz_bm_agreement_info ba ON sai.agreement_id = ba.agreement_id
WHERE
sai.status = '0'
AND mt.type_id = #{typeId}
AND ba.unit_id = #{teamId}
AND ba.project_id = #{proId}
<if test="maCode != null and maCode != ''">
AND mm.ma_code LIKE CONCAT(CONCAT('%', #{maCode}), '%')
</if>
GROUP BY mm.ma_id
</select>
<select id="selectAgreementId" resultType="java.lang.Long">
SELECT
tt.agreement_id AS agreementId
FROM
clz_back_apply_info ba
LEFT JOIN tm_task_agreement tt ON ba.task_id = tt.task_id
WHERE
ba.id = #{id}
</select>
<select id="selectByAgreementIdAndTypeIdAndMaId" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
agreement_id AS agreementId,
type_id AS typeId,
ma_id AS maId
FROM
clz_slt_agreement_info
WHERE
status = '0'
AND agreement_id = #{agreementId}
AND type_id = #{typeId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
</select>
<select id="selectByAgreementIdAndTypeId" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
SELECT
type_id AS typeId,
ma_id AS maId
FROM
clz_slt_agreement_info
WHERE
status = '0'
<if test="agreementIds != null ">
and agreement_id in
<foreach item="item" collection="agreementIds" open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND type_id = #{typeId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
</select>
<select id="getMachine" resultType="com.bonus.material.back.domain.vo.MaCodeVo">
SELECT
mm.ma_id AS maId,
mm.ma_code AS maCode,
'在用' AS maStatusName,
mt1.type_name AS typeName,
mm.type_id AS typeId,
mt.type_name AS materialName,
mt2.type_name AS materialType,
ba.unit_id AS teamId,
bu.unit_name AS teamName,
ba.project_id AS proId,
bp.pro_name AS proName,
ba.agreement_id AS agreementId
FROM
clz_lease_out_details lod
LEFT JOIN clz_slt_agreement_info cs ON lod.ma_id = cs.ma_id
AND lod.type_id = cs.type_id
LEFT JOIN ma_machine mm ON lod.ma_id = mm.ma_id
LEFT JOIN ma_type mt ON mm.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id
AND mt2.del_flag = '0'
LEFT JOIN clz_lease_apply_info lai ON lod.parent_id = lai.id
LEFT JOIN clz_bm_agreement_info ba ON cs.agreement_id = ba.agreement_id
LEFT JOIN bm_project bp ON bp.pro_id = ba.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bu ON bu.unit_id = ba.unit_id
AND bu.del_flag = '0'
WHERE
cs.`status` = '0'
AND ba.unit_id = #{teamId}
AND ba.project_id = #{proId}
<if test="maCode != null and maCode != ''">
AND mm.ma_code LIKE CONCAT(CONCAT('%', #{maCode}), '%')
</if>
<if test="qrCode != null and qrCode != ''">
AND mm.qr_code = #{qrCode}
</if>
</select>
<select id="getAgreementInfo" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
select
csa.unit_id AS teamId,
csa.project_id AS proId
from
tm_task_agreement tta
LEFT JOIN clz_bm_agreement_info csa ON tta.agreement_id = csa.agreement_id
WHERE tta.task_id = #{taskId}
</select>
<select id="getAgreementList" resultType="java.lang.String">
select csa.agreement_id AS agreementId
from clz_bm_agreement_info csa
where csa.unit_id = #{teamId}
and csa.project_id = #{proId}
</select>
<select id="getLeaseAgreement" resultType="java.lang.String">
select csa.agreement_id AS agreementId
from clz_bm_agreement_info csa
where csa.unit_id = #{teamId}
and csa.project_id = #{proId}
Limit 1
</select>
<select id="getLeaseOutSignList" resultType="com.bonus.common.biz.domain.lease.LeaseOutSign">
SELECT
su.sign_type as outSignType,
su.sign_url as outSignUrl
FROM
data_center.dx_fb_son dfs
LEFT JOIN `sbd_audit`.sg_project_post_personnel sp ON dfs.project_dept_id = sp.depart_id
LEFT JOIN sys_user su ON sp.cno = su.user_name
WHERE
su.sign_type is not null
AND su.sign_url is not null
AND sp.post_id = '3de0eb390f3611efa1940242ac130004'
AND dfs.id = #{externalId}
AND su.nick_name = #{createBy}
</select>
</mapper>