feat(每月作价):优化住宅售价计算

1. 成交案例下载和清洗
2. 挂牌案例下载、上传、清洗
3. 编写单元测试
4. 批量导入性能优化
This commit is contained in:
purple
2020-06-19 11:34:17 +08:00
parent 0d14af53ac
commit d7cd4e0b6d
35 changed files with 4378 additions and 820 deletions

View File

@ -26,6 +26,11 @@ spring:
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=obpm_LianCheng_Data
username: sa
password: Lcdatacenter_888
oldProd:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://139.196.201.83:8433;DatabaseName=LC_DataCenter
username: sa
password: lc1234
compute:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_compute
@ -36,6 +41,11 @@ spring:
url: jdbc:sqlserver://172.16.30.233:1433;DatabaseName=uv_clean
username: sa
password: Lcdatacenter_888
calc:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://139.196.201.83:1433;DatabaseName=CALC
username: purple
password: liancheng
# druid:
# statViewServlet:

View File

@ -32,10 +32,15 @@ server:
min-spare-threads: 30
# 日志配置
#logging:
# level:
# com.ruoyi: debug
# org.springframework: warn
logging:
level:
com.ruoyi: debug
org.springframework: warn
root: debug
path: C:\workshop\logs\ruoyi\
config: classpath:logback-spring.xml
# Spring配置
spring:

View File

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
<contextName>uv-data</contextName>
<!-- name的值是变量的名称value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后可以使“${}”来使用变量。 -->
<springProperty scope="context" name="logging.path" source="logging.path"/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 时间滚动输出 level为 DEBUG 日志 -->
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${logging.path}/log_debug.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>${logging.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${logging.path}/log_info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${logging.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 WARN 日志 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${logging.path}/log_warn.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logging.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${logging.path}/log_error.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logging.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<springProfile name="dev">
<!-- <logger name="com.apache.ibatis" level="DEBUG"/>-->
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="com.ruoyi" level="info"/>
</springProfile>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</configuration>

View File

@ -0,0 +1,429 @@
<?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.ruoyi.project.data.price.mapper.ArtificialResidenceSaleBasePriceMapper">
<resultMap type="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice"
id="MainMappingResult">
<result property="communityId" column="ProjectID"/>
<result property="communityName" column="ProjectName"/>
<result property="communityAddress" column="ProjectAddr"/>
<result property="countyName" column="county"/>
<result property="blockName" column="block"/>
<result property="loopName" column="loop"/>
<result property="hasIndex" column="isIndxGen"/>
<result property="isPstCalc" column="isPstCalc"/>
<result property="status" column="statusRun"/>
<result property="label" column="ProjectSPLabel"/>
<result property="propertyType" column="propertyType"/>
<result property="projectType" column="projectType"/>
<result property="projectTypeDtl" column="projectTypeDtl"/>
<result property="propertyLevel" column="projectLevel"/>
<result property="year" column="year"/>
<result property="area" column="mainArea"/>
<result property="yearCoefficient" column="yearCoff"/>
<result property="areaCoefficient" column="areaCoff"/>
<result property="comment" column="priceNote"/>
<result property="basePriceDraft" column="basePriceDft"/>
<result property="mainPriceDraft" column="mainPriceDft"/>
<result property="basePrice_1" column="basePrice_1"/>
<result property="voppat" column="voppat"/>
<result property="voppa" column="voppa"/>
<!-- 案例均价 -->
<result property="priceUnitAdj" column="PriceUnitAdj"/>
<result property="visitedNum" column="Visited_Num"/>
<result property="firstVisitTime" column="First_Visit_Time"/>
<result property="visitedNum15" column="Visited_Num_15"/>
<result property="visitedNum30" column="Visited_Num_30"/>
<!-- 上周期 -->
<result property="priceDealMean_1" column="priceDealMean_1"/>
<result property="priceDealMax_1" column="priceDealMax_1"/>
<result property="sumDeal_1" column="sumDeal_1"/>
<!-- 本周期 -->
<result property="priceDealMean" column="priceDealMean"/>
<result property="priceDealMax" column="priceDealMax"/>
<result property="sumDeal" column="sumDeal"/>
<!-- 挂牌最低价 -->
<result property="priceListedMin" column="priceListedMin"/>
<result property="priceCase1_ToAI_Pst" column="priceCase1_ToAI_Pst"/>
<result property="priceCase2_ToAI_Pst" column="priceCase2_ToAI_Pst"/>
<result property="priceCase1_ToLst_Pst" column="priceCase1_ToLst_Pst"/>
<result property="priceCase2_ToLst_Pst" column="priceCase2_ToLst_Pst"/>
<result property="priceCase1" column="priceCase1"/>
<result property="priceCase1AdjPst" column="priceCase1AdjPst"/>
<result property="sumCase1" column="sumCase1"/>
<result property="priceCase2" column="priceCase2"/>
<result property="priceCase2AdjPst" column="priceCase2AdjPst"/>
<result property="sumCase2" column="sumCase2"/>
<result property="voppbt" column="voppbt"/>
<result property="voppb" column="voppb"/>
<!-- 绑定小区相关信息 -->
<result property="bindCommunityId" column="bindProjID"/>
<result property="bindCommunityPst" column="bind_Proj_Pst"/>
<result property="bindBlockClass" column="bind_Block_Class"/>
<result property="bindBlockClassPst" column="bind_Block_Class_Pst"/>
<result property="bindBlockPropertyLevel" column="bind_Block_Plevel"/>
<result property="bindBlockPropertyLevelPst" column="bind_Block_Plevel_Pst"/>
<result property="bindBlockProjectType" column="bind_Block_PType"/>
<result property="bindBlockProjectTypePst" column="bind_Block_Ptype_Pst"/>
<result property="bindCountyProjectType" column="bind_County_PType"/>
<result property="bindCountyProjectTypePst" column="bind_County_Ptype_Pst"/>
</resultMap>
<sql id="selectAllField">
SELECT ProjectID
,ProjectName
,ProjectAddr
,County
,Block
,"Loop"
,IsIndxGen
,IsPstCalc
,StatusRun
,ProjectSPLabel
,PropertyType
,ProjectType
,ProjectTypeDtl
,ProjectLevel
,Year
,MainArea
,AreaCoff
,YearCoff
,PriceNote
,BasePriceDft
,MainPriceDft
,BasePrice_1
,PriceUnitAdj
,Visited_Num
,First_Visit_Time
,Visited_Num_15
,Visited_Num_30
,PriceDealMean_1
,PriceDealMax_1
,SumDeal_1
,PriceDealMean
,PriceDealMax
,SumDeal
,PriceListedMin
,PriceCase1_ToAI_Pst
,PriceCase2_ToAI_Pst
,PriceCase1_ToLst_Pst
,PriceCase2_ToLst_Pst
,PriceCase1
,PriceCase1AdjPst
,SumCase1
,PriceCase2
,PriceCase2AdjPst
,SumCase2
,VOPPBT
,VOPPB
,BindProjID
,Bind_Proj_Pst
,Bind_Block_Class
,Bind_Block_Class_Pst
,Bind_Block_Plevel
,Bind_Block_Plevel_Pst
,Bind_Block_PType
,Bind_Block_Ptype_Pst
,Bind_County_PType
,Bind_County_Ptype_Pst
,VOPPAT
,VOPPA
FROM dbo.DWA_PROJECTBASEPRICE_MANU_${yearMonth}
</sql>
<!-- 分页总数 -->
<select id="selectPageCount"
parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice" resultType="int">
select count(1) from dbo.DWA_PROJECTBASEPRICE_MANU_${yearMonth}
<where>
<if test="communityId != null">
AND ProjectID = #{communityId}
</if>
<if test="nameOrAddress != null">
AND (ProjectName like concat('%', #{nameOrAddress}, '%') or ProjectAddr like concat('%',
#{nameOrAddress}, '%'))
</if>
</where>
</select>
<!-- 分页列表 -->
<select id="selectPageList"
parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice"
resultMap="MainMappingResult">
<include refid="selectAllField"/>
<where>
<if test="communityId != null">
AND ProjectID = #{communityId}
</if>
<if test="nameOrAddress != null">
AND (ProjectName like concat('%', #{nameOrAddress}, '%') or ProjectAddr like concat('%',
#{nameOrAddress}, '%'))
</if>
</where>
order by ProjectID ASC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only
</select>
<!-- -->
<select id="selectById" parameterType="String" resultMap="MainMappingResult">
<include refid="selectAllField"/>
where id = #{id}
</select>
<!-- 获取表名 -->
<select id="yearMonthList" resultType="com.ruoyi.project.common.VueSelectModel">
SELECT right(name,6) as value, right(name,6) as label
FROM sys.tables
where name like 'DWA_PROJECTBASEPRICE_MANU_%'
order by cast(right(name,6) as int) desc
</select>
<!-- 修改价格信息(基价、主力基价、上月基价、幅度)、注意修改上期基价问题、还要把基价更新一下。 -->
<update id="updateEntity" parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice">
update dbo.DWA_PROJECTBASEPRICE_MANU_${yearMonth} set
BasePrice=#{basePrice},mainPrice=#{mainPrice},BasePrice_1=#{basePrice_1},VOPPAT=#{voppat},VOPPA=#{voppa},
PriceNote=#{comment}
where ProjectID=#{communityId};
</update>
<update id="prepareBachImport" parameterType="int">
create procedure dbo.BatchImportOfArtificialResidenceSale @table DWA_PROJECTBASEPRICE_MANU_Table readonly
as
begin
insert into dbo.DWA_PROJECTBASEPRICE_MANU_${yearMonth} ( ProjectID , ProjectName , ProjectAddr , County ,
Block ,
Loop , IsIndxGen , IsPstCalc , StatusRun , ProjectSPLabel , PropertyType , ProjectType , ProjectTypeDtl , ProjectLevel , Year , MainArea , AreaCoff , YearCoff , PriceNote , BasePriceDft , MainPriceDft , BasePrice_1 , PriceUnitAdj , Visited_Num , First_Visit_Time , Visited_Num_15 , Visited_Num_30 , PriceDealMean_1 , PriceDealMax_1 , SumDeal_1 , PriceDealMean , PriceDealMax , SumDeal , PriceListedMin , PriceCase1_ToAI_Pst , PriceCase2_ToAI_Pst , PriceCase1_ToLst_Pst , PriceCase2_ToLst_Pst , PriceCase1 , PriceCase1AdjPst , SumCase1 , PriceCase2 , PriceCase2AdjPst , SumCase2 , VOPPBT , VOPPB , BindProjID , Bind_Proj_Pst , Bind_Block_Class , Bind_Block_Class_Pst , Bind_Block_Plevel , Bind_Block_Plevel_Pst , Bind_Block_PType , Bind_Block_Ptype_Pst , Bind_County_PType , Bind_County_Ptype_Pst , VOPPAT , VOPPA )
select communityId , communityName , communityAddress , countyName , blockName , loopName , hasIndex , IsPstCalc , status , label , PropertyType , ProjectType , ProjectTypeDtl , propertyLevel , Year , area , areaCoefficient , yearCoefficient , comment , basePriceDraft , mainPriceDraft , BasePrice_1 , PriceUnitAdj , visitedNum , firstVisitTime , visitedNum15 , visitedNum30 , PriceDealMean_1 , PriceDealMax_1 , SumDeal_1 , PriceDealMean , PriceDealMax , SumDeal , PriceListedMin , PriceCase1_ToAI_Pst , PriceCase2_ToAI_Pst , PriceCase1_ToLst_Pst , PriceCase2_ToLst_Pst , PriceCase1 , PriceCase1AdjPst , SumCase1 , PriceCase2 , PriceCase2AdjPst , SumCase2 , VOPPBT , VOPPB , bindCommunityId , bindCommunityPst , bindBlockClass , bindBlockClassPst , bindBlockPropertyLevel , bindBlockPropertyLevelPst , bindBlockProjectType , bindBlockProjectTypePst , bindCountyProjectType , bindCountyProjectTypePst , VOPPAT , VOPPA
from @table;
end;
</update>
<insert id="insert" parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice">
insert into dbo.DWA_PROJECTBASEPRICE_MANU_${yearMonth}
(
ProjectID
, ProjectName
, ProjectAddr
, County
, Block
, "Loop"
, IsIndxGen
, IsPstCalc
, StatusRun
, ProjectSPLabel
, PropertyType
, ProjectType
, ProjectTypeDtl
, ProjectLevel
, Year
, MainArea
, AreaCoff
, YearCoff
, PriceNote
, BasePriceDft
, MainPriceDft
, BasePrice_1
, PriceUnitAdj
, Visited_Num
, First_Visit_Time
, Visited_Num_15
, Visited_Num_30
, PriceDealMean_1
, PriceDealMax_1
, SumDeal_1
, PriceDealMean
, PriceDealMax
, SumDeal
, PriceListedMin
, PriceCase1_ToAI_Pst
, PriceCase2_ToAI_Pst
, PriceCase1_ToLst_Pst
, PriceCase2_ToLst_Pst
, PriceCase1
, PriceCase1AdjPst
, SumCase1
, PriceCase2
, PriceCase2AdjPst
, SumCase2
, VOPPBT
, VOPPB
, BindProjID
, Bind_Proj_Pst
, Bind_Block_Class
, Bind_Block_Class_Pst
, Bind_Block_Plevel
, Bind_Block_Plevel_Pst
, Bind_Block_PType
, Bind_Block_Ptype_Pst
, Bind_County_PType
, Bind_County_Ptype_Pst
, VOPPAT
, VOPPA
)
values(
#{communityId}
, #{communityName}
, #{communityAddress}
, #{countyName}
, #{blockName}
, #{loopName}
, #{hasIndex}
, #{isPstCalc}
, #{status}
, #{label}
, #{propertyType}
, #{projectType}
, #{projectTypeDtl}
, #{propertyLevel}
, #{year}
, #{area}
, #{areaCoefficient}
, #{yearCoefficient}
, #{comment}
, #{basePriceDraft}
, #{mainPriceDraft}
, #{basePrice_1}
, #{priceUnitAdj}
, #{visitedNum}
, #{firstVisitTime,jdbcType=DATE}
, #{visitedNum15}
, #{visitedNum30}
, #{priceDealMean_1}
, #{priceDealMax_1}
, #{sumDeal_1}
, #{priceDealMean}
, #{priceDealMax}
, #{sumDeal}
, #{priceListedMin}
, #{priceCase1_ToAI_Pst}
, #{priceCase2_ToAI_Pst}
, #{priceCase1_ToLst_Pst}
, #{priceCase2_ToLst_Pst}
, #{priceCase1}
, #{priceCase1AdjPst}
, #{sumCase1}
, #{priceCase2}
, #{priceCase2AdjPst}
, #{sumCase2}
, #{voppbt}
, #{voppb}
, #{bindCommunityId}
, #{bindCommunityPst}
, #{bindBlockClass}
, #{bindBlockClassPst}
, #{bindBlockPropertyLevel}
, #{bindBlockPropertyLevelPst}
, #{bindBlockProjectType}
, #{bindBlockProjectTypePst}
, #{bindCountyProjectType}
, #{bindCountyProjectTypePst}
, #{voppat}
, #{voppa}
)
</insert>
<!-- 同步到基价库 -->
<insert id="insertUVBasePrice" parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice">
insert into obpm_LianCheng_Data.dbo.TLK_基价信息
(
LASTMODIFIED
, FORMNAME
, AUTHOR
, AUTHOR_DEPT_INDEX
, CREATED
, FORMID
, ISTMP
, VERSIONS
, APPLICATIONID
, STATEINT
, LASTMODIFIER
, DOMAINID
, AUDITORLIST
, COAUDITORLIST
, ID
, ITEM_PriceID
, ITEM_AIRAID
, ITEM_PROJECTTYPE
, ITEM_PRICETYPE
, ITEM_STANDARDPRICE
, ITEM_MAINAREAPRICE
, ITEM_VALUEPOINT
, ITEM_PRICEEXPLAIN
, ITEM_UPDATEPERSON
, ITEM_UPDATEDATE
, ITEM_PRICECHG
)
values(
getdate()
, N'数据维护管理/小区基价'
, N'amQRUkvYQAsAec1JGLp'
, 'Os6qe4Pmq5viTO8lTnW'
, getdate()
, N'ybte0OakLV17UzAyoVU'
, 0
, 1
, N'Ts7TykYmuEzzZgWhXHj'
, 0
, N'amQRUkvYQAsAec1JGLp'
, N'BclzHtmfLQoAA5ICTb5'
, N'{}'
, N'{}'
, newid()
, newid()
, #{communityId}
, 1
, 1
, #{basePriceDraft}
, #{mainPriceDraft}
, #{valuePoint}
, #{comment}
, '自动生成'
, getadte()
, #{voppa}
)
</insert>
<insert id="insertUVDocument" parameterType="com.ruoyi.project.data.price.domain.ArtificialResidenceSaleBasePrice">
insert into obpm_LianCheng_Data.dbo.T_DOCUMENT
(
ID
, LASTMODIFIED
, FORMNAME
, AUTHOR
, AUTHOR_DEPT_INDEX
, CREATED
, FORMID
, ISTMP
, VERSIONS
, APPLICATIONID
, LASTMODIFIER
, DOMAINID
, AUDITORLIST
, COAUDITORLIST
, MAPPINGID
)
SELECT ID
, LASTMODIFIED
, FORMNAME
, AUTHOR
, AUTHOR_DEPT_INDEX
, CREATED
, FORMID
, ISTMP
, VERSIONS
, APPLICATIONID
, LASTMODIFIER
, DOMAINID
, AUDITORLIST
, COAUDITORLIST
, ID
FROM obpm_LianCheng_Data.dbo.TLK_基价信息
where id=#{priceId}
</insert>
<update id="updateLastMonthPrice">
update b
set b.ITEM_STANDARDPRICE = a.BasePrice_1
, b.ITEM_MAINAREAPRICE = a.BasePrice_1 * isnull(c.AreaCoff, 1) * isnull(c.AreaCoff, 1) * isnull(c.YearCoff,1)
from DWA_PROJECTBASEPRICE_MANU_${yearMonth} a
join obpm_LianCheng_Data.dbo.TLK_基价信息 b
on a.ProjectID = b.ITEM_AIRAID
join dbo.DWA_PROJECTBASEPRICE_IMDT_${yearMonth} c
on a.ProjectID = c.ProjectID
where isnull(a.BasePrice_1, 1) <![CDATA[ <> ]]> isnull(b.ITEM_STANDARDPRICE, 1)
and b.ITEM_VALUEPOINT = #{lastValuePoint} and a.ProjectId=#{communityId};
</update>
</mapper>

View File

@ -0,0 +1,186 @@
<?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.ruoyi.project.data.price.mapper.ComputeResidenceSalePriceMapper">
<resultMap type="com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice"
id="MainMappingResult">
<result property="id" column="sid"/>
<result property="communityId" column="ProjectID"/>
<result property="communityName" column="ProjectName"/>
<result property="communityAddress" column="ProjectAddr"/>
<result property="countyName" column="county"/>
<result property="blockName" column="block"/>
<result property="loopName" column="loop"/>
<result property="hasIndex" column="isIndxGen"/>
<result property="isPstCalc" column="isPstCalc"/>
<result property="status" column="statusRun"/>
<result property="label" column="ProjectSPLabel"/>
<result property="propertyType" column="propertyType"/>
<result property="projectType" column="projectType"/>
<result property="projectTypeDtl" column="projectTypeDtl"/>
<result property="propertyLevel" column="projectLevel"/>
<result property="year" column="year"/>
<result property="area" column="mainArea"/>
<result property="yearCoefficient" column="yearCoff"/>
<result property="areaCoefficient" column="areaCoff"/>
<result property="comment" column="priceNote"/>
<result property="basePriceDraft" column="basePriceDft"/>
<result property="mainPriceDraft" column="mainPriceDft"/>
<result property="basePrice_1" column="basePrice_1"/>
<result property="voppat" column="voppat"/>
<result property="voppa" column="voppa"/>
<!-- 案例均价 -->
<result property="priceUnitAdj" column="PriceUnitAdj"/>
<result property="visitedNum" column="Visited_Num"/>
<result property="firstVisitTime" column="First_Visit_Time"/>
<result property="visitedNum15" column="Visited_Num_15"/>
<result property="visitedNum30" column="Visited_Num_30"/>
<!-- 上周期 -->
<result property="priceDealMean_1" column="priceDealMean_1"/>
<result property="priceDealMax_1" column="priceDealMax_1"/>
<result property="sumDeal_1" column="sumDeal_1"/>
<!-- 本周期 -->
<result property="priceDealMean" column="priceDealMean"/>
<result property="priceDealMax" column="priceDealMax"/>
<result property="sumDeal" column="sumDeal"/>
<!-- 挂牌最低价 -->
<result property="priceListedMin" column="priceListedMin"/>
<result property="priceCase1_ToAI_Pst" column="priceCase1_ToAI_Pst"/>
<result property="priceCase2_ToAI_Pst" column="priceCase2_ToAI_Pst"/>
<result property="priceCase1_ToLst_Pst" column="priceCase1_ToLst_Pst"/>
<result property="priceCase2_ToLst_Pst" column="priceCase2_ToLst_Pst"/>
<result property="priceCase1" column="priceCase1"/>
<result property="priceCase1AdjPst" column="priceCase1AdjPst"/>
<result property="sumCase1" column="sumCase1"/>
<result property="priceCase2" column="priceCase2"/>
<result property="priceCase2AdjPst" column="priceCase2AdjPst"/>
<result property="sumCase2" column="sumCase2"/>
<result property="voppbt" column="voppbt"/>
<result property="voppb" column="voppb"/>
<!-- 绑定小区相关信息 -->
<result property="bindCommunityId" column="bindProjID"/>
<result property="bindCommunityPst" column="bind_Proj_Pst"/>
<result property="bindBlockClass" column="bind_Block_Class"/>
<result property="bindBlockClassPst" column="bind_Block_Class_Pst"/>
<result property="bindBlockPropertyLevel" column="bind_Block_Plevel"/>
<result property="bindBlockPropertyLevelPst" column="bind_Block_Plevel_Pst"/>
<result property="bindBlockProjectType" column="bind_Block_PType"/>
<result property="bindBlockProjectTypePst" column="bind_Block_Ptype_Pst"/>
<result property="bindCountyProjectType" column="bind_County_PType"/>
<result property="bindCountyProjectTypePst" column="bind_County_Ptype_Pst"/>
</resultMap>
<sql id="selectAllField">
SELECT SID
,ProjectID
,ProjectName
,ProjectAddr
,County
,Block
,"Loop"
,IsIndxGen
,IsPstCalc
,StatusRun
,ProjectSPLabel
,PropertyType
,ProjectType
,ProjectTypeDtl
,ProjectLevel
,Year
,MainArea
,AreaCoff
,YearCoff
,PriceNote
,BasePriceDft
,MainPriceDft
,BasePrice_1
,PriceUnitAdj
,Visited_Num
,First_Visit_Time
,Visited_Num_15
,Visited_Num_30
,PriceDealMean_1
,PriceDealMax_1
,SumDeal_1
,PriceDealMean
,PriceDealMax
,SumDeal
,PriceListedMin
,PriceCase1_ToAI_Pst
,PriceCase2_ToAI_Pst
,PriceCase1_ToLst_Pst
,PriceCase2_ToLst_Pst
,PriceCase1
,PriceCase1AdjPst
,SumCase1
,PriceCase2
,PriceCase2AdjPst
,SumCase2
,VOPPBT
,VOPPB
,BindProjID
,Bind_Proj_Pst
,Bind_Block_Class
,Bind_Block_Class_Pst
,Bind_Block_Plevel
,Bind_Block_Plevel_Pst
,Bind_Block_PType
,Bind_Block_Ptype_Pst
,Bind_County_PType
,Bind_County_Ptype_Pst
,VOPPAT
,VOPPA
FROM dbo.DWA_PROJECTBASEPRICE_IMDT_${yearMonth}
</sql>
<!-- 分页总数 -->
<select id="selectPageCount"
parameterType="com.ruoyi.project.data.price.domain.ComputeResidenceRentBasePrice" resultType="int">
select count(1) from dbo.DWA_PROJECTBASEPRICE_IMDT_${yearMonth}
<where>
<if test="communityId != null">
AND ProjectID = #{communityId}
</if>
<if test="nameOrAddress != null">
AND (ProjectName like concat('%', #{nameOrAddress}, '%') or ProjectAddr like concat('%', #{nameOrAddress}, '%'))
</if>
</where>
</select>
<!-- 分页列表 -->
<select id="selectPageList"
parameterType="com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice"
resultMap="MainMappingResult">
<include refid="selectAllField"/>
<where>
<if test="communityId != null">
AND ProjectID = #{communityId}
</if>
<if test="nameOrAddress != null">
AND (ProjectName like concat('%', #{nameOrAddress}, '%') or ProjectAddr like concat('%', #{nameOrAddress}, '%'))
</if>
</where>
order by ProjectID ASC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only
</select>
<!-- -->
<select id="selectComputeResidenceRentBasePriceById" parameterType="String" resultMap="MainMappingResult">
<include refid="selectAllField"/>
where id = #{id}
</select>
<!-- 获取表名 -->
<select id="yearMonthList" resultType="com.ruoyi.project.common.VueSelectModel">
SELECT right(name,6) as value, right(name,6) as label
FROM sys.tables
where name like 'DWA_PROJECTBASEPRICE_IMDT_%'
order by cast(right(name,6) as int) desc
</select>
<!-- <update id="updateComputeResidenceRentBasePrice" parameterType="com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice">-->
<!-- update TLK_计价办公核准基价 set ITEM_YEARMONTH=ITEM_YEARMONTH-->
<!-- <trim prefix="SET" suffixOverrides=",">-->
<!-- </trim>-->
<!-- where id = #{id}-->
<!-- </update>-->
</mapper>

View File

@ -163,6 +163,145 @@
, AdjustedCumNum int
, PriceTotalIn decimal(18, 2)
, PriceDateIn date
, CaseType int
, RangeFlag int
);
</update>
<update id="createComputePriceTable">
<bind name="targetTableName" value="'dbo.DWA_PROJECTBASEPRICE_IMDT_' + yearMonth" />
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
drop table ${targetTableName};
create table ${targetTableName}
(
SID int not null identity(1,1)
, ProjectID nvarchar(20) primary key
, ProjectName nvarchar(1024)
, ProjectAddr nvarchar(1024)
, County nvarchar(512)
, Block nvarchar(512)
, Loop nvarchar(512)
, IsIndxGen tinyint
, IsPstCalc tinyint
, StatusRun tinyint
, ProjectSPLabel nvarchar(64)
, PropertyType nvarchar(256)
, ProjectType nvarchar(256)
, ProjectTypeDtl nvarchar(256)
, ProjectLevel nvarchar(64)
, Year int
, MainArea decimal(18, 2)
, AreaCoff decimal(7, 4)
, YearCoff decimal(7, 4)
, PriceNote nvarchar(1024)
, BasePriceDft decimal(18, 2)
, MainPriceDft decimal(18, 2)
, BasePrice_1 decimal(18, 2)
, PriceUnitAdj decimal(18, 2)
, Visited_Num int
, First_Visit_Time date
, Visited_Num_15 int
, Visited_Num_30 int
, PriceDealMean_1 decimal(18, 2)
, PriceDealMax_1 decimal(18, 2)
, SumDeal_1 int
, PriceDealMean decimal(18, 2)
, PriceDealMax decimal(18, 2)
, SumDeal int
, PriceListedMin decimal(18, 2)
, PriceCase1_ToAI_Pst decimal(18, 6)
, PriceCase2_ToAI_Pst decimal(18, 6)
, PriceCase1_ToLst_Pst decimal(18, 6)
, PriceCase2_ToLst_Pst decimal(18, 6)
, PriceCase1 decimal(18, 2)
, PriceCase1AdjPst decimal(18, 6)
, SumCase1 int
, PriceCase2 decimal(18, 2)
, PriceCase2AdjPst decimal(18, 6)
, SumCase2 int
, VOPPBT varchar(64)
, VOPPB decimal(18, 6)
, BindProjID int
, Bind_Proj_Pst decimal(18, 6)
, Bind_Block_Class nvarchar(128)
, Bind_Block_Class_Pst decimal(18, 6)
, Bind_Block_Plevel nvarchar(128)
, Bind_Block_Plevel_Pst decimal(18, 6)
, Bind_Block_PType nvarchar(128)
, Bind_Block_Ptype_Pst decimal(18, 6)
, Bind_County_PType nvarchar(128)
, Bind_County_Ptype_Pst decimal(18, 6)
, VOPPAT varchar(64)
, VOPPA decimal(18, 6)
);
</update>
<!-- 人工修正价格表和作价表一摸一样 -->
<update id="createArtificialPriceTable">
<bind name="targetTableName" value="'dbo.DWA_PROJECTBASEPRICE_MANU_' + yearMonth" />
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
drop table ${targetTableName};
create table ${targetTableName}
(
SID int not null identity(1,1)
, ProjectID nvarchar(20) primary key
, ProjectName nvarchar(1024)
, ProjectAddr nvarchar(1024)
, County nvarchar(512)
, Block nvarchar(512)
, Loop nvarchar(512)
, IsIndxGen tinyint
, IsPstCalc tinyint
, StatusRun tinyint
, ProjectSPLabel nvarchar(64)
, PropertyType nvarchar(256)
, ProjectType nvarchar(256)
, ProjectTypeDtl nvarchar(256)
, ProjectLevel nvarchar(64)
, Year int
, MainArea decimal(18, 2)
, AreaCoff decimal(7, 4)
, YearCoff decimal(7, 4)
, PriceNote nvarchar(1024)
, BasePriceDft decimal(18, 2)
, MainPriceDft decimal(18, 2)
, BasePrice_1 decimal(18, 2)
, PriceUnitAdj decimal(18, 2)
, Visited_Num int
, First_Visit_Time date
, Visited_Num_15 int
, Visited_Num_30 int
, PriceDealMean_1 decimal(18, 2)
, PriceDealMax_1 decimal(18, 2)
, SumDeal_1 int
, PriceDealMean decimal(18, 2)
, PriceDealMax decimal(18, 2)
, SumDeal int
, PriceListedMin decimal(18, 2)
, PriceCase1_ToAI_Pst decimal(18, 6)
, PriceCase2_ToAI_Pst decimal(18, 6)
, PriceCase1_ToLst_Pst decimal(18, 6)
, PriceCase2_ToLst_Pst decimal(18, 6)
, PriceCase1 decimal(18, 2)
, PriceCase1AdjPst decimal(18, 6)
, SumCase1 int
, PriceCase2 decimal(18, 2)
, PriceCase2AdjPst decimal(18, 6)
, SumCase2 int
, VOPPBT varchar(64)
, VOPPB decimal(18, 6)
, BindProjID int
, Bind_Proj_Pst decimal(18, 6)
, Bind_Block_Class nvarchar(128)
, Bind_Block_Class_Pst decimal(18, 6)
, Bind_Block_Plevel nvarchar(128)
, Bind_Block_Plevel_Pst decimal(18, 6)
, Bind_Block_PType nvarchar(128)
, Bind_Block_Ptype_Pst decimal(18, 6)
, Bind_County_PType nvarchar(128)
, Bind_County_Ptype_Pst decimal(18, 6)
, VOPPAT varchar(64)
, VOPPA decimal(18, 6)
);
</update>
</mapper>

View File

@ -0,0 +1,581 @@
/******************************小区案例整合中间表***********************************/
insert into dbo.DW_HOUSINGCASE_COMM_#yearMonth#
(
case_id
, HouseholdsID_LJ
, ProjectID_LJ
, ProjectID
, ProjectName
, ProjectAddr
, County
, Block
, Loop
, Roomtype
, Area
, Towards
, UpperFloorSum
, UpperFloorNum
, Elevator
, Decoration
, Year
, AreaCoff
, TowardsCoff
, FloorCoff
, DecorationRng
, YearCoff
, BuildingCoff
, BasePrice_1
, PriceTotal
, PriceUnit
, PriceUnitAdj
, Visited_Num
, First_Visit_Time
, Visited_Num_15
, Visited_Num_30
, Status
, AdjustedValue
, AdjustedPst
, AdjustedCumValue
, AdjustedCumPst
, AdjustedCumValueAbs
, AdjustedCumPstAbs
, AdjustedCumNum
, PriceTotalIn
, PriceDateIn
)
select a.case_id
, a.HouseholdsID_LJ
, a.ProjectID_LJ
, c.ITEM_AIRAID
, c.ITEM_RANAME
, c.ITEM_RAADRESS
, c.ITEM_DISTRICT1
, c.ITEM_SECTOR121
, c.ITEM_CIRCLEPOSITION
, a.Roomtype
, a.Area
, a.Towards
, a.UpperFloorSum
, a.UpperFloorNum
, a.Elevator
, a.Decoration
, a.Year
, isnull(a.AreaCoff, 1)
, isnull(a.TowardsCoff, 1)
, isnull(a.FloorCoff, 1)
, isnull(a.DecorationRng, 0)
, isnull(a.YearCoff, 1)
, isnull(a.BuildingCoff, 1)
, d.ITEM_STANDARDPRICE as BasePrice_1
, a.PriceTotal
, a.PriceUnit
, a.PriceUnitAdj
, a.Visited_Num
, a.First_Visit_Time
, a.Visited_Num_15
, a.Visited_Num_30
, a.Status
, a.AdjustedValue
, a.AdjustedPst
, a.AdjustedCumValue
, a.AdjustedCumPst
, a.AdjustedCumValueAbs
, a.AdjustedCumPstAbs
, a.AdjustedCumNum
, a.PriceTotalIn
, a.PriceDateIn
from dbo.ODS_HOUSINGCASELISTED_LJ_#yearMonth# a
left join obpm_LianCheng_Data.dbo.TLK_链家小区 b
on a.ProjectID_LJ = b.ITEM_ProjectID_LJ
left join obpm_LianCheng_Data.dbo.TLK_小区信息管理 c
on b.ITEM_ProjectID = c.ITEM_AIRAID
and c.ITEM_PROJECTTYPE = '1'
left join obpm_LianCheng_Data.dbo.TLK_基价信息 d
on b.ITEM_ProjectID = d.ITEM_AIRAID
and d.ITEM_PRICETYPE = '1'
and d.ITEM_PROJECTTYPE='1'
and d.ITEM_VALUEPOINT = '#valuePoint#'
where a.Status not in ( 4, 5 );
insert into dbo.DW_HOUSINGCASE_COMM_#yearMonth#
(
case_id
, ProjectID
, ProjectName
, ProjectAddr
, County
, Block
, Loop
, Area
, UpperFloorSum
, UpperFloorNum
, AreaCoff
, TowardsCoff
, FloorCoff
, DecorationRng
, YearCoff
, BuildingCoff
, BasePrice_1
, PriceTotal
, PriceUnit
, PriceUnitAdj
, Status
, PriceDateIn
)
select a.case_id
, a.ProjectID
, c.ITEM_RANAME
, c.ITEM_RAADRESS
, c.ITEM_DISTRICT1
, c.ITEM_SECTOR121
, c.ITEM_CIRCLEPOSITION
, a.Area
, a.UpperFloorSum
, a.UpperFloorNum
, isnull(a.AreaCoff, 1)
, 1
, isnull(a.FloorCoff, 1)
, 0
, 1
, isnull(a.BuildingCoff, 1)
, d.ITEM_STANDARDPRICE as BasePrice_1
, a.PriceTotal
, a.PriceUnit
, a.PriceUnitAdj
, NULL
, a.DateContract
from dbo.ODS_HOUSINGCASE_DEAL_#yearMonth# a
left join obpm_LianCheng_Data.dbo.TLK_小区信息管理 c
on a.ProjectID = c.ITEM_AIRAID
and c.ITEM_PROJECTTYPE = '1'
left join obpm_LianCheng_Data.dbo.TLK_基价信息 d
on a.ProjectID = d.ITEM_AIRAID
and d.ITEM_PRICETYPE = '1'
and d.ITEM_PROJECTTYPE='1'
and d.ITEM_VALUEPOINT = '#valuePoint#';
---HouseholdsID_LJ0NULLRangeFlag类型需要修改
update DW_HOUSINGCASE_COMM_#yearMonth#
set CaseType = case when HouseholdsID_LJ is null then 0 else 1 end,
RangeFlag = case when BasePrice_1 is null then 19
when HouseholdsID_LJ is null and abs(PriceUnitAdj*1.0/BasePrice_1-1)<=0.1 then 10
when HouseholdsID_LJ is not null and abs(PriceUnitAdj*1.0/BasePrice_1-1)<=0.06 then 10
when abs(PriceUnitAdj*1.0/BasePrice_1-1)>0.5 then 17
else 16 end;
/******************************小区基价计算中间表***********************************/
----
create table #DWA_PROJECTBASEPRICE_IMDT_STEP_1
(
ProjectID bigint primary key
, ProjectName nvarchar(1024)
, ProjectAddr nvarchar(1024)
, County nvarchar(512)
, Block nvarchar(512)
, Loop nvarchar(512)
, IsIndxGen tinyint
, IsPstCalc tinyint
, StatusRun tinyint
, BasePrice_1 decimal(18, 2)
, PriceUnitAdj decimal(18, 2)
, Visited_Num int
, First_Visit_Time date
, Visited_Num_15 int
, Visited_Num_30 int
, PriceDealMean_1 decimal(18, 2)
, PriceDealMax_1 decimal(18, 2)
, SumDeal_1 int
, PriceDealMean decimal(18, 2)
, PriceDealMax decimal(18, 2)
, SumDeal int
, PriceListedMin decimal(18, 2)
, PriceCase1_ToAI_Pst decimal(18, 6)
, PriceCase2_ToAI_Pst decimal(18, 6)
, PriceCase1_ToLst_Pst decimal(18, 6)
, PriceCase2_ToLst_Pst decimal(18, 6)
, PriceCase1 decimal(18, 2)
, PriceCase1AdjPst decimal(18, 6)
, SumCase1 int
, PriceCase2 decimal(18, 2)
, PriceCase2AdjPst decimal(18, 6)
, SumCase2 int
, PriceCase2_ToAI_0 decimal(18, 6) --PriceCase2_ToAI_Pst非空的案例数量
, PriceCase2_ToLst_0 decimal(18, 6) --PriceCase2_ToLst_Pst非空的案例数量
, PriceCase2Adj_0 decimal(18, 6) --PriceCase2AdjPst非空的案例数量
);
SELECT ITEM_DICTYPE,ITEM_DICVALUE,ITEM_DICTEXT
into #DICT
from obpm_LianCheng_Data.dbo.TLK_字典数据信息
where ITEM_DICTYPE in ('板块','环线','物业类型','物业档次','区域','小区类型')
update #DICT set ITEM_DICTEXT='浦东新区' where ITEM_DICVALUE='2' and ITEM_DICTYPE='区域';
update #DICT set ITEM_DICTEXT='静安区' where ITEM_DICVALUE='18' and ITEM_DICTYPE='区域';
update #DICT set ITEM_DICTEXT='黄浦区' where ITEM_DICVALUE='8' and ITEM_DICTYPE='区域';
---12status in (1,2)
insert into #DWA_PROJECTBASEPRICE_IMDT_STEP_1
select
a.ITEM_AIRAID,
a.ITEM_RANAME,
a.ITEM_RAADRESS,
g.ITEM_DICTEXT,
e.ITEM_DICTEXT,
f.ITEM_DICTEXT,
a.ITEM_ISBUILDINDEX,
a.ITEM_GAINCALCULATION,
a.ITEM_RUNNINGSTATE,
d.ITEM_STANDARDPRICE,
b.PriceUnitAdj,
b.Visited_Num,
b.First_Visit_Time,
b.Visited_Num_15,
b.Visited_Num_30,
c.PriceDealMean_1,
c.PriceDealMax_1,
c.SumDeal_1,
b.PriceDealMean,
b.PriceDealMax,
b.SumDeal,
b.PriceListedMin,
b.PriceCase1_ToAI_Pst,
b.PriceCase2_ToAI_Pst,
(PriceCase1 - PriceCase1_1)*1.0/PriceCase1_1 as PriceCase1_ToLst_Pst,
(PriceCase2 - PriceCase2_1)*1.0/PriceCase2_1 as PriceCase2_ToLst_Pst,
b.PriceCase1, b.PriceCase1AdjPst, b.SumCase1, b.PriceCase2, b.PriceCase2AdjPst, b.SumCase2,
b.PriceCase2_ToAI_0,
case when b.PriceCase2_ToAI_0<>0 and c.PriceCase2_1 is not null then PriceCase2_ToAI_0
else 0 end as PriceCase2_ToLst_0,
b.PriceCase2Adj_0
from obpm_LianCheng_Data.dbo.TLK_小区信息管理 a
left join (
select ProjectID, avg(BasePrice_1) as BasePrice_1, avg(PriceUnitAdj) as PriceUnitAdj, avg(Visited_Num) as Visited_Num,
min(First_Visit_Time) as First_Visit_Time, avg(Visited_Num_15) Visited_Num_15, avg(Visited_Num_30) as Visited_Num_30,
avg(case when CaseType=0 then PriceUnitAdj end) as PriceDealMean,
max(case when CaseType=0 then PriceUnitAdj end) as PriceDealMax,
count(case when CaseType=0 then 1 end) as SumDeal,
min(case when CaseType=1 then PriceUnitAdj end) as PriceListedMin,
avg(case when RangeFlag<>19 then PriceUnitAdj end) as PriceCase1,
count(case when RangeFlag<>19 then 1 end) as SumCase1,
avg(case when RangeFlag<>19 then PriceUnitAdj end)*1.0/avg(BasePrice_1)-1 as PriceCase1_ToAI_Pst,
avg(case when RangeFlag<>19 and status in (1,2) then AdjustedPst end) as PriceCase1AdjPst,
avg(case when RangeFlag = 10 then PriceUnitAdj end) as PriceCase2,
count(case when RangeFlag = 10 then 1 end) as SumCase2,
avg(case when RangeFlag = 10 then PriceUnitAdj end)*1.0/avg(BasePrice_1)-1 as PriceCase2_ToAI_Pst,
avg(case when RangeFlag = 10 and status in (1,2) then AdjustedPst end) as PriceCase2AdjPst,
count(case when RangeFlag = 10 then 1 end) as PriceCase2_ToAI_0,
count(case when RangeFlag = 10 and status in (1,2) then 1 end) as PriceCase2Adj_0
from dbo.DW_HOUSINGCASE_COMM_#yearMonth# group by ProjectID
) b on a.ITEM_AIRAID = b.ProjectID
left join (
select ProjectID, avg(case when CaseType=0 then PriceUnitAdj end) as PriceDealMean_1,
max(case when CaseType=0 then PriceUnitAdj end) as PriceDealMax_1,
count(case when CaseType=0 then 1 end) as SumDeal_1,
avg(case when RangeFlag<>19 then PriceUnitAdj end) as PriceCase1_1,
avg(case when RangeFlag = 10 then PriceUnitAdj end) as PriceCase2_1
from dbo.DW_HOUSINGCASE_COMM_#lastYearMonth#
group by ProjectID
) c on a.ITEM_AIRAID = c.ProjectID
left join obpm_LianCheng_Data.dbo.TLK_基价信息 d on a.ITEM_AIRAID = d.ITEM_AIRAID and d.ITEM_PROJECTTYPE='1' and d.ITEM_PRICETYPE='1'
left JOIN #DICT e on A.ITEM_SECTOR121=E.ITEM_DICVALUE and E.ITEM_DICTYPE='板块'
left JOIN #DICT f on A.ITEM_CIRCLEPOSITION=f.ITEM_DICVALUE and f.ITEM_DICTYPE='环线'
left JOIN #DICT g on A.ITEM_DISTRICT1=g.ITEM_DICVALUE and g.ITEM_DICTYPE='区域'
where a.ITEM_PROJECTTYPE='1' and d.ITEM_VALUEPOINT='#valuePoint#';
----
create table #DWA_PROJECTBASEPRICE_IMDT_STEP_2
(
ProjectID bigint primary key
, VOPPBT int ---
, VOPPB decimal(18, 6)---
);
INSERT INTO #DWA_PROJECTBASEPRICE_IMDT_STEP_2
SELECT a.ProjectID,
CASE WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN 11
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN 12
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN 13
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN 14
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0) THEN 15
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN 16
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN 17
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN 18
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN 19
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN 21
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN 22
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN 23
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN 24
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0
AND (PriceCase2_ToAI_0<>0 OR PriceCase2_ToLst_0<>0 OR PriceCase2Adj_0<>0)) THEN 25
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN 26
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN 27
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN 28
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN 29
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN 0
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN 32
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN 33
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN 34
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0) THEN 35
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN 36
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN 37
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN 38
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN 39
END AS VOPPBT,
CASE WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN MIN --11
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN MDN*1.0/4 --12
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN MDN*1.0/4 --13
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN MDN*1.0/4 --14
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0) THEN 0 --15
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN 0 --16
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN MDN*1.0/4 --17
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN 0 --18
WHEN (PriceCase2_ToAI_Pst>0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN MDN --19
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN MDN*1.0/4 --21
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN MDN*1.0/4 --22
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN 0 --23
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN 0 --24
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0
AND (PriceCase2_ToAI_0<>0 OR PriceCase2_ToLst_0<>0 OR PriceCase2Adj_0<>0)) THEN 0 --25
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN MIN*1.0/3 --26
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN 0 --27
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN 0 --28
WHEN (PriceCase2_ToAI_Pst=0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN MDN --29
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst>0) THEN 0 --31
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst=0) THEN 0 --32
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst>0 AND PriceCase2AdjPst<0) THEN MDN --33
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst>0) THEN 0 --34
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst=0) THEN 0 --35
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst=0 AND PriceCase2AdjPst<0) THEN MDN --36
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst>0) THEN MDN --37
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst=0) THEN MDN --38
WHEN (PriceCase2_ToAI_Pst<0 AND PriceCase2_ToLst_Pst<0 AND PriceCase2AdjPst<0) THEN MDN --39
END AS VOPPB
FROM (SELECT projectid, ISNULL(PriceCase2_ToAI_Pst,0) PriceCase2_ToAI_Pst,
ISNULL(PriceCase2_ToLst_Pst,0) PriceCase2_ToLst_Pst, ISNULL(PriceCase2AdjPst,0) PriceCase2AdjPst,
PriceCase2_ToAI_0, PriceCase2_ToLst_0, PriceCase2Adj_0
FROM #DWA_PROJECTBASEPRICE_IMDT_STEP_1 where PriceUnitAdj is not null) a
LEFT JOIN (
select projectid, min(vl) as MIN, avg(MDN) as MDN
from (
select projectid, tp, vl, PERCENTILE_CONT(0.5) within group(order by vl)over(partition by projectid) as MDN --
from (
select projectid, PriceCase2_ToAI_Pst, PriceCase2_ToLst_Pst, PriceCase2AdjPst
from #DWA_PROJECTBASEPRICE_IMDT_STEP_1 where PriceUnitAdj is not null
) as t unpivot(vl for tp in (PriceCase2_ToAI_Pst, PriceCase2_ToLst_Pst, PriceCase2AdjPst)) as up
)tt group by projectid
)b ON a.projectid = b.projectid;
----
-----2019.11.12沿
create table #DWA_PROJECTBASEPRICE_IMDT_STEP_3
(
ProjectID bigint primary key
, BindProjID int
, Bind_Proj_Pst decimal(18, 6)
, Bind_Block_Class nvarchar(128)
, Bind_Block_Class_Pst decimal(18, 6)
, Bind_Block_Plevel nvarchar(128)
, Bind_Block_Plevel_Pst decimal(18, 6)
, Bind_Block_PType nvarchar(128)
, Bind_Block_PType_Pst decimal(18, 6)
, Bind_County_PType nvarchar(128)
, Bind_County_PType_Pst decimal(18, 6)
, Bind_Price_1_PType nvarchar(128)
, Bind_Price_1_PType_Pst decimal(18, 6)
, VOPPAT varchar(64)
, VOPPA decimal(18, 6)
);
-- 1.绑定ID (注意:对于上期基价为空的小区,不参与涨跌幅推导)
SELECT
A.ITEM_AIRAID as ProjectId,
e.ITEM_DICTEXT as Block,
g.ITEM_DICTEXT as County,
h.ITEM_DICTEXT as PROPERTYLEVEL,
A.ITEM_ProjectTypeDtl as PROJECTTYPEDTL,
A.ITEM_BindClassID as BINDCLASSID,
B.ProjectID AS BindProjID,
B.VOPPB AS Bind_Proj_Pst,
CASE
when C.ProjectID IS NOT NULL THEN C.VOPPBT
WHEN B.ProjectID IS NOT NULL AND D.ITEM_STANDARDPRICE IS NOT NULL THEN '8505' END AS VOPPAT,
CASE
when C.ProjectID IS NOT NULL THEN C.VOPPB
WHEN B.ProjectID IS NOT NULL AND D.ITEM_STANDARDPRICE IS NOT NULL THEN B.VOPPB END AS VOPPA,
D.ITEM_STANDARDPRICE as BasePrice
INTO #TempBindProjID
FROM obpm_LianCheng_Data.dbo.TLK_小区信息管理 A
LEFT JOIN (SELECT ProjectID, VOPPBT, VOPPB FROM #DWA_PROJECTBASEPRICE_IMDT_STEP_2 WHERE ABS(VOPPB) < 0.1) B
on a.item_BindProjID = B.ProjectID
LEFT JOIN (SELECT ProjectID, VOPPBT, VOPPB FROM #DWA_PROJECTBASEPRICE_IMDT_STEP_2 WHERE ABS(VOPPB) < 0.1) C
on A.item_airaid = C.ProjectID
left join obpm_LianCheng_Data.dbo.TLK_基价信息 d
on a.ITEM_AIRAID = d.ITEM_AIRAID
and d.ITEM_PRICETYPE = '1'
and d.ITEM_PROJECTTYPE = '1'
and a.ITEM_PROJECTTYPE=d.ITEM_PROJECTTYPE
left join #DICT e on e.ITEM_DICTYPE='板块' and e.ITEM_DICVALUE=a.ITEM_SECTOR121
left JOIN #DICT g on g.ITEM_DICTYPE='区域' and A.ITEM_DISTRICT1=g.ITEM_DICVALUE
left JOIN #DICT h on h.ITEM_DICTYPE='物业档次' and A.ITEM_PROPERTYLEVEL=h.ITEM_DICVALUE
where a.ITEM_PROJECTTYPE='1' and d.ITEM_VALUEPOINT = '#valuePoint#'
-- 判断小区是否有效
-- 2.板块+绑定
SELECT A.ProjectId, A.Block, A.County, A.PROPERTYLEVEL, A.PROJECTTYPEDTL, A.BINDCLASSID, A.BindProjID, A.Bind_Proj_Pst,
B.Bind_Block_Class, B.Bind_Block_Class_Pst,
CASE WHEN A.VOPPAT IS NOT NULL THEN A.VOPPAT
WHEN B.Bind_Block_Class IS NOT NULL AND A.BasePrice IS NOT NULL THEN '8501' END AS VOPPAT,
CASE WHEN A.VOPPA IS NOT NULL THEN A.VOPPA
WHEN B.Bind_Block_Class IS NOT NULL AND A.BasePrice IS NOT NULL THEN B.Bind_Block_Class_Pst END AS VOPPA,
A.BasePrice
INTO #Temp_Bind_Block_Class
FROM #TempBindProjID A
LEFT JOIN (
SELECT Block+BindClassID AS Bind_Block_Class, AVG(VOPPA) AS Bind_Block_Class_Pst
FROM #TempBindProjID GROUP BY Block+BindClassID
) B
ON A.Block +A.BindClassID = B.Bind_Block_Class AND B.Bind_Block_Class_Pst IS NOT NULL
-- 3.板块+物业档次
SELECT A.ProjectID, A.Block, A.County, A.PROPERTYLEVEL, A.ProjectTypeDtl, A.BindClassID, A.BindProjID, A.Bind_Proj_Pst,
A.Bind_Block_Class, A.Bind_Block_Class_Pst, B.Bind_Block_Plevel, B.Bind_Block_Plevel_Pst,
CASE WHEN A.VOPPAT IS NOT NULL THEN A.VOPPAT
WHEN B.Bind_Block_Plevel IS NOT NULL AND A.BasePrice IS NOT NULL THEN '8502' END AS VOPPAT,
CASE WHEN A.VOPPA IS NOT NULL THEN A.VOPPA
WHEN B.Bind_Block_Plevel IS NOT NULL AND A.BasePrice IS NOT NULL THEN B.Bind_Block_Plevel_Pst END AS VOPPA,
A.BasePrice
INTO #Temp_Bind_Block_Plevel
FROM #Temp_Bind_Block_Class A
LEFT JOIN (
SELECT Block+PROPERTYLEVEL AS Bind_Block_Plevel, AVG(VOPPA) AS Bind_Block_Plevel_Pst
FROM #Temp_Bind_Block_Class GROUP BY Block+PROPERTYLEVEL
) B
ON A.Block +A.PROPERTYLEVEL = B.Bind_Block_Plevel AND B.Bind_Block_Plevel_Pst IS NOT NULL
-- 4.板块+物业类型
SELECT A.ProjectID, A.Block, A.County, A.PROPERTYLEVEL, A.ProjectTypeDtl, A.BindClassID, A.BindProjID, A.Bind_Proj_Pst,
A.Bind_Block_Class, A.Bind_Block_Class_Pst, A.Bind_Block_Plevel, A.Bind_Block_Plevel_Pst,
B.Bind_Block_PType, B.Bind_Block_PType_Pst,
CASE WHEN A.VOPPAT IS NOT NULL THEN A.VOPPAT
WHEN B.Bind_Block_PType IS NOT NULL AND A.BasePrice IS NOT NULL THEN '8503' END AS VOPPAT,
CASE WHEN A.VOPPA IS NOT NULL THEN A.VOPPA
WHEN B.Bind_Block_PType IS NOT NULL AND A.BasePrice IS NOT NULL THEN B.Bind_Block_PType_Pst END AS VOPPA,
A.BasePrice
INTO #Temp_Bind_Block_PType
FROM #Temp_Bind_Block_Plevel A
LEFT JOIN (
SELECT Block+ProjectTypeDtl AS Bind_Block_PType, AVG(VOPPA) AS Bind_Block_PType_Pst
FROM #Temp_Bind_Block_Plevel GROUP BY Block+ProjectTypeDtl
) B
ON A.Block+A.ProjectTypeDtl = B.Bind_Block_PType AND B.Bind_Block_PType_Pst IS NOT NULL
-- 5.区域+物业类型
SELECT A.ProjectID, A.Block, A.County, A.PROPERTYLEVEL, A.ProjectTypeDtl, A.BindClassID, A.BindProjID, A.Bind_Proj_Pst,
A.Bind_Block_Class, A.Bind_Block_Class_Pst, A.Bind_Block_Plevel, A.Bind_Block_Plevel_Pst,
A.Bind_Block_PType, A.Bind_Block_PType_Pst, B.Bind_County_PType, B.Bind_County_PType_Pst,
CASE WHEN A.VOPPAT IS NOT NULL THEN A.VOPPAT
WHEN B.Bind_County_PType IS NOT NULL AND A.BasePrice IS NOT NULL THEN '8504' END AS VOPPAT,
CASE WHEN A.VOPPA IS NOT NULL THEN A.VOPPA
WHEN B.Bind_County_PType IS NOT NULL AND A.BasePrice IS NOT NULL THEN B.Bind_County_PType_Pst END AS VOPPA,
A.BasePrice
INTO #Temp_Bind_County_PType
FROM #Temp_Bind_Block_PType A
LEFT JOIN (
SELECT County+ProjectTypeDtl AS Bind_County_PType, AVG(VOPPA) AS Bind_County_PType_Pst
FROM #Temp_Bind_Block_PType GROUP BY County+ProjectTypeDtl
) B
ON A.County +A.ProjectTypeDtl = B.Bind_County_PType AND B.Bind_County_PType_Pst IS NOT NULL
-- (11-39 ; 8505 ID平均值; 8506ID; 8501+; 8502+; 8503+; 8504+)
--6. 沿
INSERT INTO #DWA_PROJECTBASEPRICE_IMDT_STEP_3
SELECT ProjectID, BindProjID, Bind_Proj_Pst,
Bind_Block_Class, Bind_Block_Class_Pst, Bind_Block_Plevel, Bind_Block_Plevel_Pst,
Bind_Block_PType, Bind_Block_PType_Pst, Bind_County_PType, Bind_County_PType_Pst,
'沿用上周期基价' as Bind_Price_1_PType, 0 as Bind_Price_1_PType_Pst,
CASE WHEN A.VOPPAT IS NOT NULL THEN A.VOPPAT
WHEN A.BasePrice IS NOT NULL THEN '9999' END AS VOPPAT,
CASE WHEN A.VOPPA IS NOT NULL THEN A.VOPPA
WHEN A.BasePrice IS NOT NULL THEN 0 END AS VOPPA
FROM #Temp_Bind_County_PType A
DROP TABLE #TempBindProjID
DROP TABLE #Temp_Bind_Block_Class
DROP TABLE #Temp_Bind_Block_Plevel
DROP TABLE #Temp_Bind_Block_PType
DROP TABLE #Temp_Bind_County_PType
----
create table #DWA_PROJECTBASEPRICE_IMDT_STEP_4
(
ProjectID bigint primary key
, ProjectSPLabel nvarchar(64)
, PropertyType nvarchar(256)
, ProjectType nvarchar(256)
, ProjectTypeDtl nvarchar(256)
, ProjectLevel nvarchar(64)
, Year int
, MainArea decimal(18, 2)
, AreaCoff decimal(7, 4)
, YearCoff decimal(7, 4)
, PriceNote nvarchar(1024)
);
INSERT INTO #DWA_PROJECTBASEPRICE_IMDT_STEP_4
select A.ITEM_AIRAID
, A.ITEM_RALABLE
, e.ITEM_DICTEXT
, g.ITEM_DICTEXT
, A.ITEM_PROJECTTYPEDTL
, h.ITEM_DICTEXT
, A.ITEM_MAINCOMPLETIONYEAR
, A.ITEM_MAINAREA
, A.ITEM_AREACOFF
, A.ITEM_YEARCOFF
, D.ITEM_PRICEEXPLAIN
from obpm_LianCheng_Data.dbo.TLK_小区信息管理 A
left join obpm_LianCheng_Data.dbo.TLK_基价信息 D
on A.ITEM_AIRAID = D.ITEM_AIRAID
and A.ITEM_PROJECTTYPE = D.ITEM_PROJECTTYPE
and a.ITEM_PROJECTTYPE=d.ITEM_PROJECTTYPE
and D.ITEM_VALUEPOINT = '#valuePoint#'
left join #DICT e on e.ITEM_DICTYPE='物业类型' and e.ITEM_DICVALUE=a.ITEM_RAPROPERTYTYPE
left JOIN #DICT g on g.ITEM_DICTYPE='小区类型' and A.ITEM_RATYPE=g.ITEM_DICVALUE
left JOIN #DICT h on h.ITEM_DICTYPE='物业档次' and A.ITEM_PROPERTYLEVEL=h.ITEM_DICVALUE
where A.ITEM_PROJECTTYPE = '1'
and D.ITEM_PROJECTTYPE = '1'
and D.ITEM_PRICETYPE = '1';
----
INSERT INTO DWA_PROJECTBASEPRICE_IMDT_#yearMonth#
SELECT A.ProjectID, A.ProjectName, A.ProjectAddr, A.County, A.Block, A.Loop, a.IsIndxGen, a.IsPstCalc, a.StatusRun, D.ProjectSPLabel, D.PropertyType, D.ProjectType,
D.ProjectTypeDtl, D.ProjectLevel, D.[Year], D.MainArea, ISNULL(D.AreaCoff,1), ISNULL(D.YearCoff,1), D.PriceNote,
A.BasePrice_1*(1+C.VOPPA) AS BasePriceDft,
A.BasePrice_1*(1+C.VOPPA)*ISNULL(D.AreaCoff,1)*ISNULL(D.YearCoff,1) AS MainPriceDft,
A.BasePrice_1, A.PriceUnitAdj, A.Visited_Num, A.First_Visit_Time, A.Visited_Num_15, A.Visited_Num_30,
A.PriceDealMean_1, A.PriceDealMax_1, A.SumDeal_1, A.PriceDealMean, A.PriceDealMax, A.SumDeal,
A.PriceListedMin, A.PriceCase1_ToAI_Pst, A.PriceCase2_ToAI_Pst, A.PriceCase1_ToLst_Pst, A.PriceCase2_ToLst_Pst,
A.PriceCase1, A.PriceCase1AdjPst, A.SumCase1, A.PriceCase2, A.PriceCase2AdjPst, A.SumCase2, B.VOPPBT, B.VOPPB,
C.BindProjID, C.Bind_Proj_Pst, C.Bind_Block_Class, C.Bind_Block_Class_Pst, C.Bind_Block_Plevel, C.Bind_Block_Plevel_Pst,
C.Bind_Block_PType, C.Bind_Block_PType_Pst, C.Bind_County_PType, C.Bind_County_PType_Pst, C.VOPPAT, C.VOPPA
FROM #DWA_PROJECTBASEPRICE_IMDT_STEP_1 A
LEFT JOIN #DWA_PROJECTBASEPRICE_IMDT_STEP_2 B
ON A.ProjectID = B.ProjectID
LEFT JOIN #DWA_PROJECTBASEPRICE_IMDT_STEP_3 C
ON A.ProjectID = C.ProjectID
LEFT JOIN #DWA_PROJECTBASEPRICE_IMDT_STEP_4 D
ON A.ProjectID = D.ProjectID;
drop table #DWA_PROJECTBASEPRICE_IMDT_STEP_1;
drop table #DWA_PROJECTBASEPRICE_IMDT_STEP_2;
drop table #DWA_PROJECTBASEPRICE_IMDT_STEP_3;
drop table #DWA_PROJECTBASEPRICE_IMDT_STEP_4;
drop table #DICT;

View File

@ -0,0 +1,62 @@
create type DWA_PROJECTBASEPRICE_MANU_Table as table
(
communityId nvarchar(20) null ,
communityName nvarchar(200) null ,
communityAddress nvarchar(1024) null ,
countyName nvarchar(200) null ,
blockName nvarchar(200) null ,
loopName nvarchar(200) null ,
hasIndex int null ,
isPstCalc int null ,
status int null ,
label nvarchar(200) null ,
propertyType nvarchar(200) null ,
projectType nvarchar(200) null ,
projectTypeDtl nvarchar(200) null ,
propertyLevel nvarchar(200) null ,
year int null ,
area decimal(18, 2) null ,
areaCoefficient decimal(7, 4) null ,
yearCoefficient decimal(7, 4) null ,
comment nvarchar(1024) null ,
basePriceDraft decimal(18, 2) null ,
mainPriceDraft decimal(18, 2) null ,
basePrice_1 decimal(18, 2) null ,
voppat nvarchar(200) null ,
voppa decimal(18, 2) null ,
priceUnitAdj decimal(18, 2) null ,
visitedNum int null ,
firstVisitTime date null ,
visitedNum15 int null ,
visitedNum30 int null ,
priceDealMean_1 decimal(18, 2) null ,
priceDealMax_1 decimal(18, 2) null ,
sumDeal_1 int null ,
priceDealMean decimal(18, 2) null ,
priceDealMax decimal(18, 2) null ,
sumDeal int null ,
priceListedMin decimal(18, 2) null ,
priceCase1_ToAI_Pst decimal(18, 6) null ,
priceCase2_ToAI_Pst decimal(18, 6) null ,
priceCase1_ToLst_Pst decimal(18, 6) null ,
priceCase2_ToLst_Pst decimal(18, 6) null ,
priceCase1 decimal(18, 2) null ,
priceCase1AdjPst decimal(18, 6) null ,
sumCase1 int null ,
priceCase2 decimal(18, 2) null ,
priceCase2AdjPst decimal(18, 6) null ,
sumCase2 int null ,
voppbt nvarchar(200) null ,
voppb decimal(18, 6) null ,
bindCommunityId int null ,
bindCommunityPst decimal(18, 6) null ,
bindBlockClass nvarchar(200) null ,
bindBlockClassPst decimal(18, 6) null ,
bindBlockPropertyLevel nvarchar(200) null ,
bindBlockPropertyLevelPst decimal(18, 6) null ,
bindBlockProjectType nvarchar(200) null ,
bindBlockProjectTypePst decimal(18, 6) null ,
bindCountyProjectType nvarchar(200) null ,
bindCountyProjectTypePst decimal(18, 6) null
)