SELECT (@i := @i + 1) AS id,
assets.id AS assetsId,
assets.order_id AS orderId,
statement.production_no AS statementNo,
report.production_no AS reportNo,
CASE report.production_type WHEN 'LETTER' THEN '意见函' WHEN 'CONSULT' THEN '咨询报告' WHEN 'REPORT' THEN '评估报告' ELSE '-' END AS productionType,
report.valuation_basis_date AS valuationBasisDate,
report.create_production_date AS createReportDate,
COALESCE(report.assets_name, statement.assets_name, assets.name) AS projectName,
IF(nodeInfo.state = 'CLOSED','项目终止',IF(nodeInfo.name IS NULL,IF(statement.production_no IS NULL, '撰写意见书', '撰写报告'),nodeInfo.name)) AS currentNodeName,
assets.security AS security,
assets.significant_assets_reorganization AS significantAssetsReorganization,
assets.state_assets AS stateAssets,
assets.foreign_assets_involved AS foreignAssetsInvolved,
assets.dispense_benefit AS dispenseBenefit,
manager.name AS clientManagerName,
principal.name AS principalName,
(SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_id) AS customerName,
(SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
assets.bailor AS bailor,
assets.bailor_contact_tel AS bailorContactTel,
GROUP_CONCAT(target.id SEPARATOR '; ') AS targetId,
GROUP_CONCAT(target.purpose_name SEPARATOR '; ') AS purposeName,
GROUP_CONCAT(target.type_name SEPARATOR '; ') AS valueTypeName,
GROUP_CONCAT(target.targetTypename SEPARATOR '; ') AS targetTypename,
GROUP_CONCAT(target.secTargetTypaName SEPARATOR '; ') AS secTargetTypaName,
GROUP_CONCAT(target.evaluation_method_id SEPARATOR ', ') AS evaluationMethods,
GROUP_CONCAT(target.defined_evaluation_method SEPARATOR '; ') AS definedEvaluationMethod,
GROUP_CONCAT(target.choice_evaluation_method_id SEPARATOR ', ') AS choiceEvaluationMethods,
GROUP_CONCAT(target.choice_defined_evaluation_method SEPARATOR '; ') AS choiceDefinedEvaluationMethod,
GROUP_CONCAT(target.estimated_value SEPARATOR '; ') AS estimatedValue,
fund.should_amount AS shouldAmount,
fund.real_amount AS realAmount,
report.signatory AS signatory,
report.repertory_out_time AS repertoryOutTime,
(
SELECT user.name
FROM work_flow_node_instance AS instance,
work_task_record AS record,
work_node AS node,
user
WHERE instance.id = record.instance_id
AND record.handler_id = user.id
AND node.id = instance.node_id
AND instance.business_id = assets.id
AND instance.business_sub_id = statement.production_no
AND node.code = 'REVIEW_STATEMENT'
AND instance.deleted = 0
) AS statementCheckerName,
(
SELECT user.name
FROM work_flow_node_instance AS instance,
work_task_record AS record,
work_node AS node,
user
WHERE instance.id = record.instance_id
AND record.handler_id = user.id
AND node.id = instance.node_id
AND instance.business_id = assets.id
AND instance.business_sub_id = statement.production_no
AND node.code = 'REEXAMINE_STATEMENT'
AND instance.deleted = 0
) AS statementReCheckerName,
(
SELECT user.name
FROM work_flow_node_instance AS instance,
work_task_record AS record,
work_node AS node,
user
WHERE instance.id = record.instance_id
AND record.handler_id = user.id
AND node.id = instance.node_id
AND instance.business_id = assets.id
AND instance.business_min_id = report.production_no
AND node.code = 'CHECK_REPORT'
AND instance.deleted = 0
) AS reportCheckerName,
(
SELECT user.name
FROM work_flow_node_instance AS instance,
work_task_record AS record,
work_node AS node,
user
WHERE instance.id = record.instance_id
AND record.handler_id = user.id
AND node.id = instance.node_id
AND instance.business_id = assets.id
AND instance.business_min_id = report.production_no
AND node.code = 'RECHECK_REPORT'
AND instance.deleted = 0
) AS reportReCheckerName,
(
SELECT user.name
FROM work_flow_node_instance AS instance,
work_task_record AS record,
work_node AS node,
user
WHERE instance.id = record.instance_id
AND record.handler_id = user.id
AND node.id = instance.node_id
AND instance.business_id = assets.id
AND instance.business_min_id = report.production_no
AND node.code = 'FOURTH_CHECK_REPORT'
AND instance.deleted = 0
) AS reportFourthCheckerName
FROM (SELECT @i := 0) AS sort,assets
LEFT JOIN (
SELECT target.id,
target.assets_id,
purpose_name,
vType.type_name,
evaluation_method_id,
defined_evaluation_method,
choice_evaluation_method_id,
choice_defined_evaluation_method,
type.type_name AS targetTypename,
secType.type_name AS secTargetTypaName,
estimated_value,
statement_no,
report_no
FROM assets_evaluation_target AS target
LEFT JOIN assets_evaluation_target_purpose AS purpose ON evaluation_purpose_id = purpose.id
LEFT JOIN assets_evaluation_target_type AS type ON evaluation_type_id = type.id
LEFT JOIN assets_evaluation_target_type AS secType ON evaluation_type_sec_id = type.id
LEFT JOIN assets_value_type AS vType ON assets_value_id = vType.id
) AS target ON assets.id = target.assets_id
LEFT JOIN assets_production AS report ON report_no = report.production_no
LEFT JOIN assets_production AS statement ON statement_no = statement.production_no
LEFT JOIN user AS manager ON manager.id = assets.client_manager_id
LEFT JOIN user AS principal ON principal.id = assets.principal_id
LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND fund.business_type = 'ASSET_BUSINESS'
LEFT JOIN (
SELECT node.`name`,instance.business_id,instance.business_sub_id,instance.business_min_id,instance.state
FROM work_flow_node_instance AS instance,
work_node AS node
WHERE instance.node_id = node.id
AND node.deleted = 0
AND instance.deleted = 0
AND (instance.state = 'PENDING' OR instance.state = 'CLOSED' OR
(instance.state = 'FINISHED' AND node.`code` = 'BUSINESS_ARCHIVING'))
) AS nodeInfo ON nodeInfo.business_id = assets.id
AND (IF(statement.production_no IS NULL, nodeInfo.business_sub_id IS NULL,
statement.production_no = nodeInfo.business_sub_id))
AND (IF(report.production_no IS NULL, nodeInfo.business_min_id IS NULL,
report.production_no = nodeInfo.business_min_id))
WHERE assets.deleted = 0
AND (
assets.order_id LIKE CONCAT('%',#{dto.keyWord},'%') OR
statement.assets_name LIKE CONCAT('%',#{dto.keyWord},'%') OR
report.assets_name LIKE CONCAT('%',#{dto.keyWord},'%')
)
AND assets.client_manager_id = #{dto.clientManagerId}
AND assets.principal_id = #{dto.principalId}
AND assets.department_id = #{dto.departmentId}
AND (assets.created BETWEEN #{dto.startTime} AND #{dto.endTime})
AND assets.assets_business_gener = #{dto.assetsBusinessGener}
GROUP BY statementNo,reportNo,assets.id
ORDER BY assets.created DESC
SELECT
department.id AS departmentId,
department.name AS departmentName,
COALESCE ( SUM( checkPer.normal_mistake ), 0 ) AS checkNormalMistakeScore,
COALESCE ( SUM( checkPer.hard_mistake ), 0 ) AS checkHardMistakeScore,
COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) AS checkFatalMistakeScore,
COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) AS reCheckNormalMistakeScore,
COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) AS reCheckHardMistakeScore,
COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) AS reCheckFatalMistakeScore,
COALESCE ( SUM( fourthCheckPer.normal_mistake ), 0 ) AS fourthCheckNormalMistakeScore,
COALESCE ( SUM( fourthCheckPer.hard_mistake ), 0 ) AS fourthCheckHardMistakeScore,
COALESCE ( SUM( fourthCheckPer.fatal_mistake ), 0 ) AS fourthCheckFatalMistakeScore,
COALESCE (
COALESCE ( SUM( checkPer.normal_mistake ), 0 ) + COALESCE ( SUM( checkPer.hard_mistake ), 0 ) + COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.normal_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.hard_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.fatal_mistake ), 0 ),
0
) AS allMistakeScore
FROM
(
SELECT
department.id,
department.name
FROM
department,
sorted_department
WHERE
department.id = sorted_department.department_id
AND department.deleted = 0
AND sorted_department.business_type = 'ASSET_BUSINESS'
) AS department
LEFT JOIN (
SELECT
department_id,
assets.created,
assets_production.id AS production_id
FROM
assets
LEFT JOIN assets_production ON assets_production.business_id = assets.id
AND assets_production.deleted = 0
) AS orderInfo ON department.id = orderInfo.department_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '初审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS checkPer ON checkPer.production_id = orderInfo.production_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '复审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS reCheckPer ON reCheckPer.production_id = orderInfo.production_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '四审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS fourthCheckPer ON fourthCheckPer.production_id = orderInfo.production_id
AND department.id = #{dto.departmentId}
GROUP BY department.id
SELECT performance.id,
assets.order_id AS orderId,
assets.members AS members,
production.assets_name AS projectName,
customer.name AS customerName,
production.production_no AS productionNo,
(CASE production.production_type
WHEN 'STATEMENT' THEN '意见书'
WHEN 'LETTER' THEN '意见函'
WHEN 'CONSULT' THEN '咨询报告'
WHEN 'REPORT' THEN '评估报告'
END) AS productionType,
principal.name AS principalName,
checker.name AS checkerName,
(CASE #{dto.mistakeType}
WHEN 'normal' THEN performance.normal_mistake
WHEN 'hard' THEN performance.hard_mistake
WHEN 'fatal' THEN performance.fatal_mistake
ELSE '-'
END) AS mistakeCount,
production.evaluate_amount AS evaluateAmount,
performance.modified AS checkTime,
performance.reason AS reason
FROM assets
LEFT JOIN assets_production AS production ON assets.id = production.business_id
LEFT JOIN business_production_performance AS performance ON production.id = performance.production_id
LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
LEFT JOIN user AS principal ON principal.id = assets.principal_id
LEFT JOIN user AS checker ON checker.id = performance.check_id
WHERE assets.department_id = #{dto.departmentId}
AND performance.check_loop = #{dto.checkLoop}
AND (performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
AND assets.principal_id = #{dto.principalId}
AND performance.normal_mistake > 0
AND performance.hard_mistake > 0
AND performance.fatal_mistake > 0
SELECT user.id AS userId,
user.userName,
user.departmentId,
user.departmentName,
COALESCE ( SUM( checkPer.normal_mistake ), 0 ) AS checkNormalMistakeScore,
COALESCE ( SUM( checkPer.hard_mistake ), 0 ) AS checkHardMistakeScore,
COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) AS checkFatalMistakeScore,
COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) AS reCheckNormalMistakeScore,
COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) AS reCheckHardMistakeScore,
COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) AS reCheckFatalMistakeScore,
COALESCE ( SUM( fourthCheckPer.normal_mistake ), 0 ) AS fourthCheckNormalMistakeScore,
COALESCE ( SUM( fourthCheckPer.hard_mistake ), 0 ) AS fourthCheckHardMistakeScore,
COALESCE ( SUM( fourthCheckPer.fatal_mistake ), 0 ) AS fourthCheckFatalMistakeScore,
COALESCE (
COALESCE ( SUM( checkPer.normal_mistake ), 0 ) + COALESCE ( SUM( checkPer.hard_mistake ), 0 ) + COALESCE ( SUM( checkPer.fatal_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.normal_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.hard_mistake ), 0 ) + COALESCE ( SUM( reCheckPer.fatal_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.normal_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.hard_mistake ), 0 ) + COALESCE ( SUM( fourthCheckPer.fatal_mistake ), 0 ),
0
) AS allMistakeScore
FROM (SELECT user.id AS id,
user.`name` AS userName,
department.name AS departmentName,
department.id AS departmentId
FROM user,post,user_post,sorted_department,department
WHERE `user`.id = user_post.user_id
AND user_post.post_id = post.id
AND post.department_id = sorted_department.department_id
AND sorted_department.department_id = department.id
AND sorted_department.deleted = 0
AND user_post.deleted = 0
AND sorted_department.business_type = 'ASSET_BUSINESS'
GROUP BY user.id
) AS user
LEFT JOIN (
SELECT
principal_id,
assets.created,
assets_production.id AS production_id
FROM
assets
LEFT JOIN assets_production ON assets_production.business_id = assets.id
AND assets_production.deleted = 0
) AS orderInfo ON user.id = orderInfo.principal_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '初审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS checkPer ON checkPer.production_id = orderInfo.production_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '复审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS reCheckPer ON reCheckPer.production_id = orderInfo.production_id
LEFT JOIN ( SELECT production_id, fatal_mistake, hard_mistake, normal_mistake FROM
business_production_performance WHERE business_type = 'ASSET_BUSINESS' AND check_loop = '四审'
AND (business_production_performance.modified BETWEEN #{dto.startTime} AND #{dto.endTime})
) AS fourthCheckPer ON fourthCheckPer.production_id = orderInfo.production_id
AND user.departmentId = #{dto.departmentId}
AND user.userName LIKE CONCAT('%',#{dto.userName},'%')
GROUP BY user.id
SELECT
assets.order_id AS orderId,
assets.name AS projectName,
customer.name AS customerName,
(SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
(SELECT name FROM customer_linkman WHERE id = assets.clientele_contact_id) AS linkmanName,
bailor,
report.production_no AS reportNo,
(SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
members,
(SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
(SELECT SUM(check_value) FROM assets_evaluation_target WHERE report_no = report.production_no AND deleted = 0) AS checkValueSum,
statement.created AS writeStatementDate,
report.created AS writeReportDate,
order_fund.should_amount AS shouldAmount,
order_fund.real_amount AS realAmount,
nodeInfo.currentNodeName,
nodeInfo.handlerName
FROM assets
LEFT JOIN user ON user.id = assets.principal_id
LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
user.name AS handlerName,
node.name AS currentNodeName,
nodeInstance.business_id AS businessId,
nodeInstance.business_sub_id,
nodeInstance.business_min_id,
nodeInstance.state
FROM work_flow_node_instance AS nodeInstance,
work_task_record AS record,
user,
work_node AS node
WHERE (state = 'PENDING' OR( state = 'FINISHED' AND node.`code` = 'BUSINESS_ARCHIVING' ))
AND nodeInstance.node_id = node.id
AND record.handler_id = user.id
AND nodeInstance.deleted = 0
AND record.instance_id = nodeInstance.id
AND nodeInstance.business_type = 'ASSET_BUSINESS'
AND nodeInstance.business_min_id IS NOT NULL
AND nodeInstance.business_sub_id IS NOT NULL
) AS nodeInfo ON nodeInfo.businessId = assets.id
LEFT JOIN assets_production AS statement ON statement.business_id =nodeInfo.businessId AND statement.production_no = nodeInfo.business_sub_id AND statement.deleted = 0 AND statement.production_type = 'STATEMENT'
LEFT JOIN assets_production AS report ON report.business_id =nodeInfo.businessId AND report.production_no = nodeInfo.business_min_id AND report.deleted = 0 AND report.production_type != 'STATEMENT'
LEFT JOIN order_fund ON order_fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS' AND order_fund.deleted = 0
WHERE assets.deleted = 0
AND assets.clientele_id = #{dto.customerId}
AND assets.clientele_contact_id = #{dto.clienteleContactId}
AND assets.department_id = #{dto.departmentId}
AND assets.market_department_id = #{dto.marketDepartmentId}
AND assets.principal_id = #{dto.principalId}
AND assets.client_manager_id = #{dto.clientManagerId}
AND assets.created BETWEEN #{dto.startTime} AND #{dto.endTime}
AND statement.created BETWEEN #{dto.startTime} AND #{dto.endTime}
AND report.created BETWEEN #{dto.startTime} AND #{dto.endTime}
AND order_fund.created BETWEEN #{dto.startTime} AND #{dto.endTime}
AND order_fund.should_amount IS NOT NULL
AND order_fund.created BETWEEN #{dto.startTime} AND #{dto.endTime}
AND order_fund.real_amount IS NOT NULL
ORDER BY assets.created DESC