feat(每月作价):优化住宅售价计算
1. 成交案例下载和清洗 2. 挂牌案例下载、上传、清洗 3. 编写单元测试
This commit is contained in:
parent
517f42edf5
commit
0d14af53ac
36
ruoyi-ui/src/api/data/basePrice.js
Normal file
36
ruoyi-ui/src/api/data/basePrice.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询最终住宅租赁基价列表
|
||||||
|
export function list(query) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询最终住宅租赁基价详细
|
||||||
|
export function get(id) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改最终住宅租赁基价
|
||||||
|
export function update(data) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出最终住宅租赁基价
|
||||||
|
export function export2File(query) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
36
ruoyi-ui/src/api/data/originalResidenceOpeningCase.js
Normal file
36
ruoyi-ui/src/api/data/originalResidenceOpeningCase.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询最终住宅租赁基价列表
|
||||||
|
export function list(query) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询最终住宅租赁基价详细
|
||||||
|
export function get(id) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改最终住宅租赁基价
|
||||||
|
export function update(data) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出最终住宅租赁基价
|
||||||
|
export function export2File(query) {
|
||||||
|
return request({
|
||||||
|
url: '/data/base/price/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
150
ruoyi-ui/src/views/data/cases/OriginalResidenceOpeningCase.vue
Normal file
150
ruoyi-ui/src/views/data/cases/OriginalResidenceOpeningCase.vue
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true">
|
||||||
|
<el-form-item label="案例年月" prop="yearMonth">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.yearMonth"
|
||||||
|
placeholder="请输入案例年月"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="案例小区名称" prop="name">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.name"
|
||||||
|
placeholder="请输入案例小区名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="案例小区地址" prop="address">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.address"
|
||||||
|
placeholder="请输入案例小区地址"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="list.slice((pageNum-1)*pageSize,pageNum*pageSize)"
|
||||||
|
style="width: 100%;"
|
||||||
|
>
|
||||||
|
<el-table-column label="序号" type="index" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="会话编号" align="center" prop="tokenId" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="登录名称" align="center" prop="userName" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="部门名称" align="center" prop="deptName" />
|
||||||
|
<el-table-column label="主机" align="center" prop="ipaddr" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="登录地点" align="center" prop="loginLocation" />
|
||||||
|
<el-table-column label="浏览器" align="center" prop="browser" />
|
||||||
|
<el-table-column label="操作系统" align="center" prop="os" />
|
||||||
|
<el-table-column label="登录时间" align="center" prop="loginTime" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.loginTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleForceLogout(scope.row)"
|
||||||
|
v-hasPermi="['monitor:online:forceLogout']"
|
||||||
|
>强退</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { list, forceLogout } from "@/api/monitor/online";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Online",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 表格数据
|
||||||
|
list: [],
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
yearMonth: undefined,
|
||||||
|
name: undefined,
|
||||||
|
address: undefined,
|
||||||
|
// 租售状态
|
||||||
|
saleOrRent: undefined,
|
||||||
|
countyName: undefined,
|
||||||
|
ipaddr: undefined,
|
||||||
|
userName: undefined
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询登录日志列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
list(this.queryParams).then(response => {
|
||||||
|
this.list = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
/** 强退按钮操作 */
|
||||||
|
handleForceLogout(row) {
|
||||||
|
this.$confirm(
|
||||||
|
'是否确认强退名称为"' + row.userName + '"的数据项?',
|
||||||
|
"警告",
|
||||||
|
{
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(function() {
|
||||||
|
return forceLogout(row.tokenId);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.msgSuccess("强退成功");
|
||||||
|
})
|
||||||
|
.catch(function() {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
464
ruoyi-ui/src/views/data/price/BasePrice.vue
Normal file
464
ruoyi-ui/src/views/data/price/BasePrice.vue
Normal file
@ -0,0 +1,464 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" :rules="rules" ref="queryForm" :inline="true" label-width="100px">
|
||||||
|
<el-form-item label="联城小区ID" prop="communityId" clearable>
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.communityId"
|
||||||
|
placeholder="请输入案例小区名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="小区类型" prop="communityType" clearable>
|
||||||
|
<el-select v-model="queryParams.communityType" placeholder="请输入小区类型">
|
||||||
|
<el-option
|
||||||
|
v-for="item in communityTypeOptions"
|
||||||
|
:value="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:key="item.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="价格类型" prop="priceType" clearable>
|
||||||
|
<el-select v-model="queryParams.priceType" placeholder="请输入价格类型">
|
||||||
|
<el-option
|
||||||
|
v-for="item in priceTypeOptions"
|
||||||
|
:value="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:key="item.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="价值时点" prop="valuePoint" clearable>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="queryParams.valuePoint"
|
||||||
|
format="yyyy-MM"
|
||||||
|
value-format="yyyy-MM"
|
||||||
|
type="month"
|
||||||
|
placeholder="选择年月"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['system:user:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
</el-col>-->
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['system:user:export']"
|
||||||
|
>导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="info"
|
||||||
|
icon="el-icon-upload2"
|
||||||
|
size="mini"
|
||||||
|
@click="handleImport"
|
||||||
|
v-hasPermi="['system:user:import']"
|
||||||
|
>导入</el-button>
|
||||||
|
</el-col>-->
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
|
<el-table-column label="小区ID" align="center" prop="communityId" />
|
||||||
|
<el-table-column label="项目类型" align="center" prop="communityType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag size="big" v-if="1 == scope.row.communityType">住宅</el-tag>
|
||||||
|
<el-tag size="big" type="success" v-if="2 == scope.row.communityType">办公</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column
|
||||||
|
label=""
|
||||||
|
align="center"
|
||||||
|
prop=""
|
||||||
|
:formatter="priceTypeFormatter"
|
||||||
|
/> -->
|
||||||
|
<el-table-column label="价格类型" align="center" prop="priceType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag size="big" v-if="1 == scope.row.priceType">售价</el-tag>
|
||||||
|
<el-tag size="big" type="success" v-if="2 == scope.row.priceType">租金</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="价值时点" align="center" prop="valuePoint" />
|
||||||
|
<el-table-column label="标准基价" align="center" prop="standardPrice" />
|
||||||
|
<el-table-column label="主力面积基价" align="center" prop="mainAreaPrice" />
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['system:user:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['system:user:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改办公基价对话框 -->
|
||||||
|
<!-- <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="160px">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="小区ID">
|
||||||
|
<el-input v-model="form.communityId" disabled="true" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="楼栋ID">
|
||||||
|
<el-input v-model="form.buildingId" disabled="true" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力基价(元/㎡)">
|
||||||
|
<el-input v-model="form.mainPrice" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力租金(元/月·㎡)">
|
||||||
|
<el-input v-model="form.mainPriceRent" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力基价涨跌幅">
|
||||||
|
<el-input v-model="form.mainPricePst" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力租金涨跌幅">
|
||||||
|
<el-input v-model="form.mainPriceRentPst" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力基价类型">
|
||||||
|
<el-input v-model="form.mainPriceType" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="主力租金类型">
|
||||||
|
<el-input v-model="form.mainPriceRentType" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||||
|
<el-upload
|
||||||
|
ref="upload"
|
||||||
|
:limit="1"
|
||||||
|
accept=".xlsx, .xls"
|
||||||
|
:headers="upload.headers"
|
||||||
|
:action="upload.url + '?updateSupport=' + upload.updateSupport"
|
||||||
|
:disabled="upload.isUploading"
|
||||||
|
:on-progress="handleFileUploadProgress"
|
||||||
|
:on-success="handleFileSuccess"
|
||||||
|
:auto-upload="false"
|
||||||
|
drag
|
||||||
|
>
|
||||||
|
<i class="el-icon-upload"></i>
|
||||||
|
<div class="el-upload__text">
|
||||||
|
将文件拖到此处,或
|
||||||
|
<em>点击上传</em>
|
||||||
|
</div>
|
||||||
|
<div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
|
||||||
|
</el-upload>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||||
|
<el-button @click="upload.open = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>-->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
|
import {
|
||||||
|
list,
|
||||||
|
get,
|
||||||
|
update,
|
||||||
|
export2File,
|
||||||
|
getYearMonthList
|
||||||
|
} from "@/api/data/basePrice";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "basePrice",
|
||||||
|
data() {
|
||||||
|
// 年月
|
||||||
|
var checkYearMonth = (rule, value, callback) => {
|
||||||
|
if (!value) {
|
||||||
|
callback(new Error("请输入年月"));
|
||||||
|
} else if (value === "" || isNaN(parseInt(value))) {
|
||||||
|
callback(new Error("请输入年月"));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 办公基价表格数据
|
||||||
|
dataList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
communityId: undefined,
|
||||||
|
communityType: undefined,
|
||||||
|
priceType: undefined,
|
||||||
|
valuePoint: undefined,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
yearMonthList: [],
|
||||||
|
priceTypeOptions: [
|
||||||
|
{ value: 1, label: "售价" },
|
||||||
|
{ value: 2, label: "租金" }
|
||||||
|
],
|
||||||
|
communityTypeOptions: [
|
||||||
|
{ value: 1, label: "住宅" },
|
||||||
|
{ value: 2, label: "办公" }
|
||||||
|
],
|
||||||
|
upload: {
|
||||||
|
// 是否显示弹出层(用户导入)
|
||||||
|
open: false,
|
||||||
|
// 弹出层标题(用户导入)
|
||||||
|
title: "",
|
||||||
|
// 是否禁用上传
|
||||||
|
isUploading: false,
|
||||||
|
// 设置上传的请求头部
|
||||||
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
|
// 上传的地址
|
||||||
|
url:
|
||||||
|
process.env.VUE_APP_BASE_API +
|
||||||
|
"/data/compute/rentprice/residence/importData"
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
yearMonth: [
|
||||||
|
{ validator: checkYearMonth, trigger: "blur" },
|
||||||
|
{ validator: checkYearMonth, trigger: "change" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.loading = false;
|
||||||
|
// getYearMonthList().then(response => {
|
||||||
|
// this.yearMonthList = response.data;
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
priceTypeFormatter: function(row, column, cellValue, index) {
|
||||||
|
if (1 === cellValue) {
|
||||||
|
return "售价";
|
||||||
|
} else if (2 === cellValue) {
|
||||||
|
return "租金";
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
communityTypeFormatter: function(row, column, cellValue, index) {
|
||||||
|
if (1 === cellValue) {
|
||||||
|
return "住宅";
|
||||||
|
} else if (2 === cellValue) {
|
||||||
|
return "办公";
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
yesOrNotFormatter: function(row, column, cellValue, index) {
|
||||||
|
if (cellValue) return "是";
|
||||||
|
return "否";
|
||||||
|
},
|
||||||
|
statusFormatter: function(row, column, cellValue, index) {
|
||||||
|
if (cellValue) return "正常";
|
||||||
|
return "失效";
|
||||||
|
},
|
||||||
|
dateFormatter: function(row, column, cellValue, index) {
|
||||||
|
if (cellValue) {
|
||||||
|
return cellValue.substring(0, 10);
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
},
|
||||||
|
/** 查询办公基价列表 */
|
||||||
|
getList() {
|
||||||
|
this.$refs["queryForm"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.loading = true;
|
||||||
|
list(this.queryParams).then(response => {
|
||||||
|
this.dataList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: undefined
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id);
|
||||||
|
this.single = selection.length != 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
// handleAdd() {
|
||||||
|
// this.reset();
|
||||||
|
// this.open = true;
|
||||||
|
// this.title = "添加办公基价";
|
||||||
|
// },
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids;
|
||||||
|
get(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改办公基价";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm: function() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != undefined) {
|
||||||
|
update(this.form).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
} else {
|
||||||
|
this.msgError(response.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// addUltimate(this.form).then(response => {
|
||||||
|
// if (response.code === 200) {
|
||||||
|
// this.msgSuccess("新增成功");
|
||||||
|
// this.open = false;
|
||||||
|
// this.getList();
|
||||||
|
// } else {
|
||||||
|
// this.msgError(response.msg);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
const queryParams = this.queryParams;
|
||||||
|
this.$confirm("是否确认导出所有住宅租赁基价数据项?", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
})
|
||||||
|
.then(function() {
|
||||||
|
return export2File(queryParams);
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
this.download(response.msg);
|
||||||
|
})
|
||||||
|
.catch(function() {});
|
||||||
|
},
|
||||||
|
handleImport() {
|
||||||
|
this.upload.title = "办公基价导入";
|
||||||
|
this.upload.open = true;
|
||||||
|
},
|
||||||
|
// 文件上传中处理
|
||||||
|
handleFileUploadProgress(event, file, fileList) {
|
||||||
|
this.upload.isUploading = true;
|
||||||
|
},
|
||||||
|
// 文件上传成功处理
|
||||||
|
handleFileSuccess(response, file, fileList) {
|
||||||
|
this.upload.open = false;
|
||||||
|
this.upload.isUploading = false;
|
||||||
|
this.$refs.upload.clearFiles();
|
||||||
|
this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
// 提交上传文件
|
||||||
|
submitFileForm() {
|
||||||
|
this.$refs.upload.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
143
ruoyi/src/main/java/com/ruoyi/common/utils/LoadUtil.java
Normal file
143
ruoyi/src/main/java/com/ruoyi/common/utils/LoadUtil.java
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
package com.ruoyi.common.utils;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class LoadUtil {
|
||||||
|
private static final int SIZE = 1024;
|
||||||
|
private static final String CHARSET_NAME = "UTF-8";
|
||||||
|
|
||||||
|
public static String loadContent(String name) {
|
||||||
|
|
||||||
|
InputStream is = null;
|
||||||
|
try {
|
||||||
|
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(is, CHARSET_NAME), SIZE);
|
||||||
|
char[] buf = new char[1024];
|
||||||
|
int numRead = 0;
|
||||||
|
while ((numRead = reader.read(buf)) != -1) {
|
||||||
|
String readData = String.valueOf(buf, 0, numRead);
|
||||||
|
stringBuffer.append(readData);
|
||||||
|
buf = new char[1024];
|
||||||
|
}
|
||||||
|
reader.close();
|
||||||
|
return stringBuffer.toString();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (is != null) {
|
||||||
|
is.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static List<String> loadList(String name) {
|
||||||
|
List<String> result = new ArrayList<>();
|
||||||
|
InputStream is = null;
|
||||||
|
try {
|
||||||
|
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(is, CHARSET_NAME), SIZE);
|
||||||
|
String theWord = null;
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
theWord = br.readLine();
|
||||||
|
if (null != theWord)
|
||||||
|
result.add(theWord);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (theWord != null);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (is != null) {
|
||||||
|
is.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 这样写有什么问题吗?
|
||||||
|
// private static BufferedReader readLine(String name) {
|
||||||
|
// InputStream is = null;
|
||||||
|
// try {
|
||||||
|
// is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
|
||||||
|
// BufferedReader br = new BufferedReader(new InputStreamReader(is, CHARSET_NAME), SIZE);
|
||||||
|
// return br;
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } finally {
|
||||||
|
// try {
|
||||||
|
// if (is != null) {
|
||||||
|
// is.close();
|
||||||
|
// }
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Map<String, String> loadDict(String name) {
|
||||||
|
Map<String, String> result = new LinkedHashMap<>();
|
||||||
|
InputStream is = null;
|
||||||
|
try {
|
||||||
|
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(is, CHARSET_NAME), SIZE);
|
||||||
|
String theWord = null;
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
theWord = br.readLine();
|
||||||
|
if (null != theWord) {
|
||||||
|
String[] pair = theWord.split(" ");
|
||||||
|
result.put(pair[0], pair[1]);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (theWord != null);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (is != null) {
|
||||||
|
is.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
package com.ruoyi.project.data.basis.domain;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ruoyi.framework.web.domain.BaseEntity;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class UVBasePrice extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* 小区id
|
||||||
|
*/
|
||||||
|
private String communityId;
|
||||||
|
/**
|
||||||
|
* 价格类型
|
||||||
|
*/
|
||||||
|
private Integer priceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小区类型(1、住宅;2、办公)
|
||||||
|
*/
|
||||||
|
private Integer communityType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基价(售价、租金)
|
||||||
|
*/
|
||||||
|
private BigDecimal standardPrice;
|
||||||
|
/**
|
||||||
|
* 主力面积基价(售价、租金)
|
||||||
|
*/
|
||||||
|
private BigDecimal mainAreaPrice;
|
||||||
|
/**
|
||||||
|
* 价值时点
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern="yyyy-MM-dd")
|
||||||
|
private Date valuePoint;
|
||||||
|
/**
|
||||||
|
* 修改说明
|
||||||
|
*/
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
public String getCommunityId() {
|
||||||
|
return communityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommunityId(String communityId) {
|
||||||
|
this.communityId = communityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPriceType() {
|
||||||
|
return priceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPriceType(Integer priceType) {
|
||||||
|
this.priceType = priceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCommunityType() {
|
||||||
|
return communityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommunityType(Integer communityType) {
|
||||||
|
this.communityType = communityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getStandardPrice() {
|
||||||
|
return standardPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStandardPrice(BigDecimal standardPrice) {
|
||||||
|
this.standardPrice = standardPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMainAreaPrice() {
|
||||||
|
return mainAreaPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMainAreaPrice(BigDecimal mainAreaPrice) {
|
||||||
|
this.mainAreaPrice = mainAreaPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getValuePoint() {
|
||||||
|
return valuePoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValuePoint(Date valuePoint) {
|
||||||
|
this.valuePoint = valuePoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComment() {
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComment(String comment) {
|
||||||
|
this.comment = comment;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package com.ruoyi.project.data.basis.domain;
|
||||||
|
|
||||||
|
public class UVBasePriceQueryModel extends UVBasePrice {
|
||||||
|
private Integer pageIndex;
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
|
public Integer getPageIndex() {
|
||||||
|
return pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageIndex(Integer pageIndex) {
|
||||||
|
this.pageIndex = pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPageSize() {
|
||||||
|
return pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSize(Integer pageSize) {
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.ruoyi.project.data.basis.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePrice;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@DS("teemlink")
|
||||||
|
public interface UVBasePriceMapper {
|
||||||
|
/**
|
||||||
|
* 分页总数
|
||||||
|
*
|
||||||
|
* @param uvBasePrice
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer pageCount(UVBasePrice uvBasePrice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param queryModel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<UVBasePrice> pageList(UVBasePriceQueryModel queryModel);
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.ruoyi.project.data.basis.service;
|
||||||
|
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePrice;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface IUVBasePriceService{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*
|
||||||
|
* @param queryModel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<UVBasePrice> pageList(UVBasePriceQueryModel queryModel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param queryModel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer pageCount(UVBasePriceQueryModel queryModel);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.ruoyi.project.data.basis.service.impl;
|
||||||
|
|
||||||
|
import com.ruoyi.project.data.basis.domain.LianJiaCommunityDict;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePrice;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel;
|
||||||
|
import com.ruoyi.project.data.basis.mapper.LianJiaCommunityDictMapper;
|
||||||
|
import com.ruoyi.project.data.basis.mapper.UVBasePriceMapper;
|
||||||
|
import com.ruoyi.project.data.basis.service.ILianJiaCommunityDictService;
|
||||||
|
import com.ruoyi.project.data.basis.service.IUVBasePriceService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class UVBasePriceServiceImpl implements IUVBasePriceService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UVBasePriceMapper uvBasePriceMapper;
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public int insert(LianJiaCommunityDict dict) {
|
||||||
|
// return jdbcTemplate.update("insert into [dbo].[lianjia_dictionary]([lianjia_community_id]," +
|
||||||
|
// "[lianjia_community_name]," +
|
||||||
|
// "[lianjia_community_address],[lianjia_community_url],[lianjia_community_curl],[community_id]," +
|
||||||
|
// "[building_id],[clean_community_name],[clean_community_address],[clean_building_address],[enable]," +
|
||||||
|
// "[create_time]) value (?,?,?,?,?,?,?,?,?,?,1,getdate());", new Object[]{dict.getLianJiaCommunityId(),
|
||||||
|
// dict.getLianJiaCommunityName(), dict.getLianJiaCommunityAddress(), dict.getLianJiaUrl(),
|
||||||
|
// dict.getLianJiaCommunityUrl(), dict.getCommunityId(), dict.getBuildingId(), dict
|
||||||
|
// .getCleanCommunityName()
|
||||||
|
// , dict.getCleanCommunityAddress(), dict.getCleanBuildingAddress()});
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public int update(LianJiaCommunityDict dict) {
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public int delete(Integer id) {
|
||||||
|
// return jdbcTemplate.update("delete from lianjia_dictionary where id= ? ;", new Object[]{id});
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public List<LianJiaCommunityDict> selectPageOfList(LianJiaCommunityDict dict) {
|
||||||
|
// return lianJiaCommunityDictMapper.selectPageOfList(dict);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public int selectPageOfTotal(LianJiaCommunityDict dict) {
|
||||||
|
// return lianJiaCommunityDictMapper.selectPageOfTotal(dict);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public LianJiaCommunityDict selectById(Integer id) {
|
||||||
|
// return lianJiaCommunityDictMapper.selectById(id);
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UVBasePrice> pageList(UVBasePriceQueryModel queryModel) {
|
||||||
|
return uvBasePriceMapper.pageList(queryModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer pageCount(UVBasePriceQueryModel queryModel) {
|
||||||
|
return uvBasePriceMapper.pageCount(queryModel);
|
||||||
|
}
|
||||||
|
}
|
@ -28,5 +28,4 @@ public class CasesController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,819 @@
|
|||||||
|
package com.ruoyi.project.data.cases.domain;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import org.springframework.util.DigestUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 住宅成交案例
|
||||||
|
*/
|
||||||
|
public class OriginalResidenceSaleClosingCase {
|
||||||
|
private static final SimpleDateFormat simplaDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
private static List<String> juzhu = new LinkedList<>();
|
||||||
|
private static List<String> bangong = new LinkedList<>();
|
||||||
|
private static List<String> shangye = new LinkedList<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
juzhu.add("办公楼");
|
||||||
|
juzhu.add("商铺");
|
||||||
|
juzhu.add("未知");
|
||||||
|
juzhu.add("其它");
|
||||||
|
juzhu.add("工厂");
|
||||||
|
juzhu.add("车库");
|
||||||
|
|
||||||
|
bangong.add("办公");
|
||||||
|
bangong.add("办公楼");
|
||||||
|
bangong.add("写字楼");
|
||||||
|
|
||||||
|
shangye.add("商铺");
|
||||||
|
shangye.add("商店");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 唯一标识
|
||||||
|
*/
|
||||||
|
private String caseId;
|
||||||
|
/**
|
||||||
|
* 小区名称
|
||||||
|
*/
|
||||||
|
private String caseCommunityName;
|
||||||
|
/**
|
||||||
|
* 房屋地址
|
||||||
|
*/
|
||||||
|
private String caseAddress;
|
||||||
|
/**
|
||||||
|
* 区域
|
||||||
|
*/
|
||||||
|
private String caseCountyName;
|
||||||
|
private String cleanCountyName;
|
||||||
|
/**
|
||||||
|
* 板块
|
||||||
|
*/
|
||||||
|
private String caseBlockName;
|
||||||
|
private String cleanBlockName;
|
||||||
|
/**
|
||||||
|
* 环线
|
||||||
|
*/
|
||||||
|
private String caseLoopName;
|
||||||
|
private String cleanLoopName;
|
||||||
|
/**
|
||||||
|
* 合同编号
|
||||||
|
*/
|
||||||
|
private String caseContractNumber;
|
||||||
|
/**
|
||||||
|
* 房源编号
|
||||||
|
*/
|
||||||
|
private String caseNumber;
|
||||||
|
/**
|
||||||
|
* 户型
|
||||||
|
*/
|
||||||
|
private String caseApartmentLayout;
|
||||||
|
/**
|
||||||
|
* 面积
|
||||||
|
*/
|
||||||
|
private BigDecimal caseArea;
|
||||||
|
/**
|
||||||
|
* 朝向
|
||||||
|
*/
|
||||||
|
private String caseToward;
|
||||||
|
/**
|
||||||
|
* 楼层
|
||||||
|
*/
|
||||||
|
private String caseStorey;
|
||||||
|
/**
|
||||||
|
* 总楼层
|
||||||
|
*/
|
||||||
|
private String cleanTotalFloor;
|
||||||
|
/**
|
||||||
|
* 地上层数
|
||||||
|
*/
|
||||||
|
private Integer cleanGroundFloor;
|
||||||
|
/**
|
||||||
|
* 所在层
|
||||||
|
*/
|
||||||
|
private Integer cleanCurrentFloor;
|
||||||
|
/**
|
||||||
|
* 所在楼层描述
|
||||||
|
*/
|
||||||
|
private String cleanCurrentFloorDesc;
|
||||||
|
/**
|
||||||
|
* 登记日期
|
||||||
|
*/
|
||||||
|
private Date caseRegisterDate;
|
||||||
|
/**
|
||||||
|
* 签约日期
|
||||||
|
*/
|
||||||
|
private Date caseSigningDate;
|
||||||
|
/**
|
||||||
|
* 挂牌价格
|
||||||
|
*/
|
||||||
|
private BigDecimal caseOpeningPrice;
|
||||||
|
/**
|
||||||
|
* 成交总价
|
||||||
|
*/
|
||||||
|
private BigDecimal caseTotalPrice;
|
||||||
|
/**
|
||||||
|
* 成交单价
|
||||||
|
*/
|
||||||
|
private BigDecimal caseUnitPrice;
|
||||||
|
/**
|
||||||
|
* 抓取日期
|
||||||
|
*/
|
||||||
|
private Date caseGetDate;
|
||||||
|
/**
|
||||||
|
* 成交URL
|
||||||
|
*/
|
||||||
|
private String caseUrl;
|
||||||
|
/**
|
||||||
|
* 中介公司
|
||||||
|
*/
|
||||||
|
private String agencyName;
|
||||||
|
/**
|
||||||
|
* 中介类型
|
||||||
|
*/
|
||||||
|
private String agencyType;
|
||||||
|
/**
|
||||||
|
* 卖家类型
|
||||||
|
*/
|
||||||
|
private String sellerType;
|
||||||
|
/**
|
||||||
|
* 买家类型
|
||||||
|
*/
|
||||||
|
private String buyerType;
|
||||||
|
/**
|
||||||
|
* 出生年月日
|
||||||
|
*/
|
||||||
|
private Date birthday;
|
||||||
|
/**
|
||||||
|
* 抓取网站名
|
||||||
|
*/
|
||||||
|
private String caseProvider;
|
||||||
|
/**
|
||||||
|
* 房屋类型(公寓 口径后面提供)
|
||||||
|
*/
|
||||||
|
private String caseHouseType;
|
||||||
|
/**
|
||||||
|
* 成交类型 必填 二手 取值:一手、二手
|
||||||
|
*/
|
||||||
|
private Integer cleanCaseType;
|
||||||
|
/**
|
||||||
|
* 单套地址
|
||||||
|
*/
|
||||||
|
private String cleanCondoAddress;
|
||||||
|
/**
|
||||||
|
* 楼栋地址
|
||||||
|
*/
|
||||||
|
private String cleanBuildingAddress;
|
||||||
|
/**
|
||||||
|
* 房屋地址(一手二手)(规范) 浦城路366弄8号1803 地址匹配中间结果
|
||||||
|
* 应该是单套地址
|
||||||
|
*/
|
||||||
|
private String cleanAddress;
|
||||||
|
/**
|
||||||
|
* 单套id
|
||||||
|
*/
|
||||||
|
private String cleanCondoId;
|
||||||
|
/**
|
||||||
|
* 楼栋id
|
||||||
|
*/
|
||||||
|
private String cleanBuildingId;
|
||||||
|
/**
|
||||||
|
* 小区id
|
||||||
|
*/
|
||||||
|
private String cleanCommunityId;
|
||||||
|
/**
|
||||||
|
* 楼栋系数
|
||||||
|
*/
|
||||||
|
private BigDecimal buildingCoefficient;
|
||||||
|
/**
|
||||||
|
* 单套系数
|
||||||
|
*/
|
||||||
|
private BigDecimal condoAreaCoefficient;
|
||||||
|
/**
|
||||||
|
* 竣工日期
|
||||||
|
*/
|
||||||
|
private Integer caseYear;
|
||||||
|
/**
|
||||||
|
* 年份系数
|
||||||
|
*/
|
||||||
|
private BigDecimal yearCoefficient;
|
||||||
|
/**
|
||||||
|
* 主力面积基价
|
||||||
|
*/
|
||||||
|
private BigDecimal areaCoefficient;
|
||||||
|
/**
|
||||||
|
* 物业档次
|
||||||
|
*/
|
||||||
|
private String cleanProjectLevel;
|
||||||
|
/**
|
||||||
|
* 电梯
|
||||||
|
*/
|
||||||
|
private String caseElevator;
|
||||||
|
private Boolean cleanElevator;
|
||||||
|
/**
|
||||||
|
* 电梯系数
|
||||||
|
*/
|
||||||
|
private Integer elevatorCoefficient;
|
||||||
|
/**
|
||||||
|
* 没有电梯系数
|
||||||
|
*/
|
||||||
|
private Integer noElevatorCoefficient;
|
||||||
|
/**
|
||||||
|
* 楼层修正系数
|
||||||
|
*/
|
||||||
|
private BigDecimal floorCoefficient;
|
||||||
|
/***
|
||||||
|
* 评估单价
|
||||||
|
*/
|
||||||
|
private BigDecimal appraiseUnitPrice;
|
||||||
|
/**
|
||||||
|
* 评估总价
|
||||||
|
*/
|
||||||
|
private BigDecimal appraiseTotalPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物业类型
|
||||||
|
*/
|
||||||
|
private String cleanPropertyType;
|
||||||
|
/**
|
||||||
|
* 房屋性质
|
||||||
|
*/
|
||||||
|
private String caseHouseProperty;
|
||||||
|
/**
|
||||||
|
* 计算总价
|
||||||
|
*/
|
||||||
|
private BigDecimal computeTotalPrice;
|
||||||
|
/**
|
||||||
|
* 计算单价
|
||||||
|
*/
|
||||||
|
private BigDecimal computeUnitPrice;
|
||||||
|
/**
|
||||||
|
* 参考总价
|
||||||
|
*/
|
||||||
|
private BigDecimal refTotalPrice;
|
||||||
|
/**
|
||||||
|
* 参考单价
|
||||||
|
*/
|
||||||
|
private BigDecimal refUnitPrice;
|
||||||
|
|
||||||
|
public String getCaseId() {
|
||||||
|
return caseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseId(String caseId) {
|
||||||
|
this.caseId = caseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseCommunityName() {
|
||||||
|
return caseCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseCommunityName(String caseCommunityName) {
|
||||||
|
this.caseCommunityName = caseCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseAddress() {
|
||||||
|
return caseAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseAddress(String caseAddress) {
|
||||||
|
this.caseAddress = caseAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseCountyName() {
|
||||||
|
return caseCountyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseCountyName(String caseCountyName) {
|
||||||
|
this.caseCountyName = caseCountyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCountyName() {
|
||||||
|
return cleanCountyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCountyName(String cleanCountyName) {
|
||||||
|
this.cleanCountyName = cleanCountyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseBlockName() {
|
||||||
|
return caseBlockName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseBlockName(String caseBlockName) {
|
||||||
|
this.caseBlockName = caseBlockName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanBlockName() {
|
||||||
|
return cleanBlockName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanBlockName(String cleanBlockName) {
|
||||||
|
this.cleanBlockName = cleanBlockName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseLoopName() {
|
||||||
|
return caseLoopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseLoopName(String caseLoopName) {
|
||||||
|
this.caseLoopName = caseLoopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanLoopName() {
|
||||||
|
return cleanLoopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanLoopName(String cleanLoopName) {
|
||||||
|
this.cleanLoopName = cleanLoopName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseContractNumber() {
|
||||||
|
return caseContractNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseContractNumber(String caseContractNumber) {
|
||||||
|
this.caseContractNumber = caseContractNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseNumber() {
|
||||||
|
return caseNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseNumber(String caseNumber) {
|
||||||
|
this.caseNumber = caseNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseApartmentLayout() {
|
||||||
|
return caseApartmentLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseApartmentLayout(String caseApartmentLayout) {
|
||||||
|
this.caseApartmentLayout = caseApartmentLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseArea() {
|
||||||
|
return caseArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseArea(BigDecimal caseArea) {
|
||||||
|
this.caseArea = caseArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseToward() {
|
||||||
|
return caseToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseToward(String caseToward) {
|
||||||
|
this.caseToward = caseToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseStorey() {
|
||||||
|
return caseStorey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseStorey(String caseStorey) {
|
||||||
|
this.caseStorey = caseStorey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanTotalFloor() {
|
||||||
|
return cleanTotalFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanTotalFloor(String cleanTotalFloor) {
|
||||||
|
this.cleanTotalFloor = cleanTotalFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCleanGroundFloor() {
|
||||||
|
return cleanGroundFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanGroundFloor(Integer cleanGroundFloor) {
|
||||||
|
this.cleanGroundFloor = cleanGroundFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCleanCurrentFloor() {
|
||||||
|
return cleanCurrentFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCurrentFloor(Integer cleanCurrentFloor) {
|
||||||
|
this.cleanCurrentFloor = cleanCurrentFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseRegisterDate() {
|
||||||
|
return caseRegisterDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseRegisterDate(Date caseRegisterDate) {
|
||||||
|
this.caseRegisterDate = caseRegisterDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseSigningDate() {
|
||||||
|
return caseSigningDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseSigningDate(Date caseSigningDate) {
|
||||||
|
this.caseSigningDate = caseSigningDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseOpeningPrice() {
|
||||||
|
return caseOpeningPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseOpeningPrice(BigDecimal caseOpeningPrice) {
|
||||||
|
this.caseOpeningPrice = caseOpeningPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseTotalPrice() {
|
||||||
|
return caseTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseTotalPrice(BigDecimal caseTotalPrice) {
|
||||||
|
this.caseTotalPrice = caseTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseUnitPrice() {
|
||||||
|
return caseUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseUnitPrice(BigDecimal caseUnitPrice) {
|
||||||
|
this.caseUnitPrice = caseUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseGetDate() {
|
||||||
|
return caseGetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseGetDate(Date caseGetDate) {
|
||||||
|
this.caseGetDate = caseGetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseUrl() {
|
||||||
|
return caseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseUrl(String caseUrl) {
|
||||||
|
this.caseUrl = caseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAgencyName() {
|
||||||
|
return agencyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAgencyName(String agencyName) {
|
||||||
|
this.agencyName = agencyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAgencyType() {
|
||||||
|
return agencyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAgencyType(String agencyType) {
|
||||||
|
this.agencyType = agencyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSellerType() {
|
||||||
|
return sellerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSellerType(String sellerType) {
|
||||||
|
this.sellerType = sellerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBuyerType() {
|
||||||
|
return buyerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBuyerType(String buyerType) {
|
||||||
|
this.buyerType = buyerType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getBirthday() {
|
||||||
|
return birthday;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBirthday(Date birthday) {
|
||||||
|
this.birthday = birthday;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseProvider() {
|
||||||
|
return caseProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseProvider(String caseProvider) {
|
||||||
|
this.caseProvider = caseProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseHouseType() {
|
||||||
|
return caseHouseType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseHouseType(String caseHouseType) {
|
||||||
|
this.caseHouseType = caseHouseType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCleanCaseType() {
|
||||||
|
return cleanCaseType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCaseType(Integer cleanCaseType) {
|
||||||
|
this.cleanCaseType = cleanCaseType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCondoAddress() {
|
||||||
|
return cleanCondoAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCondoAddress(String cleanCondoAddress) {
|
||||||
|
this.cleanCondoAddress = cleanCondoAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanBuildingAddress() {
|
||||||
|
return cleanBuildingAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanBuildingAddress(String cleanBuildingAddress) {
|
||||||
|
this.cleanBuildingAddress = cleanBuildingAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanAddress() {
|
||||||
|
return cleanAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanAddress(String cleanAddress) {
|
||||||
|
this.cleanAddress = cleanAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCondoId() {
|
||||||
|
return cleanCondoId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCondoId(String cleanCondoId) {
|
||||||
|
this.cleanCondoId = cleanCondoId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanBuildingId() {
|
||||||
|
return cleanBuildingId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanBuildingId(String cleanBuildingId) {
|
||||||
|
this.cleanBuildingId = cleanBuildingId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCommunityId() {
|
||||||
|
return cleanCommunityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCommunityId(String cleanCommunityId) {
|
||||||
|
this.cleanCommunityId = cleanCommunityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBuildingCoefficient() {
|
||||||
|
return buildingCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBuildingCoefficient(BigDecimal buildingCoefficient) {
|
||||||
|
this.buildingCoefficient = buildingCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCondoAreaCoefficient() {
|
||||||
|
return condoAreaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCondoAreaCoefficient(BigDecimal condoAreaCoefficient) {
|
||||||
|
this.condoAreaCoefficient = condoAreaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCaseYear() {
|
||||||
|
return caseYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseYear(Integer caseYear) {
|
||||||
|
this.caseYear = caseYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getYearCoefficient() {
|
||||||
|
return yearCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYearCoefficient(BigDecimal yearCoefficient) {
|
||||||
|
this.yearCoefficient = yearCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAreaCoefficient() {
|
||||||
|
return areaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAreaCoefficient(BigDecimal areaCoefficient) {
|
||||||
|
this.areaCoefficient = areaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanProjectLevel() {
|
||||||
|
return cleanProjectLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanProjectLevel(String cleanProjectLevel) {
|
||||||
|
this.cleanProjectLevel = cleanProjectLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseElevator() {
|
||||||
|
return caseElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseElevator(String caseElevator) {
|
||||||
|
this.caseElevator = caseElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getCleanElevator() {
|
||||||
|
return cleanElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanElevator(Boolean cleanElevator) {
|
||||||
|
this.cleanElevator = cleanElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getElevatorCoefficient() {
|
||||||
|
return elevatorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setElevatorCoefficient(Integer elevatorCoefficient) {
|
||||||
|
this.elevatorCoefficient = elevatorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNoElevatorCoefficient() {
|
||||||
|
return noElevatorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNoElevatorCoefficient(Integer noElevatorCoefficient) {
|
||||||
|
this.noElevatorCoefficient = noElevatorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getFloorCoefficient() {
|
||||||
|
return floorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFloorCoefficient(BigDecimal floorCoefficient) {
|
||||||
|
this.floorCoefficient = floorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAppraiseUnitPrice() {
|
||||||
|
return appraiseUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppraiseUnitPrice(BigDecimal appraiseUnitPrice) {
|
||||||
|
this.appraiseUnitPrice = appraiseUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAppraiseTotalPrice() {
|
||||||
|
return appraiseTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppraiseTotalPrice(BigDecimal appraiseTotalPrice) {
|
||||||
|
this.appraiseTotalPrice = appraiseTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanPropertyType() {
|
||||||
|
return cleanPropertyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanPropertyType(String cleanPropertyType) {
|
||||||
|
this.cleanPropertyType = cleanPropertyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseHouseProperty() {
|
||||||
|
return caseHouseProperty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseHouseProperty(String caseHouseProperty) {
|
||||||
|
this.caseHouseProperty = caseHouseProperty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getComputeTotalPrice() {
|
||||||
|
return computeTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComputeTotalPrice(BigDecimal computeTotalPrice) {
|
||||||
|
this.computeTotalPrice = computeTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getComputeUnitPrice() {
|
||||||
|
return computeUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComputeUnitPrice(BigDecimal computeUnitPrice) {
|
||||||
|
this.computeUnitPrice = computeUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getRefTotalPrice() {
|
||||||
|
return refTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRefTotalPrice(BigDecimal refTotalPrice) {
|
||||||
|
this.refTotalPrice = refTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getRefUnitPrice() {
|
||||||
|
return refUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRefUnitPrice(BigDecimal refUnitPrice) {
|
||||||
|
this.refUnitPrice = refUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCurrentFloorDesc() {
|
||||||
|
return cleanCurrentFloorDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCurrentFloorDesc(String cleanCurrentFloorDesc) {
|
||||||
|
this.cleanCurrentFloorDesc = cleanCurrentFloorDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造caseId
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* @throws NoSuchAlgorithmException
|
||||||
|
*/
|
||||||
|
public String generateCaseId() {
|
||||||
|
String text = getCaseCountyName() + getCaseAddress() + getCaseArea();
|
||||||
|
if (null != getCaseSigningDate())
|
||||||
|
text += simplaDateFormat.format(getCaseSigningDate());
|
||||||
|
|
||||||
|
return DigestUtils.md5DigestAsHex(text.getBytes());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String refinePropertyType() {
|
||||||
|
String houseType = getCaseHouseType();
|
||||||
|
if (StringUtils.isEmpty(houseType)) return "其他";
|
||||||
|
|
||||||
|
// 不包含
|
||||||
|
boolean exists = juzhu.stream().filter(x -> x.equals(houseType)).findAny().isPresent();
|
||||||
|
if (!exists)
|
||||||
|
return "居住";
|
||||||
|
|
||||||
|
exists = bangong.stream().filter(x -> x.equals(houseType)).findAny().isPresent();
|
||||||
|
if (!exists)
|
||||||
|
return "办公";
|
||||||
|
|
||||||
|
exists = shangye.stream().filter(x -> x.equals(houseType)).findAny().isPresent();
|
||||||
|
if (!exists)
|
||||||
|
return "商业";
|
||||||
|
|
||||||
|
return "其他";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从室号中提取所在层
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Integer refineCurrentFloor() {
|
||||||
|
if (StringUtils.isEmpty(getCaseAddress())) return null;
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile("(\\d+)(室)$");
|
||||||
|
|
||||||
|
Matcher matcher = pattern.matcher(getCaseAddress());
|
||||||
|
if (!matcher.find()) return null;
|
||||||
|
|
||||||
|
String value = matcher.group(1);
|
||||||
|
Integer num = new Integer(value);
|
||||||
|
if (num > 1000 || num > 100)
|
||||||
|
return num / 100;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取楼栋地址
|
||||||
|
* 1. 去掉abc室
|
||||||
|
* 2. 去掉末尾是数字的
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String refineBuildingAddress() {
|
||||||
|
if (StringUtils.isEmpty(getCaseAddress())) return null;
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile("(\\d+)室$");
|
||||||
|
Matcher matcher = pattern.matcher(getCaseAddress());
|
||||||
|
if (matcher.find()) {
|
||||||
|
return getCaseAddress().replace(matcher.group(0), "");
|
||||||
|
}
|
||||||
|
|
||||||
|
pattern = Pattern.compile("(\\d+)$");
|
||||||
|
matcher = pattern.matcher(getCaseAddress());
|
||||||
|
if (matcher.find()) {
|
||||||
|
return getCaseAddress().replace(matcher.group(0), "");
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,803 @@
|
|||||||
|
package com.ruoyi.project.data.cases.domain;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import org.springframework.util.DigestUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class OriginalResidenceSaleOpeningCase {
|
||||||
|
|
||||||
|
// 东南, 西南, 西北, 东北, 南, 东, 西, 北
|
||||||
|
private static String[] towardArray = new String[]{"东南", "西南", "西北", "东北", "南", "东", "西", "北"};
|
||||||
|
private Integer yearMonth;
|
||||||
|
/**
|
||||||
|
* 案例ID 唯一
|
||||||
|
*/
|
||||||
|
private String caseId;
|
||||||
|
/**
|
||||||
|
* 链家案例id
|
||||||
|
*/
|
||||||
|
private String caseLianJiaId;
|
||||||
|
/**
|
||||||
|
* 链家小区编码
|
||||||
|
*/
|
||||||
|
private String caseLianJiaCommunityId;
|
||||||
|
/**
|
||||||
|
* 房源标题
|
||||||
|
*/
|
||||||
|
private String caseTitle;
|
||||||
|
/**
|
||||||
|
* 物业类型
|
||||||
|
*/
|
||||||
|
private String cleanPropertyType;
|
||||||
|
/**
|
||||||
|
* 户型
|
||||||
|
*/
|
||||||
|
private String caseApartmentLayout;
|
||||||
|
/**
|
||||||
|
* 房屋结构
|
||||||
|
*/
|
||||||
|
private String caseHouseStructure;
|
||||||
|
/**
|
||||||
|
* 建筑面积
|
||||||
|
*/
|
||||||
|
private BigDecimal caseArea;
|
||||||
|
/**
|
||||||
|
* 地下面积
|
||||||
|
*/
|
||||||
|
private BigDecimal caseUndergroundArea;
|
||||||
|
/**
|
||||||
|
* 朝向
|
||||||
|
*/
|
||||||
|
private String caseToward;
|
||||||
|
/**
|
||||||
|
* 朝向
|
||||||
|
*/
|
||||||
|
private String cleanToward;
|
||||||
|
/**
|
||||||
|
* 楼层
|
||||||
|
*/
|
||||||
|
private String caseStorey;
|
||||||
|
/**
|
||||||
|
* 总层
|
||||||
|
*/
|
||||||
|
private Integer cleanTotalFloor;
|
||||||
|
/**
|
||||||
|
* 所在层
|
||||||
|
*/
|
||||||
|
private String cleanCurrentFloorDesc;
|
||||||
|
/**
|
||||||
|
* 上架日期
|
||||||
|
*/
|
||||||
|
private Date caseUpDate;
|
||||||
|
/**
|
||||||
|
* 下架日期
|
||||||
|
*/
|
||||||
|
private Date caseDownDate;
|
||||||
|
/**
|
||||||
|
* 有无电梯
|
||||||
|
*/
|
||||||
|
private String caseElevator;
|
||||||
|
/**
|
||||||
|
* 有无电梯
|
||||||
|
*/
|
||||||
|
private Boolean cleanElevator;
|
||||||
|
/**
|
||||||
|
* 电梯梯户
|
||||||
|
*/
|
||||||
|
private String caseTiHu;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 装修
|
||||||
|
*/
|
||||||
|
private String caseDecoration;
|
||||||
|
/**
|
||||||
|
* 装修
|
||||||
|
*/
|
||||||
|
private String cleanDecoration;
|
||||||
|
/**
|
||||||
|
* 竣工年
|
||||||
|
*/
|
||||||
|
private String caseYear;
|
||||||
|
/**
|
||||||
|
* 竣工年
|
||||||
|
*/
|
||||||
|
private Integer cleanYear;
|
||||||
|
/**
|
||||||
|
* 地址
|
||||||
|
*/
|
||||||
|
private String caseAddress;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String vid;
|
||||||
|
/**
|
||||||
|
* 产权性质
|
||||||
|
*/
|
||||||
|
private String caseChanQuanXingZhi;
|
||||||
|
/**
|
||||||
|
* 售价
|
||||||
|
*/
|
||||||
|
private BigDecimal casePrice;
|
||||||
|
/**
|
||||||
|
* 总价
|
||||||
|
*/
|
||||||
|
private BigDecimal cleanTotalPrice;
|
||||||
|
/**
|
||||||
|
* 单价
|
||||||
|
*/
|
||||||
|
private BigDecimal cleanUnitPrice;
|
||||||
|
/**
|
||||||
|
* 小区名称
|
||||||
|
*/
|
||||||
|
private String caseCommunityName;
|
||||||
|
/**
|
||||||
|
* 累计带看
|
||||||
|
*/
|
||||||
|
private Integer caseVisitedNum;
|
||||||
|
/**
|
||||||
|
* 首次带看日
|
||||||
|
*/
|
||||||
|
private Date caseFirstVisitTime;
|
||||||
|
/**
|
||||||
|
* 最近带看日
|
||||||
|
*/
|
||||||
|
private Date caseLatestVisitTime;
|
||||||
|
/**
|
||||||
|
* 近15日带看
|
||||||
|
*/
|
||||||
|
private Integer caseVisitedNum15;
|
||||||
|
/**
|
||||||
|
* 近30天带看
|
||||||
|
*/
|
||||||
|
private Integer caseVisitedNum30;
|
||||||
|
/**
|
||||||
|
* 案例URL
|
||||||
|
*/
|
||||||
|
private String caseUrl;
|
||||||
|
/**
|
||||||
|
* 小区URL
|
||||||
|
*/
|
||||||
|
private String caseCommunityUrl;
|
||||||
|
/**
|
||||||
|
* 抓取日期
|
||||||
|
*/
|
||||||
|
private Date caseGetDate;
|
||||||
|
/**
|
||||||
|
* 抓取网站名
|
||||||
|
*/
|
||||||
|
private String caseProvider;
|
||||||
|
/**
|
||||||
|
* 小区名称-系统
|
||||||
|
*/
|
||||||
|
private String uvCommunityName;
|
||||||
|
/**
|
||||||
|
* 小区地址-系统
|
||||||
|
*/
|
||||||
|
private String uvCommunityAddress;
|
||||||
|
/**
|
||||||
|
* 区域
|
||||||
|
*/
|
||||||
|
private String uvCounty;
|
||||||
|
/**
|
||||||
|
* 板块
|
||||||
|
*/
|
||||||
|
private String uvBlock;
|
||||||
|
/**
|
||||||
|
* 环线
|
||||||
|
*/
|
||||||
|
private String uvLoop;
|
||||||
|
/**
|
||||||
|
* 面积系数
|
||||||
|
*/
|
||||||
|
private BigDecimal areaCoefficient;
|
||||||
|
/**
|
||||||
|
* 朝向系数
|
||||||
|
*/
|
||||||
|
private BigDecimal towardCoefficient;
|
||||||
|
/**
|
||||||
|
* 楼层系数
|
||||||
|
*/
|
||||||
|
private BigDecimal floorCoefficient;
|
||||||
|
/**
|
||||||
|
* 建成年代系数
|
||||||
|
*/
|
||||||
|
private BigDecimal yearCoefficient;
|
||||||
|
/**
|
||||||
|
* 楼栋系数
|
||||||
|
*/
|
||||||
|
private BigDecimal buildingCoefficient;
|
||||||
|
/**
|
||||||
|
* 最终成交日期
|
||||||
|
*/
|
||||||
|
private Date caseLastDeal;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String newCaseId;
|
||||||
|
|
||||||
|
public static String[] getTowardArray() {
|
||||||
|
return towardArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setTowardArray(String[] towardArray) {
|
||||||
|
OriginalResidenceSaleOpeningCase.towardArray = towardArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseId() {
|
||||||
|
return caseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseId(String caseId) {
|
||||||
|
this.caseId = caseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseLianJiaId() {
|
||||||
|
return caseLianJiaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseLianJiaId(String caseLianJiaId) {
|
||||||
|
this.caseLianJiaId = caseLianJiaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseLianJiaCommunityId() {
|
||||||
|
return caseLianJiaCommunityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseLianJiaCommunityId(String caseLianJiaCommunityId) {
|
||||||
|
this.caseLianJiaCommunityId = caseLianJiaCommunityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseTitle() {
|
||||||
|
return caseTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseTitle(String caseTitle) {
|
||||||
|
this.caseTitle = caseTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanPropertyType() {
|
||||||
|
return cleanPropertyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanPropertyType(String cleanPropertyType) {
|
||||||
|
this.cleanPropertyType = cleanPropertyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseApartmentLayout() {
|
||||||
|
return caseApartmentLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseApartmentLayout(String caseApartmentLayout) {
|
||||||
|
this.caseApartmentLayout = caseApartmentLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseHouseStructure() {
|
||||||
|
return caseHouseStructure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseHouseStructure(String caseHouseStructure) {
|
||||||
|
this.caseHouseStructure = caseHouseStructure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseArea() {
|
||||||
|
return caseArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseArea(BigDecimal caseArea) {
|
||||||
|
this.caseArea = caseArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCaseUndergroundArea() {
|
||||||
|
return caseUndergroundArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseUndergroundArea(BigDecimal caseUndergroundArea) {
|
||||||
|
this.caseUndergroundArea = caseUndergroundArea;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseToward() {
|
||||||
|
return caseToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseToward(String caseToward) {
|
||||||
|
this.caseToward = caseToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanToward() {
|
||||||
|
return cleanToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanToward(String cleanToward) {
|
||||||
|
this.cleanToward = cleanToward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseStorey() {
|
||||||
|
return caseStorey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseStorey(String caseStorey) {
|
||||||
|
this.caseStorey = caseStorey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCleanTotalFloor() {
|
||||||
|
return cleanTotalFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanTotalFloor(Integer cleanTotalFloor) {
|
||||||
|
this.cleanTotalFloor = cleanTotalFloor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanCurrentFloorDesc() {
|
||||||
|
return cleanCurrentFloorDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanCurrentFloorDesc(String cleanCurrentFloorDesc) {
|
||||||
|
this.cleanCurrentFloorDesc = cleanCurrentFloorDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseUpDate() {
|
||||||
|
return caseUpDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseUpDate(Date caseUpDate) {
|
||||||
|
this.caseUpDate = caseUpDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseDownDate() {
|
||||||
|
return caseDownDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseDownDate(Date caseDownDate) {
|
||||||
|
this.caseDownDate = caseDownDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseElevator() {
|
||||||
|
return caseElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseElevator(String caseElevator) {
|
||||||
|
this.caseElevator = caseElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getCleanElevator() {
|
||||||
|
return cleanElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanElevator(Boolean cleanElevator) {
|
||||||
|
this.cleanElevator = cleanElevator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseTiHu() {
|
||||||
|
return caseTiHu;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseTiHu(String caseTiHu) {
|
||||||
|
this.caseTiHu = caseTiHu;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseDecoration() {
|
||||||
|
return caseDecoration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseDecoration(String caseDecoration) {
|
||||||
|
this.caseDecoration = caseDecoration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCleanDecoration() {
|
||||||
|
return cleanDecoration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanDecoration(String cleanDecoration) {
|
||||||
|
this.cleanDecoration = cleanDecoration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseYear() {
|
||||||
|
return caseYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseYear(String caseYear) {
|
||||||
|
this.caseYear = caseYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCleanYear() {
|
||||||
|
return cleanYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanYear(Integer cleanYear) {
|
||||||
|
this.cleanYear = cleanYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseAddress() {
|
||||||
|
return caseAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseAddress(String caseAddress) {
|
||||||
|
this.caseAddress = caseAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVid() {
|
||||||
|
return vid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVid(String vid) {
|
||||||
|
this.vid = vid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseChanQuanXingZhi() {
|
||||||
|
return caseChanQuanXingZhi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseChanQuanXingZhi(String caseChanQuanXingZhi) {
|
||||||
|
this.caseChanQuanXingZhi = caseChanQuanXingZhi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCasePrice() {
|
||||||
|
return casePrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCasePrice(BigDecimal casePrice) {
|
||||||
|
this.casePrice = casePrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCleanTotalPrice() {
|
||||||
|
return cleanTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanTotalPrice(BigDecimal cleanTotalPrice) {
|
||||||
|
this.cleanTotalPrice = cleanTotalPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCleanUnitPrice() {
|
||||||
|
return cleanUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCleanUnitPrice(BigDecimal cleanUnitPrice) {
|
||||||
|
this.cleanUnitPrice = cleanUnitPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseCommunityName() {
|
||||||
|
return caseCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseCommunityName(String caseCommunityName) {
|
||||||
|
this.caseCommunityName = caseCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCaseVisitedNum() {
|
||||||
|
return caseVisitedNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseVisitedNum(Integer caseVisitedNum) {
|
||||||
|
this.caseVisitedNum = caseVisitedNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseFirstVisitTime() {
|
||||||
|
return caseFirstVisitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseFirstVisitTime(Date caseFirstVisitTime) {
|
||||||
|
this.caseFirstVisitTime = caseFirstVisitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseLatestVisitTime() {
|
||||||
|
return caseLatestVisitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseLatestVisitTime(Date caseLatestVisitTime) {
|
||||||
|
this.caseLatestVisitTime = caseLatestVisitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCaseVisitedNum15() {
|
||||||
|
return caseVisitedNum15;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseVisitedNum15(Integer caseVisitedNum15) {
|
||||||
|
this.caseVisitedNum15 = caseVisitedNum15;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCaseVisitedNum30() {
|
||||||
|
return caseVisitedNum30;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseVisitedNum30(Integer caseVisitedNum30) {
|
||||||
|
this.caseVisitedNum30 = caseVisitedNum30;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseUrl() {
|
||||||
|
return caseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseUrl(String caseUrl) {
|
||||||
|
this.caseUrl = caseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseCommunityUrl() {
|
||||||
|
return caseCommunityUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseCommunityUrl(String caseCommunityUrl) {
|
||||||
|
this.caseCommunityUrl = caseCommunityUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseGetDate() {
|
||||||
|
return caseGetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseGetDate(Date caseGetDate) {
|
||||||
|
this.caseGetDate = caseGetDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCaseProvider() {
|
||||||
|
return caseProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseProvider(String caseProvider) {
|
||||||
|
this.caseProvider = caseProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUvCommunityName() {
|
||||||
|
return uvCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUvCommunityName(String uvCommunityName) {
|
||||||
|
this.uvCommunityName = uvCommunityName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUvCommunityAddress() {
|
||||||
|
return uvCommunityAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUvCommunityAddress(String uvCommunityAddress) {
|
||||||
|
this.uvCommunityAddress = uvCommunityAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUvCounty() {
|
||||||
|
return uvCounty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUvCounty(String uvCounty) {
|
||||||
|
this.uvCounty = uvCounty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUvBlock() {
|
||||||
|
return uvBlock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUvBlock(String uvBlock) {
|
||||||
|
this.uvBlock = uvBlock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUvLoop() {
|
||||||
|
return uvLoop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUvLoop(String uvLoop) {
|
||||||
|
this.uvLoop = uvLoop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAreaCoefficient() {
|
||||||
|
return areaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAreaCoefficient(BigDecimal areaCoefficient) {
|
||||||
|
this.areaCoefficient = areaCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTowardCoefficient() {
|
||||||
|
return towardCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTowardCoefficient(BigDecimal towardCoefficient) {
|
||||||
|
this.towardCoefficient = towardCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getFloorCoefficient() {
|
||||||
|
return floorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFloorCoefficient(BigDecimal floorCoefficient) {
|
||||||
|
this.floorCoefficient = floorCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getYearCoefficient() {
|
||||||
|
return yearCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYearCoefficient(BigDecimal yearCoefficient) {
|
||||||
|
this.yearCoefficient = yearCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBuildingCoefficient() {
|
||||||
|
return buildingCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBuildingCoefficient(BigDecimal buildingCoefficient) {
|
||||||
|
this.buildingCoefficient = buildingCoefficient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getCaseLastDeal() {
|
||||||
|
return caseLastDeal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseLastDeal(Date caseLastDeal) {
|
||||||
|
this.caseLastDeal = caseLastDeal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewCaseId(String newCaseId) {
|
||||||
|
this.newCaseId = newCaseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成caseid,根据caseid来确定唯一案例,还有案例来源
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getNewCaseId() {
|
||||||
|
return DigestUtils.md5DigestAsHex(getCaseLianJiaId().getBytes());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getYearMonth() {
|
||||||
|
return yearMonth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYearMonth(Integer yearMonth) {
|
||||||
|
this.yearMonth = yearMonth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
clearPrice();
|
||||||
|
clearElevator();
|
||||||
|
clearDecoration();
|
||||||
|
clearFloor();
|
||||||
|
clearToward();
|
||||||
|
clearYear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearYear() {
|
||||||
|
setCleanYear(new Integer(getCaseYear()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearPrice() {
|
||||||
|
try {
|
||||||
|
// 总价
|
||||||
|
setCleanTotalPrice(getCasePrice().multiply(new BigDecimal(10 * 1000)));
|
||||||
|
// 单价
|
||||||
|
setCleanUnitPrice(getCleanTotalPrice().divide(getCaseArea(), 2));
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 装修
|
||||||
|
private void clearDecoration() {
|
||||||
|
if (StringUtils.isNotNull(getCaseDecoration())) {
|
||||||
|
if (!"其他".equals(getCaseDecoration())) {
|
||||||
|
setCleanDecoration(getCaseDecoration());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 电梯
|
||||||
|
private void clearElevator() {
|
||||||
|
if (StringUtils.isNotNull(getCaseElevator())) {
|
||||||
|
if ("有".equals(getCaseElevator())) {
|
||||||
|
setCleanElevator(true);
|
||||||
|
} else if ("无".equals(getCaseElevator())) {
|
||||||
|
setCleanElevator(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 楼层
|
||||||
|
private void clearFloor() {
|
||||||
|
if (StringUtils.isNotNull(getCaseStorey())) {
|
||||||
|
Pattern pattern = Pattern.compile("([高中低])楼层 \\(共(\\d+)层\\)");
|
||||||
|
Matcher matcher = pattern.matcher(getCaseStorey());
|
||||||
|
if (matcher.find()) {
|
||||||
|
String currentFloor = matcher.group(1);
|
||||||
|
String totalFloor = matcher.group(2);
|
||||||
|
setCleanTotalFloor(new Integer(totalFloor));
|
||||||
|
if ("高".equals(currentFloor)) {
|
||||||
|
setCleanCurrentFloorDesc("高区");
|
||||||
|
} else if ("中".equals(currentFloor)) {
|
||||||
|
setCleanCurrentFloorDesc("中区");
|
||||||
|
} else if ("低".equals(currentFloor)) {
|
||||||
|
setCleanCurrentFloorDesc("低区");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pattern = Pattern.compile("地下室 \\(共(\\d+)层\\)");
|
||||||
|
matcher = pattern.matcher(getCaseStorey());
|
||||||
|
if (matcher.find()) {
|
||||||
|
String totalFloor = matcher.group(1);
|
||||||
|
setCleanTotalFloor(new Integer(totalFloor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearToward() {
|
||||||
|
// 排序规则
|
||||||
|
String[] segments = this.getCaseToward().split(" ");
|
||||||
|
String cleanTag = segments[0].trim();
|
||||||
|
if (1 == segments.length) {
|
||||||
|
if (!"".equals(cleanTag) && !"暂无数据".equals(cleanTag)) {
|
||||||
|
this.setCleanToward(cleanTag);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 排序规则
|
||||||
|
int index = towardArray.length;
|
||||||
|
for (int j = 0; j < towardArray.length; j++) {
|
||||||
|
for (String seg : segments) {
|
||||||
|
if (seg.equals(towardArray[j])) {
|
||||||
|
if (j < index)
|
||||||
|
index = j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.setCleanToward(towardArray[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OriginalResidenceOpeningCase{" +
|
||||||
|
"yearMonth=" + yearMonth +
|
||||||
|
", caseId='" + caseId + '\'' +
|
||||||
|
", caseLianJiaId='" + caseLianJiaId + '\'' +
|
||||||
|
", caseLianJiaCommunityId='" + caseLianJiaCommunityId + '\'' +
|
||||||
|
", caseTitle='" + caseTitle + '\'' +
|
||||||
|
", cleanPropertyType='" + cleanPropertyType + '\'' +
|
||||||
|
", caseApartmentLayout='" + caseApartmentLayout + '\'' +
|
||||||
|
", caseHouseStructure='" + caseHouseStructure + '\'' +
|
||||||
|
", caseArea=" + caseArea +
|
||||||
|
", caseUndergroundArea=" + caseUndergroundArea +
|
||||||
|
", caseToward='" + caseToward + '\'' +
|
||||||
|
", cleanToward='" + cleanToward + '\'' +
|
||||||
|
", caseStorey='" + caseStorey + '\'' +
|
||||||
|
", cleanTotalFloor=" + cleanTotalFloor +
|
||||||
|
", cleanCurrentFloorDesc='" + cleanCurrentFloorDesc + '\'' +
|
||||||
|
", caseUpDate=" + caseUpDate +
|
||||||
|
", caseDownDate=" + caseDownDate +
|
||||||
|
", caseElevator='" + caseElevator + '\'' +
|
||||||
|
", cleanElevator=" + cleanElevator +
|
||||||
|
", caseTiHu='" + caseTiHu + '\'' +
|
||||||
|
", caseDecoration='" + caseDecoration + '\'' +
|
||||||
|
", cleanDecoration='" + cleanDecoration + '\'' +
|
||||||
|
", caseYear='" + caseYear + '\'' +
|
||||||
|
", cleanYear=" + cleanYear +
|
||||||
|
", caseAddress='" + caseAddress + '\'' +
|
||||||
|
", vid='" + vid + '\'' +
|
||||||
|
", caseChanQuanXingZhi='" + caseChanQuanXingZhi + '\'' +
|
||||||
|
", casePrice=" + casePrice +
|
||||||
|
", cleanTotalPrice=" + cleanTotalPrice +
|
||||||
|
", cleanUnitPrice=" + cleanUnitPrice +
|
||||||
|
", caseCommunityName='" + caseCommunityName + '\'' +
|
||||||
|
", caseVisitedNum=" + caseVisitedNum +
|
||||||
|
", caseFirstVisitTime=" + caseFirstVisitTime +
|
||||||
|
", caseLatestVisitTime=" + caseLatestVisitTime +
|
||||||
|
", caseVisitedNum15=" + caseVisitedNum15 +
|
||||||
|
", caseVisitedNum30=" + caseVisitedNum30 +
|
||||||
|
", caseUrl='" + caseUrl + '\'' +
|
||||||
|
", caseCommunityUrl='" + caseCommunityUrl + '\'' +
|
||||||
|
", caseGetDate=" + caseGetDate +
|
||||||
|
", caseProvider='" + caseProvider + '\'' +
|
||||||
|
", uvCommunityName='" + uvCommunityName + '\'' +
|
||||||
|
", uvCommunityAddress='" + uvCommunityAddress + '\'' +
|
||||||
|
", uvCounty='" + uvCounty + '\'' +
|
||||||
|
", uvBlock='" + uvBlock + '\'' +
|
||||||
|
", uvLoop='" + uvLoop + '\'' +
|
||||||
|
", areaCoefficient=" + areaCoefficient +
|
||||||
|
", towardCoefficient=" + towardCoefficient +
|
||||||
|
", floorCoefficient=" + floorCoefficient +
|
||||||
|
", yearCoefficient=" + yearCoefficient +
|
||||||
|
", buildingCoefficient=" + buildingCoefficient +
|
||||||
|
", caseLastDeal=" + caseLastDeal +
|
||||||
|
", newCaseId='" + newCaseId + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.ruoyi.project.data.cases.domain;
|
||||||
|
|
||||||
|
public class OriginalResidenceSaleOpeningCaseQueryModel extends OriginalResidenceSaleOpeningCase {
|
||||||
|
|
||||||
|
private Integer pageIndex;
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
|
public Integer getPageIndex() {
|
||||||
|
return pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageIndex(Integer pageIndex) {
|
||||||
|
this.pageIndex = pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPageSize() {
|
||||||
|
return pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSize(Integer pageSize) {
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package com.ruoyi.project.data.cases.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCaseQueryModel;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@DS("compute")
|
||||||
|
public interface OriginalResidenceSaleClosingCaseMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建表
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int createTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建清洗完成之后的表ODS_HOUSINGCASELISTED_LJ_YYYYMM
|
||||||
|
* @param yearMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int createCleanTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页总数
|
||||||
|
*
|
||||||
|
* @param originalResidenceSaleOpeningCase
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer pageCount(OriginalResidenceSaleOpeningCase originalResidenceSaleOpeningCase);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param queryModel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OriginalResidenceSaleOpeningCase> pageList(OriginalResidenceSaleOpeningCaseQueryModel queryModel);
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
package com.ruoyi.project.data.cases.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCaseQueryModel;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@DS("compute")
|
||||||
|
public interface OriginalResidenceSaleOpeningCaseMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建表
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int createTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建清洗完成之后的表ODS_HOUSINGCASELISTED_LJ_YYYYMM
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int createCleanTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 案例汇总表(挂牌、成交)
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int createAssembleTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页总数
|
||||||
|
*
|
||||||
|
* @param originalResidenceSaleOpeningCase
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer pageCount(OriginalResidenceSaleOpeningCase originalResidenceSaleOpeningCase);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param queryModel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OriginalResidenceSaleOpeningCase> pageList(OriginalResidenceSaleOpeningCaseQueryModel queryModel);
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.ruoyi.project.data.cases.mapper.sync;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleClosingCase;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@DS("calc")
|
||||||
|
public interface DownloadOriginalResidenceSaleClosingCaseMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OriginalResidenceSaleClosingCase> download(@Param("yearMonth") Integer yearMonth);
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.ruoyi.project.data.cases.mapper.sync;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@DS("oldProd")
|
||||||
|
public interface DownloadOriginalResidenceSaleOpeningCaseMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OriginalResidenceSaleOpeningCase> download();
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.ruoyi.project.data.cases.mapper.sync;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@DS("calc")
|
||||||
|
public interface SyncOriginalResidenceSaleOpeningCaseMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建挂牌案例表
|
||||||
|
* @param yearMonth
|
||||||
|
*/
|
||||||
|
int createTable(@Param("yearMonth") Integer yearMonth);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param originalResidenceSaleOpeningCase
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int insert(OriginalResidenceSaleOpeningCase originalResidenceSaleOpeningCase);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.ruoyi.project.data.cases.service;
|
||||||
|
|
||||||
|
public interface IOriginalResidenceSaleClosingCaseService {
|
||||||
|
void pullData();
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.ruoyi.project.data.cases.service;
|
||||||
|
|
||||||
|
public interface IOriginalResidenceSaleOpeningCaseService {
|
||||||
|
void pullData();
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package com.ruoyi.project.data.cases.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.common.utils.LoadUtil;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleClosingCase;
|
||||||
|
import com.ruoyi.project.data.cases.mapper.OriginalResidenceSaleClosingCaseMapper;
|
||||||
|
import com.ruoyi.project.data.cases.mapper.sync.DownloadOriginalResidenceSaleClosingCaseMapper;
|
||||||
|
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleClosingCaseService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||||
|
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
|
||||||
|
import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@DS("compute")
|
||||||
|
public class OriginalResidenceSaleClosingCaseServiceImpl implements IOriginalResidenceSaleClosingCaseService {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(OriginalResidenceSaleClosingCaseServiceImpl.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OriginalResidenceSaleClosingCaseMapper originalResidenceSaleClosingCaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private DownloadOriginalResidenceSaleClosingCaseMapper downloadOriginalResidenceSaleClosingCaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
||||||
|
@Autowired
|
||||||
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Scheduled(cron = "0 0 5 9 * ?")
|
||||||
|
@Override
|
||||||
|
public void pullData() {
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(new Date());
|
||||||
|
Integer targetTableRoute = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH)));
|
||||||
|
calendar.add(Calendar.MONTH, 1);
|
||||||
|
Integer computeTableRoute = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH) + 1));
|
||||||
|
|
||||||
|
prepare(computeTableRoute);
|
||||||
|
List<OriginalResidenceSaleClosingCase> list =
|
||||||
|
downloadOriginalResidenceSaleClosingCaseMapper.download(targetTableRoute);
|
||||||
|
list.parallelStream().forEach(originalResidenceSaleClosingCase -> {
|
||||||
|
originalResidenceSaleClosingCase.setCaseId(originalResidenceSaleClosingCase.generateCaseId());
|
||||||
|
originalResidenceSaleClosingCase.setCleanPropertyType(originalResidenceSaleClosingCase.refinePropertyType());
|
||||||
|
// originalResidenceSaleClosingCase.setCleanCurrentFloor(originalResidenceSaleClosingCase
|
||||||
|
// .refineCurrentFloor());
|
||||||
|
// originalResidenceSaleClosingCase.setCleanBuildingAddress(originalResidenceSaleClosingCase
|
||||||
|
// .refineBuildingAddress());
|
||||||
|
});
|
||||||
|
running(computeTableRoute, list);
|
||||||
|
after(computeTableRoute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 准备工作 创建表
|
||||||
|
*
|
||||||
|
* @param computeTableRoute
|
||||||
|
*/
|
||||||
|
public void prepare(Integer computeTableRoute) {
|
||||||
|
originalResidenceSaleClosingCaseMapper.createTable(computeTableRoute);
|
||||||
|
originalResidenceSaleClosingCaseMapper.createCleanTable(computeTableRoute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量入库
|
||||||
|
*
|
||||||
|
* @param computeTableRoute
|
||||||
|
* @param list
|
||||||
|
*/
|
||||||
|
public void running(Integer computeTableRoute, List<OriginalResidenceSaleClosingCase> list) {
|
||||||
|
SqlParameterSource[] batchParams = SqlParameterSourceUtils.createBatch(list.toArray());
|
||||||
|
int[] updateCounts = namedParameterJdbcTemplate.batchUpdate("insert into dbo" +
|
||||||
|
".original_residence_sale_closing_case_" + computeTableRoute + "(case_id,case_county_name," +
|
||||||
|
"case_block_name,case_loopline_name,case_community_name,case_address,case_area," +
|
||||||
|
"case_unit_price,case_total_price,case_house_type,case_signing_date,case_register_date," +
|
||||||
|
"case_agency_name,case_agency_type,case_seller_type,case_buyer_type,case_birthday," +
|
||||||
|
"case_deal_type,clean_property_type,create_time) " +
|
||||||
|
"values (:caseId,:caseCountyName,:caseBlockName,:caseLoopName,:caseCommunityName," +
|
||||||
|
":caseAddress,:caseArea,:caseUnitPrice,:caseTotalPrice,:caseHouseType,:caseSigningDate," +
|
||||||
|
":caseRegisterDate,:agencyName,:agencyType,:sellerType,:buyerType,:birthday," +
|
||||||
|
":cleanCaseType,:cleanPropertyType,GETDATE());",
|
||||||
|
batchParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 匹配数据
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
*/
|
||||||
|
public void after(Integer yearMonth) {
|
||||||
|
// 清洗挂牌案例
|
||||||
|
String rawSql = LoadUtil.loadContent("sql-template/clear_closing_case.sql");
|
||||||
|
String sql = rawSql.replace("#yearMonth#", yearMonth.toString());
|
||||||
|
jdbcTemplate.update(sql);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,122 @@
|
|||||||
|
package com.ruoyi.project.data.cases.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.ruoyi.common.utils.LoadUtil;
|
||||||
|
import com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase;
|
||||||
|
import com.ruoyi.project.data.cases.mapper.OriginalResidenceSaleOpeningCaseMapper;
|
||||||
|
import com.ruoyi.project.data.cases.mapper.sync.DownloadOriginalResidenceSaleOpeningCaseMapper;
|
||||||
|
import com.ruoyi.project.data.cases.mapper.sync.SyncOriginalResidenceSaleOpeningCaseMapper;
|
||||||
|
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleOpeningCaseService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||||
|
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
|
||||||
|
import org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@DS("compute")
|
||||||
|
public class OriginalResidenceSaleOpeningCaseServiceImpl implements IOriginalResidenceSaleOpeningCaseService {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(OriginalResidenceSaleOpeningCaseServiceImpl.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OriginalResidenceSaleOpeningCaseMapper originalResidenceSaleOpeningCaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private DownloadOriginalResidenceSaleOpeningCaseMapper downloadOriginalResidenceSaleOpeningCaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private SyncOriginalResidenceSaleOpeningCaseMapper syncOriginalResidenceSaleOpeningCaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
||||||
|
@Autowired
|
||||||
|
private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Scheduled(cron = "0 0 5 25 * ?")
|
||||||
|
@Override
|
||||||
|
public void pullData() {
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(new Date());
|
||||||
|
Integer syncTableRoute = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH)));
|
||||||
|
Integer lastYearMonth = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH) + 1));
|
||||||
|
calendar.add(Calendar.MONTH, 1);
|
||||||
|
Integer computeTableRoute = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH) + 1));
|
||||||
|
|
||||||
|
prepare(computeTableRoute, syncTableRoute);
|
||||||
|
List<OriginalResidenceSaleOpeningCase> list = downloadOriginalResidenceSaleOpeningCaseMapper.download();
|
||||||
|
list.parallelStream().forEach(originalResidenceOpeningCase -> {
|
||||||
|
originalResidenceOpeningCase.clear();
|
||||||
|
originalResidenceOpeningCase.setYearMonth(syncTableRoute);
|
||||||
|
// logger.debug(originalResidenceOpeningCase.toString());
|
||||||
|
syncOriginalResidenceSaleOpeningCaseMapper.insert(originalResidenceOpeningCase);
|
||||||
|
});
|
||||||
|
running(computeTableRoute, syncTableRoute, list);
|
||||||
|
after(computeTableRoute, lastYearMonth);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 准备工作 创建表
|
||||||
|
*
|
||||||
|
* @param computeTableRoute
|
||||||
|
* @param syncTableRoute
|
||||||
|
*/
|
||||||
|
public void prepare(Integer computeTableRoute, Integer syncTableRoute) {
|
||||||
|
originalResidenceSaleOpeningCaseMapper.createTable(computeTableRoute);
|
||||||
|
originalResidenceSaleOpeningCaseMapper.createCleanTable(computeTableRoute);
|
||||||
|
syncOriginalResidenceSaleOpeningCaseMapper.createTable(syncTableRoute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量入库
|
||||||
|
*
|
||||||
|
* @param computeTableRoute
|
||||||
|
* @param list
|
||||||
|
*/
|
||||||
|
public void running(Integer computeTableRoute, Integer syncTableRoute, List<OriginalResidenceSaleOpeningCase> list) {
|
||||||
|
SqlParameterSource[] batchParams = SqlParameterSourceUtils.createBatch(list.toArray());
|
||||||
|
int[] updateCounts = namedParameterJdbcTemplate.batchUpdate("insert into dbo" +
|
||||||
|
".original_residence_sale_opening_case_" + computeTableRoute + "(case_id, case_lianjia_id, " +
|
||||||
|
"case_lianjia_community_id, case_title, clean_property_type, case_apartment_layout, " +
|
||||||
|
"case_house_structure, case_area, case_underground_area, case_toward, clean_toward, " +
|
||||||
|
"case_storey, clean_total_floor, clean_current_floor_desc, case_elevator, clean_elevator, " +
|
||||||
|
"case_tihu, case_decoration, clean_decoration, case_year, clean_year, case_address, " +
|
||||||
|
"case_price, clean_unit_price, clean_total_price, case_community_name, case_visited_num, " +
|
||||||
|
"case_visited_num_15, case_visited_num_30, case_latest_deal_date, case_latest_visited_date, " +
|
||||||
|
"case_first_visited_date, case_url, case_community_url, case_get_date, case_provider, " +
|
||||||
|
"create_time) values (:newCaseId,:caseLianJiaId,:caseLianJiaCommunityId,:caseTitle," +
|
||||||
|
":cleanPropertyType," +
|
||||||
|
":caseApartmentLayout,:caseHouseStructure,:caseArea,:caseUndergroundArea,:caseToward," +
|
||||||
|
":cleanToward,:caseStorey,:cleanTotalFloor,:cleanCurrentFloorDesc,:caseElevator," +
|
||||||
|
":cleanElevator,:caseTiHu,:caseDecoration,:cleanDecoration,:caseYear,:cleanYear,:caseAddress," +
|
||||||
|
":casePrice,:cleanUnitPrice,:cleanTotalPrice,:caseCommunityName,:caseVisitedNum," +
|
||||||
|
":caseVisitedNum15,:caseVisitedNum30,NULL,:caseLatestVisitTime,:caseFirstVisitTime,:caseUrl," +
|
||||||
|
":caseCommunityUrl,:caseGetDate,:caseProvider,GETDATE());",
|
||||||
|
batchParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 匹配数据
|
||||||
|
*
|
||||||
|
* @param yearMonth
|
||||||
|
*/
|
||||||
|
public void after(Integer yearMonth, Integer lastYearMonth) {
|
||||||
|
// 清洗挂牌案例
|
||||||
|
String rawSql = LoadUtil.loadContent("sql-template/clear_opening_case.sql");
|
||||||
|
String sql = rawSql.replace("#yearMonth#", yearMonth.toString())
|
||||||
|
.replace("#lastYearMonth#", lastYearMonth.toString());
|
||||||
|
jdbcTemplate.update(sql);
|
||||||
|
// 作价
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.ruoyi.project.data.price.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
|
import com.ruoyi.framework.web.controller.BaseController;
|
||||||
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
|
import com.ruoyi.framework.web.page.TableSupport;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePrice;
|
||||||
|
import com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel;
|
||||||
|
import com.ruoyi.project.data.basis.service.IUVBasePriceService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/data/base/price")
|
||||||
|
public class BasePriceController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IUVBasePriceService basePriceService;
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:user:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(UVBasePriceQueryModel queryModel) {
|
||||||
|
int pageIndex = ServletUtils.getParameterToInt(TableSupport.PAGE_NUM);
|
||||||
|
int pageSize = ServletUtils.getParameterToInt(TableSupport.PAGE_SIZE);
|
||||||
|
queryModel.setPageIndex(pageIndex <= 1 ? 0 : (pageIndex - 1) * pageSize);
|
||||||
|
queryModel.setPageSize(pageSize);
|
||||||
|
int total = basePriceService.pageCount(queryModel);
|
||||||
|
List<UVBasePrice> list = basePriceService.pageList(queryModel);
|
||||||
|
return getDataTable(list, total);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,17 @@
|
|||||||
package com.ruoyi.project.data.price.controller;
|
package com.ruoyi.project.data.price.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
|
import com.ruoyi.framework.web.page.TableSupport;
|
||||||
|
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public class ComputeResidenceSaleBasePriceController {
|
public class ComputeResidenceSaleBasePriceController {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,47 @@
|
|||||||
|
<?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.cases.mapper.sync.DownloadOriginalResidenceSaleClosingCaseMapper">
|
||||||
|
<resultMap id="resultMapping" type="com.ruoyi.project.data.cases.domain.OriginalResidenceSaleClosingCase">
|
||||||
|
<result property="caseCountyName" column="区域"/>
|
||||||
|
<result property="caseBlockName" column="板块"/>
|
||||||
|
<result property="caseLoopName" column="环线"/>
|
||||||
|
<result property="caseCommunityName" column="小区名称"/>
|
||||||
|
<result property="caseAddress" column="房屋地址"/>
|
||||||
|
<result property="caseArea" column="面积" javaType="java.math.BigDecimal"/>
|
||||||
|
<result property="caseHouseType" column="房屋类型"/>
|
||||||
|
<result property="caseTotalPrice" column="总价" javaType="java.math.BigDecimal"/>
|
||||||
|
<result property="caseUnitPrice" column="单价" javaType="java.math.BigDecimal"/>
|
||||||
|
<result property="caseRegisterDate" column="登记日期" javaType="java.sql.Date"/>
|
||||||
|
<result property="caseSigningDate" column="签约日期" javaType="java.sql.Date"/>
|
||||||
|
<result property="agencyName" column="中介公司"/>
|
||||||
|
<result property="agencyType" column="中介类型"/>
|
||||||
|
<result property="sellerType" column="卖家类型"/>
|
||||||
|
<result property="buyerType" column="买家类型"/>
|
||||||
|
<result property="birthday" column="出生年月日" javaType="java.sql.Date"/>
|
||||||
|
<!-- 成交类型(二手)-->
|
||||||
|
<result property="cleanCaseType" column="cleanCaseType"/>
|
||||||
|
</resultMap>
|
||||||
|
<select id="download" parameterType="int" resultMap="resultMapping">
|
||||||
|
select
|
||||||
|
区域
|
||||||
|
,板块
|
||||||
|
,环线
|
||||||
|
,小区名称
|
||||||
|
,房屋地址
|
||||||
|
,面积
|
||||||
|
,房屋类型
|
||||||
|
,总价
|
||||||
|
,单价
|
||||||
|
,登记日期
|
||||||
|
,签约日期
|
||||||
|
,中介公司
|
||||||
|
,中介类型
|
||||||
|
,卖家类型
|
||||||
|
,买家类型
|
||||||
|
,出生年月日
|
||||||
|
, 2 as cleanCaseType
|
||||||
|
from dbo.二手房成交数据${yearMonth};
|
||||||
|
</select>
|
||||||
|
</mapper>
|
@ -0,0 +1,59 @@
|
|||||||
|
<?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.cases.mapper.sync.DownloadOriginalResidenceSaleOpeningCaseMapper">
|
||||||
|
<resultMap id="resultMapping" type="com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase">
|
||||||
|
<result property="caseLianJiaId" column="llid"/>
|
||||||
|
<result property="caseLianJiaCommunityId" column="lcid"/>
|
||||||
|
<result property="caseTitle" column="name"/>
|
||||||
|
<result property="caseApartmentLayout" column="roomtype"/>
|
||||||
|
<result property="caseArea" column="area" javaType="java.math.BigDecimal"/>
|
||||||
|
<result property="caseToward" column="towards"/>
|
||||||
|
<result property="caseStorey" column="storey"/>
|
||||||
|
<result property="caseLastDeal" column="lastDeal" javaType="java.sql.Date"/>
|
||||||
|
<result property="caseElevator" column="condoElev"/>
|
||||||
|
<result property="caseDecoration" column="decoration"/>
|
||||||
|
<result property="caseYear" column="year"/>
|
||||||
|
<result property="caseAddress" column="address"/>
|
||||||
|
<result property="casePrice" column="price" javaType="java.math.BigDecimal"/>
|
||||||
|
<result property="caseCommunityName" column="cname"/>
|
||||||
|
<result property="caseVisitedNum" column="visited_num"/>
|
||||||
|
<result property="caseFirstVisitTime" column="first_visit_time" javaType="java.sql.Date"/>
|
||||||
|
<result property="caseVisitedNum15" column="visited_num_15"/>
|
||||||
|
<result property="caseVisitedNum30" column="visited_num_30"/>
|
||||||
|
<result property="caseUrl" column="url"/>
|
||||||
|
<result property="caseCommunityUrl" column="curl"/>
|
||||||
|
<result property="caseGetDate" column="getCaseTime" javaType="java.sql.Date"/>
|
||||||
|
<result property="caseProvider" column="caseProvider"/>
|
||||||
|
</resultMap>
|
||||||
|
<select id="download" resultMap="resultMapping">
|
||||||
|
select llid
|
||||||
|
, lcid
|
||||||
|
, name
|
||||||
|
, type
|
||||||
|
, roomtype
|
||||||
|
, area
|
||||||
|
, towards
|
||||||
|
, storey
|
||||||
|
, lastDeal
|
||||||
|
, dealToNow
|
||||||
|
, condoElev
|
||||||
|
, decoration
|
||||||
|
, year
|
||||||
|
, address
|
||||||
|
, vid
|
||||||
|
, dataType
|
||||||
|
, price
|
||||||
|
, cname
|
||||||
|
, visited_num
|
||||||
|
, first_visit_time
|
||||||
|
, visited_num_15
|
||||||
|
, visited_num_30
|
||||||
|
, url
|
||||||
|
, curl
|
||||||
|
, getCaseTime
|
||||||
|
, '链家' as caseProvider
|
||||||
|
from dbo.Listing_Lianjia;
|
||||||
|
</select>
|
||||||
|
</mapper>
|
@ -0,0 +1,74 @@
|
|||||||
|
<?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.cases.mapper.OriginalResidenceSaleClosingCaseMapper">
|
||||||
|
<!-- 外部数据重复问题 -->
|
||||||
|
<update id="createTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.original_residence_sale_closing_case_' + yearMonth"/>
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
|
||||||
|
drop table ${targetTableName};
|
||||||
|
|
||||||
|
CREATE TABLE ${targetTableName}
|
||||||
|
(
|
||||||
|
id bigint identity (1,1) not null primary key,
|
||||||
|
case_id varchar(32) not null,
|
||||||
|
case_county_name nvarchar(20) null,
|
||||||
|
case_block_name nvarchar(20) null,
|
||||||
|
case_loopline_name nvarchar(20) null,
|
||||||
|
case_community_name nvarchar(200) null,
|
||||||
|
case_address nvarchar(500) not null,
|
||||||
|
case_area decimal(18, 2) not null,
|
||||||
|
case_unit_price decimal(18, 2) not null,
|
||||||
|
case_total_price decimal(18, 2) not null,
|
||||||
|
case_house_type nvarchar(20) null,
|
||||||
|
case_signing_date date null,
|
||||||
|
case_register_date date null,
|
||||||
|
case_current_floor int null,
|
||||||
|
case_house_property nvarchar(20) null,
|
||||||
|
case_apartment_layout nvarchar(20) null,
|
||||||
|
case_compute_unit_price decimal(18, 2) null,
|
||||||
|
case_compute_total_price decimal(18, 2) null,
|
||||||
|
case_ref_unit_price decimal(18, 2) null,
|
||||||
|
case_ref_total_price decimal(18, 2) null,
|
||||||
|
case_agency_name nvarchar(200) null,
|
||||||
|
case_agency_type nvarchar(50) null,
|
||||||
|
case_seller_type nvarchar(20) null,
|
||||||
|
case_buyer_type nvarchar(20) null,
|
||||||
|
case_birthday date null,
|
||||||
|
case_deal_type int not null,
|
||||||
|
clean_condo_id nvarchar(20) null,
|
||||||
|
clean_building_id nvarchar(20) null,
|
||||||
|
clean_community_id nvarchar(20) null,
|
||||||
|
clean_condo_address nvarchar(500) null,
|
||||||
|
clean_property_type nvarchar(20) not null,
|
||||||
|
create_time datetime not null,
|
||||||
|
clean_current_floor int null,
|
||||||
|
clean_building_address nvarchar(200) null
|
||||||
|
);
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="createCleanTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.ODS_HOUSINGCASE_DEAL_' + yearMonth"/>
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
|
||||||
|
drop table ${targetTableName};
|
||||||
|
|
||||||
|
CREATE TABLE ${targetTableName}
|
||||||
|
(
|
||||||
|
SID int NOT NULL IDENTITY(1, 1) ,
|
||||||
|
case_id varchar(32) not null,
|
||||||
|
ProjectID bigint NULL,
|
||||||
|
BuildingID bigint NULL,
|
||||||
|
Area decimal (18, 2) NULL,
|
||||||
|
UpperFloorSum nvarchar (32) null,
|
||||||
|
UpperFloorNum nvarchar (32) NULL,
|
||||||
|
AreaCoff decimal (7, 4) NULL,
|
||||||
|
FloorCoff decimal (7, 4) NULL,
|
||||||
|
BuildingCoff decimal (7, 4) NULL,
|
||||||
|
PriceTotal decimal (18, 2) NOT NULL,
|
||||||
|
PriceUnit decimal (18, 2) NOT NULL,
|
||||||
|
PriceUnitAdj decimal (18, 2) NOT NULL,
|
||||||
|
DateContract date NULL
|
||||||
|
);
|
||||||
|
</update>
|
||||||
|
</mapper>
|
@ -0,0 +1,168 @@
|
|||||||
|
<?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.cases.mapper.OriginalResidenceSaleOpeningCaseMapper">
|
||||||
|
|
||||||
|
<update id="createTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.original_residence_sale_opening_case_' + yearMonth" />
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
|
||||||
|
drop table ${targetTableName};
|
||||||
|
|
||||||
|
CREATE TABLE ${targetTableName}
|
||||||
|
(
|
||||||
|
case_id varchar (32) NOT NULL,
|
||||||
|
case_lianjia_id nvarchar (50) NOT null primary key,
|
||||||
|
case_lianjia_community_id nvarchar (50) NOT NULL,
|
||||||
|
case_title nvarchar (500) NOT NULL,
|
||||||
|
clean_property_type nvarchar (20) NULL,
|
||||||
|
case_apartment_layout nvarchar (500) NOT NULL,
|
||||||
|
case_house_structure nvarchar (50) NULL,
|
||||||
|
case_area decimal (10, 2) NOT NULL,
|
||||||
|
case_underground_area decimal (10, 2) NULL,
|
||||||
|
case_toward nvarchar (50) NOT NULL,
|
||||||
|
clean_toward nvarchar (50) NULL,
|
||||||
|
case_storey nvarchar (20) NOT NULL,
|
||||||
|
clean_total_floor int NOT NULL,
|
||||||
|
clean_current_floor_desc nvarchar (20) NULL,
|
||||||
|
case_elevator nvarchar (20) NULL,
|
||||||
|
clean_elevator nvarchar (20) NULL,
|
||||||
|
case_tihu nvarchar (20) NULL,
|
||||||
|
case_decoration nvarchar (20) NULL,
|
||||||
|
clean_decoration nvarchar (50) NULL,
|
||||||
|
case_year int NOT NULL,
|
||||||
|
clean_year int NOT NULL,
|
||||||
|
case_address nvarchar (500) NULL,
|
||||||
|
case_vid nvarchar (500) NULL,
|
||||||
|
case_chan_quan_xing_zhi nvarchar (200) NULL,
|
||||||
|
case_price decimal (18, 2) NOT NULL,
|
||||||
|
clean_unit_price decimal (18, 2) NOT NULL,
|
||||||
|
clean_total_price decimal (18, 2) NOT NULL,
|
||||||
|
case_community_name nvarchar (500) NULL,
|
||||||
|
case_visited_num int NOT NULL,
|
||||||
|
case_visited_num_15 int NOT NULL,
|
||||||
|
case_visited_num_30 int NOT NULL,
|
||||||
|
case_latest_deal_date date NULL,
|
||||||
|
case_latest_visited_date date NULL,
|
||||||
|
case_first_visited_date date NULL,
|
||||||
|
case_url nvarchar (500) NOT NULL,
|
||||||
|
case_community_url nvarchar (500) NOT NULL,
|
||||||
|
case_get_date date NOT NULL,
|
||||||
|
case_provider nvarchar (50) NOT NULL,
|
||||||
|
uv_community_name nvarchar (500) NULL,
|
||||||
|
uv_community_address nvarchar (1024) NULL,
|
||||||
|
uv_community_id nvarchar (20) NULL,
|
||||||
|
uv_building_id nvarchar (20) NULL,
|
||||||
|
uv_county nvarchar (50) NULL,
|
||||||
|
uv_block nvarchar (50) NULL,
|
||||||
|
uv_loop nvarchar (50) NULL,
|
||||||
|
area_coefficient decimal (18, 6) NULL,
|
||||||
|
toward_coefficient decimal (18, 6) NULL,
|
||||||
|
floor_coefficient decimal (18, 6) NULL,
|
||||||
|
decoration_coefficient int NULL,
|
||||||
|
year_coefficient decimal (18, 6) NULL,
|
||||||
|
building_coefficient decimal (18, 6) NULL,
|
||||||
|
adjust_unit_price decimal (18, 2) NULL,
|
||||||
|
clean_project_level nvarchar (50) NULL,
|
||||||
|
create_time datetime NOT NULL
|
||||||
|
);
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="createCleanTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.ODS_HOUSINGCASELISTED_LJ_' + yearMonth" />
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
|
||||||
|
drop table ${targetTableName};
|
||||||
|
|
||||||
|
CREATE TABLE ${targetTableName}
|
||||||
|
(
|
||||||
|
case_id varchar(32) not null,
|
||||||
|
HouseholdsID_LJ bigint not null primary key,
|
||||||
|
ProjectID_LJ bigint null,
|
||||||
|
ProjectID bigint null,
|
||||||
|
Roomtype nvarchar(64) null,
|
||||||
|
Area decimal(18, 2) null,
|
||||||
|
Towards nvarchar(64) null,
|
||||||
|
UpperFloorSum nvarchar(32) null,
|
||||||
|
UpperFloorNum nvarchar(32) null,
|
||||||
|
Elevator tinyint null,
|
||||||
|
Decoration nvarchar(64) null,
|
||||||
|
Year int null,
|
||||||
|
AreaCoff decimal(7, 4) null,
|
||||||
|
TowardsCoff decimal(7, 4) null,
|
||||||
|
FloorCoff decimal(7, 4) null,
|
||||||
|
DecorationRng int null,
|
||||||
|
YearCoff decimal(7, 4) null,
|
||||||
|
BuildingCoff decimal(7, 4) null,
|
||||||
|
PriceTotal decimal(18, 2) null,
|
||||||
|
PriceUnit decimal(18, 2) not null,
|
||||||
|
PriceUnitAdj decimal(18, 2) not null,
|
||||||
|
Visited_Num int null,
|
||||||
|
First_Visit_Time date null,
|
||||||
|
Visited_Num_15 int null,
|
||||||
|
Visited_Num_30 int null,
|
||||||
|
Status tinyint null,
|
||||||
|
AdjustedValue decimal(18, 2) null,
|
||||||
|
AdjustedPst decimal(18, 6) null,
|
||||||
|
AdjustedCumValue decimal(18, 2) null,
|
||||||
|
AdjustedCumPst decimal(18, 6) null,
|
||||||
|
AdjustedCumValueAbs decimal(18, 2) null,
|
||||||
|
AdjustedCumPstAbs decimal(18, 6) null,
|
||||||
|
AdjustedCumNum int null,
|
||||||
|
PriceTotalIn decimal(18, 2) null,
|
||||||
|
PriceTotalOut decimal(18, 2) null,
|
||||||
|
PriceDateIn date null,
|
||||||
|
PriceDateOut date null
|
||||||
|
);
|
||||||
|
</update>
|
||||||
|
<update id="createAssembleTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.DW_HOUSINGCASE_COMM_' + yearMonth" />
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NOT NULL
|
||||||
|
drop table ${targetTableName};
|
||||||
|
|
||||||
|
create table ${targetTableName}
|
||||||
|
(
|
||||||
|
SID int primary key identity
|
||||||
|
, case_id varchar(32) not null
|
||||||
|
, HouseholdsID_LJ bigint
|
||||||
|
, ProjectID_LJ bigint
|
||||||
|
, ProjectID bigint --modified
|
||||||
|
, ProjectName nvarchar(1024)
|
||||||
|
, ProjectAddr nvarchar(1024)
|
||||||
|
, County nvarchar(512)
|
||||||
|
, Block nvarchar(512)
|
||||||
|
, Loop nvarchar(512)
|
||||||
|
, Roomtype nvarchar(64)
|
||||||
|
, Area decimal(18, 2)
|
||||||
|
, Towards nvarchar(64)
|
||||||
|
, UpperFloorSum nvarchar(32)
|
||||||
|
, UpperFloorNum nvarchar(32)
|
||||||
|
, Elevator tinyint
|
||||||
|
, Decoration nvarchar(64)
|
||||||
|
, Year int
|
||||||
|
, AreaCoff decimal(7, 4)
|
||||||
|
, TowardsCoff decimal(7, 4)
|
||||||
|
, FloorCoff decimal(7, 4)
|
||||||
|
, DecorationRng int
|
||||||
|
, YearCoff decimal(7, 4)
|
||||||
|
, BuildingCoff decimal(7, 4)
|
||||||
|
, BasePrice_1 decimal(18, 2)
|
||||||
|
, PriceTotal decimal(18, 2) not null
|
||||||
|
, PriceUnit decimal(18, 2) not null
|
||||||
|
, PriceUnitAdj decimal(18, 2) not null
|
||||||
|
, Visited_Num int
|
||||||
|
, First_Visit_Time date
|
||||||
|
, Visited_Num_15 int
|
||||||
|
, Visited_Num_30 int
|
||||||
|
, Status tinyint
|
||||||
|
, AdjustedValue decimal(18, 2)
|
||||||
|
, AdjustedPst decimal(18, 6)
|
||||||
|
, AdjustedCumValue decimal(18, 2)
|
||||||
|
, AdjustedCumPst decimal(18, 6)
|
||||||
|
, AdjustedCumValueAbs decimal(18, 2)
|
||||||
|
, AdjustedCumPstAbs decimal(18, 6)
|
||||||
|
, AdjustedCumNum int
|
||||||
|
, PriceTotalIn decimal(18, 2)
|
||||||
|
, PriceDateIn date
|
||||||
|
);
|
||||||
|
</update>
|
||||||
|
</mapper>
|
@ -0,0 +1,87 @@
|
|||||||
|
<?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.cases.mapper.sync.SyncOriginalResidenceSaleOpeningCaseMapper">
|
||||||
|
<update id="createTable">
|
||||||
|
<bind name="targetTableName" value="'dbo.ODS_HOUSINGCASELISTED_LJ_' + yearMonth + '_RAW'"/>
|
||||||
|
IF OBJECT_ID(#{targetTableName}, 'U') IS NULL
|
||||||
|
CREATE TABLE ${targetTableName}
|
||||||
|
(
|
||||||
|
SID int NOT NULL IDENTITY(1, 1) primary key,
|
||||||
|
llid bigint NULL,
|
||||||
|
lcid bigint NULL,
|
||||||
|
Name nvarchar (1024) NULL,
|
||||||
|
Roomtype nvarchar (50) NULL,
|
||||||
|
Area decimal (18, 2) NULL,
|
||||||
|
Towards nvarchar (50) NULL,
|
||||||
|
Storey nvarchar (50) NULL,
|
||||||
|
Lastdeal date NULL,
|
||||||
|
Condoelev nvarchar (50) NULL,
|
||||||
|
Decoration nvarchar (50) NULL,
|
||||||
|
Year int NULL,
|
||||||
|
Address nvarchar (1024) NULL,
|
||||||
|
Price decimal (18, 2) NULL,
|
||||||
|
Cname nvarchar (1024) NULL,
|
||||||
|
Visited_Num int NULL,
|
||||||
|
First_Visit_Time date NULL,
|
||||||
|
Visited_Num_15 int NULL,
|
||||||
|
Visited_Num_30 int NULL,
|
||||||
|
Url nvarchar (512) NULL,
|
||||||
|
Curl nvarchar (512) NULL,
|
||||||
|
CurlDate date NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
truncate table ${targetTableName}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<insert id="insert" parameterType="com.ruoyi.project.data.cases.domain.OriginalResidenceSaleOpeningCase">
|
||||||
|
insert into dbo.ODS_HOUSINGCASELISTED_LJ_${yearMonth}_RAW
|
||||||
|
(
|
||||||
|
llid
|
||||||
|
, lcid
|
||||||
|
, Name
|
||||||
|
, Roomtype
|
||||||
|
, Area
|
||||||
|
, Towards
|
||||||
|
, Storey
|
||||||
|
, Lastdeal
|
||||||
|
, Condoelev
|
||||||
|
, Decoration
|
||||||
|
, Year
|
||||||
|
, Address
|
||||||
|
, Price
|
||||||
|
, Cname
|
||||||
|
, Visited_Num
|
||||||
|
, First_Visit_Time
|
||||||
|
, Visited_Num_15
|
||||||
|
, Visited_Num_30
|
||||||
|
, Url
|
||||||
|
, Curl
|
||||||
|
, CurlDate
|
||||||
|
) values
|
||||||
|
(
|
||||||
|
#{caseLianJiaId},
|
||||||
|
#{caseLianJiaCommunityId},
|
||||||
|
#{caseTitle},
|
||||||
|
#{caseApartmentLayout},
|
||||||
|
#{caseArea},
|
||||||
|
#{caseToward},
|
||||||
|
#{caseStorey},
|
||||||
|
#{caseLastDeal,jdbcType=DATE},
|
||||||
|
#{caseElevator},
|
||||||
|
#{caseDecoration},
|
||||||
|
#{caseYear},
|
||||||
|
#{caseAddress},
|
||||||
|
#{casePrice},
|
||||||
|
#{caseCommunityName},
|
||||||
|
#{caseVisitedNum},
|
||||||
|
#{caseFirstVisitTime,jdbcType=DATE},
|
||||||
|
#{caseVisitedNum15},
|
||||||
|
#{caseVisitedNum30},
|
||||||
|
#{caseUrl},
|
||||||
|
#{caseCommunityUrl},
|
||||||
|
#{caseGetDate,jdbcType=DATE}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
57
ruoyi/src/main/resources/mybatis/data/UVBasePriceMapper.xml
Normal file
57
ruoyi/src/main/resources/mybatis/data/UVBasePriceMapper.xml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?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.basis.mapper.UVBasePriceMapper">
|
||||||
|
<!-- <resultMap id="resultMapping" type="com.ruoyi.project.data.basis.domain.UVBasePrice">-->
|
||||||
|
<!-- -->
|
||||||
|
<!-- </resultMap>-->
|
||||||
|
<select id="pageCount"
|
||||||
|
parameterType="com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel"
|
||||||
|
resultType="int">
|
||||||
|
select count(1) from dbo.TLK_基价信息
|
||||||
|
<where>
|
||||||
|
<if test="communityId != null">
|
||||||
|
ITEM_AIRAID=#{communityId}
|
||||||
|
</if>
|
||||||
|
<if test="valuePoint != null">
|
||||||
|
AND ITEM_VALUEPOINT=#{valuePoint}
|
||||||
|
</if>
|
||||||
|
<if test="communityType != null">
|
||||||
|
AND ITEM_PROJECTTYPE=#{communityType}
|
||||||
|
</if>
|
||||||
|
<if test="priceType != null">
|
||||||
|
AND ITEM_PRICETYPE=#{priceType}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
<select id="pageList"
|
||||||
|
parameterType="com.ruoyi.project.data.basis.domain.UVBasePriceQueryModel"
|
||||||
|
resultType="com.ruoyi.project.data.basis.domain.UVBasePrice">
|
||||||
|
<!-- <bind name="skip" value=" (pageIndex - 1) * pageSize "></bind>-->
|
||||||
|
SELECT ITEM_AIRAID as communityId
|
||||||
|
,ITEM_PROJECTTYPE as communityType
|
||||||
|
,ITEM_PRICETYPE as priceType
|
||||||
|
,ITEM_STANDARDPRICE as standardPrice
|
||||||
|
,ITEM_MAINAREAPRICE as mainAreaPrice
|
||||||
|
,ITEM_VALUEPOINT as valuePoint
|
||||||
|
,ITEM_PRICEEXPLAIN as comment
|
||||||
|
,ITEM_PRICECHG
|
||||||
|
FROM dbo.TLK_基价信息
|
||||||
|
<where>
|
||||||
|
<if test="communityId != null">
|
||||||
|
ITEM_AIRAID=#{communityId}
|
||||||
|
</if>
|
||||||
|
<if test="valuePoint != null">
|
||||||
|
AND ITEM_VALUEPOINT=#{valuePoint}
|
||||||
|
</if>
|
||||||
|
<if test="communityType != null">
|
||||||
|
AND ITEM_PROJECTTYPE=#{communityType}
|
||||||
|
</if>
|
||||||
|
<if test="priceType != null">
|
||||||
|
AND ITEM_PRICETYPE=#{priceType}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by ITEM_VALUEPOINT desc,ITEM_AIRAID asc offset #{pageIndex} ROW FETCH NEXT #{pageSize} ROWS ONLY;
|
||||||
|
</select>
|
||||||
|
</mapper>
|
89
ruoyi/src/main/resources/sql-template/clear_closing_case.sql
Normal file
89
ruoyi/src/main/resources/sql-template/clear_closing_case.sql
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
--二手房成交记录处理
|
||||||
|
select t.*, left(addr_floornum,charindex('|', addr_floornum, 1)-1) as 楼栋地址,
|
||||||
|
substring(addr_floornum, charindex('|', addr_floornum, 1)+1, len(addr_floornum)-charindex('|', addr_floornum, 1)) as "所在层"
|
||||||
|
into #temp
|
||||||
|
from (
|
||||||
|
select a.*, dbo.remove_last_numbers(a.case_address) as addr_floornum
|
||||||
|
from dbo.original_residence_sale_closing_case_#yearMonth# a
|
||||||
|
) t;
|
||||||
|
|
||||||
|
update #temp set case_county_name=case_county_name+'区';
|
||||||
|
update #temp set case_county_name='浦东新区' where case_county_name='浦东区';
|
||||||
|
|
||||||
|
|
||||||
|
--成交插入到临时表 #result
|
||||||
|
select a.*, b.楼栋ID, b.小区ID,cast(left(case_signing_date,7) as varchar(16)) as 年月
|
||||||
|
into #result
|
||||||
|
from #temp a
|
||||||
|
left join (
|
||||||
|
select row_number()over(partition by 区县, 地址 order by newid()) sq, 楼栋ID, 小区ID, 区县, 地址 from obpm_LianCheng_Data.dbo.AI单套地址20190508
|
||||||
|
) b
|
||||||
|
on a.case_county_name = b.区县 and a.楼栋地址 = b.地址 and b.sq=1;
|
||||||
|
|
||||||
|
|
||||||
|
update b set b.clean_building_address=a.楼栋地址,
|
||||||
|
b.clean_current_floor=a.所在层,
|
||||||
|
b.clean_building_id=a.楼栋ID,
|
||||||
|
b.clean_community_id=a.小区ID,
|
||||||
|
b.case_county_name=left(a.case_county_name, 2)
|
||||||
|
from #result a join dbo.original_residence_sale_closing_case_#yearMonth# b on a.id=b.id
|
||||||
|
|
||||||
|
|
||||||
|
insert into dbo.ODS_HOUSINGCASE_DEAL_#yearMonth#
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, ProjectID
|
||||||
|
, BuildingID
|
||||||
|
, Area
|
||||||
|
, UpperFloorSum
|
||||||
|
, UpperFloorNum
|
||||||
|
, AreaCoff
|
||||||
|
, FloorCoff
|
||||||
|
, BuildingCoff
|
||||||
|
, PriceTotal
|
||||||
|
, PriceUnit
|
||||||
|
, PriceUnitAdj
|
||||||
|
, DateContract
|
||||||
|
)
|
||||||
|
select a.case_id
|
||||||
|
, a.clean_community_id
|
||||||
|
, a.clean_building_id
|
||||||
|
, a.case_area
|
||||||
|
, b.地上层数
|
||||||
|
, a.clean_current_floor
|
||||||
|
, d.CoefficientA * a.case_area + d.CoefficientB as AreaCoff
|
||||||
|
, 1 as FloorCoff
|
||||||
|
, e.Coefficient as BuildingCoff
|
||||||
|
, a.case_total_price
|
||||||
|
, a.case_total_price * 1.0 / a.case_area as PriceUnit
|
||||||
|
, a.case_total_price * 1.0 / a.case_area / isnull(d.CoefficientA * a.case_area + d.CoefficientB, 1)
|
||||||
|
/ isnull(e.Coefficient, 1) as PriceUnitAdj
|
||||||
|
, case_signing_date
|
||||||
|
from dbo.original_residence_sale_closing_case_#yearMonth# a
|
||||||
|
left join obpm_LianCheng_Data.dbo.AI楼栋数据_610 b
|
||||||
|
on a.clean_community_id = b.AI小区ID
|
||||||
|
and a.clean_building_id = b.AI楼栋ID
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_小区信息管理 c
|
||||||
|
on a.clean_community_id = c.ITEM_AIRAID and c.ITEM_PROJECTTYPE = '1'
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_字典数据信息 f
|
||||||
|
on f.ITEM_DICVALUE = c.ITEM_PROPERTYLEVEL and f.ITEM_DICTYPE='物业档次'
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select ProjectLevel
|
||||||
|
, LowerKey
|
||||||
|
, UpperKey
|
||||||
|
, CoefficientA
|
||||||
|
, CoefficientB
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '面积修正(链家挂牌)'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) d --面积修正
|
||||||
|
on f.ITEM_DICTEXT = d.ProjectLevel
|
||||||
|
and
|
||||||
|
(
|
||||||
|
a.case_area > d.LowerKey
|
||||||
|
and a.case_area <= d.UpperKey
|
||||||
|
)
|
||||||
|
left join obpm_LianCheng_Data.dbo.DIM_BUILDING_COFF e
|
||||||
|
on a.clean_building_id = e.BuildingID
|
||||||
|
where a.case_area > 0 ;
|
499
ruoyi/src/main/resources/sql-template/clear_opening_case.sql
Normal file
499
ruoyi/src/main/resources/sql-template/clear_opening_case.sql
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
update a
|
||||||
|
set a.uv_community_id=b.ITEM_ProjectID,
|
||||||
|
a.uv_building_id=b.ITEM_BuildingID,
|
||||||
|
a.area_coefficient= D.CoefficientA * A.case_area + D.CoefficientB,
|
||||||
|
a.toward_coefficient = e.Coefficient,
|
||||||
|
a.floor_coefficient= f.Coefficient,
|
||||||
|
a.decoration_coefficient=g.Coefficient,
|
||||||
|
a.year_coefficient=h.Coefficient,
|
||||||
|
a.building_coefficient=i.Coefficient,
|
||||||
|
a.adjust_unit_price = (A.clean_unit_price - isnull(G.Coefficient, 0)) * 1.0 /
|
||||||
|
isnull(D.CoefficientA * A.case_area + D.CoefficientB, 1) / isnull(E.Coefficient, 1) /
|
||||||
|
isnull(F.Coefficient, 1) / isnull(H.Coefficient, 1) / isnull(I.Coefficient, 1),
|
||||||
|
a.clean_project_level = C.PROJECTLEVEL,
|
||||||
|
a.uv_county=c.countyName,
|
||||||
|
a.uv_block=c.blockName,
|
||||||
|
a.uv_loop=c.loopName,
|
||||||
|
a.uv_community_name=c.ITEM_RANAME,
|
||||||
|
a.uv_community_address=c.ITEM_RAADRESS
|
||||||
|
from original_residence_sale_opening_case_#yearMonth# A
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_链家小区 B
|
||||||
|
on A.case_lianjia_community_id = B.ITEM_ProjectID_LJ
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select X.ITEM_AIRAID
|
||||||
|
, y.ITEM_DICTEXT as PROJECTLEVEL
|
||||||
|
, y2.ITEM_DICTEXT as countyName
|
||||||
|
, y3.ITEM_DICTEXT as blockName
|
||||||
|
, y4.ITEM_DICTEXT as loopName
|
||||||
|
, x.ITEM_RANAME
|
||||||
|
, x.ITEM_RAADRESS
|
||||||
|
from obpm_LianCheng_Data.dbo.TLK_小区信息管理 x
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_字典数据信息 y
|
||||||
|
on x.ITEM_PROPERTYLEVEL = y.ITEM_DICVALUE
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_字典数据信息 y2 -- 区域
|
||||||
|
on x.ITEM_DISTRICT1 = y2.ITEM_DICVALUE
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_字典数据信息 y3 -- 板块
|
||||||
|
on x.ITEM_SECTOR121 = y3.ITEM_DICVALUE
|
||||||
|
left join obpm_LianCheng_Data.dbo.TLK_字典数据信息 y4 -- 环线
|
||||||
|
on x.ITEM_CIRCLEPOSITION = y4.ITEM_DICVALUE
|
||||||
|
where X.ITEM_PROJECTTYPE = '1'
|
||||||
|
and y.ITEM_DICTYPE = '物业档次'
|
||||||
|
and y2.ITEM_DICTYPE = '区域'
|
||||||
|
and y3.ITEM_DICTYPE = '板块'
|
||||||
|
and y4.ITEM_DICTYPE = '环线'
|
||||||
|
) C
|
||||||
|
on B.ITEM_ProjectID = C.ITEM_AIRAID
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select ProjectLevel, LowerKey, UpperKey, Coefficient, CoefficientA, CoefficientB
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '面积修正(链家挂牌)'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) D --面积修正
|
||||||
|
on C.PROJECTLEVEL = D.ProjectLevel
|
||||||
|
and
|
||||||
|
(
|
||||||
|
A.case_area > D.LowerKey
|
||||||
|
and A.case_area <= D.UpperKey
|
||||||
|
)
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select SingleKey, Coefficient
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '朝向(链家挂牌)'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) E --朝向修正
|
||||||
|
on A.clean_toward = E.SingleKey
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select SingleKey, Coefficient, Elevator, UpperKey, LowerKey
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '楼层(链家挂牌)'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) F --楼层修正
|
||||||
|
on isnull(A.clean_Elevator, 99) = isnull(F.Elevator, 99)
|
||||||
|
and A.clean_total_floor = F.UpperKey
|
||||||
|
and A.clean_current_floor_desc = F.LowerKey
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select SingleKey, Coefficient
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '室内装修(链家挂牌)'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) G --装修修正
|
||||||
|
on A.clean_Decoration = G.SingleKey
|
||||||
|
left join
|
||||||
|
(
|
||||||
|
select SingleKey, Coefficient
|
||||||
|
from obpm_LianCheng_Data.dbo.DIM_PARAMETERS
|
||||||
|
where CoffType = '竣工日期'
|
||||||
|
and ProjectType = '公寓'
|
||||||
|
) H --竣工日期修正
|
||||||
|
on A.clean_year = H.SingleKey
|
||||||
|
left join obpm_LianCheng_Data.dbo.DIM_BUILDING_COFF I
|
||||||
|
on B.ITEM_BuildingID = I.BuildingID;
|
||||||
|
|
||||||
|
----建临时表#HousingCaseListAdj, 插入挂牌清洗数据
|
||||||
|
------ 20200312BUG修复:朝向处理规则优化
|
||||||
|
create table #HousingCaseListAdj
|
||||||
|
(
|
||||||
|
case_id varchar(32) not null
|
||||||
|
, HouseholdsID_LJ bigint
|
||||||
|
, ProjectID_LJ bigint
|
||||||
|
, Roomtype nvarchar(64)
|
||||||
|
, Area decimal(18, 2)
|
||||||
|
, Towards nvarchar(64)
|
||||||
|
, UpperFloorSum nvarchar(32)
|
||||||
|
, UpperFloorNum nvarchar(32)
|
||||||
|
, Elevator tinyint
|
||||||
|
, Decoration nvarchar(64)
|
||||||
|
, [Year] int
|
||||||
|
, PriceTotal decimal(18, 2)
|
||||||
|
, PriceUnit decimal(18, 2) not null
|
||||||
|
, Visited_Num int
|
||||||
|
, First_Visit_Time date
|
||||||
|
, Visited_Num_15 int
|
||||||
|
, Visited_Num_30 int
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into #HousingCaseListAdj
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, HouseholdsID_LJ
|
||||||
|
, ProjectID_LJ
|
||||||
|
, Roomtype
|
||||||
|
, Area
|
||||||
|
, Towards
|
||||||
|
, UpperFloorSum
|
||||||
|
, UpperFloorNum
|
||||||
|
, Elevator
|
||||||
|
, Decoration
|
||||||
|
, Year
|
||||||
|
, PriceTotal
|
||||||
|
, PriceUnit
|
||||||
|
)
|
||||||
|
select case_id
|
||||||
|
, case_lianjia_id
|
||||||
|
, case_lianjia_community_id
|
||||||
|
, case_apartment_layout
|
||||||
|
, case_area
|
||||||
|
, clean_toward
|
||||||
|
, clean_total_floor
|
||||||
|
, clean_current_floor_desc
|
||||||
|
, clean_elevator
|
||||||
|
, clean_decoration
|
||||||
|
, clean_year
|
||||||
|
, clean_total_price
|
||||||
|
, clean_unit_price
|
||||||
|
from original_residence_sale_opening_case_#yearMonth#;
|
||||||
|
|
||||||
|
----案例标准化
|
||||||
|
create table #HousingCaseListSTD
|
||||||
|
(
|
||||||
|
case_id varchar(32) not null
|
||||||
|
, HouseholdsID_LJ bigint
|
||||||
|
, ProjectID_LJ bigint
|
||||||
|
, ProjectID bigint
|
||||||
|
, BuildingID bigint
|
||||||
|
, AreaCoff decimal(7, 4)
|
||||||
|
, TowardsCoff decimal(7, 4)
|
||||||
|
, FloorCoff decimal(7, 4)
|
||||||
|
, DecorationRng int
|
||||||
|
, YearCoff decimal(7, 4)
|
||||||
|
, BuildingCoff decimal(7, 4)
|
||||||
|
, PriceUnit decimal(18, 2) not null
|
||||||
|
, PriceUnitAdj decimal(18, 2) not null
|
||||||
|
);
|
||||||
|
insert into #HousingCaseListSTD
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, HouseholdsID_LJ
|
||||||
|
, ProjectID_LJ
|
||||||
|
, ProjectID
|
||||||
|
, BuildingID
|
||||||
|
, AreaCoff
|
||||||
|
, TowardsCoff
|
||||||
|
, FloorCoff
|
||||||
|
, DecorationRng
|
||||||
|
, YearCoff
|
||||||
|
, BuildingCoff
|
||||||
|
, PriceUnit
|
||||||
|
, PriceUnitAdj
|
||||||
|
)
|
||||||
|
select case_id
|
||||||
|
, case_lianjia_id
|
||||||
|
, case_lianjia_community_id
|
||||||
|
, uv_community_id
|
||||||
|
, uv_building_id
|
||||||
|
, area_coefficient
|
||||||
|
, toward_coefficient
|
||||||
|
, floor_coefficient
|
||||||
|
, decoration_coefficient
|
||||||
|
, year_coefficient
|
||||||
|
, building_coefficient
|
||||||
|
, clean_unit_price
|
||||||
|
, adjust_unit_price
|
||||||
|
from dbo.original_residence_sale_opening_case_#yearMonth#;
|
||||||
|
|
||||||
|
|
||||||
|
--当月拍照表调价信息
|
||||||
|
--- 20200205BUG修复:AdjustedValue、AdjustedPst 中当Status=1时,值不为0的问题
|
||||||
|
select
|
||||||
|
a.case_id,
|
||||||
|
a.HouseholdsID_LJ,
|
||||||
|
case when b.Status is null then 3
|
||||||
|
when a.PriceTotal=b.PriceTotal then 1
|
||||||
|
else 2 end as Status,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then 0 -- 20200205修改
|
||||||
|
when b.Status is null then 0
|
||||||
|
else a.PriceTotal-b.PriceTotal end AdjustedValue,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then 0 -- 20200205修改
|
||||||
|
when b.Status is null then 0
|
||||||
|
else (a.PriceTotal-b.PriceTotal)*1.0/b.PriceTotal end AdjustedPst,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then b.AdjustedCumValue
|
||||||
|
when b.Status is null then 0
|
||||||
|
else b.AdjustedCumValue + a.PriceTotal-b.PriceTotal end AdjustedCumValue,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then b.AdjustedCumPst
|
||||||
|
when b.Status is null then 0
|
||||||
|
else (b.AdjustedCumValue + a.PriceTotal-b.PriceTotal)*1.0/b.PriceTotalIn end AdjustedCumPst,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then b.AdjustedCumValueAbs
|
||||||
|
when b.Status is null then 0
|
||||||
|
else b.AdjustedCumValueAbs + abs(a.PriceTotal-b.PriceTotal) end AdjustedCumValueAbs,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then b.AdjustedCumPstAbs
|
||||||
|
when b.Status is null then 0
|
||||||
|
else (b.AdjustedCumValueAbs+ abs(a.PriceTotal-b.PriceTotal))*1.0/b.PriceTotalIn end AdjustedCumPstAbs,
|
||||||
|
case when a.PriceTotal=b.PriceTotal then b.AdjustedCumPstAbs
|
||||||
|
when b.Status is null then 0
|
||||||
|
else b.AdjustedCumNum+1 end AdjustedCumNum,
|
||||||
|
case when b.Status is null then a.PriceTotal else b.PriceTotalIn end PriceTotalIn,
|
||||||
|
NULL as PriceTotalOut,
|
||||||
|
case when b.Status is null then getdate() else b.PriceDateIn end PriceDateIn,
|
||||||
|
cast(NULL as date) as PriceDateOut
|
||||||
|
into #HousingCaseListStatic
|
||||||
|
from #HousingCaseListAdj a
|
||||||
|
left join Ods_HousingCaseListed_LJ_#lastYearMonth# b
|
||||||
|
on a.HouseholdsID_LJ = b.HouseholdsID_LJ
|
||||||
|
|
||||||
|
|
||||||
|
--插入当月未下架(活跃)案例数据
|
||||||
|
insert into dbo.ODS_HOUSINGCASELISTED_LJ_#yearMonth#
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, HouseholdsID_LJ
|
||||||
|
, ProjectID_LJ
|
||||||
|
, ProjectID
|
||||||
|
, Roomtype
|
||||||
|
, Area
|
||||||
|
, Towards
|
||||||
|
, UpperFloorSum
|
||||||
|
, UpperFloorNum
|
||||||
|
, Elevator
|
||||||
|
, Decoration
|
||||||
|
, Year
|
||||||
|
, AreaCoff
|
||||||
|
, TowardsCoff
|
||||||
|
, FloorCoff
|
||||||
|
, DecorationRng
|
||||||
|
, YearCoff
|
||||||
|
, BuildingCoff
|
||||||
|
, PriceTotal
|
||||||
|
, PriceUnit
|
||||||
|
, PriceUnitAdj
|
||||||
|
, Visited_Num
|
||||||
|
, First_Visit_Time
|
||||||
|
, Visited_Num_15
|
||||||
|
, Visited_Num_30
|
||||||
|
, Status
|
||||||
|
, AdjustedValue
|
||||||
|
, AdjustedPst
|
||||||
|
, AdjustedCumValue
|
||||||
|
, AdjustedCumPst
|
||||||
|
, AdjustedCumValueAbs
|
||||||
|
, AdjustedCumPstAbs
|
||||||
|
, AdjustedCumNum
|
||||||
|
, PriceTotalIn
|
||||||
|
, PriceTotalOut
|
||||||
|
, PriceDateIn
|
||||||
|
, PriceDateOut
|
||||||
|
)
|
||||||
|
select a.case_id
|
||||||
|
, a.HouseholdsID_LJ
|
||||||
|
, a.ProjectID_LJ
|
||||||
|
, d.ProjectID
|
||||||
|
, a.Roomtype
|
||||||
|
, a.Area
|
||||||
|
, a.Towards
|
||||||
|
, a.UpperFloorSum
|
||||||
|
, a.UpperFloorNum
|
||||||
|
, a.Elevator
|
||||||
|
, a.Decoration
|
||||||
|
, a.[Year]
|
||||||
|
, b.AreaCoff
|
||||||
|
, b.TowardsCoff
|
||||||
|
, b.FloorCoff
|
||||||
|
, b.DecorationRng
|
||||||
|
, b.YearCoff
|
||||||
|
, b.BuildingCoff
|
||||||
|
, a.PriceTotal
|
||||||
|
, a.PriceUnit
|
||||||
|
, b.PriceUnitAdj
|
||||||
|
, a.Visited_Num
|
||||||
|
, a.First_Visit_Time
|
||||||
|
, a.Visited_Num_15
|
||||||
|
, a.Visited_Num_30
|
||||||
|
, c.Status
|
||||||
|
, c.AdjustedValue
|
||||||
|
, c.AdjustedPst
|
||||||
|
, c.AdjustedCumValue
|
||||||
|
, c.AdjustedCumPst
|
||||||
|
, c.AdjustedCumValueAbs
|
||||||
|
, c.AdjustedCumPstAbs
|
||||||
|
, c.AdjustedCumNum
|
||||||
|
, c.PriceTotalIn
|
||||||
|
, c.PriceTotalOut
|
||||||
|
, c.PriceDateIn
|
||||||
|
, c.PriceDateOut
|
||||||
|
from #HousingCaseListAdj a
|
||||||
|
left join #HousingCaseListSTD b
|
||||||
|
on a.HouseholdsID_LJ = b.HouseholdsID_LJ
|
||||||
|
left join #HousingCaseListStatic c
|
||||||
|
on a.HouseholdsID_LJ = c.HouseholdsID_LJ
|
||||||
|
left join DIM_PROJECTID_LJ2AI d
|
||||||
|
on a.ProjectID_LJ = d.ProjectID_LJ;
|
||||||
|
|
||||||
|
|
||||||
|
/*插入当月下架记录*/
|
||||||
|
|
||||||
|
--当月拍照表比上月汇总表减少的记录,为下架记录,先放入临时表 #TmpRecordAdd,然后插入到当月拍照表,记为当月汇总表
|
||||||
|
insert into dbo.ODS_HOUSINGCASELISTED_LJ_#yearMonth#
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, HouseholdsID_LJ
|
||||||
|
, ProjectID_LJ
|
||||||
|
, ProjectID
|
||||||
|
, Roomtype
|
||||||
|
, Area
|
||||||
|
, Towards
|
||||||
|
, UpperFloorSum
|
||||||
|
, UpperFloorNum
|
||||||
|
, Elevator
|
||||||
|
, Decoration
|
||||||
|
, Year
|
||||||
|
, AreaCoff
|
||||||
|
, TowardsCoff
|
||||||
|
, FloorCoff
|
||||||
|
, DecorationRng
|
||||||
|
, YearCoff
|
||||||
|
, BuildingCoff
|
||||||
|
, PriceTotal
|
||||||
|
, PriceUnit
|
||||||
|
, PriceUnitAdj
|
||||||
|
, Visited_Num
|
||||||
|
, First_Visit_Time
|
||||||
|
, Visited_Num_15
|
||||||
|
, Visited_Num_30
|
||||||
|
, Status
|
||||||
|
, AdjustedValue
|
||||||
|
, AdjustedPst
|
||||||
|
, AdjustedCumValue
|
||||||
|
, AdjustedCumPst
|
||||||
|
, AdjustedCumValueAbs
|
||||||
|
, AdjustedCumPstAbs
|
||||||
|
, AdjustedCumNum
|
||||||
|
, PriceTotalIn
|
||||||
|
, PriceTotalOut
|
||||||
|
, PriceDateIn
|
||||||
|
, PriceDateOut
|
||||||
|
)
|
||||||
|
select a.case_id
|
||||||
|
, a.HouseholdsID_LJ
|
||||||
|
, a.ProjectID_LJ
|
||||||
|
, a.ProjectID
|
||||||
|
, a.Roomtype
|
||||||
|
, a.Area
|
||||||
|
, a.Towards
|
||||||
|
, a.UpperFloorSum
|
||||||
|
, a.UpperFloorNum
|
||||||
|
, a.Elevator
|
||||||
|
, a.Decoration
|
||||||
|
, a.[Year]
|
||||||
|
, a.AreaCoff
|
||||||
|
, a.TowardsCoff
|
||||||
|
, a.FloorCoff
|
||||||
|
, a.DecorationRng
|
||||||
|
, a.YearCoff
|
||||||
|
, a.BuildingCoff
|
||||||
|
, a.PriceTotal
|
||||||
|
, a.PriceUnit
|
||||||
|
, a.PriceUnitAdj
|
||||||
|
, a.Visited_Num
|
||||||
|
, a.First_Visit_Time
|
||||||
|
, a.Visited_Num_15
|
||||||
|
, a.Visited_Num_30
|
||||||
|
, 4 as Status
|
||||||
|
, a.AdjustedValue
|
||||||
|
, a.AdjustedPst
|
||||||
|
, a.AdjustedCumValue
|
||||||
|
, a.AdjustedCumPst
|
||||||
|
, a.AdjustedCumValueAbs
|
||||||
|
, a.AdjustedCumPstAbs
|
||||||
|
, a.AdjustedCumNum
|
||||||
|
, a.PriceTotalIn
|
||||||
|
, a.PriceTotal as PriceTotalOut
|
||||||
|
, a.PriceDateIn
|
||||||
|
, getdate() as PriceDateOut
|
||||||
|
from ODS_HOUSINGCASELISTED_LJ_#lastYearMonth# a
|
||||||
|
left join ODS_HOUSINGCASELISTED_LJ_#yearMonth# b
|
||||||
|
on a.HouseholdsID_LJ = b.HouseholdsID_LJ
|
||||||
|
where b.HouseholdsID_LJ is null
|
||||||
|
and a.Status not in ( 4, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
/*插入历史下架记录*/
|
||||||
|
insert into dbo.ODS_HOUSINGCASELISTED_LJ_#yearMonth#
|
||||||
|
(
|
||||||
|
case_id
|
||||||
|
, HouseholdsID_LJ
|
||||||
|
, ProjectID_LJ
|
||||||
|
, ProjectID
|
||||||
|
, Roomtype
|
||||||
|
, Area
|
||||||
|
, Towards
|
||||||
|
, UpperFloorSum
|
||||||
|
, UpperFloorNum
|
||||||
|
, Elevator
|
||||||
|
, Decoration
|
||||||
|
, Year
|
||||||
|
, AreaCoff
|
||||||
|
, TowardsCoff
|
||||||
|
, FloorCoff
|
||||||
|
, DecorationRng
|
||||||
|
, YearCoff
|
||||||
|
, BuildingCoff
|
||||||
|
, PriceTotal
|
||||||
|
, PriceUnit
|
||||||
|
, PriceUnitAdj
|
||||||
|
, Visited_Num
|
||||||
|
, First_Visit_Time
|
||||||
|
, Visited_Num_15
|
||||||
|
, Visited_Num_30
|
||||||
|
, Status
|
||||||
|
, AdjustedValue
|
||||||
|
, AdjustedPst
|
||||||
|
, AdjustedCumValue
|
||||||
|
, AdjustedCumPst
|
||||||
|
, AdjustedCumValueAbs
|
||||||
|
, AdjustedCumPstAbs
|
||||||
|
, AdjustedCumNum
|
||||||
|
, PriceTotalIn
|
||||||
|
, PriceTotalOut
|
||||||
|
, PriceDateIn
|
||||||
|
, PriceDateOut
|
||||||
|
)
|
||||||
|
select a.case_id
|
||||||
|
, a.HouseholdsID_LJ
|
||||||
|
, a.ProjectID_LJ
|
||||||
|
, a.ProjectID
|
||||||
|
, a.Roomtype
|
||||||
|
, a.Area
|
||||||
|
, a.Towards
|
||||||
|
, a.UpperFloorSum
|
||||||
|
, a.UpperFloorNum
|
||||||
|
, a.Elevator
|
||||||
|
, a.Decoration
|
||||||
|
, a.[Year]
|
||||||
|
, a.AreaCoff
|
||||||
|
, a.TowardsCoff
|
||||||
|
, a.FloorCoff
|
||||||
|
, a.DecorationRng
|
||||||
|
, a.YearCoff
|
||||||
|
, a.BuildingCoff
|
||||||
|
, a.PriceTotal
|
||||||
|
, a.PriceUnit
|
||||||
|
, a.PriceUnitAdj
|
||||||
|
, a.Visited_Num
|
||||||
|
, a.First_Visit_Time
|
||||||
|
, a.Visited_Num_15
|
||||||
|
, a.Visited_Num_30
|
||||||
|
, 5 as Status
|
||||||
|
, a.AdjustedValue
|
||||||
|
, a.AdjustedPst
|
||||||
|
, a.AdjustedCumValue
|
||||||
|
, a.AdjustedCumPst
|
||||||
|
, a.AdjustedCumValueAbs
|
||||||
|
, a.AdjustedCumPstAbs
|
||||||
|
, a.AdjustedCumNum
|
||||||
|
, a.PriceTotalIn
|
||||||
|
, a.PriceTotal as PriceTotalOut
|
||||||
|
, a.PriceDateIn
|
||||||
|
, a.PriceDateOut
|
||||||
|
from ODS_HOUSINGCASELISTED_LJ_#lastYearMonth# a
|
||||||
|
left join ODS_HOUSINGCASELISTED_LJ_#yearMonth# b
|
||||||
|
on a.HouseholdsID_LJ = b.HouseholdsID_LJ
|
||||||
|
where b.HouseholdsID_LJ is null
|
||||||
|
and a.Status in ( 4, 5 );
|
||||||
|
|
||||||
|
drop table #HousingCaseListAdj
|
||||||
|
drop table #HousingCaseListSTD
|
||||||
|
drop table #HousingCaseListStatic
|
@ -37,4 +37,13 @@ public class MapperXmlGeneratorTests {
|
|||||||
calendar.get(Calendar.MONTH)-1));
|
calendar.get(Calendar.MONTH)-1));
|
||||||
Assert.assertTrue(Objects.equals(lastYearMonth,202005));
|
Assert.assertTrue(Objects.equals(lastYearMonth,202005));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDemo(){
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(new Date());
|
||||||
|
Integer computeTableRoute = new Integer(String.format("%d%02d", calendar.get(Calendar.YEAR),
|
||||||
|
calendar.get(Calendar.MONTH) + 1));
|
||||||
|
System.out.println(computeTableRoute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.uvaluation.compute;
|
||||||
|
|
||||||
|
import com.ruoyi.RuoYiApplication;
|
||||||
|
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleClosingCaseService;
|
||||||
|
import com.ruoyi.project.data.cases.service.IOriginalResidenceSaleOpeningCaseService;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest(classes = RuoYiApplication.class)
|
||||||
|
public class ResidenceSaleBasePriceTests {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOriginalResidenceSaleOpeningCaseService originalResidenceOpeningCaseService;
|
||||||
|
@Autowired
|
||||||
|
private IOriginalResidenceSaleClosingCaseService originalResidenceClosingCaseService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClearOpeningCase() {
|
||||||
|
originalResidenceOpeningCaseService.pullData();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClearClosingCase() {
|
||||||
|
originalResidenceClosingCaseService.pullData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user