Commit 9840b961 by 王军业

12211

1 parent 86f89863
<?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.vion.financial.mapper.ContractMapper">
<insert id="addOne" parameterType="com.vion.financial.vo.ContractVo" keyColumn="contract_unid" keyProperty="contract_unid" useGeneratedKeys="true">
INSERT INTO tb_contract(
contract_unid
<if test="salesperson_unid != null and salesperson_unid != ''">
,salesperson_unid
</if>
<if test="province != null and province != ''">
,province,province_name
</if>
<if test="city !=null and city != ''">
,city,city_name
</if>
<if test="county != null and county != ''">
,county,county_name
</if>
<if test="guarantee_period != null">
,guarantee_period
</if>
<if test="sign_date != null">
,sign_date
</if>
<if test="product_line_type != null and product_line_type != ''">
,product_line_type
</if>
<if test="contract_state != null and contract_state != ''">
,contract_state
</if>
<if test="contract_type != null and contract_type != ''">
,contract_type
</if>
<if test="contract_amount != null ">
,contract_amount
</if>
<if test="deduct_amount != null ">
,deduct_amount
</if>
<if test="contract_amount_note != null and contract_amount_note != ''">
,contract_amount_note
</if>
<if test="stop_amount != null ">
,stop_amount
</if>
<if test="reback_note != null and reback_note != ''">
,reback_note
</if>
<if test="exemptions_amount != null ">
,exemptions_amount
</if>
<if test="contract_remain_note != null and contract_remain_note != ''">
,contract_remain_note
</if>
<if test="is_archive != null and is_archive != ''">
,is_archive
</if>
<if test="bad_amount != null ">
,bad_amount
</if>
<if test="bad_amount_note != null and bad_amount_note != ''">
,bad_amount_note
</if>
<if test="confirm_income_amount != null ">
,confirm_income_amount
</if>
<if test="amount_state_unid != null and amount_state_unid != ''">
,amount_state_unid
</if>
<if test="start_guarantee_date != null ">
,start_guarantee_date
</if>
<if test="end_guarantee_date != null ">
,end_guarantee_date
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
,mainten_start_point
</if>
<if test="contract_note != null and contract_note != ''">
,contract_note
</if>
,is_delete
<if test="project_unid != null and project_unid != ''">
,project_unid
</if>
<if test="customer_unid != null and customer_unid != ''">
,customer_unid
</if>
<if test="province_name !=null and province_name !=''">
,province_name
</if>
<if test="city_name !=null and city_name !=''">
,city_name
</if>
<if test="county_name !=null and county_name !=''">
,county_name
</if>
) VALUES(
#{contract_unid}
<if test="salesperson_unid != null and salesperson_unid != ''">
,#{salesperson_unid}
</if>
<if test="province != null and province != ''">
,#{province},#{province_name}
</if>
<if test="city !=null and city != ''">
, #{city},#{city_name}
</if>
<if test="county != null and county != ''">
,#{county},#{county_name}
</if>
<if test="guarantee_period != null ">
,#{guarantee_period}
</if>
<if test="sign_date != null ">
,#{sign_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="product_line_type != null and product_line_type != ''">
,#{product_line_type}
</if>
<if test="contract_state != null and contract_state != ''">
,#{contract_state}
</if>
<if test="contract_type != null and contract_type != ''">
,#{contract_type}
</if>
<if test="contract_amount != null ">
,#{contract_amount}
</if>
<if test="deduct_amount != null ">
,#{deduct_amount}
</if>
<if test="contract_amount_note != null and contract_amount_note != ''">
,#{contract_amount_note}
</if>
<if test="stop_amount != null ">
,#{stop_amount}
</if>
<if test="reback_note != null and reback_note != ''">
,#{reback_note}
</if>
<if test="exemptions_amount != null ">
,#{exemptions_amount}
</if>
<if test="contract_remain_note != null and contract_remain_note != ''">
,#{contract_remain_note}
</if>
<if test="is_archive != null and is_archive != ''">
,#{is_archive}
</if>
<if test="bad_amount != null ">
,#{bad_amount}
</if>
<if test="bad_amount_note != null and bad_amount_note != ''">
,#{bad_amount_note}
</if>
<if test="confirm_income_amount != null ">
,#{confirm_income_amount}
</if>
<if test="amount_state_unid != null and amount_state_unid != ''">
,#{amount_state_unid}
</if>
<if test="start_guarantee_date != null ">
,#{start_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="end_guarantee_date != null ">
,#{end_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
,#{mainten_start_point}
</if>
<if test="contract_note != null and contract_note != ''">
,#{contract_note}
</if>
,false
<if test="project_unid != null and project_unid != ''">
,#{project_unid}
</if>
<if test="customer_unid != null and customer_unid != ''">
,#{customer_unid}
</if>
<if test="province_name !=null and province_name !=''">
,#{province_name}
</if>
<if test="city_name !=null and city_name !=''">
,#{city_name}
</if>
<if test="county_name !=null and county_name !=''">
,#{county_name}
</if>
)
</insert>
<select id="queryOne" resultType="com.vion.financial.vo.ContractVo" parameterType="java.lang.String">
select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where contract_unid = #{contract_unid}
</select>
<update id="updateOne" parameterType="com.vion.financial.vo.ContractVo" keyColumn="contract_unid" keyProperty="contract_unid" useGeneratedKeys="true">
update tb_contract
<set>
<if test="salesperson_unid != null and salesperson_unid != ''">
salesperson_unid=#{salesperson_unid},
</if>
<if test="province != null and province != ''">
province=#{province},
province_name=#{province_name},
</if>
<if test="city !=null and city != ''">
city=#{city},
city_name=#{city_name},
</if>
<if test="county != null and county != ''">
county=#{county},
county_name=#{county_name},
</if>
<if test="guarantee_period != null ">
guarantee_period=#{guarantee_period},
</if>
<if test="sign_date != null ">
sign_date=#{sign_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="product_line_type != null and product_line_type != ''">
product_line_type=#{product_line_type},
</if>
<if test="contract_state != null and contract_state != ''">
contract_state=#{contract_state},
</if>
<if test="contract_type != null and contract_type != ''">
contract_type=#{contract_type},
</if>
contract_amount=#{contract_amount},
deduct_amount=#{deduct_amount},
<if test="contract_amount_note != null and contract_amount_note != ''">
contract_amount_note=#{contract_amount_note},
</if>
stop_amount=#{stop_amount},
<if test="reback_note != null and reback_note != ''">
reback_note=#{reback_note},
</if>
exemptions_amount=#{exemptions_amount},
<if test="contract_remain_note != null and contract_remain_note != ''">
contract_remain_note=#{contract_remain_note},
</if>
<if test="is_archive != null and is_archive != ''">
is_archive=#{is_archive},
</if>
bad_amount=#{bad_amount},
<if test="bad_amount_note != null and bad_amount_note != ''">
bad_amount_note=#{bad_amount_note},
</if>
confirm_income_amount=#{confirm_income_amount},
<if test="amount_state_unid != null and amount_state_unid != ''">
amount_state_unid=#{amount_state_unid},
</if>
<if test="start_guarantee_date != null ">
start_guarantee_date=#{start_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="end_guarantee_date != null ">
end_guarantee_date=#{end_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
mainten_start_point=#{mainten_start_point},
</if>
<if test="contract_note != null and contract_note != ''">
contract_note=#{contract_note},
</if>
<if test="is_delete != null and is_delete != ''">
is_delete=#{is_delete},
</if>
<if test="project_unid != null and project_unid != ''">
project_unid=#{project_unid},
</if>
<if test="customer_unid != null and customer_unid != ''">
customer_unid=#{customer_unid}
</if>
</set>
where contract_unid=#{contract_unid}
</update>
<delete id="deleteOne" parameterType="java.lang.String">
update tb_contract set is_delete = true where contract_unid = #{contract_unid}
<!-- delete from tb_contract where contract_unid = #{contract_unid} -->
</delete>
<select id="count" parameterType="com.vion.financial.vo.SelectVo" resultType="int">
select count(1) as count from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null and end_date !=null">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
</select>
<select id="selectByCondition" parameterType="com.vion.financial.vo.SelectVo" resultType="com.vion.financial.vo.ContractVo">
select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null ">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date
</if>
<if test="end_date !=null">
and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
<if test="salesperson_unid !=null and salesperson_unid !=''">
and
salesperson_unid = #{salesperson_unid}
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
<if test="limit !=null ">
limit #{limit}
</if>
<if test="offset !=null">
offset #{offset}
</if>
</select>
<select id="exportContracts" parameterType="com.vion.financial.vo.SelectVo" resultType="com.vion.financial.excel.ExportModel">
select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
to_char(sign_date,'yyyy') as year, to_char(sign_date,'MM') as month,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
<!-- (select d21_view.d21 from d21_view where d21_view.contract_unid=tb_contract.contract_unid) as mainten_pay_deliver_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_acceptanc_date, -->
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null ">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date
</if>
<if test="end_date!=null">
and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<!-- <if test="overdays_start_point !=null ">
and
逾期天数contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_end_point !=null ">
and
逾期天数contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if> -->
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
</select>
<select id="isDelete" parameterType="String" resultType="Boolean">
select is_delete from tb_contract where contract_unid = #{contract_unid}
</select>
<select id="queryList" resultType="String">
select contract_unid from tb_contract where
is_delete=false
<!-- and project_unid is null
and customer_unid is null -->
</select>
<select id="countNumber" resultType="int">
select count(contract_unid) from tb_contract where is_delete=false
</select>
<delete id="actualDeleteOne" parameterType="String">
delete from tb_contract where contract_unid = #{contract_unid}
</delete>
</mapper>
<?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.vion.financial.mapper.ContractMapper">
<insert id="addOne" parameterType="com.vion.financial.vo.ContractVo" keyColumn="contract_unid" keyProperty="contract_unid" useGeneratedKeys="true">
INSERT INTO tb_contract(
contract_unid
<if test="salesperson_unid != null and salesperson_unid != ''">
,salesperson_unid
</if>
<if test="province != null and province != ''">
,province,province_name
</if>
<if test="city !=null and city != ''">
,city,city_name
</if>
<if test="county != null and county != ''">
,county,county_name
</if>
<if test="guarantee_period != null">
,guarantee_period
</if>
<if test="sign_date != null">
,sign_date
</if>
<if test="product_line_type != null and product_line_type != ''">
,product_line_type
</if>
<if test="contract_state != null and contract_state != ''">
,contract_state
</if>
<if test="contract_type != null and contract_type != ''">
,contract_type
</if>
<if test="contract_amount != null ">
,contract_amount
</if>
<if test="deduct_amount != null ">
,deduct_amount
</if>
<if test="contract_amount_note != null and contract_amount_note != ''">
,contract_amount_note
</if>
<if test="stop_amount != null ">
,stop_amount
</if>
<if test="reback_note != null and reback_note != ''">
,reback_note
</if>
<if test="exemptions_amount != null ">
,exemptions_amount
</if>
<if test="contract_remain_note != null and contract_remain_note != ''">
,contract_remain_note
</if>
<if test="is_archive != null and is_archive != ''">
,is_archive
</if>
<if test="bad_amount != null ">
,bad_amount
</if>
<if test="bad_amount_note != null and bad_amount_note != ''">
,bad_amount_note
</if>
<if test="confirm_income_amount != null ">
,confirm_income_amount
</if>
<if test="amount_state_unid != null and amount_state_unid != ''">
,amount_state_unid
</if>
<if test="start_guarantee_date != null ">
,start_guarantee_date
</if>
<if test="end_guarantee_date != null ">
,end_guarantee_date
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
,mainten_start_point
</if>
<if test="contract_note != null and contract_note != ''">
,contract_note
</if>
,is_delete
<if test="project_unid != null and project_unid != ''">
,project_unid
</if>
<if test="customer_unid != null and customer_unid != ''">
,customer_unid
</if>
<if test="province_name !=null and province_name !=''">
,province_name
</if>
<if test="city_name !=null and city_name !=''">
,city_name
</if>
<if test="county_name !=null and county_name !=''">
,county_name
</if>
) VALUES(
#{contract_unid}
<if test="salesperson_unid != null and salesperson_unid != ''">
,#{salesperson_unid}
</if>
<if test="province != null and province != ''">
,#{province},#{province_name}
</if>
<if test="city !=null and city != ''">
, #{city},#{city_name}
</if>
<if test="county != null and county != ''">
,#{county},#{county_name}
</if>
<if test="guarantee_period != null ">
,#{guarantee_period}
</if>
<if test="sign_date != null ">
,#{sign_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="product_line_type != null and product_line_type != ''">
,#{product_line_type}
</if>
<if test="contract_state != null and contract_state != ''">
,#{contract_state}
</if>
<if test="contract_type != null and contract_type != ''">
,#{contract_type}
</if>
<if test="contract_amount != null ">
,#{contract_amount}
</if>
<if test="deduct_amount != null ">
,#{deduct_amount}
</if>
<if test="contract_amount_note != null and contract_amount_note != ''">
,#{contract_amount_note}
</if>
<if test="stop_amount != null ">
,#{stop_amount}
</if>
<if test="reback_note != null and reback_note != ''">
,#{reback_note}
</if>
<if test="exemptions_amount != null ">
,#{exemptions_amount}
</if>
<if test="contract_remain_note != null and contract_remain_note != ''">
,#{contract_remain_note}
</if>
<if test="is_archive != null and is_archive != ''">
,#{is_archive}
</if>
<if test="bad_amount != null ">
,#{bad_amount}
</if>
<if test="bad_amount_note != null and bad_amount_note != ''">
,#{bad_amount_note}
</if>
<if test="confirm_income_amount != null ">
,#{confirm_income_amount}
</if>
<if test="amount_state_unid != null and amount_state_unid != ''">
,#{amount_state_unid}
</if>
<if test="start_guarantee_date != null ">
,#{start_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="end_guarantee_date != null ">
,#{end_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
,#{mainten_start_point}
</if>
<if test="contract_note != null and contract_note != ''">
,#{contract_note}
</if>
,false
<if test="project_unid != null and project_unid != ''">
,#{project_unid}
</if>
<if test="customer_unid != null and customer_unid != ''">
,#{customer_unid}
</if>
<if test="province_name !=null and province_name !=''">
,#{province_name}
</if>
<if test="city_name !=null and city_name !=''">
,#{city_name}
</if>
<if test="county_name !=null and county_name !=''">
,#{county_name}
</if>
)
</insert>
<select id="queryOne" resultType="com.vion.financial.vo.ContractVo" parameterType="java.lang.String">
select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where contract_unid = #{contract_unid}
</select>
<update id="updateOne" parameterType="com.vion.financial.vo.ContractVo" keyColumn="contract_unid" keyProperty="contract_unid" useGeneratedKeys="true">
update tb_contract
<set>
<if test="salesperson_unid != null and salesperson_unid != ''">
salesperson_unid=#{salesperson_unid},
</if>
<if test="province != null and province != ''">
province=#{province},
province_name=#{province_name},
</if>
<if test="city !=null and city != ''">
city=#{city},
city_name=#{city_name},
</if>
<if test="county != null and county != ''">
county=#{county},
county_name=#{county_name},
</if>
<if test="guarantee_period != null ">
guarantee_period=#{guarantee_period},
</if>
<if test="sign_date != null ">
sign_date=#{sign_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="product_line_type != null and product_line_type != ''">
product_line_type=#{product_line_type},
</if>
<if test="contract_state != null and contract_state != ''">
contract_state=#{contract_state},
</if>
<if test="contract_type != null and contract_type != ''">
contract_type=#{contract_type},
</if>
contract_amount=#{contract_amount},
deduct_amount=#{deduct_amount},
<if test="contract_amount_note != null and contract_amount_note != ''">
contract_amount_note=#{contract_amount_note},
</if>
stop_amount=#{stop_amount},
<if test="reback_note != null and reback_note != ''">
reback_note=#{reback_note},
</if>
exemptions_amount=#{exemptions_amount},
<if test="contract_remain_note != null and contract_remain_note != ''">
contract_remain_note=#{contract_remain_note},
</if>
<if test="is_archive != null and is_archive != ''">
is_archive=#{is_archive},
</if>
bad_amount=#{bad_amount},
<if test="bad_amount_note != null and bad_amount_note != ''">
bad_amount_note=#{bad_amount_note},
</if>
confirm_income_amount=#{confirm_income_amount},
<if test="amount_state_unid != null and amount_state_unid != ''">
amount_state_unid=#{amount_state_unid},
</if>
<if test="start_guarantee_date != null ">
start_guarantee_date=#{start_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="end_guarantee_date != null ">
end_guarantee_date=#{end_guarantee_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler},
</if>
<if test="mainten_start_point != null and mainten_start_point != ''">
mainten_start_point=#{mainten_start_point},
</if>
<if test="contract_note != null and contract_note != ''">
contract_note=#{contract_note},
</if>
<if test="is_delete != null and is_delete != ''">
is_delete=#{is_delete},
</if>
<if test="project_unid != null and project_unid != ''">
project_unid=#{project_unid},
</if>
<if test="customer_unid != null and customer_unid != ''">
customer_unid=#{customer_unid}
</if>
</set>
where contract_unid=#{contract_unid}
</update>
<delete id="deleteOne" parameterType="java.lang.String">
<!-- update tb_contract set is_delete = true where contract_unid = #{contract_unid} -->
delete from tb_contract where contract_unid = #{contract_unid}
</delete>
<select id="count" parameterType="com.vion.financial.vo.SelectVo" resultType="int">
select count(1) as count from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null and end_date !=null">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
</select>
<select id="selectByCondition" parameterType="com.vion.financial.vo.SelectVo" resultType="com.vion.financial.vo.ContractVo">
select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null ">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date
</if>
<if test="end_date !=null">
and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
<if test="salesperson_unid !=null and salesperson_unid !=''">
and
salesperson_unid = #{salesperson_unid}
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
<if test="limit !=null ">
limit #{limit}
</if>
<if test="offset !=null">
offset #{offset}
</if>
</select>
<select id="exportContracts" parameterType="com.vion.financial.vo.SelectVo" resultType="com.vion.financial.excel.ExportModel">
select
<if test="columns == null">
*
</if>
<if test="columns !=null">
contract_unid,
<foreach collection="columns" index="index" item="column" separator=",">
${column}
</foreach>
</if>
from (select
contract_unid, salesperson_unid, province, city, county, province_name,city_name,county_name,
guarantee_period, sign_date, product_line_type, contract_state,
contract_type, cast(contract_amount as decimal(18,2)), cast(deduct_amount as decimal(18,2)), contract_amount_note,
cast(stop_amount as decimal(18,2)), reback_note, cast(exemptions_amount as decimal(18,2)), contract_remain_note,
is_archive, cast(bad_amount as decimal(18,2)), bad_amount_note, cast(confirm_income_amount as decimal(18,2)),
amount_state_unid, start_guarantee_date, end_guarantee_date,
mainten_start_point, contract_note, is_delete, project_unid,
customer_unid,
to_char(sign_date,'yyyy') as year, to_char(sign_date,'MM') as month,
(cast(contract_amount as decimal(18,2))-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-cast(deduct_amount as decimal(18,2))-cast(stop_amount as decimal(18,2))-cast(exemptions_amount as decimal(18,2))-cast(bad_amount as decimal(18,2))) as contract_remain,
(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid) as total_reback_amount,
(select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid) as total_receive_amount ,
((select cast(total_recv_amount_view.total_recv_amount as decimal(18,2)) from total_recv_amount_view where tb_contract.contract_unid=total_recv_amount_view.contract_unid)-(select cast(total_reback_view.sum as decimal(18,2)) from total_reback_view where total_reback_view.contract_unid=tb_contract.contract_unid)-(cast(deduct_amount as decimal(18,2)))-(cast(stop_amount as decimal(18,2)))-(cast(exemptions_amount as decimal(18,2)))-(cast(bad_amount as decimal(18,2)))) as total_amount_remain ,
(select over_days_view.over_days from over_days_view where over_days_view.contract_unid=tb_contract.contract_unid) as over_days,
(select tb_project.project_name from tb_project where tb_project.project_unid=tb_contract.project_unid) as project_name,
(select tb_customer.customer_name from tb_customer where tb_customer.customer_unid=tb_contract.customer_unid) as customer_name,
(select cast(e17_view.e17 as decimal(18,2)) from e17_view where e17_view.contract_unid=tb_contract.contract_unid) as advance_pay,
(select cast(e18_view.e18 as decimal(18,2)) from e18_view where e18_view.contract_unid=tb_contract.contract_unid) as arrive_pay,
(select cast(e19_view.e19 as decimal(18,2)) from e19_view where e19_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay,
(select cast(e21_view.e21 as decimal(18,2)) from e21_view where e21_view.contract_unid=tb_contract.contract_unid) as mainten_pay,
(select d18_view.d18 from d18_view where d18_view.contract_unid=tb_contract.contract_unid) as advance_pay_date,
(select d19_view.d19 from d19_view where d19_view.contract_unid=tb_contract.contract_unid) as arrive_pay_date,
(select d20_view.d20 from d20_view where d20_view.contract_unid=tb_contract.contract_unid) as acceptanc_pay_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_date,
<!-- (select d21_view.d21 from d21_view where d21_view.contract_unid=tb_contract.contract_unid) as mainten_pay_deliver_date,
(select d22_view.d21 from d22_view where d22_view.contract_unid=tb_contract.contract_unid) as mainten_pay_acceptanc_date, -->
(select max(tb_deliver_goods.deliver_goods_date) from tb_deliver_goods where tb_deliver_goods.contract_unid=tb_contract.contract_unid ) as deliver_date,
(select max(tb_project_acceptanc.acceptanc_date) from tb_project_acceptanc where tb_project_acceptanc.contract_unid=tb_contract.contract_unid ) as acceptanc_date
from tb_contract where 1=1
<if test="contract_unid !=null and contract_unid !=''">
and
contract_unid=#{contract_unid}
</if>
<if test="salesperson_unids !=null">
and
salesperson_unid in
<foreach collection="salesperson_unids" index="index" item="salesperson_unid" open="(" close=")" separator=",">
#{salesperson_unid}
</foreach>
</if>
<if test="project_name__like !=null and project_name__like !=''">
and
tb_contract.project_unid in (select tb_project.project_unid from tb_project where project_name like '%'||#{project_name__like}||'%')
</if>
<if test="customer_name__like !=null and customer_name__like !=''">
and
tb_contract.customer_unid in (select tb_customer.customer_unid from tb_customer where customer_name like '%'||#{customer_name__like}||'%')
</if>
<if test="province !=null and province !=''">
and
province=#{province}
</if>
<if test="city !=null and city !=''">
and
city=#{city}
</if>
<if test="county !=null and county !=''">
and
county=#{county}
</if>
<if test="guarantee_period !=null ">
and
guarantee_period=#{guarantee_period}
</if>
<if test="year !=null and year !=''">
and
to_char(sign_date,'yyyy')=#{year}
</if>
<if test="month !=null and month!=''">
and
to_char(sign_date,'MM')=#{month}
</if>
<if test="product_line_type !=null and product_line_type !=''">
and
product_line_type=#{product_line_type}
</if>
<if test="contract_state !=null and contract_state!=''">
and
contract_state=#{contract_state}
</if>
<if test="contract_type !=null and contract_type !=''">
and
contract_type=#{contract_type}
</if>
<if test="is_archive !=null">
and
is_archive=#{is_archive}
</if>
<if test="acceptanc_type !=null and acceptanc_type !=''">
and
contract_unid in (select tb_project_acceptanc.contract_unid from tb_project_acceptanc where tb_project_acceptanc.acceptanc_type=#{acceptanc_type})
</if>
<if test="confirm_income_amount !=null">
and
confirm_income_amount=#{confirm_income_amount}
</if>
<if test="amount_state_unid !=null and amount_state_unid !=''">
and
amount_state_unid=#{amount_state_unid}
</if>
<if test="start_date != null ">
and
#{start_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler} <![CDATA[<=]]> sign_date
</if>
<if test="end_date!=null">
and sign_date <![CDATA[<=]]> #{end_date,typeHandler=com.vion.financial.handler.MilliDateTypeHandler}
</if>
<if test="amount_start_point !=null ">
and
contract_amount <![CDATA[>=]]> #{amount_start_point}
</if>
<if test="amount_end_point !=null ">
and
contract_amount <![CDATA[<=]]> #{amount_end_point}
</if>
<!-- <if test="overdays_start_point !=null ">
and
逾期天数contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_end_point !=null ">
and
逾期天数contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if> -->
<if test="overdays_start_point !=null and overdays_end_point == null">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point})
</if>
<if test="overdays_start_point !=null and overdays_end_point !=null ">
and
<!--逾期天数-->contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[>=]]> #{overdays_start_point} and over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="overdays_start_point ==null and overdays_end_point !=null">
contract_unid in (select over_days_view.contract_unid from over_days_view where over_days <![CDATA[<=]]> #{overdays_end_point})
</if>
<if test="leave_amount_start_point !=null ">
<!--应收款余额-->and
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[>=]]> #{leave_amount_start_point})
</if>
<if test="leave_amount_end_point !=null ">
contract_unid in (select receive_amount_view.contract_unid from receive_amount_view where receive_amount_view.leave_amount_point <![CDATA[<=]]> #{leave_amount_end_point})
</if>
and is_delete=false
and project_unid is not null
and customer_unid is not null
) contract
</select>
<select id="isDelete" parameterType="String" resultType="Boolean">
select is_delete from tb_contract where contract_unid = #{contract_unid}
</select>
<select id="queryList" resultType="String">
select contract_unid from tb_contract where
is_delete=false
<!-- and project_unid is null
and customer_unid is null -->
</select>
<select id="countNumber" resultType="int">
select count(contract_unid) from tb_contract where is_delete=false
</select>
<delete id="actualDeleteOne" parameterType="String">
delete from tb_contract where contract_unid = #{contract_unid}
</delete>
</mapper>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!