select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name,
c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person,
sum(cp.paid_amount) as paid_amount, case c.amount when 0 then 0 else round(sum(cp.paid_amount) / c.amount * 100, 2) end as paid_percentage,
sum(ci.invoice_amount) as invoice_amount, case c.amount when 0 then 0 else round(sum(ci.invoice_amount) / c.amount * 100, 2) end as invoice_percentage,
t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
left join sys_user as u on u.user_id = c.drafter
left join sys_user as u1 on u1.user_id = c.manager_user_id
left join sys_user as u2 on u2.user_id = c.gm_user_id
left join cmc_tender as t on t.tender_id = c.tender_id
left join cmc_party_a as pa on pa.party_a_id = c.party_a_id
left join cmc_contract_paid as cp on cp.contract_id = c.contract_id
left join cmc_contract_invoice as ci on ci.contract_id = c.contract_id
and c.contract_id like concat('%', #{contractId}, '%')
and c.contract_name like concat('%', #{contractName}, '%')
and c.contract_code like concat('%', #{contractCode}, '%')
and c.tender_id = #{tenderId}
and c.contract_number = #{contractNumber}
and c.party_a_id = #{partyAId}
and c.amount = #{amount}
and c.deposit = #{deposit}
and c.contract_document = #{contractDocument}
and c.drafter = #{drafter}
and c.draft_time = #{draftTime}
and YEAR(c.sign_date) = YEAR(#{signDate})
and c.sign_remark = #{signRemark}
and c.sign_scan = #{signScan}
and c.comment_type = #{commentType}
group by c.contract_id
order by c.draft_time desc
select distinct t1.contract_id, t1.contract_code, t1.contract_name, t1.contract_number, t1.tender_id, t.project_name as t_project_name, t1.party_a_id, pa.party_a_name, t.a_person,
t.a_phone, t.agent, t.agent_person,t1.paid_amount, t1.paid_percentage, t2.invoice_amount, t2.invoice_percentage, p.project_number, p.project_name, p.project_source,
t.agent_phone, t1.amount, t1.deposit, t1.contract_document, t1.drafter, u.nick_name as draft_nick_name, t1.draft_time, t1.remark, t1.sign_date, t1.sign_remark, t1.sign_scan,
t1.comment_type, t1.manager_comment, t1.manager_user_id, u1.nick_name as manager_nick_name, t1.manager_time, t1.gm_user_id, u2.nick_name as gm_nick_name, t1.gm_time, t1.gm_comment from
(select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.party_a_id, c.tender_id,
sum(cp.paid_amount) as paid_amount, case c.amount when 0 then 0 else round(sum(cp.paid_amount) / c.amount * 100, 2) end as paid_percentage,
c.amount, c.deposit, c.contract_document, c.drafter, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
c.comment_type, c.manager_comment, c.manager_user_id, c.manager_time, c.gm_user_id, c.gm_time, c.gm_comment from cmc_contract as c
left join cmc_contract_paid as cp on cp.contract_id = c.contract_id
group by c.contract_id)
as t1
left join
(select distinct c.contract_id,
sum(ci.invoice_amount) as invoice_amount, case c.amount when 0 then 0 else round(sum(ci.invoice_amount) / c.amount * 100, 2) end as invoice_percentage
from cmc_contract as c
left join cmc_contract_invoice as ci on ci.contract_id = c.contract_id
group by c.contract_id)
as t2 on t2.contract_id = t1.contract_id
left join sys_user as u on u.user_id = t1.drafter
left join sys_user as u1 on u1.user_id = t1.manager_user_id
left join sys_user as u2 on u2.user_id = t1.gm_user_id
left join cmc_tender as t on t.tender_id = t1.tender_id
left join cmc_party_a as pa on pa.party_a_id = t1.party_a_id
left join cmc_project_contract as pc on pc.contract_id = t1.contract_id
left join cmc_project as p on pc.project_id = p.project_id
and t1.contract_id like concat('%', #{contractId}, '%')
and t1.contract_name like concat('%', #{contractName}, '%')
and t1.contract_code like concat('%', #{contractCode}, '%')
and t1.tender_id = #{tenderId}
and t1.contract_number = #{contractNumber}
and t1.party_a_id = #{partyAId}
and t1.amount = #{amount}
and t1.deposit = #{deposit}
and t1.contract_document = #{contractDocument}
and t1.drafter = #{drafter}
and t1.draft_time = #{draftTime}
and YEAR(t1.sign_date) = YEAR(#{signDate})
and t1.sign_remark = #{signRemark}
and t1.sign_scan = #{signScan}
and t1.comment_type = #{commentType}
and p.project_source = #{projectSource}
and p.project_name like concat('%', #{projectName}, '%')
and pa.party_a_name like concat('%', #{partyAName}, '%')
group by t1.contract_id
order by t1.draft_time desc
select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name,
c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person,
t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time,
c.remark, c.sign_date, c.sign_remark, c.sign_scan, c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name,
c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment, cw.content from cmc_contract as c
left join sys_user as u on u.user_id = c.drafter
left join sys_user as u1 on u1.user_id = c.manager_user_id
left join sys_user as u2 on u2.user_id = c.gm_user_id
left join cmc_tender as t on t.tender_id = c.tender_id
left join cmc_party_a as pa on pa.party_a_id = c.party_a_id
left join cmc_contract_work as cw on cw.contract_id = c.contract_id
cw.content like concat('%', #{queryString}, '%')
and c.contract_id like concat('%', #{contractId}, '%')
and c.contract_name like concat('%', #{contractName}, '%')
and c.contract_code like concat('%', #{contractCode}, '%')
and c.tender_id = #{tenderId}
and c.contract_number = #{contractNumber}
and c.party_a_id = #{partyAId}
and c.amount = #{amount}
and c.deposit = #{deposit}
and c.contract_document = #{contractDocument}
and c.drafter = #{drafter}
and c.draft_time = #{draftTime}
and YEAR(c.sign_date) = YEAR(#{signDate})
and c.sign_remark = #{signRemark}
and c.sign_scan = #{signScan}
and c.comment_type = #{commentType}
group by c.contract_id
order by c.draft_time desc
select distinct t3.*, p.project_number, p.project_name, p.project_source from
(select t1.*, t2.invoice_amount, t2.invoice_percentage from (select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name,c.party_a_id, pa.party_a_name,
t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person, t.agent_phone as agent_phone,
sum(cp.paid_amount) as paid_amount, case c.amount when 0 then 0 else round(sum(cp.paid_amount) / c.amount * 100, 2) end as paid_percentage,
c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
left join sys_user as u on u.user_id = c.drafter
left join sys_user as u1 on u1.user_id = c.manager_user_id
left join sys_user as u2 on u2.user_id = c.gm_user_id
left join cmc_tender as t on t.tender_id = c.tender_id
left join cmc_party_a as pa on pa.party_a_id = c.party_a_id
left join cmc_contract_paid as cp on cp.contract_id = c.contract_id
group by c.contract_id) as t1
left join
(select distinct c.contract_id,
sum(ci.invoice_amount) as invoice_amount, case c.amount when 0 then 0 else round(sum(ci.invoice_amount) / c.amount * 100, 2) end as invoice_percentage
from cmc_contract as c
left join cmc_contract_invoice as ci on ci.contract_id = c.contract_id
group by c.contract_id) as t2
on t1.contract_id = t2.contract_id)
as t3
left join cmc_project_contract as pc on pc.contract_id = t3.contract_id
left join cmc_project as p on pc.project_id = p.project_id
and t3.contract_id like concat('%', #{contractId}, '%')
and t3.contract_name like concat('%', #{contractName}, '%')
and t3.contract_code like concat('%', #{contractCode}, '%')
and t3.tender_id = #{tenderId}
and t3.contract_number = #{contractNumber}
and t3.party_a_id = #{partyAId}
and t3.amount = #{amount}
and t3.deposit = #{deposit}
and t3.contract_document = #{contractDocument}
and t3.drafter = #{drafter}
and t3.draft_time = #{draftTime}
and YEAR(t3.sign_date) = YEAR(#{signDate})
and t3.sign_remark = #{signRemark}
and t3.sign_scan = #{signScan}
and t3.comment_type = #{commentType}
and p.project_source = #{projectSource}
and p.project_name like concat('%', #{projectName}, '%')
and pa.party_a_name like concat('%', #{partyAName}, '%')
and date_format(t3.sign_date,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
and date_format(t3.sign_date,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
group by t3.contract_id
order by t3.draft_time desc
select t1.contract_id, t1.contract_name, t1.project_type, t1.project_number, IFNULL(t1.amount, 0) as amount, IFNULL(t2.sub_amount, 0) as sub_amount, IFNULL(t3.budget_amount, 0) as budget_amount, IFNULL(t4.borrow_amount, 0) as borrow_amount, IFNULL(t5.settle_amount, 0) as settle_amount from
(select distinct c.contract_id, c.contract_name, p.project_type, p.project_number, c.amount from cmc_contract as c
left join cmc_contract_sub_contract as csc on csc.contract_id = c.contract_id
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
group by c.contract_id
order by c.draft_time desc) as t1
left join
(select distinct c.contract_id, sum(sc.sub_amount) as sub_amount from cmc_contract as c
left join cmc_contract_sub_contract as csc on csc.contract_id = c.contract_id
left join cmc_sub_contract as sc on sc.sub_contract_id = csc.sub_contract_id
group by c.contract_id) as t2
on t1.contract_id = t2.contract_id
left join
(select distinct c.contract_id, sum(b.total_budget) as budget_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_budget as b on b.project_id = p.project_id
group by c.contract_id) as t3
on t1.contract_id = t3.contract_id
left join
(select distinct c.contract_id, sum(b.manager_amount) as borrow_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_borrow as b on b.project_id = p.project_id
group by c.contract_id) as t4
on t1.contract_id = t4.contract_id
left join
(select distinct c.contract_id, sum(ss.amount) as settle_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_settle as s on s.project_id = p.project_id
left join cmc_settle_summary as ss on ss.settle_id = s.settle_id
where ss.content = '实际结算总金额'
group by c.contract_id) as t5
on t1.contract_id = t5.contract_id
select t1.contract_id, t1.contract_name, t1.project_type, t1.project_number, IFNULL(t1.amount, 0) as amount, IFNULL(t2.sub_amount, 0) as sub_amount, IFNULL(t3.budget_amount, 0) as budget_amount, IFNULL(t4.borrow_amount, 0) as borrow_amount, IFNULL(t5.settle_amount, 0) as settle_amount from
(select distinct c.contract_id, c.contract_name, p.project_type, p.project_number, c.amount from cmc_contract as c
left join cmc_contract_sub_contract as csc on csc.contract_id = c.contract_id
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
group by c.contract_id
order by c.draft_time desc) as t1
left join
(select distinct c.contract_id, sum(sc.sub_amount) as sub_amount from cmc_contract as c
left join cmc_contract_sub_contract as csc on csc.contract_id = c.contract_id
left join cmc_sub_contract as sc on sc.sub_contract_id = csc.sub_contract_id
group by c.contract_id) as t2
on t1.contract_id = t2.contract_id
left join
(select distinct c.contract_id, sum(b.total_budget) as budget_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_budget as b on b.project_id = p.project_id
group by c.contract_id) as t3
on t1.contract_id = t3.contract_id
left join
(select distinct c.contract_id, sum(b.manager_amount) as borrow_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_borrow as b on b.project_id = p.project_id
group by c.contract_id) as t4
on t1.contract_id = t4.contract_id
left join
(select distinct c.contract_id, sum(ss.amount) as settle_amount from cmc_contract as c
left join cmc_project_contract as pc on pc.contract_id = c.contract_id
left join cmc_project as p on p.project_id = pc.project_id
left join cmc_settle as s on s.project_id = p.project_id
left join cmc_settle_summary as ss on ss.settle_id = s.settle_id
where ss.content = '实际结算总金额'
group by c.contract_id) as t5
on t1.contract_id = t5.contract_id
where t1.contract_id = #{param}
where c.contract_id = #{contractId}
group by c.contract_id
insert into cmc_contract
contract_id,
contract_name,
contract_code,
tender_id,
party_a_id,
contract_number,
amount,
deposit,
contract_document,
drafter,
draft_time,
remark,
sign_date,
sign_remark,
sign_scan,
comment_type,
manager_comment,
manager_user_id,
manager_time,
gm_user_id,
gm_time,
gm_comment,
#{contractId},
#{contractName},
#{contractCode},
#{tenderId},
#{partyAId},
#{contractNumber},
#{amount},
#{deposit},
#{contractDocument},
#{drafter},
#{draftTime},
#{remark},
#{signDate},
#{signRemark},
#{signScan},
#{commentType},
#{managerComment},
#{managerUserId},
#{managerTime},
#{gmUserId},
#{gmTime},
#{gmComment},
update cmc_contract
contract_code = #{contractCode},
contract_name = #{contractName},
tender_id = #{tenderId},
party_a_id = #{partyAId},
contract_number = #{contractNumber},
amount = #{amount},
deposit = #{deposit},
contract_document = #{contractDocument},
drafter = #{drafter},
draft_time = #{draftTime},
remark = #{remark},
sign_date = #{signDate},
sign_remark = #{signRemark},
sign_scan = #{signScan},
comment_type = #{commentType},
manager_comment = #{managerComment},
manager_user_id = #{managerUserId},
manager_time = #{managerTime},
gm_user_id = #{gmUserId},
gm_time = #{gmTime},
gm_comment = #{gmComment},
where contract_id = #{contractId}
delete from cmc_contract where contract_id = #{contractId}
delete from cmc_contract where contract_id in
#{contractId}