Merge remote-tracking branch 'origin/master'
| | |
| | | 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> |
| | |
| | | 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, "æ¶æ¯æµæ°´éä»¶ ", "ååè´¦åéä»¶ "), |
| | | |
| | | ; |
| | | // æååé |
| | |
| | | @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)); |
| | | } |
| | | } |
| | |
| | | @ExcelColumn(name="åºæ¶éé¢",index = 5,width = 6) |
| | | private BigDecimal receivableFee; |
| | | |
| | | @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=ä¿è¯é") |
| | | @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.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); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
| | |
| | | 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); |