|
@@ -0,0 +1,149 @@
|
|
|
|
+<?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.dayou.mapper.MajorStatisticalStatementMapper">
|
|
|
|
+
|
|
|
|
+ <sql id="majorLedgerQuery">
|
|
|
|
+ SELECT (@i := @i + 1) AS id,
|
|
|
|
+ major.order_id AS orderId,
|
|
|
|
+ report.report_no AS reportNo,
|
|
|
|
+ department.name AS departmentName,
|
|
|
|
+ major.name AS projectName,
|
|
|
|
+ (SELECT customer_company.name FROM customer_company WHERE customer_company.id = major.clientele_id) AS customerName,
|
|
|
|
+ (SELECT customer_company.name FROM customer_company WHERE customer_company.id = major.clientele_sub_id) AS customerSubName,
|
|
|
|
+ manager.name AS clientManagerName,
|
|
|
|
+ principal.name AS principalName,
|
|
|
|
+ major.members AS members,
|
|
|
|
+ major.owner AS owner,
|
|
|
|
+ major.bailor AS bailor,
|
|
|
|
+ major.bailor_contact_tel AS bailorContactTel,
|
|
|
|
+ major.bailor_address AS bailorAddress,
|
|
|
|
+ major.evaluate_aim AS evaluateAim,
|
|
|
|
+ report.value_timing AS valueTiming,
|
|
|
|
+ GROUP_CONCAT(target.located SEPARATOR ';') AS located,
|
|
|
|
+ GROUP_CONCAT(target.land_use SEPARATOR ';') AS landUse,
|
|
|
|
+ GROUP_CONCAT(target.build_acreage SEPARATOR ';') AS buildAcreage,
|
|
|
|
+ GROUP_CONCAT(target.land_acreage SEPARATOR ';') AS landAcreage,
|
|
|
|
+ GROUP_CONCAT(DATE(target.created) SEPARATOR ';') AS reconnaissanceDate,
|
|
|
|
+ report.evaluate_price AS evaluatePrice,
|
|
|
|
+ report.evaluate_amount AS evaluateAmount,
|
|
|
|
+ fund.real_amount AS productionRealAmount,
|
|
|
|
+ report.repertory_out_time AS repertoryOutTime,
|
|
|
|
+ (SELECT name FROM user WHERE user.id = JSON_EXTRACT(report.signatory,'$[0]')) AS firstReporter,
|
|
|
|
+ (SELECT name FROM user WHERE user.id = JSON_EXTRACT(report.signatory,'$[1]')) AS secReporter,
|
|
|
|
+ (
|
|
|
|
+ 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 = major.id
|
|
|
|
+ AND instance.business_sub_id = statement.report_no
|
|
|
|
+ AND node.code = 'RECHECK_STATEMENT'
|
|
|
|
+ AND instance.deleted = 0
|
|
|
|
+ ) AS secStatementChecker,
|
|
|
|
+ (
|
|
|
|
+ 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 = major.id
|
|
|
|
+ AND instance.business_sub_id = statement.report_no
|
|
|
|
+ AND node.code = 'THIRD_CHECK_STATEMENT'
|
|
|
|
+ AND instance.deleted = 0
|
|
|
|
+ ) AS thirdStatementChecker,
|
|
|
|
+ (
|
|
|
|
+ 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 = major.id
|
|
|
|
+ AND instance.business_min_id = report.report_no
|
|
|
|
+ AND node.code = 'RECHECK_REPORT'
|
|
|
|
+ AND instance.deleted = 0
|
|
|
|
+ ) AS secReportChecker,
|
|
|
|
+ (
|
|
|
|
+ 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 = major.id
|
|
|
|
+ AND instance.business_min_id = report.report_no
|
|
|
|
+ AND node.code = 'THIRD_CHECK_REPORT'
|
|
|
|
+ AND instance.deleted = 0
|
|
|
|
+ ) AS thirdReportReChecker,
|
|
|
|
+ major.remark AS comments
|
|
|
|
+ FROM (SELECT @i := 0) AS sort,major
|
|
|
|
+ LEFT JOIN major_target AS target ON target.major_id = major.id
|
|
|
|
+ LEFT JOIN major_production AS statement ON statement.report_no = target.statement_no AND statement.production = 'STATEMENT'
|
|
|
|
+ LEFT JOIN major_production AS report ON report.report_no = target.report_no AND report.production != 'STATEMENT'
|
|
|
|
+ LEFT JOIN production_fund AS fund ON fund.production_no = report.report_no
|
|
|
|
+ LEFT JOIN user AS manager ON manager.id = major.client_manager_id
|
|
|
|
+ LEFT JOIN user AS principal ON principal.id = major.principal_id
|
|
|
|
+ LEFT JOIN department ON department.id = major.department_id
|
|
|
|
+ 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 = major.id
|
|
|
|
+ AND (IF(report.report_no IS NULL, nodeInfo.business_min_id IS NULL,
|
|
|
|
+ report.report_no = nodeInfo.business_min_id))
|
|
|
|
+ WHERE major.deleted = 0
|
|
|
|
+ <if test="dto != null and dto.keyWord != null and dto.keyWord != '' ">
|
|
|
|
+ AND (
|
|
|
|
+ major.order_id LIKE CONCAT('%',#{dto.keyWord},'%') OR
|
|
|
|
+ major.name LIKE CONCAT('%',#{dto.keyWord},'%') OR
|
|
|
|
+ report.name LIKE CONCAT('%',#{dto.keyWord},'%')
|
|
|
|
+ )
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.clientManagerId">
|
|
|
|
+ AND major.client_manager_id = #{dto.clientManagerId}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.principalId">
|
|
|
|
+ AND major.principal_id = #{dto.principalId}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.departmentId != null">
|
|
|
|
+ AND major.department_id = #{dto.departmentId}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.memberId != null">
|
|
|
|
+ AND JSON_CONTAINS(major.members, CAST(#{dto.memberId} AS JSON))
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.nodeCode != null">
|
|
|
|
+ AND nodeInfo.node = #{dto.nodeCode}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="dto != null and dto.startTime != null and dto.endTime!= null">
|
|
|
|
+ AND (major.created BETWEEN #{dto.startTime} AND #{dto.endTime})
|
|
|
|
+ </if>
|
|
|
|
+ GROUP BY reportNo,major.id
|
|
|
|
+ ORDER BY major.created DESC
|
|
|
|
+ </sql>
|
|
|
|
+
|
|
|
|
+ <!--查询大中型台账-->
|
|
|
|
+ <select id="getMajorLedgerVO" resultType="com.dayou.vo.MajorLedgerVO">
|
|
|
|
+ <include refid="majorLedgerQuery" />
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <!--导出大中型台账-->
|
|
|
|
+ <select id="exportMajorLedgerVO" resultType="com.dayou.vo.MajorLedgerVO">
|
|
|
|
+ <include refid="majorLedgerQuery" />
|
|
|
|
+ </select>
|
|
|
|
+</mapper>
|