You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

459 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- 命名空间
#namespace("Gtzz")
-- 获取指定步骤的项目列表(待办) max()...group by 只显示同一个项目+步骤CODE的最后一条
#sql("getToDoStepList")
select progress_id,subject_id,subject_name,org_code,subject_type_id,subject_type_name,
step_code,step_name,action_bureau,year,check_status,is_current,begin_time,
task_number,data_type,is_back_log,lixiang_time,org_name as xmdw
from t_gtzz_progress as ta where is_finish_flag <3 and progress_id in
(
select max(progress_id) from t_gtzz_progress where step_code in
(
#for(id:step_codes)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
and is_current = #(is_current)
#if(org_code)
and org_code='#(org_code)'
#end
#if(keyword)
and ((subject_name like '%#(keyword)%') or (task_number like '%#(keyword)%') or (org_name like '%#(keyword)%'))
#end
#if(begin_date)
and lixiang_time >= '#(begin_date)'
#end
#if(end_date)
and lixiang_time <= '#(end_date)'
#end
-- 专家
#if(expert_person_id)
and subject_id in (select subject_id from t_gtzz_subject_expert where progress_id=0 and step_code in
(
#for(id:step_codes)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
and person_id='#(expert_person_id)')
#end
-- 监理
#if(jianli_person_id)
and subject_id in (select subject_id from t_gtzz_subject_jianli where step_code in
(
#for(id:step_codes)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
and person_id='#(jianli_person_id)')
#end
group by subject_id, step_code
) order by progress_id desc
#end
-- 哪些步骤有上传附件的需要
#sql("getStepDocument")
select t1.step_code,t1.type_id,t2.type_name from t_gtzz_step_document as t1
inner join t_gtzz_document_type as t2 on t1.type_id=t2.type_id
where 1=1
#if(step_code)
and t1.step_code='#(step_code)'
#end
#end
-- 获取指定项目的详细信息
#sql("getSubjectExtInfo")
-- pay_flag:第二阶段业务完成标记(项目资金支付)0未完成 1完成
-- use_flag:项目启用废除标记0废除,1启用
-- delete_flag 删除标记0有效 1删除
-- task_type: 0培训 1新建 2维修 3绿化 4校园文化 5软件平台 6 购买服务 7安全 8装备
-- 数据类型0-新建 1-支付 2-续拨)
-- process_node_id: 流程节点id
-- process_node_name: 流程节点名称
select t1.sn,(select parent_name from t_pro_detail where task_sn=t1.sn limit 1) as subject_type_name,t1.task_number,t1.task_title,t1.task_year,t1.ex_send_org_name,t1.pay_flag,t1.use_flag,t1.delete_flag,t1.task_type,t1.create_time,t1.data_type,t1.process_node_id,t1.process_node_name,
t2.itemvalue11 as xmjj, -- 项目简介
t2.itemValue20 as ztz, -- 总投资
t2.itemValue47 as zbj, -- 中标价(合同金额)
t2.itemValue20211 as pfje2021, -- 批复金额2021
t2.itemValue20221 as pfje2022, -- 批复金额2022
t2.itemValue20231 as pfje2023, -- 批复金额2023
t2.itemValue20241 as pfje2024, -- 批复金额2024
t2.itemValue20251 as pfje2025 -- 批复金额2025
from t_pro_task as t1 left join t_pro_form_value as t2 on t2.task_sn=t1.sn
where t1.sn='#(task_sn)'
#end
-- 填充项目数据
#sql("fillSubject")
select t1.sn,t1.task_number,t1.task_title,t1.task_year,t1.ex_send_org_name,t1.task_type as subject_type_id ,
t3.subject_type_name, t3.subject_type_name,t1.create_time
from t_pro_task as t1
left join t_pro_form_value as t2 on t2.task_sn=t1.sn
left join t_gtzz_subject_type as t3 on t1.task_type=t3.subject_type_id
where
-- 只关心市直属学校的数据
t1.ex_send_org_name in (select org_name from t_gtzz_school)
-- 立项通过,审批完成
and t1.use_flag=1 and t1.draft_flag=0 and t1.close_flag=1 and t1.data_type=0
-- 按申报时间倒序
order by t1.create_time desc
#end
-- 获取项目财务审批流水
#sql("getSubjectPreInfo")
select handle_node_name,receive_user_name as send_user_name,msg_title, handle_opinion,create_time,modify_time
from t_pro_message where task_sn='#(task_sn)' and DELETE_FLAG=0 order by create_time
#end
-- 获取指定年份的项目查询列表
#sql("getXmxcList")
select * from t_gtzz_progress where progress_id in
(select max(progress_id) from t_gtzz_progress group by subject_id)
#if(year)
and year=#(year)
#end
#if(org_code)
and org_code='#(org_code)'
#end
#if(year)
and year='#(year)'
#end
#if(subject_type_id)
and subject_type_id=#(subject_type_id)
#end
#if(keyword)
and subject_name like '%#(keyword)%'
#end
and step_code like '#(step_code)%' order by begin_time desc
#end
-- 获取符合条件的专家列表
#sql("getExpertList")
select t1.*,
(select group_concat(zc_name) from t_gtzz_expert_domain as t2 where t1.person_id=t2.person_id group by t2.zc_id) zc_name
from t_gtzz_expert as t1 where b_use=1
#if(keyword)
and t1.person_name like '%#(keyword)%'
#end
#if(zc_id)
and t1.person_id in (select person_id from t_gtzz_expert_domain where zc_id=#(zc_id))
#end
order by t1.bureau_name,t1.person_name
#end
-- 项目查询列表之专家分配
#sql("getSubjectListForSettingExpert")
select * from (
select t1.*,
(select count(1) from t_gtzz_subject_expert as t2 where t1.subject_id=t2.subject_id and t2.step_code='#(step_code)' and t2.progress_id=0) as zj_count,
(select count(1) from t_gtzz_progress as t2 where t1.subject_id=t2.subject_id and t2.step_code='#(end_step_code)' ) as can_update
from t_gtzz_subject as t1 where
subject_id in (select subject_id from t_gtzz_progress where
step_code>='#(start_step_code)' and step_code<='#(end_step_code)'
#if(not_setting_zj)
and is_current=1
#end
)
#if(data_type)
and t1.data_type=#(data_type)
#end
#if(begin_date)
and t1.lixiang_time between '#(begin_date)' and '#(end_date)'
#end
#if(keyword)
and (t1.xmmc like '%#(keyword)%' or t1.xmdw like '%#(keyword)%' or t1.task_number like '%#(keyword)%')
#end
order by t1.lixiang_time
) as ta where 1=1
#if(setting_zj)
and ta.zj_count>0
#end
#if(not_setting_zj)
and ta.zj_count=0
#end
#end
-- 项目查询列表之监理公司分配
#sql("getFenPeiJianLiList")
select * from (
select t1.*,
(select max(step_code) from t_gtzz_progress as t2 where t2.subject_id=t1.subject_id) as last_step_code,
(select count(1) from t_gtzz_subject_jianli as t2 where t1.subject_id=t2.subject_id and t2.step_code='#(step_code)' and t2.person_id='-1') as no_need_jl,
(select count(1) from t_gtzz_subject_jianli as t2 where t1.subject_id=t2.subject_id and t2.step_code='#(step_code)') as jl_count,
(select count(1) from t_gtzz_progress as t2 where t1.subject_id=t2.subject_id and t2.step_code='#(end_step_code)') as can_update
from t_gtzz_subject as t1 where 1=1
#if(data_type)
and t1.data_type=#(data_type)
#end
#if(begin_date)
and t1.lixiang_time between '#(begin_date)' and '#(end_date)'
#end
#if(keyword)
and (t1.xmmc like '%#(keyword)%' or t1.xmdw like '%#(keyword)%' or t1.task_number like '%#(keyword)%' )
#end
order by t1.lixiang_time
) as ta where last_step_code>='0206'
#if(setting_jl)
and ta.jl_count>0
#end
#if(not_setting_jl)
and ta.jl_count=0
#end
#end
-- 获取指定处理流水中指定流水号的上传文件类型列表
#sql("getProgressIdDocTypeList")
select ta.document_type_id,count(1) as c from
(select t1.progress_id,t2.* from t_gtzz_progress_file as t1 inner join t_gtzz_file as t2 on t1.file_id=t2.file_id) as ta
where ta.progress_id=#(progress_id) group by ta.document_type_id
#end
-- 综合查询(项目)
#sql("querySubject")
select t1.*,f_getYqCount(t1.subject_id) as yq_count,f_getStepFirstName(t1.subject_id) as FirstStepName,
f_getStepSecondName(t1.subject_id) as SecondStepName,
(select progress_id from t_gtzz_progress where subject_id=t1.subject_id order by progress_id desc limit 1) as progress_id,
(select step_code from t_gtzz_progress where subject_id=t1.subject_id order by progress_id desc limit 1) as step_code
from t_gtzz_subject as t1 where 1=1
#if(keyword)
and (t1.xmmc like '%#(keyword)%' or t1.task_number like '%#(keyword)%')
#end
#if(subject_type_ids)
and t1.subject_type_id in
(
#for(id:subject_type_ids)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
#end
#if(org_code)
and t1.org_code='#(org_code)'
#end
#if(begin_date)
and (t1.lixiang_time between '#(begin_date)' and '#(end_date)')
#end
#if(data_type)
and t1.data_type=#(data_type)
#end
#if(sbnd)
and t1.sbnd=#(sbnd)
#end
#if(step_code)
and t1.subject_id in (select subject_id from t_gtzz_progress where is_current=#(is_current) and step_code like '#(step_code)%')
#end
#end
-- 综合查询(项目关闭)
#sql("querySubjectForClose")
select *,f_getYqCount(t1.subject_id) as yq_count,f_getStepFirstName(t1.subject_id) as FirstStepName,
f_getStepSecondName(t1.subject_id) as SecondStepName,
(select progress_id from t_gtzz_progress where subject_id=t1.subject_id order by progress_id desc limit 1) as progress_id,
(select step_code from t_gtzz_progress where subject_id=t1.subject_id order by progress_id desc limit 1) as step_code
from t_gtzz_subject as t1
where 1=1
#if(keyword)
and (t1.xmmc like '%#(keyword)%' or t1.task_number like '%#(keyword)%')
#end
#if(subject_type_ids)
and t1.subject_type_id in
(
#for(id:subject_type_ids)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
#end
#if(org_code)
and t1.org_code='#(org_code)'
#end
#if(begin_date)
and (t1.lixiang_time between '#(begin_date)' and '#(end_date)')
#end
#if(data_type)
and t1.data_type=#(data_type)
#end
#if(sbnd)
and t1.sbnd=#(sbnd)
#end
and (select t2.is_finish_flag from t_gtzz_progress as t2 where t2.subject_id=t1.subject_id order by t2.progress_id desc limit 1)=2
#end
-- 综合查询(文件)
#sql("queryFile")
select t2.*,t3.*,concat('/baseService/upload/',t2.file_id,'.', t2.suffix) as url from t_gtzz_progress_file as t1 inner join t_gtzz_file as t2 on t1.file_id=t2.file_id
inner join t_gtzz_progress as t3 on t1.progress_id=t3.progress_id
where 1=1
#if(keyword)
and((t3.subject_name like '%#(keyword)%') or (t3.task_number like '%#(keyword)%'))
#end
#if(document_type_ids)
and t2.document_type_id in
(
#for(id:document_type_ids)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
#end
#if(subject_type_ids)
and t3.subject_type_id in
(
#for(id:subject_type_ids)
#(for.index > 0 ? ", " : "") '#(id)'
#end
)
#end
#if(org_code)
and t1.org_code='#(org_code)'
#end
#if(begin_date)
and t2.update_ts between '#(begin_date)' and '#(end_date)'
#end
#if(data_type)
and t3.data_type=#(data_type)
#end
#if(sbnd)
and t3.year=#(sbnd)
#end
#if(step_code)
and t3.step_code like '#(step_code)%'
-- and t3.is_current=0
#end
#end
-- 四个阶段的统计信息(市、校两级兼容)
#sql("tjTopFourStep")
select
(select count(1) from t_gtzz_sy_laststep where
-- year=year(now())
year=2021
#if(org_code)
and org_code='#(org_code)'
#end
) as xmlx,
(select count(1) from t_gtzz_sy_laststep where
-- year=year(now())
year=2021
#if(org_code)
and org_code='#(org_code)'
#end
and step_code like '02%') as zbcg,
(select count(1) from t_gtzz_sy_laststep where
-- year=year(now())
year=2021
#if(org_code)
and org_code='#(org_code)'
#end
and is_finish_flag=0 and step_code like '03%') as ssys,
(select count(1) from t_gtzz_sy_laststep where
-- year=year(now())
year=2021
#if(org_code)
and org_code='#(org_code)'
#end
and is_finish_flag=1) as xmbf
#end
-- 今年项目概览(市专用)
#sql("tjSubjectSummaryCurrentYear")
select sum(subject_count) as subject_count,
sum(finish_count) as finish_count,
sum(close_count) as close_count,
sum(jz_count) as jz_count,
sum(yq_count) as yq_count,
ROUND(sum(money),2) as money
from t_gtzz_sy_base_year where year=2021
-- YEAR(NOW())
#end
-- 逾期提醒(市、校两级兼容)
#sql("tjYqList")
select * from t_gtzz_sy_laststep where 1=1
#if(org_code)
and org_code='#(org_code)'
#end
and yq_count>0;
#end
-- 项目待办(市、校两级兼容)
#sql("tjSubjectWaitStep")
select t1.step_code,t1.step_name,ifnull(t2.count,0) as count from t_gtzz_step as t1 left join (
select step_code,count(1) as count from t_gtzz_sy_laststep
where is_current=1 and is_finish_flag<3
#if(org_code)
and org_code='#(org_code)'
#end
group by step_code) as t2 on t1.step_code=t2.step_code where (t1.step_code like '02%' or t1.step_code like '03%')
#end
-- 今年项目分布(市专用)
#sql("tjFenBu")
select * from
(
select org_code,org_name,sum(subject_count) as subject_count,sum(finish_count) as finish_count,
sum(close_count) as close_count,
sum(jz_count) as jz_count,
sum(yq_count) as yq_count,
ROUND(sum(money),2) as money
from t_gtzz_sy_base_year where
-- year=year(now())
year=2021
group by org_code,org_name
) as ta order by ta.subject_count desc,money desc,finish_count desc
#end
-- 项目进展(学校专用)
#sql("tjxmJz")
select id,year,subject_id,subject_name,date_format(lixiang_time, '%Y-%m-%d') as lixiang_time,step_code,step_name,
step_order_id,big_step_name,
all_step_count,is_finish_flag,is_current,org_code,begin_time,end_time,duration,days_limit,
date_diff_count,create_time,yq_count from t_gtzz_sy_laststep where org_code='#(org_code)'
#end
-- 获取结转的项目列表
#sql("getJzList")
select max(progress_id) as progress_id,
subject_id,org_code,org_name,subject_name,subject_type_id,subject_type_name,
year,step_code,step_name,begin_time,end_time,action_bureau,input_value,radio_id,
is_current,is_back_log,is_finish_flag,check_status,lixiang_time,bxlx_name,cxlx_name,
jsfa_type_id,task_number,data_type,is_finish_time from t_gtzz_progress where org_code='#(org_code)'
and is_finish_flag=#(is_finish_flag)
-- and step_code>'0201'
group by subject_id order by progress_id
#end
-- 归档列表
#sql("getGdList")
select org_code,org_name, sum(subject_count) as subject_count, sum(finish_count) as finish_count,
sum(close_count) as close_count, sum(jz_count) as jz_count, sum(yq_count) as yq_count,ROUND(sum(money),2) as money
from t_gtzz_sy_base_year where 1=1
#if(year)
and year=#(year)
#end
#if(org_code)
and org_code='#(org_code)'
#end
group by org_code,org_name order by sum(subject_count) desc
#end
-- 获取监理项目列表
#sql("getJlSubjectList")
select * from (select t1.*,
ifnull((select count(distinct group_question_id) from t_gtzz_jianli_question as t2 where t2.subject_id=t1.subject_id),0) as question_count,
ifnull((select count(distinct group_question_id) from t_gtzz_jianli_question as t2 where t2.subject_id=t1.subject_id and t2.state_id=3),0) as finish_count,
(select t4.begin_time from t_gtzz_progress as t4 where t4.subject_id=t1.subject_id and t4.step_code='0301' and t4.progress_id<t1.progress_id
order by progress_id desc limit 1) as qd_time from t_gtzz_progress as t1 inner join t_gtzz_subject_jianli as t3 on t1.subject_id=t3.subject_id
where t3.person_id='#(person_id)' and t1.step_code='0302' and t1.is_current=#(is_current))
as ta where 1=1
#if(being_date)
and ta.qd_time >='#(being_date)' and ta.qd_time <='#(end_date) 23:59:59'
#end
#if(keyword)
and (ta.subject_name like '%#(keyword)%' or ta.org_name like '%#(keyword)%')
#end
order by ta.begin_time desc
#end
-- 获取指定项目的监理流水
#sql("getSubjectQuestion")
select t1.* from t_gtzz_jianli_question as t1 where t1.group_question_id=t1.progress_id
and t1.subject_id=#(subject_id)
#if(question_level_id)
and t1.question_level_id=#(question_level_id)
#end
#if(question_type_id)
and t1.question_type_id=#(question_type_id)
#end
#if(begin_date)
and t1.create_time between '#(begin_date)' and '#(end_date) 23:59:59'
#end
#if(state_id)
and t1.state_id=#(state_id)
#end
order by t1.progress_id desc
#end
#end