devicesmgt/sgzb-modules/sgzb-base/src/main/resources/mapper/app/LeaseOutDetailsMapper.xml

296 lines
10 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.sgzb.app.mapper.LeaseOutDetailsMapper">
<select id="selectListByParentId" resultType="com.bonus.sgzb.base.api.domain.LeaseOutDetails">
SELECT
lod.id,lod.parent_id,lod.type_id,lod.ma_id,lod.out_num,lod.out_type,lod.create_by,
lod.create_time,lod.update_by,lod.update_time,lod.remark,lod.company_id
FROM
lease_out_details lod
<where>
<if test="_parameter != null and _parameter != '' ">
lod.parent_id = #{parentId}
</if>
</where>
</select>
<select id="getTaskId" resultType="java.lang.String">
select task_id
from lease_apply_info
where id = #{parentId}
</select>
<select id="getMachineStatus" resultType="java.lang.String">
select ma_status
from ma_machine
where ma_id = #{maId}
</select>
<select id="leaseOutRecord" resultType="com.bonus.sgzb.app.domain.LeaseApplyDetails">
SELECT
lod.id,
bui.unit_name as unitName,
bpl.lot_name as proName,
mt2.type_name as typeName,
mt.type_name as typeModelName,
lod.create_time as createTime,
lod.out_num as num
FROM
lease_out_details lod
LEFT JOIN lease_apply_info lai on lai.id=lod.parent_id
LEFT JOIN tm_task_agreement tta on tta.task_id=lai.task_id
LEFT JOIN bm_agreement_info bai on bai.agreement_id=tta.agreement_id
LEFT JOIN bm_project_lot bpl on bpl.lot_id=bai.project_id
LEFT JOIN bm_unit_info bui on bui.unit_id=bai.unit_id
LEFT JOIN ma_type mt on mt.type_id=lod.type_id
LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id
where 1=1
<if test="keyWord != null and keyWord != ''">
and (bui.unit_name like concat('%', #{keyWord}, '%') or
bpl.lot_name like concat('%', #{keyWord}, '%') or
mt2.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%')
)
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != '' " >
and (lod.create_time like concat('%', #{startTime}, '%') or
lod.create_time like concat('%', #{endTime}, '%')
)
</if>
ORDER BY lod.create_time DESC
</select>
<select id="proUseRecord" resultType="com.bonus.sgzb.app.domain.LeaseApplyDetails">
SELECT
t1.unitName,
t1.lotName as proName,
t1.typeName,
t1.typeCode as typeModelName,
t1.outNum as alNum,
IFNULL(t1.outNum,0) - IFNULL(t2.backNum,0) as num
FROM
(SELECT
bui.unit_name as unitName,
bpl.lot_name as lotName,
mt2.type_name as typeName,
mt.type_name as typeCode,
SUM(lod.out_num) as outNum,
bai.unit_id,
bai.project_id,
lod.type_id
FROM
lease_out_details lod
LEFT JOIN lease_apply_info lai on lai.id=lod.parent_id
LEFT JOIN tm_task_agreement tta on tta.task_id=lai.task_id
LEFT JOIN bm_agreement_info bai on bai.agreement_id=tta.agreement_id
LEFT JOIN bm_project_lot bpl on bpl.lot_id=bai.project_id
LEFT JOIN bm_unit_info bui on bui.unit_id=bai.unit_id
LEFT JOIN ma_type mt on mt.type_id=lod.type_id
LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id
where 1=1
<if test="keyWord != null and keyWord != ''">
and (bui.unit_name like concat('%', #{keyWord}, '%') or
bpl.lot_name like concat('%', #{keyWord}, '%') or
mt2.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%')
)
</if>
GROUP BY bai.unit_id,bai.project_id,lod.type_id) t1
LEFT JOIN
(SELECT
bui.unit_name as unitName,
bpl.lot_name as lotName,
mt2.type_name as typeName,
mt.type_name as typeCode,
SUM(bcd.back_num) as backNum,
bai.unit_id,
bai.project_id,
bcd.type_id
FROM
back_check_details bcd
LEFT JOIN back_apply_info bapi on bapi.id=bcd.parent_id
LEFT JOIN tm_task_agreement tta on tta.task_id=bapi.task_id
LEFT JOIN bm_agreement_info bai on bai.agreement_id=tta.agreement_id
LEFT JOIN bm_project_lot bpl on bpl.lot_id=bai.project_id
LEFT JOIN bm_unit_info bui on bui.unit_id=bai.unit_id
LEFT JOIN ma_type mt on mt.type_id=bcd.type_id
LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id
where 1=1
<if test="keyWord != null and keyWord != ''">
and (bui.unit_name like concat('%', #{keyWord}, '%') or
bpl.lot_name like concat('%', #{keyWord}, '%') or
mt2.type_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%')
)
</if>
GROUP BY bai.unit_id,bai.project_id,bcd.type_id) t2
ON
t1.unit_id = t2.unit_id
AND t1.project_id = t2.project_id
AND t1.type_id = t2.type_id
</select>
<update id="updateLeaseApplyDetailsOutNum">
UPDATE
lease_apply_details
SET
al_num = IF(al_num IS NULL, #{record.outNum}, al_num + #{record.outNum}),
<if test="record.updateBy != null and record.updateBy!= '' ">
update_by = #{record.updateBy},
</if>
update_time = now(),
status = '2'
WHERE
parennt_id = #{record.parentId} and type_id = #{record.typeId}
</update>
<insert id="insert">
insert into lease_out_details(parent_id,type_id,ma_id,out_num,out_type,create_by,create_time,update_by,update_time,remark,company_id)
values(#{parentId},#{typeId},#{maId},#{outNum},#{outType},#{createBy},now(),#{updateBy},now(),#{remark},#{companyId})
</insert>
<insert id="insertSelective">
insert into lease_out_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="parentId!= null">
parent_id,
</if>
<if test="typeId!= null">
type_id,
</if>
<if test="maId!= null">
ma_id,
</if>
<if test="outNum!= null">
out_num,
</if>
<if test="outType!= null">
out_type,
</if>
<if test="createBy!= null">
create_by,
</if>
<if test="updateBy!= null">
update_by,
</if>
<if test="remark!= null">
remark,
</if>
<if test="companyId!= null">
company_id,
</if>
<if test="carCode!= null">
car_code,
</if>
create_time,
update_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="parentId!= null">
#{parentId},
</if>
<if test="typeId!= null">
#{typeId},
</if>
<if test="maId!= null">
#{maId},
</if>
<if test="outNum!= null">
#{outNum},
</if>
<if test="outType!= null">
#{outType},
</if>
<if test="createBy!= null">
#{createBy},
</if>
<if test="updateBy!= null">
#{updateBy},
</if>
<if test="remark!= null">
#{remark},
</if>
<if test="companyId!= null">
#{companyId},
</if>
<if test="carCode!= null">
#{carCode},
</if>
NOW(),
NOW()
</trim>
</insert>
<update id="updateMaTypeStockNum">
UPDATE
ma_type
SET
num = num - #{record.outNum} ,update_time = NOW()
WHERE
type_id = #{record.typeId}
</update>
<update id="updateMaMachineStatus">
UPDATE
ma_machine
SET
ma_status = '16' , create_time = NOW()
<where>
type_id = #{record.typeId}
<if test="record.maId != null and record.maId != ''">
and ma_id = #{record.maId}
</if>
</where>
</update>
<update id="updateTaskStatus">
update tm_task
set task_status = #{status}
where task_id = #{taskId}
</update>
<insert id="insertAgreementInfo">
insert into tm_task_agreement
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="record.parentId != null">
task_id,
</if>
<if test="record.agreementId!= null">
agreement_id,
</if>
<if test="record.createBy!= null">
create_by,
</if>
<if test="record.updateBy!= null">
update_by,
</if>
<if test="record.remark!= null">
remark,
</if>
<if test="record.companyId!= null">
company_id,
</if>
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.parentId != null">
#{record.parentId},
</if>
<if test="record.agreementId != null">
#{record.typeId},
</if>
<if test="record.createBy != null">
#{record.createBy},
</if>
<if test="record.updateBy != null">
#{record.updateBy},
</if>
<if test="record.remark != null">
#{record.remark},
</if>
<if test="record.companyId != null">
#{record.companyId},
</if>
now()
</trim>
</insert>
</mapper>