id, deleted, created, modified, name, order_id, financial, allot_type, client_manager_id, principal_id, department_id, assets_business_gener, entrust_again, clientele_type, clientele_id, clientele_sub_id, clientele_contact_id, security, significant_assets_reorganization, state_assets, foreign_assets_involved, dispense_benefit, bailor, bailor_address, bailor_contact_name, bailor_contact_tel, terminal_clientele_id, terminal_clientele_type, terminal_clientele_contact_id, members, remark SELECT DISTINCT nodeInfo.recordId AS id, assets.id AS assetsId, assets.name, assets.order_id, assets_business_gener, allot_type, statement.production_no AS statementNo, statement.assets_name AS statementName, report.production_no AS reportNo, report.assets_name AS reportName, report.production_type AS productionType, clientele_id, customer.name AS customerName, bailor, bailor_contact_tel, assets.created, #查询客户经理 (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName, #查询项目负责人 (SELECT name FROM user WHERE id = assets.principal_id) AS principalName, #查询业务来源(即子级客户) (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName, nodeInfo.businessId, nodeInfo.currentNodeName, nodeInfo.currentNodeCode, nodeInfo.handlerName, nodeInfo.currentNodeId, nodeInfo.recordId, nodeInfo.handlerId, nodeInfo.state AS nodeState, pFund.id AS productionFundId, pFund.standard_amount, pFund.production_should_amount, pFund.real_amount AS productionRealAmount 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, node.code AS currentNodeCode, nodeInstance.business_id AS businessId, nodeInstance.business_sub_id, nodeInstance.business_min_id, nodeInstance.state, record.id AS recordId, record.handler_id AS handlerId FROM work_flow_node_instance AS nodeInstance, work_task_record AS record, user, work_node AS node WHERE # state = 'PENDING' (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' ) AS nodeInfo ON nodeInfo.businessId = assets.id LEFT JOIN assets_production AS statement ON statement.deleted = 0 AND statement.production_no = nodeInfo.business_sub_id AND statement.business_id = nodeInfo.businessId LEFT JOIN assets_production AS report ON report.deleted = 0 AND report.production_no = nodeInfo.business_min_id AND report.business_id = nodeInfo.businessId LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS' LEFT JOIN production_fund AS pFund ON pFund.order_fund_id = fund.id AND pFund.production_no = report.production_no INNER JOIN ( SELECT DISTINCT department.id, department.parent_id, user.id AS userId FROM user, post, department, user_post WHERE user.id = user_post.user_id AND user_post.post_id = post.id AND post.department_id = department.id AND user_post.deleted = 0 ) AS department ON (department.id IN #{item} ) AND department.userId = nodeInfo.handlerId INNER JOIN ( SELECT DISTINCT department.id, user.id AS userId FROM user, post, department, user_post WHERE user.id = user_post.user_id AND user_post.post_id = post.id AND post.department_id = department.id AND user_post.deleted = 0 ) AS department ON (department.id IN #{item} ) AND (department.userId = assets.principal_id OR department.userId = assets.client_manager_id OR department.userId = nodeInfo.handlerId) WHERE assets.deleted = 0 AND (nodeInfo.state = 'PENDING' OR ( nodeInfo.state = 'FINISHED' AND nodeInfo.currentNodeCode = 'BUSINESS_ARCHIVING' )) # 评估业务类别(业务类型)查询 AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener} # 项目负责人查询 AND assets.principal_id = #{assetsSelectDTO.principalId} #客户经理查询 AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId} # 关键字模糊查询 AND ( assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR statement.assets_name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR report.assets_name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') ) # 根据处理节点查询(节点code) AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode} AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId} AND assets.department_id = #{assetsSelectDTO.departmentId} AND (nodeInfo.currentNodeCode = 'STATEMENT_BOOKBINDING_STAMP' OR nodeInfo.currentNodeCode = 'REPORT_BOOKBINDING_STAMP') ORDER BY assets.created DESC SELECT (@i := @i + 1) AS id, assets.id AS assetsId, CASE WHEN reportInfo.assets_name IS NOT NULL THEN reportInfo.assets_name WHEN (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) IS NOT NULL THEN (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) ELSE assets.name END AS name, assets.order_id, assets_business_gener, allot_type, # 2025年1月1日之前下的订单都是老OA系统订单,查询方式不一样 statementInfo.production_no AS statementNo, statementInfo.production_type AS productionType, reportInfo.production_no AS reportNo, reportInfo.repertory_state AS reportRepertoryState, reportInfo.delivery AS reportDelivery, reportInfo.assets_name AS reportName, reportInfo.production_type AS reportType, reportInfo.id AS reportId, clientele_id, customer.name AS customerName, bailor, bailor_contact_name, bailor_contact_tel, assets.created, ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value, fund.id AS orderFundId, fund.should_amount, fund.real_amount, fund.discount, pFund.id AS productionFundId, pFund.standard_amount, pFund.production_should_amount, pFund.real_amount AS productionRealAmount, # invoice.real_amount AS invoiceRealAmount, (SELECT SUM(real_amount) FROM finance_invoice WHERE order_fund_id = fund.id AND finance_invoice.production_fund_id = pFund.id AND deleted = 0) AS invoiceRealAmount, #查询客户经理 assets.client_manager_id, (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName, #查询项目负责人 assets.principal_id, (SELECT name FROM user WHERE id = assets.principal_id) AS principalName, #查询业务来源(即子级客户) (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName, nodeInfo.businessId, nodeInfo.currentNodeName, nodeInfo.currentNodeCode, nodeInfo.handlerName, nodeInfo.recordId, nodeInfo.currentNodeId, nodeInfo.handlerId FROM (SELECT @i := 0) AS sort,assets LEFT JOIN user ON user.id = assets.principal_id LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS' # LEFT JOIN finance_invoice AS invoice ON invoice.order_fund_id = fund.id #查询当前进行的节点信息 LEFT JOIN (SELECT nodeInstance.id AS currentNodeId, user.name AS handlerName, node.name AS currentNodeName, node.code AS currentNodeCode, nodeInstance.business_id AS businessId, nodeInstance.business_sub_id, nodeInstance.business_min_id, record.id AS recordId, record.handler_id AS handlerId 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' ) AS nodeInfo ON nodeInfo.businessId = assets.id # 2025年1月1日之前下的订单都是老OA系统订单,查询方式不一样 LEFT JOIN (SELECT id, business_id, production_no,repertory_state,production_type,delivery,assets_name FROM assets_production) AS statementInfo ON IF(assets.created < '2025-01-01', statementInfo.business_id = assets.id AND statementInfo.production_type = 'STATEMENT',statementInfo.production_no = nodeInfo.business_sub_id) LEFT JOIN(SELECT id, business_id, production_no,repertory_state,production_type,delivery,assets_name FROM assets_production) AS reportInfo ON IF(assets.created < '2025-01-01', reportInfo.business_id = assets.id AND reportInfo.production_type != 'STATEMENT',reportInfo.production_no = nodeInfo.business_min_id) LEFT JOIN production_fund AS pFund ON pFund.order_fund_id = fund.id AND pFund.production_no = reportInfo.production_no WHERE assets.deleted = 0 AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId} #送达状态查询 AND reportInfo.delivery = #{assetsSelectDTO.delivery} #项目负责人查询 AND assets.principal_id = #{assetsSelectDTO.principalId} #关键字模糊查询 AND ( assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR reportInfo.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') ) AND assets.created BETWEEN #{assetsSelectDTO.startTime} AND #{assetsSelectDTO.endTime} AND assets.department_id = #{assetsSelectDTO.departmentId} # 筛选产品为报告的项目 AND reportInfo.production_type = #{assetsSelectDTO.productionType} # 筛选产品为意见书的项目 AND statementInfo.production_type = #{assetsSelectDTO.productionType} # 筛选没出产品的项目 AND statementInfo.production_type IS NULL AND reportInfo.production_type IS NULL ORDER BY assets.created DESC INSERT INTO business_number(id, take_type, business_type, year, month, next_no) VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo}) UPDATE business_number SET month = #{month}, next_no = #{nextNo} WHERE id = #{id} UPDATE assets SET name = #{assets.name}, assets_business_gener = #{assets.assetsBusinessGener}, entrust_again = #{assets.entrustAgain}, security = #{assets.security}, significant_assets_reorganization = #{assets.significantAssetsReorganization}, state_assets = #{assets.stateAssets}, foreign_assets_involved = #{assets.foreignAssetsInvolved}, dispense_benefit = #{assets.dispenseBenefit}, bailor = #{assets.bailor}, bailor_address = #{assets.bailorAddress}, bailor_contact_name = #{assets.bailorContactName}, bailor_contact_tel = #{assets.bailorContactTel} WHERE id = #{assets.id} AND deleted = 0