Bonus-Cloud-Material/bonus-modules/bonus-material/src/main/resources/mapper/material/push/ConsProjectLeaseMoneyMapper...

225 lines
8.2 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.push.mapper.ConsProjectLeaseMoneyMapper">
<select id="getRealtionList" resultType="com.bonus.material.push.domain.ConsProjectLeaseMoneyBean">
select
bai.agreement_id as agreementId
from bm_agreement_info bai
left join bm_unit bu on bai.unit_id = bu.unit_id
left join bm_project bp on bai.project_id = bp.pro_id
</select>
<select id="getConsMonthMoney" resultType="com.bonus.material.push.domain.ConsProjectLeaseMoneyBean">
SELECT
res.id,
res.deviceName,
res.deviceModel,
res.typeId,
sum(res.leaseNum) as leaseNum,
res.startTime,
res.buyPrice as leasePrice,
res.code,
sum(ROUND(res.leaseNum*res.buyPrice*res.type,2)) as leaseMoney,
res.time
FROM
(
SELECT
sai.id,
sai.type_id as typeId,
mt2.type_name as deviceName,
mt1.type_name as deviceModel,
sai.num AS leaseNum,
sai.start_time as startTime,
tt.CODE as code,
ROUND(IFNULL(mt1.NOTAX_PRICE,0) ,2) as buyPrice,
1 as type,
tt.CREATE_TIME as time
FROM
slt_agreement_info sai
LEFT JOIN ma_type mt1 ON sai.type_id = mt1.type_id
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id
LEFT JOIN tm_task tt on sai.back_id = tt.task_id
WHERE sai.agreement_id = #{agreementId} AND sai.start_time BETWEEN #{startTime} AND #{endTime} AND mt1.CONSUMABLE = 1 AND (ISNULL(sai.end_time) OR LEFT(sai.start_time,7) != LEFT(sai.end_time,7))
UNION
SELECT
sai.ID,
sai.type_id as typeId,
mt2.type_name as deviceName,
mt1.type_name as deviceModel,
sai.NUM AS leaseNum,
sai.start_time as startTime,
tt.CODE as code,
ROUND(IFNULL(mt1.NOTAX_PRICE,0) ,2) as buyPrice,
-1 as type,tt.CREATE_TIME as time
FROM
slt_agreement_info sai
LEFT JOIN ma_type mt1 ON sai.type_id = mt1.type_id
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id
LEFT JOIN tm_task tt on sai.back_id = tt.task_id
WHERE
sai.agreement_id = #{agreementId} AND sai.status = 1
AND sai.end_time BETWEEN #{startTime} AND #{endTime} AND mt1.CONSUMABLE = 1 AND LEFT(sai.start_time,7) != LEFT(sai.end_time,7) AND sai.start_time > '2024-01-01'
) res
group by res.typeId,
res.startTime,
res.code
</select>
<insert id="insertProjectConsMonthInfo" parameterType="java.util.List">
insert into project_month_info (agreementId,typeId,leaseNum,leaseDate,returnDate,leasePrice,leaseMoney,
taskId,push_status,push_time,push_remark,is_flag,type,jiju_type,buy_price,money)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.leaseName},
#{item.typeId},
#{item.leaseNum},
#{item.startTime},
#{item.returnDate},
#{item.leasePrice},
#{item.leaseMoney},
#{item.taskId},
#{item.pushStatus},
#{item.pushTime},
#{item.pushRemark},
0,
2,
1,
#{item.buyPrice},
#{item.money}
)
</foreach>
</insert>
<select id="getScrapMoney" resultType="com.bonus.material.push.domain.ConsProjectLeaseMoneyBean">
select
sad.id as id,
sad.apply_id as applyId,
sad.type_id as typeId,
sad.ma_id as maId,
sad.num as leaseNum,
sad.start_time as startTime,
sad.end_time as endTime,
sad.price as leasePrice,
sad.money as leaseMoney
from slt_agreement_details sad
left join slt_agreement_apply saa on sad.apply_id = saa.id
where
saa.agreement_id = #{agreementId}
and sad.slt_type=4 and sad.is_charge = 1
</select>
<insert id="insertProjectOthersMonthInfo" parameterType="java.util.List">
insert into project_month_info (agreementId,typeId,leaseNum,leaseDate,returnDate,leasePrice,leaseMoney,
taskId,push_status,push_time,push_remark,is_flag,type,jiju_type,buy_price,money)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.leaseName},
#{item.typeId},
#{item.leaseNum},
#{item.startTime},
#{item.endTime},
#{item.leasePrice},
#{item.leaseMoney},
#{item.taskId},
#{item.pushStatus},
#{item.pushTime},
#{item.pushRemark},
0,
#{item.type},
1,
#{item.buyPrice},
#{item.money}
)
</foreach>
</insert>
<select id="getLostMoney" resultType="com.bonus.material.push.domain.ConsProjectLeaseMoneyBean">
select
sad.id as id,
sad.apply_id as applyId,
sad.type_id as typeId,
sad.ma_id as maId,
sad.num as leaseNum,
sad.start_time as startTime,
sad.end_time as endTime,
sad.price as leasePrice,
sad.money as leaseMoney
from slt_agreement_details sad
left join slt_agreement_apply saa on sad.apply_id = saa.id
where
saa.agreement_id = #{agreementId}
and sad.slt_type=2 and sad.is_charge = 1
</select>
<select id="getRepairMoney" resultType="com.bonus.material.push.domain.ConsProjectLeaseMoneyBean">
select
sad.id as id,
sad.apply_id as applyId,
sad.type_id as typeId,
sad.ma_id as maId,
sad.num as leaseNum,
sad.start_time as startTime,
sad.end_time as endTime,
sad.price as leasePrice,
sad.money as leaseMoney
from slt_agreement_details sad
left join slt_agreement_apply saa on sad.apply_id = saa.id
where
saa.agreement_id = #{agreementId}
and sad.slt_type=3 and sad.is_charge = 1
</select>
<insert id="insertProjectMonthCosts" parameterType="java.util.List">
insert into project_month_costs (agreement_id,lease_money,cons_money,scrap_money,
lost_money,repair_money,task_id,is_flag,month,jiju_type)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.agreementId},
#{item.leaseTotal},
#{item.consTotal},
#{item.scrapTotal},
#{item.lostTotal},
#{item.repairTotal},
#{item.taskId},
0,
#{item.month},
1
)
</foreach>
</insert>
<select id="getIwsProjectList" resultType="com.bonus.material.basic.domain.BmProject">
select
dfs.id as externalId,
case dfs.project_status
when '开工准备' then 0
when '在建' then 1
when '停工' then 2
when '完工未竣工' then 3
when '竣工' then 4
else dfs.project_status
end as proStatus,
dfs.real_end_date as actualEndDate
from data_center.dx_fb_son dfs
</select>
<update id="updateIwsProject">
<foreach collection="list" item="item" separator=";">
UPDATE bm_project
SET
pro_status = #{item.proStatus},
actual_end_date = #{item.actualEndDate}
WHERE external_id = #{item.externalId}
</foreach>
</update>
</mapper>