From 77946261ec663aa1fe7f6f97e550532ed879f982 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 13:47:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 16
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java | 38
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue | 6
h5/pages/inventory/detail.vue | 1024 +++++++-------
h5/pages/operation/device.vue | 63
h5/pages/workOrder/wait.vue | 6
admin/src/views/client/category.vue | 2
h5/pages/login.vue | 80
admin/src/views/stock/components/newWarehouse.vue | 3
h5/pages/polling/point.vue | 226 +-
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java | 2
admin/src/views/stock/components/AssetSel.vue | 16
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java | 5
admin/src/views/contract/components/terminationAgreement.vue | 10
h5/pages.json | 7
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java | 95 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 12
admin/src/views/contract/components/terminateLease.vue | 19
admin/src/api/ywMaterial.js | 13
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 153 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java | 10
admin/src/components/common/GlobalWindow.vue | 1
admin/src/api/client/staff.js | 8
admin/src/views/stock/out.vue | 8
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java | 25
admin/src/views/stock/record.vue | 2
admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 32
admin/src/views/finance/collectionSettings.vue | 58
h5/pages/workOrder/edit.vue | 50
server/visits/dmvisit_service/src/main/resources/application-pro.yml | 13
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java | 26
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 28
admin/src/api/ywStocktaking.js | 8
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 47
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java | 33
admin/src/api/store/index.js | 11
admin/src/views/project/housingList.vue | 6
h5/pages/polling/empty.vue | 60
admin/src/views/finance/overdueBills.vue | 13
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java | 162 +
admin/src/views/finance/components/bullDetail.vue | 2
admin/src/components/base/BaseTable.vue | 2
admin/src/views/stock/query.vue | 9
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java | 2
admin/src/views/contract/components/pendingBills.vue | 23
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java | 21
h5/pages/polling/detail.vue | 11
admin/src/views/stock/in.vue | 1
admin/src/views/workorder/components/problemReportingDetails.vue | 42
server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java | 60
admin/src/views/workorder/components/detail.vue | 48
admin/src/views/workorder/problemReporting.vue | 6
admin/src/views/operation/components/deviceDetail.vue | 22
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java | 13
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java | 2
admin/src/views/operation/components/deviceEdit.vue | 21
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java | 21
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java | 7
admin/src/assets/icons/ic_key_green.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java | 53
admin/src/views/project/components/houseDetails.vue | 273 +--
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java | 55
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java | 5
admin/src/views/stock/components/config.js | 6
h5/utils/service.js | 4
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java | 4
admin/src/views/stock/components/newMaterial.vue | 7
server/system_gateway/src/main/resources/bootstrap.yml | 4
admin/src/assets/icons/ic_key_yellow.png | 0
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 10
admin/src/views/stock/components/inventoryDetails.vue | 46
admin/public/template/material.xlsx | 0
admin/src/views/index.vue | 20
admin/src/components/common/Header.vue | 2
server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java | 11
admin/src/views/stock/components/OutEdit.vue | 43
h5/pages/workOrder/problemEdit.vue | 14
admin/src/components/common/tagsview.vue | 5
admin/src/views/stock/assetList.vue | 55
admin/src/views/stock/asset.vue | 2
admin/src/components/common/Menu.vue | 3
server/visits/dmvisit_service/src/main/resources/application-dev.yml | 12
admin/src/views/stock/assetCate.vue | 6
admin/src/views/contract/components/contractDetail.vue | 6
admin/src/views/workorder/components/handleProblem.vue | 2
h5/pages/polling/task.vue | 5
admin/src/views/client/staffList.vue | 23
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java | 22
admin/src/views/workorder/workorderList.vue | 14
admin/src/views/Inspection/components/taskDetail.vue | 6
h5/static/side/default_empty@2x.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java | 30
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 28
admin/src/layouts/AppLayout.vue | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java | 45
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java | 27
server/visits/dmvisit_service/src/main/resources/application-test.yml | 12
admin/src/views/operation/record.vue | 35
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java | 12
admin/src/views/roomStatus/index.vue | 519 ++++--
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java | 50
server/system_gateway/src/main/resources/application.yml | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 3
116 files changed, 2,695 insertions(+), 1,554 deletions(-)
diff --git a/admin/public/template/material.xlsx b/admin/public/template/material.xlsx
new file mode 100644
index 0000000..6a53660
--- /dev/null
+++ b/admin/public/template/material.xlsx
Binary files differ
diff --git a/admin/src/api/client/staff.js b/admin/src/api/client/staff.js
index 5b40176..7d57949 100644
--- a/admin/src/api/client/staff.js
+++ b/admin/src/api/client/staff.js
@@ -20,6 +20,14 @@
})
}
+// 瀵煎嚭Excel
+export function ywExportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/member/ywExportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
// 鍒涘缓
export function create (data) {
return request.post('/visitsAdmin/cloudService/business/member/ywCreate', data)
diff --git a/admin/src/api/store/index.js b/admin/src/api/store/index.js
index bcd9b21..09260a5 100644
--- a/admin/src/api/store/index.js
+++ b/admin/src/api/store/index.js
@@ -7,7 +7,8 @@
}
export function ywOutinboundEx (data) {
return request.post('/visitsAdmin/cloudService/business/ywOutinbound/exportExcel', data, {
- trim: true
+ trim: true,
+ download: true
})
}
export function ywOutinboundDetail (id) {
@@ -28,7 +29,8 @@
}
export function ywStockPageEx (data) {
return request.post('/visitsAdmin/cloudService/business/ywStock/exportExcel', data, {
- trim: true
+ trim: true,
+ download: true
})
}
@@ -39,6 +41,7 @@
}
export function ywOutinboundRecordEx (data) {
return request.post('/visitsAdmin/cloudService/business/ywOutinboundRecord/exportExcel', data, {
- trim: true
+ trim: true,
+ download: true
})
-}
\ No newline at end of file
+}
diff --git a/admin/src/api/ywMaterial.js b/admin/src/api/ywMaterial.js
index e7da119..92e8655 100644
--- a/admin/src/api/ywMaterial.js
+++ b/admin/src/api/ywMaterial.js
@@ -26,3 +26,16 @@
export function deleteById (id) {
return request.get(`/visitsAdmin/cloudService/business/ywMaterial/delete/${id}`)
}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywMaterial/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 瀵煎叆妯℃澘
+export function importMaterialBatch (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywMaterial/importMaterialBatch', data)
+}
diff --git a/admin/src/api/ywStocktaking.js b/admin/src/api/ywStocktaking.js
index 00c5235..8eb6fb9 100644
--- a/admin/src/api/ywStocktaking.js
+++ b/admin/src/api/ywStocktaking.js
@@ -37,6 +37,14 @@
return request.get(`/visitsAdmin/cloudService/business/ywStocktaking/finishById?id=${id}`)
}
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywStocktakingRecord/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
// 鏌ヨ
export function ywStocktakingRecordPage (data) {
return request.post('/visitsAdmin/cloudService/business/ywStocktakingRecord/page', data, {
diff --git a/admin/src/assets/icons/ic_key_green.png b/admin/src/assets/icons/ic_key_green.png
new file mode 100644
index 0000000..0a59990
--- /dev/null
+++ b/admin/src/assets/icons/ic_key_green.png
Binary files differ
diff --git a/admin/src/assets/icons/ic_key_yellow.png b/admin/src/assets/icons/ic_key_yellow.png
new file mode 100644
index 0000000..1dc8bf5
--- /dev/null
+++ b/admin/src/assets/icons/ic_key_yellow.png
Binary files differ
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index 5b96868..7aea229 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/admin/src/components/base/BaseTable.vue
@@ -220,4 +220,4 @@
}
}
}
-</script>
\ No newline at end of file
+</script>
diff --git a/admin/src/components/common/GlobalWindow.vue b/admin/src/components/common/GlobalWindow.vue
index 504f62f..d8c67a2 100644
--- a/admin/src/components/common/GlobalWindow.vue
+++ b/admin/src/components/common/GlobalWindow.vue
@@ -8,6 +8,7 @@
:close-on-press-escape="false"
:wrapper-closable="false"
:append-to-body="true"
+ :destroy-on-close="true"
:modal="true"
@close="close"
>
diff --git a/admin/src/components/common/Header.vue b/admin/src/components/common/Header.vue
index a286282..a812472 100644
--- a/admin/src/components/common/Header.vue
+++ b/admin/src/components/common/Header.vue
@@ -4,7 +4,6 @@
<h2>
<i class="el-icon-s-unfold" v-if="menuData.collapse" @click="switchCollapseMenu(null)"></i>
<i class="el-icon-s-fold" v-else @click="switchCollapseMenu(null)"></i>
- {{title}}
</h2>
<tagsview class="tags"></tagsview>
</div>
@@ -41,7 +40,6 @@
h2 {
flex-shrink: 0;
line-height: 48px;
- width: 240px;
font-size: 19px;
color: #606263;
font-weight: normal;
diff --git a/admin/src/components/common/Menu.vue b/admin/src/components/common/Menu.vue
index 0b0df39..75a48d1 100644
--- a/admin/src/components/common/Menu.vue
+++ b/admin/src/components/common/Menu.vue
@@ -44,13 +44,12 @@
} else {
this.$store.commit('pushtags', menuConfig)
}
- // console.log(menuConfig.index);
return menuConfig.index
},
// 榛樿灞曞紑鐨勮彍鍗昳ndex
defaultOpeneds() {
// return this.menuData.list.map(menu => menu.index)
-
+
return [this.menuData.list[0].index]
}
},
diff --git a/admin/src/components/common/tagsview.vue b/admin/src/components/common/tagsview.vue
index 6f66b69..76749bc 100644
--- a/admin/src/components/common/tagsview.vue
+++ b/admin/src/components/common/tagsview.vue
@@ -151,8 +151,8 @@
},
// 閫氳繃鍒ゆ柇璺敱涓�鑷磋繑鍥炲竷灏斿�兼坊鍔燾lass锛屾坊鍔犻珮浜晥鏋�
isActive(route,params, index) {
- const res =(route === this.$route.path && params== this.$route.query.param)
- return res
+ // const res =(route === this.$route.path && params== this.$route.query.param)
+ return route === this.$route.path
},
scrollToStart() {
const tagsDiv = document.getElementById('tags-box')
@@ -237,6 +237,7 @@
//鏍囩楂樹寒
.active {
color: #2080f7;
+ box-sizing: border-box;
border-bottom: 2px solid #2080f7;
}
//鍙抽敭鑿滃崟鏍峰紡
diff --git a/admin/src/layouts/AppLayout.vue b/admin/src/layouts/AppLayout.vue
index b13f5dc..469c4ab 100644
--- a/admin/src/layouts/AppLayout.vue
+++ b/admin/src/layouts/AppLayout.vue
@@ -7,7 +7,7 @@
<Menu/>
</el-aside>
<el-main>
- <header>
+ <header style="background-color: #ffffff;">
<AppHeader/>
</header>
<main ref="containerS">
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
index 343b02b..a5e0fe1 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
@@ -118,6 +118,10 @@
})
},
methods: {
+ open(title) {
+ this.title = title
+ this.visible = true
+ },
__confirmCreate () {
this.$refs.form.validate((valid) => {
if (!valid) {
@@ -201,7 +205,7 @@
detailById(id).then(res => {
this.form = res
if (res.userIds) {
- this.$set(this.form, 'userIds', Number(res.userIds))
+ this.$set(this.form, 'userIds', [...res.userIds.split(',').map(item => Number(item))])
}
if (res.startTime) {
this.$set(this.form, 'selTime', [res.startTime, res.endTime])
diff --git a/admin/src/views/Inspection/components/taskDetail.vue b/admin/src/views/Inspection/components/taskDetail.vue
index a357861..635969f 100644
--- a/admin/src/views/Inspection/components/taskDetail.vue
+++ b/admin/src/views/Inspection/components/taskDetail.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow title="宸℃浠诲姟璇︽儏" width="800px" :showConfirm="false" :visible.sync="isShowModal">
+ <GlobalWindow title="宸℃浠诲姟璇︽儏" width="100%" :showConfirm="false" :visible.sync="isShowModal">
<QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getDetail(1)" @clear="clear" />
<el-table v-loading="loading" :data="list" stripe>
<el-table-column prop="pointName" label="宸℃鐐瑰悕绉�" min-width="100" show-overflow-tooltip />
@@ -20,11 +20,11 @@
<el-table-column prop="" label="宸℃闄勪欢" min-width="100" show-overflow-tooltip>
<template v-slot="{ row }">
<div class="value" v-if="row.multifileList != null && row.multifileList.length">
- <div v-for="item in row.multifileList" :key="item.id" style="display: inline;margin-right: 20px">
+ <div v-for="item in row.multifileList.slice(0, 1)" :key="item.id" style="display: inline;margin-right: 20px">
<video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls preload="auto"
style="width: 60px;height: 60px;object-fit: contain;" :src="item.fileurlFull" />
<el-image v-else-if="item.fileurlFull" style="width:60px; height: 60px" :src="item.fileurlFull"
- :preview-src-list="[item.fileurlFull]">
+ :preview-src-list="row.multifileList.map(item1 => item1.fileurlFull)">
</el-image>
</div>
</div>
diff --git a/admin/src/views/client/category.vue b/admin/src/views/client/category.vue
index 5999ff0..16a45b4 100644
--- a/admin/src/views/client/category.vue
+++ b/admin/src/views/client/category.vue
@@ -97,7 +97,7 @@
}).then(res => {
this.loading = false
this.dataList = res.records || []
- this.pagination.total = res.total || 0
+ this.tableData.pagination.total = res.total || 0
}, () => {
this.loading = false
})
diff --git a/admin/src/views/client/staffList.vue b/admin/src/views/client/staffList.vue
index e3be587..fdb031d 100644
--- a/admin/src/views/client/staffList.vue
+++ b/admin/src/views/client/staffList.vue
@@ -70,6 +70,7 @@
import OperaYwCustomerWindow from './components/staffEdit.vue'
import { fetchList } from '@/api/client/ywCustomer'
import { updateStatusById } from '@/api/business/member'
+import { ywExportExcel } from '@/api/client/staff'
import { Message } from 'element-ui'
export default {
name: 'YwCustomer',
@@ -113,6 +114,28 @@
this.clientList = res.records || []
})
},
+ exportExcel () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ this.isWorking.export = true
+ ywExportExcel({
+ page: this.tableData.pagination.pageIndex,
+ capacity: 1000000,
+ model: this.searchForm,
+ sorts: this.tableData.sorts
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.export = false
+ })
+ })
+ .catch(() => {})
+ },
}
}
</script>
diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue
index 5683288..47292ea 100644
--- a/admin/src/views/contract/components/contractDetail.vue
+++ b/admin/src/views/contract/components/contractDetail.vue
@@ -46,7 +46,7 @@
<div class="val">{{ info.creatorName }}</div>
</div>
<div class="item">
- <div class="la">鍚堝悓绉熻祦鏁�</div>
+ <div class="la">鍚堝悓绉熻祦闈㈢Н</div>
<div class="val">{{ info.totalArea }}銕�</div>
</div>
<div class="item">
@@ -81,12 +81,12 @@
<el-table-column prop="buildingName" label="妤煎畤鍚嶇О" show-overflow-tooltip />
<el-table-column prop="" label="妤煎眰/鎴垮彿" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.floorName}}/{{row.code}}
+ {{row.floorName}}/{{row.roomNum}}
</template>
</el-table-column>
<el-table-column prop="area" label="闈㈢Н" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.area}}銕�
+ {{row.rentArea}}銕�
</template>
</el-table-column>
</el-table>
diff --git a/admin/src/views/contract/components/pendingBills.vue b/admin/src/views/contract/components/pendingBills.vue
index b694d96..64496d5 100644
--- a/admin/src/views/contract/components/pendingBills.vue
+++ b/admin/src/views/contract/components/pendingBills.vue
@@ -34,8 +34,10 @@
border
style="width: 100%">
<el-table-column
- prop="date"
label="璐﹀崟缂栧彿">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="handleDetail(row.id)">{{row.code}}</el-button>
+ </template>
</el-table-column>
<el-table-column
label="璐圭敤绫诲瀷">
@@ -65,16 +67,24 @@
label="瀹炴敹/浠橀噾棰�">
</el-table-column>
<el-table-column
- prop="needReceivableFee"
label="闇�鏀�/浠橀噾棰�">
+ <template slot-scope="{row}">
+ <div style="display: flex; align-items: center;">
+ <el-tag type="success" v-if="row.needReceivableFee > 0">鏀�</el-tag>
+ <el-tag type="warning" v-if="row.needReceivableFee < 0">浠�</el-tag>
+ <span>{{Math.abs(row.needReceivableFee)}}</span>
+ </div>
+ </template>
</el-table-column>
<el-table-column
- prop="receivableFee"
+ prop="planPayDate"
label="搴旀敹/浠樻棩鏈�">
</el-table-column>
</el-table>
</div>
</div>
+ <!-- 璐﹀崟璇︽儏 -->
+ <Detail ref="DetailRef" />
</GlobalWindow>
</template>
@@ -82,10 +92,12 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
import { getWaitDealList } from '@/api/ywContractBill'
+ import Detail from '../../finance/components/bullDetail.vue'
export default {
name: 'pendingBills',
components: {
- GlobalWindow
+ GlobalWindow,
+ Detail
},
extends: BaseOpera,
data () {
@@ -101,6 +113,9 @@
this.info = res
this.visible = true
})
+ },
+ handleDetail (id) {
+ this.$refs.DetailRef.open('璐﹀崟璇︽儏', id)
}
}
}
diff --git a/admin/src/views/contract/components/terminateLease.vue b/admin/src/views/contract/components/terminateLease.vue
index 0f0fd5d..5520b8a 100644
--- a/admin/src/views/contract/components/terminateLease.vue
+++ b/admin/src/views/contract/components/terminateLease.vue
@@ -27,6 +27,7 @@
<el-date-picker
v-model="form.btDate"
type="date"
+ :picker-options="pickerOptions"
@change="changeBtDate"
value-format="yyyy-MM-dd"
placeholder="璇烽�夋嫨">
@@ -56,12 +57,12 @@
<el-table-column prop="projectName" label="椤圭洰鍚嶇О" show-overflow-tooltip />
<el-table-column label="鎴挎簮鍚嶇О" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.buildingName}}/{{row.code}}
+ {{row.buildingName}}/{{row.roomNum}}
</template>
</el-table-column>
<el-table-column label="绉熻祦闈㈢Н(銕�)" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.area}}銕�
+ {{row.rentArea}}銕�
</template>
</el-table-column>
</el-table>
@@ -96,7 +97,7 @@
<i class="el-icon-delete"
style="color: red; margin-left: 10px; font-size: 18px; cursor: pointer;"
@click="deleRow(scope.$index)"
- v-if="scope.row.date && scope.row.date.length !==0">
+ v-if="scope.row.isDele">
</i>
</div>
</template>
@@ -250,7 +251,7 @@
},
list: [],
-
+ pickerOptions: {},
agentList: [],
receivable: '',
@@ -263,6 +264,14 @@
open (title, info) {
this.title = title
this.info = info
+ this.pickerOptions = {
+ disabledDate(time) {
+ // 濡傛灉娌℃湁鍚庨潰鐨� -8.64e7 灏辨槸涓嶅彲浠ラ�夋嫨浠婂ぉ鐨�
+ const beginDate = new Date(info.startDate).getTime() - 8.64e7
+ const endDate = new Date(info.endDate).getTime()
+ return beginDate > time.getTime() || endDate < time.getTime()
+ }
+ }
this.form.id = info.id
this.form.btSignDate = this.getDay()
this.form.btUserId = this.userInfo.id
@@ -370,9 +379,9 @@
})
},
getObjS (obj) {
- console.log(obj)
obj.startDate = obj.startDate.substring(0, 10)
obj.endDate = obj.endDate.substring(0, 10)
+ obj.isDele = true
this.info.terminateList.push(obj)
this.countData()
},
diff --git a/admin/src/views/contract/components/terminationAgreement.vue b/admin/src/views/contract/components/terminationAgreement.vue
index 835fe12..d870309 100644
--- a/admin/src/views/contract/components/terminationAgreement.vue
+++ b/admin/src/views/contract/components/terminationAgreement.vue
@@ -18,10 +18,14 @@
<el-table-column prop="buildingName" label="妤煎畤鍚嶇О" show-overflow-tooltip />
<el-table-column label="妤煎眰/鎴垮彿" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.floorName}}{{row.roomNum}}
+ {{row.floorName}}/{{row.roomNum}}
</template>
</el-table-column>
- <el-table-column prop="area" label="闈㈢Н" show-overflow-tooltip></el-table-column>
+ <el-table-column label="闈㈢Н" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ {{row.rentArea}}銕�
+ </template>
+ </el-table-column>
</el-table>
</div>
<div class="title">閫�绉熶俊鎭�</div>
@@ -43,7 +47,7 @@
</div>
<div class="item">
<div class="la">鍗忚绛捐鏃ユ湡</div>
- <div class="val">{{ info.signDate }}銕�</div>
+ <div class="val">{{ info.signDate }}</div>
</div>
<div class="item">
<div class="la">閫�绉熷師鍥�</div>
diff --git a/admin/src/views/finance/collectionSettings.vue b/admin/src/views/finance/collectionSettings.vue
index 9a1ec04..fce513d 100644
--- a/admin/src/views/finance/collectionSettings.vue
+++ b/admin/src/views/finance/collectionSettings.vue
@@ -20,28 +20,41 @@
<el-tooltip style="margin-right: 10px; margin-top: 10px; flex-shrink: 0;" effect="dark" content="鍖呭惈绉熻祦璐广�佺墿涓氳垂銆佺璧佹娂閲戙�佺墿涓氭娂閲�" placement="bottom-start">
<i class="el-icon-question"></i>
</el-tooltip>
- <el-upload
- style="flex: 1;"
- class="upload-demo"
- :action="uploadImgUrl"
- :data="uploadData"
- :on-success="uploadAvatarSuccess"
- :on-remove="handleRemove"
- :file-list="form.leaseTemp">
- <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
- </el-upload>
+ <div style="display: flex; align-items: center;">
+ <el-button type="text" v-for="(item, index) in form.leaseTemp" :key="index" style="margin-right: 10px;" @click="openFile(item.url)">{{item.name}}</el-button>
+ <el-upload
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :data="uploadData"
+ :on-success="uploadAvatarSuccess"
+ :on-remove="handleRemove">
+ <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ </div>
+<!-- <el-upload-->
+<!-- style="flex: 1;"-->
+<!-- class="upload-demo"-->
+<!-- :action="uploadImgUrl"-->
+<!-- :data="uploadData"-->
+<!-- :on-success="uploadAvatarSuccess"-->
+<!-- :on-remove="handleRemove"-->
+<!-- :file-list="form.leaseTemp">-->
+<!-- <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>-->
+<!-- </el-upload>-->
</div>
</el-form-item>
<el-form-item label="鍏朵粬閫氱煡鍗曟ā鏉�">
- <el-upload
- class="upload-demo"
- :action="uploadImgUrl"
- :data="uploadData"
- :on-success="uploadAvatarSuccess1"
- :on-remove="handleRemove1"
- :file-list="form.otherTemp">
- <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
- </el-upload>
+ <div style="display: flex; align-items: center;">
+ <el-button type="text" v-for="(item, index) in form.otherTemp" :key="index" style="margin-right: 10px;" @click="openFile(item.url)">{{item.name}}</el-button>
+ <el-upload
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :data="uploadData"
+ :on-success="uploadAvatarSuccess1"
+ :on-remove="handleRemove1">
+ <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ </div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submit" :disabled="loading" :loading="loading">淇濆瓨</el-button>
@@ -93,6 +106,9 @@
this.loading = false
})
},
+ openFile(url) {
+ window.open(url)
+ },
handleRemove(e) {
this.form.leaseTemp = []
},
@@ -112,8 +128,8 @@
.then(res => {
this.form.smsTemp = res.smsTemp
this.form.emailTemp = res.emailTemp
- this.form.leaseTemp = [{ url: res.leaseTemp.url, name: res.leaseTemp.title }]
- this.form.otherTemp = [{ url: res.otherTemp.url, name: res.otherTemp.title }]
+ this.form.leaseTemp = [{ url: res.leaseTemp.url, ...res.leaseTemp, name: res.leaseTemp.title }]
+ this.form.otherTemp = [{ url: res.otherTemp.url, ...res.otherTemp, name: res.otherTemp.title }]
})
}
}
diff --git a/admin/src/views/finance/components/bullDetail.vue b/admin/src/views/finance/components/bullDetail.vue
index 976f0a0..70cfe50 100644
--- a/admin/src/views/finance/components/bullDetail.vue
+++ b/admin/src/views/finance/components/bullDetail.vue
@@ -9,7 +9,7 @@
<el-tag type="info" v-if="info.status === 1">鍏抽棴</el-tag>
</div>
<div style="display: flex; align-items: center;">
- <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', [info.id])">鍙戦�佺即璐归�氱煡</el-button>
+ <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', [info.id])" v-if="info.isOverdue === 1 && info.billType === 0">鍙戦�佺即璐归�氱煡</el-button>
<el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按', {
billType: returnBillType(),
billId: info.id,
diff --git a/admin/src/views/finance/overdueBills.vue b/admin/src/views/finance/overdueBills.vue
index 41c000b..c3ed810 100644
--- a/admin/src/views/finance/overdueBills.vue
+++ b/admin/src/views/finance/overdueBills.vue
@@ -7,7 +7,7 @@
<div class="tab" :class="{ active: billType === 1 }" @click="tabsClick(1)">閫炬湡浠樻璐﹀崟</div>
</div>
<div class="btns">
- <el-button :disabled="ids.length === 0" @click="batchCall">鎵归噺鍌即</el-button>
+ <el-button :disabled="ids.length === 0" @click="batchCall" v-if="billType === 0">鎵归噺鍌即</el-button>
</div>
</div>
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange" stripe>
@@ -64,18 +64,21 @@
<template slot-scope="{row}">
<span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
<span v-if="row.type === 1">鑷缓璐﹀崟</span>
+ <span v-if="row.type === 2">閫�娆捐处鍗�</span>
</template>
</el-table-column>
<el-table-column label="鐭俊鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip>
<template slot-scope="{row}">
- <span v-if="row.isSendSms === 0">鍚�</span>
- <span v-if="row.isSendSms === 1">鏄�</span>
+ <span v-if="row.isSendSms === 0">鏈彂閫�</span>
+ <span v-if="row.isSendSms === 1" style="color: green;">鍙戦�佹垚鍔�</span>
+ <span v-if="row.isSendSms === 2" style="color: red;">鍙戦�佸け璐�</span>
</template>
</el-table-column>
<el-table-column label="閭欢鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip>
<template slot-scope="{row}">
- <span v-if="row.isSendEmail === 0">鍚�</span>
- <span v-if="row.isSendEmail === 1">鏄�</span>
+ <span v-if="row.isSendEmail === 0">鏈彂閫�</span>
+ <span v-if="row.isSendEmail === 1" style="color: green;">鍙戦�佹垚鍔�</span>
+ <span v-if="row.isSendEmail === 2" style="color: red;">鍙戦�佸け璐�</span>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" min-width="120" fixed="right">
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 32818b0..51f20e9 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -43,6 +43,9 @@
</div>
<i class="el-icon-arrow-right"></i>
</div>
+ <div class="list_item1"></div>
+ <div class="list_item1"></div>
+ <div class="list_item1"></div>
</div>
</div>
</div>
@@ -75,14 +78,14 @@
</div>
<div class="main_right_rc">
<div class="main_right_rc_title">褰撴棩鏃ョ▼锛坽{dataList.length}}锛�</div>
- <div class="main_right_rc_list">
+ <div class="main_right_rc_list" v-loading="loading">
<div class="main_right_rc_list_row" v-for="(item, index) in dataList" :key="index">
<div class="top">
<div class="top_left">
<div class="top_left_dian"></div>
<div class="top_left_title">{{item.title}}</div>
</div>
- <div class="top_date">{{item.createDate}}</div>
+ <div class="top_date">{{item.param1}}</div>
</div>
<div class="bottom">
{{item.content}}
@@ -109,7 +112,8 @@
nian: '',
yue: '',
obj: {},
- dataList: []
+ dataList: [],
+ loading: false
}
},
components: { CommonFunctions, Calendar },
@@ -137,6 +141,7 @@
})
},
clickDay(e) {
+ this.loading = true
let date = e.replace("/\\//g", "-")
let arr = this.markDateMore.filter(item => {
if (item.date === date) {
@@ -148,6 +153,7 @@
} else {
this.dataList = []
}
+ this.loading = false
},
// 鑾峰彇鏃ョ▼
getMonthNoticess() {
@@ -307,6 +313,10 @@
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
+ .list_item1 {
+ width: 24%;
+ height: 0;
+ }
.list_item {
cursor: pointer;
width: 24%;
@@ -435,8 +445,8 @@
max-width: 100%;
}
::v-deep .wh_content_item .wh_isToday {
- background-color: #3E80EF;
- color: #fff;
+ background-color: rgba(62, 128, 239, 0.47);
+ color: #ffffff;
}
::v-deep .wh_item_date:hover {
background-color: #3E80EF;
diff --git a/admin/src/views/operation/components/deviceDetail.vue b/admin/src/views/operation/components/deviceDetail.vue
index 02633b3..1dcab14 100644
--- a/admin/src/views/operation/components/deviceDetail.vue
+++ b/admin/src/views/operation/components/deviceDetail.vue
@@ -143,10 +143,12 @@
border
style="width: 100%">
<el-table-column
+ :key="Date.now()"
prop="realName"
label="杩愮淮浜哄憳">
</el-table-column>
<el-table-column
+ :key="Date.now()"
label="璁惧鐘舵��">
<template slot-scope="{row}">
<span v-if="row.status === 0">姝e父</span>
@@ -155,14 +157,17 @@
</template>
</el-table-column>
<el-table-column
- prop="remark"
+ :key="Date.now()"
+ prop="content"
label="杩愮淮澶囨敞">
</el-table-column>
<el-table-column
+ :key="Date.now()"
prop="dealDate"
label="杩愮淮鏃堕棿">
</el-table-column>
<el-table-column
+ :key="Date.now()"
label="鎿嶄綔">
<template slot-scope="{row}">
<el-button type="text" @click="handleDetail(row)">鏌ョ湅璇︽儏</el-button>
@@ -185,24 +190,34 @@
border
style="width: 100%">
<el-table-column
+ :key="Date.now()"
prop="schemeTitle"
label="璁″垝鍚嶇О">
</el-table-column>
<el-table-column
+ :key="Date.now()"
prop="taskCode"
label="浠诲姟缂栧彿">
</el-table-column>
<el-table-column
+ :key="Date.now()"
label="浠诲姟鏃堕棿">
<template slot-scope="{row}">
{{row.startDate}} ~ {{row.endDate}}
</template>
</el-table-column>
<el-table-column
+ :key="Date.now()"
prop="realname"
label="宸℃浜�">
</el-table-column>
<el-table-column
+ :key="Date.now()"
+ prop="dealDate"
+ label="宸℃鏃堕棿">
+ </el-table-column>
+ <el-table-column
+ :key="Date.now()"
label="宸℃缁撴灉">
<template slot-scope="{row}">
<span v-if="row.dealStatus === 0">姝e父</span>
@@ -210,6 +225,7 @@
</template>
</el-table-column>
<el-table-column
+ :key="Date.now()"
label="宸℃闄勪欢">
<template slot-scope="{row}">
<el-image
@@ -221,6 +237,7 @@
</template>
</el-table-column>
<el-table-column
+ :key="Date.now()"
prop="content"
label="宸℃璇存槑">
</el-table-column>
@@ -284,7 +301,7 @@
}
},
getDetail() {
- this.this.activeTabs = 0
+ this.activeTabs = 0
const { id } = this
detailById(id).then(res => {
this.info = res
@@ -328,6 +345,7 @@
capacity: this.pageSize,
page: this.page,
model: {
+ status: 1,
deviceId: this.id
}
}).then(res => {
diff --git a/admin/src/views/operation/components/deviceEdit.vue b/admin/src/views/operation/components/deviceEdit.vue
index 1b125ed..f727966 100644
--- a/admin/src/views/operation/components/deviceEdit.vue
+++ b/admin/src/views/operation/components/deviceEdit.vue
@@ -197,7 +197,7 @@
floorId: '',
roomId: '',
- supplier: [],
+ supplier: '',
buyDate: '',
content: '',
supplierLinker: '',
@@ -228,7 +228,6 @@
created() {
this.initData()
this.getProjectLists()
- console.log(this.userInfo)
},
methods: {
getHouseVal(e) {
@@ -326,13 +325,17 @@
detailById(id).then(res => {
this.param = res
this.param.rooms = [res.projectId, res.buildingId, res.floorId, res.roomId]
- this.param.multifileList = res.multifileList.map(item => {
- return {
- ...item,
- createUserName: item.userName,
- createTime: item.createDate
- }
- })
+ console.log(this.param.rooms)
+ if (res.multifileList && res.multifileList.length > 0) {
+ this.param.multifileList = res.multifileList.map(item => {
+ return {
+ ...item,
+ createUserName: item.userName,
+ createTime: item.createDate
+ }
+ })
+ }
+ this.changeProject()
this.getHouseTree()
const cateId = this.param.cateId || ''
setTimeout(() => {
diff --git a/admin/src/views/operation/record.vue b/admin/src/views/operation/record.vue
index 37c421a..a7f872b 100644
--- a/admin/src/views/operation/record.vue
+++ b/admin/src/views/operation/record.vue
@@ -4,7 +4,7 @@
<div class="mt20">
<el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
v-permissions="['business:ywpatrolline:create']">鏂板缓</el-button>
- <el-button type="primary" @click="handleEx" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>
+ <el-button type="primary" @click="exportExcel" :loading="isWorking.export" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>
</div>
<el-table v-loading="loading" :data="list" stripe>
<el-table-column prop="realName" label="杩愮淮浜�" min-width="100" show-overflow-tooltip />
@@ -38,7 +38,8 @@
import QueryForm from '@/components/common/QueryForm'
import Edit from './components/maintain.vue'
import Detail from './components/maintainDetail.vue'
-import { fetchList, deleteById } from '@/api/Inspection/deviceRecord'
+import { fetchList, deleteById, exportExcel } from '@/api/Inspection/deviceRecord'
+import { ywExportExcel } from '@/api/client/staff'
export default {
components: {
Pagination,
@@ -73,6 +74,9 @@
},
],
online: true
+ },
+ isWorking: {
+ export: false
}
}
},
@@ -100,9 +104,6 @@
this.loading = false
})
},
- handleEx() {
-
- },
handleEdit(row) {
this.showEdit = true
this.$nextTick(() => {
@@ -111,7 +112,6 @@
this.$refs.EditRef.getDetail(row.id)
}
})
-
},
handleDetail(row) {
this.$refs.DetailRef.visible = true
@@ -139,7 +139,28 @@
handleSizeChange(capacity) {
this.pagination.pageSize = capacity
this.getList()
- }
+ },
+ exportExcel () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ this.isWorking.export = true
+ exportExcel({
+ page: this.pagination.page,
+ capacity: 1000000,
+ model: this.filters
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.export = false
+ })
+ })
+ .catch(() => {})
+ },
}
}
</script>
diff --git a/admin/src/views/project/components/houseDetails.vue b/admin/src/views/project/components/houseDetails.vue
index 394d64a..d3c18b0 100644
--- a/admin/src/views/project/components/houseDetails.vue
+++ b/admin/src/views/project/components/houseDetails.vue
@@ -6,10 +6,10 @@
width="100%">
<div class="right">
<div class="right_head">
- <span>{{info.roomNum}}</span>
- <el-tag type="success" v-if="info.leaseStatus === 0">寰呯璧�</el-tag>
- <el-tag type="success" v-if="info.leaseStatus === 1">宸茬璧�</el-tag>
- <el-tag type="success" v-if="info.leaseStatus === 2">鏈紑鍚璧�</el-tag>
+ <span class="right_head_title">{{info.roomNum}}</span>
+ <el-tag type="info" v-if="info.leaseStatus == 0">寰呯璧�</el-tag>
+ <el-tag type="success" v-if="info.leaseStatus == 1">宸茬璧�</el-tag>
+ <el-tag type="info" v-if="info.leaseStatus == 2">鏈紑鍚璧�</el-tag>
</div>
<div class="right_cate">
<el-tabs v-model="activeName" @tab-click="handleClick">
@@ -64,9 +64,6 @@
<el-tab-pane label="绉熷鍚堝悓" name="project">
<div class="xm">
<el-card style="margin-top: 20px;">
- <div slot="header" class="clearfix">
- <span>褰撳墠鍦ㄧ鍚堝悓</span>
- </div>
<div class="xm_table">
<div style="width: 100%; display: flex; align-items: center; margin-bottom: 15px;">
<el-input v-model="form.code" style="width: 300px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
@@ -80,13 +77,17 @@
<el-table-column
label="鍚堝悓缂栧彿">
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.ContractDetailRef.open('鍚堝悓璇︽儏', row.id)" v-if="row.status === 1">{{row.code}}</el-button>
- <el-button type="text" v-else>{{row.code}}</el-button>
+ <el-button type="text" @click="$refs.ContractDetailRef.open('鍚堝悓璇︽儏', row.id)">{{row.code}}</el-button>
</template>
</el-table-column>
<el-table-column
- prop="renterName"
label="瀹㈡埛鍚嶇О">
+ <template slot-scope="{row}">
+ <div style="display: flex; align-items: center;">
+ {{row.renterName}}
+ <el-tag type="success" v-if="[1,2,3].includes(row.status)">褰撳墠绉熸埛</el-tag>
+ </div>
+ </template>
</el-table-column>
<el-table-column
prop="startDate"
@@ -114,10 +115,6 @@
<el-table-column
prop="signDate"
label="绛捐鏃�">
- </el-table-column>
- <el-table-column
- prop="address"
- label="鍚堝悓鏉ユ簮">
</el-table-column>
<el-table-column
label="鍚堝悓鐘舵��">
@@ -177,14 +174,15 @@
value: 'id',
children: 'childCategoryList'
}" />
- <el-select v-model="form.status" style="width: 150px; margin-right: 15px;" placeholder="宸ュ崟鐘舵��">
- <el-option label="鍚敤" :value="0"></el-option>
- <el-option label="绂佺敤" :value="1"></el-option>
+ <el-select v-model="form.dealStatus" style="width: 150px; margin-right: 15px;" placeholder="宸ュ崟鐘舵��">
+ <el-option label="寰呮寚娲�" :value="0"></el-option>
+ <el-option label="宸叉寚娲�" :value="1"></el-option>
+ <el-option label="宸插鐞�" :value="2"></el-option>
</el-select>
<el-button type="primary" @click="getFetchList">鏌ヨ</el-button>
<el-button @click="clear">娓呯┖</el-button>
</div>
- <el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟')">鏂板宸ュ崟</el-button>
+ <el-button type="primary" @click="addWorkOrder">鏂板宸ュ崟</el-button>
</div>
<el-table
:data="tableData"
@@ -248,10 +246,14 @@
<div class="xm">
<div class="xm_chat">
<el-card class="xm_chat_row">
- <div id="chat1"></div>
+ <div class="xm_chat_row_info">
+ <span>鎬昏</span>
+ <span>{{amount}}</span>
+ </div>
+ <div id="chat1" v-if="activeName === 'third'"></div>
</el-card>
<el-card class="xm_chat_row">
- <div id="chat2"></div>
+ <div id="chat2" v-if="activeName === 'third'"></div>
</el-card>
</div>
<el-card style="margin-top: 20px;">
@@ -322,80 +324,6 @@
</el-card>
</div>
</el-tab-pane>
- <el-tab-pane label="璧勪骇淇℃伅" name="fourth">
- <div class="xm">
- <el-card>
- <div slot="header" class="clearfix">
- <span>璧勪骇娓呭崟</span>
- </div>
- <div class="xm_table">
- <div class="xm_table_search">
- <div class="xm_table_search_left">
- <el-input v-model="form.code" placeholder="璇疯緭鍏ヨ祫浜у悕绉�/缂栫爜" style="width: 200px; margin-right: 15px;"></el-input>
- <el-select v-model="value" style="width: 200px; margin-right: 15px;" placeholder="璧勪骇鍒嗙被">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- <el-button type="primary" @click="getPropertyLists">鏌ヨ</el-button>
- <el-button @click="clear">娓呯┖</el-button>
- </div>
- <el-button type="primary" @click="$refs.newMaterial.open('鏂板缓鐗╂枡')">鏂板</el-button>
- </div>
- <el-table
- :data="tableData"
- border
- v-loading="loading"
- style="width: 100%">
- <el-table-column
- prop="code"
- label="璧勪骇缂栫爜">
- </el-table-column>
- <el-table-column
- prop="name"
- label="璧勪骇鍚嶇О">
- </el-table-column>
- <el-table-column
- prop="qrcode"
- label="鏉$爜">
- </el-table-column>
- <el-table-column
- prop="brand"
- label="鍝佺墝">
- </el-table-column>
- <el-table-column
- prop="attr"
- label="瑙勬牸鍨嬪彿">
- </el-table-column>
- <el-table-column
- prop="unitName"
- label="鍗曚綅">
- </el-table-column>
- <el-table-column
- label="搴撳瓨鏁伴噺">
- <template v-slot="scope">
- <span>{{ scope.row.maxStock }} ~ {{ scope.row.minStock }}</span>
- </template>
- </el-table-column>
- </el-table>
- <div class="xm_table_f">
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="page"
- :page-sizes="[10, 20, 30, 40]"
- :page-size="pageTotal"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </div>
- </div>
- </el-card>
- </div>
- </el-tab-pane>
</el-tabs>
</div>
</div>
@@ -448,18 +376,21 @@
areaIds: [],
cateId: '',
status: '',
- name: ''
+ name: '',
+ dealStatus: ''
},
cateList: [],
categaryList: [],
deviceList: [],
showDetail: false,
- showEdit1: false
+ showEdit1: false,
+ amount: 0
}
},
methods: {
open (title, id) {
this.title = title
+ this.activeName = 'houseinfo'
this.houseId = id
detailById(id)
.then(res => {
@@ -470,7 +401,11 @@
handleEdit(row) {
this.showEdit1 = true
this.$nextTick(() => {
+ this.$refs.EditRef.param.projectId = this.info.projectId
+ this.$refs.EditRef.param.rooms = [this.info.projectId, this.info.buildingId, this.info.floor, this.info.id]
this.$refs.EditRef.isShowModal = true
+ this.$refs.EditRef.changeProject()
+ this.$refs.EditRef.getHouseVal([this.info.projectId, this.info.buildingId, this.info.floor, this.info.id])
})
},
handleDetail(row) {
@@ -481,6 +416,17 @@
this.$refs.DetailRef.getDetail()
})
},
+ addWorkOrder() {
+ this.$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟', {
+ rooms: [this.info.projectId, this.info.buildingId, this.info.floor, this.info.id],
+ areaType: 0,
+ content: '',
+ projectId: this.info.projectId,
+ buildingId: this.info.buildingId,
+ floorId: this.info.floor,
+ roomId: this.info.id
+ })
+ },
// 鑾峰彇璁惧鐘舵��
getDevice() {
getDeviceStatus({ roomId: this.houseId })
@@ -488,9 +434,10 @@
this.$nextTick(() => {
this.deviceList = [
{ value: res.workAmount || 0, name: '姝e父' },
- { value: res.exceptionAmount || 0, name: '寮傚父' },
+ { value: res.exceptionAmount || 0, name: '鎹熷潖' },
{ value: res.errAmount || 0, name: '鎶ュ簾' }
]
+ this.amount = res.amount
this.reand()
})
})
@@ -562,6 +509,7 @@
this.form.status = ''
this.form.areaIds = []
this.form.cateId = ''
+ this.form.dealStatus = ''
this.form.name = ''
if (this.propsName === 'project') {
this.getTenantContract()
@@ -590,7 +538,7 @@
page: 1,
model: {
roomId: this.houseId,
- status: this.form.status,
+ dealStatus: this.form.dealStatus,
cateId: this.form.cateId
}
}).then(res => {
@@ -607,7 +555,7 @@
capacity: this.pageTotal,
page: this.page,
model: {
- roomIds: [this.houseId],
+ roomId: this.houseId,
code: this.form.code
}
}).then(res => {
@@ -637,13 +585,7 @@
{
name: '璁惧鐘舵��',
type: 'pie',
- radius: ['40%', '80%'],
- label: {
- show: true,
- position: 'center',
- fontWeight: 'bold',
- fontSize: 22
- },
+ radius: ['50%', '80%'],
data: this.deviceList
}
]
@@ -654,53 +596,24 @@
var chartDom = document.getElementById('chat2');
var myChart = echarts.init(chartDom);
var option;
- const rawData = [
- [100, 302, 301, 334, 390, 330, 320],
- [320, 132, 101, 134, 90, 230, 210],
- [220, 182, 191, 234, 290, 330, 310],
- [150, 212, 201, 154, 190, 330, 410],
- [820, 832, 901, 934, 1290, 1330, 1320]
- ];
- const totalData = [];
- for (let i = 0; i < rawData[0].length; ++i) {
- let sum = 0;
- for (let j = 0; j < rawData.length; ++j) {
- sum += rawData[j][i];
- }
- totalData.push(sum);
- }
- const series = [
- 'Direct',
- 'Mail Ad',
- 'Affiliate Ad',
- 'Video Ad',
- 'Search Engine'
- ].map((name, sid) => {
- return {
- name,
- type: 'bar',
- stack: 'total',
- barWidth: '60%',
- data: rawData[sid].map((d, did) =>
- totalData[did] <= 0 ? 0 : d / totalData[did]
- )
- };
- });
- let seriesArr = this.categaryList.map(item => {
- return {
- name: item.cateName,
- type: 'bar',
- stack: 'total',
- barWidth: '60%',
- data: item.ywDeviceCateDataVOList.map((child) =>
- child.deviceAmount
- )
- }
+ let seriesArr = []
+ this.categaryList.forEach((one, index) => {
+ one.ywDeviceCateDataVOList.forEach(two => {
+ let data = []
+ this.categaryList.forEach(item => {
+ data.push(0)
+ })
+ data[index] = two.deviceAmount
+ seriesArr.push({
+ name: two.cateName,
+ type: 'bar',
+ barGap:-1,
+ stack: one.cateName,
+ data
+ })
+ })
})
let xAxisData = this.categaryList.map(item => item.cateName)
- console.log(series)
- console.log(seriesArr)
- console.log(xAxisData)
option = {
title: {
text: '璁惧鏁伴噺鍒嗙被缁熻'
@@ -715,15 +628,30 @@
trigger: 'axis',
axisPointer: {
type: 'shadow'
+ },
+ formatter: params => {
+ var res = `${params[0].name} <br/>`
+ for (const item of params) {
+ if (item.value !== 0) {
+ res += `<span style="background: ${item.color}; height:10px; width: 10px; border-radius: 50%;display: inline-block;margin-right:10px;"></span> ${item.seriesName} 锛�${item.value}<br/>`
+ }
+ }
+ return res
}
},
- yAxis: {
- type: 'value'
- },
- xAxis: {
- type: 'category',
- data: xAxisData
- },
+ xAxis: [
+ {
+ type: 'category',
+ position: 'bottom',
+ data: xAxisData
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ data: Array.from({ length: 100 }, (_, i) => i + 1)
+ }
+ ],
series: seriesArr
};
@@ -739,6 +667,7 @@
this.form.cateId = ''
this.form.status = ''
this.form.name = ''
+ this.form.dealStatus = ''
this.propsName = tab._props.name
if (tab._props.name === 'project') {
this.getTenantContract()
@@ -760,7 +689,7 @@
this.getTenantContract()
} else if (this.propsName === 'second') {
this.getFetchList()
- } else if (tab._props.name === 'third') {
+ } else if (this.propsName === 'third') {
this.getDevicePage()
} else if (this.propsName === 'fourth') {
this.getPropertyLists()
@@ -772,7 +701,7 @@
this.getTenantContract()
} else if (this.propsName === 'second') {
this.getFetchList()
- } else if (tab._props.name === 'third') {
+ } else if (tab.propsName === 'third') {
this.getDevicePage()
} else if (this.propsName === 'fourth') {
this.getPropertyLists()
@@ -791,7 +720,7 @@
width: 100%;
padding: 20px;
box-sizing: border-box;
- span {
+ .right_head_title {
font-size: 16px;
font-weight: bold;
color: black;
@@ -924,6 +853,28 @@
.xm_chat_row {
width: 49%;
height: 300px;
+ position: relative;
+ .xm_chat_row_info {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ span {
+ &:nth-child(1) {
+ font-size: 20px;
+ color: #222222;
+ }
+ &:nth-child(2) {
+ font-size: 28px;
+ color: #222222;
+ font-weight: bold;
+ }
+ }
+ }
#chat1 {
width: 100%;
height: 260px;
diff --git a/admin/src/views/project/housingList.vue b/admin/src/views/project/housingList.vue
index 7d0d874..15b946f 100644
--- a/admin/src/views/project/housingList.vue
+++ b/admin/src/views/project/housingList.vue
@@ -40,9 +40,9 @@
<el-table-column prop="feeArea" label="璁¤垂闈㈢Н(m虏)" min-width="80px"></el-table-column>
<el-table-column prop="" label="绉熻祦鐘舵��" min-width="80px">
<template v-slot="{row}">
- <span v-if="row.leaseStatus == 0">寰呯</span>
- <span v-else-if="row.leaseStatus == 1">宸茬</span>
- <span v-else>-</span>
+ <el-tag type="info" v-if="row.leaseStatus == 0">寰呯</el-tag>
+ <el-tag type="success" v-else-if="row.leaseStatus == 1">宸茬</el-tag>
+ <el-tag type="info" v-else-if="row.leaseStatus == 2">鏈紑鍚璧�</el-tag>
</template>
</el-table-column>
<el-table-column prop="isInvestment" label="鎷涘晢鐘舵��" min-width="60px">
diff --git a/admin/src/views/roomStatus/index.vue b/admin/src/views/roomStatus/index.vue
index 3ef5bef..0bdccb2 100644
--- a/admin/src/views/roomStatus/index.vue
+++ b/admin/src/views/roomStatus/index.vue
@@ -17,7 +17,8 @@
<span class="custom-tree-node" style="width: 100%; display: flex; align-items: center; justify-content: space-between;" slot-scope="{ node, data }">
<span>{{ data.name }}</span>
<span style="color: #2080f7;" v-if="data.lv === 3">
- {{data.leaseStatus === 0 ? '寰呯璧�' : data.leaseStatus === 1 ? '宸茬璧�' : data.leaseStatus === 2 ? '鏈紑鍚璧�' : ''}}
+ <img src="@/assets/icons/ic_key_green.png" style="width: 16px; height: 16px;" v-if="data.leaseStatus === 1" />
+<!-- <img src="@/assets/icons/ic_key_yellow.png" style="width: 16px; height: 16px;" v-else-if="data.leaseStatus === 2" />-->
</span>
</span>
</el-tree>
@@ -33,34 +34,30 @@
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="椤圭洰姒傚喌" name="first" v-if="lv === 0">
<div class="xm">
- <el-card>
- <div class="xm_one">
- <div class="xm_one_row">
- <span>鍦ㄧ鍚堝悓鏁�</span>
- <span>{{projectNums.leaseContractAmount}}</span>
- <span>鍦ㄧ鎴挎簮鏁帮細{{projectNums.leaseRoomAmount}}</span>
- </div>
- <div class="xm_one_row">
- <span>鍙嫑鍟嗛潰绉�</span>
- <span>{{projectNums.investmentArea}}銕�</span>
- <span>鍙嫑鍟嗘埧婧愭暟锛歿{projectNums.investmentRoomAmount}}</span>
- </div>
- <div class="xm_one_row">
- <span>鍦ㄧ瀹炴椂鍧囦环</span>
- <span>{{projectNums.leasePrice}}鍏�/m虏路澶�</span>
- <span>鍦ㄧ闈㈢Н锛歿{projectNums.leaseArea}}m虏</span>
- </div>
- <div class="xm_one_row">
- <span>鍑虹鐜�</span>
- <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span>
- <span>寰呯闈㈢Н锛歿{projectNums.investmentArea - projectNums.leaseArea}}m虏</span>
- </div>
+ <div class="xm_one">
+ <div class="xm_one_row">
+ <span>鍦ㄧ鍚堝悓鏁�</span>
+ <span>{{projectNums.leaseContractAmount}}</span>
+ <span>鍦ㄧ鎴挎簮鏁帮細{{projectNums.leaseRoomAmount}}</span>
</div>
- </el-card>
- <el-card style="margin-top: 20px;">
- <div slot="header" class="clearfix">
- <span>椤圭洰淇℃伅</span>
+ <div class="xm_one_row">
+ <span>鍙嫑鍟嗛潰绉�</span>
+ <span>{{projectNums.investmentArea}}銕�</span>
+ <span>鍙嫑鍟嗘埧婧愭暟锛歿{projectNums.investmentRoomAmount}}</span>
</div>
+ <div class="xm_one_row">
+ <span>鍦ㄧ瀹炴椂鍧囦环</span>
+ <span>{{projectNums.leasePrice}}鍏�/m虏路澶�</span>
+ <span>鍦ㄧ闈㈢Н锛歿{projectNums.leaseArea}}m虏</span>
+ </div>
+ <div class="xm_one_row">
+ <span>鍑虹鐜�</span>
+ <span>{{rentalRate()}}%</span>
+ <span>寰呯闈㈢Н锛歿{projectNums.investmentArea - projectNums.leaseArea}}m虏</span>
+ </div>
+ </div>
+ <div style="margin-top: 20px;">
+ <div style="font-size: 16px; color: #000000; font-weight: 500; margin-bottom: 20px;">椤圭洰淇℃伅</div>
<div class="xm_info">
<div class="xm_info_row" style="width: 25%;">
<span>椤圭洰鍚嶇О</span>
@@ -79,15 +76,13 @@
<span>{{projectInfo.remark}}</span>
</div>
</div>
- </el-card>
- <el-card style="margin-top: 20px;">
- <div slot="header" class="clearfix">
- <span>褰撳墠鍦ㄧ鍚堝悓</span>
- </div>
+ </div>
+ <div style="margin-top: 20px;">
+ <div style="font-size: 16px; color: #000000; font-weight: 500; margin-bottom: 20px;">褰撳墠鍦ㄧ鍚堝悓</div>
<div class="xm_table">
<div style="display: flex; align-items: center; margin-bottom: 15px;">
<el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
- <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
+ <el-button type="primary" @click="getFetchList(1)">鎼滅储</el-button>
<el-button @click="clear">閲嶇疆</el-button>
</div>
<el-table
@@ -98,7 +93,7 @@
<el-table-column
label="鍚堝悓缂栧彿">
<template slot-scope="{row}">
- <el-button type="text">{{row.code}}</el-button>
+ <el-button type="text" @click="$refs.ContractDetailRef.open('鍚堝悓璇︽儏', row.id)">{{row.code}}</el-button>
</template>
</el-table-column>
<el-table-column
@@ -146,7 +141,7 @@
</el-pagination>
</div>
</div>
- </el-card>
+ </div>
</div>
</el-tab-pane>
<el-tab-pane label="鎴挎簮淇℃伅" name="houseinfo" v-if="[3].includes(lv)">
@@ -199,73 +194,73 @@
</el-tab-pane>
<el-tab-pane label="绉熷鍚堝悓" name="project" v-if="[3].includes(lv)">
<div class="xm">
- <el-card style="margin-top: 20px;">
- <div slot="header" class="clearfix">
- <span>褰撳墠鍦ㄧ鍚堝悓</span>
+ <div class="xm_table">
+ <div style="display: flex; align-items: center; margin-bottom: 15px;">
+ <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
+ <el-button type="primary" @click="getFetchList(1)">鎼滅储</el-button>
+ <el-button @click="clear">閲嶇疆</el-button>
</div>
- <div class="xm_table">
- <div style="display: flex; align-items: center; margin-bottom: 15px;">
- <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
- <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
- <el-button @click="clear">閲嶇疆</el-button>
- </div>
- <el-table
- :data="tableData"
- border
- v-loading="loading"
- style="width: 100%">
- <el-table-column
- label="鍚堝悓缂栧彿">
- <template slot-scope="{row}">
- <el-button type="text">{{row.code}}</el-button>
- </template>
- </el-table-column>
- <el-table-column
- prop="renterName"
- label="绉熷">
- </el-table-column>
- <el-table-column
- label="绉熻祦鍗曚环">
- <template slot-scope="{row}">
- <div style="display: flex; align-items: center;">
- <span>{{row.leasePrice || 0}}鍏�/銕÷峰ぉ</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column
- prop="leaseDays"
- label="绉熻祦澶╂暟">
- </el-table-column>
- <el-table-column
- label="绉熻祦闈㈢Н">
- <template slot-scope="{row}">
- {{row.totalArea}}銕�
- </template>
- </el-table-column>
- <el-table-column
- label="鎴挎簮">
- <template slot-scope="{row}">
- <div style="display: flex; flex-direction: column;">
- <span v-for="(item, index) in row.roomList" :key="index">
- {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}}
- </span>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <div class="xm_table_f">
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="page"
- :page-sizes="[10, 20, 30, 40]"
- :page-size="pageTotal"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </div>
+ <el-table
+ :data="tableData"
+ border
+ v-loading="loading"
+ style="width: 100%">
+ <el-table-column
+ label="鍚堝悓缂栧彿">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.ContractDetailRef.open('鍚堝悓璇︽儏', row.id)">{{row.code}}</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="绉熷">
+ <template slot-scope="{row}">
+ <div style="display: flex; align-items: center;">
+ {{row.renterName}}
+ <el-tag type="success" v-if="[1,2,3].includes(row.status)">褰撳墠绉熸埛</el-tag>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="绉熻祦鍗曚环">
+ <template slot-scope="{row}">
+ <div style="display: flex; align-items: center;">
+ <span>{{row.leasePrice || 0}}鍏�/銕÷峰ぉ</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="leaseDays"
+ label="绉熻祦澶╂暟">
+ </el-table-column>
+ <el-table-column
+ label="绉熻祦闈㈢Н">
+ <template slot-scope="{row}">
+ {{row.totalArea}}銕�
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎴挎簮">
+ <template slot-scope="{row}">
+ <div style="display: flex; flex-direction: column;">
+ <span v-for="(item, index) in row.roomList" :key="index">
+ {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}}
+ </span>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="xm_table_f">
+ <el-pagination
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ :current-page="page"
+ :page-sizes="[10, 20, 30, 40]"
+ :page-size="pageTotal"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
</div>
- </el-card>
+ </div>
</div>
</el-tab-pane>
<el-tab-pane label="鎴挎�佺鐞�" name="house" v-if="[1,2].includes(lv)">
@@ -287,23 +282,30 @@
</div>
<div class="xm_house_list" v-for="(item, index) in roomStatus" :key="index">
<div class="xm_house_list_left">
- <div class="xm_house_list_left_row">
+ <div class="xm_house_list_left_row" :style="{ height: (item.roomsList.length * 100) + ((item.roomsList.length - 1) * 10) + 'px' }">
<span>{{item.floorName}}</span>
<span>{{item.floorArea}}銕�</span>
</div>
</div>
<div class="xm_house_list_right">
- <div class="xm_house_list_right_row" :style="{ width: ifWidth(child.roomRentArea), backgroundColor: ifBackground(child.roomStatus) }" v-for="(child, i) in item.ywRoomStatusDataVOList" :key="i">
- <div class="ft">
- <span>{{child.roomCode}}</span>
- <span>锛坽{child.roomRentArea}}銕★級</span>
+ <template v-for="(child, i) in item.roomsList" :key="i">
+ <div class="xm_house_list_right_row" v-for="(childThree, a) in child" :key="a" :style="{ width: childThree.width + 'px', backgroundColor: ifBackground(childThree.roomStatus) }">
+ <div class="ft">
+ <span>{{childThree.roomCode}}</span>
+ <span>锛坽{childThree.roomRentArea}}銕★級</span>
+ </div>
+ <div class="xm_house_list_right_row_info" v-if="childThree.roomStatus !== 0">
+ <div style="display: flex; align-items: center;">
+ <span style="margin-right: 5px;">{{childThree.customerName}}</span>
+ <img src="@/assets/icons/ic_key_green.png" style="width: 16px; height: 16px;" v-if="childThree.roomStatus === 1" />
+ <img src="@/assets/icons/ic_key_yellow.png" style="width: 16px; height: 16px;" v-else-if="childThree.roomStatus === 2" />
+ </div>
+ <span :style="{ color: returnColor(childThree.overData.substring(0, 10)) ? 'red' : '' }">{{childThree.overData.substring(0, 10)}}{{returnColor(childThree.overData.substring(0, 10)) ? '宸�' : ''}}鍒版湡</span>
+ </div>
+ <div class="xm_house_list_right_row_day" v-if="childThree.roomStatus === 0">鏈嚭绉燂綔绌虹疆{{childThree.freeDayAmount}}澶�</div>
</div>
- <div class="xm_house_list_right_row_info" v-if="child.roomStatus !== 0">
- <span>{{child.customerName}}</span>
- <span>{{child.overData.substring(0, 10)}}鍒版湡</span>
- </div>
- <div class="xm_house_list_right_row_day" v-if="child.roomStatus === 0">鏈嚭绉燂綔绌虹疆{{child.freeDayAmount}}澶�</div>
- </div>
+ </template>
+
</div>
</div>
</div>
@@ -330,7 +332,7 @@
</div>
<div class="xm_one_row">
<span>鍑虹鐜�</span>
- <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span>
+ <span>{{rentalRate()}}%</span>
<span>寰呯闈㈢Н锛歿{projectNums.investmentArea - projectNums.leaseArea}}m虏</span>
</div>
</div>
@@ -362,7 +364,7 @@
</div>
<div class="xm_info_row" style="width: 25%; margin-top: 15px;">
<span>寤虹瓚闈㈢Н</span>
- <span>{{buildingInfo.cqArea}}銕�</span>
+ <span>{{buildingInfo.area}}銕�</span>
</div>
<div class="xm_info_row" style="width: 25%; margin-top: 15px;">
<span>璁$闈㈢Н</span>
@@ -389,7 +391,7 @@
<div class="xm_table">
<div style="display: flex; align-items: center; margin-bottom: 15px;">
<el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
- <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
+ <el-button type="primary" @click="getFetchList(1)">鎼滅储</el-button>
<el-button @click="clear">閲嶇疆</el-button>
</div>
<el-table
@@ -400,7 +402,7 @@
<el-table-column
label="鍚堝悓缂栧彿">
<template slot-scope="{row}">
- <el-button type="text">{{row.code}}</el-button>
+ <el-button type="text" @click="$refs.ContractDetailRef.open('鍚堝悓璇︽儏', row.id)">{{row.code}}</el-button>
</template>
</el-table-column>
<el-table-column
@@ -555,23 +557,27 @@
<div class="xm">
<div class="xm_chat">
<el-card class="xm_chat_row">
- <div id="chat1"></div>
+ <div class="xm_chat_row_info">
+ <span>鎬昏</span>
+ <span>{{amount}}</span>
+ </div>
+ <div id="chat1" v-if="activeName === 'third'"></div>
</el-card>
<el-card class="xm_chat_row">
- <div id="chat2"></div>
+ <div id="chat2" v-if="activeName === 'third'"></div>
</el-card>
</div>
<el-card style="margin-top: 20px;">
<div class="xm_table">
<div class="xm_table_search">
<div class="xm_table_search_left">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ澶囧悕绉�/缂栫爜" style="width: 150px; margin-right: 15px;"></el-input>
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ澶囧悕绉�/缂栫爜" style="width: 200px; margin-right: 15px;"></el-input>
<el-select v-model="form.status" style="width: 150px; margin-right: 15px;" placeholder="璁惧鐘舵��">
<el-option label="姝e父" :value="0"></el-option>
<el-option label="鎹熷潖" :value="1"></el-option>
<el-option label="鎶ュ簾" :value="2"></el-option>
</el-select>
- <el-button type="primary" @click="getDevicePage">鏌ヨ</el-button>
+ <el-button type="primary" @click="getDevicePage(1)">鏌ヨ</el-button>
<el-button @click="clear">娓呯┖</el-button>
</div>
<el-button type="primary" @click="handleEdit">鏂板</el-button>
@@ -584,7 +590,7 @@
<el-table-column
label="璁惧缂栫爜">
<template slot-scope="{row}">
- <el-button type="text">{{row.code}}</el-button>
+ <el-button type="text" @click="handledeviveDetail(row.id)">{{row.code}}</el-button>
</template>
</el-table-column>
<el-table-column
@@ -641,6 +647,10 @@
<Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" />
<!-- 鏂板缓璁惧 -->
<Edit v-if="showEdit1" ref="EditRef" @success="getDevicePage" @close="showEdit1 = false" />
+ <!-- 鍚堝悓璇︽儏 -->
+ <ContractDetail ref="ContractDetailRef" />
+ <!-- 璁惧璇︽儏 -->
+ <deviceDetail ref="deviceDetail" />
</div>
</template>
@@ -656,9 +666,11 @@
import Detail from '../workorder/components/detail'
import { fetchList as devicePage, getDeviceCateData, getDeviceStatus } from '@/api/Inspection/device'
import Edit from '../operation/components/deviceEdit'
+ import ContractDetail from '../contract/components/contractDetail'
+ import deviceDetail from '../operation/components/deviceDetail'
export default {
name: 'index',
- components: { OperaYwWorkorderWindow, Detail, Edit },
+ components: { OperaYwWorkorderWindow, Detail, Edit, ContractDetail, deviceDetail },
data() {
return {
showDetail: false,
@@ -699,7 +711,10 @@
roomInfo: {},
loading: false,
lv: 0,
- leaseStatus: ''
+ leaseStatus: '',
+ amount: 0,
+ project: '',
+ widthNum: ''
}
},
created () {
@@ -711,6 +726,11 @@
}
},
methods: {
+ handledeviveDetail(id) {
+ this.$refs.deviceDetail.visible = true
+ this.$refs.deviceDetail.id = id
+ this.$refs.deviceDetail.getDetail()
+ },
nodeClick(e) {
this.tableData = []
this.pageSize = 10
@@ -725,6 +745,7 @@
if (e.lv === 0) {
this.activeName = 'first'
this.form.project = e.id
+ this.project = e.id
this.getProjectByIds()
} else if (e.lv === 1) {
this.activeName = 'house'
@@ -741,10 +762,29 @@
this.roomDetailByIds()
}
},
+ returnColor(date) {
+ let date1 = Number(date.replace(/-/g, ''))
+ let date2 = Number(this.getDay().replace(/-/g, ''))
+ return date2 > date1
+ },
+ getDay() {
+ const now = new Date();
+ const year = now.getFullYear();
+ let month = now.getMonth() + 1; // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ヨ鍔�1
+ let day = now.getDate();
+ const padZero = (num) => num < 10 ? '0' + num : num;
+ month = padZero(month);
+ day = padZero(day);
+ return `${year}-${month}-${day}`;
+ },
// 鎼滅储鏍�
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
+ },
+ // 鍑虹鐜�
+ rentalRate() {
+ return ((this.projectNums.leaseArea / this.projectNums.investmentArea) * 100).toFixed(2)
},
// 鍒ゆ柇鎴挎�佸搴�
ifWidth(num) {
@@ -793,7 +833,52 @@
buildingId: this.form.buildingId,
floor: this.form.floorId
}).then(res => {
+ // 鏁扮粍鍒嗗壊
+ res.forEach(item => {
+ item.ywRoomStatusDataVOList = item.ywRoomStatusDataVOList ? item.ywRoomStatusDataVOList : []
+ const chunkedArray = [];
+ for (let i = 0; i < item.ywRoomStatusDataVOList.length; i += 4) {
+ chunkedArray.push(item.ywRoomStatusDataVOList.slice(i, i + 4));
+ }
+ item.roomsList = chunkedArray
+ })
+ // 璁$畻瀹藉害
+ res.forEach(item => {
+ item.roomsList.forEach(one => {
+ let num = one.map(three => three.roomRentArea)
+ let total = num.reduce((sum, value) => sum + value, 0)
+ let width = 950
+ if (one.length > 1) {
+ width = 950 - ((one.length - 1) * 10)
+ }
+ one.forEach(two => {
+ two.width = Number(Math.max((two.roomRentArea / total) * width, 150).toFixed(0))
+ })
+ })
+ })
+ // 鍑忓幓骞冲潎澶氫綑鐨勫搴�
+ res.forEach(item => {
+ item.roomsList.forEach(one => {
+ let num = one.map(three => three.width)
+ let total = num.reduce((sum, value) => sum + value, 0)
+ let countGreaterThan150 = one.filter(num => num.width > 150).length;
+ let width = 950
+ if (one.length > 1) {
+ width = 950 - ((one.length - 1) * 10)
+ }
+ if (total > width) {
+ let cha = total - width
+ let deleNum = Math.floor(cha / countGreaterThan150)
+ one.forEach(two => {
+ if (two.width > 150) {
+ two.width = two.width - deleNum
+ }
+ })
+ }
+ })
+ })
this.roomStatus = res
+ console.log(this.roomStatus)
})
},
// 鑾峰彇璁惧鐘舵��
@@ -808,9 +893,10 @@
this.$nextTick(() => {
this.deviceList = [
{ value: res.workAmount || 0, name: '姝e父' },
- { value: res.exceptionAmount || 0, name: '寮傚父' },
+ { value: res.exceptionAmount || 0, name: '鎹熷潖' },
{ value: res.errAmount || 0, name: '鎶ュ簾' }
]
+ this.amount = res.amount
this.reand()
})
})
@@ -829,14 +915,19 @@
})
})
},
- handleEdit(row) {
+ handleEdit() {
this.showEdit1 = true
this.$nextTick(() => {
+ this.$refs.EditRef.param.projectId = this.project
this.$refs.EditRef.isShowModal = true
+ this.$refs.EditRef.changeProject()
})
},
// 鑾峰彇璁惧鍒嗛〉
- getDevicePage() {
+ getDevicePage(type) {
+ if (type === 1) {
+ this.page = 1
+ }
this.loading = true
devicePage({
capacity: this.pageTotal,
@@ -943,6 +1034,7 @@
})
},
clear() {
+ this.page = 1
this.form.code = ''
this.form.name = ''
this.form.status = ''
@@ -958,7 +1050,10 @@
}
},
// 鑾峰彇褰撳墠鍦ㄧ鍚堝悓
- getFetchList() {
+ getFetchList(type) {
+ if (type === 1) {
+ this.page = 1
+ }
this.loading = true
fetchList({
capacity: this.pageSize,
@@ -968,7 +1063,8 @@
buildingId: this.form.buildingId,
floorId: this.form.floorId,
roomId: this.form.roomId,
- code: this.form.code
+ code: this.form.code,
+ statusList: this.lv !== 3 ? [0,1,2,3] : null
}
}).then(res => {
this.tableData = res.records
@@ -982,6 +1078,7 @@
.then(res => {
this.addParamToArray(res)
this.form.project = res[0].id
+ this.project = res[0].id
this.title = res[0].name
this.houseList = res
this.getProjectByIds()
@@ -1016,13 +1113,7 @@
{
name: '璁惧鐘舵��',
type: 'pie',
- radius: ['40%', '80%'],
- label: {
- show: true,
- position: 'center',
- fontWeight: 'bold',
- fontSize: 22
- },
+ radius: ['50%', '80%'],
data: this.deviceList
}
]
@@ -1033,53 +1124,25 @@
var chartDom = document.getElementById('chat2');
var myChart = echarts.init(chartDom);
var option;
- const rawData = [
- [100, 302, 301, 334, 390, 330, 320],
- [320, 132, 101, 134, 90, 230, 210],
- [220, 182, 191, 234, 290, 330, 310],
- [150, 212, 201, 154, 190, 330, 410],
- [820, 832, 901, 934, 1290, 1330, 1320]
- ];
- const totalData = [];
- for (let i = 0; i < rawData[0].length; ++i) {
- let sum = 0;
- for (let j = 0; j < rawData.length; ++j) {
- sum += rawData[j][i];
- }
- totalData.push(sum);
- }
- const series = [
- 'Direct',
- 'Mail Ad',
- 'Affiliate Ad',
- 'Video Ad',
- 'Search Engine'
- ].map((name, sid) => {
- return {
- name,
- type: 'bar',
- stack: 'total',
- barWidth: '60%',
- data: rawData[sid].map((d, did) =>
- totalData[did] <= 0 ? 0 : d / totalData[did]
- )
- };
- });
- let seriesArr = this.categaryList.map(item => {
- return {
- name: item.cateName,
- type: 'bar',
- stack: 'total',
- barWidth: '60%',
- data: item.ywDeviceCateDataVOList.map((child) =>
- child.deviceAmount
- )
- }
+ let seriesArr = []
+ this.categaryList.forEach((one, index) => {
+ one.ywDeviceCateDataVOList.forEach(two => {
+ let data = []
+ this.categaryList.forEach(item => {
+ data.push(0)
+ })
+ data[index] = two.deviceAmount
+ seriesArr.push({
+ name: two.cateName,
+ type: 'bar',
+ barGap:-1,
+ stack: one.cateName,
+ data
+ })
+ })
})
let xAxisData = this.categaryList.map(item => item.cateName)
- console.log(series)
console.log(seriesArr)
- console.log(xAxisData)
option = {
title: {
text: '璁惧鏁伴噺鍒嗙被缁熻'
@@ -1094,15 +1157,30 @@
trigger: 'axis',
axisPointer: {
type: 'shadow'
+ },
+ formatter: params => {
+ var res = `${params[0].name} <br/>`
+ for (const item of params) {
+ if (item.value !== 0) {
+ res += `<span style="background: ${item.color}; height:10px; width: 10px; border-radius: 50%;display: inline-block;margin-right:10px;"></span> ${item.seriesName} 锛�${item.value}<br/>`
+ }
+ }
+ return res
}
},
- yAxis: {
- type: 'value'
- },
- xAxis: {
- type: 'category',
- data: xAxisData
- },
+ xAxis: [
+ {
+ type: 'category',
+ position: 'bottom',
+ data: xAxisData
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ data: Array.from({ length: 100 }, (_, i) => i + 1)
+ }
+ ],
series: seriesArr
};
@@ -1114,7 +1192,7 @@
this.getFetchList()
} else if (this.activeName === 'second') {
this.getWorkOrderList()
- } else if (tab.name === 'third') {
+ } else if (this.activeName === 'third') {
this.getDevicePage()
}
},
@@ -1215,17 +1293,17 @@
.xm_house_list {
width: 100%;
display: flex;
- align-items: center;
- margin-top: 10px;
+ align-items: self-start;
.xm_house_list_left {
flex-shrink: 0;
width: 100px;
display: flex;
margin-right: 15px;
flex-direction: column;
+ margin-bottom: 10px;
.xm_house_list_left_row {
width: 100px;
- height: 100px;
+ /*height: 100px;*/
background: #F4F7FC;
padding: 20px 0;
box-sizing: border-box;
@@ -1233,7 +1311,7 @@
display: flex;
align-items: center;
flex-direction: column;
- justify-content: space-between;
+ justify-content: center;
&:last-child {
margin-bottom: 0;
}
@@ -1253,8 +1331,11 @@
}
}
.xm_house_list_right {
+ width: 950px;
display: flex;
align-items: center;
+ justify-content: space-between;
+ flex-wrap: wrap;
.xm_house_list_right_row {
height: 100px;
padding: 12px 15px;
@@ -1262,10 +1343,7 @@
display: flex;
flex-direction: column;
justify-content: space-between;
- margin-right: 10px;
- &:last-child {
- margin: 0 !important;
- }
+ margin-bottom: 10px;
.ft {
display: flex;
align-items: center;
@@ -1308,6 +1386,7 @@
.xm_house_tips {
display: flex;
align-items: center;
+ margin-bottom: 10px;
.xm_house_tips_row {
display: flex;
align-items: center;
@@ -1335,6 +1414,28 @@
.xm_chat_row {
width: 49%;
height: 300px;
+ position: relative;
+ .xm_chat_row_info {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ span {
+ &:nth-child(1) {
+ font-size: 20px;
+ color: #222222;
+ }
+ &:nth-child(2) {
+ font-size: 28px;
+ color: #222222;
+ font-weight: bold;
+ }
+ }
+ }
#chat1 {
width: 100%;
height: 260px;
@@ -1352,17 +1453,30 @@
justify-content: space-between;
.xm_one_row {
flex: 1;
+ margin-right: 20px;
display: flex;
flex-direction: column;
+ justify-content: space-between;
+ height: 120px;
+ background: #F4F7FC;
+ border-radius: 8px;
+ padding: 15px 20px;
+ box-sizing: border-box;
+ &:last-child {
+ margin: 0;
+ }
span {
font-size: 16px;
color: black;
&:nth-child(2) {
- font-weight: bold;
- margin: 15px 0;
+ font-weight: 600;
+ font-size: 24px;
+ color: #3E80EF;
}
&:nth-child(3) {
- color: #666666;
+ font-weight: 400;
+ font-size: 14px;
+ color: #888888;
}
}
}
@@ -1412,13 +1526,16 @@
display: flex;
flex-direction: column;
span {
- font-size: 16px;
&:nth-child(1) {
- color: #666666;
+ font-weight: 400;
+ font-size: 13px;
+ color: #888888;
}
&:nth-child(2) {
- color: #000000;
- margin-top: 15px;
+ font-weight: 400;
+ font-size: 14px;
+ color: #222222;
+ margin-top: 7px;
}
}
}
diff --git a/admin/src/views/stock/asset.vue b/admin/src/views/stock/asset.vue
index 8f78846..787f8af 100644
--- a/admin/src/views/stock/asset.vue
+++ b/admin/src/views/stock/asset.vue
@@ -111,7 +111,7 @@
},
changeStatus(e, row) {
updateStatusById({ id: row.id, status: e })
- .then(res => {
+ .finally(() => {
this.getList()
})
},
diff --git a/admin/src/views/stock/assetCate.vue b/admin/src/views/stock/assetCate.vue
index cfa31b6..69c9400 100644
--- a/admin/src/views/stock/assetCate.vue
+++ b/admin/src/views/stock/assetCate.vue
@@ -3,11 +3,11 @@
<template v-slot:table-wrap>
<ul class="toolbar">
<li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus">鏂板缓</el-button></li>
- <li><el-button type="primary" @click="exportExcel">瀵煎嚭</el-button></li>
+<!-- <li><el-button type="primary" @click="exportExcel">瀵煎嚭</el-button></li>-->
</ul>
<el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
:data="dataList" stripe @selection-change="handleSelectionChange">
- <el-table-column prop="name" label="璧勪骇鍒嗙被" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鐗╂枡鍒嗙被" min-width="100px"></el-table-column>
<el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
<el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="鎿嶄綔"
min-width="120" fixed="right">
@@ -68,7 +68,7 @@
methods: {
handleEdit(row) {
this.isShowEdit = true
- let str = row && row.id ? '缂栬緫璧勪骇鍒嗙被' : '鏂板缓璧勪骇鍒嗙被'
+ let str = row && row.id ? '缂栬緫鐗╂枡鍒嗙被' : '鏂板缓鐗╂枡鍒嗙被'
this.$nextTick(() => {
this.$refs.CateEditRef.open(str)
this.$refs.CateEditRef.getList()
diff --git a/admin/src/views/stock/assetList.vue b/admin/src/views/stock/assetList.vue
index 1b28a25..7e4042c 100644
--- a/admin/src/views/stock/assetList.vue
+++ b/admin/src/views/stock/assetList.vue
@@ -3,12 +3,20 @@
<QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
<div class="mt20">
<el-button type="primary" @click="$refs.newMaterial.open('鏂板缓鐗╂枡')">娣诲姞</el-button>
- <el-button>瀵煎嚭</el-button>
- <el-button>瀵煎叆</el-button>
+ <el-button @click="exportExcel">瀵煎嚭</el-button>
+ <el-popover
+ placement="right"
+ trigger="click">
+ <div style="display: flex; align-items: center; justify-content: center;">
+ <el-button type="primary" @click="$refs.uploadFile.click()">瀵煎叆妯℃澘</el-button>
+ <el-button type="text" @click="exportTemplate">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button>
+ </div>
+ <el-button style="margin-left: 10px;" slot="reference">瀵煎叆</el-button>
+ </el-popover>
</div>
<el-table v-loading="loading" :data="list" stripe>
- <el-table-column prop="code" label="璧勪骇缂栫爜" min-width="100" show-overflow-tooltip />
- <el-table-column prop="name" label="璧勪骇鍚嶇О" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="code" label="鐗╂枡缂栫爜" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="name" label="鐗╂枡鍚嶇О" min-width="100" show-overflow-tooltip />
<el-table-column prop="qrcode" label="鏉$爜" min-width="100" show-overflow-tooltip />
<el-table-column prop="brand" label="鍝佺墝" min-width="100" show-overflow-tooltip />
<el-table-column prop="attr" label="瑙勬牸鍨嬪彿" min-width="100" show-overflow-tooltip />
@@ -38,6 +46,7 @@
<Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
</div>
<newMaterial ref="newMaterial" @success="getList" />
+ <input type="file" ref="uploadFile" @change="importTemplate" accept=".xlsx" style="position: fixed; top: -100px;" />
</div>
</template>
@@ -48,7 +57,7 @@
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
-import { fetchList, updateStatus, deleteById } from '@/api/ywMaterial'
+import { fetchList, updateStatus, deleteById, exportExcel, importMaterialBatch } from '@/api/ywMaterial'
export default {
components: {
Pagination,
@@ -87,7 +96,43 @@
this.getList()
},
methods: {
+ // 瀵煎嚭妯℃澘
+ exportTemplate () {
+ window.open('/template/material.xlsx')
+ },
+ // 瀵煎叆妯℃澘
+ importTemplate(e) {
+ const FormDate = new FormData()
+ FormDate.append('file', e.target.files[0])
+ importMaterialBatch(FormDate)
+ .then(res => {
+ this.getList()
+ })
+ .finally(() => {
+ this.$refs.uploadFile.value = null
+ })
+ },
+ exportExcel () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ exportExcel({
+ page: this.pagination.page,
+ capacity: 1000000,
+ model: this.filters
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ })
+ .catch(() => {})
+ },
getList(page) {
+ if (page) {
+ this.pagination.page = page
+ }
const { pagination, filters } = this
this.loading = true
fetchList({
diff --git a/admin/src/views/stock/components/AssetSel.vue b/admin/src/views/stock/components/AssetSel.vue
index d4bb919..f06fbda 100644
--- a/admin/src/views/stock/components/AssetSel.vue
+++ b/admin/src/views/stock/components/AssetSel.vue
@@ -21,14 +21,14 @@
</el-form>
<!-- -->
<el-table @selection-change="handleSelectionChange" :data="list" stripe>
- <el-table-column type="selection" width="55" />
+ <el-table-column type="selection" width="55" />
<el-table-column prop="code" label="鐗╂枡缂栫爜" min-width="100px"></el-table-column>
<el-table-column prop="name" label="鐗╂枡鍚嶇О" min-width="80px"></el-table-column>
<el-table-column prop="qrcode" label="鏉$爜" min-width="100px"></el-table-column>
<el-table-column prop="brand" label="鍝佺墝" min-width="80px"></el-table-column>
<el-table-column prop="attr" label="瑙勬牸鍨嬪彿" min-width="80px"></el-table-column>
<el-table-column prop="unitName" label="鍗曚綅" min-width="80px"></el-table-column>
- <el-table-column prop="maxStock" label="搴撳瓨" min-width="80px"></el-table-column>
+ <el-table-column v-if="isOut" prop="maxStock" label="搴撳瓨" min-width="80px"></el-table-column>
</el-table>
<Pagination class="mt10" @size-change="handleSizeChange" @current-change="getList" :pagination="pagination">
</Pagination>
@@ -82,19 +82,19 @@
getList(page) {
const { pagination, searchForm, isOut, warehouseId } = this
this.listLoading = true
- if(page){pagination.page = page}
- console.log('isOut', isOut);
-
+ if (page) { pagination.page = page }
+ console.log('isOut', isOut)
+
let fn = isOut ? ywStockPage : fetchList
fn({
capacity: pagination.pageSize,
page: pagination.page,
- model: {...searchForm,status: 0, warehouseId}
+ model: { ...searchForm, status: 0, warehouseId }
}).then((res) => {
this.listLoading = false
this.list = res.records
this.pagination.total = res.total || 0
- if(isOut){
+ if (isOut) {
this.list.forEach(item => {
item.brand = item.materialBrand
item.attr = item.materialAttr
@@ -123,7 +123,7 @@
if (e && e.length == 2) {
this.$set(this.searchForm, 'cateId', e[1])
this.$set(this.searchForm, 'parentCateId', '')
- }else if((e && e.length == 1)){
+ } else if ((e && e.length == 1)) {
this.$set(this.searchForm, 'parentCateId', e[0])
this.$set(this.searchForm, 'cateId', '')
} else {
diff --git a/admin/src/views/stock/components/OutEdit.vue b/admin/src/views/stock/components/OutEdit.vue
index 0bad33c..e0ec1ad 100644
--- a/admin/src/views/stock/components/OutEdit.vue
+++ b/admin/src/views/stock/components/OutEdit.vue
@@ -17,12 +17,19 @@
<el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option>
</el-select>
</el-form-item>
- <el-form-item class="w3" label="澶勭悊浜�" prop="name">
- <el-input v-model="param.createUserName" :disabled="true" v-trim />
+ <el-form-item class="w3" label="棰嗙敤浜�" prop="outUserId">
+ <el-select v-model="param.outUserId" filterable placeholder="璇烽�夋嫨">
+ <el-option v-for="item in userList" :key="item.id" :label="item.realname" :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
<el-form-item class="w6" label="澶囨敞" prop="remark">
<el-input v-model="param.remark" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
+ <el-form-item class="w3" label="澶勭悊浜�" prop="name">
+ <el-input v-model="param.createUserName" :disabled="true" v-trim />
+ </el-form-item>
+
</div>
</el-form>
<!-- -->
@@ -39,8 +46,9 @@
<el-table-column prop="unitName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column>
<el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" min-width="90px">
<template v-slot="{ row }">
- <el-input oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" v-model="row.stock"
- class="w100"></el-input>
+ <el-input
+ oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
+ v-model="row.stock" class="w100"></el-input>
</template>
</el-table-column>
<el-table-column prop="maxStock" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column>
@@ -60,6 +68,7 @@
import AssetSel from './AssetSel'
import { fetchList as getStoreList } from '@/api/ywWarehouse'
import { ywOutinboundCreate } from '@/api/store/index'
+import { getUserList } from '@/api/system/user'
import { StoreTypeOps, rules } from './config'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
@@ -82,7 +91,8 @@
rules,
storeList: [],
list: [],
- StoreTypeOps: StoreTypeOps.filter(i => i.type == 1),
+ userList: [],
+ StoreTypeOps: StoreTypeOps.filter(i => i.type == 1 && i.id != 10),
dataList: [],
}
@@ -95,12 +105,12 @@
this.$refs['form'].validate((valid) => {
if (valid) {
const { param, list } = this
- if(list.length == 0) return Message.warning('璇峰厛閫夋嫨鐗╂枡淇℃伅')
+ if (list.length == 0) return Message.warning('璇峰厛閫夋嫨鐗╂枡淇℃伅')
let count = 0 // 鍑哄簱鏁伴噺蹇呭~
list.forEach(item => {
- if(!item.stock) count ++
+ if (!item.stock) count++
})
- if(count > 0) return Message.warning('璇疯緭鍏ユ纭殑鍑哄簱鏁伴噺')
+ if (count > 0) return Message.warning('璇疯緭鍏ユ纭殑鍑哄簱鏁伴噺')
this.isLoading = true
ywOutinboundCreate({
...param,
@@ -116,19 +126,26 @@
}
})
},
+ getUser() {
+ getUserList({})
+ .then(res => {
+ this.userList = res
+ })
+ },
changeStore() {
this.list = []
},
initData() {
this.$set(this.param, 'doneDate', dayjs().format('YYYY-MM-DD'))
- getStoreList({ capacity: 9999, page: 1, model: {status: 0} }).then(res => {
+ getStoreList({ capacity: 9999, page: 1, model: { status: 0 } }).then(res => {
this.storeList = res.records || []
})
+ this.getUser()
},
changeSel(val) {
const list = val
list.forEach(item => {
- if(this.list.indexOf(item.id) === -1){
+ if (this.list.indexOf(item.id) === -1) {
item.materialId = item.id
item.stock = null
item.createDate = null
@@ -142,15 +159,15 @@
},
handleOpenMaterial() {
- if(!this.param.warehouseId) return Message.warning('璇峰厛閫夋嫨鍑哄簱浠撳簱')
+ if (!this.param.warehouseId) return Message.warning('璇峰厛閫夋嫨鍑哄簱浠撳簱')
this.isShowSel = true
this.$nextTick(() => {
this.$refs.AssetSelRef.isShowModal = true
this.$refs.AssetSelRef.isOut = true
this.$refs.AssetSelRef.warehouseId = this.param.warehouseId
this.$refs.AssetSelRef.getList()
- console.log('-----');
-
+ console.log('-----')
+
})
},
close() {
diff --git a/admin/src/views/stock/components/config.js b/admin/src/views/stock/components/config.js
index f03110b..30a9d84 100644
--- a/admin/src/views/stock/components/config.js
+++ b/admin/src/views/stock/components/config.js
@@ -3,16 +3,18 @@
{ name: '棰嗙敤閫�鍥�', id: 1, type: 0 },
{ name: '搴撳瓨璋冩暣', id: 2, type: 0 },
{ name: '鍏跺畠鍏ュ簱', id: 3, type: 0 },
- // { name: '鐩樼泩鍏ュ簱', id: 4, type: 0 },
+ { name: '鐩樼泩鍏ュ簱', id: 4, type: 0 },
+
{ name: '棰嗙敤鍑哄簱', id: 5, type: 1 },
{ name: '浠撳簱鍑哄崟', id: 6, type: 1 },
{ name: '璋冩暣鍑哄簱', id: 7, type: 1 },
{ name: '閲囪喘鍑哄簱', id: 8, type: 1 },
{ name: '鍏跺畠鍑哄簱', id: 9, type: 1 },
- // { name: '鐩樺嚭鍑哄簱', id: 10, type: 1 },
+ { name: '鐩樹簭鍑哄簱', id: 10, type: 1 },
]
export const rules = {
warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
+ outUserId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
doneDate: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
type: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }],
}
\ No newline at end of file
diff --git a/admin/src/views/stock/components/inventoryDetails.vue b/admin/src/views/stock/components/inventoryDetails.vue
index 790d7bf..b5e7a9b 100644
--- a/admin/src/views/stock/components/inventoryDetails.vue
+++ b/admin/src/views/stock/components/inventoryDetails.vue
@@ -36,10 +36,10 @@
<div class="list">
<div class="list_search">
<div class="list_search_left">
- <el-input v-model="form.code" style="width: 200px; margin-right: 10px;" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�/缂栫爜"></el-input>
+ <el-input v-model="form.materialCode" style="width: 200px; margin-right: 10px;" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�/缂栫爜"></el-input>
<el-select v-model="form.status" style="width: 150px; margin-right: 10px;" placeholder="鐩樼偣鐘舵��">
<el-option label="宸茬洏" :value="1"></el-option>
- <el-option label="鏈洏" :value="0"></el-option>
+ <el-option label="鏈洏" :value="2"></el-option>
</el-select>
<el-select v-model="form.type" style="width: 150px; margin-right: 10px;" placeholder="鐩樼偣缁撴灉">
<el-option label="璐﹀疄鐩哥" :value="0"></el-option>
@@ -48,7 +48,7 @@
</el-select>
<el-button type="primary" @click="getList">鏌ヨ</el-button>
<el-button @click="clear">娓呯┖</el-button>
- <el-button>瀵煎嚭</el-button>
+ <el-button @click="exportExcel">瀵煎嚭</el-button>
</div>
<div class="list_search_right">
<span>宸茬洏:{{info.finishAmount || 0}}</span>
@@ -60,15 +60,21 @@
</div>
<div style="width: 100%; margin: 20px 0;">
<el-table :data="list" stripe>
- <el-table-column prop="materialCode" label="璧勪骇缂栫爜" show-overflow-tooltip />
- <el-table-column prop="materialName" label="璧勪骇鍚嶇О" show-overflow-tooltip />
+ <el-table-column prop="materialCode" label="鐗╂枡缂栫爜" show-overflow-tooltip />
+ <el-table-column prop="materialName" label="鐗╂枡鍚嶇О" show-overflow-tooltip />
<el-table-column prop="materialQrcode" label="鏉$爜" show-overflow-tooltip />
<el-table-column prop="materialBrand" label="鍝佺墝" show-overflow-tooltip />
<el-table-column prop="materialAttr" label="瑙勬牸鍨嬪彿" show-overflow-tooltip />
<el-table-column prop="materialUnitName" label="鍗曚綅" show-overflow-tooltip />
<el-table-column prop="warehouseName" label="鎵�鍦ㄤ粨搴�" show-overflow-tooltip />
<el-table-column prop="stock" label="璐﹂潰鏁伴噺" show-overflow-tooltip />
- <el-table-column prop="actStock" label="鐩樼偣鏁伴噺" show-overflow-tooltip />
+ <el-table-column label="鐩樼偣鏁伴噺" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <span style="color: green;" v-if="row.type === 1">{{row.actStock}}</span>
+ <span style="color: red;" v-else-if="row.type === 2">{{row.actStock}}</span>
+ <span v-else>{{row.actStock}}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip />
</el-table>
</div>
@@ -91,7 +97,7 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
- import { ywStocktakingRecordPage, getById } from '@/api/ywStocktaking'
+ import { ywStocktakingRecordPage, getById, exportExcel } from '@/api/ywStocktaking'
export default {
name: "inventoryDetails",
components: {
@@ -104,7 +110,7 @@
info: {},
list: [],
form: {
- code: '',
+ materialCode: '',
status: '',
type: ''
},
@@ -114,6 +120,26 @@
}
},
methods: {
+ exportExcel () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ exportExcel({
+ page: this.page,
+ capacity: 1000000,
+ model: {
+ ...this.form,
+ stocktakingId: this.id
+ }
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ })
+ .catch(() => {})
+ },
handleSizeChange(size) {
this.pageSize = size
this.getList()
@@ -139,6 +165,7 @@
this.form.name = ''
this.form.status = ''
this.form.type = ''
+ this.form.materialCode = ''
this.page = 1
this.getList()
},
@@ -148,12 +175,13 @@
page: this.page,
model: {
stocktakingId: this.id,
- code: this.form.code,
+ materialCode: this.form.materialCode,
status: this.form.status,
type: this.form.type
}
}).then(res => {
this.list = res.records
+ this.total = res.total
})
}
}
diff --git a/admin/src/views/stock/components/newMaterial.vue b/admin/src/views/stock/components/newMaterial.vue
index 6c45610..6f887f4 100644
--- a/admin/src/views/stock/components/newMaterial.vue
+++ b/admin/src/views/stock/components/newMaterial.vue
@@ -10,7 +10,7 @@
<el-form :model="form" label-position="top" ref="form" :rules="rules">
<div class="list">
<el-form-item label="鐗╂枡缂栫爜" prop="code">
- <el-input v-model="form.code" placeholder="涓嶈緭鍏ョ郴缁熶細鑷姩缂栫爜" v-trim />
+ <el-input v-model="form.code" :disabled="form.id" placeholder="涓嶈緭鍏ョ郴缁熶細鑷姩缂栫爜" v-trim />
</el-form-item>
<el-form-item label="鐗╂枡鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim />
@@ -46,7 +46,9 @@
:action="uploadImgUrl"
:file-list="fileList"
:data="uploadData"
+ :limit="1"
list-type="picture-card"
+ :on-exceed="exceed"
:on-success="uploadAvatarSuccess"
:on-remove="dele">
<i class="el-icon-plus"></i>
@@ -147,6 +149,9 @@
}
})
},
+ exceed() {
+ this.$message.warning('鍙兘涓婁紶涓�寮犲浘鐗囷紒')
+ },
getCateVal(e) {
this.form.parentCateId = e[0]
this.form.cateId = e[1]
diff --git a/admin/src/views/stock/components/newWarehouse.vue b/admin/src/views/stock/components/newWarehouse.vue
index e2f076b..92b7471 100644
--- a/admin/src/views/stock/components/newWarehouse.vue
+++ b/admin/src/views/stock/components/newWarehouse.vue
@@ -63,7 +63,8 @@
},
// 楠岃瘉瑙勫垯
rules: {
- name: [{ required: true, message: '浠撳簱鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }]
+ name: [{ required: true, message: '浠撳簱鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }],
+ userId: [{ required: true, message: '璐熻矗浜轰笉鑳戒负绌�', trigger: 'blur' }]
},
userList: []
}
diff --git a/admin/src/views/stock/in.vue b/admin/src/views/stock/in.vue
index c35f304..a1ee0ea 100644
--- a/admin/src/views/stock/in.vue
+++ b/admin/src/views/stock/in.vue
@@ -18,6 +18,7 @@
</el-table-column>
<el-table-column prop="createUserName" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip />
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip />
+ <el-table-column prop="remark" label="澶囨敞" min-width="100" show-overflow-tooltip />
<el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip>
<template v-slot="{ row }">
<span @click="handleDetail(row)" v-permissions="['business:ywoutinboundrecord:query']" class="primaryColor pointer">鏌ョ湅璇︽儏</span>
diff --git a/admin/src/views/stock/out.vue b/admin/src/views/stock/out.vue
index c94aedf..9a01b67 100644
--- a/admin/src/views/stock/out.vue
+++ b/admin/src/views/stock/out.vue
@@ -15,8 +15,10 @@
<div v-for="item in row.recordList">{{ item.materialName }}[{{ item.materialCode }}]*{{ item.stock }}{{ item.materialUnitName }}</div>
</template>
</el-table-column>
- <el-table-column prop="createUserName" label="棰嗙敤浜�" min-width="90" show-overflow-tooltip />
+ <el-table-column prop="outUserName" label="棰嗙敤浜�" min-width="90" show-overflow-tooltip />
+ <el-table-column prop="createUserName" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip />
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip />
+ <el-table-column prop="remark" label="澶囨敞" min-width="100" show-overflow-tooltip />
<el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip>
<template v-slot="{ row }">
<span @click="handleDetail(row)" v-permissions="['business:ywoutinboundrecord:query']" class="primaryColor pointer">鏌ョ湅璇︽儏</span>
@@ -40,7 +42,7 @@
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
-import { ywOutinboundPage } from '@/api'
+import { ywOutinboundPage, ywOutinboundEx } from '@/api'
import { fetchList as getStoreList } from '@/api/ywWarehouse'
import { StoreTypeOps, rules } from './components/config'
export default {
@@ -87,7 +89,7 @@
label: '鍑哄簱绫诲瀷',
labelCode: 'name',
valueCode: 'id',
- options: StoreTypeOps.filter(i => i.type == 0)
+ options: StoreTypeOps.filter(i => i.type == 1)
},
],
online: true
diff --git a/admin/src/views/stock/query.vue b/admin/src/views/stock/query.vue
index d5d750f..565c971 100644
--- a/admin/src/views/stock/query.vue
+++ b/admin/src/views/stock/query.vue
@@ -26,6 +26,7 @@
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
import { ywStockPage,ywStockPageEx } from '@/api/store/index'
+import { fetchList as getStoreList } from '@/api/ywWarehouse'
export default {
components: {
Pagination,
@@ -48,6 +49,8 @@
filed: 'warehouseId',
type: 'select',
label: '鎵�鍦ㄤ粨搴�',
+ labelCode: 'name',
+ valueCode: 'id',
options: []
},
{
@@ -67,8 +70,14 @@
},
created() {
this.getList()
+ this.initData()
},
methods: {
+ initData() {
+ getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => {
+ this.queryFormConfig.formItems[0].options = res.records || []
+ })
+ },
getList(page) {
const { pagination, filters } = this
this.loading = true
diff --git a/admin/src/views/stock/record.vue b/admin/src/views/stock/record.vue
index b2e1863..94cc276 100644
--- a/admin/src/views/stock/record.vue
+++ b/admin/src/views/stock/record.vue
@@ -5,7 +5,7 @@
<el-button @click="handleEx()" v-permissions="['business:ywoutinboundrecord:exportExcel']">瀵煎嚭</el-button>
</div>
<el-table v-loading="loading" :data="list" stripe>
- <el-table-column prop="doneDate" label="鍗曟嵁鏃ユ湡" min-width="90" show-overflow-tooltip />
+ <el-table-column prop="doneDate" label="鍗曟嵁鏃ユ湡" min-width="100" show-overflow-tooltip />
<el-table-column prop="materialCode" label="鐗╂枡缂栫爜" min-width="90" show-overflow-tooltip />
<el-table-column prop="materialName" label="鐗╂枡鍚嶇О" min-width="90" show-overflow-tooltip />
<el-table-column prop="carCodeFront" label="鐗╂枡鍒嗙被" min-width="120" show-overflow-tooltip>
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
index f3c7e3a..02f6cad 100644
--- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -8,7 +8,6 @@
<el-option label="鍏叡缁翠慨" :value="1"></el-option>
</el-select>
</el-form-item>
-
<el-form-item label="鎶ヤ慨鍖哄煙" prop="rooms">
<el-cascader
v-model="form.rooms"
@@ -23,28 +22,6 @@
children: 'projectDataVOList'
}" />
</el-form-item>
-
-<!-- <el-form-item label="閫夋嫨椤圭洰" prop="projectId">-->
-<!-- <el-select v-model="form.projectId" clearable filterable @change="getBuild">-->
-<!-- <el-option v-for="item in projectList" :label="item.name" :value="item.id" />-->
-<!-- </el-select>-->
-<!-- </el-form-item>-->
-<!-- <el-form-item label="閫夋嫨妤煎畤" prop="buildingId">-->
-<!-- <el-select v-model="form.buildingId" clearable filterable @change="changeBuild">-->
-<!-- <el-option v-for="item in buildList" :label="item.name" :value="item.id" />-->
-<!-- </el-select>-->
-<!-- </el-form-item>-->
-
-<!-- <el-form-item v-if="form.areaType == 1" label="閫夋嫨妤煎眰" prop="floorId">-->
-<!-- <el-select v-model="form.floorId">-->
-<!-- <el-option v-for="item in levelList" clearable filterable :label="item.name" :value="item.id" />-->
-<!-- </el-select>-->
-<!-- </el-form-item>-->
-<!-- <el-form-item v-if="form.areaType == 0" label="閫夋嫨鎴块棿" prop="roomId">-->
-<!-- <el-select v-model="form.roomId" clearable filterable>-->
-<!-- <el-option v-for="item in roomList" :label="item.roomNum" :value="item.id" />-->
-<!-- </el-select>-->
-<!-- </el-form-item>-->
<el-form-item label="宸ュ崟鍒嗙被" prop="cateId">
<el-cascader v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList"
:props="{
@@ -156,12 +133,13 @@
methods: {
open(title, target) {
this.title = title
+ this.fileList = []
this.visible = true
- this.getProject()
this.getCate()
this.getHouseTree()
// 鏂板缓
if (target == null) {
+ this.getProject()
this.form = {
id: null,
editDate: '',
@@ -199,8 +177,12 @@
})
return
}
+ getProjectList({}).then(res => {
+ this.projectList = res || []
+ })
// 缂栬緫
this.$nextTick(() => {
+ // this.$refs.form.resetFields()
for (const key in this.form) {
this.form[key] = target[key]
}
@@ -210,7 +192,7 @@
this.form.rooms = []
this.form.projectId = ''
this.form.buildingId = ''
- this.form.levelList = ''
+ this.form.floorId = ''
this.form.roomId = ''
},
getHouseVal(e) {
diff --git a/admin/src/views/workorder/components/detail.vue b/admin/src/views/workorder/components/detail.vue
index 0743cfa..039bad0 100644
--- a/admin/src/views/workorder/components/detail.vue
+++ b/admin/src/views/workorder/components/detail.vue
@@ -1,6 +1,6 @@
<template>
- <GlobalWindow width="100%" title="宸ュ崟璇︽儏" :visible.sync="visible" :confirm-working="isWorking" @close="close"
- @confirm="confirm">
+ <GlobalWindow width="100%" title="宸ュ崟璇︽儏" :withFooter="withFooter" :visible.sync="visible" :confirm-working="isWorking"
+ @confirm="confirm" @close="closeView">
<div class="main">
<div class="title">
<div class="title_left">
@@ -11,7 +11,7 @@
<div class="status gray" v-if="info.dealStatus == 2">宸插鐞�</div>
</div>
</div>
- <el-button v-if="info.origin === 1" @click="openWT">鏌ョ湅闂涓婃姤</el-button>
+ <el-button v-if="info.origin === 1 && isShow" @click="openWT">鏌ョ湅闂涓婃姤</el-button>
</div>
<div class="main_content">
<div class="list">
@@ -171,31 +171,33 @@
</div>
</template>
</el-form>
+ <!-- 闂涓婃姤璇︽儏 -->
+ <ProblemReportingDetails ref="problem_Reporting_Details" @close="closeDetails" />
</div>
- <!-- 闂涓婃姤璇︽儏 -->
- <problemReportingDetails ref="problemReportingDetails" />
</GlobalWindow>
</template>
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
-import problemReportingDetails from './problemReportingDetails'
+// import ProblemReportingDetails from './problemReportingDetails'
+// import ProblemReportingDetails from '@/views/workorder/components/problemReportingDetails'
import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder'
import { getByWorkorderId } from '@/api/ywProblem'
import { getUserList } from '@/api/system/user'
import { Message, Loading } from 'element-ui'
+import { mapState } from 'vuex'
import dayjs from 'dayjs'
export default {
+ name: 'detail',
components: {
GlobalWindow,
- problemReportingDetails
+ ProblemReportingDetails: () => import('./problemReportingDetails')
},
extends: BaseOpera,
data() {
return {
id: '',
- visible: false,
param: {
dealType: 0
},
@@ -211,22 +213,47 @@
uploadData: {
folder: 'YW_WORKORDER_FILE'
},
+ isShow: true,
+ test: false
}
},
computed: {
userInfo() {
return this.$store.state.userInfo
+ },
+ withFooter() {
+ if (this.info) {
+ return this.info.dealStatus === 0 || (this.info.dealStatus === 1 && (this.userInfo.id === this.info.dealUserId));
+ } else {
+ return false;
+ }
}
},
created() {
this.getStaff()
},
methods: {
+ closeDetails() {
+ console.log('1')
+ this.test = false
+ },
+ closeView() {
+ this.$emit('close')
+ this.visible = false
+ },
+ open (title, target, show) {
+ this.title = title
+ this.isShow = show
+ this.id = target.workorderId
+ this.getDetail()
+ },
openWT() {
getByWorkorderId(this.id)
.then(res => {
- console.log(res)
- this.$refs.problemReportingDetails.open('闂涓婃姤璇︽儏', res)
+ this.test = true
+ this.$nextTick(() => {
+ this.$refs.problem_Reporting_Details.open('闂涓婃姤璇︽儏', res, false)
+ })
})
},
confirm() {
@@ -258,6 +285,7 @@
if (this.info.dealStatus == 1) {
this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
}
+ this.visible = true
})
},
getStaff() {
diff --git a/admin/src/views/workorder/components/handleProblem.vue b/admin/src/views/workorder/components/handleProblem.vue
index 6560bc3..838ab1f 100644
--- a/admin/src/views/workorder/components/handleProblem.vue
+++ b/admin/src/views/workorder/components/handleProblem.vue
@@ -104,7 +104,7 @@
:file-list="form.workOrderFileList"
accept=".png,.jpg,.jpeg,.PNG,.JPG"
:on-success="getFile"
- :data="{ folder: 'YW_PROBLEM' }"
+ :data="{ folder: 'YW_WORKORDER' }"
list-type="picture-card">
<i class="el-icon-plus"></i>
</el-upload>
diff --git a/admin/src/views/workorder/components/problemReportingDetails.vue b/admin/src/views/workorder/components/problemReportingDetails.vue
index cbdcbbb..83379bb 100644
--- a/admin/src/views/workorder/components/problemReportingDetails.vue
+++ b/admin/src/views/workorder/components/problemReportingDetails.vue
@@ -3,6 +3,7 @@
:title="title"
:showConfirm="false"
:visible.sync="visible"
+ @close="closeView"
width="100%">
<div class="wt">
<div class="wt_head">
@@ -10,9 +11,9 @@
<div class="title">闂璇︽儏</div>
<el-tag style="margin-left: 10px;" v-if="form.dealStatus === 0">寰呭鐞�</el-tag>
<el-tag style="margin-left: 10px;" v-if="form.dealStatus === 1">宸茶浆宸ュ崟</el-tag>
- <el-tag style="margin-left: 10px;" v-if="form.dealStatus === 2">宸插叧闂�</el-tag>
+ <el-tag style="margin-left: 10px;" type="info" v-if="form.dealStatus === 2">宸插叧闂�</el-tag>
</div>
- <el-button @click="handleDetail" v-if="form.dealStatus === 1">鏌ョ湅宸ュ崟</el-button>
+ <el-button @click="handleDetail" v-if="form.dealStatus === 1 && isShow">鏌ョ湅宸ュ崟</el-button>
</div>
<div class="wt_content">
<div class="wt_content_row" style="width: 25%;">
@@ -45,7 +46,7 @@
</div>
<div class="wt_head">
<div class="wt_head_title">
- <div class="title">闂璇︽儏</div>
+ <div class="title">澶勭悊缁撴灉</div>
</div>
</div>
<div class="wt_content">
@@ -62,31 +63,46 @@
鍏抽棴璇存槑锛歿{form.dealInfo}}
</div>
</div>
+ <!-- 宸ュ崟璇︽儏 -->
+ <GDDetail ref="GD_Detail" @close="closeDetails" />
</div>
- <!-- 宸ュ崟璇︽儏 -->
- <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" />
</GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
- import Detail from './detail'
+ // import GDDetail from './detail'
+ // import GDDetail from '@/views/workorder/components/detail'
import { getById } from '@/api/ywProblem'
export default {
name: "problemReportingDetails",
extends: BaseOpera,
- components: { GlobalWindow, Detail },
+ components: {
+ GlobalWindow,
+ GDDetail: () => import('./detail')
+ },
data() {
return {
form: {},
showDetail: false,
+ isShow: true,
+ test: false
}
},
methods: {
- open (title, target) {
+ closeView() {
+ this.$emit('close')
+ this.visible = false
+ },
+ closeDetails() {
+ console.log('1')
+ this.test = false
+ },
+ open (title, target, show) {
this.title = title
this.form = target
+ this.isShow = show
getById(target.id)
.then(res => {
this.form = res
@@ -94,11 +110,13 @@
})
},
handleDetail() {
- this.showDetail = true
+ this.test = true
this.$nextTick(() => {
- this.$refs.DetailRef.visible = true
- this.$refs.DetailRef.id = this.form.workorderId
- this.$refs.DetailRef.getDetail()
+ this.$refs.GD_Detail.open('宸ュ崟璇︽儏', { workorderId: this.form.workorderId }, false)
+ // this.$refs.GD_Detail.isShow = false
+ // this.$refs.GD_Detail.visible = true
+ // this.$refs.GD_Detail.id = this.form.workorderId
+ // this.$refs.GD_Detail.getDetail()
})
},
returnText(status) {
diff --git a/admin/src/views/workorder/problemReporting.vue b/admin/src/views/workorder/problemReporting.vue
index 1de3fb4..867ce47 100644
--- a/admin/src/views/workorder/problemReporting.vue
+++ b/admin/src/views/workorder/problemReporting.vue
@@ -7,7 +7,7 @@
</el-form-item>
<el-form-item prop="dealStatus" label="澶勭悊鐘舵��">
<el-select v-model="searchForm.dealStatus">
- <el-option label="鏈鐞�" :value="0"></el-option>
+ <el-option label="寰呭鐞�" :value="0"></el-option>
<el-option label="宸茶浆宸ュ崟" :value="1"></el-option>
<el-option label="宸插叧闂�" :value="2"></el-option>
</el-select>
@@ -28,7 +28,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe>
- <el-table-column prop="remark" label="鎻忚堪" min-width="70px"></el-table-column>
+ <el-table-column prop="content" label="鎻忚堪" min-width="70px"></el-table-column>
<el-table-column prop="position" label="浣嶇疆" min-width="100px"></el-table-column>
<el-table-column label="鐜板満鍥剧墖" min-width="100px">
<template slot-scope="{row}">
@@ -53,7 +53,7 @@
fixed="right">
<template slot-scope="{row}">
<el-button type="text" v-if="row.dealStatus === 0" @click="$refs.handleProblem.open('闂涓婃姤', row)">澶勭悊</el-button>
- <el-button type="text" @click="$refs.problemReportingDetails.open('闂涓婃姤璇︽儏', row)">鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" @click="$refs.problemReportingDetails.open('闂涓婃姤璇︽儏', row, true)">鏌ョ湅璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
index d22f32d..6d497de 100644
--- a/admin/src/views/workorder/workorderList.vue
+++ b/admin/src/views/workorder/workorderList.vue
@@ -90,7 +90,7 @@
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
</template>
- <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" @success="search" />
+ <Detail v-if="openDetail" ref="DetailRef" @close="openDetail = false" @success="search" />
<!-- 鏂板缓/淇敼 -->
<OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange" />
</TableLayout>
@@ -112,7 +112,7 @@
data() {
return {
// 鎼滅储
- showDetail: false,
+ openDetail: false,
searchForm: {
selDate: [],
areaIds: '',
@@ -138,11 +138,13 @@
},
methods: {
handleDetail(row) {
- this.showDetail = true
+ this.openDetail = true
this.$nextTick(() => {
- this.$refs.DetailRef.visible = true
- this.$refs.DetailRef.id = row.id
- this.$refs.DetailRef.getDetail()
+ this.$refs.DetailRef.open('宸ュ崟璇︽儏', { workorderId: row.id }, true)
+ // this.$refs.DetailRef.isShow = true
+ // this.$refs.DetailRef.visible = true
+ // this.$refs.DetailRef.id = row.id
+ // this.$refs.DetailRef.getDetail()
})
},
diff --git a/h5/pages.json b/h5/pages.json
index 908bd3a..f5f619d 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -118,6 +118,13 @@
{
"navigationBarTitleText" : "浠诲姟涓績"
}
+ },
+ {
+ "path" : "pages/polling/empty",
+ "style" :
+ {
+ "navigationBarTitleText" : "鎵爜宸℃"
+ }
}
],
"globalStyle": {
diff --git a/h5/pages/inventory/detail.vue b/h5/pages/inventory/detail.vue
index 29a92e6..268f979 100644
--- a/h5/pages/inventory/detail.vue
+++ b/h5/pages/inventory/detail.vue
@@ -32,7 +32,7 @@
<view class="line">瑙勬牸鍨嬪彿锛歿{ item.materialAttr }}</view>
<view class="line" v-if="item.status == 0">
<view class="">璐﹂潰鏁伴噺锛歿{ item.stock }}{{ item.materialUnitName }}</view>
- <view @click.stop="openEheck(item)" class="btn">鎵ц鐩樼偣</view>
+ <view v-if="info.status == 1" @click.stop="openEheck(item)" class="btn">鎵ц鐩樼偣</view>
</view>
<view class="static" v-if="item.status == 1">
<view class="ite">
@@ -81,13 +81,15 @@
<view class="line">
<view class="la">鐩樼偣鏁伴噺锛�</view>
<view class="val">
- <view class="wrap">
- <template v-if="!modalForm.handleType">
- <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
- <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
+ <view class="wrap">
+ <template v-if="!modalForm.handleType">
+ <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
+ <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
</template>
- <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit" v-model="modalForm.actStock"></input>
- <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""></image>
+ <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit"
+ v-model="modalForm.actStock"></input>
+ <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode="">
+ </image>
</view>
<view class="unit">{{ modalForm.materialUnitName }}</view>
</view>
@@ -95,8 +97,9 @@
</view>
<view class="remark">
<view class="la">澶囨敞锛�</view>
- <textarea v-model="modalForm.remark" :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="璇峰~鍐欏娉�" :maxlength="-1" placeholder-class="placeholder9"
- cols="30" rows="10"></textarea>
+ <textarea v-model="modalForm.remark"
+ :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="璇峰~鍐欏娉�"
+ :maxlength="-1" placeholder-class="placeholder9" cols="30" rows="10"></textarea>
</view>
<view v-if="!modalForm.handleType" class="btns">
<view class="btn" @click="showModal = false">鍙栨秷</view>
@@ -127,557 +130,574 @@
</template>
<script>
-import {
- ywStocktakingDetail,
- getYwStocktakingRecord,
- takingDataOpen,
- ywStocktaFinishById
-} from '@/api'
-import {
- Html5Qrcode
-} from 'html5-qrcode'
-export default {
- data() {
- return {
- param: {},
- info: {},
- id: '',
- activeTab: 0,
+ import {
+ ywStocktakingDetail,
+ getYwStocktakingRecord,
+ takingDataOpen,
+ ywStocktaFinishById
+ } from '@/api'
+ import {
+ Html5Qrcode
+ } from 'html5-qrcode'
+ export default {
+ data() {
+ return {
+ param: {},
+ info: {},
+ id: '',
+ activeTab: 0,
- list: [],
- page: 0,
- total: 0,
+ list: [],
+ page: 0,
+ total: 0,
- showModal: false,
- showTip: false,
- modalForm: {},
+ showModal: false,
+ showTip: false,
+ modalForm: {},
- html5Qrcode: null,
- isScaning: false,
+ html5Qrcode: null,
+ isScaning: false,
- }
- },
- onLoad(op) {
- this.id = op.id
- this.getDetail()
- this.getList()
- },
- methods: {
- itemClick(item) {
- if(item.status == 1){
- this.showItem(item)
- }
- },
- showItem(item){
- this.showModal = true
- this.modalForm = {
- ...item,
- handleType: this.info.status != 1 ? 'detail' : ''
- }
- console.log('modalForm', this.modalForm);
- },
- getDetail() {
- const {
- id
- } = this
- ywStocktakingDetail(id).then(res => {
- this.info = res.data
-
- })
- },
- handleQuery(str) {
- this.list = []
- this.page = 1
- this.getList(str)
- },
- getList(str) {
- const {
- page,
- activeTab,
- id,
- param
- } = this
- getYwStocktakingRecord({
- capacity: 20,
- page,
- model: {
- status: str || activeTab,
- stocktakingId: id,
- ...param
- }
- }).then(res => {
- this.list = [...this.list, ...res.data.records]
- this.total = res.data.total
- if (this.param.materialQrcode && this.list.length == 1) {
- this.openEheck(this.list[0])
- this.$set(this.param, 'materialQrcode', null)
- }
- })
- },
- scrolltolower() {
- const {
- total,
- list
- } = this
- if (list.length < total) {
- this.page = this.page + 1
- this.getList()
- } else {
- this.showToast('鏆傛棤鏇村鏁版嵁')
}
},
- openEheck(item) {
- this.modalForm = {
- ...item
- }
- this.showModal = true
- },
- onSubmit() {
- const {
- modalForm
- } = this
- if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺')
- takingDataOpen({
- ...modalForm
- }).then(res => {
- if (res.code == 200) {
- this.showToast('鎻愪氦鎴愬姛')
- this.handleQuery()
- this.getDetail()
- this.showModal = false
- }
- })
- },
- changeAct(val) {
- const actStock = this.modalForm.actStock || 0
- this.$set(this.modalForm, 'actStock', actStock + val)
- },
- tabsClick(val) {
- this.activeTab = val
- this.page = 0
- this.list = []
+ onLoad(op) {
+ this.id = op.id
+ this.getDetail()
this.getList()
},
- tipSub() {
- const { info } = this
- ywStocktaFinishById(info.id).then(res => {
- this.showTip = false
- uni.navigateBack()
- })
-
- },
- openQrcode() {
- this.isScaning = true
- Html5Qrcode.getCameras().then((devices) => {
- if (devices && devices.length) {
- this.html5Qrcode = new Html5Qrcode('reader')
- this.html5Qrcode.start({
- facingMode: 'environment'
- }, {
- focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡
- fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害
- qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
- },
- (decodeText, decodeResult) => {
- if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
- this.stopScan()
- this.$set(this.param, 'materialQrcode', decodeText)
- this.handleQuery('null')
- }
- },
- (err) => {
- // console.log(err); //閿欒淇℃伅
- }
- )
+ methods: {
+ itemClick(item) {
+ if (item.status == 1) {
+ this.showItem(item)
}
- })
- },
+ },
+ showItem(item) {
+ this.showModal = true
+ this.modalForm = {
+ ...item,
+ handleType: this.info.status != 1 ? 'detail' : ''
+ }
+ console.log('modalForm', this.modalForm);
+ },
+ getDetail() {
+ const {
+ id
+ } = this
+ ywStocktakingDetail(id).then(res => {
+ this.info = res.data
- stopScan() {
- console.log('鍋滄鎵爜')
- this.isScaning = false
- if (this.html5Qrcode) {
- this.html5Qrcode.stop()
+ })
+ },
+ handleQuery() {
+ this.list = []
+ this.page = 1
+ this.getList()
+ },
+ getList() {
+ const {
+ page,
+ activeTab,
+ id,
+ param
+ } = this
+ getYwStocktakingRecord({
+ capacity: 20,
+ page,
+ model: {
+ status: activeTab,
+ stocktakingId: id,
+ ...param
+ }
+ }).then(res => {
+ this.list = [...this.list, ...res.data.records || []]
+ this.total = res.data.total
+ if (this.param.materialQrcode && this.total == 1) {
+ this.openEheck(this.list[0])
+ this.param = {}
+ } else if (this.param.materialQrcode && this.total == 0) {
+ this.param = {}
+ uni.showModal({
+ content: '鏈尮閰嶅埌鐗╂枡锛岃閲嶆柊鎵爜',
+ showCancel: false,
+ success: (res) => {
+ if (res.confirm) {
+ this.getList()
+ }
+ }
+ });
+ }
+
+ })
+ },
+ scrolltolower() {
+ const {
+ total,
+ list
+ } = this
+ if (list.length < total) {
+ this.page = this.page + 1
+ this.getList()
+ } else {
+ this.showToast('鏆傛棤鏇村鏁版嵁')
+ }
+ },
+ openEheck(item) {
+ this.modalForm = {
+ ...item
+ }
+ this.showModal = true
+ },
+ onSubmit() {
+ const {
+ modalForm
+ } = this
+ if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺')
+ takingDataOpen({
+ ...modalForm
+ }).then(res => {
+ if (res.code == 200) {
+ this.showToast('鎻愪氦鎴愬姛')
+ this.handleQuery()
+ this.getDetail()
+ this.showModal = false
+ }
+ })
+ },
+ changeAct(val) {
+ const actStock = this.modalForm.actStock || 0
+ this.$set(this.modalForm, 'actStock', actStock + val)
+ },
+ tabsClick(val) {
+ this.activeTab = val
+ this.page = 0
+ this.list = []
+ this.getList()
+ },
+ tipSub() {
+ const {
+ info
+ } = this
+ ywStocktaFinishById(info.id).then(res => {
+ this.showTip = false
+ uni.navigateBack()
+ })
+
+ },
+ openQrcode() {
+ this.isScaning = true
+ Html5Qrcode.getCameras().then((devices) => {
+ if (devices && devices.length) {
+ this.html5Qrcode = new Html5Qrcode('reader')
+ this.html5Qrcode.start({
+ facingMode: 'environment'
+ }, {
+ focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡
+ fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害
+ qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
+ },
+ (decodeText, decodeResult) => {
+ if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
+ this.stopScan()
+ this.$set(this.param, 'materialQrcode', decodeText)
+ this.handleQuery()
+ }
+ },
+ (err) => {
+ // console.log(err); //閿欒淇℃伅
+ }
+ )
+ }
+ })
+ },
+
+ stopScan() {
+ console.log('鍋滄鎵爜')
+ this.isScaning = false
+ if (this.html5Qrcode) {
+ this.html5Qrcode.stop()
+ }
}
}
}
-}
</script>
<style lang="scss">
-.main_app {
- padding: 0 30rpx;
- overflow: hidden;
-}
+ .main_app {
+ padding: 0 30rpx;
+ overflow: hidden;
+ }
-.tabs {
- display: flex;
- width: 750rpx;
- margin: 12rpx -30rpx 20rpx;
- border-bottom: 1rpx solid #E5E5E5;
-
- .tab {
- font-size: 30rpx;
- color: #666666;
- flex: 1;
+ .tabs {
display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: flex-end;
- height: 72rpx;
+ width: 750rpx;
+ margin: 12rpx -30rpx 20rpx;
+ border-bottom: 1rpx solid #E5E5E5;
- .name {
+ .tab {
+ font-size: 30rpx;
+ color: #666666;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-end;
+ height: 72rpx;
+
+ .name {
+ display: flex;
+ align-items: center;
+ }
+
+ .border {
+ width: 54rpx;
+ height: 6rpx;
+ background-color: #fff;
+ border-radius: 3rpx;
+ margin-top: 12rpx;
+ }
+ }
+
+ .active {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+
+ .border {
+ background-color: $primaryColor;
+ }
+
+ }
+
+ }
+
+ .head_wrap {
+ display: flex;
+ align-items: center;
+ margin-bottom: 36rpx;
+
+ .search_wrap {
display: flex;
align-items: center;
+ width: 100%;
+ height: 76rpx;
+ background: #F7F7F7;
+ border-radius: 38rpx;
+ padding-left: 30rpx;
+
+ input {
+ flex: 1;
+ }
+
+ .search {
+ width: 28rpx;
+ height: 28rpx;
+ }
}
- .border {
- width: 54rpx;
- height: 6rpx;
+ }
+
+ .scroll_Y {
+ height: calc(100vh - 350rpx);
+ }
+
+ .list {
+
+ .item {
+ border-bottom: 1rpx solid #E5E5E5;
+ padding-bottom: 24rpx;
+ margin-bottom: 16rpx;
+
+ .title {
+ font-weight: 600;
+ font-size: 34rpx;
+ color: #222222;
+ margin-bottom: 10rpx;
+ flex: 1;
+ }
+
+ .head {
+ display: flex;
+ // align-items: center;
+ justify-content: space-between;
+ color: #666666;
+
+ .status {
+ width: 76rpx;
+ text-align: right;
+ padding-top: 3rpx;
+ }
+ }
+
+ .line {
+ height: 60rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ color: #666666;
+
+ .btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 60rpx;
+ padding: 0 20rpx;
+ background: #0068FF;
+ box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
+ border-radius: 30rpx;
+ font-size: 26rpx;
+ color: #FFFFFF;
+ }
+ }
+
+ .static {
+ display: flex;
+ height: 84rpx;
+ background: #F7F7F7;
+ font-size: 30rpx;
+ margin-top: 12rpx;
+ padding: 16rpx 0;
+
+ .spi {
+ border: 1rpx solid #E5E5E5;
+ }
+
+ .ite {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ .val {
+ font-weight: 500;
+ }
+ }
+ }
+ }
+ }
+
+ .footer_btn {
+ padding: 20rpx 40rpx 0;
+ border-top: 1px solid #e5e5e5;
+ width: 750rpx;
+ margin: 0 -30rpx;
+
+ .sweep {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 32rpx;
+ font-weight: 500;
+ width: 670rpx;
+ height: 88rpx;
+ background: #0068FF;
+ box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
+ border-radius: 44rpx;
+ color: #FFFFFF;
+ }
+
+ .sub_result {
background-color: #fff;
- border-radius: 3rpx;
- margin-top: 12rpx;
+ color: #FF0000;
+ border: 1rpx solid #FF0000;
+ box-shadow: none
+ }
+
+ image {
+ width: 32rpx;
+ height: 32rpx;
+ margin-right: 6rpx;
}
}
- .active {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
+ .modal_wrap {
+ padding: 36rpx 30rpx;
- .border {
- background-color: $primaryColor;
+ .modal_title {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 40rpx;
+ text-align: center;
}
-
- }
-
-}
-
-.head_wrap {
- display: flex;
- align-items: center;
- margin-bottom: 36rpx;
-
- .search_wrap {
- display: flex;
- align-items: center;
- width: 100%;
- height: 76rpx;
- background: #F7F7F7;
- border-radius: 38rpx;
- padding-left: 30rpx;
-
- input {
- flex: 1;
- }
-
- .search {
- width: 28rpx;
- height: 28rpx;
- }
- }
-
-}
-
-.scroll_Y {
- height: calc(100vh - 350rpx);
-}
-
-.list {
-
- .item {
- border-bottom: 1rpx solid #E5E5E5;
- padding-bottom: 24rpx;
- margin-bottom: 16rpx;
.title {
font-weight: 600;
font-size: 34rpx;
color: #222222;
- margin-bottom: 10rpx;
- flex: 1;
}
- .head{
- display: flex;
- // align-items: center;
- justify-content: space-between;
- color: #666666;
- .status{
- width: 76rpx;
- text-align: right;
- padding-top: 3rpx;
- }
- }
- .line {
- height: 60rpx;
+
+ .item {
+ font-size: 28rpx;
+ color: #666666;
+ height: 56rpx;
display: flex;
align-items: center;
- justify-content: space-between;
- color: #666666;
-
- .btn {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 60rpx;
- padding: 0 20rpx;
- background: #0068FF;
- box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
- border-radius: 30rpx;
- font-size: 26rpx;
- color: #FFFFFF;
- }
}
- .static {
- display: flex;
- height: 84rpx;
- background: #F7F7F7;
- font-size: 30rpx;
- margin-top: 12rpx;
- padding: 16rpx 0;
+ .content {
+ border-top: 1rpx solid #E5E5E5;
+ margin-top: 16rpx;
- .spi {
- border: 1rpx solid #E5E5E5;
- }
-
- .ite {
- flex: 1;
+ .line {
+ height: 84rpx;
display: flex;
align-items: center;
- justify-content: center;
+ justify-content: space-between;
+
+ .la {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
+ }
.val {
- font-weight: 500;
- }
- }
- }
- }
-}
-
-.footer_btn {
- padding: 20rpx 40rpx 0;
- border-top: 1px solid #e5e5e5;
- width: 750rpx;
- margin: 0 -30rpx;
-
- .sweep {
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 32rpx;
- font-weight: 500;
- width: 670rpx;
- height: 88rpx;
- background: #0068FF;
- box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
- border-radius: 44rpx;
- color: #FFFFFF;
- }
-
- .sub_result {
- background-color: #fff;
- color: #FF0000;
- border: 1rpx solid #FF0000;
- box-shadow: none
- }
-
- image {
- width: 32rpx;
- height: 32rpx;
- margin-right: 6rpx;
- }
-}
-
-.modal_wrap {
- padding: 36rpx 30rpx;
-
- .modal_title {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 40rpx;
- text-align: center;
- }
-
- .title {
- font-weight: 600;
- font-size: 34rpx;
- color: #222222;
- }
-
- .item {
- font-size: 28rpx;
- color: #666666;
- height: 56rpx;
- display: flex;
- align-items: center;
- }
-
- .content {
- border-top: 1rpx solid #E5E5E5;
- margin-top: 16rpx;
-
- .line {
- height: 84rpx;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- .la {
- font-weight: 500;
- font-size: 32rpx;
- color: #222222;
- }
-
- .val {
- display: flex;
- justify-content: flex-end;
- align-items: center;
- flex: 1;
-
- .wrap {
display: flex;
+ justify-content: flex-end;
align-items: center;
+ flex: 1;
- input {
- width: 120rpx;
- height: 72rpx;
- border-radius: 8rpx;
- border: 2rpx solid #0068FF;
- margin: 0 16rpx;
- padding: 0 10rpx;
- text-align: center;
+ .wrap {
+ display: flex;
+ align-items: center;
+
+ input {
+ width: 120rpx;
+ height: 72rpx;
+ border-radius: 8rpx;
+ border: 2rpx solid #0068FF;
+ margin: 0 16rpx;
+ padding: 0 10rpx;
+ text-align: center;
+ }
+ }
+
+ .unit {
+ font-size: 30rpx;
+ color: #666666;
+ margin-left: 20rpx;
}
}
- .unit {
- font-size: 30rpx;
- color: #666666;
- margin-left: 20rpx;
+ image {
+ width: 72rpx;
+ height: 72rpx;
+ }
+ }
+ }
+
+ .remark {
+ margin-top: 16rpx;
+
+ .la {
+ font-size: 30rpx;
+ color: #222222;
+ margin-bottom: 16rpx;
+ }
+
+ textarea {
+ width: 690rpx;
+ height: 240rpx;
+ background: #F7F7F7;
+ border-radius: 12rpx;
+ padding: 10rpx 20rpx;
+ }
+ }
+
+ .btns {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 80rpx;
+
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ border: 2rpx solid $primaryColor;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 32rpx;
+ color: $primaryColor;
+ }
+
+ .sub {
+ background-color: $primaryColor;
+ color: #fff;
+ }
+ }
+ }
+
+
+ .modal_t {
+ width: 520rpx;
+ text-align: center;
+ display: flex;
+ flex-direction: column;
+
+ .h1 {
+ height: 86rpx;
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #333333;
+ display: flex;
+ align-items: flex-end;
+ justify-content: center;
+ }
+
+ .content {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ padding: 30rpx 0;
+ }
+
+ .btns {
+ height: 102rpx;
+ display: flex;
+ align-items: center;
+ border-top: 1rpx solid #E5E5E5;
+
+ .btn {
+ height: 102rpx;
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-right: 1rpx solid #E5E5E5;
+ font-weight: 400;
+ font-size: 32rpx;
+ color: #999999;
+
+ &:nth-last-child(1) {
+ border-right: none;
}
}
- image {
- width: 72rpx;
- height: 72rpx;
+ .sub {
+ color: $primaryColor;
}
}
}
- .remark {
- margin-top: 16rpx;
-
- .la {
- font-size: 30rpx;
- color: #222222;
- margin-bottom: 16rpx;
- }
-
- textarea {
- width: 690rpx;
- height: 240rpx;
- background: #F7F7F7;
- border-radius: 12rpx;
- padding: 10rpx 20rpx;
- }
+ .reader-box {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-color: rgba(0, 0, 0, 0.5);
}
- .btns {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 80rpx;
-
- .btn {
- width: 336rpx;
- height: 88rpx;
- border-radius: 44rpx;
- border: 2rpx solid $primaryColor;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 32rpx;
- color: $primaryColor;
- }
-
- .sub {
- background-color: $primaryColor;
- color: #fff;
- }
+ .reader {
+ width: 100%;
+ // width: 540rpx;
+ // height: 540rpx;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
}
-}
-
-
-.modal_t {
- width: 520rpx;
- text-align: center;
- display: flex;
- flex-direction: column;
-
- .h1 {
- height: 86rpx;
- font-weight: 500;
- font-size: 32rpx;
- color: #333333;
- display: flex;
- align-items: flex-end;
- justify-content: center;
- }
-
- .content {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- padding: 30rpx 0;
- }
-
- .btns {
- height: 102rpx;
- display: flex;
- align-items: center;
- border-top: 1rpx solid #E5E5E5;
-
- .btn {
- height: 102rpx;
- flex: 1;
- display: flex;
- align-items: center;
- justify-content: center;
- border-right: 1rpx solid #E5E5E5;
- font-weight: 400;
- font-size: 32rpx;
- color: #999999;
-
- &:nth-last-child(1) {
- border-right: none;
- }
- }
-
- .sub {
- color: $primaryColor;
- }
- }
-}
-
-.reader-box {
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background-color: rgba(0, 0, 0, 0.5);
-}
-
-.reader {
- width: 100%;
- // width: 540rpx;
- // height: 540rpx;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
-}
</style>
\ No newline at end of file
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index dc65036..134d69c 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -29,8 +29,8 @@
loginPost,
getUserInfo,
sendSMsPost,
- ywWxAuthorize,
-
+ ywWxAuthorize,
+
getRecordByUserPoint
} from '@/api'
import {
@@ -45,7 +45,7 @@
form: {
phone: '',
code: ''
- },
+ },
ywinfo: {},
downTime: 0,
code: ''
@@ -53,11 +53,11 @@
},
onLoad(option) {
console.log('onLoad');
- // https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid
- const ywinfo = uni.getStorageSync('ywinfo') || {}
- if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
- this.ywinfo = ywinfo
- uni.setStorageSync('ywinfo', {})
+ // https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid
+ const ywinfo = uni.getStorageSync('ywinfo') || {}
+ if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
+ this.ywinfo = ywinfo
+ uni.setStorageSync('ywinfo', {})
}
if (option.ywid || option.ywid == 0) {
uni.setStorageSync('ywinfo', {
@@ -83,7 +83,7 @@
code: code || this.code
}).then(res => {
if (res.code === 200) {
- console.log('res', res);
+ // console.log('res', res);
that.$store.commit('setOpenId', res.data.openid)
if (res.data.token && res.data.token != '') {
that.$store.commit('setToken', res.data.token)
@@ -91,13 +91,19 @@
that.$store.commit('setUserInfo', ress.data)
})
const ywinfo = this.ywinfo
- if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
- getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
- if(res.data && res.data.id){
- uni.redirectTo({
- url: "/pages/polling/point?id=" + res.data.id
- })
- }
+ if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
+ getRecordByUserPoint({
+ pointCode: ywinfo.ywid
+ }).then(res => {
+ if (res.data && res.data.id) {
+ uni.redirectTo({
+ url: "/pages/polling/point?id=" + res.data.id
+ })
+ } else {
+ uni.redirectTo({
+ url: "/pages/polling/empty?message=" + res.message
+ })
+ }
})
} else {
setTimeout(() => {
@@ -111,8 +117,8 @@
})
} else {
// let url = 'https://zhcg.fnwtzx.com/yunwei_h5'
- // const appID = 'wx95ac1efb67f0330d'
- let url = 'https://dmtest.ahapp.net/yunwei_h5'
+ // const appID = 'wx95ac1efb67f0330d'
+ let url = 'https://dmtest.ahapp.net/yunwei_h5'
const appID = 'wx4d7c10bdec51942b'
let uri = encodeURIComponent(url)
let authURL =
@@ -145,22 +151,28 @@
this.setToken(res.data)
this.showToast('鐧诲綍鎴愬姛')
getUserInfo().then(ress => {
- this.setUserInfo(ress.data)
- const ywinfo = this.ywinfo
- if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
- getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
- getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
- if(res.data && res.data.id){
- uni.redirectTo({
- url: "/pages/polling/point?id=" + res.data.id
- })
- }
- })
- })
- } else {
- uni.redirectTo({
- url: "/pages/index"
- })
+ this.setUserInfo(ress.data)
+ const ywinfo = this.ywinfo
+ if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
+ // getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
+ getRecordByUserPoint({
+ pointCode: ywinfo.ywid
+ }).then(res => {
+ if (res.data && res.data.id) {
+ uni.redirectTo({
+ url: "/pages/polling/point?id=" + res.data.id
+ })
+ } else {
+ uni.redirectTo({
+ url: "/pages/polling/empty?message=" + res.message
+ })
+ }
+ })
+ // })
+ } else {
+ uni.redirectTo({
+ url: "/pages/index"
+ })
}
})
}
diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
index 25d7921..9ec4389 100644
--- a/h5/pages/operation/device.vue
+++ b/h5/pages/operation/device.vue
@@ -83,7 +83,7 @@
import {
uploadUrl,
ywDevicePost,
- ywDeviceCreate,
+ ywDeviceCreate,
getFindByCode
} from '@/api'
import dayjs from 'dayjs';
@@ -123,7 +123,7 @@
},
handleP() {
const {
- param,
+ param,
fileList
} = this
ywDeviceCreate({
@@ -132,24 +132,27 @@
dealDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
multifileList: fileList
}).then(res => {
- if (param.status != 0) {
- uni.showModal({
- title: '娓╅Θ鎻愮ず',
- content: '璁惧杩愮淮缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟?',
- success: function(res) {
- if (res.confirm) {
- uni.redirectTo({
- url: '/pages/workOrder/edit'
- })
- } else if (res.cancel) {
- uni.navigateBack()
+ if (res && res.code == 200) {
+ if (param.status != 0) {
+ uni.showModal({
+ title: '娓╅Θ鎻愮ず',
+ content: '璁惧杩愮淮缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟?',
+ success: function(res) {
+ if (res.confirm) {
+ uni.redirectTo({
+ url: '/pages/workOrder/edit'
+ })
+ } else if (res.cancel) {
+ uni.navigateBack()
+ }
}
- }
- });
- }else{
- this.showToast('鎻愪氦鎴愬姛')
- uni.navigateBack()
+ });
+ } else {
+ this.showToast('鎻愪氦鎴愬姛')
+ uni.navigateBack()
+ }
}
+
})
},
getDevice() {
@@ -285,19 +288,19 @@
qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
},
(decodeText, decodeResult) => {
- if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
- this.stopScan(); //鍏抽棴鎵爜鍔熻兘
- getFindByCode(decodeText).then(ress => {
- if (ress.data) {
- console.log('ress', ress.data);
- this.$set(this.param, 'deviceCode', ress.data.code)
- this.$set(this.param, 'deviceId', ress.data.id)
- this.$set(this.param, 'deviceName', ress.data.name)
- } else {
- this.showToast('鏈尮閰嶅埌宸℃鐐�,璇烽噸鏂版壂鎻�')
- }
+ if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
+ this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+ getFindByCode(decodeText).then(ress => {
+ if (ress.data) {
+ console.log('ress', ress.data);
+ this.$set(this.param, 'deviceCode', ress.data.code)
+ this.$set(this.param, 'deviceId', ress.data.id)
+ this.$set(this.param, 'deviceName', ress.data.name)
+ } else {
+ this.showToast('鏈尮閰嶅埌宸℃鐐�,璇烽噸鏂版壂鎻�')
+ }
})
-
+
}
},
(err) => {
diff --git a/h5/pages/polling/detail.vue b/h5/pages/polling/detail.vue
index 2f2620a..228733e 100644
--- a/h5/pages/polling/detail.vue
+++ b/h5/pages/polling/detail.vue
@@ -42,7 +42,7 @@
<template v-if="item.status == 1">
<view class="line">
<view class="la">宸℃缁撴灉锛�</view>
- <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? '姝e父' : '寮傚父' }}</view>
+ <view class="val" :class="{ red: item.dealStatus == 1 }">{{ item.dealStatus == 0 ? '姝e父' : item.dealStatus == 1 ? '寮傚父' : '-' }}</view>
</view>
<view class="line">
<view class="la">宸℃鏃堕棿锛�</view>
@@ -83,7 +83,8 @@
id: '',
info: {},
list: [],
- flag: false,
+ flag: false,
+ userInfo: uni.getStorageSync('userInfo') || {},
statusM: [{
color: '#4593f7',
name: '寰呭紑濮�'
@@ -180,8 +181,10 @@
ywPatrolDetail(id).then(res => {
this.info = res.data
let time = new Date(res.data.startDate).getTime()
- console.log('res.data.startDate', new Date().getTime());
- this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1)
+ console.log('res.data.startDate', new Date().getTime());
+ if(res.data.userIds.indexOf(this.userInfo.id) > -1){
+ this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1 || this.info.status == 2)
+ }
})
ywPatrolTaskRecord({
capacity: 999,
diff --git a/h5/pages/polling/empty.vue b/h5/pages/polling/empty.vue
new file mode 100644
index 0000000..9b78f4f
--- /dev/null
+++ b/h5/pages/polling/empty.vue
@@ -0,0 +1,60 @@
+<template>
+ <view class="main_app">
+ <image class="logo" src="@/static/side/default_empty@2x.png" mode=""></image>
+ <view class="message">{{message}}</view>
+ <view class="btn" @click="backHome">杩斿洖涓婚〉</view>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ message: ''
+ };
+ },
+ onLoad(op) {
+ this.message = op.message || ''
+ },
+ methods: {
+ backHome(){
+ uni.redirectTo({
+ url: '/pages/index'
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+.main_app{
+ .logo{
+ width: 272rpx;
+ height: 228rpx;
+ margin: 60% auto 0;
+ }
+ .message{
+ font-weight: 500;
+ font-size: 30rpx;
+ color: #222222;
+ margin-top: 20rpx;
+ text-align: center;
+ }
+ .btn{
+ position: fixed;
+ bottom: 64rpx;
+ left: 40rpx;
+ width: 670rpx;
+ height: 88rpx;
+ background: #0068FF;
+ box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,104,255,0.3);
+ border-radius: 44rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #FFFFFF;
+ }
+}
+</style>
diff --git a/h5/pages/polling/point.vue b/h5/pages/polling/point.vue
index 122737b..b85c9d8 100644
--- a/h5/pages/polling/point.vue
+++ b/h5/pages/polling/point.vue
@@ -8,7 +8,8 @@
<template v-if="info.status == 1">
<view class="line">
<div class="la">宸℃缁撴灉锛�</div>
- <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? '姝e父' : '寮傚父' }}
+ <div class="val primaryColor" :class="{red: info.dealStatus == 1}">
+ {{ info.dealStatus == 0 ? '姝e父' : info.dealStatus == 1 ? '寮傚父' : '-' }}
</div>
</view>
<view class="line">
@@ -28,11 +29,11 @@
<view class="files">
<view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.multifileList" :key="i">
<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
- <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
- <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
- class="video" :enable-progress-gesture="false" muted />
- <image src="@/static/play.png" class="play" mode=""></image>
+ <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
+ <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
+ <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
</view>
</view>
</view>
@@ -101,13 +102,13 @@
@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
<u-picker :show="isShowRes" keyName="name" @cancel="isShowRes = false" @confirm='confirmRes'
:columns="columns"></u-picker>
- <!-- -->
- <view v-if="videoPlay" class="video_app">
- <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
- :src="videoUrl" @fullscreenchange="screenChange"></video>
- <view class="bg" @click="closeVideo"></view>
- </view>
- <!-- -->
+ <!-- -->
+ <view v-if="videoPlay" class="video_app">
+ <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
+ :src="videoUrl" @fullscreenchange="screenChange"></video>
+ <view class="bg" @click="closeVideo"></view>
+ </view>
+ <!-- -->
</view>
</template>
@@ -141,16 +142,16 @@
id: 1,
name: '寮傚父'
},
- {
- id: '',
- name: '璺宠繃'
- },
+ // {
+ // id: 2,
+ // name: '璺宠繃'
+ // },
]
- ],
-
- videoPlay: false,
- videoContext: null,
- videoUrl: ''
+ ],
+
+ videoPlay: false,
+ videoContext: null,
+ videoUrl: ''
};
},
onLoad(option) {
@@ -170,32 +171,35 @@
multifileList: fileList,
id,
}).then(res => {
- if (handleParam.dealStatus == 1) {
- return uni.showModal({
- title: '娓╅Θ鎻愮ず',
- content: '宸℃缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟锛�',
- success: (res) => {
- if (res.confirm) {
- this.showToast('鎿嶄綔鎴愬姛')
- setTimeout(() => {
- uni.redirectTo({
- url: '/pages/workOrder/edit'
- })
- }, 300)
- }else{
- this.showToast('鎿嶄綔鎴愬姛')
- setTimeout(() => {
- uni.navigateBack()
- }, 300)
+ if (res.code == 200) {
+ if (handleParam.dealStatus == 1) {
+ return uni.showModal({
+ title: '娓╅Θ鎻愮ず',
+ content: '宸℃缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟锛�',
+ success: (res) => {
+ if (res.confirm) {
+ this.showToast('鎿嶄綔鎴愬姛')
+ setTimeout(() => {
+ uni.redirectTo({
+ url: '/pages/workOrder/edit'
+ })
+ }, 300)
+ } else {
+ this.showToast('鎿嶄綔鎴愬姛')
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
}
- }
- });
- } else {
- this.showToast('鎿嶄綔鎴愬姛')
- setTimeout(() => {
- uni.navigateBack()
- }, 300)
+ });
+ } else {
+ this.showToast('鎿嶄綔鎴愬姛')
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
}
+
})
},
getDetail() {
@@ -219,26 +223,26 @@
this.$set(this.handleParam, 'dealStatus', e.value[0].id)
this.$set(this.handleParam, 'dealName', e.value[0].name)
this.isShowRes = false
- },
- videoClick(item) {
- this.videoPlay = true;
- this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶
- this.videoUrl = item.fileurlFull;
- this.videoContext.requestFullScreen();
- this.$nextTick(() => {
- this.videoContext.play();
- })
- },
- screenChange(e) {
- let fullScreen = e.detail.fullScreen // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
- if (!fullScreen) {
- //閫�鍑哄叏灞�
- this.videoPlay = false // 闅愯棌鎾斁鐩掑瓙
- }
- },
- closeVideo() {
- this.videoPlay = false
- this.videoContext = null
+ },
+ videoClick(item) {
+ this.videoPlay = true;
+ this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶
+ this.videoUrl = item.fileurlFull;
+ this.videoContext.requestFullScreen();
+ this.$nextTick(() => {
+ this.videoContext.play();
+ })
+ },
+ screenChange(e) {
+ let fullScreen = e.detail.fullScreen // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
+ if (!fullScreen) {
+ //閫�鍑哄叏灞�
+ this.videoPlay = false // 闅愯棌鎾斁鐩掑瓙
+ }
+ },
+ closeVideo() {
+ this.videoPlay = false
+ this.videoContext = null
},
fileDel(str, i) {
this[str].splice(i, 1);
@@ -505,51 +509,53 @@
image {
width: 100%;
height: 100%;
- }
- video {
- width: 100%;
- height: 100%;
}
- .video_wrap {
- position: relative;
- border: 1px solid;
- width: 156rpx;
- height: 156rpx;
- border-radius: 4rpx;
-
- .play {
- width: 60rpx !important;
- height: 60rpx !important;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
+
+ video {
+ width: 100%;
+ height: 100%;
}
- }
-
- .video_app {
- overflow: hidden;
- position: fixed;
- left: 0;
- top: 0;
- width: 100vw;
- height: 100vh;
- display: flex;
- align-items: center;
- z-index: 9990;
-
- .bg {
- background-color: rgba(0, 0, 0, .6);
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: -1;
- }
-
- video {
- width: 100%;
- height: 42vh;
- }
+
+ .video_wrap {
+ position: relative;
+ border: 1px solid;
+ width: 156rpx;
+ height: 156rpx;
+ border-radius: 4rpx;
+
+ .play {
+ width: 60rpx !important;
+ height: 60rpx !important;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+ }
+
+ .video_app {
+ overflow: hidden;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ align-items: center;
+ z-index: 9990;
+
+ .bg {
+ background-color: rgba(0, 0, 0, .6);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ }
+
+ video {
+ width: 100%;
+ height: 42vh;
+ }
}
</style>
\ No newline at end of file
diff --git a/h5/pages/polling/task.vue b/h5/pages/polling/task.vue
index e76a9cc..0981643 100644
--- a/h5/pages/polling/task.vue
+++ b/h5/pages/polling/task.vue
@@ -44,7 +44,7 @@
<view class="line" @click="itemClick(item)">鎵ц鏃堕棿锛歿{ item.startDate.slice(11, 16) }} 鑷� {{ item.endDate.slice(11, 16) }}</view>
<view class="line">
<view @click="itemClick(item)">瀹屾垚鎯呭喌锛歿{item.finishNum || 0}}/{{item.patrolNum}}</view>
- <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1)" class="btn" @click="openSc(item)">
+ <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1 || item.status == 2)" class="btn" @click="openSc(item)">
<image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
<view>鎵爜宸℃</view>
</view>
@@ -195,7 +195,8 @@
this.list = [...this.list, ...res.data.records]
this.list.forEach(item => {
let time = new Date(item.startDate).getTime()
- item.flag = new Date().getTime() > time
+ let userInfo = uni.getStorageSync('userInfo') || {}
+ item.flag = new Date().getTime() > time && item.userIds.indexOf(userInfo.id) > -1
})
this.total = res.data.total
})
diff --git a/h5/pages/workOrder/edit.vue b/h5/pages/workOrder/edit.vue
index ff72df9..653c56c 100644
--- a/h5/pages/workOrder/edit.vue
+++ b/h5/pages/workOrder/edit.vue
@@ -22,7 +22,8 @@
<view class="la"><text class="red">*</text>宸ュ崟鍒嗙被</view>
<view class="line sel_wrap" @click="showCate1 = true">
<view class="left" :class="param.cateName ? '' : 'placeholder9'">
- {{ param.cateName ? param.cateName : '璇烽�夋嫨' }}</view>
+ {{ param.cateName ? param.cateName : '璇烽�夋嫨' }}
+ </view>
<u-icon name="arrow-right" color="#999999" size="15"></u-icon>
</view>
</view>
@@ -51,7 +52,8 @@
<u-icon class="close" size="20" name="close-circle-fill" color="red"
@click="fileDel('fileList', i)"></u-icon>
<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <video v-if="item.type == 1" :show-center-play-btn="false" :src="item.fileurlFull" :controls="false"></video>
+ <video v-if="item.type == 1" :show-center-play-btn="false" :src="item.fileurlFull"
+ :controls="false"></video>
</view>
</view>
</view>
@@ -142,20 +144,22 @@
const {
param,
fileList
- } = this
- if (!param.projectId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
- if (!param.buildingId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
- if (!param.floorName && !param.roomNum) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ } = this
+ if (!param.projectId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ if (!param.buildingId) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
+ if (!param.floorName && !param.roomNum) return this.showToast('璇烽�夋嫨瀹屾暣鐨勫尯鍩�')
if (!param.cateName) return this.showToast('璇烽�夋嫨宸ュ崟鍒嗙被')
ywWorkorderCreate({
...param,
// roomId: '',
fileList
}).then(res => {
- this.showToast('鎻愪氦鎴愬姛')
- uni.redirectTo({
- url: '/pages/workOrder/list'
- })
+ if (res && res.code == 200) {
+ this.showToast('鎻愪氦鎴愬姛')
+ uni.redirectTo({
+ url: '/pages/workOrder/list'
+ })
+ }
})
},
changeHandler(e) {
@@ -167,8 +171,8 @@
// 寰俊灏忕▼搴忔棤娉曞皢picker瀹炰緥浼犲嚭鏉ワ紝鍙兘閫氳繃ref鎿嶄綔
picker = this.$refs.uPicker
} = e
- // 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
- console.log(index);
+ // 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
+ console.log(index);
console.log(index);
if (columnIndex === 0) {
// picker涓洪�夋嫨鍣╰his瀹炰緥锛屽彉鍖栫浜屽垪瀵瑰簲鐨勯�夐」
@@ -176,13 +180,13 @@
}
},
confirmCate1(e) {
- console.log(e.value[1]);
- if(e.value.length == 2){
- this.$set(this.param, 'cateId', e.value[1].id)
- this.$set(this.param, 'cateName', e.value[1].name)
- this.showCate1 = false
- }
-
+ console.log(e.value[1]);
+ if (e.value.length == 2) {
+ this.$set(this.param, 'cateId', e.value[1].id)
+ this.$set(this.param, 'cateName', e.value[1].name)
+ this.showCate1 = false
+ }
+
},
confirm0(e) {
const item = e.value[0]
@@ -431,9 +435,9 @@
position: absolute;
right: -20rpx;
top: -20rpx;
- z-index: 9999;
- background-color: #fff;
- border-radius: 50%;
+ z-index: 9999;
+ background-color: #fff;
+ border-radius: 50%;
overflow: hidden;
}
@@ -456,7 +460,7 @@
// bottom: 68rpx;
// left: 40rpx;
width: 670rpx;
- height: 88rpx;
+ height: 88rpx;
margin-top: 80rpx;
background: $primaryColor;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
diff --git a/h5/pages/workOrder/problemEdit.vue b/h5/pages/workOrder/problemEdit.vue
index 0cf8f09..568c592 100644
--- a/h5/pages/workOrder/problemEdit.vue
+++ b/h5/pages/workOrder/problemEdit.vue
@@ -83,12 +83,14 @@
ywProblemCreate({
...param,
fileList
- }).then(res => {
- this.showToast('鎻愪氦鎴愬姛')
- this.param = {}
- uni.navigateTo({
- url: '/pages/workOrder/result'
- })
+ }).then(res => {
+ if(res && res.code == 200){
+ this.showToast('鎻愪氦鎴愬姛')
+ this.param = {}
+ uni.navigateTo({
+ url: '/pages/workOrder/result'
+ })
+ }
})
},
fileDel(str, i) {
diff --git a/h5/pages/workOrder/wait.vue b/h5/pages/workOrder/wait.vue
index d3fd3e1..6d0ee7c 100644
--- a/h5/pages/workOrder/wait.vue
+++ b/h5/pages/workOrder/wait.vue
@@ -28,7 +28,7 @@
<view v-if="item.status == 0 && item.param3 == 0 && (item.type == 0 || item.type == 1)" class="status">鏈紑濮�
</view>
<view v-if="item.status == 0 && item.param3 == 1 && (item.type == 0 || item.type == 1)"
- class="status green">杩涜涓�</view>
+ class="status green">{{ item.type == 0 ? '鐩樼偣涓�' : '杩涜涓�' }}</view>
<view v-if="item.status == 1 && item.type == 2" class="status gray">宸插鐞�</view>
<view v-if="item.status == 1 && (item.type == 0 || item.type == 1)" class="status gray">宸插畬鎴�</view>
</view>
@@ -37,7 +37,7 @@
<view class="text">鎵ц鏃堕棿锛歿{item.obj.key3}}</view>
<view class="text">
<view class="">宸℃璐熻矗浜猴細{{item.obj.key4}}</view>
- <view class="btn" @click.stop="openSc(item)">
+ <view v-if="queryStatus == 0" class="btn" @click.stop="openSc(item)">
<image src="@/static/side/ic_saoma@2x.png" mode=""></image>
<view v-if="item.status == 0" class="">鎵爜宸℃</view>
</view>
@@ -249,7 +249,7 @@
.tabs {
display: flex;
width: 750rpx;
- margin: 12rpx 0rpx 0;
+ margin: 0rpx 0rpx 0;
border-bottom: 1rpx solid #E5E5E5;
background-color: #fff;
diff --git a/h5/static/side/default_empty@2x.png b/h5/static/side/default_empty@2x.png
new file mode 100644
index 0000000..72c83fd
--- /dev/null
+++ b/h5/static/side/default_empty@2x.png
Binary files differ
diff --git a/h5/utils/service.js b/h5/utils/service.js
index 0a05213..6df5176 100644
--- a/h5/utils/service.js
+++ b/h5/utils/service.js
@@ -37,10 +37,10 @@
if (data.code === 500 || data.code === 5112) {
uni.clearStorageSync()
return uni.navigateTo({
- url: '/pages/login/login'
+ url: '/pages/login'
})
}
- return
+ return resolve(data)
}
resolve(data)
// return response.data
diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml
index 6503fa3..8994b05 100644
--- a/server/system_gateway/src/main/resources/application.yml
+++ b/server/system_gateway/src/main/resources/application.yml
@@ -1,6 +1,6 @@
# 椤圭洰淇℃伅閰嶇疆
project:
- name: 瀹夋嘲鐗╂祦璁垮绯荤粺
+ name: 闃滃畞鍦洪杩愮淮
version: 1.0.0
env: development
# env: production
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 8ecd0a5..bbb8fb4 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,11 +1,11 @@
spring:
profiles:
- active: dev
+ active: pro
application:
name: system_gateway
# 瀹夊叏閰嶇疆
- security:
# 楠岀鍏挜鍦板潃
+ security:
oauth2:
authorizationserver:
token-uri: https://
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
new file mode 100644
index 0000000..716e7b5
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
@@ -0,0 +1,60 @@
+package com.doumee.dao.system.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/05/04 18:21
+ */
+@Data
+@ApiModel("瀵煎叆鐗╂枡淇℃伅")
+public class ImportMaterialDTO {
+
+ @ApiModelProperty(value = "鐗╂枡缂栧彿")
+ @ExcelColumn(name="鐗╂枡缂栧彿",index = 0,width = 10)
+ private String code;
+
+ @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
+ private String name;
+
+ @ApiModelProperty(value = "鐗╂枡鍒嗙被")
+ @ExcelColumn(name="鐗╂枡鍒嗙被",index = 2,width = 10)
+ private String categoryName;
+
+ @ApiModelProperty(value = "鐗╂枡瀛愬垎绫�")
+ @ExcelColumn(name="鐗╂枡瀛愬垎绫�",index = 3,width = 10)
+ private String categoryChildName;
+
+ @ApiModelProperty(value = "鏉$爜")
+ @ExcelColumn(name="鏉$爜",index = 4,width = 10)
+ private String qrcode;
+
+ @ApiModelProperty(value = "鍝佺墝")
+ @ExcelColumn(name="鍝佺墝",index = 5,width = 10)
+ private String brand;
+
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 6,width = 10)
+ private String attr;
+
+ @ApiModelProperty(value = "鍗曚綅")
+ @ExcelColumn(name="鍗曚綅",index = 7,width = 10)
+ private String unitName;
+
+ @ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笅闄愶級", example = "1")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級",index = 8,width = 16)
+ private BigDecimal minStock;
+
+ @ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笂闄愶級", example = "1")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級",index = 9,width = 16)
+ private BigDecimal maxStock;
+
+
+
+}
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index 3dd4077..3a31274 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -98,4 +98,11 @@
@GetMapping("/timer/yw/ywPatrolSchemeTaskTimer")
ApiResponse ywPatrolSchemeTaskTimer();
+ @ApiOperation("銆愰槣瀹佽繍缁淬�戝畾鏃舵洿鏂版埧婧愮璧佺姸鎬�")
+ @GetMapping("/timer/yw/ywRoomStatusTimer")
+ ApiResponse ywRoomStatusTimer();
+
+
+
+
}
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
index eda709f..4d0d49f 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
@@ -83,6 +83,17 @@
}
+
+ @ApiOperation("瀹氭椂鏇存柊鎴挎簮绉熻祦鐘舵��")
+ @GetMapping("/ywRoomStatusTimer")
+ public ApiResponse ywRoomStatusTimer() {
+ ywContractService.updRentContractStatus();
+ ywContractService.updRoomLeaseNowStatus();
+ return ApiResponse.success("瀹氭椂鏇存柊鎴挎簮绉熻祦鐘舵�佷换鍔℃墽琛屼腑");
+ }
+
+
+
@ApiOperation("瀹氭椂鏇存柊redis鏁版嵁")
@GetMapping("/ywUpdRedisDataTimer")
public ApiResponse ywUpdRedisDataTimer() {
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
index e5f73cb..6386c16 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -20,6 +20,7 @@
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberCard;
import com.doumee.dao.business.model.MemberRole;
+import com.doumee.dao.business.vo.MemberExcelVO;
import com.doumee.dao.system.dto.UpdatePwdDto;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.ext.ERPSyncService;
@@ -27,6 +28,7 @@
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl;
import io.swagger.annotations.*;
import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -412,4 +414,18 @@
return ApiResponse.success(memberService.ywFindPage(pageWrap));
}
+
+ @ApiOperation("闃滃畞 - 瀵煎嚭Excel")
+ @PostMapping("/ywExportExcel")
+ @CloudRequiredPermission("business:member:exportExcel")
+ public void ywExportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ List<Member> memberList = memberService.ywFindPage(pageWrap).getRecords();
+ List<MemberExcelVO> memberExcelVOList = new ArrayList<MemberExcelVO>();
+ for (Member member:memberList) {
+ MemberExcelVO memberExcelVO = new MemberExcelVO();
+ BeanUtils.copyProperties(member,memberExcelVO);
+ memberExcelVOList.add(memberExcelVO);
+ }
+ ExcelExporter.build(MemberExcelVO.class).export(memberExcelVOList, "浜哄憳淇℃伅琛�", response);
+ }
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java
index 23eccac..11c08ca 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java
@@ -49,11 +49,30 @@
@LoginNoRequired
@PreventRepeat
- @ApiOperation("鑷畾涔夌煭淇″唴瀹�")
- @PostMapping("/testSendSms")
- public ApiResponse testSendSms(@RequestBody SmsEmail smsEmail) {
+ @ApiOperation("鑷畾涔夌煭淇″唴瀹筯k")
+ @PostMapping("/testSendSmsHk")
+ public ApiResponse testSendSmsHk(@RequestBody SmsEmail smsEmail) {
emayService.sendSmsByHk(smsEmail.getPhone(),smsEmail.getContent());
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+
+
+ @LoginNoRequired
+ @PreventRepeat
+ @ApiOperation("鑷畾涔夌煭淇″唴瀹�")
+ @PostMapping("/testSendSms")
+ public ApiResponse testSendSms(@RequestBody SmsEmail smsEmail) {
+ smsEmailService.sendBillSms(smsEmail.getContent(),smsEmail.getPhone(),null);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @LoginNoRequired
+ @PreventRepeat
+ @ApiOperation("鑷畾涔夐偖浠跺唴瀹�")
+ @PostMapping("/testSendEmail")
+ public ApiResponse testSendEmail(@RequestBody SmsEmail smsEmail) {
+ smsEmailService.sendEmail(smsEmail.getEmail(),smsEmail.getContent(),null);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
index 1d6d9d6..4916c65 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
@@ -14,6 +14,7 @@
import com.doumee.dao.business.vo.YwContractBillCallDataVO;
import com.doumee.dao.business.vo.YwContractBillDataVO;
import com.doumee.service.business.YwContractBillService;
+import com.doumee.service.business.YwContractService;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -38,6 +39,9 @@
@Autowired
private SmsEmailServiceImpl smsEmailService;
+
+ @Autowired
+ private YwContractService ywContractService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -129,6 +133,15 @@
return ApiResponse.success("鐢熸垚鎴愬姛");
}
+ @LoginNoRequired
+ @ApiOperation("鏇存柊鎴挎簮绉熻祦鐘舵��")
+ @GetMapping("/dealRoomStatus")
+ public ApiResponse dealRoomStatus() {
+ ywContractService.updRentContractStatus();
+ ywContractService.updRoomLeaseNowStatus();
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
@ApiOperation("鑾峰彇寰呭鐞嗚处鍗�")
@GetMapping("/getWaitDealList")
@CloudRequiredPermission("business:ywcontractbill:query")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
index 4470c79..1929afc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
@@ -10,13 +10,15 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwMaterial;
import com.doumee.service.business.YwMaterialService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+import io.swagger.annotations.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -91,7 +93,7 @@
@PostMapping("/exportExcel")
@CloudRequiredPermission("business:ywmaterial:exportExcel")
public void exportExcel (@RequestBody PageWrap<YwMaterial> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
- ExcelExporter.build(YwMaterial.class).export(ywMaterialService.findPage(pageWrap).getRecords(), "杩愮淮璧勪骇淇℃伅琛�", response);
+ ExcelExporter.build(YwMaterial.class).export(ywMaterialService.findPage(pageWrap).getRecords(), "鐗╂枡淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
@@ -100,4 +102,15 @@
public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
return ApiResponse.success(ywMaterialService.getDetail(id));
}
+
+
+ @ApiOperation("鐗╂枡淇℃伅瀵煎叆")
+ @PostMapping("/importMaterialBatch")
+ @CloudRequiredPermission("business:ywmaterial:query")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+ })
+ public ApiResponse importMaterialBatch(@ApiParam(value = "file") MultipartFile file,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(ywMaterialService.importMaterialBatch(file,getLoginUser(token)));
+ }
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java
index 07544f7..9ac8faf 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java
@@ -1,5 +1,6 @@
package com.doumee.cloud.admin;
+import cn.emay.sdk.util.StringUtil;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.core.annotation.excel.ExcelExporter;
@@ -9,10 +10,13 @@
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwOutinbound;
+import com.doumee.dao.business.model.YwOutinboundRecord;
+import com.doumee.dao.business.vo.YwOutinboundExcelInVO;
+import com.doumee.dao.business.vo.YwOutinboundExcelOutVO;
import com.doumee.service.business.YwOutinboundService;
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;
@@ -82,7 +86,37 @@
@PostMapping("/exportExcel")
@CloudRequiredPermission("business:ywoutinbound:exportExcel")
public void exportExcel (@RequestBody PageWrap<YwOutinbound> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
- ExcelExporter.build(YwOutinbound.class).export(ywOutinboundService.findPage(pageWrap).getRecords(), "杩愮淮鍑哄叆搴撲俊鎭〃", response);
+ List<YwOutinbound> ywOutinboundList = ywOutinboundService.findPage(pageWrap).getRecords();
+ Integer inOut = pageWrap.getModel().getInOut();
+ if(Constants.equalsInteger(inOut,Constants.ZERO)){
+ List<YwOutinboundExcelInVO> inList = new ArrayList<>();
+ for (YwOutinbound ywOutinbound:ywOutinboundList) {
+ YwOutinboundExcelInVO inVO = new YwOutinboundExcelInVO();
+ BeanUtils.copyProperties(ywOutinbound,inVO);
+ List<YwOutinboundRecord> ywOutinboundRecordList = ywOutinbound.getRecordList();
+ StringBuffer stringBuffer = new StringBuffer();
+ for (YwOutinboundRecord ywOutinboundRecord:ywOutinboundRecordList) {
+ stringBuffer.append(ywOutinboundRecord.getMaterialName()+"["+ywOutinboundRecord.getMaterialCode()+"]*"+ywOutinboundRecord.getStock()+ywOutinboundRecord.getMaterialUnitName()+";");
+ }
+ inVO.setOutMaterialNum(stringBuffer.toString());
+ inList.add(inVO);
+ }
+ ExcelExporter.build(YwOutinboundExcelInVO.class).export(inList, "鍏ュ簱淇℃伅琛�", response);
+ }else{
+ List<YwOutinboundExcelOutVO> outList = new ArrayList<>();
+ for (YwOutinbound ywOutinbound:ywOutinboundList) {
+ YwOutinboundExcelOutVO ywOutinboundExcelOutVO = new YwOutinboundExcelOutVO();
+ BeanUtils.copyProperties(ywOutinbound,ywOutinboundExcelOutVO);
+ List<YwOutinboundRecord> ywOutinboundRecordList = ywOutinbound.getRecordList();
+ StringBuffer stringBuffer = new StringBuffer();
+ for (YwOutinboundRecord ywOutinboundRecord:ywOutinboundRecordList) {
+ stringBuffer.append(ywOutinboundRecord.getMaterialName()+"["+ywOutinboundRecord.getMaterialCode()+"]*"+ywOutinboundRecord.getStock()+ywOutinboundRecord.getMaterialUnitName()+";");
+ }
+ ywOutinboundExcelOutVO.setOutMaterialNum(stringBuffer.toString());
+ outList.add(ywOutinboundExcelOutVO);
+ }
+ ExcelExporter.build(YwOutinboundExcelOutVO.class).export(outList, "鍑哄簱淇℃伅琛�", response);
+ }
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java
index bfe3148..7676246 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java
@@ -8,7 +8,9 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.YwPatrolTask;
import com.doumee.dao.business.model.YwStock;
+import com.doumee.dao.business.model.YwWorkorder;
import com.doumee.service.business.YwStockService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -80,9 +82,10 @@
@PostMapping("/exportExcel")
@CloudRequiredPermission("business:ywstock:exportExcel")
public void exportExcel (@RequestBody PageWrap<YwStock> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
- ExcelExporter.build(YwStock.class).export(ywStockService.findPage(pageWrap).getRecords(), "杩愮淮搴撳瓨淇℃伅琛�", response);
+ ExcelExporter.build(YwStock.class).export(ywStockService.findPage(pageWrap).getRecords(), "搴撳瓨淇℃伅琛╛"+System.currentTimeMillis(), response);
}
+
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
@CloudRequiredPermission("business:ywstock:query")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
index e0c27a1..9adc1f6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
@@ -94,7 +94,7 @@
IContext context = report.createContext();
for (YwTempConfig ywTempConfig:ywTempConfigList) {
if(StringUtils.isBlank(ywTempConfig.getUrl())){
- ywTempConfig.setUrl("-");
+ ywTempConfig.setUrl(" - ");
}
context.put(ywTempConfig.getTitle().replace("${","").replace("}",""), ywTempConfig.getUrl());
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index 399570e..4e1b250 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -222,7 +222,6 @@
private String email;
-
@ApiModelProperty(value = "鏈�鍚庢搷浣滀汉")
@TableField(exist = false)
private String editorName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
index de03a54..e476672 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
@@ -204,6 +204,10 @@
@ExcelColumn(name="鐗╀笟璐规�婚噾棰�")
private BigDecimal wyTotalFee;
+ @ApiModelProperty(value = "鍚堝悓鐘舵�侀泦鍚�")
+ @TableField(exist = false)
+ private List<Integer> statusList;
+
@ApiModelProperty(value = "鎴块棿涓婚敭 鏌ヨ浣跨敤")
@TableField(exist = false)
private Integer roomId;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
index c59d394..dadcb8f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
@@ -157,11 +157,11 @@
@TableField(exist = false)
private Integer customerId;
- @ApiModelProperty(value = "鏄惁鍙戦�侀偖浠讹細0=鍚︼紱1=鏄�", example = "1")
+ @ApiModelProperty(value = "鏄惁鍙戦�侀偖浠讹細0=鍚︼紱1=鍙戦�佹垚鍔燂紱2=鍙戦�佸け璐�", example = "1")
@TableField(exist = false)
private Integer isSendEmail;
- @ApiModelProperty(value = "鏄惁鍙戦�佺煭淇★細0=鍚︼紱1=鏄�", example = "1")
+ @ApiModelProperty(value = "鏄惁鍙戦�佺煭淇★細0=鍚︼紱1=鍙戦�佹垚鍔燂紱2=鍙戦�佸け璐�", example = "1")
@TableField(exist = false)
private Integer isSendSms;
@@ -178,6 +178,7 @@
@ExcelColumn(name="鍚堝悓缂栧彿",index = 2,width = 10)
@TableField(exist = false)
private String contractCode;
+
@ApiModelProperty(value = "鍚堝悓鐘舵��", example = "1")
@TableField(exist = false)
private Integer contractStatus;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
index 1ab32e6..7438d92 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
@@ -32,7 +32,7 @@
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelColumn(name="鍒涘缓鏃堕棿",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ @ExcelColumn(name="鍒涘缓鏃堕棿",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss",width = 16)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
@@ -50,7 +50,7 @@
private String remark;
@ApiModelProperty(value = "鐘舵�� 0姝e父 1鎹熷潖 2鎶ュ簾", example = "1")
- @ExcelColumn(name="璁惧鐘舵��",index = 3, valueMapping = "0=姝e父;1=鎹熷潖;2=鎶ュ簾;")
+ @ExcelColumn(name="璁惧鐘舵��",index = 3, valueMapping = "0=姝e父;1=鎹熷潖;2=鎶ュ簾;",width = 10)
private Integer status;
@ApiModelProperty(value = "璁惧鍨嬪彿", example = "1")
@@ -67,7 +67,7 @@
private Date company;
@ApiModelProperty(value = "鎯呭喌璇存槑")
- @ExcelColumn(name="杩愮淮澶囨敞",index = 4)
+ @ExcelColumn(name="杩愮淮澶囨敞",index = 4,width = 30)
private String content;
@ApiModelProperty(value = "杩愮淮鏃堕棿")
@@ -75,17 +75,17 @@
private Date dealDate;
@ApiModelProperty(value = "璁惧鍚嶇О")
- @ExcelColumn(name="璁惧鍚嶇О",index = 2)
+ @ExcelColumn(name="璁惧鍚嶇О",index = 2,width = 20)
@TableField(exist = false)
private String deviceName;
@ApiModelProperty(value = "璁惧缂栧彿")
- @ExcelColumn(name="璁惧缂栧彿",index = 1)
+ @ExcelColumn(name="璁惧缂栧彿",index = 1,width = 10)
@TableField(exist = false)
private String deviceCode;
@ApiModelProperty(value = "杩愮淮浜哄悕绉�")
- @ExcelColumn(name="杩愮淮浜�",index = 0)
+ @ExcelColumn(name="杩愮淮浜�",index = 0,width = 10)
@TableField(exist = false)
private String realName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
index 37e6303..258a1c5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
@@ -26,89 +26,77 @@
@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="鍒涘缓鏃堕棿")
@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 = "鍚嶇О")
- @ExcelColumn(name="鍚嶇О")
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
private String name;
@ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
- @ExcelColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
+ @ExcelColumn(name="鐘舵��",index = 8,width = 8,valueMapping = "0=鍚敤;1=绂佺敤;")
private Integer status;
@ApiModelProperty(value = "缂栧彿")
- @ExcelColumn(name="缂栧彿")
+ @ExcelColumn(name="鐗╂枡缂栧彿",index = 0,width = 10)
private String code;
@ApiModelProperty(value = "鎵�灞炰竴绾у垎绫荤紪鐮侊紙鍏宠仈category)", example = "1")
- @ExcelColumn(name="鎵�灞炰竴绾у垎绫荤紪鐮侊紙鍏宠仈category)")
private Integer parentCateId;
@ApiModelProperty(value = "鎵�灞炰簩绾у垎绫荤紪鐮�(鍏宠仈category锛�", example = "1")
- @ExcelColumn(name="鎵�灞炰簩绾у垎绫荤紪鐮�(鍏宠仈category锛�")
private Integer cateId;
@ApiModelProperty(value = "鏉$爜")
- @ExcelColumn(name="鏉$爜")
+ @ExcelColumn(name="鏉$爜",index = 2,width = 10)
private String qrcode;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "鍝佺墝")
- @ExcelColumn(name="鍝佺墝")
+ @ExcelColumn(name="鍝佺墝",index = 3,width = 10)
private String brand;
@ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- @ExcelColumn(name="瑙勬牸鍨嬪彿")
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10)
private String attr;
@ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笅闄愶級", example = "1")
- @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級",index = 6,width = 16)
private BigDecimal minStock;
@ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笂闄愶級", example = "1")
- @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級",index = 7,width = 16)
private BigDecimal maxStock;
@ApiModelProperty(value = "鍗曚綅")
- @ExcelColumn(name="鍗曚綅")
+ @ExcelColumn(name="鍗曚綅",index = 5,width = 10)
private String unitName;
@ApiModelProperty(value = "鎵�灞炴埧婧愮紪鐮�(鍏宠仈yw_room)", example = "1")
- @ExcelColumn(name="鎵�灞炴埧婧愮紪鐮�(鍏宠仈yw_room)")
private Integer roomId;
@ApiModelProperty(value = "鏄惁鑷姩缂栫爜锛�0=鍚︼紱1=鏄紱", example = "1")
- @ExcelColumn(name="鏄惁鑷姩缂栫爜锛�0=鍚︼紱1=鏄紱")
private Integer autoCode;
@ApiModelProperty(value = "闄勪欢淇℃伅", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
index 36e1608..4ce319c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
@@ -92,6 +92,9 @@
@ExcelColumn(name="鍗曟嵁缂栧彿")
private String code;
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
+ private Integer outUserId;
+
@ApiModelProperty(value = "鍑哄叆搴撴暟鎹槑缁�", example = "1")
@TableField(exist = false)
private List<YwOutinboundRecord> recordList;
@@ -108,4 +111,8 @@
@ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
@TableField(exist = false)
private String createUserName;
+
+ @ApiModelProperty(value = "棰嗙敤浜哄悕绉�", example = "1")
+ @TableField(exist = false)
+ private String outUserName;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
index d8a3f12..ef8192b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
@@ -24,53 +24,47 @@
@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="鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelColumn(name="鍒涘缓鏃堕棿",width = 10,index = 11,dateFormat = "yyyy-MM-dd HH:mm:ss")
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 = "鍑哄叆搴撹褰曚富閿�", example = "1")
- @ExcelColumn(name="鍑哄叆搴撹褰曚富閿�")
private Integer outInBoundId;
@ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1")
- @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)")
private Integer materialId;
@ApiModelProperty(value = "鏁伴噺", example = "1")
- @ExcelColumn(name="鏁伴噺")
+ @ExcelColumn(name="鏁伴噺",width = 10,index = 5)
private BigDecimal stock;
@ApiModelProperty(value = "璧勪骇缂栫爜")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡缂栫爜",width = 10,index = 1)
private String materialCode;
@ApiModelProperty(value = "璧勪骇鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍚嶇О",width = 10,index = 2)
private String materialName;
@ApiModelProperty(value = "璧勪骇鏉″舰鐮�")
@@ -83,6 +77,7 @@
@ApiModelProperty(value = "璧勪骇鍗曚綅")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曚綅",width = 10,index = 6)
private String materialUnitName;
@ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�1=鍑哄簱锛�0=鍏ュ簱锛堝垎椤靛垪琛ㄦ煡璇娇鐢級", example = "1")
@@ -95,31 +90,38 @@
@ApiModelProperty(value = "浠撳簱鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="浠撳簱",width = 10,index = 8)
private String warehouseName;
@ApiModelProperty(value = "鍗曟嵁鏃ユ湡")
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
+ @ExcelColumn(name="鍗曟嵁鏃ユ湡",width = 10,index = 0,dateFormat = "yyyy-MM-dd")
private Date doneDate;
@ApiModelProperty(value = "涓�绾у垎绫诲悕绉�")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍒嗙被",width = 10,index = 3)
private String categoryParentName;
@ApiModelProperty(value = "浜岀骇鍒嗙被鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡瀛愬垎绫�",width = 10,index = 4)
private String categoryName;
@ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="鍒涘缓浜�",width = 10,index = 10)
private String createUserName;
@ApiModelProperty(value = "鍗曟嵁缂栧彿", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曟嵁缂栧彿",width = 10,index = 9)
private String code;
@ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="绫诲瀷",width = 10,index = 7,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;")
private Integer type;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
index 69f6075..2ea3bf2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
@@ -54,7 +54,7 @@
private String remark;
@ApiModelProperty(value = "鐘舵�� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�", example = "1")
- @ExcelColumn(name="鎵ц缁撴灉",index = 7,width = 6,valueMapping = "0=寰呭紑濮�;1=杩涜涓�;2=宸茶秴鏈�;3=宸插畬鎴�;")
+ @ExcelColumn(name="鎵ц缁撴灉",index = 7,width = 6,valueMapping = "0=寰呭紑濮�;1=杩涜涓�;2=宸茶秴鏈�;3=宸插畬鎴�;4=宸插彇娑�;")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -103,6 +103,9 @@
@TableField(exist = false)
private String userName;
+ @ApiModelProperty(value = "鍙鐞嗕汉锛堝涓互,鍒嗗壊锛�")
+ @TableField(exist = false)
+ private String userIds;
@ApiModelProperty(value = "浠诲姟鐘舵�侊細澶氫釜浠�,鍒嗗壊 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
index ef8a041..379c7ff 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
@@ -75,15 +75,15 @@
@ApiModelProperty(value = "澶勭悊鏃堕棿")
@ExcelColumn(name="澶勭悊鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dealDate;
@ApiModelProperty(value = "鏄惁宸℃ 0=寰呭紑濮嬶紱1=宸插贰妫�锛�", example = "1")
@ExcelColumn(name="鏄惁宸℃ 0=寰呭紑濮嬶紱1=宸插贰妫�")
private Integer status;
- @ApiModelProperty(value = "宸℃缁撴灉 0=姝e父锛�1=寮傚父", example = "1")
- @ExcelColumn(name="宸℃缁撴灉 0=姝e父锛�1=寮傚父")
+ @ApiModelProperty(value = "宸℃缁撴灉 0=姝e父锛�1=寮傚父;2=璺宠繃锛�", example = "1")
+ @ExcelColumn(name="宸℃缁撴灉 0=姝e父锛�1=寮傚父锛�2=璺宠繃锛�")
private Integer dealStatus;
@ApiModelProperty(value = "澶勭悊澶囨敞")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
index caa8f4a..d0434c4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
@@ -106,6 +106,13 @@
@ExcelColumn(name="鎵�灞炴ゼ瀹囩紪鐮侊紙鍏宠仈yw_building)")
private Integer buildingId;
+ @ApiModelProperty(value = "褰撳墠绉熻祦鐘舵�侊細0=鏈璧侊紱1=宸茬璧�")
+ private Integer leaseNowStatus;
+
+ @ApiModelProperty(value = "閫�绉熷埌鏈熸棩鏈燂紝閫�绉熶娇鐢�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date leaseRentDate;
+
@ApiModelProperty(value = "绉熻祦鐘舵�侊細0=寰呯璧侊紱1=宸茬璧� ;2=鏈紑鍚璧�", example = "1")
@TableField(exist = false)
private Integer leaseStatus;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
index dc2ec33..b402a67 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -20,65 +21,59 @@
@Data
@ApiModel("杩愮淮搴撳瓨淇℃伅琛�")
@TableName("`yw_stock`")
-public class YwStock {
+public class YwStock extends LoginUserModel {
@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="鍒涘缓鏃堕棿")
@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 = "浠撳簱缂栫爜(鍏宠仈yw_warehouse)")
- @ExcelColumn(name="浠撳簱缂栫爜(鍏宠仈yw_warehouse)")
private Integer warehouseId;
@ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1")
- @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)")
private Integer materialId;
@ApiModelProperty(value = "鏁伴噺", example = "1")
- @ExcelColumn(name="鏁伴噺")
+ @ExcelColumn(name="鏁伴噺",index = 6,width = 10)
private BigDecimal stock;
-
- @ApiModelProperty(value = "璧勪骇缂栫爜")
+ @ApiModelProperty(value = "鐗╂枡缂栫爜")
+ @ExcelColumn(name="鐗╂枡缂栫爜",index = 0,width = 10)
@TableField(exist = false)
private String materialCode;
- @ApiModelProperty(value = "璧勪骇鍚嶇О")
+ @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
@TableField(exist = false)
private String materialName;
- @ApiModelProperty(value = "璧勪骇鏉″舰鐮�")
+ @ApiModelProperty(value = "鏉$爜")
+ @ExcelColumn(name="鏉$爜",index = 2,width = 10)
@TableField(exist = false)
private String materialQrcode;
- @ApiModelProperty(value = "璧勪骇鍝佺墝")
+ @ApiModelProperty(value = "鍝佺墝")
+ @ExcelColumn(name="鍝佺墝",index = 3,width = 10)
@TableField(exist = false)
private String materialBrand;
@@ -86,11 +81,13 @@
@TableField(exist = false)
private String materialUnitName;
- @ApiModelProperty(value = "璧勪骇瑙勬牸鍨嬪彿")
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10)
@TableField(exist = false)
private String materialAttr;
- @ApiModelProperty(value = "浠撳簱鍚嶇О")
+ @ApiModelProperty(value = "鎵�鍦ㄤ粨搴�")
+ @ExcelColumn(name="鎵�鍦ㄤ粨搴�",index = 5,width = 10)
@TableField(exist = false)
private String warehouseName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
index 3addc97..ea7869f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
@@ -35,7 +35,7 @@
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@ExcelColumn(name="鍒涘缓鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
index 6672876..44c5b68 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
@@ -25,97 +25,91 @@
@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="鍒涘缓鏃堕棿")
@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="澶囨敞")
+ @ExcelColumn(name="澶囨敞",index = 9,width = 30)
private String remark;
@ApiModelProperty(value = "鐘舵�� 0鏈紑濮� 1宸茬洏鐐�", example = "1")
- @ExcelColumn(name="鐘舵�� 0鏈紑濮� 1宸茬洏鐐�")
private Integer status;
@ApiModelProperty(value = "鐩樼偣鍛樼紪鐮�(鍏宠仈system_user)")
- @ExcelColumn(name="鐩樼偣鍛樼紪鐮�(鍏宠仈system_user)")
private String userId;
@ApiModelProperty(value = "鐩樼偣鏃堕棿")
- @ExcelColumn(name="鐩樼偣鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date planDate;
@ApiModelProperty(value = "缂栧彿")
- @ExcelColumn(name="缂栧彿")
private String code;
@ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1")
- @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)")
private Integer materialId;
@ApiModelProperty(value = "璐﹂潰鏁伴噺", example = "1")
- @ExcelColumn(name="璐﹂潰鏁伴噺")
+ @ExcelColumn(name="璐﹂潰鏁伴噺",index = 7,width = 10)
private BigDecimal stock;
@ApiModelProperty(value = "瀹為檯鐩樼偣搴撳瓨閲�", example = "1")
- @ExcelColumn(name="瀹為檯鐩樼偣搴撳瓨閲�")
+ @ExcelColumn(name="鐩樼偣鏁伴噺",index = 8,width = 10)
private BigDecimal actStock;
@ApiModelProperty(value = "鐩樼偣 0璐﹀疄鐩哥 1鐩樹簭 2鐩樼泩", example = "1")
- @ExcelColumn(name="鐩樼偣 0璐﹀疄鐩哥 1鐩樹簭 2鐩樼泩")
private Integer type;
@ApiModelProperty(value = "鐩樼偣璁″垝缂栫爜(鍏宠仈yw_stocktaking)", example = "1")
- @ExcelColumn(name="鐩樼偣璁″垝缂栫爜(鍏宠仈yw_stocktaking)")
private Integer stocktakingId;
@ApiModelProperty(value = "璧勪骇缂栫爜")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡缂栫爜",index = 0,width = 10)
private String materialCode;
@ApiModelProperty(value = "璧勪骇鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
private String materialName;
@ApiModelProperty(value = "璧勪骇鏉″舰鐮�")
@TableField(exist = false)
+ @ExcelColumn(name="鏉$爜",index = 2,width = 10)
private String materialQrcode;
@ApiModelProperty(value = "璧勪骇鍝佺墝")
@TableField(exist = false)
+ @ExcelColumn(name="鍝佺墝",index = 3,width = 10)
private String materialBrand;
@ApiModelProperty(value = "璧勪骇瑙勬牸鍨嬪彿")
@TableField(exist = false)
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10)
private String materialAttr;
@ApiModelProperty(value = "璧勪骇鍗曚綅")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曚綅",index = 5,width = 10)
private String materialUnitName;
@ApiModelProperty(value = "浠撳簱鍚嶇О")
+ @ExcelColumn(name="浠撳簱",index = 6,width = 10)
@TableField(exist = false)
private String warehouseName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
index 6c80566..f2c95f8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
@@ -98,7 +98,7 @@
private String code;
@ApiModelProperty(value = "澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�", example = "1")
- @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呭鐞�;1=宸插垎娲�;2=宸插鐞�;")
+ @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呮寚娲�;1=宸叉寚娲�;2=宸插鐞�;")
private Integer dealStatus;
@ApiModelProperty(value = "鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java
new file mode 100644
index 0000000..210cdc9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java
@@ -0,0 +1,45 @@
+package com.doumee.dao.business.vo;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 浜哄憳淇℃伅琛�
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Data
+public class MemberExcelVO {
+
+ @ApiModelProperty(value = "瀹㈡埛鍚嶇О", example = "1")
+ @ExcelColumn(name="瀹㈡埛鍚嶇О",width = 10,index = 1)
+ private String customerName;
+
+ @ApiModelProperty(value = "鑱旂郴浜�", example = "1")
+ @ExcelColumn(name="鑱旂郴浜�",width = 10,index = 2)
+ private String name;
+
+ @ApiModelProperty(value = "鑱旂郴鐢佃瘽", example = "1")
+ @ExcelColumn(name="鑱旂郴鐢佃瘽",width = 10,index = 3)
+ private String phone;
+
+ @ApiModelProperty(value = "韬唤 0鑰佹澘/瓒呯骇绠$悊鍛� 1浜轰簨/绠$悊鍛� 2鍛樺伐/鏅�氬憳宸�", example = "1")
+ @ExcelColumn(name="韬唤",width = 10,index = 4,valueMapping = "0=鑰佹澘/瓒呯骇绠$悊鍛�;1=浜轰簨/绠$悊鍛�;2=鍛樺伐/鏅�氬憳宸�;")
+ private Integer highCheckor;
+
+ @ApiModelProperty(value = "鐘舵�� 0姝e父 1绂佺敤 2鎷夐粦/鍐荤粨", example = "1")
+ @ExcelColumn(name="韬唤",width = 10,index = 5,valueMapping = "0=姝e父;1=绂佺敤;")
+ private Integer status;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java
new file mode 100644
index 0000000..1766d31
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java
@@ -0,0 +1,50 @@
+package com.doumee.dao.business.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 杩愮淮鍑哄叆搴撲俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/01/06 11:05
+ */
+@Data
+public class YwOutinboundExcelInVO {
+
+ @ApiModelProperty(value = "鍗曟嵁缂栧彿")
+ @ExcelColumn(name="鍏ュ簱鍗曞彿",index = 0,width = 16)
+ private String code;
+
+ @ApiModelProperty(value = "浠撳簱鍚嶇О", example = "1")
+ @ExcelColumn(name="鍏ュ簱浠撳簱",index = 1,width = 16)
+ private String warehouseName;
+
+ @ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1")
+ @ExcelColumn(name="鍏ュ簱绫诲瀷",index = 2,width = 10,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;")
+ private Integer type;
+
+ @ApiModelProperty(value = "鍑哄簱鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @ExcelColumn(name="鍏ュ簱鏃ユ湡",index = 3,width = 16,dateFormat = "yyyy-MM-dd")
+ private Date doneDate;
+
+ @ApiModelProperty(value = "鍑哄簱鏁伴噺")
+ @ExcelColumn(name="鍏ュ簱鏁伴噺",index = 4,width = 16)
+ private String outMaterialNum;
+
+ @ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
+ @ExcelColumn(name="鎿嶄綔浜�",index = 5,width = 16)
+ private String createUserName;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelColumn(name="鎿嶄綔鏃堕棿",index = 6,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date createDate;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java
new file mode 100644
index 0000000..d2c86d6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java
@@ -0,0 +1,55 @@
+package com.doumee.dao.business.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.model.YwOutinboundRecord;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 杩愮淮鍑哄叆搴撲俊鎭〃
+ * @author 姹熻箘韫�
+ * @date 2025/01/06 11:05
+ */
+@Data
+public class YwOutinboundExcelOutVO {
+
+ @ApiModelProperty(value = "鍗曟嵁缂栧彿")
+ @ExcelColumn(name="鍑哄簱鍗曞彿",index = 0,width = 16)
+ private String code;
+
+ @ApiModelProperty(value = "浠撳簱鍚嶇О", example = "1")
+ @ExcelColumn(name="鍑哄簱浠撳簱",index = 1,width = 16)
+ private String warehouseName;
+
+ @ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1")
+ @ExcelColumn(name="鍑哄簱绫诲瀷",index = 2,width = 10,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;")
+ private Integer type;
+
+ @ApiModelProperty(value = "鍑哄簱鏃ユ湡")
+ @ExcelColumn(name="鍑哄簱鏃ユ湡",index = 3,width = 16,dateFormat = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date doneDate;
+
+ @ApiModelProperty(value = "鍑哄簱鏁伴噺")
+ @ExcelColumn(name="鍑哄簱鏁伴噺",index = 4,width = 16)
+ private String outMaterialNum;
+
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
+ @ExcelColumn(name="棰嗙敤浜�",index = 5,width = 16)
+ private String outUserName;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鎿嶄綔鏃堕棿",index = 6,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createDate;
+
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
+ @ExcelColumn(name="鎿嶄綔浜哄悕绉�",index = 7,width = 16)
+ private String createUserName;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
index 84f74eb..bca5059 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
@@ -102,5 +102,17 @@
void dealTimeOut();
+ /**
+ * 鍒版湡鍚堝悓 鏈彂璧烽��绉熺殑杩涜鏁版嵁璋冩暣 鎶婂悎鍚屼笅鐨勬埧婧愰噴鏀� 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ void updRoomLeaseNowStatus();
+
+
+ /**
+ * 閫�绉熶腑/宸查��绉熷悎鍚� 鎶婂埌浜嗛��绉熸棩鏈熸椂闂寸殑鏁版嵁 杩涜鎴挎簮閲婃斁 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ void updRentContractStatus();
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
index 6da3431..6e0c811 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
@@ -1,8 +1,11 @@
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.YwMaterial;
+import org.springframework.web.multipart.MultipartFile;
+
import java.util.List;
/**
@@ -98,4 +101,6 @@
long count(YwMaterial ywMaterial);
YwMaterial getDetail(Integer id);
+
+ Integer importMaterialBatch(MultipartFile file, LoginUserInfo loginUserInfo);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index e75dac5..5ae4161 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -7,8 +7,9 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.CategoryMapper;
-import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.model.*;
import com.doumee.service.business.CategoryService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -37,6 +38,22 @@
@Autowired
private CategoryMapper categoryMapper;
+ @Autowired
+ private YwCustomerMapper ywCustomerMapper;
+
+ @Autowired
+ private YwWorkorderMapper ywWorkorderMapper;
+
+ @Autowired
+ private YwPatrolPointMapper ywPatrolPointMapper;
+
+ @Autowired
+ private YwDeviceMapper ywDeviceMapper;
+
+ @Autowired
+ private YwMaterialMapper ywMaterialMapper;
+
+
@Override
public Integer create(Category category) {
checkUnique(category);
@@ -61,8 +78,32 @@
return insert.getId();
}
+
@Override
public void deleteById(Integer id) {
+ Category category = categoryMapper.selectById(id);
+ if(Objects.isNull(category)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+
+ if(categoryMapper.selectCount(new QueryWrapper<Category>().lambda()
+ .eq(Category::getIsdeleted,Constants.ZERO)
+ .eq(Category::getParentId,id)
+ )>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪瀛愰泦鏁版嵁,鏃犳硶杩涜鍒犻櫎");
+ }
+ //鏌ヨ鏁版嵁鏄惁宸蹭娇鐢� 3杩愮淮-宸ュ崟鍒嗙被 4杩愮淮-宸℃鍖哄煙 5杩愮淮-璁惧鍒嗙被 6=瀹㈡埛琛屼笟 7=璧勪骇鍒嗙被
+ if(Constants.equalsInteger(category.getType(),Constants.THREE)){
+ if(ywWorkorderMapper.selectCount(new QueryWrapper<YwWorkorder>().lambda().eq(YwWorkorder::getIsdeleted,Constants.ZERO).eq(YwWorkorder::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎");
+ }else if (Constants.equalsInteger(category.getType(),Constants.FOUR)){
+ if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO).eq(YwPatrolPoint::getAreaId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎");
+ }else if (Constants.equalsInteger(category.getType(),Constants.FIVE)){
+ if(ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎");
+ }else if (Constants.equalsInteger(category.getType(),Constants.SIX)){
+ if(ywCustomerMapper.selectCount(new QueryWrapper<YwCustomer>().lambda().eq(YwCustomer::getIsdeleted,Constants.ZERO).eq(YwCustomer::getIndustryId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎");
+ }else if (Constants.equalsInteger(category.getType(),Constants.SEVEN)){
+ if(ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getIsdeleted,Constants.ZERO).eq(YwMaterial::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎");
+ }
categoryMapper.update(null,new UpdateWrapper<Category>().lambda().set(Category::getIsdeleted,Constants.ONE)
.eq(Category::getId,id)
);
@@ -195,6 +236,8 @@
wrapper.lambda()
.ne(Objects.nonNull(category.getId()),Category::getId,category.getId())
.eq(Category::getIsdeleted,Constants.ZERO)
+ .eq(Objects.nonNull(category.getParentId()),Category::getParentId,category.getParentId())
+ .isNull(Objects.isNull(category.getParentId()),Category::getParentId)
.eq(Category::getType,category.getType())
.eq(Category::getName,category.getName());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 12976d2..135c516 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2231,12 +2231,12 @@
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "韬唤璇佸彿銆�"+member.getIdcardNo()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
}
}
- if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
- .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
- .eq(Member::getPhone, member.getPhone())
- .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
- }
+// if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
+// .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
+// .eq(Member::getPhone, member.getPhone())
+// .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
+// throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
+// }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 4d4beaf..a50a208 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -106,10 +106,11 @@
String code = Constants.getRandom6Num();
SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getObjType,
SmsConstants.inventCode).last(" limit 1 "));
+ String comName = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode();
//寮�鍚煭淇¢�氱煡
if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
if(StringUtils.isNotBlank(smsConfig.getContent())){
- String content = smsConfig.getContent().replace("{楠岃瘉鐮亇",code);
+ String content = comName + smsConfig.getContent().replace("{楠岃瘉鐮亇",code);
emayService.sendSingleSms(smsEmail.getPhone(),content);
smsEmail.setRemark(code);
smsEmail.setIsdeleted(Constants.ZERO);
@@ -594,7 +595,7 @@
SmsEmail smsEmail = new SmsEmail();
smsEmail.setIsdeleted(Constants.ZERO);
smsEmail.setCreateDate(new Date());
- smsEmail.setStatus(result?Constants.ZERO:Constants.ONE);
+ smsEmail.setStatus(result?Constants.ONE:Constants.TWO);
smsEmail.setType(Constants.ZERO);
smsEmail.setRemark(result?"鐭俊鍙戦�佹垚鍔�":"鐭俊鍙戦�佸け璐�");
smsEmail.setTitle("璐﹀崟鍌垂");
@@ -620,9 +621,10 @@
SmsEmail smsEmail = new SmsEmail();
smsEmail.setRemark(result?"閭欢鍙戦�佹垚鍔�":"閭欢鍙戦�佸け璐�");
smsEmail.setIsdeleted(Constants.ZERO);
+ smsEmail.setTitle("璐﹀崟鍌垂");
smsEmail.setCreateDate(new Date());
- smsEmail.setStatus(result?Constants.ZERO:Constants.ONE);
- smsEmail.setType(Constants.TWO);
+ smsEmail.setStatus(result?Constants.ONE:Constants.TWO);
+ smsEmail.setType(Constants.ONE);
smsEmail.setObjId(billId);
smsEmail.setObjType(Constants.TWO+"");
smsEmail.setContent(content);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
index 436e79a..e456e57 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
@@ -232,6 +232,17 @@
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))
+ && Utils.Date.getEnd(ywContractBill.getPlanPayDate()).getTime() < System.currentTimeMillis()){
+ ywContractBill.setIsOverdue(Constants.ONE);
+ }else{
+ ywContractBill.setIsOverdue(Constants.ZERO);
+ }
+
//鎴挎簮鏁版嵁
ywContractBill.setYwContractRoomList(
ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>()
@@ -239,8 +250,8 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
- .selectAs(YwRoom::getArea,YwContractRoom::getArea)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRentArea,YwContractRoom::getArea)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -345,7 +356,7 @@
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO)
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.THREE)
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.FOUR))
- && ywContractBill.getPlanPayDate().getTime() < System.currentTimeMillis()){
+ && Utils.Date.getEnd(ywContractBill.getPlanPayDate()).getTime() < System.currentTimeMillis()){
ywContractBill.setIsOverdue(Constants.ONE);
}else{
ywContractBill.setIsOverdue(Constants.ZERO);
@@ -392,6 +403,8 @@
IPage<YwContractBill> iPage = ywContractBillMapper.selectJoinPage(page,YwContractBill.class,
queryWrapper.selectAll(YwContractBill.class)
.select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
+ .select(" ifnull((select s.status from sms_email s where s.OBJ_ID = t.id and s.OBJ_TYPE = 2 order by s.CREATE_DATE desc limit 1 ),0) ",YwContractBill::getIsSendEmail)
+ .select(" ifnull((select s.status from sms_email s where s.OBJ_ID = t.id and s.OBJ_TYPE = 1 order by s.CREATE_DATE desc limit 1 ),0) ",YwContractBill::getIsSendSms)
.selectAs(YwContract::getCode,YwContractBill::getContractCode)
.selectAs(YwCustomer::getName,YwContractBill::getCustomerName)
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
@@ -405,12 +418,12 @@
YwContractBill::getBillType,model.getBillType())
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getPayStatus()),
YwContractBill::getPayStatus,model.getPayStatus())
- .in(Objects.nonNull(model)&&Objects.nonNull(model.getPayStatus()),
- YwContractBill::getPayStatus,Constants.ZERO,Constants.THREE,Constants.TWO,Constants.FOUR)
+ .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE)
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getType()),
YwContractBill::getType,model.getType())
.le(Objects.nonNull(model)&&Objects.nonNull(model.getIsOverdue())&&Constants.equalsInteger(model.getIsOverdue(),Constants.ONE),
YwContractBill::getPlanPayDate, DateUtil.getCurrDateTime())
+ .lt(YwContractBill::getPlanPayDate, DateUtil.getDate(new Date(),"yyyy-MM-dd"))
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getIsOverdue())&&Constants.equalsInteger(model.getIsOverdue(),Constants.ONE),
YwContractBill::getStatus, Constants.ZERO)
.ge(Objects.nonNull(model)&&Objects.nonNull(model.getPlanPayDateStart()),YwContractBill::getPlanPayDate, Utils.Date.getStart(model.getPlanPayDateStart()))
@@ -455,7 +468,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBillList)){
//鑾峰彇鎵�鏈夋暟鎹�
List<Integer> billIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getId()).collect(Collectors.toList());
- List<Integer> contractIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getContractId()).collect(Collectors.toList());
+ List<Integer> contractIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)||Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getContractId()).collect(Collectors.toList());
List<YwContractRoom> ywContractRoomList = new ArrayList<>();
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(billIdList)){
ywContractRoomList.addAll( ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>()
@@ -463,7 +476,7 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -479,7 +492,7 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -600,6 +613,7 @@
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
.leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
.eq(YwContractBill::getIsdeleted,Constants.ZERO)
+ .eq(YwContractBill::getStatus,Constants.ZERO)
.in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE,Constants.FOUR)
.eq(YwContractBill::getContractId,contractId)
.orderByDesc(YwContractBill::getId);
@@ -689,7 +703,8 @@
.selectAs(YwContractDetail::getType,YwContractBill::getDetailType)
.selectAs(YwContract::getZlPayType,YwContractBill::getZlPayType)
.selectAs(YwContract::getWyPayType,YwContractBill::getWyPayType)
- .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 0 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 1 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
.leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
.leftJoin(YwContractDetail.class,YwContractDetail::getId,YwContractBill::getDetailId)
@@ -824,7 +839,7 @@
}else if(y.getTitle().equals("${搴旀敹鏃ユ湡}")&&Objects.nonNull(ywContractBill.getPlanPayDate())){
y.setUrl(DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${搴旀敹閲戦}")&&Objects.nonNull(ywContractBill.getReceivableFee())){
- y.setUrl(ywContractBill.getReceivableFee().toString());
+ y.setUrl((ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())).setScale(2).toString());
}else if(y.getTitle().equals("${璐﹀崟澶囨敞}")){
if(StringUtils.isNotBlank(ywContractBill.getRemark())){
y.setUrl(ywContractBill.getRemark());
@@ -925,14 +940,19 @@
.selectAs(YwContractDetail::getType,YwContractBill::getDetailType)
.selectAs(YwContract::getZlPayType,YwContractBill::getZlPayType)
.selectAs(YwContract::getWyPayType,YwContractBill::getWyPayType)
- .select(" ( select ifnull(sum(r.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 0 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 1 and yr.type = 0 ) " , YwContractBill::getTotalArea)
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
.leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
.leftJoin(YwContractDetail.class,YwContractDetail::getId,YwContractBill::getDetailId)
.eq(YwContractBill::getId,ywSmsEmailBillCallDTO.getBillId())
.last( "limit 1" )
);
- this.dealTempData(tempList,ywContractBill,loginUserInfo);
+
+ List<YwContractBill> ywContractBillList = new ArrayList<>();
+ ywContractBillList.add(ywContractBill);
+ this.dealRoomDetail(ywContractBillList);
+
+// this.dealTempData(tempList,ywContractBill,loginUserInfo);
Member member = memberMapper.selectById(ywSmsEmailBillCallDTO.getUserId());
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀛樺湪鏈煡璇㈠埌鐨勪汉鍛樹俊鎭�");
@@ -946,11 +966,10 @@
if(Constants.equalsInteger(ywSmsEmailBillCallDTO.getSendEmail(),Constants.ONE) && StringUtils.isNotBlank(member.getEmail())
&& emailTempConfigOptional.isPresent()){
String content = this.dealTempSmsEmailData(emailTempConfigOptional.get().getTitle(),tempList,ywContractBill,loginUserInfo);
- smsEmailService.sendEmail(content,member.getEmail(),ywContractBill.getId());
+ smsEmailService.sendEmail(member.getEmail(),content,ywContractBill.getId());
}
}
}
-
}
@@ -962,82 +981,87 @@
for (YwTempConfig y:ywTempConfigList) {
if(y.getTitle().equals("${璐圭敤鍚嶇О}")&&Objects.nonNull(ywContractBill.getCostType())){
//璐圭敤绫诲瀷锛�0=绉熻祦璐癸紱1=鐗╀笟璐癸紱2=绉熻祦鎶奸噾锛�3=鐗╀笟鎶奸噾锛�4=姘寸數璐癸紱5=鏉傞」璐癸紱6=鍏朵粬; 7=淇濊瘉閲�
- if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ZERO)){
- tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦璐�");
+ if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ONE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.TWO)){
- tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦鎶奸噾");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦鎶奸噾");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.THREE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟鎶奸噾");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟鎶奸噾");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.FOUR)){
- tempStr.replace("${璐圭敤鍚嶇О}","姘寸數璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","姘寸數璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.FIVE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鏉傞」璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鏉傞」璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.SIX)){
- tempStr.replace("${璐圭敤鍚嶇О}","鍏朵粬");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鍏朵粬");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.SEVEN)){
- tempStr.replace("${璐圭敤鍚嶇О}","淇濊瘉閲�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","淇濊瘉閲�");
}
- }else if(y.getTitle().equals("${璁¤垂鍛ㄦ湡}")&&Objects.nonNull(ywContractBill.getDetailType())){
- if(Constants.equalsInteger(ywContractBill.getDetailType(),Constants.ZERO)){
- //绉熻祦鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
- if(Objects.nonNull(ywContractBill.getZlPayType())){
- if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ZERO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ONE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.TWO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.THREE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }else if(y.getTitle().equals("${璁¤垂鍛ㄦ湡}")){
+ if(Objects.nonNull(ywContractBill.getDetailType())){
+ if(Constants.equalsInteger(ywContractBill.getDetailType(),Constants.ZERO)){
+ //绉熻祦鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
+ if(Objects.nonNull(ywContractBill.getZlPayType())){
+ if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ONE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.TWO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.THREE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }
+ }
+ }else{
+ //鐗╀笟鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
+ if(Objects.nonNull(ywContractBill.getWyPayType())){
+ if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ONE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.TWO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.THREE)){
+ tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }
}
}
}else{
- //鐗╀笟鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
- if(Objects.nonNull(ywContractBill.getWyPayType())){
- if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ZERO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ONE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.TWO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.THREE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
- }
- }
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","");
}
+
}else if(y.getTitle().equals("${鍗曚环}")&&Objects.nonNull(ywContractBill.getPrice())){
- tempStr.replace("${鍗曚环}",ywContractBill.getPrice().toString());
+ tempStr = tempStr.replace("${鍗曚环}",ywContractBill.getPrice().setScale(2).toString());
}else if(y.getTitle().equals("${鍗曚綅}")&&Objects.nonNull(ywContractBill.getCircleType())){
//浠樻鍛ㄦ湡绫诲瀷 0=鍏冩瘡骞崇背澶�;1=鍏冩瘡骞崇背鏈�;2=鍏冩瘡骞崇背骞�;3=鍏冩瘡澶�;4=鍏冩瘡鏈�;5=鍏冩瘡骞�;6=鍏冩瘡鍦�;
if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.ZERO)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背澶�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背澶�");
}else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.ONE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背鏈�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背鏈�");
}else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.TWO)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背骞�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背骞�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.THREE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡澶�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡澶�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.FOUR)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡鏈�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡鏈�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.FIVE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.SIX)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡鍦�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡鍦�");
}
}else if(y.getTitle().equals("${搴旀敹鏃ユ湡}")&&Objects.nonNull(ywContractBill.getPlanPayDate())){
- tempStr.replace("${搴旀敹鏃ユ湡}",DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
+ tempStr = tempStr.replace("${搴旀敹鏃ユ湡}",DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${搴旀敹閲戦}")&&Objects.nonNull(ywContractBill.getReceivableFee())){
- tempStr.replace("${搴旀敹閲戦}",ywContractBill.getReceivableFee().toString());
+ tempStr = tempStr.replace("${搴旀敹閲戦}",(ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())).setScale(2).toString());
}else if(y.getTitle().equals("${璐﹀崟澶囨敞}")){
if(StringUtils.isNotBlank(ywContractBill.getRemark())){
- tempStr.replace("${璐﹀崟澶囨敞}",ywContractBill.getRemark());
+ tempStr = tempStr.replace("${璐﹀崟澶囨敞}",ywContractBill.getRemark());
}else{
- tempStr.replace("${璐﹀崟澶囨敞}","");
+ tempStr = tempStr.replace("${璐﹀崟澶囨敞}","");
}
}else if(y.getTitle().equals("${绉熷鍚嶇О}")&&StringUtils.isNotBlank(ywContractBill.getCustomerName())){
- tempStr.replace("${绉熷鍚嶇О}",ywContractBill.getCustomerName());
+ tempStr = tempStr.replace("${绉熷鍚嶇О}",ywContractBill.getCustomerName());
}else if(y.getTitle().equals("${鎴块棿淇℃伅}")){
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getYwContractRoomList())){
StringBuilder roomPathName = new StringBuilder();
@@ -1058,32 +1082,32 @@
roomPathName.append(";");
}
}
- tempStr.replace("${鎴块棿淇℃伅}",roomPathName.toString());
+ tempStr = tempStr.replace("${鎴块棿淇℃伅}",roomPathName.toString());
}
}else if(y.getTitle().equals("${绉熻祦闈㈢Н}")&&Objects.nonNull(ywContractBill.getTotalArea())){
tempStr.replace("${绉熻祦闈㈢Н}",ywContractBill.getTotalArea().toString());
}else if(y.getTitle().equals("${鎵�灞炲叕鍙歌处鎴峰悕绉皚")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getName())){
- tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚",ywAccount.getName());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚",ywAccount.getName());
}else{
- tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚","-");
}
}else if(y.getTitle().equals("${鎵�灞炲叕鍙搁摱琛岃处鍙穧")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getName())){
- tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧",ywAccount.getName());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧",ywAccount.getName());
}else{
- tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧","-");
}
}else if(y.getTitle().equals("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getBankNo())){
- tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎",ywAccount.getBankNo());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎",ywAccount.getBankNo());
}else{
- tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎","-");
}
}else if(y.getTitle().equals("${閫氱煡鍗曠敓鎴愭棩鏈焳")){
- tempStr.replace("${閫氱煡鍗曠敓鎴愭棩鏈焳",DateUtil.formatDate(new Date(),"yyyy-MM-dd"));
+ tempStr = tempStr.replace("${閫氱煡鍗曠敓鎴愭棩鏈焳",DateUtil.formatDate(new Date(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${鍒惰〃浜哄悕绉皚")){
- tempStr.replace("${鍒惰〃浜哄悕绉皚",loginUserInfo.getRealname());
+ tempStr = tempStr.replace("${鍒惰〃浜哄悕绉皚",loginUserInfo.getRealname());
}
}
return tempStr;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 49ecb0b..383ca4c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -84,7 +84,7 @@
model.setEditor(model.getCreator());
if(model.getStartDate().getTime() > System.currentTimeMillis()){
model.setStatus(Constants.ZERO);
- }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && model.getEndDate().getTime() > System.currentTimeMillis()){
+ }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && Utils.Date.getEnd(model.getEndDate()).getTime() > System.currentTimeMillis()){
model.setStatus(Constants.ONE);
}else{
model.setStatus(Constants.TWO);
@@ -112,6 +112,12 @@
t.setEditor(model.getCreator());
t.setType(Constants.ZERO);
list.add(t);
+ }
+ if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
+ .in(YwRoom::getId,model.getRoomList().stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
}
ywContractRoomMapper.insert(list);
}
@@ -341,6 +347,13 @@
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
public Integer backRent(YwContract param){
isParamValidBackRent(param);
+ YwContract model = ywContractMapper.selectById(param.getId());
+ if(Objects.isNull(model)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!(model.getStartDate().getTime()<=param.getBtDate().getTime()&&model.getEndDate().getTime()>=param.getBtDate().getTime())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�绉熸棩鏈熼敊璇紝璇锋鏌ラ��绉熸棩鏈熼渶鍦ㄥ悎鍚屾棩鏈熷唴锛�");
+ }
param.setEditDate(new Date());
param.setEditor(param.getLoginUserInfo().getId());
//澶勭悊
@@ -364,30 +377,47 @@
update.setBtRemark(getbackRentRemarkByParam(param));
ywContractMapper.updateById(update);
dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param));
+ //濡傛灉閫�绉熸棩鏈熷皬浜庡綋鍓嶆棩鏈� 鍒欑洿鎺ラ噴鏀炬埧婧愪俊鎭� 鏈璧�
+ if(Utils.Date.getEnd(param.getBtDate()).getTime()<System.currentTimeMillis()){
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda()
+ .eq(YwContractRoom::getContractId, param.getId()));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓烘湭绉熻祦
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
return param.getId();
}
@Override
public void dealTimeOut(){
- //瀹氭椂澶勭悊鍚堝悓鎵ц涓�
- ywContractMapper.update(new UpdateWrapper<YwContract>()
- .lambda()
- .set(YwContract::getStatus,Constants.ONE)
- .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+
+ List<YwContract> listA = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
.eq(YwContract::getIsdeleted,Constants.ZERO)
.in(YwContract::getStatus,Constants.ZERO)
.apply(" START_DATE < NOW() AND END_DATE > NOW() ")
);
- //瀹氭椂澶勭悊鍚堝悓宸茶繃鏈�
- ywContractMapper.update(new UpdateWrapper<YwContract>()
- .lambda()
- .set(YwContract::getStatus,Constants.TWO)
- .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
- .eq(YwContract::getIsdeleted,Constants.ZERO)
- .in(YwContract::getStatus,Constants.ONE,Constants.ZERO)
- .apply(" END_DATE < CURRENT_DATE ")
- );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(listA)){
+ //瀹氭椂澶勭悊鍚堝悓鎵ц涓�
+ ywContractMapper.update(new UpdateWrapper<YwContract>()
+ .lambda()
+ .set(YwContract::getStatus,Constants.ONE)
+ .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+ .in(YwContract::getId,listA.stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
+
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ listA.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
}
@@ -420,7 +450,7 @@
||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){
if(bill.getStartDate().getTime()<=param.getBtDate().getTime()){
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}else{
//濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴
closeBills.add(bill);
@@ -432,11 +462,11 @@
noBills.add(bill);
}else{
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}
}else if(Constants.equalsInteger(bill.getPayStatus(),Constants.TWO) ){
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}
}
}
@@ -464,12 +494,17 @@
if(fee.compareTo(new BigDecimal(0))== 0){
//濡傛灉璐圭敤姝eソ锛屽垯淇敼璐﹀崟淇℃伅涓哄凡缁撴竻
b.setPayStatus(Constants.ONE);
- canBillCount = canBillCount --;
- }else if(fee.compareTo(new BigDecimal(0))> 0){
+ canBillCount = canBillCount - 1 ;
+ }else if(fee.compareTo(new BigDecimal(0))< 0){
//濡傛灉闇�瑕佽繘琛岄��娆撅紝鏇存柊璐﹀崟淇℃伅涓哄緟閫�娆�
b.setPayStatus(Constants.FOUR);
- }else if(fee.compareTo(new BigDecimal(0)) < 0){
- //濡傛灉璐﹀崟杩樻湁娆惧緟鏀讹紝鍒欎繚鎸佺姸鎬佷笉鍙�
+ }else if(fee.compareTo(new BigDecimal(0)) > 0){
+ //濡傛灉璐﹀崟杩樻湁娆惧緟鏀讹紝鍒欐洿鏂拌处鍗曚负寰呮敹娆�
+ if(b.getPayStatus()==Constants.ZERO){
+ b.setPayStatus(Constants.ZERO);
+ }else if(b.getPayStatus()!=Constants.TWO){
+ b.setPayStatus(Constants.TWO);
+ }
}
b.setReceivableFee(editBill.getReceivableFee());
}
@@ -654,8 +689,8 @@
//2025-1-23 13:56:53 鍔犲叆 鍓嶇鍏ュ弬璋冩暣鍚庣殑璐﹀崟淇℃伅
List<YwContractBill> ywContractBillList = new ArrayList<>();
//鏌ヨ绉熻祦鏉℃
- if(Constants.equalsInteger(model.getType(),Constants.ZERO )
- || Constants.equalsInteger(model.getType(),Constants.TWO)&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details1)){
+ if((Constants.equalsInteger(model.getType(),Constants.ZERO )
+ || Constants.equalsInteger(model.getType(),Constants.TWO))&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details1)){
YwContractDetail ywContractDetail = details1.get(Constants.ZERO);
YwContractBill zlBill = new YwContractBill();
BeanUtils.copyProperties(model.getZlBillDTO(),zlBill);
@@ -691,8 +726,8 @@
}
}
//鏌ヨ鐗╀笟璐﹀崟
- if(Constants.equalsInteger(model.getType(),Constants.ZERO )
- || Constants.equalsInteger(model.getType(),Constants.TWO)&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details2)){
+ if((Constants.equalsInteger(model.getType(),Constants.ZERO )
+ || Constants.equalsInteger(model.getType(),Constants.ONE))&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details2)){
YwContractDetail ywContractDetail = details2.get(Constants.ZERO);
YwContractBill wyBill = new YwContractBill();
BeanUtils.copyProperties(model.getWyBillDTO(),wyBill);
@@ -1396,7 +1431,7 @@
.selectAs(YwCustomer::getName, YwContract::getRenterName)
.selectAs(YwProject::getName, YwContract::getProjectName)
.select("t3.realname", YwContract::getCreatorName)
- .select("(select sum(r.area) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)", YwContract::getTotalArea)
+ .select("(select sum(r.RENT_AREA) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)", YwContract::getTotalArea)
.leftJoin(Company.class, Company::getId, YwContract::getCompanyId)
.leftJoin(SystemUser.class, SystemUser::getId, YwContract::getUserId)
.leftJoin(SystemUser.class, SystemUser::getId, YwContract::getCreator)
@@ -1457,14 +1492,12 @@
//鏌ヨ璐﹀崟闆嗗悎
model.setBillList(ywContractBillMapper.selectJoinList(YwContractBill.class,new MPJLambdaWrapper<YwContractBill>()
.selectAll(YwContractBill.class )
- //.select(" ( select ifnull(sum(case when yw.REVENUE_TYPE = 0 then yw.ACT_RECEIVABLE_FEE else -yw.ACT_RECEIVABLE_FEE end),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.eq( YwContractBill::getContractId,model.getId())
.eq(YwContractBill::getIsdeleted,Constants.ZERO)
.orderByAsc(YwContractBill::getSortnum,YwContractBill::getCreateDate)));
for (YwContractBill ywContractBill:model.getBillList()) {
ywContractBill.setNeedReceivableFee(ywContractBill.getReceivableFee());
-// ywContractBill.setNeedReceivableFee(ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee()));
}
model.setCanBackRentBills(new ArrayList<>());
long nowStart = Utils.Date.getStart(date).getTime();
@@ -1574,6 +1607,9 @@
if (pageWrap.getModel().getCreateDate() != null) {
queryWrapper.ge(YwContract::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
queryWrapper.le(YwContract::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getStatusList() != null) {
+ queryWrapper.in(YwContract::getStatus, pageWrap.getModel().getStatusList());
}
if (pageWrap.getModel().getEditor() != null) {
queryWrapper.eq(YwContract::getEditor, pageWrap.getModel().getEditor());
@@ -1712,4 +1748,63 @@
QueryWrapper<YwContract> wrapper = new QueryWrapper<>(ywContract);
return ywContractMapper.selectCount(wrapper);
}
+
+
+ /**
+ * 鍒版湡鍚堝悓 鏈彂璧烽��绉熺殑杩涜鏁版嵁璋冩暣 鎶婂悎鍚屼笅鐨勬埧婧愰噴鏀� 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ @Override
+ public void updRoomLeaseNowStatus(){
+
+ //瀹氭椂澶勭悊鍚堝悓宸茶繃鏈�
+ List<YwContract> ywContractList = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .in(YwContract::getStatus,Constants.ONE,Constants.ZERO)
+ .apply(" DATE(END_DATE) = CURRENT_DATE ")
+ );
+
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractList)){
+ ywContractMapper.update(new UpdateWrapper<YwContract>()
+ .lambda()
+ .set(YwContract::getStatus,Constants.TWO)
+ .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+ .in(YwContract::getId,ywContractList.stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
+
+
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
+ }
+
+
+ /**
+ * 閫�绉熶腑/宸查��绉熷悎鍚� 鎶婂埌浜嗛��绉熸棩鏈熸椂闂寸殑鏁版嵁 杩涜鎴挎簮閲婃斁 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ @Override
+ public void updRentContractStatus(){
+ List<YwContract> ywContractList = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .in(YwContract::getStatus,Constants.THREE,Constants.FOUR)
+ .eq(YwContract::getBtDate,DateUtil.getCurrDate())
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractList)){
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓哄緟绉熻祦
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
index dda5508..69ddf41 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -430,7 +430,7 @@
ywDeviceStatusDataVO.setAmount(ywDeviceList.size());
ywDeviceStatusDataVO.setWorkAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
ywDeviceStatusDataVO.setExceptionAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size());
- ywDeviceStatusDataVO.setErrAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size());
+ ywDeviceStatusDataVO.setErrAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size());
return ywDeviceStatusDataVO;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
index a434cd2..ea498da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
@@ -1,6 +1,8 @@
package com.doumee.service.business.impl;
+import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -9,11 +11,14 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CategoryMapper;
import com.doumee.dao.business.YwMaterialMapper;
import com.doumee.dao.business.YwOutinboundMapper;
import com.doumee.dao.business.YwOutinboundRecordMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.MultifileMapper;
+import com.doumee.dao.system.dto.ImportMaterialDTO;
+import com.doumee.dao.system.dto.ImportSystemUserDTO;
import com.doumee.dao.system.model.Multifile;
import com.doumee.service.business.YwMaterialService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,16 +27,19 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import javafx.scene.paint.Material;
import org.apache.commons.lang.StringUtils;
-import org.checkerframework.checker.units.qual.A;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 杩愮淮璧勪骇淇℃伅琛⊿ervice瀹炵幇
@@ -51,6 +59,9 @@
private YwOutinboundRecordMapper ywOutinboundRecordMapper;
@Autowired
+ private CategoryMapper categoryMapper;
+
+ @Autowired
private SystemDictDataBiz systemDictDataBiz;
@Override
@@ -67,8 +78,17 @@
ywMaterial.setId(null);
if(StringUtils.isBlank(ywMaterial.getCode())){
//鑷姩鐢熸垚 TODO 瀛樺湪闂
- Long countCode = ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getAutoCode, Constants.ONE));
- String nextCode = StringUtils.leftPad(Long.toString(countCode + 1),4,"0");
+ YwMaterial lastAutoMaterial = ywMaterialMapper.selectOne(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getAutoCode,Constants.ONE).last("limit 1 "));
+ Long countCode = 0L;
+ String nextCode = StringUtils.leftPad(Long.toString(countCode + 1 ),4,"0");
+ if(Objects.nonNull(lastAutoMaterial)){
+ Long maxCode = Long.valueOf(lastAutoMaterial.getCode().replace("P",""));
+ nextCode = StringUtils.leftPad(Long.toString(maxCode + 1),4,"0");
+ while (ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getCode, "P"+nextCode))>Constants.ZERO){
+ countCode = countCode + 1 ;
+ nextCode = StringUtils.leftPad(Long.toString(countCode),4,"0");
+ }
+ }
ywMaterial.setCode("P"+nextCode);
ywMaterial.setAutoCode(Constants.ONE);
}else{
@@ -247,4 +267,67 @@
QueryWrapper<YwMaterial> wrapper = new QueryWrapper<>(ywMaterial);
return ywMaterialMapper.selectCount(wrapper);
}
+
+
+ @Override
+ public Integer importMaterialBatch(MultipartFile file,LoginUserInfo loginUserInfo) {
+ try {
+ ExcelImporter ie = new ExcelImporter(file, 0, 0);
+ List<ImportMaterialDTO> dataList = ie.getDataList(ImportMaterialDTO.class, null);
+ if (CollectionUtils.isEmpty(dataList)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+ }
+
+ List<Category> allCategory = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
+ .eq(Category::getIsdeleted,Constants.ZERO).eq(Category::getIsdeleted,Constants.ZERO)
+ .eq(Category::getType,Constants.SEVEN)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(allCategory)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏃犲垎绫诲熀纭�鏁版嵁锛�");
+ }
+ List<Category> categoryList = allCategory.stream().filter(i->Objects.isNull(i.getParentId())).collect(Collectors.toList());
+ for (Category category: categoryList) {
+ category.setChildCategoryList(
+ allCategory.stream().filter(i->Objects.nonNull(i.getParentId())&&Constants.equalsInteger(i.getParentId(),category.getId())).collect(Collectors.toList())
+ );
+ }
+ List<YwMaterial> ywMaterialList = new ArrayList<>();
+ for (int i = 0; i < dataList.size(); i++) {
+ ImportMaterialDTO importMaterialDTO = dataList.get(i);
+ if(Objects.isNull(importMaterialDTO)
+ || StringUtils.isBlank(importMaterialDTO.getName())
+ || StringUtils.isBlank(importMaterialDTO.getCategoryName())
+ || StringUtils.isBlank(importMaterialDTO.getCategoryChildName())
+ || StringUtils.isBlank(importMaterialDTO.getQrcode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛屽繀濉」缂哄け锛�");
+ }
+ YwMaterial ywMaterial = new YwMaterial();
+ BeanUtils.copyProperties(importMaterialDTO,ywMaterial);
+ Optional<Category> categoryOptional = categoryList.stream().filter(j->j.getName().equals(importMaterialDTO.getCategoryName())).findAny();
+ if(categoryOptional.isPresent()){
+ Category category = categoryOptional.get();
+ ywMaterial.setParentCateId(category.getId());
+ Optional<Category> childCategoryOptional = category.getChildCategoryList().stream().filter(j->j.getName().equals(importMaterialDTO.getCategoryChildName())).findAny();
+ if(childCategoryOptional.isPresent()){
+ ywMaterial.setCateId(childCategoryOptional.get().getId());
+ }else{
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛岀墿鏂欏瓙鍒嗙被鏈煡璇㈠埌锛�");
+ }
+ }else{
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛岀墿鏂欏垎绫绘湭鏌ヨ鍒帮紒");
+ }
+ ywMaterialList.add(ywMaterial);
+ }
+
+ for (YwMaterial ywMaterial:ywMaterialList) {
+ ywMaterial.setLoginUserInfo(loginUserInfo);
+ this.create(ywMaterial);
+ }
+ } catch (Exception e) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),e.getMessage());
+
+ }
+ return null;
+ }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
index 203c692..42437cd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
@@ -95,7 +95,7 @@
public List<YwOutinboundRecord> verifyData(YwOutinbound ywOutinbound){
if(Objects.isNull(ywOutinbound)
|| Objects.isNull(ywOutinbound.getType())
-// || (Objects.nonNull(ywOutinbound.getType()) && (!(ywOutinbound.getType() == Constants.ZERO || ywOutinbound.getType() == Constants.ONE)))
+ || ((ywOutinbound.getType() >= 5 && ywOutinbound.getType() <= 9 ) && Objects.isNull(ywOutinbound.getOutUserId()) )
|| Objects.isNull(ywOutinbound.getWarehouseId())
|| Objects.isNull(ywOutinbound.getDoneDate())
|| com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywOutinbound.getRecordList())
@@ -158,9 +158,9 @@
//鍑哄簱
if(Objects.isNull(ywStock) || ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) < Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ywMaterial.getName() + "搴撳瓨涓嶈冻锛岃鍒锋柊閲嶈瘯");
- }else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
+ }/*else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
ywStockMapper.deleteById(ywStock.getId());
- }else{
+ }*/else{
ywStockMapper.update(new UpdateWrapper<YwStock>().lambda()
.setSql(" stock = ( stock - "+ywOutinboundRecord.getStock()+") ")
.set(YwStock::getEditDate, DateUtil.getCurrDateTime())
@@ -252,22 +252,29 @@
}
List<Integer> typeList = Constants.ywOutInType.getAllTypeKey(model.getInOut());
queryWrapper.selectAll(YwOutinbound.class)
- .selectAs(SystemUser::getRealname,YwOutinbound::getCreateUserName)
+ .select(" s1.realname ",YwOutinbound::getCreateUserName)
+ .select(" s2.realname ",YwOutinbound::getOutUserName)
.selectAs(YwWarehouse::getName,YwOutinbound::getWarehouseName)
- .leftJoin(SystemUser.class,SystemUser::getId,YwOutinbound::getCreator)
.leftJoin(YwWarehouse.class,YwWarehouse::getId,YwOutinbound::getWarehouseId)
+ .leftJoin("system_user s1 on t.creator = s1.id")
+ .leftJoin("system_user s2 on t.out_user_id = s2.id")
.like(StringUtils.isNotBlank(model.getCode()),YwOutinbound::getCode,model.getCode())
.eq(Objects.nonNull(model.getType()),YwOutinbound::getType,model.getType())
.eq(Objects.nonNull(model.getWarehouseId()),YwOutinbound::getWarehouseId,model.getWarehouseId())
.in(Objects.nonNull(model.getInOut()),YwOutinbound::getType,typeList)
;
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(pageWrap.getSorts())){
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
}
+ }else{
+ queryWrapper.orderByDesc(YwOutinbound::getCode);
}
+
IPage iPage = ywOutinboundMapper.selectJoinPage(page,YwOutinbound.class,queryWrapper);
if(Objects.nonNull(iPage.getRecords())){
iPage.setRecords(this.getDetailData(iPage.getRecords()));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index c8c5326..cb32343 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -123,7 +123,7 @@
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){
for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) {
- this.createTask(new Date(),ywPatrolScheme);
+ this.createTask(DateUtil.getXDayAfterDate(new Date(),2),ywPatrolScheme);
}
}
}
@@ -301,6 +301,7 @@
ywPatrolScheme.setEditDate(new Date());
ywPatrolScheme.setEditor(loginUserInfo.getId());
ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+ this.createThreeDaysData(ywPatrolScheme);
}
@Override
@@ -356,15 +357,9 @@
YwPatrolScheme model = pageWrap.getModel();
queryWrapper.selectAll(YwPatrolScheme.class)
.select(" t2.realName as createUserName ")
-// .select(" t1.realName as userName ")
-// .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
.leftJoin(" system_user t2 on t.creator = t2.id ")
.eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
.like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
- //鏌ヨ鏈夋椂娈典氦闆嗙殑鏁版嵁
- /* .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
- " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
- )*/
.ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
.le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
.ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec()))
@@ -405,21 +400,24 @@
ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO);
return;
}
+
+ //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
+ if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO))
+ .collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
+ ywPatrolScheme.setSchemeStatus(Constants.ZERO);
+ ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
+ .collect(Collectors.toList()).size());
+ return;
+ }
+
//杩囨护鏁版嵁鏄惁瀛樺湪杩涜涓殑
- if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){
+ if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)||Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()>Constants.ZERO){
ywPatrolScheme.setSchemeStatus(Constants.ONE);
ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
.collect(Collectors.toList()).size());
return;
}
- //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
- if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
- ywPatrolScheme.setSchemeStatus(Constants.ZERO);
- ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
- .collect(Collectors.toList()).size());
- return;
- }
//杩囨护鏁版嵁鏄笉鏄叏閮ㄥ凡瀹屾垚
if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
,ywPatrolTaskList.size())){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
index d556571..963f7b8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
@@ -28,9 +28,11 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 杩愮淮宸℃浠诲姟 - 宸℃鐐逛俊鎭〃Service瀹炵幇
@@ -134,7 +136,7 @@
.selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTaskRecord::getSchemeTitle)
- .selectAs(YwPatrolTask::getTitle,YwPatrolTaskRecord::getTaskCode)
+ .selectAs(YwPatrolTask::getCode,YwPatrolTaskRecord::getTaskCode)
.selectAs(YwPatrolTask::getStartDate,YwPatrolTaskRecord::getStartDate)
.selectAs(YwPatrolTask::getEndDate,YwPatrolTaskRecord::getEndDate)
@@ -213,7 +215,8 @@
if(Objects.isNull(ywPatrolScheme)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸℃璁″垝淇℃伅");
}
- if(!ywPatrolScheme.getUserIds().equals(loginUserInfo.getId().toString())){
+ List<String> userIdList = Arrays.asList(ywPatrolScheme.getUserIds().split(","));
+ if(userIdList.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),loginUserInfo.getId())).collect(Collectors.toList()).size()<=0){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闈炴偍鐨勫贰妫�浠诲姟鏃犳硶杩涜澶勭悊");
}
YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId());
@@ -249,19 +252,6 @@
.set(YwPatrolTask::getEditor,loginUserInfo.getId())
);
-// if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
-// .eq(YwPatrolTask::getSchemeId,ywPatrolTask.getSchemeId())
-// .in(YwPatrolTask::getStatus,Constants.ZERO,Constants.ONE)
-// .ne(YwPatrolTask::getId,ywPatrolTask.getId())
-// )==Constants.ZERO){
-// ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda()
-// .eq(YwPatrolScheme::getId,ywPatrolScheme.getId())
-// .set(YwPatrolScheme::getStatus,Constants.TWO)
-// .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime())
-// .set(YwPatrolScheme::getEditor,loginUserInfo.getId())
-// );
-// }
-
//鏍囪寰呭姙宸插鐞�
noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
.set(Notices::getStatus,Constants.ONE)
@@ -279,14 +269,6 @@
.set(YwPatrolTask::getEditor,loginUserInfo.getId())
);
}
-// if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){
-// ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda()
-// .eq(YwPatrolScheme::getId,ywPatrolScheme.getId())
-// .set(YwPatrolScheme::getStatus,Constants.ONE)
-// .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime())
-// .set(YwPatrolScheme::getEditor,loginUserInfo.getId())
-// );
-// }
//鏍囪寰呭姙宸插鐞�
noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda()
.set(Notices::getParam3,Constants.ONE)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
index 104c528..31722e2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -85,6 +85,7 @@
.selectAll(YwPatrolTask.class)
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
+ .selectAs(YwPatrolScheme::getUserIds,YwPatrolTask::getUserIds)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
@@ -139,6 +140,7 @@
queryWrapper.selectAll(YwPatrolTask.class)
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
+ .selectAs(YwPatrolScheme::getUserIds,YwPatrolTask::getUserIds)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
@@ -146,7 +148,7 @@
.leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
.eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
.eq(Objects.nonNull(model.getStatus()) && !Constants.equalsInteger(model.getStatus(),Constants.TWO),YwPatrolTask::getStatus, model.getStatus())
- .eq(Objects.nonNull(model.getDealUserId()),YwPatrolScheme::getUserIds, model.getDealUserId())
+ .apply(Objects.nonNull(model.getDealUserId())," find_in_set("+model.getDealUserId()+",t2.USER_IDS) ")
.apply(Objects.nonNull(model.getStatus()) && Constants.equalsInteger(model.getStatus(),Constants.TWO)," t.status = 1 and t.END_DATE > now() ")
.apply(StringUtils.isNotBlank(model.getQueryStatus())," find_in_set(t.status ,'"+model.getQueryStatus()+"') ")
.like(StringUtils.isNotBlank(model.getPlanTitle()),YwPatrolScheme::getTitle,model.getPlanTitle())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java
index 2c33a6c..1571556 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java
@@ -263,7 +263,26 @@
.le(Objects.nonNull(model.getDealDateEnd()),YwProblem::getDealDate, Utils.Date.getEnd(model.getDealDateEnd()))
.eq(Objects.nonNull(model.getDealStatus()),YwProblem::getDealStatus,model.getDealStatus())
;
- IPage iPage = ywProblemMapper.selectJoinPage(page,YwProblem.class,queryWrapper);
+ IPage<YwProblem> iPage = ywProblemMapper.selectJoinPage(page,YwProblem.class,queryWrapper);
+ for (YwProblem ywProblem:iPage.getRecords()) {
+ List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, ywProblem.getId() )
+ .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.PROBLEM_FILE.getKey() }))
+ .eq(Multifile::getIsdeleted,Constants.ZERO));
+ if(multifiles!=null){
+ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_WORKORDER_FILE).getCode();
+ for(Multifile f : multifiles){
+ if(StringUtils.isBlank(f.getFileurl())){
+ continue;
+ }
+ f.setFileurlFull(path+f.getFileurl());
+ }
+ ywProblem.setFileList(multifiles);
+ }
+ }
+
+
return PageData.from(iPage);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
index 36cda9c..ee5fbf6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
@@ -296,13 +296,7 @@
List<YwRoom> ywRoomList = ywRoomMapper.selectJoinList(YwRoom.class,new MPJLambdaWrapper<YwRoom>()
.selectAll(YwRoom.class)
-// .select(" ( SELECT count(1) FROM yw_contract y1 " +
-// " left join yw_contract_room y2 on y1.id = y2.contract_id " +
-// " where 1 = 1 and y2.type = 0 and y1.`STATUS` in( 0,1,2) " +
-// " and y1.START_DATE < now() and y1.END_DATE > now() and y2.ROOM_ID = yw_room.id ) as investmentStatus ")
- .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
- "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
- "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.eq(YwRoom::getIsdeleted,Constants.ZERO)
.eq(YwRoom::getStatus,Constants.ZERO)
.eq(YwRoom::getIsInvestment,Constants.ONE)
@@ -313,7 +307,7 @@
" ) ")
.apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in (" +
" SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` = 3 " +
- " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE > '"+ dataDTO.getStartDate() +" 00:00:00' " +
+ " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE >= '"+ dataDTO.getStartDate() +" 00:00:00' " +
" ) ")
.orderByAsc(YwRoom::getRoomNum)
);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
index b5c03ed..65e696b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
@@ -67,6 +67,7 @@
model.setStatus(Constants.ZERO);
model.setEditDate(model.getCreateDate());
model.setEditor(model.getCreator());
+ model.setLeaseNowStatus(Constants.ZERO);
ywRoomMapper.insert(model);
return model.getId();
}
@@ -138,6 +139,10 @@
queryWrapper.selectAll(YwRoom.class )
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
+// .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
+// "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
+// "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
.leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
@@ -170,9 +175,10 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
- "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
- "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+// .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
+// "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
+// "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
.leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor);
@@ -242,11 +248,11 @@
}
queryWrapper.orderByAsc(YwRoom::getRoomNum);
IPage<YwRoom> iPage = ywRoomMapper.selectJoinPage(page,YwRoom.class, queryWrapper);
- for (YwRoom ywRoom:iPage.getRecords()) {
- if(Constants.equalsInteger(ywRoom.getIsInvestment(),Constants.ZERO)){
- ywRoom.setLeaseStatus(Constants.TWO);
- }
- }
+// for (YwRoom ywRoom:iPage.getRecords()) {
+// if(Constants.equalsInteger(ywRoom.getIsInvestment(),Constants.ZERO)){
+// ywRoom.setLeaseStatus(Constants.TWO);
+// }
+// }
return PageData.from(iPage);
}
@@ -299,10 +305,34 @@
.eq(YwContractRoom::getType,Constants.ZERO)
.eq(YwContractRoom::getRoomId,ywRoom.getId())
.orderByDesc(YwContract::getStartDate)
+ .orderByDesc(YwContract::getId)
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){
roomStatusDataVO.setRoomStatus(Constants.ZERO);
- roomStatusDataVO.setFreeDayAmount(Constants.ZERO);
+ //鏌ヨ鏄惁鏈夊凡閫�绉熷悎鍚�
+ List<YwContract> roomRentContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>()
+ .selectAll(YwContract.class)
+ .selectAs(YwCustomer::getName,YwContract::getRenterName)
+ .leftJoin(YwContractRoom.class,YwContractRoom::getContractId,YwContract::getId)
+ .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .eq(YwContract::getStatus,Constants.FOUR)
+ .eq(YwContractRoom::getType,Constants.ZERO)
+ .eq(YwContractRoom::getRoomId,ywRoom.getId())
+ .orderByDesc(YwContract::getStartDate)
+ .orderByDesc(YwContract::getId)
+ );
+ if(CollectionUtils.isEmpty(roomRentContractList)){
+ roomStatusDataVO.setFreeDayAmount(Constants.ZERO);
+ }else{
+ YwContract ywContract = roomRentContractList.get(Constants.ZERO);
+ //鏌ヨ閫�绉熸棩鏈熷拰褰撳墠鏃ユ湡鐩稿樊澶╂暟
+ Integer btDays = DateUtil.daysBetweenDates(new Date(),ywContract.getBtDate());
+ if(btDays>=Constants.ZERO){
+ roomStatusDataVO.setFreeDayAmount(btDays);
+ }
+ }
+
}else{
YwContract ywContract = roomContractList.get(Constants.ZERO);
//鍚堝悓鐘舵�� 0寰呮墽琛� 1鎵ц涓� 2宸插埌鏈� 3閫�绉熶腑 4宸查��绉�
@@ -394,7 +424,7 @@
.select(" ( select ifnull(sum(yr.RENT_AREA),0) from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and y.CONTRACT_ID = t.id ) " , YwContract::getTotalArea)
.select(" ( select ifnull(sum(y.TOTLE_FEE),0) from yw_contract_bill y where y.CONTRACT_ID = t.id and y.type = 0 and y.COST_TYPE=0 and y.BILL_TYPE = 0 ) " , YwContract::getTotalFee)
.eq(YwContract::getIsdeleted,Constants.ZERO)
- .in(YwContract::getStatus,Constants.ONE,Constants.TWO,Constants.THREE)
+ .in(YwContract::getStatus,Constants.ZERO,Constants.ONE,Constants.TWO,Constants.THREE)
.apply(Objects.nonNull(model.getBuildingId()),
" t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.BUILDING_ID = "+model.getBuildingId()+" ) ")
.apply(Objects.nonNull(model.getProjectId()),
@@ -431,7 +461,8 @@
.eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId())
.eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId())
.in(YwContractRoom::getContractId,contractId)
- .orderByAsc(YwRoom::getSortnum)
+ .last(" group by t.id " +
+ "ORDER BY t.sortnum ASC ")
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywLeaseRoomList)){
ywRoomContractDataVO.setLeaseArea(
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
index b04ef29..a1531fe 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
@@ -195,6 +195,7 @@
.set(YwStocktakingRecord::getActStock,ywStocktakingRecord.getActStock())
.set(YwStocktakingRecord::getUserId,loginUserInfo.getId())
.set(YwStocktakingRecord::getPlanDate, DateUtil.getCurrDateTime())
+ .set(StringUtils.isNotBlank(ywStocktakingRecord.getRemark()),YwStocktakingRecord::getRemark, ywStocktakingRecord.getRemark())
.eq(YwStocktakingRecord::getId,ywStocktakingRecord.getId())
);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
index 76ba25d..3ca923e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
@@ -442,7 +442,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(recordList)){
//鍚堣鐩樼偣鏁版嵁
ywStocktaking.setFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size());
- ywStocktaking.setUnFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
+ ywStocktaking.setUnFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size());
ywStocktaking.setEqualAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList()).size());
ywStocktaking.setLossAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ONE)).collect(Collectors.toList()).size());
ywStocktaking.setProfitAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.TWO)).collect(Collectors.toList()).size());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
index 6568f12..c68200e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
@@ -232,8 +232,6 @@
.set(YwTempConfig::getUrl,leasesTemp.getUrl())
.eq(YwTempConfig::getId,leasesTemp.getId())
);
-
-
YwTempConfig otherTemp = ywCallTempDataDTO.getOtherTemp();
if(Objects.isNull(otherTemp.getId())
|| Objects.isNull(otherTemp.getTitle())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
index cf15928..8e969d7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
@@ -132,7 +132,7 @@
if(ywStockMapper.selectCount(new QueryWrapper<YwStock>().lambda().eq(YwStock::getIsdeleted,Constants.ZERO)
.gt(YwStock::getStock,Constants.ZERO)
.eq(YwStock::getWarehouseId,ywWarehouse.getId()))>Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠浠撳簱鍐呮湁搴撳瓨鐨勭墿鏂欙紝涓嶅彲鍒犻櫎");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠浠撳簱鍐呮湁搴撳瓨鐨勭墿鏂欙紝涓嶅彲绂佺敤");
};
ywWarehouseMapper.update(new UpdateWrapper<YwWarehouse>().lambda().eq(YwWarehouse::getId,ywWarehouse.getId()).set(YwWarehouse::getStatus,ywWarehouse.getStatus()));
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
index 58d10e9..07ad32d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
@@ -503,6 +503,9 @@
if (pageWrap.getModel().getRoomId() != null) {
queryWrapper.eq(YwWorkorder::getRoomId, pageWrap.getModel().getRoomId());
}
+ if (pageWrap.getModel().getFloorId() != null) {
+ queryWrapper.eq(YwWorkorder::getFloorId, pageWrap.getModel().getFloorId());
+ }
if (pageWrap.getModel().getUserId() != null) {
queryWrapper.eq(YwWorkorder::getUserId, pageWrap.getModel().getUserId());
}
diff --git a/server/visits/dmvisit_service/src/main/resources/application-dev.yml b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
index 29d1baf..b3984c7 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-dev.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
@@ -15,7 +15,15 @@
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
-
+ mail:
+ default-encoding: UTF-8
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: p7iKUE8VvQQpY58S
+ properties:
+ mail:
+ smtp:
+ auth: true
debug_model: true
@@ -26,6 +34,8 @@
need-deal-img: true #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹�
+########################鍘嬬缉鍖呮枃浠朵綅缃� ########################
+zip_file_path: d://
# Swagger閰嶇疆
swagger:
host: 127.0.0.1
diff --git a/server/visits/dmvisit_service/src/main/resources/application-pro.yml b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
index b27c85b..eeed79a 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-pro.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -15,10 +15,21 @@
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
-
+ mail:
+ default-encoding: UTF-8
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: p7iKUE8VvQQpY58S
+ properties:
+ mail:
+ smtp:
+ auth: true
debug_model: true
+########################鍘嬬缉鍖呮枃浠朵綅缃� ########################
+zip_file_path: d://
+
########################鍚屾鏁版嵁妯″紡 ########################
data-sync:
org-user-data-origin: 0 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
diff --git a/server/visits/dmvisit_service/src/main/resources/application-test.yml b/server/visits/dmvisit_service/src/main/resources/application-test.yml
index 6bc2caa..5e192c8 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-test.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-test.yml
@@ -15,10 +15,20 @@
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
-
+ mail:
+ default-encoding: UTF-8
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: p7iKUE8VvQQpY58S
+ properties:
+ mail:
+ smtp:
+ auth: true
debug_model: true
+########################鍘嬬缉鍖呮枃浠朵綅缃� ########################
+zip_file_path: /usr/local/static_resources/fn/
########################鍚屾鏁版嵁妯″紡 ########################
data-sync:
org-user-data-origin: 0 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
--
Gitblit v1.9.3