Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei
| | |
| | | NODE_ENV = 'production' |
| | | |
| | | # VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface' |
| | | |
| | | VUE_APP_API_URL = 'http://192.168.0.162:10010/' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywContractBill/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywContractBill/create', data) |
| | | } |
| | |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">仿¬¾è´¦å</div> |
| | | </div> |
| | | <div class="btns"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | <el-button type="primary" @click="$refs.EditRef.open('åå»ºæ¶æ¬¾è´¦å')" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | <el-button @click="handleEx" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | <el-button @click="handleDetail" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | |
| | | <el-table-column prop="remark" label="ç»æ¸
ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="è´¦åéé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="åºæ¶éé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="ååç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="宿¶éé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="éæ¶éé¢" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="è´¹ç¨ç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="æ¯å¦é¾æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="è®¡è´¹å¨æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="åºæ¶æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="è´¦åæ¥æº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="statusName" label="ååç¶æ" min-width="100" fixed="right" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" v-permissions="['business:category:update']">æ¥ç详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | <Detail ref="DetailRef" @success="getList" @close="showEdit = false" /> |
| | | <Edit ref="EditRef" @success="getList" /> |
| | | <Detail ref="DetailRef" @success="getList" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/bullEdit.vue' |
| | | import Detail from './components/bullDetail.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | import { fetchList } from '@/api/bill' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | getList (page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { |
| | | ...filters, |
| | | ...filters |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | page: page || pagination.page |
| | | }).then(res => { |
| | | console.log(res) |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | item.statusName = item.status === 1 ? 'æå' : item.status === 2 ? 'æ¥åº' : 'æ£å¸¸' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | |
| | | }, |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDetail() { |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | handleDetail(row) { |
| | | this.$refs.DetailRef.open() |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | |
| | | <div class="home_title"> |
| | | <div class="left"> |
| | | <span class="mr10">仿¬¾æ¹ï¼xxx</span> |
| | | <span class="status">status</span> |
| | | <el-tag type="success">status</el-tag> |
| | | </div> |
| | | <el-button plain type="primary">æ°å»ºæ¶æ¯æµæ°´</el-button> |
| | | <el-button plain type="primary" @click="$refs.flowingWater.open('åå»ºæ¶æ¯æµæ°´')">æ°å»ºæ¶æ¯æµæ°´</el-button> |
| | | </div> |
| | | <div class="remark"> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç¶æ</div> |
| | | <div class="val">å·²ç»æ¸
</div> |
| | | <div class="line"></div> |
| | | <div class="main"> |
| | | <div class="list" style="background: rgba(0,0,0,0); padding: 0; margin-bottom: 0;"> |
| | | <div class="item" style="flex: 1;"> |
| | | <div class="la">ç»æ¸
ç¶æ</div> |
| | | <div class="val" style="margin-top: 10px;">å·²ç»æ¸
</div> |
| | | </div> |
| | | <div class="item" style="flex: 1;"> |
| | | <div class="la">åºæ¶éé¢ï¼å
ï¼</div> |
| | | <div class="val" style="margin-top: 10px;">1,000.00</div> |
| | | </div> |
| | | <div class="item" style="flex: 1;"> |
| | | <div class="la">宿¶éé¢ï¼å
ï¼</div> |
| | | <div class="val" style="margin-top: 10px;">1,000.00</div> |
| | | </div> |
| | | <div class="item" style="flex: 1;"> |
| | | <div class="la">éä»éé¢ï¼å
ï¼</div> |
| | | <div class="val" style="margin-top: 10px;">1,000.00</div> |
| | | </div> |
| | | <div class="item" style="flex: 1;"> |
| | | <div class="la">åºæ¶æ¥æ</div> |
| | | <div class="val" style="margin-top: 10px;">2024-11-16</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">ååä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">å
³èè´¦å</div> |
| | | <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">æä½è®°å½</div> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">åºç¡ä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">è´¦åæç»</div> |
| | | <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">æ¶æ¯æµæ°´</div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="title">åºç¡ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="list" style="background: rgba(0,0,0,0); padding: 0;"> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç±»å</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">ç§é</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è®¡è´¹å¨æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">2024-11-17 ~ 2025-11-17</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦åéé¢(å
)</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">10000.00</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦åç¼å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">ZD20241117-0002</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ååç¼å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">202411-0017</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å建æ¶é´</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">2024-11-16 15:17:01</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">仿¬¾æ¹</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">XXå
¬å¸</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">å¼ ä¸</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">æå±å
¬å¸</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">XXXæéå
¬å¸</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è´¦å夿³¨</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | <div class="val">è¿æ¯å¤æ³¨å
容</div> |
| | | </div> |
| | | <div class="item"></div> |
| | | <div class="item"></div> |
| | | </div> |
| | | <div class="title">æ¿æºä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">项ç®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å±/æ¿å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">é¢ç§¯</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="list" style="background: rgba(0,0,0,0); padding: 0;"> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="date" |
| | | label="项ç®åç§°"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="楼å®åç§°"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="楼å±/æ¿å·"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="é¢ç§¯"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="title">ç§å®¢ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">ç§å®¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="title">è´¦åæç»</div> |
| | | <div class="list" style="background: rgba(0,0,0,0); padding: 0;"> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="date" |
| | | label="è´¹ç¨ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="åºæ¶/ä»éé¢"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="宿¶éé¢"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="éæ¶éé¢"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="è®¡è´¹å¨æ"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="åºæ¶/仿¥æ"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="夿³¨"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="title">ç§èµæ¡æ¬¾</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">æ¼ééé¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">仿¬¾æ¹å¼</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å
ç§æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="title">æ¶æ¯æµæ°´</div> |
| | | <div class="list" style="background: rgba(0,0,0,0); padding: 0;"> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="date" |
| | | label="æµæ°´ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="对æ¹åä½åç§°"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="è´¹ç¨ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="å
¥è´¦æ¥æ"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="åçé¢"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="å建æ¶é´"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="夿³¨"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <el-table :data="info.list" stripe> |
| | | <el-table-column prop="" label="å¼å§æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç»ææ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åååä»·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="仿¬¾æå天æ°" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | </div> |
| | | <!-- åå»ºæµæ°´ --> |
| | | <FlowingWater ref="flowingWater" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import FlowingWater from './flowingWater' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | GlobalWindow, |
| | | FlowingWater |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: true, |
| | | visible: false, |
| | | activeTabs: '', |
| | | info: {} |
| | | info: {}, |
| | | tableData: [] |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | } |
| | | } |
| | | |
| | | .line { |
| | | width: 100%; |
| | | margin: 15px 0; |
| | | border-bottom: 1px dashed #eaeaea; |
| | | } |
| | | |
| | | .main { |
| | | .title { |
| | | font-weight: 500; |
| | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | background: #F7F7F7; |
| | | /*background: #F7F7F7;*/ |
| | | border-radius: 2px; |
| | | padding: 15px 20px; |
| | | padding: 0 20px; |
| | | margin-bottom: 20px; |
| | | |
| | | .item { |
| | | width: 25%; |
| | | margin-bottom: 16px; |
| | | flex: 25%; |
| | | margin-bottom: 20px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | margin-bottom: 5px; |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <GlobalWindow width="1100px" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close" |
| | | <GlobalWindow width="100%" :title="title" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <template v-if="activeTabs == 0"> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="param" label-position="top" ref="paramRef" :rules="rules"> |
| | | <div class="head"> |
| | | <div class="m_title">åºç¡ä¿¡æ¯</div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: timeTab == 0 }" @click="timeTabClick('0')">å¨æè´¹ç¨</div> |
| | | <div class="tab" :class="{ active: timeTab == 1 }" @click="timeTabClick('1')">䏿¬¡æ§è´¹ç¨</div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="param" label-position="top" ref="form" :rules="rules"> |
| | | <div class="head"> |
| | | <div class="m_title">åºç¡ä¿¡æ¯</div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: form.feeType === 0 }" @click="timeTabClick(0)">å¨æè´¹ç¨</div> |
| | | <div class="tab" :class="{ active: form.feeType === 1 }" @click="timeTabClick(1)">䏿¬¡æ§è´¹ç¨</div> |
| | | </div> |
| | | <div class="list"> |
| | | <el-form-item label="å
³èåå" prop="type"> |
| | | <el-select v-model="param.type" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æ¹" prop="code"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥ååç¼å·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="è´¹ç¨ç±»å" prop="aaa"> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡è´¹å¨æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶éé¢" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in comparyList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item style="width: 100%;" label="è´¦å夿³¨" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="main_house"> |
| | | <div class="title">è¯·éæ©æ¿æº</div> |
| | | <el-cascader style="width: 300px" v-model="value" @change="houseChange" :options="options" |
| | | :props="{ multiple: true }" collapse-tags clearable /> |
| | | </div> |
| | | </div> |
| | | <div class="list"> |
| | | <el-form-item label="å
³èåå" prop="contractId"> |
| | | <el-select v-model="form.contractId" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="(item, index) in contract" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æ¹" prop="customerName"> |
| | | <el-select v-model="form.customerName" filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in payerList" |
| | | :key="index" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è´¹ç¨ç±»å" prop="costType"> |
| | | <el-select v-model="form.costType" placeholder="è¯·éæ©"> |
| | | <el-option :value="0" label="ç§èµè´¹"></el-option> |
| | | <el-option :value="1" label="ç©ä¸è´¹"></el-option> |
| | | <el-option :value="2" label="ç§èµæ¼é"></el-option> |
| | | <el-option :value="3" label="ç©ä¸è¯é"></el-option> |
| | | <el-option :value="4" label="æ°´çµè´¹"></el-option> |
| | | <el-option :value="5" label="æé¡¹è´¹"></el-option> |
| | | <el-option :value="6" label="å
¶ä»"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡è´¹å¨æ" prop="startDate" v-if="form.feeType !== 1"> |
| | | <el-date-picker |
| | | type="daterange" |
| | | range-separator="è³" |
| | | v-model="date" |
| | | @change="changeDate" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶éé¢" prop="receivableFee"> |
| | | <el-input v-model="form.receivableFee" placeholder="请è¾å
¥åºæ¶éé¢" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶æ¥æ" prop="planPayDate"> |
| | | <el-date-picker type="date" v-model="form.planPayDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop="companyId"> |
| | | <el-select v-model="form.companyId" placeholder="è¯·éæ©" clearable> |
| | | <el-option |
| | | v-for="(item, index) in comparyList" |
| | | :key="index" |
| | | :value="item.id" |
| | | :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item style="width: 100%;" label="è´¦å夿³¨" prop="remark"> |
| | | <el-input type="textarea" :rows="5" v-model="param.remark" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="file_wrap"> |
| | | <div class="head"> |
| | | <div>è´¦åéä»¶</div> |
| | | <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl" |
| | | :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError"> |
| | | <el-button icon="el-icon-plus" plain>æ·»å éä»¶</el-button> |
| | | </el-upload> |
| | | </div> |
| | | <el-table :data="param.list" stripe> |
| | | <el-table-column prop="" label="éä»¶åç§°" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½äºº" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½æ¶é´" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½" align="center" min-width="100"> |
| | | <template v-slot="scope"> |
| | | <span class="cu red">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="main_house"> |
| | | <div class="title">è¯·éæ©æ¿æº</div> |
| | | <el-tree |
| | | :data="houseList" |
| | | show-checkbox |
| | | node-key="id" |
| | | :default-expanded-keys="[2, 3]" |
| | | :default-checked-keys="[5]" |
| | | :props="defaultProps"> |
| | | </el-tree> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | <div class="file_wrap"> |
| | | <div class="head"> |
| | | <div>è´¦åéä»¶</div> |
| | | <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl" |
| | | :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError"> |
| | | <el-button icon="el-icon-plus" plain>æ·»å éä»¶</el-button> |
| | | </el-upload> |
| | | </div> |
| | | <el-table :data="param.list" stripe> |
| | | <el-table-column prop="" label="éä»¶åç§°" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½äºº" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½æ¶é´" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½" align="center" min-width="100"> |
| | | <template v-slot="{ scope }"> |
| | | <span class="cu red">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- --> |
| | | <MemberSearch ref="MemberSearchRef" /> |
| | | </GlobalWindow> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import MemberSearch from '@/components/common/MemberSearch' |
| | | import { rules } from './config' |
| | | import { create } from '@/api/bill' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { |
| | |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | title: '', |
| | | activeTabs: '0', |
| | | form: { |
| | | contractId: '', |
| | | customerName: '', |
| | | costType: '', |
| | | type: '', |
| | | companyId: '', |
| | | remark: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | receivableFee: '', |
| | | feeType: 0, |
| | | planPayDate: '' |
| | | }, |
| | | date: [], |
| | | |
| | | param: {}, |
| | | rules, |
| | | timeTab: '0', |
| | |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | }, |
| | | |
| | | types: [ |
| | | { name: 'ç©ä¸+ç§èµåå', value: 0 }, |
| | | { name: 'ç§èµåå', value: 1 }, |
| | | { name: 'ç©ä¸åå', value: 2 }, |
| | | ], |
| | | agentList: [], //ç»å人 |
| | | contract: [], |
| | | payerList: [], |
| | | |
| | | projectList: [], |
| | | comparyList: [], // å
¬å¸ |
| | | renterList: [], // ç§å®¢ |
| | |
| | | { name: 'å
/m²·年', value: 5 }, |
| | | { name: 'å
/åº', value: 6 }, |
| | | ], |
| | | houseList: [{ |
| | | id: 1, |
| | | label: 'ä¸çº§ 1', |
| | | children: [{ |
| | | id: 4, |
| | | label: 'äºçº§ 1-1', |
| | | children: [{ |
| | | id: 9, |
| | | label: 'ä¸çº§ 1-1-1' |
| | | }, { |
| | | id: 10, |
| | | label: 'ä¸çº§ 1-1-2' |
| | | }] |
| | | }] |
| | | }, { |
| | | id: 2, |
| | | label: 'ä¸çº§ 2', |
| | | children: [{ |
| | | id: 5, |
| | | label: 'äºçº§ 2-1' |
| | | }, { |
| | | id: 6, |
| | | label: 'äºçº§ 2-2' |
| | | }] |
| | | }, { |
| | | id: 3, |
| | | label: 'ä¸çº§ 3', |
| | | children: [{ |
| | | id: 7, |
| | | label: 'äºçº§ 3-1' |
| | | }, { |
| | | id: 8, |
| | | label: 'äºçº§ 3-2' |
| | | }] |
| | | }], |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const { param } = this |
| | | this.title = param.id ? 'ç¼è¾æ¶æ¬¾è´¦å' : 'åå»ºæ¶æ¬¾è´¦å' |
| | | }, |
| | | methods: { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | timeTabClick(val) { |
| | | this.timeTab = val |
| | | this.form.feeType = val |
| | | if (val === 1) { |
| | | this.form.startDate = '' |
| | | this.form.endDate = '' |
| | | } |
| | | }, |
| | | getDetail() { |
| | | |
| | | changeDate(e) { |
| | | if (!e || e.length === 0) { |
| | | this.form.startDate = '' |
| | | this.form.endDate = '' |
| | | } else { |
| | | this.form.startDate = e[0] |
| | | this.form.endDate = e[1] |
| | | } |
| | | }, |
| | | handleRent() { |
| | | this.$refs.MemberSearchRef.openModal() |
| | | }, |
| | | houseChange(e) { |
| | | console.log(e) |
| | | console.log(this.value) |
| | | |
| | | }, |
| | | beforeUpload(file) { |
| | | // if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | // this.$message.error('请ä¸ä¼ æ£ç¡®çè§é¢/å¾çæ ¼å¼') |
| | | // return false |
| | | // } |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow width="100%" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="param" label-position="top" ref="paramRef" :rules="rules"> |
| | | <div class="head"> |
| | | <div class="m_title">æµæ°´ä¿¡æ¯</div> |
| | | </div> |
| | | <div class="list"> |
| | | <el-form-item label="å
³èåå" prop="type"> |
| | | <el-select v-model="param.type" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è´¹ç¨ç±»å" prop="code"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥ååç¼å·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="è´¹å卿" prop="aaa"> |
| | | <el-select v-model="param.code" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åºæ¶éé¢" prop=""> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥å®æ¶éé¢" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="宿¶éé¢" prop=""> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥å®æ¶éé¢" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="å
¥è´¦æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶æ¬¾æ¹å¼" prop=""> |
| | | <el-select v-model="param.content" placeholder="è¯·éæ©"> |
| | | <el-option label="ç°é" :value="1"></el-option> |
| | | <el-option label="ç½é¶è½¬è´¦" :value="2"></el-option> |
| | | <el-option label="POSæº" :value="3"></el-option> |
| | | <el-option label="æ¯ä»å®" :value="4"></el-option> |
| | | <el-option label="微信" :value="5"></el-option> |
| | | <el-option label="转账æ¯ç¥¨" :value="6"></el-option> |
| | | <el-option label="å
¶å®æ¹å¼" :value="7"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop=""> |
| | | <el-select v-model="param.code" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶æ¯è´¦æ·" prop=""> |
| | | <el-select v-model="param.code" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="" style="width: 100%;"> |
| | | <el-input type="textarea" :rows="6" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="file_wrap"> |
| | | <div class="head"> |
| | | <div>è´¦åéä»¶</div> |
| | | <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl" |
| | | :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError"> |
| | | <el-button icon="el-icon-plus" plain>æ·»å éä»¶</el-button> |
| | | </el-upload> |
| | | </div> |
| | | <el-table :data="param.list" stripe> |
| | | <el-table-column prop="" label="éä»¶åç§°" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½äºº" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½æ¶é´" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½" align="center" min-width="100"> |
| | | <template v-slot="scope"> |
| | | <span class="cu red">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { rules } from './config' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | name: "flowingWater", |
| | | components: { |
| | | GlobalWindow |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | title: '', |
| | | activeTabs: '0', |
| | | param: {}, |
| | | rules, |
| | | timeTab: '0', |
| | | |
| | | loadingInstance: null, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | }, |
| | | |
| | | types: [ |
| | | { name: 'ç©ä¸+ç§èµåå', value: 0 }, |
| | | { name: 'ç§èµåå', value: 1 }, |
| | | { name: 'ç©ä¸åå', value: 2 }, |
| | | ], |
| | | agentList: [], //ç»å人 |
| | | projectList: [], |
| | | comparyList: [], // å
¬å¸ |
| | | renterList: [], // ç§å®¢ |
| | | contacts: [], // è系人 |
| | | value: [], |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: 'ä¸å', |
| | | children: [{ |
| | | value: 2, |
| | | label: '䏿µ·', |
| | | children: [ |
| | | { value: 3, label: 'æ®é' }, |
| | | { value: 4, label: 'é»å' }, |
| | | { value: 5, label: '徿±' } |
| | | ] |
| | | }, { |
| | | value: 7, |
| | | label: 'æ±è', |
| | | children: [ |
| | | { value: 8, label: 'å京' }, |
| | | { value: 9, label: 'èå·' }, |
| | | { value: 10, label: 'æ é¡' } |
| | | ] |
| | | }, { |
| | | value: 12, |
| | | label: 'æµæ±', |
| | | children: [ |
| | | { value: 13, label: 'æå·' }, |
| | | { value: 14, label: '宿³¢' }, |
| | | { value: 15, label: 'åå
´' } |
| | | ] |
| | | }] |
| | | }, |
| | | { |
| | | value: 17, |
| | | label: '西å', |
| | | children: [{ |
| | | value: 18, |
| | | label: 'é西', |
| | | children: [ |
| | | { value: 19, label: '西å®' }, |
| | | { value: 20, label: 'å»¶å®' } |
| | | ] |
| | | }, { |
| | | value: 21, |
| | | label: 'æ°çç»´å¾å°æèªæ²»åº', |
| | | children: [ |
| | | { value: 22, label: 'ä¹é²æ¨é½' }, |
| | | { value: 23, label: 'å
æçä¾' } |
| | | ] |
| | | }] |
| | | } |
| | | ], |
| | | cactiveTabs: 0, |
| | | paramCost: {}, |
| | | payMethods: [ |
| | | { name: '䏿¬¡æ§ä»æ¬¾', value: 0 }, |
| | | { name: '3个æä¸ä»', value: 1 }, |
| | | { name: '6个æä¸ä»', value: 2 }, |
| | | { name: '1å¹´ä¸ä»', value: 2 }, |
| | | ], |
| | | unitOps: [ |
| | | { name: 'å
/m²·天', value: 0 }, |
| | | { name: 'å
/m²·æ', value: 1 }, |
| | | { name: 'å
/天', value: 2 }, |
| | | { name: 'å
/æ', value: 3 }, |
| | | { name: 'å
/å¹´', value: 4 }, |
| | | { name: 'å
/m²·年', value: 5 }, |
| | | { name: 'å
/åº', value: 6 }, |
| | | ], |
| | | } |
| | | }, |
| | | created() { |
| | | const { param } = this |
| | | this.title = param.id ? 'ç¼è¾æ¶æ¬¾è´¦å' : 'åå»ºæ¶æ¬¾è´¦å' |
| | | }, |
| | | methods: { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | timeTabClick(val) { |
| | | this.timeTab = val |
| | | }, |
| | | getDetail() { |
| | | |
| | | }, |
| | | handleRent() { |
| | | this.$refs.MemberSearchRef.openModal() |
| | | }, |
| | | houseChange(e) { |
| | | console.log(e) |
| | | console.log(this.value) |
| | | |
| | | }, |
| | | beforeUpload(file) { |
| | | // if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | // this.$message.error('请ä¸ä¼ æ£ç¡®çè§é¢/å¾çæ ¼å¼') |
| | | // return false |
| | | // } |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | console.log('file', file) |
| | | const item = file.data[0] |
| | | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { |
| | | this.fileList.push({ |
| | | type: 1, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } else { |
| | | this.fileList.push({ |
| | | type: 0, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } |
| | | console.log('file', this.fileList) |
| | | // this.$set(this.param, 'faceImg', file.imgurl) |
| | | // this.$set(this.param, 'faceImgUrl', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | }, |
| | | open(title, target) { |
| | | this.title = title |
| | | this.isShowModal = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | |
| | | .cost_tabs { |
| | | justify-content: flex-start; |
| | | border: none; |
| | | |
| | | .tab { |
| | | height: 36px; |
| | | line-height: 36px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | |
| | | .main_content { |
| | | flex: 1; |
| | | margin-right: 20px; |
| | | |
| | | .head { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .tabs { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | .tab { |
| | | height: 14px; |
| | | line-height: 14px; |
| | | cursor: pointer; |
| | | border: 1px solid #ebebeb; |
| | | padding: 12px 24px; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border: 1px solid $primary-color; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .el-form-item { |
| | | width: 33.33%; |
| | | box-sizing: border-box; |
| | | padding: 0 12px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_house { |
| | | width: 320px; |
| | | padding: 24px 12px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | | |
| | | .title { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | margin-bottom: 30px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .total { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 32px; |
| | | background-color: #e7e9f5; |
| | | |
| | | span { |
| | | width: 160px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | |
| | | .file_wrap { |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | } |
| | | |
| | | .m_title { |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | margin-bottom: 15px; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |
| | |
| | | public static final String ERP ="ERP" ; |
| | | public static final Integer THREE =3 ; |
| | | public static final Integer FOUR =4 ; |
| | | public static final Integer SEVEN =7 ; |
| | | public static final Integer FIVE =5 ; |
| | | public static final String ORG_USER_ORIGIN = "ORG_USER_ORIGIN"; |
| | | public static final String VIRTUAL_CARD_INDEX = "02098469790"; |
| | |
| | | FN_DEVICE_RECORD_FILE(6, "é宿å¡å¹³å°è¿ç»´è®°å½å¾ç ", "é宿å¡å¹³å°è¿ç»´è®°å½å¾ç "), |
| | | FN_PATROL_POINT_FILE(7, "å·¡æ£ç¹éä»¶ ", "å·¡æ£ç¹éä»¶ "), |
| | | FN_CONTRACT_BILL_FILE(8, "ååè´¦åéä»¶ ", "ååè´¦åéä»¶ "), |
| | | YW_CONTRACT_FILE(9, "ååéä»¶ ", "ååéä»¶ ") |
| | | YW_CONTRACT_FILE(9, "ååéä»¶ ", "ååéä»¶ "), |
| | | FN_CONTRACT_REVENUE_FILE(10, "æ¶æ¯æµæ°´éä»¶ ", "ååè´¦åéä»¶ "), |
| | | |
| | | ; |
| | | // æååé |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.cloud.admin; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.dto.AreasDto; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.service.business.AreasService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/02/15 08:55 |
| | | */ |
| | | @Api(tags = "çå¸åºä¿¡æ¯è¡¨") |
| | | @RestController |
| | | @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/areas") |
| | | public class AreasCloudController extends BaseController { |
| | | |
| | | @Autowired |
| | | private AreasService areasService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:areas:create") |
| | | public ApiResponse create(@RequestBody Areas areas,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | areas.setLoginUserInfo(getLoginUser(token)); |
| | | return ApiResponse.success(areasService.create(areas)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:areas:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | areasService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:areas:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | areasService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:areas:update") |
| | | public ApiResponse updateById(@RequestBody Areas areas,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | areas.setLoginUserInfo(getLoginUser(token)); |
| | | areasService.updateById(areas); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | // @RequiresPermissions("business:areas:query") |
| | | public ApiResponse<PageData<Areas>> findPage (@RequestBody PageWrap<Areas> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(areasService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("å
¨é¨æ å½¢æ¥è¯¢") |
| | | @PostMapping("/treeList") |
| | | // @RequiresPermissions("business:areas:query") |
| | | public ApiResponse<List<Areas>> treeList (@RequestBody AreasDto pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | Areas a = new Areas(); |
| | | BeanUtils.copyProperties(pageWrap,a); |
| | | return ApiResponse.success(areasService.findList(a)); |
| | | } |
| | | @ApiOperation("æ ¹æ®ç¶èç¹æ¥ä¸") |
| | | @PostMapping("/listByParentId") |
| | | // @RequiresPermissions("business:areas:query") |
| | | public ApiResponse<List<Areas>> listByParentId (@RequestBody AreasDto pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | Areas a = new Areas(); |
| | | BeanUtils.copyProperties(pageWrap,a); |
| | | // PageWrap<Areas> wrap = new PageWrap<>(); |
| | | // wrap.setPage(Constants.ONE); |
| | | // wrap.setCapacity(9999); |
| | | // wrap.setModel(a); |
| | | return ApiResponse.success(areasService.listByParentId(a)); |
| | | } |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:areas:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<Areas> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ExcelExporter.build(Areas.class).export(areasService.findPage(pageWrap).getRecords(), "çå¸åºä¿¡æ¯è¡¨", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @RequiresPermissions("business:areas:query") |
| | | public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(areasService.findById(id)); |
| | | } |
| | | } |
| | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ywContractRevenueService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:update") |
| | | public ApiResponse updateById(@RequestBody YwContractRevenue ywContractRevenue) { |
| | | public ApiResponse updateById(@RequestBody YwContractRevenue ywContractRevenue,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ywContractRevenueService.updateById(ywContractRevenue); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å
³éæµæ°´") |
| | | @GetMapping("/close") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:update") |
| | | public ApiResponse close(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ywContractRevenueService.closeRevenue(id,getLoginUser(token)); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:query") |
| | | public ApiResponse<PageData<YwContractRevenue>> findPage (@RequestBody PageWrap<YwContractRevenue> pageWrap) { |
| | | public ApiResponse<PageData<YwContractRevenue>> findPage (@RequestBody PageWrap<YwContractRevenue> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(ywContractRevenueService.findPage(pageWrap)); |
| | | } |
| | | |
| | | |
| | | @ApiOperation("æ¶æ¯å表") |
| | | @PostMapping("/list") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:query") |
| | | public ApiResponse<List<YwContractRevenue>> list (@RequestBody YwContractRevenue ywContractRevenue,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(ywContractRevenueService.findList(ywContractRevenue)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<YwContractRevenue> pageWrap, HttpServletResponse response) { |
| | | public void exportExcel (@RequestBody PageWrap<YwContractRevenue> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | ExcelExporter.build(YwContractRevenue.class).export(ywContractRevenueService.findPage(pageWrap).getRecords(), "è¿ç»´ååæ¶æ¯æµæ°´", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @CloudRequiredPermission("business:ywcontractrevenue:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(ywContractRevenueService.findById(id)); |
| | | public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | return ApiResponse.success(ywContractRevenueService.getDetail(id)); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.Areas; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/02/15 08:55 |
| | | */ |
| | | public interface AreasMapper extends BaseMapper<Areas> { |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * @author Eva.Caesar Liu |
| | | * @date 2023/02/14 11:14 |
| | | */ |
| | | @Data |
| | | @ApiModel("çå¸åºæ¥è¯¢åæ°") |
| | | public class AreasDto implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "åç§°" ) |
| | | private String name; |
| | | @ApiModelProperty(value = "ç±»å 0ç 1å¸ 2åºå¿", example = "1") |
| | | private Integer type; |
| | | @ApiModelProperty(value = "ç¶èç¹ç¼ç ", example = "1") |
| | | private Integer parentId; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.model.LoginUserModel; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * çå¸åºä¿¡æ¯è¡¨ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/02/15 08:55 |
| | | */ |
| | | @Data |
| | | @ApiModel("çå¸åºä¿¡æ¯è¡¨") |
| | | @TableName("`areas`") |
| | | public class Areas extends LoginUserModel implements Cloneable{ |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | @TableId(value = "id",type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "åç§°") |
| | | @ExcelColumn(name="åç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String info; |
| | | |
| | | @ApiModelProperty(value = "è¡æ¿åºä»£ç ") |
| | | @ExcelColumn(name="è¡æ¿åºä»£ç ") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "ç¶çº§ç¼ç ï¼å
³èareas表ï¼", example = "1") |
| | | @ExcelColumn(name="ç¶çº§ç¼ç ï¼å
³èareas表ï¼") |
| | | private Integer parentId; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0ç 1å¸ 2åºå¿", example = "1") |
| | | @ExcelColumn(name="ç±»å 0ç 1å¸ 2åºå¿") |
| | | private Integer type; |
| | | @ApiModelProperty(value = "æåºç ", example = "1") |
| | | @ExcelColumn(name="æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @TableField(exist = false) |
| | | private List<Areas> childList; |
| | | @TableField(exist = false) |
| | | private Integer provinceId; |
| | | @TableField(exist = false) |
| | | private String provinceName; |
| | | @TableField(exist = false) |
| | | private Integer cityId; |
| | | @TableField(exist = false) |
| | | private String cityName; |
| | | //å®ç°Cloneableçcloneæ¹æ³ï¼å°cloneå®ä¹ä¸ºpublic |
| | | public Areas clone() { |
| | | try { |
| | | return (Areas) super.clone(); |
| | | } catch (CloneNotSupportedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public String toString() { |
| | | return "Areas{" + |
| | | "id=" + id + |
| | | ", creator=" + creator + |
| | | ", createDate=" + createDate + |
| | | ", editor=" + editor + |
| | | ", editDate=" + editDate + |
| | | ", isdeleted=" + isdeleted + |
| | | ", name='" + name + '\'' + |
| | | ", info='" + info + '\'' + |
| | | ", code='" + code + '\'' + |
| | | ", parentId=" + parentId + |
| | | ", type=" + type + |
| | | '}'; |
| | | } |
| | | } |
| | |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | @ApiModelProperty(value = "ååæè¦") |
| | | @ExcelColumn(name="ååæè¦") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ§è¡ 1æ§è¡ä¸ 2已尿 3å·²éç§", example = "1") |
| | |
| | | @ApiModelProperty(value = "éç§åå ") |
| | | @ExcelColumn(name="éç§åå ") |
| | | private String btInfo; |
| | | |
| | | @ApiModelProperty(value = "éç§æè¦") |
| | | @ExcelColumn(name="éç§æè¦") |
| | | private String btRemark; |
| | | |
| | | @ApiModelProperty(value = "éç§æ¥æ") |
| | | @ExcelColumn(name="éç§æ¥æ") |
| | |
| | | @ApiModelProperty(value = "æ¥è¯¢ç»ææ¶é´") |
| | | @TableField(exist = false) |
| | | private Date queryEndTime; |
| | | @ApiModelProperty(value = "鿬¾å
³éè´¦åæ°") |
| | | @TableField(exist = false) |
| | | private int btCLoseBill; |
| | | @ApiModelProperty(value = "鿬¾æªç»æ¸
è´¦åæ°") |
| | | @TableField(exist = false) |
| | | private int btWaitBill; |
| | | |
| | | @ApiModelProperty(value = "éç§æ¶æ°å¢çæ¶ä»æ¬¾è´¦å") |
| | | @TableField(exist = false) |
| | | private List<YwContractBill> addBillList; |
| | | @ApiModelProperty(value = "å½åæ¯æéæ¬¾ä¿®æ¹éé¢çè´¦åéå") |
| | | @TableField(exist = false) |
| | | private List<YwContractBill> canBackRentBills; |
| | | } |
| | |
| | | @ExcelColumn(name="åºæ¶éé¢",index = 5,width = 6) |
| | | private BigDecimal receivableFee; |
| | | |
| | | @ApiModelProperty(value = "è´¹ç¨ç±»åï¼0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸è¯éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä» ", example = "1") |
| | | @ExcelColumn(name="è´¹ç¨ç±»å",index = 8,width = 6,valueMapping = "0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸è¯éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä»;") |
| | | @ApiModelProperty(value = "è´¹ç¨ç±»åï¼0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸æ¼éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä»; 7=ä¿è¯é", example = "1") |
| | | @ExcelColumn(name="è´¹ç¨ç±»å",index = 8,width = 6,valueMapping = "0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸æ¼é;4=æ°´çµè´¹;5=æé¡¹è´¹ï¼6=å
¶ä»;7=ä¿è¯é;") |
| | | private Integer costType; |
| | | |
| | | @ApiModelProperty(value = "è´¦åç±»åï¼0=æ¶æ¬¾ï¼1=仿¬¾", example = "1") |
| | |
| | | @ApiModelProperty(value = "仿¬¾ç¶æï¼0=å¾
æ¶æ¬¾ï¼1=å·²ç»æ¸
ï¼2=é¨åç»æ¸
ï¼3=å¾
仿¬¾ï¼4=å¾
鿬¾ï¼5=å·²å
³é") |
| | | @ExcelColumn(name="ç»æ¸
ç¶æ",index = 3,width = 6,valueMapping = "0=å¾
æ¶æ¬¾;1=å·²ç»æ¸
;2=é¨åç»æ¸
;3=å¾
仿¬¾;4=å¾
鿬¾;5=å·²å
³é;") |
| | | private Integer payStatus; |
| | | |
| | | @ApiModelProperty(value = "éç§ç±»å 0å°æéç§ 1æ¢æ¿éç§ 2è¿çº¦éç§ 3ååéç§", example = "1") |
| | | @ExcelColumn(name="éç§ç±»å 0å°æéç§ 1æ¢æ¿éç§ 2è¿çº¦éç§ 3ååéç§") |
| | | private Integer btType; |
| | |
| | | @TableField(exist = false) |
| | | private String roomPathName; |
| | | |
| | | @ApiModelProperty(value = "æ¿é´æ°æ®", example = "1") |
| | | @TableField(exist = false) |
| | | private List<YwRoom> ywRoomList ; |
| | | |
| | | |
| | | @ApiModelProperty(value = "计å仿¬¾æ¥ - å¼å§") |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | |
| | | @ApiModelProperty(value = "æ¯å¦é¾æï¼0=å¦ï¼1=æ¯") |
| | | @TableField(exist = false) |
| | | @ExcelColumn(name="æ¯å¦é¾æ",index = 9,width = 6,valueMapping = "0=æªé¾æï¼1=已龿") |
| | | private BigDecimal isOverdue; |
| | | private Integer isOverdue; |
| | | |
| | | @ApiModelProperty(value = "éä»¶ä¿¡æ¯", example = "1") |
| | | @TableField(exist = false) |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.constants.OperaType; |
| | | import com.doumee.core.model.LoginUserModel; |
| | | import com.doumee.dao.business.vo.EditRecordDataVO; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.util.Date; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * è¿ç»´ååæ¶æ¯æµæ°´ |
| | |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @ExcelColumn(name="åå»ºæ¥æ",index = 8,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0=å¼å¯ï¼1=å
³é", example = "1") |
| | | @ExcelColumn(name="ç¶æ 0=å¼å¯ï¼1=å
³é") |
| | | @ExcelColumn(name="ç¶æ",index = 10,width = 10,valueMapping = "0=å¼å¯;1=å
³é") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "宿¶éé¢", example = "1") |
| | | @ExcelColumn(name="宿¶éé¢") |
| | | @ApiModelProperty(value = "åçéé¢", example = "1") |
| | | @ExcelColumn(name="åçéé¢",index = 5,width = 10) |
| | | private BigDecimal actReceivableFee; |
| | | |
| | | @ApiModelProperty(value = "å®é
仿¬¾æ¥") |
| | | @ExcelColumn(name="å®é
仿¬¾æ¥") |
| | | @ExcelColumn(name="å
¥è´¦æ¥æ",index = 7,width = 10,dateFormat = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date actPayDate; |
| | | |
| | | @ApiModelProperty(value = "仿¬¾ç±»åï¼0=ç°éï¼1=ç½é¶è½¬è´¦ï¼2=POSæºï¼3=æ¯ä»å®ï¼4=微信ï¼5=转账æ¯ç¥¨ï¼6=å
¶ä»", example = "1") |
| | | @ExcelColumn(name="仿¬¾ç±»åï¼0=ç°éï¼1=ç½é¶è½¬è´¦ï¼2=POSæºï¼3=æ¯ä»å®ï¼4=微信ï¼5=转账æ¯ç¥¨ï¼6=å
¶ä»") |
| | | @ExcelColumn(name="æ¶æ¬¾æ¹å¼",index = 6,width = 10,valueMapping = "0=ç°é;1=ç½é¶è½¬è´¦;2=POSæº;3=æ¯ä»å®;4=微信;5=转账æ¯ç¥¨;6=å
¶ä»;") |
| | | private Integer payType; |
| | | |
| | | @ApiModelProperty(value = "æå±å
¬å¸ï¼å
³è companyï¼", example = "1") |
| | | @ExcelColumn(name="æå±å
¬å¸ï¼å
³è companyï¼") |
| | | private Integer companyId; |
| | | |
| | | @ApiModelProperty(value = "æ¶æ¯è´¦æ·ï¼å
³èyw_account)", example = "1") |
| | | @ExcelColumn(name="æ¶æ¯è´¦æ·ï¼å
³èyw_account)") |
| | | private Integer accountId; |
| | | |
| | | @ApiModelProperty(value = "åå主é®ï¼å
³èyw_contractï¼", example = "1") |
| | | @ExcelColumn(name="åå主é®ï¼å
³èyw_contractï¼") |
| | | private Integer contractId; |
| | | |
| | | @ApiModelProperty(value = "è´¦å主é®ï¼å
³èyw_contract_billï¼", example = "1") |
| | | @ExcelColumn(name="è´¦å主é®ï¼å
³èyw_contract_billï¼") |
| | | private Integer billId; |
| | | |
| | | @ApiModelProperty(value = "æ¶æ¯ç±»åï¼0=æ¶å
¥ï¼1=æ¯åº", example = "1") |
| | | @ExcelColumn(name="æ¶æ¯ç±»åï¼0=æ¶å
¥ï¼1=æ¯åº") |
| | | @ExcelColumn(name="æ¶æ¯ç±»å",index = 4,width = 10,valueMapping = "0=æ¶å
¥;1=æ¯åº") |
| | | private Integer revenueType; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ååç¼å·", example = "1") |
| | | @ExcelColumn(name="ååç¼å·",index = 1,width = 10) |
| | | @TableField(exist = false) |
| | | private String contractCode; |
| | | |
| | | |
| | | @ApiModelProperty(value = "客æ·åç§°") |
| | | @TableField(exist = false) |
| | | private String customerNme; |
| | | |
| | | @ApiModelProperty(value = "客æ·åç§°ï¼ä»æ¬¾æ¹ï¼", example = "1") |
| | | @ExcelColumn(name="客æ·åç§°",index = 0,width = 10) |
| | | @TableField(exist = false) |
| | | private String customerName; |
| | | |
| | | |
| | | @ApiModelProperty(value = "å建人åç§°") |
| | | @ExcelColumn(name="å建人",index = 9,width = 10) |
| | | private String realname; |
| | | |
| | | @ApiModelProperty(value = "å
³èæ¿é´æ°æ®", example = "1") |
| | | @TableField(exist = false) |
| | | private List<YwContractRoom> ywContractRoomList; |
| | | |
| | | |
| | | @ApiModelProperty(value = "éä»¶ä¿¡æ¯", example = "1") |
| | | @TableField(exist = false) |
| | | private List<Multifile> multifileList; |
| | | |
| | | @ApiModelProperty(value = "å
¥è´¦æ¥æ - å¼å§") |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date payDateStart; |
| | | |
| | | @ApiModelProperty(value = "å
¥è´¦æ¥æ - ç»æ") |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date payDateEnd; |
| | | |
| | | @ApiModelProperty(value = "æ¥¼å®æ¿é´", example = "1") |
| | | @ExcelColumn(name="æ¿å·",index = 2,width = 10) |
| | | @TableField(exist = false) |
| | | private String roomPathName; |
| | | |
| | | @ApiModelProperty(value = "è´¦åç¼å·", example = "1") |
| | | @ExcelColumn(name="è´¦åç¼å·",index = 3,width = 16) |
| | | @TableField(exist = false) |
| | | private String billCode; |
| | | |
| | | @ApiModelProperty(value = "æä½è®°å½", example = "1") |
| | | @TableField(exist = false) |
| | | private List<EditRecordDataVO> editRecordDataVOList; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.vo; |
| | | |
| | | import com.doumee.dao.business.model.Approve; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/5/23 14:56 |
| | | */ |
| | | @Data |
| | | public class EditRecordDataVO { |
| | | |
| | | @ApiModelProperty(value = "æä½æ¶é´") |
| | | private Date editTime; |
| | | |
| | | @ApiModelProperty(value = "æä½äºº") |
| | | private String editUserName; |
| | | |
| | | @ApiModelProperty(value = "æä½å¤æ³¨") |
| | | private String editRemark; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Areas; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * çå¸åºä¿¡æ¯è¡¨Serviceå®ä¹ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/02/15 08:55 |
| | | */ |
| | | public interface AreasService { |
| | | |
| | | /** |
| | | * å建 |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | | Integer create(Areas areas); |
| | | |
| | | /** |
| | | * 主é®å é¤ |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | */ |
| | | void delete(Areas areas); |
| | | |
| | | /** |
| | | * æ¹é主é®å é¤ |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | */ |
| | | void updateById(Areas areas); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | | * @param areass å®ä½é |
| | | */ |
| | | void updateByIdInBatch(List<Areas> areass); |
| | | |
| | | /** |
| | | * 䏻鮿¥è¯¢ |
| | | * |
| | | * @param id ä¸»é® |
| | | * @return Areas |
| | | */ |
| | | Areas findById(Integer id); |
| | | |
| | | /** |
| | | * æ ¹æ®idåtypeæ¥è¯¢å¯¹è±¡ä¿¡æ¯ |
| | | * @param id |
| | | * @param type null æ¥è¯¢å
¨é¨ 0ç份 1åå¸ 2åºå |
| | | * @return |
| | | */ |
| | | Areas findById(Integer id,Integer type); |
| | | |
| | | |
| | | Areas findByName(String name,Integer type); |
| | | Areas findByNameAndParentId(String name,Integer type,Integer parentId); |
| | | |
| | | List<Areas> findByParentId(Integer type,Integer parentId); |
| | | |
| | | List<Areas> findChildByParentId(Integer id,List<Areas> list); |
| | | |
| | | boolean isAreaValid(String proName,String cityName,String areaName); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | * @return Areas |
| | | */ |
| | | Areas findOne(Areas areas); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢ |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | * @return List<Areas> |
| | | */ |
| | | List<Areas> findList(Areas areas); |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param pageWrap å页对象 |
| | | * @return PageData<Areas> |
| | | */ |
| | | PageData<Areas> findPage(PageWrap<Areas> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | | * |
| | | * @param areas å®ä½å¯¹è±¡ |
| | | * @return long |
| | | */ |
| | | long count(Areas areas); |
| | | |
| | | void cacheData(); |
| | | |
| | | Areas findByCityAndArea(String cityName, String areasName); |
| | | |
| | | String getAddress(Integer cityId,Integer areaId); |
| | | |
| | | List<Areas> listByParentId(Areas model); |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.YwContractRevenue; |
| | |
| | | */ |
| | | YwContractRevenue findById(Integer id); |
| | | |
| | | YwContractRevenue getDetail(Integer id); |
| | | |
| | | void closeRevenue(Integer id, LoginUserInfo loginUserInfo); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.AreasMapper; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.service.business.AreasService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * çå¸åºä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/02/15 08:55 |
| | | */ |
| | | @Service |
| | | public class AreasServiceImpl implements AreasService { |
| | | public static List<Areas> ALL_AREA_LIST; |
| | | public static List<Areas> PROVINCE_LIST; |
| | | public static List<Areas> CITY_LIST; |
| | | public static List<Areas> AREA_LIST; |
| | | public static List<Areas> ALL_AREA_TREE; |
| | | |
| | | @Autowired |
| | | private AreasMapper areasMapper; |
| | | |
| | | @Override |
| | | public Integer create(Areas areas) { |
| | | LoginUserInfo user = areas.getLoginUserInfo(); |
| | | /* |
| | | |
| | | if (Objects.isNull(areas.getParentId())){ |
| | | areas.setType(Constants.ZERO); |
| | | }else { |
| | | Areas parentArea = areasMapper.selectById(areas.getParentId()); |
| | | if (Objects.isNull(parentArea)){ |
| | | areas.setType(Constants.ZERO); |
| | | }else { |
| | | areas.setType(parentArea.getType()+Constants.ONE); |
| | | } |
| | | }*/ |
| | | areas.setCreateDate(new Date()); |
| | | areas.setEditDate(new Date()); |
| | | areas.setCreator(user.getId()); |
| | | areas.setEditor(user.getId()); |
| | | areas.setIsdeleted(Constants.ZERO); |
| | | areasMapper.insert(areas); |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | return areas.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | areasMapper.deleteById(id); |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(Areas areas) { |
| | | UpdateWrapper<Areas> deleteWrapper = new UpdateWrapper<>(areas); |
| | | areasMapper.delete(deleteWrapper); |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | areasMapper.deleteBatchIds(ids); |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(Areas areas) { |
| | | |
| | | UpdateWrapper<Areas> wrapper = new UpdateWrapper<>(); |
| | | wrapper.lambda().eq(Areas::getId,areas.getId()); |
| | | Areas update = new Areas(); |
| | | update.setName(areas.getName()); |
| | | update.setSortnum(areas.getSortnum()); |
| | | areasMapper.update(update,wrapper); |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<Areas> areass) { |
| | | if (CollectionUtils.isEmpty(areass)) { |
| | | return; |
| | | } |
| | | for (Areas areas: areass) { |
| | | this.updateById(areas); |
| | | } |
| | | //å·æ°ç¼åæ°æ® |
| | | cacheData(); |
| | | } |
| | | |
| | | @Override |
| | | public Areas findById(Integer id) { |
| | | if(ALL_AREA_LIST!=null){ |
| | | for(Areas a : ALL_AREA_LIST){ |
| | | if(Constants.equalsInteger(a.getId(),id)){ |
| | | return a; |
| | | } |
| | | } |
| | | } |
| | | // return areasMapper.selectById(id); |
| | | return null; |
| | | } |
| | | @Override |
| | | public Areas findById(Integer id,Integer type) { |
| | | List<Areas> list = null; |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | if(list!=null){ |
| | | for(Areas a : list){ |
| | | if(Constants.equalsInteger(a.getId(),id)){ |
| | | return a; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Areas findByName(String name,Integer type){ |
| | | List<Areas> list = null; |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | if(list!=null){ |
| | | for(Areas a : list){ |
| | | if(StringUtils.equals(name,a.getName())){ |
| | | return a; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public Areas findByNameAndParentId(String name,Integer type,Integer parentId){ |
| | | List<Areas> list = null; |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | if(list!=null){ |
| | | for(Areas a : list){ |
| | | if(StringUtils.equals(name,a.getName()) && Constants.equalsInteger(parentId,a.getParentId())){ |
| | | return a; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<Areas> findByParentId(Integer type, Integer parentId) { |
| | | |
| | | List<Areas> list = null; |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | if(list!=null){ |
| | | return list.stream().filter(s->Constants.equalsInteger(s.getParentId(),parentId)).collect(Collectors.toList()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<Areas> findChildByParentId(Integer id,List<Areas> list){ |
| | | List<Areas> result =null; |
| | | if(list == null){ |
| | | list = ALL_AREA_LIST; |
| | | } |
| | | if(list!=null && list.size()>0){ |
| | | for(Areas model :list){ |
| | | if(Constants.equalsInteger(id,model.getParentId())){ |
| | | if(result == null){ |
| | | result = new ArrayList<>(); |
| | | } |
| | | result.add(model ); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public boolean isAreaValid(String proName,String cityName,String areaName){ |
| | | Areas pro = findByName(proName,Constants.ZERO); |
| | | if(pro == null){ |
| | | return false; |
| | | } |
| | | Areas city = findByName(proName,Constants.ONE); |
| | | if(city == null && !Constants.equalsInteger(city.getParentId(),pro.getId())){ |
| | | return false; |
| | | } |
| | | Areas area = findByName(proName,Constants.TWO); |
| | | if(area == null && !Constants.equalsInteger(area.getParentId(),city.getId())){ |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | @Override |
| | | public Areas findOne(Areas areas) { |
| | | QueryWrapper<Areas> wrapper = new QueryWrapper<>(areas); |
| | | return areasMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<Areas> findList(Areas areas) { |
| | | List<Areas> list = null; |
| | | Integer type =areas.getType(); |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | List<Areas> result = null; |
| | | if(StringUtils.isNotBlank(areas.getName())){ |
| | | for(Areas a : list){ |
| | | if(StringUtils.contains(a.getName(),areas.getName())){ |
| | | if(result == null){ |
| | | result = new ArrayList<>(); |
| | | } |
| | | result.add(a); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<Areas> listByParentId(Areas areas) { |
| | | List<Areas> list = null; |
| | | Integer type =areas.getType(); |
| | | if(type == null){ |
| | | list = ALL_AREA_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | list = PROVINCE_LIST; |
| | | }else if(Constants.equalsInteger(type,Constants.ONE)){ |
| | | list = CITY_LIST; |
| | | } else if (Constants.equalsInteger(type,Constants.TWO)){ |
| | | list = AREA_LIST; |
| | | } |
| | | List<Areas> result = null; |
| | | if(list!=null){ |
| | | for(Areas a : list){ |
| | | if(result == null){ |
| | | result = new ArrayList<>(); |
| | | } |
| | | if( areas.getParentId() == null |
| | | ||(areas.getParentId() !=null) && Constants.equalsInteger(a.getParentId(),areas.getParentId())){ |
| | | Areas t = new Areas(); |
| | | BeanUtils.copyProperties(a,t); |
| | | t.setChildList(null); |
| | | result.add(t); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | @Override |
| | | public void cacheData() { |
| | | Areas a = new Areas(); |
| | | a.setIsdeleted(Constants.ZERO); |
| | | ALL_AREA_LIST = null; |
| | | PROVINCE_LIST =null; |
| | | CITY_LIST=null; |
| | | AREA_LIST = null; |
| | | ALL_AREA_TREE = null; |
| | | ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByDesc(Areas::getSortnum)); |
| | | if(ALL_AREA_LIST!=null){ |
| | | for(Areas model : ALL_AREA_LIST){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | | if(PROVINCE_LIST == null){ |
| | | PROVINCE_LIST = new ArrayList<>(); |
| | | } |
| | | PROVINCE_LIST.add(model); |
| | | }else if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | if(CITY_LIST == null){ |
| | | CITY_LIST = new ArrayList<>(); |
| | | } |
| | | CITY_LIST.add(model); |
| | | if(model.getParentId() != null){ |
| | | Areas p = findById(model.getParentId()); |
| | | if(p!=null ){ |
| | | model.setProvinceId(p.getId()); |
| | | model.setProvinceName(p.getName()); |
| | | } |
| | | } |
| | | }else if(Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | if(AREA_LIST == null){ |
| | | AREA_LIST = new ArrayList<>(); |
| | | } |
| | | AREA_LIST.add(model); |
| | | Areas city = findById(model.getParentId()); |
| | | if(city!=null ){ |
| | | model.setCityId(city.getId()); |
| | | model.setCityName(city.getName()); |
| | | if(city!=null && city.getParentId()!=null){ |
| | | Areas p = findById(city.getParentId()); |
| | | if(p!=null ){ |
| | | model.setProvinceId(p.getId()); |
| | | model.setProvinceName(p.getName()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(CITY_LIST!=null){ |
| | | for(Areas aa : CITY_LIST){ |
| | | aa.setChildList(findChildByParentId(aa.getId(), AREA_LIST)); |
| | | } |
| | | } |
| | | if(PROVINCE_LIST!=null){ |
| | | for(Areas aa : PROVINCE_LIST){ |
| | | aa.setChildList(findChildByParentId(aa.getId(),CITY_LIST)); |
| | | } |
| | | } |
| | | System.out.println("================="); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<Areas> findPage(PageWrap<Areas> pageWrap) { |
| | | IPage<Areas> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<Areas> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(Areas::getId, pageWrap.getModel().getId()); |
| | | } |
| | | |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(Areas::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(Areas::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(Areas::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(Areas::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(Areas::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(Areas::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(Areas::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(Areas::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getInfo() != null) { |
| | | queryWrapper.lambda().eq(Areas::getInfo, pageWrap.getModel().getInfo()); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.lambda().eq(Areas::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getParentId() != null) { |
| | | queryWrapper.lambda().eq(Areas::getParentId, pageWrap.getModel().getParentId()); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(Areas::getType, pageWrap.getModel().getType()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(areasMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | @Override |
| | | public long count(Areas areas) { |
| | | QueryWrapper<Areas> wrapper = new QueryWrapper<>(areas); |
| | | return areasMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public Areas findByCityAndArea(String cityName, String areasName) { |
| | | Areas city = findByName(cityName,Constants.ONE); |
| | | if(city !=null){ |
| | | return findByNameAndParentId(areasName,Constants.TWO,city.getId()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public String getAddress(Integer cityId,Integer areaId){ |
| | | Areas cityAreas = findById(cityId, Constants.ONE); |
| | | Areas areas = findById(areaId, Constants.TWO); |
| | | |
| | | String cityName = Optional.ofNullable(cityAreas) |
| | | .map(s -> s.getProvinceName() + s.getName()) |
| | | .orElseThrow(() -> new BusinessException(ResponseStatus.BAD_REQUEST)); |
| | | String areaName = Optional.ofNullable(areas).map(s -> s.getName()).orElse(""); |
| | | |
| | | return cityName+areaName; |
| | | } |
| | | } |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.YwContractBillMapper; |
| | | import com.doumee.dao.business.YwContractRevenueMapper; |
| | | import com.doumee.dao.business.YwContractRoomMapper; |
| | | import com.doumee.dao.business.YwRoomMapper; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | | import com.doumee.dao.system.model.Multifile; |
| | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private YwContractMapper ywContractMapper; |
| | | |
| | | |
| | | |
| | | @Override |
| | |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | YwContract ywContract = ywContractMapper.selectById(ywContractBill.getContractId()); |
| | | if(Objects.isNull(ywContract)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ååç¶æå·²æµè½¬,æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | |
| | | LoginUserInfo loginUserInfo = ywContractBill.getLoginUserInfo(); |
| | | ywContractBill.setReceivableFee(ywContractBill.getTotleFee()); |
| | | ywContractBill.setCreateDate(new Date()); |
| | |
| | | if(Objects.isNull(ywContractBill)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | |
| | | //æ¿æºæ°æ® |
| | | ywContractBill.setYwContractRoomList(ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>() |
| | | .selectAll(YwContractRoom.class) |
| | |
| | | .eq(YwContractRoom::getContractId,id) |
| | | .eq(YwContractRoom::getType,Constants.ONE) |
| | | )); |
| | | //æ¶æ¯æç» |
| | | ywContractBill.setYwContractRevenueList( |
| | | ywContractRevenueMapper.selectJoinList(YwContractRevenue.class,new MPJLambdaWrapper<YwContractRevenue>() |
| | | .selectAll(YwContractRevenue.class) |
| | | .selectAs(YwCustomer::getName,YwContractRevenue::getCustomerNme) |
| | | .leftJoin(YwContract.class,YwContract::getId,YwContractRevenue::getContractId) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) |
| | | .eq(YwContractRevenue::getBillId,id) |
| | | ) |
| | | ); |
| | | |
| | | //éä»¶æ°æ® |
| | | List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,id) |
| | |
| | | YwContractBill::getType,model.getType()) |
| | | .eq(Objects.nonNull(model)&&Objects.nonNull(model.getContractId()), |
| | | YwContractBill::getContractId,model.getContractId()) |
| | | .ge(YwContractBill::getPlanPayDate, Utils.Date.getStart(model.getPlanPayDateStart())) |
| | | .le(YwContractBill::getPlanPayDate, Utils.Date.getEnd(model.getPlanPayDateEnd())) ) |
| | | .ge(Objects.nonNull(model)&&Objects.nonNull(model.getPlanPayDateStart()),YwContractBill::getPlanPayDate, Utils.Date.getStart(model.getPlanPayDateStart())) |
| | | .le(Objects.nonNull(model)&&Objects.nonNull(model.getPlanPayDateEnd()),YwContractBill::getPlanPayDate, Utils.Date.getEnd(model.getPlanPayDateEnd())) ) |
| | | ; |
| | | this.dealRoomDetail(iPage.getRecords()); |
| | | for (YwContractBill ywContractBill:iPage.getRecords()) { |
| | |
| | | ywContractBill.setNeedReceivableFee( |
| | | ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee()) |
| | | ); |
| | | //æ¯å¦é¾æ |
| | | if(Constants.equalsInteger(ywContractBill.getStatus(),Constants.ZERO) && (Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.ZERO) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.THREE) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.FOUR)) |
| | | && ywContractBill.getEndDate().getTime() < System.currentTimeMillis()){ |
| | | ywContractBill.setIsOverdue(Constants.ONE); |
| | | }else{ |
| | | ywContractBill.setIsOverdue(Constants.ZERO); |
| | | } |
| | | //楼å®åç§° |
| | | List<YwContractRoom> ywContractRoomList = ywContractBill.getYwContractRoomList(); |
| | | StringBuilder roomPathName = new StringBuilder(); |
| | |
| | | } |
| | | } |
| | | ywContractBill.setRoomPathName(roomPathName.toString()); |
| | | |
| | | } |
| | | |
| | | return PageData.from(iPage); |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.YwAccountMapper; |
| | | import com.doumee.dao.business.YwContractBillMapper; |
| | | import com.doumee.dao.business.YwContractRevenueMapper; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.CompanyMapper; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.business.model.YwAccount; |
| | | import com.doumee.dao.business.model.YwContractBill; |
| | | import com.doumee.dao.business.model.YwContractRevenue; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.vo.EditRecordDataVO; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.YwContractRevenueService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * è¿ç»´ååæ¶æ¯æµæ°´Serviceå®ç° |
| | |
| | | private YwContractBillMapper ywContractBillMapper; |
| | | |
| | | @Autowired |
| | | private YwContractMapper ywContractMapper; |
| | | |
| | | @Autowired |
| | | private CompanyMapper companyMapper; |
| | | |
| | | @Autowired |
| | | private YwAccountMapper ywAccountMapper; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | |
| | | @Autowired |
| | | private YwContractRoomMapper ywContractRoomMapper; |
| | | |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer create(YwContractRevenue ywContractRevenue) { |
| | | if(Objects.isNull(ywContractRevenue) |
| | | || Objects.isNull(ywContractRevenue.getActReceivableFee()) |
| | |
| | | || Objects.isNull(ywContractRevenue.getCompanyId()) |
| | | || Objects.isNull(ywContractRevenue.getAccountId()) |
| | | || Objects.isNull(ywContractRevenue.getBillId()) |
| | | || ywContractRevenue.getActReceivableFee().compareTo(BigDecimal.ZERO) <= Constants.ZERO |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | YwContractBill ywContractBill = ywContractBillMapper.selectById(ywContractRevenue.getBillId()); |
| | | if(Objects.isNull(ywContractBill)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°è´¦åä¿¡æ¯"); |
| | | } |
| | | if(!Constants.equalsInteger(ywContractBill.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è´¦åç¶æå·²æµè½¬,æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(!(Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.ZERO) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.THREE) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.FOUR) |
| | | )){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è´¦åç»æ¸
ç¶æå·²æµè½¬,æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | Company company =companyMapper.selectById(ywContractRevenue.getCompanyId()); |
| | | if(Objects.isNull(company)){ |
| | |
| | | ywContractRevenue.setIsdeleted(Constants.ZERO); |
| | | ywContractRevenue.setStatus(Constants.ZERO); |
| | | ywContractRevenue.setContractId(ywContractBill.getContractId()); |
| | | ywContractRevenue.setRevenueType(ywContractBill.getBillType()); |
| | | ywContractRevenueMapper.insert(ywContractRevenue); |
| | | //æ ¹æ®æ¶æ¯æ
åµ æ´æ°è´¦åæ°æ® |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //æ¥è¯¢å½åè´¦åä¸ å·²æ¯ä»çè´¹ç¨ |
| | | List<YwContractRevenue> ywContractRevenueList = ywContractRevenueMapper.selectList(new QueryWrapper<YwContractRevenue>().lambda().eq(YwContractRevenue::getIsdeleted,Constants.ZERO) |
| | | .eq(YwContractRevenue::getStatus,Constants.ZERO) |
| | | ); |
| | | //å·²æ¯ä»éé¢ |
| | | BigDecimal payTotal = BigDecimal.ZERO; |
| | | //å¾
æ¯ä»éé¢ |
| | | BigDecimal waitPayTotal = BigDecimal.ZERO; |
| | | //æ 仿¬¾è®°å½ åä¸ºåæ¬¡æ¯ä» æ ¹æ®è´¦åç±»å å¤ææ¯æ¯åº / æ¶å
¥ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywContractRevenueList)){ |
| | | ywContractRevenue.setRevenueType(ywContractBill.getType()); |
| | | if(ywContractRevenue.getActReceivableFee().compareTo(ywContractBill.getReceivableFee())>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"请è¾å
¥æ£ç¡®çéé¢ï¼"); |
| | | }else if(ywContractRevenue.getActReceivableFee().compareTo(ywContractBill.getReceivableFee())==Constants.ZERO){ |
| | | ywContractBill.setPayStatus(Constants.ONE); |
| | | }else{ |
| | | ywContractBill.setPayStatus(Constants.TWO); |
| | | } |
| | | }else{ |
| | | //è·åå·²æ¯ä»çæ»éé¢ ï¼å¯è½ææ¶å
¥ ææ¯åºï¼ |
| | | payTotal = ywContractRevenueList.stream().map(i->i.getActReceivableFee().multiply( |
| | | BigDecimal.valueOf(Constants.equalsInteger(ywContractRevenue.getRevenueType(),Constants.ZERO)?Constants.ONE:-Constants.ONE)) |
| | | ).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | //è·åå¾
æ¯ä»æ¬¾éé¢ å¦æè´¦åç±»å为æ¯åº æ ï¼è´¦åç±»å为æ¶å
¥ ä¸ å¾
æ¯ä»éé¢ å°äº 0ï¼ å为æ¯ä» |
| | | waitPayTotal = ywContractBill.getReceivableFee().subtract(payTotal); |
| | | //妿å¾
æ¯ä»éé¢ å¤§äº 0 忝 æ¶å
¥ å¦åæ¯æ¯åº å
¶ä»ç¶æ 为å¼å¸¸ï¼ |
| | | if(waitPayTotal.compareTo(BigDecimal.ZERO)>Constants.ZERO){ |
| | | ywContractRevenue.setRevenueType(Constants.ZERO); |
| | | }else if(waitPayTotal.compareTo(BigDecimal.ZERO)<Constants.ZERO){ |
| | | ywContractRevenue.setRevenueType(Constants.ONE); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æ¶æ¯éé¢å¼å¸¸!请è系管çå"); |
| | | } |
| | | //å¾
æ¯ä»çæµæ°´ å¦æä¸ºæ¶å
¥ 忝坹 éé¢å¼ å¦ææ¯æ¯åº åè·åç»å¯¹å¼ è¿è¡å¯¹æ¯ |
| | | if(Constants.equalsInteger(ywContractRevenue.getRevenueType(),Constants.ZERO)){ |
| | | //妿æ¯ä»éé¢ å¤§äº å¾
æ¯ä»éé¢ åæç¤ºå¼å¸¸ 妿æ¯ä»éé¢å°äº å¾
æ¯ä»éé¢ åç¶æä¸åå å
¶ä»ç¶æ å¼å¸¸ |
| | | if(waitPayTotal.compareTo(ywContractRevenue.getActReceivableFee())>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"请è¾å
¥æ£ç¡®çéé¢ï¼"); |
| | | }else if(waitPayTotal.compareTo(ywContractRevenue.getActReceivableFee())==Constants.ZERO){ |
| | | ywContractBill.setPayStatus(Constants.ONE); |
| | | } |
| | | }else{ |
| | | waitPayTotal = waitPayTotal.abs(); |
| | | if(waitPayTotal.compareTo(ywContractRevenue.getActReceivableFee())>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"请è¾å
¥æ£ç¡®çéé¢ï¼"); |
| | | }else if(waitPayTotal.compareTo(ywContractRevenue.getActReceivableFee())==Constants.ZERO){ |
| | | ywContractBill.setPayStatus(Constants.ONE); |
| | | } |
| | | } |
| | | } |
| | | ywContractRevenueMapper.insert(ywContractRevenue); |
| | | ywContractBillMapper.updateById(ywContractBill); |
| | | //åå¨éä»¶ä¿¡æ¯ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractRevenue.getMultifileList())){ |
| | | for (Multifile multifile:ywContractRevenue.getMultifileList()) { |
| | | if(Objects.isNull(multifile) |
| | | || StringUtils.isBlank(multifile.getFileurl()) |
| | | || StringUtils.isBlank(multifile.getName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶ä¿¡æ¯é误"); |
| | | } |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjType(Constants.MultiFile.FN_CONTRACT_REVENUE_FILE.getKey()); |
| | | multifile.setObjId(ywContractRevenue.getId()); |
| | | } |
| | | multifileMapper.insert(ywContractRevenue.getMultifileList()); |
| | | } |
| | | return ywContractRevenue.getId(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public YwContractRevenue getDetail(Integer id) { |
| | | YwContractRevenue ywContractRevenue = ywContractRevenueMapper.selectJoinOne( |
| | | YwContractRevenue.class, |
| | | new MPJLambdaWrapper<YwContractRevenue>().selectAll(YwContractRevenue.class) |
| | | .selectAs(YwContractBill::getCode,YwContractRevenue::getBillCode) |
| | | .selectAs(YwContract::getCode,YwContractRevenue::getContractCode) |
| | | .selectAs(YwCustomer::getName,YwContractRevenue::getCustomerName) |
| | | .selectAs(SystemUser::getRealname,YwContractRevenue::getRealname) |
| | | .leftJoin(YwContractBill.class,YwContractBill::getId,YwContractRevenue::getBillId) |
| | | .leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,YwContractRevenue::getCreator) |
| | | .eq(YwContractRevenue::getId,id) |
| | | ); |
| | | |
| | | this.getRecordData(ywContractRevenue); |
| | | |
| | | return ywContractRevenue; |
| | | } |
| | | |
| | | /** |
| | | * æä½è®°å½ |
| | | * @param ywContractRevenue |
| | | */ |
| | | public void getRecordData(YwContractRevenue ywContractRevenue){ |
| | | List<EditRecordDataVO> editRecordDataVOList = new ArrayList(); |
| | | //æ¨¡ææµæ°´è®°å½ |
| | | if(Objects.nonNull(ywContractRevenue.getCreateDate())){ |
| | | EditRecordDataVO editRecordDataVO = new EditRecordDataVO(); |
| | | editRecordDataVO.setEditRemark("åå»ºæµæ°´"); |
| | | editRecordDataVO.setEditTime(ywContractRevenue.getCreateDate()); |
| | | SystemUser createUser = systemUserMapper.selectById(ywContractRevenue.getCreator()); |
| | | if(Objects.nonNull(createUser)){ |
| | | editRecordDataVO.setEditUserName(createUser.getRealname()); |
| | | } |
| | | editRecordDataVOList.add(editRecordDataVO); |
| | | } |
| | | if(Objects.nonNull(ywContractRevenue.getEditor())){ |
| | | EditRecordDataVO editRecordDataVO = new EditRecordDataVO(); |
| | | editRecordDataVO.setEditRemark("å
³éæµæ°´"); |
| | | editRecordDataVO.setEditTime(ywContractRevenue.getEditDate()); |
| | | SystemUser closeUser = systemUserMapper.selectById(ywContractRevenue.getEditor()); |
| | | if(Objects.nonNull(closeUser)){ |
| | | editRecordDataVO.setEditUserName(closeUser.getRealname()); |
| | | } |
| | | editRecordDataVOList.add(editRecordDataVO); |
| | | } |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(editRecordDataVOList)){ |
| | | ywContractRevenue.setEditRecordDataVOList(editRecordDataVOList); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void closeRevenue(Integer id,LoginUserInfo loginUserInfo) { |
| | | YwContractRevenue ywContractRevenue = ywContractRevenueMapper.selectById(id); |
| | | if(Objects.isNull(ywContractRevenue)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | YwContractBill ywContractBill = ywContractBillMapper.selectById(ywContractRevenue.getBillId()); |
| | | if(Objects.isNull(ywContractBill)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | YwContract ywContract = ywContractMapper.selectById(ywContractBill.getContractId()); |
| | | if(Objects.isNull(ywContract)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ååç¶æå·²æµè½¬,æ æ³æä½"); |
| | | } |
| | | if(Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.ONE) |
| | | || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è´¦åç¶æå·²æµè½¬,æ æ³æä½"); |
| | | } |
| | | //æ¥è¯¢è´¦åä¸ ææçè´¦å |
| | | List<YwContractRevenue> ywContractRevenueList = ywContractRevenueMapper.selectList(new QueryWrapper<YwContractRevenue>().lambda().eq(YwContractRevenue::getStatus,Constants.ZERO) |
| | | .eq(YwContractRevenue::getIsdeleted,Constants.ZERO) |
| | | .eq(YwContractRevenue::getBillId,ywContractRevenue.getBillId()) |
| | | .ne(YwContractRevenue::getId,id) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywContractRevenueList)){ |
| | | //æ å
¶ä»æµæ°´è®°å½ æ ¹æ®è´¦åå建类å åæ´ç¶æ |
| | | //èªå»ºè´¦å æ ¹æ®è´¦åæ¶æ¯ç±»åè¿è¡ åæ´ç¶æ |
| | | if(Constants.equalsInteger(ywContractBill.getType(),Constants.ONE)){ |
| | | if(Constants.equalsInteger(ywContractBill.getBillType(),Constants.ZERO)){ |
| | | ywContractBill.setPayStatus(Constants.ZERO); |
| | | }else{ |
| | | ywContractBill.setPayStatus(Constants.THREE); |
| | | } |
| | | }else{ |
| | | //ååè´¦å å为 å¾
æ¶æ¬¾ |
| | | ywContractBill.setPayStatus(Constants.ZERO); |
| | | } |
| | | }else{ |
| | | //åå¨å
¶ä»æµæ°´ åç»ä¸åæ´ä¸º é¨åç»ç® |
| | | ywContractBill.setPayStatus(Constants.TWO); |
| | | } |
| | | |
| | | ywContractBillMapper.update(null,new UpdateWrapper<YwContractBill>().lambda() |
| | | .set(YwContractBill::getPayStatus,ywContractBill.getPayStatus()) |
| | | .set(YwContractBill::getEditor,loginUserInfo.getId()) |
| | | .set(YwContractBill::getEditDate," now() ") |
| | | .eq(YwContractBill::getId,ywContractBill.getId()) |
| | | ); |
| | | |
| | | ywContractRevenueMapper.update(null,new UpdateWrapper<YwContractRevenue>().lambda() |
| | | .set(YwContractRevenue::getStatus,Constants.ONE) |
| | | .set(YwContractRevenue::getEditor,loginUserInfo.getId()) |
| | | .set(YwContractRevenue::getEditDate," now() ") |
| | | .eq(YwContractRevenue::getId,id)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public YwContractRevenue findOne(YwContractRevenue ywContractRevenue) { |
| | | QueryWrapper<YwContractRevenue> wrapper = new QueryWrapper<>(ywContractRevenue); |
| | | return ywContractRevenueMapper.selectOne(wrapper); |
| | |
| | | |
| | | @Override |
| | | public List<YwContractRevenue> findList(YwContractRevenue ywContractRevenue) { |
| | | QueryWrapper<YwContractRevenue> wrapper = new QueryWrapper<>(ywContractRevenue); |
| | | return ywContractRevenueMapper.selectList(wrapper); |
| | | List<YwContractRevenue> ywContractRevenueList = ywContractRevenueMapper.selectJoinList(YwContractRevenue.class,new MPJLambdaWrapper<YwContractRevenue>() |
| | | .selectAll(YwContractRevenue.class) |
| | | .selectAs(YwCustomer::getName,YwContractRevenue::getCustomerNme) |
| | | .leftJoin(YwContract.class,YwContract::getId,YwContractRevenue::getContractId) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) |
| | | .eq(YwContractRevenue::getStatus,Constants.ZERO) |
| | | .eq(Objects.nonNull(ywContractRevenue) && Objects.nonNull(ywContractRevenue.getBillId()),YwContractRevenue::getBillId,ywContractRevenue.getBillId()) |
| | | ); |
| | | return ywContractRevenueList; |
| | | } |
| | | |
| | | @Override |
| | | public PageData<YwContractRevenue> findPage(PageWrap<YwContractRevenue> pageWrap) { |
| | | IPage<YwContractRevenue> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<YwContractRevenue> queryWrapper = new QueryWrapper<>(); |
| | | MPJLambdaWrapper<YwContractRevenue> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getId, pageWrap.getModel().getId()); |
| | | YwContractRevenue model = pageWrap.getModel(); |
| | | IPage<YwContractRevenue> iPage = ywContractRevenueMapper.selectJoinPage(page,YwContractRevenue.class, |
| | | queryWrapper.selectAll(YwContractRevenue.class) |
| | | .selectAs(YwContractBill::getCode,YwContractRevenue::getBillCode) |
| | | .selectAs(YwContract::getCode,YwContractRevenue::getContractCode) |
| | | .selectAs(YwCustomer::getName,YwContractRevenue::getCustomerName) |
| | | .selectAs(SystemUser::getRealname,YwContractRevenue::getRealname) |
| | | .leftJoin(YwContractBill.class,YwContractBill::getId,YwContractRevenue::getBillId) |
| | | .leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId) |
| | | .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,YwContractRevenue::getCreator) |
| | | .eq(YwContractRevenue::getIsdeleted,Constants.ZERO) |
| | | .like(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getCustomerNme()), |
| | | YwCustomer::getName,model.getCustomerNme()) |
| | | .eq(Objects.nonNull(model)&&Objects.nonNull(model.getPayType()), |
| | | YwContractRevenue::getPayType,model.getPayType()) |
| | | .eq(Objects.nonNull(model)&&Objects.nonNull(model.getRevenueType()), |
| | | YwContractRevenue::getRevenueType,model.getRevenueType()) |
| | | .ge(Objects.nonNull(model)&&Objects.nonNull(model.getPayDateStart()),YwContractRevenue::getActPayDate, Utils.Date.getStart(model.getPayDateStart())) |
| | | .le(Objects.nonNull(model)&&Objects.nonNull(model.getPayDateEnd()),YwContractRevenue::getActPayDate, Utils.Date.getEnd(model.getPayDateEnd())) ) |
| | | ; |
| | | |
| | | this.dealRoomDetail(iPage.getRecords()); |
| | | |
| | | for (YwContractRevenue ywContractRevenue:iPage.getRecords()) { |
| | | //楼å®åç§° |
| | | List<YwContractRoom> ywContractRoomList = ywContractRevenue.getYwContractRoomList(); |
| | | StringBuilder roomPathName = new StringBuilder(); |
| | | for (YwContractRoom ywContractRoom:ywContractRoomList) { |
| | | if(StringUtils.isNotBlank(ywContractRoom.getProjectName())){ |
| | | roomPathName.append(ywContractRoom.getProjectName()+"/"); |
| | | } |
| | | if(StringUtils.isNotBlank(ywContractRoom.getBuildingName())){ |
| | | roomPathName.append(ywContractRoom.getBuildingName()+"/"); |
| | | } |
| | | if(StringUtils.isNotBlank(ywContractRoom.getFloorName())){ |
| | | roomPathName.append(ywContractRoom.getFloorName()+"/"); |
| | | } |
| | | if(StringUtils.isNotBlank(ywContractRoom.getRoomName())){ |
| | | roomPathName.append(ywContractRoom.getRoomName()); |
| | | } |
| | | if(StringUtils.isNotBlank(roomPathName)){ |
| | | roomPathName.append(";"); |
| | | } |
| | | } |
| | | ywContractRevenue.setRoomPathName(roomPathName.toString()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(YwContractRevenue::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(YwContractRevenue::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(YwContractRevenue::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(YwContractRevenue::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getActReceivableFee() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getActReceivableFee, pageWrap.getModel().getActReceivableFee()); |
| | | } |
| | | if (pageWrap.getModel().getActPayDate() != null) { |
| | | queryWrapper.lambda().ge(YwContractRevenue::getActPayDate, Utils.Date.getStart(pageWrap.getModel().getActPayDate())); |
| | | queryWrapper.lambda().le(YwContractRevenue::getActPayDate, Utils.Date.getEnd(pageWrap.getModel().getActPayDate())); |
| | | } |
| | | if (pageWrap.getModel().getPayType() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getPayType, pageWrap.getModel().getPayType()); |
| | | } |
| | | if (pageWrap.getModel().getCompanyId() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getCompanyId, pageWrap.getModel().getCompanyId()); |
| | | } |
| | | if (pageWrap.getModel().getAccountId() != null) { |
| | | queryWrapper.lambda().eq(YwContractRevenue::getAccountId, pageWrap.getModel().getAccountId()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | return PageData.from(iPage); |
| | | } |
| | | |
| | | |
| | | public void dealRoomDetail(List<YwContractRevenue> ywContractRevenueList){ |
| | | //æ¥è¯¢è´¦åä¸çæ¥¼å®æ°æ® |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractRevenueList)){ |
| | | //è·åæææ°æ® |
| | | List<Integer> billIdList = ywContractRevenueList.stream().map(i->i.getBillId()).collect(Collectors.toList()); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(billIdList)){ |
| | | List<YwContractRoom> ywContractRoomList = ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>() |
| | | .selectAll(YwContractRoom.class) |
| | | .selectAs(YwProject::getName,YwRoom::getProjectName) |
| | | .selectAs(YwFloor::getName,YwRoom::getFloorName) |
| | | .selectAs(YwBuilding::getName,YwRoom::getBuildingName) |
| | | .selectAs(YwRoom::getName,YwContractRoom::getRoomName) |
| | | .leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId) |
| | | .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor) |
| | | .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId) |
| | | .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId) |
| | | .in(YwContractRoom::getContractId,billIdList) |
| | | .eq(YwContractRoom::getType,Constants.ONE) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractRoomList)){ |
| | | for (YwContractRevenue ywContractRevenue:ywContractRevenueList) { |
| | | ywContractRevenue.setYwContractRoomList( |
| | | ywContractRoomList.stream().filter(i->Constants.equalsInteger(i.getContractId(),ywContractRevenue.getBillId())).collect(Collectors.toList()) |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return PageData.from(ywContractRevenueMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public long count(YwContractRevenue ywContractRevenue) { |
| | | QueryWrapper<YwContractRevenue> wrapper = new QueryWrapper<>(ywContractRevenue); |
| | |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Integer create(YwContract model) { |
| | | isParamValidCreated(model); |
| | | |
| | | model.setCreator(model.getLoginUserInfo().getId()); |
| | | model.setIsdeleted(Constants.ZERO); |
| | | model.setCreateDate(new Date()); |
| | |
| | | model.setEditDate(model.getCreateDate()); |
| | | model.setEditor(model.getCreator()); |
| | | model.setStatus(Constants.ZERO);//å¾
æ§è¡ |
| | | model.setRemark(getRemarlByParam(model)); |
| | | ywContractMapper.insert(model); |
| | | dealDetailListBiz(model);//å¤çæ¡æ¬¾ä¿¡æ¯ |
| | | dealMultifileBiz(model);//å¤çéä»¶ä¿¡æ¯ |
| | | dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,null,null);//è®°å½æ°å»ºæ¥å¿ |
| | | return model.getId(); |
| | | } |
| | | |
| | | private String getRemarlByParam(YwContract model) { |
| | | |
| | | String str = ""; |
| | | YwContractDetail zl = model.getZlDetailList()!=null&&model.getZlDetailList().size()>0?model.getZlDetailList().get(0):null; |
| | | YwContractDetail yw = model.getWyDetailList()!=null&&model.getWyDetailList().size()>0?model.getWyDetailList().get(0):null; |
| | | //èµ·ç§æ¥2024/06/01ï¼ç§èµæ°ä¸º500ã¡ã馿ç§èµä¸æä¸ä»ï¼ç§éåä»·35å
/ã¡Â·æã馿ç©ä¸ä¸æä¸ä»ï¼ç©ä¸åä»·4.3å
/ã¡Â·æ |
| | | String str0 = "ååæè¦ï¼èµ·ç§æ¥{param1}ï¼ç§èµæ°ä¸º{param2}ã¡ã馿ç§èµ{param3}ï¼ç§éåä»·{param4}å
{param5}ã馿ç©ä¸{param6}ï¼ç©ä¸åä»·{param7}{param8}"; |
| | | String str1 = "ååæè¦ï¼èµ·ç§æ¥{param1}ï¼ç§èµæ°ä¸º{param2}ã¡ã馿ç§èµ{param3}ï¼ç§éåä»·{param4}å
{param5}ã"; |
| | | String str2 = "ååæè¦ï¼èµ·ç§æ¥{param1}ï¼é¦æç©ä¸{param6}ï¼ç©ä¸åä»·{param7}å
{param8}"; |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | | str= str0; |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | str= str1; |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | str= str2; |
| | | } |
| | | str = str.replace("{param1}",DateUtil.getDateLongSlash(model.getStartDate())) |
| | | .replace("{param2}",model.getTotalArea().intValue()+"") |
| | | .replace("{param3}",getPayTypeByNum(model.getZlPayType())) |
| | | .replace("{param4}",zl!=null&&zl.getPrice()!=null?(zl.getPrice().intValue()+""):"0") |
| | | .replace("{param5}",getPayTypeByNum(model.getWyPayType())) |
| | | .replace("{param6}",getUnitTypeByNum(zl)) |
| | | .replace("{param7}",zl!=null&&yw.getPrice()!=null?(zl.getPrice().intValue()+""):"0") |
| | | .replace("{param8}",getUnitTypeByNum(yw)); |
| | | return str; |
| | | } |
| | | private String getbackRentRemarkByParam(YwContract model) { |
| | | BigDecimal fee = Constants.formatBigdecimal(model.getBtFee()); |
| | | String str = "éç§æè¦ï¼å©ä½æªç»æ¸
è´¦å{param1}份ï¼å
³éè´¦å{param2}份ãéç§æ¥{param3}ï¼éç§è´¹ç¨å计é{param4}{param5}å
ãã"; |
| | | str = str.replace("{param1}",model.getBtWaitBill()+"") |
| | | .replace("{param2}",DateUtil.getDateLongSlash(model.getBtDate())) |
| | | .replace("{param3}",fee.compareTo(new BigDecimal(0)) >=0?"æ¶":"ä»") |
| | | .replace("{param4}",(fee.compareTo(new BigDecimal(0)) >=0? |
| | | Constants.formatBigdecimal(model.getBtFee()).intValue() |
| | | :(Constants.formatBigdecimal(model.getBtFee()).intValue() * -1))+"" ); |
| | | return str; |
| | | } |
| | | |
| | | private CharSequence getUnitTypeByNum(YwContractDetail zl) { |
| | | if(zl==null){ |
| | | return ""; |
| | | } |
| | | // 仿¬¾å¨æç±»å 0=å
æ¯å¹³ç±³å¤©ï¼1=å
æ¯å¹³ç±³æï¼2=å
æ¯å¹³ç±³å¹´ï¼3=å
æ¯å¤©ï¼4=å
æ¯æï¼5=å
æ¯å¹´ï¼6=å
æ¯åºï¼ |
| | | int zlPayType = Constants.formatIntegerNum(zl.getCircleType()); |
| | | if(zlPayType == 1){ |
| | | return "å
/ã¡Â·æ"; |
| | | }else if(zlPayType == 2){ |
| | | return "å
/ã¡Â·å¤©"; |
| | | }else if(zlPayType == 3){ |
| | | return "å
/天"; |
| | | }else if(zlPayType == 4){ |
| | | return "å
/æ"; |
| | | }else if(zlPayType == 5){ |
| | | return "å
/å¹´"; |
| | | }else if(zlPayType == 6){ |
| | | return "å
/åº"; |
| | | } |
| | | return "å
/ã¡Â·å¤©"; |
| | | } |
| | | |
| | | private CharSequence getPayTypeByNum(Integer zlPayType) { |
| | | //ç§èµæ¯ä»æ¹å¼ 0=䏿¬¡æ§ä»æ¬¾ï¼1=æ¯ä¸ä¸ªæä¸ä»ï¼2=å
个æä¸ä»ï¼3=ä¸å¹´ä¸ä» |
| | | if(zlPayType == 1){ |
| | | return "3个æä¸ä»"; |
| | | }else if(zlPayType == 2){ |
| | | return "6个æä¸ä»"; |
| | | }else if(zlPayType == 3){ |
| | | return "1å¹´ä¸ä»"; |
| | | } |
| | | return "䏿¬¡æ§ä»æ¬¾"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * éç§æäº¤ |
| | | * @param param |
| | |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Integer backRent(YwContract param){ |
| | | isParamValidBackRent(param); |
| | | param.setEditDate(new Date()); |
| | | param.setEditor(param.getLoginUserInfo().getId()); |
| | | //å¤ç |
| | | dealBackRentBillBiz(param); |
| | | YwContract update = new YwContract(); |
| | |
| | | update.setBtType(param.getBtType()); |
| | | update.setBtUserId(param.getBtUserId()); |
| | | update.setBtFee(param.getBtFee()); |
| | | update.setBtRemark(getbackRentRemarkByParam(param)); |
| | | ywContractMapper.updateById(update); |
| | | dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK,null,null); |
| | | return param.getId(); |
| | | } |
| | | |
| | | private void dealBackRentBillBiz(YwContract param) { |
| | | //æ¥è¯¢ååå
¨é¨è´¦åä¿¡æ¯ |
| | | List<YwContractBill> closeBills = new ArrayList<>();//带å
³é |
| | | List<YwContractBill> newBills = new ArrayList<>();//æ°çè´¦å |
| | | List<YwContractBill> noBills = new ArrayList<>();//ä¸éè¦ç»ç®çè´¦å |
| | | List<YwContractBill> yjBills = new ArrayList<>();//æ¼éè´¦å |
| | | List<YwContractBill> canBills = new ArrayList<>();//å¯éç§ä¿®æ¹æ°æ® |
| | | List<YwContractBill> allBills = ywContractBillMapper.selectList(new QueryWrapper<YwContractBill>(). |
| | | select("*," + |
| | | "( select ifnull(sum(yw.ACT_RECEIVABLE_FEE),0) from yw_contract_revenue yw where yw.bill_id = yw_contract_bill.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee " ) |
| | | .lambda(). |
| | | eq(YwContractBill::getIsdeleted,Constants.ZERO) |
| | | .eq(YwContractBill::getContractId,param.getId())); |
| | | if(allBills!=null && allBills.size()>0){ |
| | | for(YwContractBill bill: allBills){ |
| | | //仿¬¾ç¶æï¼0=å¾
æ¶æ¬¾ï¼1=å·²ç»æ¸
ï¼2=é¨åç»æ¸
ï¼3=å¾
仿¬¾ï¼4=å¾
鿬¾ï¼5=å·²å
³é |
| | | // å¦ææ¯æ¼éæè
ä¿è¯éï¼ä¸æ¯æé款ï¼ä¿æåæ¥çç¶æï¼ 0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸æ¼éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä»;7=ä¿è¯é |
| | | if(Constants.equalsInteger(Constants.THREE,bill.getCostType()) |
| | | || Constants.equalsInteger(Constants.FOUR,bill.getCostType()) |
| | | ||Constants.equalsInteger(Constants.SEVEN,bill.getCostType())){ |
| | | //æ¼éåä¿è¯é |
| | | yjBills.add(bill); |
| | | continue; |
| | | } |
| | | if(Constants.equalsInteger(bill.getPayStatus(),Constants.ZERO) |
| | | ||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){ |
| | | if(bill.getStartDate().getTime()>param.getEditDate().getTime()){ |
| | | //å¦æè¿æ²¡å¼å§ï¼è´¦åç´æ¥å
³é |
| | | closeBills.add(bill); |
| | | noBills.add(bill); |
| | | }else{ |
| | | canBills.add(bill); |
| | | } |
| | | }else if(Constants.equalsInteger(bill.getPayStatus(),Constants.ONE) ){ |
| | | if(bill.getEndDate().getTime()<param.getEditDate().getTime()){ |
| | | //å¦æå·²ç»æ¸
ï¼è´¦åç´æ¥å
³é |
| | | noBills.add(bill); |
| | | }else{ |
| | | canBills.add(bill); |
| | | } |
| | | }else if(Constants.equalsInteger(bill.getPayStatus(),Constants.TWO) ){ |
| | | canBills.add(bill); |
| | | } |
| | | } |
| | | } |
| | | if(closeBills.size()>0){ |
| | | //ç´æ¥å
³éå
³éè´¦å |
| | | for(YwContractBill b : closeBills){ |
| | | b.setStatus(Constants.ONE); |
| | | b.setEditDate(param.getEditDate()); |
| | | b.setEditor(param.getEditor()); |
| | | //å
³é订å |
| | | ywContractBillMapper.updateById(b); |
| | | } |
| | | } |
| | | int yjNoBills =0; |
| | | if(yjBills.size()>0){ |
| | | // å¦ææ¯æ¼éæè
ä¿è¯éï¼ä¸æ¯æé款ï¼ä¿æåæ¥çç¶æï¼ 0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸æ¼éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä»;7=ä¿è¯é |
| | | for(YwContractBill bill : yjBills){ |
| | | if(!Constants.equalsInteger(bill.getPayStatus(),Constants.ONE) ){ |
| | | //å¦ææ¯æªç»æ¸
æ¼é |
| | | yjNoBills ++; |
| | | } |
| | | } |
| | | } |
| | | BigDecimal totalBackFee = new BigDecimal(0); |
| | | if(canBills.size()>0){ |
| | | //ç´æ¥å
³éå
³éè´¦å |
| | | for(YwContractBill b : canBills){ |
| | | BigDecimal fee = new BigDecimal(0); |
| | | YwContractBill editBill = getEditBillFromListByParam(b,param.getCanBackRentBills()); |
| | | if(editBill != null){ |
| | | //仿¬¾ç¶æï¼0=å¾
æ¶æ¬¾ï¼1=å·²ç»æ¸
ï¼2=é¨åç»æ¸
ï¼3=å¾
仿¬¾ï¼4=å¾
鿬¾ï¼5=å·²å
³é |
| | | //å¦æè´¦åä¿¡æ¯åäºç¼è¾ï¼éé¢è®¡ç® 宿¶éé¢ å ä¿®æ¹ååºæ¶éé¢ä½å¯¹æ¯ï¼å¤ææ¯å¦åºè¯¥é款 |
| | | fee = Constants.formatBigdecimal(b.getActReceivableFee()).subtract(editBill.getReceivableFee()); |
| | | if(fee.compareTo(new BigDecimal(0))== 0){ |
| | | //å¦æè´¹ç¨æ£å¥½ï¼åä¿®æ¹è´¦åä¿¡æ¯ä¸ºå·²ç»æ¸
|
| | | b.setStatus(Constants.ONE); |
| | | }else if(fee.compareTo(new BigDecimal(0))> 0){ |
| | | //妿éè¦è¿è¡éæ¬¾ï¼æ´æ°è´¦åä¿¡æ¯ä¸ºå¾
鿬¾ |
| | | b.setStatus(Constants.FOUR); |
| | | }else if(fee.compareTo(new BigDecimal(0)) < 0){ |
| | | //å¦æè´¦åè¿ææ¬¾å¾
æ¶ï¼åä¿æç¶æä¸å |
| | | } |
| | | } |
| | | b.setEditDate(param.getEditDate()); |
| | | b.setEditor(param.getEditor()); |
| | | b.setBtActDate(param.getBtActDate()); |
| | | b.setBtDate(param.getBtDate()); |
| | | b.setBtFee(fee); |
| | | b.setBtInfo(param.getBtInfo()); |
| | | b.setBtUserId(param.getBtUserId()); |
| | | b.setBtSignDate(param.getBtSignDate()); |
| | | b.setBtType(param.getBtType()); |
| | | //å
³é订å |
| | | ywContractBillMapper.updateById(b); |
| | | totalBackFee = totalBackFee.add(fee);//ç´¯è®¡éæ¬¾éé¢ |
| | | } |
| | | } |
| | | if(param.getAddBillList()!=null && param.getAddBillList().size()>0){ |
| | | for(YwContractBill addBill : param.getAddBillList()){ |
| | | addBill.setIsdeleted(Constants.ZERO); |
| | | addBill.setContractId(param.getId()); |
| | | addBill.setType(Constants.ONE); |
| | | addBill.setStatus(Constants.ZERO); |
| | | if(Constants.equalsInteger(addBill.getBillType(),Constants.ZERO)){ |
| | | //å¦ææ¯æ¶æ¬¾ |
| | | totalBackFee = totalBackFee.add(Constants.formatBigdecimal(addBill.getActReceivableFee())); |
| | | addBill.setPayStatus(Constants.ZERO); |
| | | addBill.setBtFee(Constants.formatBigdecimal(addBill.getActReceivableFee())); |
| | | }else{ |
| | | //妿æ¯ä»æ¬¾ |
| | | addBill.setPayStatus(Constants.THREE); |
| | | addBill.setBtFee(Constants.formatBigdecimal(addBill.getActReceivableFee()).multiply(new BigDecimal(-1))); |
| | | } |
| | | totalBackFee = totalBackFee.add(Constants.formatBigdecimal(addBill.getBtFee())); |
| | | addBill.setEditDate(param.getEditDate()); |
| | | addBill.setEditor(param.getEditor()); |
| | | addBill.setBtActDate(param.getBtActDate()); |
| | | addBill.setBtDate(param.getBtDate()); |
| | | addBill.setBtInfo(param.getBtInfo()); |
| | | addBill.setBtUserId(param.getBtUserId()); |
| | | addBill.setBtSignDate(param.getBtSignDate()); |
| | | addBill.setBtType(param.getBtType()); |
| | | newBills.add(addBill); |
| | | } |
| | | ywContractBillMapper.insert(param.getAddBillList());//æ¹éæå
¥æ°æ® |
| | | } |
| | | param.setBtWaitBill(canBills.size() + newBills.size()+yjNoBills);//æªæ¸
ç®çè´¦åæ°é |
| | | param.setBtCLoseBill(closeBills.size()); |
| | | param.setBtFee(totalBackFee); |
| | | } |
| | | |
| | | private YwContractBill getEditBillFromListByParam(YwContractBill b, List<YwContractBill> canBackRentBills) { |
| | | for(YwContractBill d : canBackRentBills){ |
| | | if(Constants.equalsInteger(b.getId(),d.getId())){ |
| | | return d; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private void isParamValidBackRent(YwContract param) { |
| | |
| | | if(bill.getCostType() == null |
| | | ||bill.getFeeType() == null |
| | | ||bill.getReceivableFee() == null |
| | | ||bill.getReceivableFee().compareTo(new BigDecimal(0)) < 1 |
| | | ||bill.getCompanyId() == null |
| | | ||bill.getPlanPayDate() == null |
| | | ||(Constants.equalsInteger(bill.getFeeType(),Constants.ZERO) |
| | | ||bill.getBillType() == null |
| | | ||(Constants.equalsInteger(bill.getBillType(),Constants.ZERO) |
| | | &&Constants.equalsInteger(bill.getFeeType(),Constants.ZERO) |
| | | && (bill.getStartDate() ==null || bill.getEndDate() ==null) )){ |
| | | |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æè¦æ±å¡«åèªå»ºè´¦åä¿¡æ¯ï¼"); |
| | | } |
| | | } |
| | | } |
| | |
| | | if(rooms.size() != rooms.size()){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å卿 æçæ¿æºä¿¡æ¯ï¼"); |
| | | } |
| | | model.setTotalArea(new BigDecimal(0)); |
| | | for(YwRoom r : rooms){ |
| | | model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getArea()))); |
| | | } |
| | | YwCustomer customer = customerMapper.selectById(model.getRenterId()); |
| | | if(customer ==null || Constants.equalsInteger(customer.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼éæ©ç§å®¢ä¿¡æ¯ä¸åå¨ï¼è¯·è¿åå·æ°éè¯ï¼"); |
| | |
| | | .eq( YwContractBill::getContractId,model.getId()) |
| | | .eq(YwContractBill::getIsdeleted,Constants.ZERO) |
| | | .orderByAsc(YwContractBill::getSortnum,YwContractBill::getCreateDate))); |
| | | model.setCanBackRentBills(new ArrayList<>()); |
| | | long nowStart = Utils.Date.getStart(new Date()).getTime(); |
| | | long nowEnd = Utils.Date.getEnd(new Date()).getTime(); |
| | | if(model.getBillList()!=null && model.getBillList().size()>0){ |
| | | for(YwContractBill bill: model.getBillList()){ |
| | | //仿¬¾ç¶æï¼0=å¾
æ¶æ¬¾ï¼1=å·²ç»æ¸
ï¼2=é¨åç»æ¸
ï¼3=å¾
仿¬¾ï¼4=å¾
鿬¾ï¼5=å·²å
³é |
| | | if(Constants.equalsInteger(bill.getPayStatus(),Constants.ZERO) |
| | | ||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){ |
| | | if(bill.getStartDate().getTime()>nowEnd){ |
| | | //å¦æè¿æ²¡å¼å§ï¼è´¦åç´æ¥å
³é |
| | | continue; |
| | | } |
| | | model.getCanBackRentBills().add(bill); |
| | | |
| | | }else if(Constants.equalsInteger(bill.getPayStatus(),Constants.ONE) ){ |
| | | if(bill.getEndDate().getTime()<nowStart){ |
| | | //å¦æå·²ç»æ¸
ï¼è´¦åç´æ¥å
³é |
| | | continue; |
| | | } |
| | | model.getCanBackRentBills().add(bill); |
| | | }else if(Constants.equalsInteger(bill.getPayStatus(),Constants.TWO) ){ |
| | | model.getCanBackRentBills().add(bill); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | return model; |
| | |
| | | if(StringUtils.isBlank(multifile.getFileurl())){ |
| | | continue; |
| | | } |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setCreateDate(model.getCreateDate()); |
| | | multifile.setEditDate(model.getCreateDate()); |
| | | multifile.setCreator(model.getEditor()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(model.getId()); |
| | | multifile.setCreator(model.getCreator()); |
| | | multifile.setEditor(model.getCreator()); |
| | | multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey()); |
| | | multifile.setSortnum(i+1); |
| | | fileList.add(multifile); |
| | |
| | | if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å·¥åä¿¡æ¯ä¸åå¨ï¼"); |
| | | } |
| | | if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO) && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)){ |
| | | if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO) |
| | | // && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å·¥åç¶æå·²æµè½¬ï¼ä¸æ¯æå½åæä½ï¼"); |
| | | } |
| | | |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å·¥åç¶æå·²æµè½¬ï¼ä¸æ¯æå½åæä½ï¼"); |
| | | } |
| | | |
| | | SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId()); |
| | | if(user ==null || (user.getDeleted()!=null&& user.getDeleted() )){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å工信æ¯ä¸åå¨ï¼"); |
| | | } |
| | | // SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId()); |
| | | // if(user ==null || (user.getDeleted()!=null&& user.getDeleted() )){ |
| | | // throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å工信æ¯ä¸åå¨ï¼"); |
| | | // } |
| | | YwWorkorder update = new YwWorkorder(); |
| | | update.setId(model.getId()); |
| | | update.setEditDate(new Date()); |
| | |
| | | update.setDealStatus(Constants.TWO); |
| | | update.setDealUserId(update.getEditor()); |
| | | update.setDealDate(update.getEditDate()); |
| | | update.setDealInfo(ywWorkorder.getDispatchInfo()); |
| | | update.setDealInfo(ywWorkorder.getDealInfo()); |
| | | ywWorkorderMapper.updateById(update); |
| | | |
| | | List<Multifile> fileList = new ArrayList<>(); |
| | | if(ywWorkorder.getDealFileList()!=null && ywWorkorder.getDealFileList().size()>0){ |
| | | for (int i = 0; i < ywWorkorder.getDealFileList().size(); i++) { |
| | | Multifile multifile = ywWorkorder.getDealFileList().get(i); |
| | | if(StringUtils.isBlank(multifile.getFileurl())){ |
| | | continue; |
| | | } |
| | | multifile.setCreateDate(update.getEditDate()); |
| | | multifile.setCreator(update.getEditor()); |
| | | multifile.setEditDate(update.getEditDate()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(model.getId()); |
| | | multifile.setEditor(update.getEditor()); |
| | | multifile.setObjType(Constants.MultiFile.YW_WORKORDER_DEAL.getKey()); |
| | | multifile.setSortnum(i+1); |
| | | fileList.add(multifile); |
| | | } |
| | | } |
| | | if(fileList.size()>0){ |
| | | multifileMapper.insert(fileList); |
| | | } |
| | | dealLogBiz(model,Constants.YwLogType.WORKORDER_DEAL,ywWorkorder.getLoginUserInfo().getRealname(),null);//è®°å½æ°å»ºæ¥å¿ |
| | | } |
| | | @Override |