From 363208403f2076fef350a7feaf236e6153f982be Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 10 一月 2025 09:19:28 +0800 Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/funingyunwei into 2.0.1 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java | 207 ++- server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java | 22 admin/src/views/stock/check.vue | 135 ++ server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java | 90 + admin/src/views/stock/in.vue | 138 ++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwProblemMapper.java | 3 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java | 36 admin/package-lock.json | 160 +- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java | 97 + server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java | 7 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java | 16 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java | 7 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java | 4 admin/src/views/stock/components/CateEdit.vue | 74 + server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwProblem.java | 52 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java | 22 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwWorkorderService.java | 5 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java | 201 +++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java | 27 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java | 13 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java | 6 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java | 5 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java | 8 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java | 71 + server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 7 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java | 17 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java | 34 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java | 5 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java | 5 admin/src/views/stock/out.vue | 138 ++ admin/src/views/stock/assetList.vue | 140 ++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java | 1 admin/src/views/stock/record.vue | 150 ++ admin/src/views/stock/asset.vue | 133 ++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwWorkorderDataDTO.java | 25 server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 9 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProblemController.java | 31 admin/src/views/stock/assetCate.vue | 109 ++ server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java | 17 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java | 8 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 21 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceCateDataVO.java | 28 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java | 44 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java | 16 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java | 43 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProblemService.java | 8 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceParentCateDataVO.java | 29 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java | 8 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java | 34 server/db/business.yw_quick_model.permissions.sql | 6 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java | 116 ++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwWorkorderDataVO.java | 30 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java | 58 + server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceStatusDataVO.java | 28 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java | 142 ++ admin/src/views/stock/query.vue | 132 ++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java | 165 +++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 32 60 files changed, 2,992 insertions(+), 187 deletions(-) diff --git a/admin/package-lock.json b/admin/package-lock.json index 4adea74..6d328d1 100644 --- a/admin/package-lock.json +++ b/admin/package-lock.json @@ -2915,63 +2915,6 @@ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", @@ -2979,28 +2922,6 @@ "dev": true, "requires": { "minipass": "^3.1.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" } } } @@ -15821,6 +15742,87 @@ } } }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "vue-property-decorator": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz", diff --git a/admin/src/views/stock/asset.vue b/admin/src/views/stock/asset.vue new file mode 100644 index 0000000..61d0ab4 --- /dev/null +++ b/admin/src/views/stock/asset.vue @@ -0,0 +1,133 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">鏂板</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="浠撳簱鍚嶇О" min-width="120" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="璐熻矗浜�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="浠撳簱浣嶇疆" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鎺掑簭鐮�" min-width="110" show-overflow-tooltip /> + <el-table-column prop="param1" label="澶囨敞" min-width="120" show-overflow-tooltip /> + <el-table-column prop="param2" label="鐘舵��" min-width="90" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔" min-width="100" show-overflow-tooltip> + <template v-slot="{row}"> + <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + <span class="red pointer">鍒犻櫎</span> + </template> + </el-table-column> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '浠撳簱鍚嶇О', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '浠撳簱鐘舵��', + options: [] + } + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style> + +</style> diff --git a/admin/src/views/stock/assetCate.vue b/admin/src/views/stock/assetCate.vue new file mode 100644 index 0000000..375678f --- /dev/null +++ b/admin/src/views/stock/assetCate.vue @@ -0,0 +1,109 @@ +<template> + <TableLayout> + <template v-slot:table-wrap> + <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']"> + <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" + v-permissions="['business:category:create']">鏂板缓</el-button></li> + <li v-permissions="['business:category:exportExcel']"><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="parentName" 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"> + <template slot-scope="{row}"> + <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" + v-permissions="['business:category:update']">缂栬緫</el-button> + <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" + v-permissions="['business:category:delete']">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination"> + </pagination> + </template> + <!-- 鏂板缓/淇敼 --> + <CateEdit v-if="isShowEdit" @close="isShowEdit = false" ref="CateEditRef" @success="getList" /> + </TableLayout> +</template> + +<script> +import BaseTable from '@/components/base/BaseTable' +import TableLayout from '@/layouts/TableLayout' +import Pagination from '@/components/common/Pagination' +import CateEdit from './components/CateEdit.vue' +import { fetchList, deleteById } from '@/api/business/category.js' +export default { + name: 'Category', + extends: BaseTable, + components: { TableLayout, Pagination, CateEdit }, + data() { + return { + // 鎼滅储 + filters: { + parentId: '' + }, + isShowEdit: false, + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0, + }, + dataList: [] + } + }, + created() { + this.config({ + module: '杞﹁締淇℃伅琛�', + api: '/business/category', + 'field.id': 'id', + 'field.main': 'id' + }) + this.getList() + }, + methods: { + handleEdit(row) { + this.isShowEdit = true + let str = row && row.id ? '缂栬緫璧勪骇鍒嗙被' : '鏂板缓璧勪骇鍒嗙被' + this.$nextTick(() => { + this.$refs.CateEditRef.open(str) + this.$refs.CateEditRef.getList() + if (row && row.id) { + this.$refs.CateEditRef.getDetail(row.id) + } + }) + }, + deleteById(row) { + this.$confirm(`鎮ㄧ‘璁よ鍒犻櫎璇ュ垎绫诲悧`, '娓╅Θ鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + deleteById(row.id).then(res => { + this.getList() + }) + }) + + }, + getList() { + const { pagination, filters } = this + this.loading = true + fetchList({ + model: { ...filters, type: 5 }, + capacity: pagination.pageSize, + page: pagination.page, + }).then(res => { + this.loading = false + this.dataList = res.records || [] + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + } +} +</script> diff --git a/admin/src/views/stock/assetList.vue b/admin/src/views/stock/assetList.vue new file mode 100644 index 0000000..c5851ae --- /dev/null +++ b/admin/src/views/stock/assetList.vue @@ -0,0 +1,140 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">鏂板</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="璧勪骇缂栫爜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="璧勪骇鍚嶇О" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="鏉$爜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鍝佺墝" min-width="100" show-overflow-tooltip /> + <el-table-column prop="param1" label="瑙勬牸鍨嬪彿" min-width="100" show-overflow-tooltip /> + <el-table-column prop="param2" label="鍗曚綅" min-width="70" show-overflow-tooltip /> + <el-table-column prop="param2" label="瀹夊叏搴撳瓨(涓嬮檺)" min-width="120" show-overflow-tooltip /> + <el-table-column prop="param2" label="瀹夊叏搴撳瓨(涓婇檺)" min-width="120" show-overflow-tooltip /> + <el-table-column prop="param2" label="鐘舵��" min-width="80" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔" min-width="100" show-overflow-tooltip> + <template v-slot="{ row }"> + <span class="primaryColor pointer">缂栬緫</span> + <span class="red pointer">鍒犻櫎</span> + </template> + </el-table-column> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '璧勪骇淇℃伅', + placeholder: '璇疯緭鍏ヨ祫浜у悕绉�/缂栫爜' + }, + { + filed: 'carCodeFront', + type: 'input', + label: '瑙勬牸鍨嬪彿', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鎵�灞為」鐩�', + options: [] + } + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style></style> diff --git a/admin/src/views/stock/check.vue b/admin/src/views/stock/check.vue new file mode 100644 index 0000000..86c05ec --- /dev/null +++ b/admin/src/views/stock/check.vue @@ -0,0 +1,135 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">娣诲姞</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="鐩樼偣鍗曞悕绉�" min-width="120" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="鐩樼偣浠撳簱" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="鐩樼偣鍛�" min-width="80" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鐩樼偣鏃ユ湡" min-width="110" show-overflow-tooltip /> + <el-table-column prop="param1" label="鍒涘缓浜�" min-width="80" show-overflow-tooltip /> + <el-table-column prop="param2" label="鍒涘缓鏃堕棿" min-width="140" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鐩樼偣鐘舵��" min-width="80" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔" min-width="140" show-overflow-tooltip> + <template v-slot="{row}"> + <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + <span class="primaryColor pointer">鍙栨秷</span> + <span class="primaryColor pointer">鍒犻櫎</span> + </template> + </el-table-column> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '鐩樼偣鍗�', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鐩樼偣鐘舵��', + options: [] + }, + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style> + +</style> diff --git a/admin/src/views/stock/components/CateEdit.vue b/admin/src/views/stock/components/CateEdit.vue new file mode 100644 index 0000000..a066862 --- /dev/null +++ b/admin/src/views/stock/components/CateEdit.vue @@ -0,0 +1,74 @@ +<template> + <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm"> + <el-form :model="form" ref="form" :rules="rules"> + <el-form-item label="鍒嗙被鍚嶇О" prop="name"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ュ垎绫诲悕绉�" v-trim /> + </el-form-item> + <el-form-item label="鎵�灞炲垎绫�" prop="parentId"> + <el-select :disabled="form.id" v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�"> + <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鎺掑簭鐮�(鍗囧簭)" prop="sortnum"> + <el-input v-model="form.sortnum" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 6)" v-trim /> + </el-form-item> + </el-form> + </GlobalWindow> +</template> + +<script> +import BaseOpera from '@/components/base/BaseOpera' +import GlobalWindow from '@/components/common/GlobalWindow' +import { create, fetchCateList, getInfoById } from '@/api/business/category.js' +export default { + name: 'OperaCategoryWindow', + extends: BaseOpera, + components: { GlobalWindow }, + data() { + return { + // 琛ㄥ崟鏁版嵁 + form: { + parentId: null, + name: '', + remark: '', + status: '', + sortnum: '', + type: 5 + }, + // 楠岃瘉瑙勫垯 + rules: { + name: [ + { required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' } + ], + status: [ + { required: true, message: '璇烽�夋嫨鏄惁鍚敤', trigger: 'change' } + ] + }, + dataList: [] + } + }, + created() { + this.config({ + api: '/business/category', + 'field.id': 'id' + }) + }, + methods: { + getList() { + fetchCateList({ type: 5 }).then(res => { + this.dataList = res || [] + + }) + }, + close() { + this.visible = false + this.$emit('close') + }, + getDetail(id) { + getInfoById(id).then(res => { + this.form = res + }) + }, + } +} +</script> diff --git a/admin/src/views/stock/in.vue b/admin/src/views/stock/in.vue index e69de29..e71d95d 100644 --- a/admin/src/views/stock/in.vue +++ b/admin/src/views/stock/in.vue @@ -0,0 +1,138 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="鍑哄簱鍗曞彿" min-width="120" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="鍑哄簱浠撳簱" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="鍑哄簱绫诲瀷" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鍑哄簱鏃ユ湡" min-width="110" show-overflow-tooltip /> + <el-table-column prop="param1" label="鍑哄簱鏁伴噺" min-width="120" show-overflow-tooltip /> + <el-table-column prop="param2" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip> + <template v-slot="{row}"> + <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + </template> + </el-table-column> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '鍑哄簱鍗曞彿', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鎵�鍦ㄤ粨搴�', + options: [] + }, + { + filed: 'carCodeFront', + type: 'input', + label: '鍑哄簱绫诲瀷', + }, + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style> + +</style> diff --git a/admin/src/views/stock/out.vue b/admin/src/views/stock/out.vue index e69de29..e71d95d 100644 --- a/admin/src/views/stock/out.vue +++ b/admin/src/views/stock/out.vue @@ -0,0 +1,138 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="鍑哄簱鍗曞彿" min-width="120" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="鍑哄簱浠撳簱" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="鍑哄簱绫诲瀷" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鍑哄簱鏃ユ湡" min-width="110" show-overflow-tooltip /> + <el-table-column prop="param1" label="鍑哄簱鏁伴噺" min-width="120" show-overflow-tooltip /> + <el-table-column prop="param2" label="鎿嶄綔浜�" min-width="90" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔鏃堕棿" min-width="140" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鎿嶄綔" min-width="80" show-overflow-tooltip> + <template v-slot="{row}"> + <span class="primaryColor pointer">鏌ョ湅璇︽儏</span> + </template> + </el-table-column> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '鍑哄簱鍗曞彿', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鎵�鍦ㄤ粨搴�', + options: [] + }, + { + filed: 'carCodeFront', + type: 'input', + label: '鍑哄簱绫诲瀷', + }, + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style> + +</style> diff --git a/admin/src/views/stock/query.vue b/admin/src/views/stock/query.vue index e69de29..7c318d2 100644 --- a/admin/src/views/stock/query.vue +++ b/admin/src/views/stock/query.vue @@ -0,0 +1,132 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="璧勪骇缂栫爜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="璧勪骇鍚嶇О" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="鏉$爜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鍝佺墝" min-width="100" show-overflow-tooltip /> + <el-table-column prop="param1" label="瑙勬牸鍨嬪彿" min-width="100" show-overflow-tooltip /> + <el-table-column prop="param2" label="鎵�鍦ㄤ粨搴�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="workTime" label="搴撳瓨" min-width="80" show-overflow-tooltip /> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'platformGroupId', + type: 'select', + label: '鎵�鍦ㄤ粨搴�', + options: [] + }, + { + filed: 'carCodeFront', + type: 'input', + label: '璧勪骇淇℃伅', + placeholder: '璇疯緭鍏ヨ祫浜у悕绉�/缂栫爜' + }, + { + filed: 'carCodeFront', + type: 'input', + label: '鍨嬪彿', + }, + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style></style> diff --git a/admin/src/views/stock/record.vue b/admin/src/views/stock/record.vue index e69de29..7f1764b 100644 --- a/admin/src/views/stock/record.vue +++ b/admin/src/views/stock/record.vue @@ -0,0 +1,150 @@ +<template> + <div class="main_app"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div class="mt20"> + <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button> + </div> + <el-table v-loading="loading" :data="list" stripe> + <el-table-column prop="platformName" label="鍗曟嵁鏃ユ湡" min-width="100" show-overflow-tooltip /> + <el-table-column prop="platformName" label="璧勪骇缂栫爜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="platformGroupName" label="璧勪骇鍚嶇О" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="璧勪骇鍒嗙被" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="鏁伴噺" min-width="80" show-overflow-tooltip /> + <el-table-column prop="param1" label="绫诲瀷" min-width="80" show-overflow-tooltip /> + <el-table-column prop="workTime" label="浠撳簱" min-width="90" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鍗曟嵁缂栧彿" min-width="120" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鍒涘缓浜�" min-width="80" show-overflow-tooltip /> + <el-table-column prop="workTime" label="鍒涘缓鏃堕棿" min-width="140" show-overflow-tooltip /> + </el-table> + <div class="mt20"> + <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + </div> + </div> +</template> + +<script> +import Pagination from '@/components/common/Pagination' +import QueryForm from '@/components/common/QueryForm' +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' +dayjs.extend(duration) +import { platformLogPage, getPlatformGroupList } from '@/api' +export default { + components: { + Pagination, + QueryForm + }, + data() { + return { + loading: false, + pagination: { + pageSize: 10, + page: 1, + total: 0 + }, + filters: {}, + list: [], + total: 0, + queryFormConfig: { + formItems: [ + { + filed: 'carCodeFront', + type: 'input', + label: '璧勪骇缂栫爜', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鎵�鍦ㄤ粨搴�', + options: [] + }, + { + filed: 'carCodeFront', + type: 'input', + label: '鍗曟嵁缂栧彿', + }, + { + filed: 'platformGroupId', + type: 'select', + label: '鍗曟嵁绫诲瀷', + options: [] + }, + { + filed: 'selDate', + type: 'daterange', + label: '鍗曟嵁鏃ユ湡', + }, + { + filed: 'selTime', + type: 'daterange', + label: '鍒涘缓鏃堕棿', + }, + ], + online: true + } + } + }, + created() { + // this.getList() + // this.getGroupList() + }, + methods: { + handleSub() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + alert('submit!') + } + }) + }, + handleEx() { }, + getGroupList() { + getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { + this.queryFormConfig.formItems[1].options = res.map(i => { + return { + value: i.id, + label: i.name + } + }) + // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '鍏ㄩ儴鏈堝彴缁�' }) + }) + }, + getList(page) { + const { pagination, filters } = this + this.loading = true + platformLogPage({ + model: { + ...filters, + queryStatus: '6,7,8', + beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + sorts: [{ direction: 'DESC', property: 'param1' }], + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + item.taskOrigin = 'WMS鑾峰彇' + item.workTime = dayjs.duration(item.param3, 'seconds').format('H鏃秏鍒唖绉�') + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + clear() { + this.filters = {} + this.pagination.pageSize = 10 + this.pagination.page = 1 + this.getList() + }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity + } + } +} +</script> + +<style></style> diff --git a/server/db/business.yw_quick_model.permissions.sql b/server/db/business.yw_quick_model.permissions.sql new file mode 100644 index 0000000..b38841c --- /dev/null +++ b/server/db/business.yw_quick_model.permissions.sql @@ -0,0 +1,6 @@ +INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:create', '鏂板缓宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); +INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:delete', '鍒犻櫎宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); +INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:update', '淇敼宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); +INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:query', '鏌ヨ宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); +INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:exportExcel', '瀵煎嚭宸ヤ綔鍙� - 蹇嵎妯″潡(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); + diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java index f5ac3a4..29e590d 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java @@ -53,6 +53,7 @@ public static final String YW_PATROL ="YW_PATROL" ; public static final String YW_CONTRACT_BILL ="YW_CONTRACT_BILL" ; public static final String YW_MATERIAL ="YW_MATERIAL" ; + public static final String YW_PROBLEM ="YW_PROBLEM" ; public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ; public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ; @@ -1388,6 +1389,7 @@ FN_PATROL_TASK_RECORD_FILE(11, "宸℃浠诲姟鐐瑰鐞嗛檮浠� ", "宸℃浠诲姟鐐瑰鐞嗛檮浠� "), MATERIAL_FILE(12, "璧勪骇闄勪欢 ", "璧勪骇闄勪欢 "), PROBLEM_FILE(13, "闂闄勪欢 ", "闂闄勪欢 "), + FN_DEVICE_MAINTENANCE_FILE(14, "闃滃畞鏈嶅姟骞冲彴璁惧鏂囦欢 ", "闃滃畞鏈嶅姟骞冲彴璁惧鏂囦欢 "), ; // 鎴愬憳鍙橀噺 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 0ee45de..ca58ec1 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 @@ -10,6 +10,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.YwContractBill; +import com.doumee.dao.business.vo.YwContractBillDataVO; import com.doumee.service.business.YwContractBillService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -112,5 +113,11 @@ return ApiResponse.success("鐢熸垚鎴愬姛"); } + @ApiOperation("鑾峰彇寰呭鐞嗚处鍗�") + @GetMapping("/getWaitDealList") + @CloudRequiredPermission("business:ywcontractbill:query") + public ApiResponse<YwContractBillDataVO> getWaitDealList(@RequestParam Integer contractId,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywContractBillService.getWaitDealList(contractId)); + } } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java index ff55707..6c3738c 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java @@ -8,6 +8,8 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.YwDevice; +import com.doumee.dao.business.vo.YwDeviceCateDataVO; +import com.doumee.dao.business.vo.YwDeviceStatusDataVO; import com.doumee.service.business.YwDeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -18,6 +20,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * @author 姹熻箘韫� @@ -100,6 +103,17 @@ return ApiResponse.success(ywDeviceService.findByCode(deviceCode)); } + @ApiOperation("璁惧鏁伴噺鍒嗙被缁熻") + @PostMapping("/getDeviceCateData") + @CloudRequiredPermission("business:ywdevice:query") + public ApiResponse<Set<YwDeviceCateDataVO>> getDeviceCateData (@RequestBody YwDevice ywDevice,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywDeviceService.getDeviceCateData(ywDevice)); + } - + @ApiOperation("璁惧鐘舵�佺粺璁�") + @PostMapping("/getDeviceStatus") + @CloudRequiredPermission("business:ywdevice:query") + public ApiResponse<YwDeviceStatusDataVO> getDeviceStatus (@RequestBody YwDevice ywDevice,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywDeviceService.getDeviceStatus(ywDevice)); + } } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProblemController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProblemController.java index 310349f..54e6b7d 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProblemController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProblemController.java @@ -10,7 +10,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.YwProblem; +import com.doumee.dao.business.model.YwWorkorder; import com.doumee.service.business.YwProblemService; +import com.doumee.service.business.impl.YwWorkorderServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -33,6 +35,8 @@ @Autowired private YwProblemService ywProblemService; + @Autowired + private YwWorkorderServiceImpl ywWorkorderService; @LoginNoRequired @PreventRepeat @ApiOperation("闂鎻愭姤") @@ -41,10 +45,23 @@ return ApiResponse.success(ywProblemService.create(ywProblem)); } + + + + @ApiOperation("鏍规嵁ID淇敼") + @PostMapping("/editProblem") + @CloudRequiredPermission("business:ywproblem:update") + public ApiResponse editProblem(@RequestBody YwProblem ywProblem,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + ywProblem.setLoginUserInfo(getLoginUser(token)); + ywProblemService.editProblem(ywProblem,ywWorkorderService); + return ApiResponse.success(null); + } + + @ApiOperation("鏍规嵁ID鍒犻櫎") @GetMapping("/delete/{id}") @CloudRequiredPermission("business:ywproblem:delete") - public ApiResponse deleteById(@PathVariable Integer id) { + public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywProblemService.deleteById(id); return ApiResponse.success(null); } @@ -52,7 +69,7 @@ @ApiOperation("鎵归噺鍒犻櫎") @GetMapping("/delete/batch") @CloudRequiredPermission("business:ywproblem:delete") - public ApiResponse deleteByIdInBatch(@RequestParam String ids) { + public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray) { @@ -65,7 +82,7 @@ @ApiOperation("鏍规嵁ID淇敼") @PostMapping("/updateById") @CloudRequiredPermission("business:ywproblem:update") - public ApiResponse updateById(@RequestBody YwProblem ywProblem) { + public ApiResponse updateById(@RequestBody YwProblem ywProblem,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywProblemService.updateById(ywProblem); return ApiResponse.success(null); } @@ -73,21 +90,21 @@ @ApiOperation("鍒嗛〉鏌ヨ") @PostMapping("/page") @CloudRequiredPermission("business:ywproblem:query") - public ApiResponse<PageData<YwProblem>> findPage (@RequestBody PageWrap<YwProblem> pageWrap) { + public ApiResponse<PageData<YwProblem>> findPage (@RequestBody PageWrap<YwProblem> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywProblemService.findPage(pageWrap)); } @ApiOperation("瀵煎嚭Excel") @PostMapping("/exportExcel") @CloudRequiredPermission("business:ywproblem:exportExcel") - public void exportExcel (@RequestBody PageWrap<YwProblem> pageWrap, HttpServletResponse response) { + public void exportExcel (@RequestBody PageWrap<YwProblem> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ExcelExporter.build(YwProblem.class).export(ywProblemService.findPage(pageWrap).getRecords(), "杩愮淮闂涓婃姤淇℃伅琛�", response); } @ApiOperation("鏍规嵁ID鏌ヨ") @GetMapping("/{id}") @CloudRequiredPermission("business:ywproblem:query") - public ApiResponse findById(@PathVariable Integer id) { - return ApiResponse.success(ywProblemService.findById(id)); + public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywProblemService.getDetail(id)); } } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java new file mode 100644 index 0000000..6f05fa8 --- /dev/null +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java @@ -0,0 +1,90 @@ +package com.doumee.cloud.admin; + +import com.doumee.api.BaseController; +import com.doumee.core.annotation.excel.ExcelExporter; +import com.doumee.core.annotation.pr.PreventRepeat; +import com.doumee.core.model.ApiResponse; +import com.doumee.core.model.PageWrap; +import com.doumee.core.model.PageData; +import com.doumee.dao.business.model.YwQuickModel; +import com.doumee.service.business.YwQuickModelService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author 姹熻箘韫� + * @date 2025/01/09 17:47 + */ +@Api(tags = "宸ヤ綔鍙� - 蹇嵎妯″潡") +@RestController +@RequestMapping("/business/ywQuickModel") +public class YwQuickModelCloudController extends BaseController { + + @Autowired + private YwQuickModelService ywQuickModelService; + + @PreventRepeat + @ApiOperation("鏂板缓") + @PostMapping("/create") + @RequiresPermissions("business:ywquickmodel:create") + public ApiResponse create(@RequestBody YwQuickModel ywQuickModel) { + return ApiResponse.success(ywQuickModelService.create(ywQuickModel)); + } + + @ApiOperation("鏍规嵁ID鍒犻櫎") + @GetMapping("/delete/{id}") + @RequiresPermissions("business:ywquickmodel:delete") + public ApiResponse deleteById(@PathVariable Integer id) { + ywQuickModelService.deleteById(id); + return ApiResponse.success(null); + } + + @ApiOperation("鎵归噺鍒犻櫎") + @GetMapping("/delete/batch") + @RequiresPermissions("business:ywquickmodel:delete") + public ApiResponse deleteByIdInBatch(@RequestParam String ids) { + String [] idArray = ids.split(","); + List<Integer> idList = new ArrayList<>(); + for (String id : idArray) { + idList.add(Integer.valueOf(id)); + } + ywQuickModelService.deleteByIdInBatch(idList); + return ApiResponse.success(null); + } + + @ApiOperation("鏍规嵁ID淇敼") + @PostMapping("/updateById") + @RequiresPermissions("business:ywquickmodel:update") + public ApiResponse updateById(@RequestBody YwQuickModel ywQuickModel) { + ywQuickModelService.updateById(ywQuickModel); + return ApiResponse.success(null); + } + + @ApiOperation("鍒嗛〉鏌ヨ") + @PostMapping("/page") + @RequiresPermissions("business:ywquickmodel:query") + public ApiResponse<PageData<YwQuickModel>> findPage (@RequestBody PageWrap<YwQuickModel> pageWrap) { + return ApiResponse.success(ywQuickModelService.findPage(pageWrap)); + } + + @ApiOperation("瀵煎嚭Excel") + @PostMapping("/exportExcel") + @RequiresPermissions("business:ywquickmodel:exportExcel") + public void exportExcel (@RequestBody PageWrap<YwQuickModel> pageWrap, HttpServletResponse response) { + ExcelExporter.build(YwQuickModel.class).export(ywQuickModelService.findPage(pageWrap).getRecords(), "宸ヤ綔鍙� - 蹇嵎妯″潡", response); + } + + @ApiOperation("鏍规嵁ID鏌ヨ") + @GetMapping("/{id}") + @RequiresPermissions("business:ywquickmodel:query") + public ApiResponse findById(@PathVariable Integer id) { + return ApiResponse.success(ywQuickModelService.findById(id)); + } +} diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java index 0eac4e5..af30c32 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java @@ -9,6 +9,8 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.YwContractRoom; import com.doumee.dao.business.model.YwRoom; +import com.doumee.dao.business.vo.YwFloorStatusDataVO; +import com.doumee.dao.business.vo.YwRoomContractDataVO; import com.doumee.service.business.YwRoomService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -99,4 +101,19 @@ public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywRoomService.findById(id)); } + + @ApiOperation("鏌ヨ鎴块棿鎬佸娍鏁版嵁") + @PostMapping("/getRoomStatusList") + @CloudRequiredPermission("business:ywroom:query") + public ApiResponse<List<YwFloorStatusDataVO>> getRoomStatusList (@RequestBody YwRoom model, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywRoomService.getRoomStatusList(model)); + } + + @ApiOperation("鏌ヨ鎴块棿绉熻祦淇℃伅") + @PostMapping("/getRoomContract") + @CloudRequiredPermission("business:ywroom:query") + public ApiResponse<YwRoomContractDataVO> getRoomContract (@RequestBody YwRoom model, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + return ApiResponse.success(ywRoomService.getRoomContract(model)); + } + } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java index 792cdb9..2c44494 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java @@ -7,7 +7,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.dao.business.dto.YwWorkorderDataDTO; import com.doumee.dao.business.model.YwWorkorder; +import com.doumee.dao.business.vo.YwWorkorderDataVO; import com.doumee.service.business.YwWorkorderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,6 +39,7 @@ @CloudRequiredPermission("business:ywworkorder:create") public ApiResponse create(@RequestBody YwWorkorder ywWorkorder,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywWorkorder.setLoginUserInfo(this.getLoginUser(token)); + ywWorkorder.setOrigin(Constants.ZERO); return ApiResponse.success(ywWorkorderService.create(ywWorkorder)); } @@ -86,6 +89,19 @@ return ApiResponse.success(null); } + + @ApiOperation("鑾峰彇宸ュ崟鏁伴噺淇℃伅") + @PostMapping("/getDataVO") + @CloudRequiredPermission("business:ywworkorder:update") + public ApiResponse<YwWorkorderDataVO> getDataVO(@RequestBody YwWorkorderDataDTO dto,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + YwWorkorderDataVO ywWorkorderDataVO = ywWorkorderService.getDataVO(dto); + return ApiResponse.success(ywWorkorderDataVO); + } + + + + + @ApiOperation("鍒嗛〉鏌ヨ") @PostMapping("/page") @CloudRequiredPermission("business:ywworkorder:query") diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwProblemMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwProblemMapper.java index 92b447a..c857dbb 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwProblemMapper.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwProblemMapper.java @@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.YwProblem; +import com.github.yulichang.base.MPJBaseMapper; /** * @author 姹熻箘韫� * @date 2025/01/06 11:05 */ -public interface YwProblemMapper extends BaseMapper<YwProblem> { +public interface YwProblemMapper extends MPJBaseMapper<YwProblem> { } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java new file mode 100644 index 0000000..b463189 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java @@ -0,0 +1,13 @@ +package com.doumee.dao.business; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.doumee.dao.business.model.YwQuickModel; +import com.github.yulichang.base.MPJBaseMapper; + +/** + * @author 姹熻箘韫� + * @date 2025/01/09 17:47 + */ +public interface YwQuickModelMapper extends MPJBaseMapper<YwQuickModel> { + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwWorkorderDataDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwWorkorderDataDTO.java new file mode 100644 index 0000000..cb84c1f --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwWorkorderDataDTO.java @@ -0,0 +1,25 @@ +package com.doumee.dao.business.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:37 + */ +@Data +public class YwWorkorderDataDTO { + + + @ApiModelProperty(value = "鏌ヨ绫诲瀷锛�1=椤圭洰锛�2=妤煎眰锛�3=鎴块棿", example = "1") + private Integer queryType; + + @ApiModelProperty(value = "涓氬姟涓婚敭", example = "1") + private Integer queryId; + + + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java index 5fca146..40a3fe7 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java @@ -115,4 +115,11 @@ @ApiModelProperty(value = "椤圭洰鍚嶇О") @TableField(exist = false) private String projectName; + @ApiModelProperty(value = "鎴块棿璁¤垂闈㈢Н锛堝钩鏂圭背锛�", example = "1") + @TableField(exist = false) + private BigDecimal roomFeeArea; + @ApiModelProperty(value = "鎴块棿璁$闈㈢Н锛堝钩鏂圭背锛�", example = "1") + @TableField(exist = false) + private BigDecimal roomRentArea; + } 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 85292b5..4d5198f 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 @@ -202,6 +202,9 @@ @ExcelColumn(name="鐗╀笟璐规�婚噾棰�") private BigDecimal wyTotalFee; + @ApiModelProperty(value = "鎴块棿涓婚敭 鏌ヨ浣跨敤") + @TableField(exist = false) + private Integer roomId; @ApiModelProperty(value = "闄勪欢闆嗗悎") @TableField(exist = false) private List<Multifile> fileList; @@ -244,6 +247,9 @@ @ApiModelProperty(value = "閲嶆柊寮�濮嬫椂闂�") @TableField(exist = false) private Date queryStartTime; + @ApiModelProperty(value = "鍚堝悓鎬昏垂鐢�",notes = "鍚堝悓鍒濆鍖栨椂閲戦", example = "1") + @TableField(exist = false) + private BigDecimal totalFee; @ApiModelProperty(value = "鏌ヨ缁撴潫鏃堕棿") @TableField(exist = false) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java index 99f3efe..ef14ea2 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java @@ -12,6 +12,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; +import java.util.List; /** * 杩愮淮璁惧淇℃伅琛� @@ -94,9 +95,46 @@ @ExcelColumn(name="鎵�鍦ㄤ綅缃�") private String addr; + @ApiModelProperty(value = "鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)", example = "1") + private Integer projectId; + + @ApiModelProperty(value = "鎵�灞炴ゼ灞傜紪鐮侊紙鍏宠仈yw_floor)", example = "1") + private Integer floorId; + + @ApiModelProperty(value = "鎵�灞炴ゼ瀹囩紪鐮侊紙鍏宠仈yw_building)", example = "1") + private Integer buildingId; + + @ApiModelProperty(value = "鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)", example = "1") + private Integer roomId; + + + @ApiModelProperty(value = "渚涘簲鍟嗚仈绯讳汉") + private String supplierLinker; + + @ApiModelProperty(value = "渚涘簲鍟嗚仈绯荤數璇�") + private String supplierPhone; + + @ApiModelProperty(value = "缁翠繚浜哄憳涓婚敭锛堝叧鑱攕ystem_user锛�") + private Integer maintenanceUserId; + + @ApiModelProperty(value = "缁翠繚鍒版湡鏃�") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date maintenanceOverDate; + + @ApiModelProperty(value = "缁翠繚璇存槑") + private String maintenanceContent; + @ApiModelProperty(value = "鍒嗙被鍚嶇О") @TableField(exist = false) private String categoryName; + + @ApiModelProperty(value = "鐖剁骇鍒嗙被鍚嶇О") + @TableField(exist = false) + private String categoryParentName; + + @ApiModelProperty(value = "鎵�灞炵埗绾у垎绫荤紪鐮侊紙鍏宠仈category锛�", example = "1") + @TableField(exist = false) + private Integer cateParentId; @ApiModelProperty(value = "绠$悊鍛樺悕绉�") @TableField(exist = false) @@ -110,6 +148,12 @@ @TableField(exist = false) private String fileFullUrl; + @ApiModelProperty(value = "闄勪欢淇℃伅") + @TableField(exist = false) + private List<Multifile> multifileList; + + + // @ApiModelProperty(value = "闄勪欢淇℃伅") // @TableField(exist = false) 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 5f23ec8..37e6303 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 @@ -119,5 +119,13 @@ @TableField(exist = false) private Integer projectId; + @ApiModelProperty(value = "妤煎畤涓婚敭", example = "1") + @TableField(exist = false) + private Integer buildingId; + + @ApiModelProperty(value = "妤煎眰涓婚敭", example = "1") + @TableField(exist = false) + private Integer floorId; + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java index bc6ea4b..3b798da 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java @@ -11,6 +11,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; +import java.util.List; /** * 杩愮淮宸℃璁″垝淇℃伅琛� @@ -133,4 +134,7 @@ @JsonFormat(pattern = "yyyy-MM-dd") private Date endDateSec; + + + } 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 d6ff2a8..ef8a041 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 @@ -119,4 +119,26 @@ @TableField(exist = false) private List<Multifile> multifileList; + + @ApiModelProperty(value = "宸℃璁″垝鍚嶇О") + @TableField(exist = false) + private String schemeTitle; + + @ApiModelProperty(value = "宸℃浠诲姟缂栧彿") + @TableField(exist = false) + private String taskCode; + + @ApiModelProperty(value = "寮�濮嬫棩鏈�") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startDate; + + @ApiModelProperty(value = "缁撴潫鏃ユ湡") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDate; + + + + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwProblem.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwProblem.java index d6ab8c4..8eae329 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwProblem.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwProblem.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 com.doumee.dao.system.model.Multifile; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -21,7 +22,7 @@ @Data @ApiModel("杩愮淮闂涓婃姤淇℃伅琛�") @TableName("`yw_problem`") -public class YwProblem { +public class YwProblem extends LoginUserModel { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "涓婚敭", example = "1") @@ -93,7 +94,7 @@ @ApiModelProperty(value = "澶勭悊鏃堕棿") @ExcelColumn(name="澶勭悊鏃堕棿") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dealDate; @ApiModelProperty(value = "澶勭悊澶囨敞") @@ -111,4 +112,51 @@ @ApiModelProperty(value = "闄勪欢淇℃伅") @TableField(exist = false) private List<Multifile> fileList; + + @ApiModelProperty(value = "澶勭悊浜哄悕绉�") + @TableField(exist = false) + private String dealUserName; + + @ApiModelProperty(value = "澶勭悊浜虹粍缁囧悕绉�") + @TableField(exist = false) + private String dealUserCompanyName; + + @ApiModelProperty(value = "澶勭悊寮�濮嬫椂闂� 鏌ヨ浣跨敤") + @TableField(exist = false) + private Date dealDateStart; + + @ApiModelProperty(value = "澶勭悊缁撴潫鏃堕棿 鏌ヨ浣跨敤") + @TableField(exist = false) + private Date dealDateEnd; + + + @ApiModelProperty(value = "淇濅慨鍖哄煙绫诲瀷 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙", example = "1") + @TableField(exist = false) + private Integer workOrderAreaType; + + @ApiModelProperty(value = "鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)", example = "1") + @TableField(exist = false) + private Integer workOrderRoomId; + + @ApiModelProperty(value = "鎵�灞炴ゼ灞傜紪鐮侊紙鍏宠仈yw_floor)", example = "1") + @TableField(exist = false) + private Integer workOrderFloorId; + + @ApiModelProperty(value = "宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�", example = "1") + @TableField(exist = false) + private Integer workOrderCateId; + + @ApiModelProperty(value = "涓婇棬鏃堕棿") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date workOrderGetDate; + + @ApiModelProperty(value = "鎯呭喌璇存槑") + @TableField(exist = false) + private String workOrderContent; + + @ApiModelProperty(value = "杞伐鍗曢檮浠朵俊鎭�") + @TableField(exist = false) + private List<Multifile> workOrderFileList; + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java new file mode 100644 index 0000000..b0d7880 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java @@ -0,0 +1,71 @@ +package com.doumee.dao.business.model; + +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; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.Date; + +/** + * 宸ヤ綔鍙� - 蹇嵎妯″潡 + * @author 姹熻箘韫� + * @date 2025/01/09 17:47 + */ +@Data +@ApiModel("宸ヤ綔鍙� - 蹇嵎妯″潡") +@TableName("`yw_quick_model`") +public class YwQuickModel 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 = "鐢ㄦ埛涓婚敭", example = "1") + @ExcelColumn(name="鐢ㄦ埛涓婚敭") + private Integer userId; + + @ApiModelProperty(value = "妯″潡鍚嶇О") + @ExcelColumn(name="妯″潡鍚嶇О") + private String name; + + @ApiModelProperty(value = "妯″潡鍦板潃") + @ExcelColumn(name="妯″潡鍦板潃") + private String path; + + @ApiModelProperty(value = "鍥炬爣鍦板潃") + @ExcelColumn(name="鍥炬爣鍦板潃") + private String icoPath; + + @ApiModelProperty(value = "鎺掑簭鐮�", example = "1") + @ExcelColumn(name="鎺掑簭鐮�") + private Integer sort; + +} 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 8b9b37c..06c1422 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 @@ -73,6 +73,7 @@ @ApiModelProperty(value = "鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)", example = "1") private Integer roomId; + @ApiModelProperty(value = "鎵�灞炴ゼ灞傜紪鐮侊紙鍏宠仈yw_floor)", example = "1") private Integer floorId; @@ -123,6 +124,10 @@ @ApiModelProperty(value = "澶勭悊鏂瑰紡 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲", example = "1") private Integer dealType; + + @ApiModelProperty(value = "鏉ユ簮 0鑷缓 1闂杞伐鍗�", example = "1") + private Integer origin; + @ApiModelProperty(value = "椤圭洰鍚嶇О") @TableField(exist = false) private String projectName; @@ -138,6 +143,9 @@ @ApiModelProperty(value = "鎴挎簮鍚嶇О") @TableField(exist = false) private String roomName; + @ApiModelProperty(value = "闂涓婚敭") + @TableField(exist = false) + private String problemId; @ApiModelProperty(value = "鎶ヤ慨鍖哄煙") @ExcelColumn(name="鎶ヤ慨鍖哄煙",index = 2,width = 10) @TableField(exist = false) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java new file mode 100644 index 0000000..5d1ae87 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java @@ -0,0 +1,27 @@ +package com.doumee.dao.business.vo; + +import com.doumee.dao.system.model.Notices; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2023/5/6 10:20 + */ +@Data +public class MonthDataResponse { + + @ApiModelProperty(value = "鏃ユ湡") + private String monthDate; + + @ApiModelProperty(value = "鍛ㄥ嚑") + private String weekMsg; + + @ApiModelProperty(value = "閫氱煡鍒楄〃") + private List<Notices> noticeList; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java new file mode 100644 index 0000000..732fd26 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java @@ -0,0 +1,34 @@ +package com.doumee.dao.business.vo; + +import com.doumee.dao.business.model.YwContractBill; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwContractBillDataVO { + + @ApiModelProperty(value = "鏀舵璐﹀崟鏁�", example = "1") + private Integer inAmount; + + @ApiModelProperty(value = "鏀舵璐﹀崟閲戦", example = "1") + private BigDecimal inFee; + + @ApiModelProperty(value = "浠樻璐﹀崟鏁�", example = "1") + private Integer payAmount; + + @ApiModelProperty(value = "浠樻璐﹀崟閲戦", example = "1") + private BigDecimal payFee; + + @ApiModelProperty(value = "璐﹀崟鍒楄〃", example = "1") + private List<YwContractBill> ywContractBillList; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceCateDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceCateDataVO.java new file mode 100644 index 0000000..2c91df5 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceCateDataVO.java @@ -0,0 +1,28 @@ +package com.doumee.dao.business.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2024/12/2 10:02 + */ +@Data +public class YwDeviceCateDataVO { + + @ApiModelProperty(value = "鍒嗙被涓婚敭", example = "1") + private Integer cateId; + + @ApiModelProperty(value = "鍒嗙被鍚嶇О", example = "1") + private String cateName; + + @ApiModelProperty(value = "鐖剁骇鍒嗙被涓婚敭", example = "1") + private Integer cateParentId; + + @ApiModelProperty(value = "鏁伴噺", example = "1") + private Integer deviceAmount ; + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceParentCateDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceParentCateDataVO.java new file mode 100644 index 0000000..44c68a9 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceParentCateDataVO.java @@ -0,0 +1,29 @@ +package com.doumee.dao.business.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2024/12/2 10:02 + */ +@Data +public class YwDeviceParentCateDataVO { + + @ApiModelProperty(value = "鍒嗙被涓婚敭", example = "1") + private Integer cateId; + + @ApiModelProperty(value = "鍒嗙被鍚嶇О", example = "1") + private String cateName; + + @ApiModelProperty(value = "鏁伴噺", example = "1") + private Integer deviceAmount ; + + @ApiModelProperty(value = "瀛愬垎绫绘暟鎹�", example = "1") + private List<YwDeviceCateDataVO> ywDeviceCateDataVOList; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceStatusDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceStatusDataVO.java new file mode 100644 index 0000000..9ab7763 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwDeviceStatusDataVO.java @@ -0,0 +1,28 @@ +package com.doumee.dao.business.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwDeviceStatusDataVO { + + + @ApiModelProperty(value = "姝e父鏁伴噺", example = "1") + private Integer workAmount; + + @ApiModelProperty(value = "寮傚父鏁伴噺", example = "1") + private Integer exceptionAmount; + + @ApiModelProperty(value = "鎶ュ簾鏁伴噺", example = "1") + private Integer errAmount; + + @ApiModelProperty(value = "绱鎬绘暟", example = "1") + private Integer amount; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java new file mode 100644 index 0000000..1108049 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java @@ -0,0 +1,34 @@ +package com.doumee.dao.business.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwFloorStatusDataVO { + + @ApiModelProperty(value = "妤煎眰涓婚敭", example = "1") + private Integer floorId; + + @ApiModelProperty(value = "妤煎眰闈㈢Н", example = "1") + private BigDecimal floorArea; + + @ApiModelProperty(value = "妤煎眰鍚嶇О", example = "1") + private String floorName; + + @ApiModelProperty(value = "妤煎眰鏁�", example = "1") + private Integer floor; + + @ApiModelProperty(value = "鎴块棿鐘舵�佹暟鎹�", example = "1") + private List<YwRoomStatusDataVO> ywRoomStatusDataVOList; + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java new file mode 100644 index 0000000..46bf123 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java @@ -0,0 +1,36 @@ +package com.doumee.dao.business.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwRoomContractDataVO { + + @ApiModelProperty(value = "鍦ㄧ鍚堝悓鏁�", example = "1") + private Integer leaseContractAmount; + + @ApiModelProperty(value = "鍦ㄧ鍚堟埧婧愭暟", example = "1") + private Integer leaseRoomAmount; + + @ApiModelProperty(value = "鍙嫑鍟嗛潰绉�", example = "1") + private BigDecimal investmentArea; + + @ApiModelProperty(value = "鍙嫑鍟嗘埧婧愭暟", example = "1") + private Integer investmentRoomAmount; + + @ApiModelProperty(value = "鍦ㄧ瀹炴椂鍧囦环", example = "1") + private BigDecimal leasePrice; + + @ApiModelProperty(value = "鍦ㄧ闈㈢Н", example = "1") + private BigDecimal leaseArea; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java new file mode 100644 index 0000000..5936073 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java @@ -0,0 +1,43 @@ +package com.doumee.dao.business.vo; + +import com.doumee.core.annotation.excel.ExcelColumn; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwRoomStatusDataVO { + + @ApiModelProperty(value = "妤煎眰涓婚敭", example = "1") + private Integer floorId; + + @ApiModelProperty(value = "鎴块棿涓婚敭", example = "1") + private Integer roomId; + + @ApiModelProperty(value = "鎴块棿缂栧彿", example = "1") + private String roomCode; + + @ApiModelProperty(value = "璁$闈㈢Н锛堝钩鏂圭背锛�", example = "1") + private BigDecimal roomRentArea; + + @ApiModelProperty(value = "绉熷鍚嶇О", example = "1") + private String customerName; + + @ApiModelProperty(value = "鎴块棿鐘舵�侊細0=寰呯锛�1=宸茬锛�2=鍗冲皢鍒版湡", example = "1") + private Integer roomStatus; + + @ApiModelProperty(value = "鍒版湡鏃ユ湡", example = "1") + private Date overData; + + @ApiModelProperty(value = "绌洪棽澶╂暟", example = "1") + private Integer freeDayAmount; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwWorkorderDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwWorkorderDataVO.java new file mode 100644 index 0000000..85ecf03 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwWorkorderDataVO.java @@ -0,0 +1,30 @@ +package com.doumee.dao.business.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/1/8 15:32 + */ +@Data +public class YwWorkorderDataVO { + + + @ApiModelProperty(value = "寰呮寚娲炬暟閲�", example = "1") + private Integer waitAssignAmount; + + @ApiModelProperty(value = "寰呭鐞嗘暟閲�", example = "1") + private Integer waitDealAmount; + + @ApiModelProperty(value = "鏈湀鎬绘暟", example = "1") + private Integer monthAmount; + + @ApiModelProperty(value = "绱鎬绘暟", example = "1") + private Integer amount; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java new file mode 100644 index 0000000..a269203 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java @@ -0,0 +1,22 @@ +package com.doumee.service.business; + +import com.doumee.core.model.LoginUserInfo; +import com.doumee.dao.business.model.YwQuickModel; +import com.doumee.dao.business.vo.MonthDataResponse; + +import java.util.List; + +/** + * 瀹℃壒淇℃伅璁板綍琛⊿ervice瀹氫箟 + * @author 姹熻箘韫� + * @date 2023/12/28 14:09 + */ +public interface WorkbenchesService { + + + List<YwQuickModel> getYwQuickList(LoginUserInfo loginUserInfo); + + void updMyYwQuickModel(List<Integer> idList, LoginUserInfo loginUserInfo); + + List<MonthDataResponse> getMonthNotices(String yearMonth, LoginUserInfo loginUserInfo); +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java index 3ef54c3..b3ad156 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java @@ -4,6 +4,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.YwContractBill; +import com.doumee.dao.business.vo.YwContractBillDataVO; + import java.util.List; /** @@ -104,4 +106,7 @@ void dealDayBillCode(); List<YwContractBill> getCanBackBill(YwContractBill model); + + + YwContractBillDataVO getWaitDealList(Integer contractId); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java index 0b9b7c9..b32779c 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java @@ -4,9 +4,12 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.YwDevice; +import com.doumee.dao.business.vo.YwDeviceCateDataVO; import com.doumee.dao.business.vo.YwDeviceDataVO; +import com.doumee.dao.business.vo.YwDeviceStatusDataVO; import java.util.List; +import java.util.Set; /** * 杩愮淮璁惧淇℃伅琛⊿ervice瀹氫箟 @@ -105,5 +108,7 @@ YwDevice findByCode(String deviceCode); + Set<YwDeviceCateDataVO> getDeviceCateData(YwDevice model); + YwDeviceStatusDataVO getDeviceStatus(YwDevice model); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProblemService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProblemService.java index a0f41d4..8b209b6 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProblemService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProblemService.java @@ -3,6 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.YwProblem; +import com.doumee.service.business.impl.YwWorkorderServiceImpl; + import java.util.List; /** @@ -63,6 +65,9 @@ */ YwProblem findById(Integer id); + YwProblem getDetail(Integer id); + + /** * 鏉′欢鏌ヨ鍗曟潯璁板綍 * @@ -94,4 +99,7 @@ * @return long */ long count(YwProblem ywProblem); + + + void editProblem(YwProblem ywProblem, YwWorkorderServiceImpl ywWorkorderService); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java new file mode 100644 index 0000000..4e2fbe0 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java @@ -0,0 +1,97 @@ +package com.doumee.service.business; + +import com.doumee.core.model.PageData; +import com.doumee.core.model.PageWrap; +import com.doumee.dao.business.model.YwQuickModel; +import java.util.List; + +/** + * 宸ヤ綔鍙� - 蹇嵎妯″潡Service瀹氫箟 + * @author 姹熻箘韫� + * @date 2025/01/09 17:47 + */ +public interface YwQuickModelService { + + /** + * 鍒涘缓 + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + * @return Integer + */ + Integer create(YwQuickModel ywQuickModel); + + /** + * 涓婚敭鍒犻櫎 + * + * @param id 涓婚敭 + */ + void deleteById(Integer id); + + /** + * 鍒犻櫎 + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + */ + void delete(YwQuickModel ywQuickModel); + + /** + * 鎵归噺涓婚敭鍒犻櫎 + * + * @param ids 涓婚敭闆� + */ + void deleteByIdInBatch(List<Integer> ids); + + /** + * 涓婚敭鏇存柊 + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + */ + void updateById(YwQuickModel ywQuickModel); + + /** + * 鎵归噺涓婚敭鏇存柊 + * + * @param ywQuickModels 瀹炰綋闆� + */ + void updateByIdInBatch(List<YwQuickModel> ywQuickModels); + + /** + * 涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return YwQuickModel + */ + YwQuickModel findById(Integer id); + + /** + * 鏉′欢鏌ヨ鍗曟潯璁板綍 + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + * @return YwQuickModel + */ + YwQuickModel findOne(YwQuickModel ywQuickModel); + + /** + * 鏉′欢鏌ヨ + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + * @return List<YwQuickModel> + */ + List<YwQuickModel> findList(YwQuickModel ywQuickModel); + + /** + * 鍒嗛〉鏌ヨ + * + * @param pageWrap 鍒嗛〉瀵硅薄 + * @return PageData<YwQuickModel> + */ + PageData<YwQuickModel> findPage(PageWrap<YwQuickModel> pageWrap); + + /** + * 鏉′欢缁熻 + * + * @param ywQuickModel 瀹炰綋瀵硅薄 + * @return long + */ + long count(YwQuickModel ywQuickModel); +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java index 73454a9..1f24ecb 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java @@ -4,6 +4,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.YwRoom; +import com.doumee.dao.business.vo.YwFloorStatusDataVO; +import com.doumee.dao.business.vo.YwRoomContractDataVO; + import java.util.List; /** @@ -95,4 +98,9 @@ * @return long */ long count(YwRoom ywRoom); + + List<YwFloorStatusDataVO> getRoomStatusList(YwRoom model); + + + YwRoomContractDataVO getRoomContract(YwRoom model); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwWorkorderService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwWorkorderService.java index 6064bde..ed3bda6 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwWorkorderService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwWorkorderService.java @@ -3,7 +3,10 @@ import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.dao.business.dto.YwWorkorderDataDTO; import com.doumee.dao.business.model.YwWorkorder; +import com.doumee.dao.business.vo.YwWorkorderDataVO; + import java.util.List; /** @@ -98,4 +101,6 @@ void dispatchOrder(YwWorkorder ywWorkorder); void dealOrder(YwWorkorder ywWorkorder); + + YwWorkorderDataVO getDataVO(YwWorkorderDataDTO dto); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java new file mode 100644 index 0000000..be82191 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java @@ -0,0 +1,116 @@ +package com.doumee.service.business.impl; + +import com.alibaba.druid.sql.visitor.functions.Concat; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; +import com.doumee.core.model.LoginUserModel; +import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; +import com.doumee.dao.business.ApproveParamMapper; +import com.doumee.dao.business.PlatformLogMapper; +import com.doumee.dao.business.YwQuickModelMapper; +import com.doumee.dao.business.model.YwQuickModel; +import com.doumee.dao.business.vo.MonthDataResponse; +import com.doumee.service.business.WorkbenchesService; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; +import io.jsonwebtoken.lang.Objects; +import io.swagger.models.auth.In; +import org.apache.tomcat.util.bcel.classfile.Constant; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 瀹℃壒妯$増閰嶇疆淇℃伅琛⊿ervice瀹炵幇 + * @author 姹熻箘韫� + * @date 2023/12/28 11:46 + */ +@Service +public class WorkbenchesServiceImpl implements WorkbenchesService { + + + @Autowired + private YwQuickModelMapper ywQuickModelMapper; + + + + @Override + public List<YwQuickModel> getYwQuickList(LoginUserInfo loginUserInfo){ + List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() + .eq(YwQuickModel::getIsdeleted, Constants.ZERO) + .eq(YwQuickModel::getUserId,loginUserInfo.getId()) + .orderByAsc(YwQuickModel::getSort) + ); + if(CollectionUtils.isEmpty(ywQuickModelList)){ + ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() + .eq(YwQuickModel::getIsdeleted, Constants.ZERO) + .isNull(YwQuickModel::getUserId) + .orderByAsc(YwQuickModel::getSort) + ); + } + return ywQuickModelList; + } + + + @Override + public void updMyYwQuickModel(List<Integer> idList, LoginUserInfo loginUserInfo){ + List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() + .eq(YwQuickModel::getIsdeleted, Constants.ZERO) + .isNull(YwQuickModel::getUserId) + .orderByAsc(YwQuickModel::getSort) + ); + if(CollectionUtils.isEmpty(ywQuickModelList) || Constants.equalsInteger(idList.size(),ywQuickModelList.size())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"蹇嵎妯″潡閰嶇疆寮傚父,璇疯仈绯荤鐞嗗憳"); + } + ywQuickModelMapper.delete(new QueryWrapper<YwQuickModel>().lambda().eq(YwQuickModel::getUserId,loginUserInfo.getId())); + List<YwQuickModel> newList = new ArrayList<>(); + for (int i = 0; i < idList.size(); i++) { + Integer id = idList.get(i); + List<YwQuickModel> ywQuickModels = ywQuickModelList.stream().filter(j->Constants.equalsInteger(j.getId(),id)).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(ywQuickModels)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"蹇嵎妯″潡閰嶇疆寮傚父,璇疯仈绯荤鐞嗗憳"); + } + YwQuickModel ywQuickModel = ywQuickModels.get(Constants.ZERO); + ywQuickModel.setId(null); + ywQuickModel.setCreator(loginUserInfo.getId()); + ywQuickModel.setCreateDate(new Date()); + ywQuickModel.setSort(i+1); + ywQuickModel.setUserId(loginUserInfo.getId()); + newList.add(ywQuickModel); + } + ywQuickModelMapper.insert(newList); + } + + + @Override + public List<MonthDataResponse> getMonthNotices(String yearMonth, LoginUserInfo loginUserInfo){ + List<String> dataList = DateUtil.getDayByMonth(yearMonth); + List<MonthDataResponse> monthDataResponseList = new ArrayList<>(); + for (String str:dataList) { + MonthDataResponse monthDataResponse = new MonthDataResponse(); + monthDataResponse.setWeekMsg(DateUtil.getWeek(DateUtil.StringToDate(str,"yyyy-MM-dd")).getChineseName()); + monthDataResponse.setMonthDate(str); + + monthDataResponseList.add(monthDataResponse); + } + return monthDataResponseList; + + } + + + + + + + + + + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java index ac034cb..713148c 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java @@ -111,11 +111,12 @@ @Override public YwBuilding findById(Integer id) { - - MPJLambdaWrapper<YwBuilding> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(YwBuilding.class ) .selectAs(YwProject::getName,YwBuilding::getProjectName) + .select(" (select ifnull(sum(y.FEE_AREA),0) from yw_room y where y.ISDELETED = 0 and y.status = 0 and y.IS_INVESTMENT = 1 and y.BUILDING_ID = t.id ) ",YwBuilding::getRoomFeeArea) + .select(" (select ifnull(sum(y.RENT_AREA),0) from yw_room y where y.ISDELETED = 0 and y.status = 0 and y.IS_INVESTMENT = 1 and y.BUILDING_ID = t.id ) ",YwBuilding::getRoomRentArea) + .select("",YwBuilding::getRoomFeeArea) .leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId) .eq(YwBuilding::getId,id) .last(" limit 1 ") 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 5bc2097..a320b59 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 @@ -10,6 +10,7 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.YwContractBillDataVO; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.dao.system.model.SystemUser; @@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -282,7 +284,6 @@ YwContractBill model = pageWrap.getModel(); IPage<YwContractBill> iPage = ywContractBillMapper.selectJoinPage(page,YwContractBill.class, queryWrapper.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 ") .selectAs(YwContract::getCode,YwContractBill::getContractCode) .selectAs(YwCustomer::getName,YwContractBill::getCustomerName) @@ -486,4 +487,59 @@ return list; } + + @Override + public YwContractBillDataVO getWaitDealList(Integer contractId){ + YwContractBillDataVO ywContractBillDataVO = new YwContractBillDataVO(); + ywContractBillDataVO.setInAmount(Constants.ZERO); + ywContractBillDataVO.setInFee(BigDecimal.ZERO); + ywContractBillDataVO.setPayAmount(Constants.ZERO); + ywContractBillDataVO.setPayFee(BigDecimal.ZERO); + MPJLambdaWrapper<YwContractBill> queryWrapper = new MPJLambdaWrapper<YwContractBill>(); + 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 ") + .selectAs(YwContract::getCode,YwContractBill::getContractCode) + .selectAs(YwCustomer::getName,YwContractBill::getCustomerName) + .leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId) + .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) + .eq(YwContractBill::getIsdeleted,Constants.ZERO) + .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE,Constants.FOUR) + .eq(YwContractBill::getContractId,contractId) + .orderByDesc(YwContractBill::getId); + List<YwContractBill> list = ywContractBillMapper.selectJoinList(YwContractBill.class,queryWrapper); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){ + for (YwContractBill ywContractBill:list) { + //闇�鏀堕噾棰� + ywContractBill.setNeedReceivableFee( + ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee()) + ); + //鏀舵璐﹀崟 + if(Constants.equalsInteger(ywContractBill.getBillType(),Constants.ZERO)){ + //搴旀敹閲戦 灏忎簬 瀹炴敹閲戦 澶氭敹閲戦 搴旇鏄��娆� + if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)<Constants.ZERO){ + ywContractBillDataVO.setPayAmount(ywContractBillDataVO.getPayAmount()+1); + ywContractBillDataVO.setPayFee(ywContractBillDataVO.getPayFee().add(ywContractBill.getNeedReceivableFee().abs())); + }else if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)>Constants.ZERO){ + ywContractBillDataVO.setInAmount(ywContractBillDataVO.getInAmount()+1); + ywContractBillDataVO.setInFee(ywContractBillDataVO.getInFee().add(ywContractBill.getNeedReceivableFee().abs())); + } + }else{ + //浠樻璐﹀崟 + //搴斾粯閲戦 灏忎簬 瀹炰粯閲戦 搴旇鏄粯娆炬 + if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)<Constants.ZERO){ + ywContractBillDataVO.setPayAmount(ywContractBillDataVO.getPayAmount()+1); + ywContractBillDataVO.setPayFee(ywContractBillDataVO.getPayFee().add(ywContractBill.getNeedReceivableFee().abs())); + }else{ + ywContractBillDataVO.setInAmount(ywContractBillDataVO.getInAmount()+1); + ywContractBillDataVO.setInFee(ywContractBillDataVO.getInFee().add(ywContractBill.getNeedReceivableFee().abs())); + } + } + } + ywContractBillDataVO.setYwContractBillList(list); + } + + return ywContractBillDataVO; + } + + } 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 9e3df6e..ad8f044 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 @@ -1525,10 +1525,6 @@ queryWrapper.le(YwContract::getWyFreeEndDate, Utils.Date.getEnd(pageWrap.getModel().getWyFreeEndDate())); } - - - - if (pageWrap.getModel().getZlTotalFee() != null) { queryWrapper.eq(YwContract::getZlTotalFee, pageWrap.getModel().getZlTotalFee()); } @@ -1538,6 +1534,9 @@ if (pageWrap.getModel().getCompanyName() != null) { queryWrapper.like(Company::getName, pageWrap.getModel().getCompanyName()); } + if (pageWrap.getModel().getRoomId() != null) { + queryWrapper.apply(" t.id in ( select ycr.CONTRACT_ID from yw_contract_room ycr where ycr.type = 0 and ycr.ROOM_ID = "+pageWrap.getModel().getRoomId()+" ) "); + } queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), YwContract::getStartDate, pageWrap.getModel().getQueryStartTime()) .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()), YwContract::getEndDate, pageWrap.getModel().getQueryEndTime()); queryWrapper.orderByDesc(YwContract::getCreateDate ); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java index 36f4e94..ea6e35d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java @@ -178,6 +178,7 @@ .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getDeviceName()),i->i.like(YwDevice::getName,model.getDeviceName()).or().like(YwDevice::getCode,model.getDeviceName())) .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())) .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())) + .eq(Objects.nonNull(model.getDeviceId()),YwDeviceRecord::getDeviceId,model.getDeviceId()) .eq(YwDeviceRecord::getIsdeleted,Constants.ZERO) .orderByDesc(YwDeviceRecord::getCreateDate) ); 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 e96dd30..5aa6aef 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 @@ -15,7 +15,10 @@ import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.YwDevice; import com.doumee.dao.business.model.YwDeviceRecord; +import com.doumee.dao.business.vo.YwDeviceCateDataVO; import com.doumee.dao.business.vo.YwDeviceDataVO; +import com.doumee.dao.business.vo.YwDeviceParentCateDataVO; +import com.doumee.dao.business.vo.YwDeviceStatusDataVO; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.dao.system.model.SystemUser; @@ -33,9 +36,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -66,6 +67,10 @@ || StringUtils.isBlank(ywDevice.getName()) || StringUtils.isBlank(ywDevice.getCode()) || Objects.isNull(ywDevice.getStatus()) + || Objects.isNull(ywDevice.getProjectId()) + || Objects.isNull(ywDevice.getFloorId()) + || Objects.isNull(ywDevice.getBuildingId()) + || Objects.isNull(ywDevice.getRoomId()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -87,6 +92,28 @@ multifile.setObjId(ywDevice.getId()); multifile.setFileurl(ywDevice.getFileUrl()); multifileMapper.insert(multifile); + } + + List<Multifile> fileList = new ArrayList<>(); + if(ywDevice.getMultifileList()!=null && ywDevice.getMultifileList().size()>0){ + for (int i = 0; i < ywDevice.getMultifileList().size(); i++) { + Multifile multifile = ywDevice.getMultifileList().get(i); + if(StringUtils.isBlank(multifile.getFileurl())){ + continue; + } + multifile.setCreateDate(ywDevice.getCreateDate()); + multifile.setEditDate(ywDevice.getCreateDate()); + multifile.setCreator(ywDevice.getEditor()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setObjId(ywDevice.getId()); + multifile.setEditor(ywDevice.getCreator()); + multifile.setObjType(Constants.MultiFile.FN_DEVICE_MAINTENANCE_FILE.getKey()); + multifile.setSortnum(i+1); + fileList.add(multifile); + } + } + if(fileList.size()>0){ + multifileMapper.insert(fileList); } return ywDevice.getId(); @@ -126,6 +153,10 @@ || StringUtils.isBlank(ywDevice.getName()) || StringUtils.isBlank(ywDevice.getCode()) || Objects.isNull(ywDevice.getStatus()) + || Objects.isNull(ywDevice.getProjectId()) + || Objects.isNull(ywDevice.getFloorId()) + || Objects.isNull(ywDevice.getBuildingId()) + || Objects.isNull(ywDevice.getRoomId()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -140,7 +171,7 @@ ywDeviceMapper.updateById(ywDevice); multifileMapper.delete(new QueryWrapper<Multifile>().lambda() .eq(Multifile::getObjId,ywDevice.getId()) - .eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_FILE.getKey()) + .in(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_FILE.getKey(),Constants.MultiFile.FN_DEVICE_MAINTENANCE_FILE.getKey()) ); if(Objects.nonNull(ywDevice.getFileUrl())){ Multifile multifile = new Multifile(); @@ -151,6 +182,28 @@ multifile.setObjId(ywDevice.getId()); multifile.setFileurl(ywDevice.getFileUrl()); multifileMapper.insert(multifile); + } + + List<Multifile> fileList = new ArrayList<>(); + if(ywDevice.getMultifileList()!=null && ywDevice.getMultifileList().size()>0){ + for (int i = 0; i < ywDevice.getMultifileList().size(); i++) { + Multifile multifile = ywDevice.getMultifileList().get(i); + if(StringUtils.isBlank(multifile.getFileurl())){ + continue; + } + multifile.setCreateDate(ywDevice.getCreateDate()); + multifile.setEditDate(ywDevice.getCreateDate()); + multifile.setCreator(ywDevice.getEditor()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setObjId(ywDevice.getId()); + multifile.setEditor(ywDevice.getCreator()); + multifile.setObjType(Constants.MultiFile.FN_DEVICE_MAINTENANCE_FILE.getKey()); + multifile.setSortnum(i+1); + fileList.add(multifile); + } + } + if(fileList.size()>0){ + multifileMapper.insert(fileList); } @@ -181,6 +234,26 @@ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_DEVICE).getCode(); ywDevice.setFileFullUrl(path + multifile.getFileurl()); } + + //闄勪欢鏁版嵁 + List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() + .selectAll(Multifile.class) + .selectAs(SystemUser::getRealname,Multifile::getUserName) + .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) + .eq(Multifile::getObjId,ywDevice.getId()) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_MAINTENANCE_FILE.getKey())); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ + String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); + for (Multifile m:multifileList) { + if(StringUtils.isNotBlank(m.getFileurl())){ + m.setFileurlFull(path + m.getFileurl()); + } + } + ywDevice.setMultifileList(multifileList); + } + return ywDevice; } @@ -228,12 +301,18 @@ Utils.MP.blankToNull(pageWrap.getModel()); YwDevice model = pageWrap.getModel(); queryWrapper.selectAll(YwDevice.class) - .selectAs(Category::getName,YwDevice::getCategoryName) + .select("c.name",YwDevice::getCategoryName) + .select("c1.name",YwDevice::getCategoryParentName) .selectAs(SystemUser::getRealname,YwDevice::getRealName) - .leftJoin(Category.class,Category::getId,YwDevice::getCateId) .leftJoin(SystemUser.class,SystemUser::getId,YwDevice::getUserId) + .leftJoin("category c on t.CATE_ID = c.id") + .leftJoin("category c1 on c.PARENT_ID = c1.id") .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),i->i.like(YwDevice::getName,model.getName()).or().like(YwDevice::getCode,model.getName())) .eq(Objects.nonNull(model.getStatus()),YwDevice::getStatus,model.getStatus()) + .eq(Objects.nonNull(model.getRoomId()),YwDevice::getRoomId,model.getRoomId()) + .eq(Objects.nonNull(model.getFloorId()),YwDevice::getFloorId,model.getFloorId()) + .eq(Objects.nonNull(model.getProjectId()),YwDevice::getProjectId,model.getProjectId()) + .eq(Objects.nonNull(model.getBuildingId()),YwDevice::getBuildingId,model.getBuildingId()) .eq(YwDevice::getIsdeleted,Constants.ZERO) .orderByDesc(YwDevice::getCreateDate) ; @@ -263,6 +342,80 @@ return ywDeviceDataVO; } + @Override + public Set<YwDeviceCateDataVO> getDeviceCateData(YwDevice model){ + MPJLambdaWrapper<YwDevice> queryWrapper = new MPJLambdaWrapper<YwDevice>(); + queryWrapper.selectAll(YwDevice.class) + .select("c.name",YwDevice::getCategoryName) + .select("c1.name",YwDevice::getCategoryParentName) + .select("c1.id",YwDevice::getCateParentId) + .selectAs(SystemUser::getRealname,YwDevice::getRealName) + .leftJoin(SystemUser.class,SystemUser::getId,YwDevice::getUserId) + .leftJoin("category c on t.CATE_ID = c.id") + .leftJoin("category c1 on c.PARENT_ID = c1.id") + .eq(Objects.nonNull(model.getRoomId()),YwDevice::getRoomId,model.getRoomId()) + .eq(Objects.nonNull(model.getFloorId()),YwDevice::getFloorId,model.getFloorId()) + .eq(Objects.nonNull(model.getProjectId()),YwDevice::getProjectId,model.getProjectId()) + .eq(Objects.nonNull(model.getBuildingId()),YwDevice::getBuildingId,model.getBuildingId()) + .eq(YwDevice::getIsdeleted,Constants.ZERO) + .isNotNull(YwDevice::getCateId) + .orderByDesc(YwDevice::getCreateDate) + ; + List<YwDevice> ywDeviceList = ywDeviceMapper.selectJoinList(YwDevice.class,queryWrapper); + Set<YwDeviceCateDataVO> ywDeviceCateDataVOSet = new HashSet<>(); + Set<YwDeviceParentCateDataVO> ywDeviceParentCateDataVOSet = new HashSet<>(); + for (YwDevice y: ywDeviceList) { + YwDeviceCateDataVO ywDeviceCateDataVO = new YwDeviceCateDataVO(); + ywDeviceCateDataVO.setCateId(y.getCateId()); + ywDeviceCateDataVO.setCateName(y.getCategoryName()); + ywDeviceCateDataVO.setCateParentId(y.getCateParentId()); + ywDeviceCateDataVOSet.add(ywDeviceCateDataVO); + YwDeviceParentCateDataVO ywDeviceParentCateDataVO = new YwDeviceParentCateDataVO(); + ywDeviceParentCateDataVO.setCateId(y.getCateParentId()); + ywDeviceParentCateDataVO.setCateName(y.getCategoryParentName()); + ywDeviceParentCateDataVOSet.add(ywDeviceParentCateDataVO); + } + + for (YwDeviceCateDataVO ywDeviceCateDataVO:ywDeviceCateDataVOSet) { + ywDeviceCateDataVO.setDeviceAmount( + ywDeviceList.stream().filter(i->Objects.nonNull(i.getCateId()) && Constants.equalsInteger(i.getCateId(),ywDeviceCateDataVO.getCateId())).collect(Collectors.toList()).size() + ); + } + + for (YwDeviceParentCateDataVO ywDeviceParentCateDataVO:ywDeviceParentCateDataVOSet) { + ywDeviceParentCateDataVO.setDeviceAmount( + ywDeviceList.stream().filter(i->Objects.nonNull(i.getCateParentId()) && Constants.equalsInteger(i.getCateParentId(),ywDeviceParentCateDataVO.getCateId())).collect(Collectors.toList()).size() + ); + ywDeviceParentCateDataVO.setYwDeviceCateDataVOList( + ywDeviceCateDataVOSet.stream().filter(i->Constants.equalsInteger(i.getCateParentId(),ywDeviceParentCateDataVO.getCateId())).collect(Collectors.toList()) + ); + } + return ywDeviceCateDataVOSet; + } + + + @Override + public YwDeviceStatusDataVO getDeviceStatus(YwDevice model){ + YwDeviceStatusDataVO ywDeviceStatusDataVO = new YwDeviceStatusDataVO(); + MPJLambdaWrapper<YwDevice> queryWrapper = new MPJLambdaWrapper<YwDevice>(); + queryWrapper.selectAll(YwDevice.class) + .eq(Objects.nonNull(model.getRoomId()),YwDevice::getRoomId,model.getRoomId()) + .eq(Objects.nonNull(model.getFloorId()),YwDevice::getFloorId,model.getFloorId()) + .eq(Objects.nonNull(model.getProjectId()),YwDevice::getProjectId,model.getProjectId()) + .eq(Objects.nonNull(model.getBuildingId()),YwDevice::getBuildingId,model.getBuildingId()) + .eq(YwDevice::getIsdeleted,Constants.ZERO) + ; + List<YwDevice> ywDeviceList = ywDeviceMapper.selectJoinList(YwDevice.class,queryWrapper); + 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()); + 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 90dde7f..22b0839 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 @@ -221,6 +221,8 @@ .like(StringUtils.isNotBlank(model.getAttr()),YwMaterial::getAttr,model.getAttr()) .eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId()) .eq(Objects.nonNull(model.getRoomId()),YwMaterial::getRoomId,model.getRoomId()) + .eq(Objects.nonNull(model.getFloorId()),YwRoom::getFloor,model.getFloorId()) + .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId()) .eq(YwMaterial::getIsdeleted,Constants.ZERO) .orderByAsc(YwMaterial::getCode) ; 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 375b2f6..96a4593 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 @@ -15,6 +15,7 @@ import com.doumee.dao.business.YwPatrolTaskMapper; import com.doumee.dao.business.YwPatrolTaskRecordMapper; import com.doumee.dao.business.model.*; +import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwPatrolSchemeService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -48,6 +49,8 @@ private YwLinePointMapper ywLinePointMapper; @Autowired private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper; + @Autowired + private SystemUserMapper systemUserMapper; @Autowired private RedisTemplate<String, Object> redisTemplate; @@ -315,8 +318,8 @@ 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) +// .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()) @@ -333,10 +336,24 @@ IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper); for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) { this.getSchemeStatus(ywPatrolScheme); + //宸℃浜哄憳 + this.getUserNames(ywPatrolScheme); } return PageData.from(iPage); } + + public void getUserNames(YwPatrolScheme ywPatrolScheme){ + if(Objects.nonNull(ywPatrolScheme)&&StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){ + List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda() + .apply(" find_in_set(id,'"+ywPatrolScheme.getUserIds()+"') ") + ); + String userName = String.join(",",systemUserList.stream().map(i->i.getRealname()).collect(Collectors.toList())); + ywPatrolScheme.setUserName(userName); + } + } + + //鑾峰彇鐘舵�� public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){ List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectList(new QueryWrapper<YwPatrolTask>().lambda() 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 d025f21..4253d90 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 @@ -127,13 +127,22 @@ .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) + + .selectAs(YwPatrolScheme::getTitle,YwPatrolTaskRecord::getSchemeTitle) + .selectAs(YwPatrolTask::getTitle,YwPatrolTaskRecord::getTaskCode) + .selectAs(YwPatrolTask::getStartDate,YwPatrolTaskRecord::getStartDate) + .selectAs(YwPatrolTask::getEndDate,YwPatrolTaskRecord::getEndDate) + .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) + .leftJoin(YwPatrolTask.class,YwPatrolTask::getId,YwPatrolTaskRecord::getTaskId) + .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) .eq(Objects.nonNull(model) && Objects.nonNull(model.getTaskId()),YwPatrolTaskRecord::getTaskId, model.getTaskId()) .eq(Objects.nonNull(model) && Objects.nonNull(model.getDealUserId()),YwPatrolTaskRecord::getDealUserId, model.getDealUserId()) .like(StringUtils.isNotBlank(model.getPointName()),YwPatrolPoint::getName,model.getPointName()) .eq(Objects.nonNull(model) && Objects.nonNull(model.getStatus()) , YwPatrolTaskRecord::getStatus,model.getStatus()) + .eq(Objects.nonNull(model) && Objects.nonNull(model.getDeviceId()) , YwPatrolPoint::getDeviceId,model.getDeviceId()) .orderByDesc(YwPatrolScheme::getCreateDate) ; IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper); 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 5ee8050..67906be 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 @@ -1,29 +1,33 @@ package com.doumee.service.business.impl; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwProblemMapper; -import com.doumee.dao.business.model.YwProblem; +import com.doumee.dao.business.YwRoomMapper; +import com.doumee.dao.business.model.*; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.model.Multifile; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwProblemService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * 杩愮淮闂涓婃姤淇℃伅琛⊿ervice瀹炵幇 @@ -37,9 +41,16 @@ private YwProblemMapper ywProblemMapper; @Autowired + private YwRoomMapper ywRoomMapper; + + @Autowired private MultifileMapper multifileMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public Integer create(YwProblem ywProblem) { if(Objects.isNull(ywProblem) || Objects.isNull(ywProblem.getSubmitDate()) @@ -116,6 +127,110 @@ return ywProblemMapper.selectById(id); } + + + @Override + public YwProblem getDetail(Integer id) { + MPJLambdaWrapper<YwProblem> queryWrapper = new MPJLambdaWrapper<YwProblem>(); + queryWrapper.selectAll(YwProblem.class) + .selectAs(SystemUser::getRealname,YwProblem::getDealUserName) + .selectAs(Company::getName,YwProblem::getDealUserCompanyName) + .leftJoin(SystemUser.class,SystemUser::getId,YwProblem::getDealUserId) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(YwProblem::getId,id) + ; + YwProblem ywProblem = ywProblemMapper.selectJoinOne(YwProblem.class,queryWrapper); + if(Objects.isNull(ywProblem)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + 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_PROBLEM).getCode(); + for(Multifile f : multifiles){ + if(StringUtils.isBlank(f.getFileurl())){ + continue; + } + f.setFileurlFull(path+f.getFileurl()); + } + ywProblem.setFileList(multifiles); + } + return ywProblem; + } + + + + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public void editProblem(YwProblem ywProblem,YwWorkorderServiceImpl ywWorkorderService){ + if(Objects.isNull(ywProblem) + || Objects.isNull(ywProblem.getId()) + || Objects.isNull(ywProblem.getDealStatus()) + || !(Constants.equalsInteger(ywProblem.getDealStatus(),Constants.ONE)||Constants.equalsInteger(ywProblem.getDealStatus(),Constants.TWO)) + || (Constants.equalsInteger(ywProblem.getDealStatus(),Constants.TWO)&&StringUtils.isBlank(ywProblem.getDealInfo())) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo loginUserInfo = ywProblem.getLoginUserInfo(); + //鍏抽棴闂 + if(Constants.equalsInteger(ywProblem.getDealStatus(),Constants.TWO)){ + ywProblemMapper.update(new UpdateWrapper<YwProblem>().lambda() + .set(YwProblem::getDealDate, DateUtil.getCurrDateTime()) + .set(YwProblem::getDealInfo,ywProblem.getDealInfo()) + .set(YwProblem::getDealType,Constants.ONE) + .set(YwProblem::getDealStatus,ywProblem.getDealStatus()) + .set(YwProblem::getDealUserId,loginUserInfo.getId()) + .set(YwProblem::getEditor,loginUserInfo.getId()) + .set(YwProblem::getEditDate, DateUtil.getCurrDateTime()) + .eq(YwProblem::getId,ywProblem.getId()) + ); + }else{ + if(Objects.isNull(ywProblem.getWorkOrderAreaType()) + ||Objects.isNull(ywProblem.getWorkOrderCateId()) + ||StringUtils.isBlank(ywProblem.getWorkOrderContent()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + YwWorkorder ywWorkorder = new YwWorkorder(); + ywWorkorder.setAreaType(ywProblem.getWorkOrderAreaType()); + ywWorkorder.setCateId(ywProblem.getWorkOrderCateId()); + ywWorkorder.setContent(ywProblem.getWorkOrderContent()); + ywWorkorder.setRoomId(ywProblem.getWorkOrderRoomId()); + ywWorkorder.setFloorId(ywProblem.getWorkOrderFloorId()); + ywWorkorder.setGetDate(ywProblem.getWorkOrderGetDate()); + ywWorkorder.setOrigin(Constants.ONE); + ywWorkorder.setLoginUserInfo(loginUserInfo); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywProblem.getWorkOrderFileList())){ + ywWorkorder.setFileList(ywProblem.getWorkOrderFileList()); + } + Integer workOrderId = ywWorkorderService.create(ywWorkorder); + ywProblemMapper.update(new UpdateWrapper<YwProblem>().lambda() + .set(YwProblem::getDealDate, DateUtil.getCurrDateTime()) + .set(YwProblem::getDealInfo,ywProblem.getDealInfo()) + .set(YwProblem::getDealType,Constants.ZERO) + .set(YwProblem::getDealStatus,ywProblem.getDealStatus()) + .set(YwProblem::getDealUserId,loginUserInfo.getId()) + .set(YwProblem::getEditor,loginUserInfo.getId()) + .set(YwProblem::getEditDate, DateUtil.getCurrDateTime()) + .set(YwProblem::getWorkorderId,workOrderId) + .eq(YwProblem::getId,ywProblem.getId()) + ); + + } + + } + + + + + + + + + @Override public YwProblem findOne(YwProblem ywProblem) { QueryWrapper<YwProblem> wrapper = new QueryWrapper<>(ywProblem); @@ -131,77 +246,19 @@ @Override public PageData<YwProblem> findPage(PageWrap<YwProblem> pageWrap) { IPage<YwProblem> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<YwProblem> queryWrapper = new QueryWrapper<>(); + MPJLambdaWrapper<YwProblem> queryWrapper = new MPJLambdaWrapper<YwProblem>(); Utils.MP.blankToNull(pageWrap.getModel()); - if (pageWrap.getModel().getId() != null) { - queryWrapper.lambda().eq(YwProblem::getId, pageWrap.getModel().getId()); - } - if (pageWrap.getModel().getCreator() != null) { - queryWrapper.lambda().eq(YwProblem::getCreator, pageWrap.getModel().getCreator()); - } - if (pageWrap.getModel().getCreateDate() != null) { - queryWrapper.lambda().ge(YwProblem::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); - queryWrapper.lambda().le(YwProblem::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); - } - if (pageWrap.getModel().getEditor() != null) { - queryWrapper.lambda().eq(YwProblem::getEditor, pageWrap.getModel().getEditor()); - } - if (pageWrap.getModel().getEditDate() != null) { - queryWrapper.lambda().ge(YwProblem::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); - queryWrapper.lambda().le(YwProblem::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); - } - if (pageWrap.getModel().getIsdeleted() != null) { - queryWrapper.lambda().eq(YwProblem::getIsdeleted, pageWrap.getModel().getIsdeleted()); - } - if (pageWrap.getModel().getPosition() != null) { - queryWrapper.lambda().eq(YwProblem::getPosition, pageWrap.getModel().getPosition()); - } - if (pageWrap.getModel().getRemark() != null) { - queryWrapper.lambda().eq(YwProblem::getRemark, pageWrap.getModel().getRemark()); - } - if (pageWrap.getModel().getStatus() != null) { - queryWrapper.lambda().eq(YwProblem::getStatus, pageWrap.getModel().getStatus()); - } - if (pageWrap.getModel().getContent() != null) { - queryWrapper.lambda().eq(YwProblem::getContent, pageWrap.getModel().getContent()); - } - if (pageWrap.getModel().getPhone() != null) { - queryWrapper.lambda().eq(YwProblem::getPhone, pageWrap.getModel().getPhone()); - } - if (pageWrap.getModel().getSubmitDate() != null) { - queryWrapper.lambda().ge(YwProblem::getSubmitDate, Utils.Date.getStart(pageWrap.getModel().getSubmitDate())); - queryWrapper.lambda().le(YwProblem::getSubmitDate, Utils.Date.getEnd(pageWrap.getModel().getSubmitDate())); - } - if (pageWrap.getModel().getCode() != null) { - queryWrapper.lambda().eq(YwProblem::getCode, pageWrap.getModel().getCode()); - } - if (pageWrap.getModel().getDealStatus() != null) { - queryWrapper.lambda().eq(YwProblem::getDealStatus, pageWrap.getModel().getDealStatus()); - } - if (pageWrap.getModel().getDealUserId() != null) { - queryWrapper.lambda().eq(YwProblem::getDealUserId, pageWrap.getModel().getDealUserId()); - } - if (pageWrap.getModel().getDealDate() != null) { - queryWrapper.lambda().ge(YwProblem::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate())); - queryWrapper.lambda().le(YwProblem::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate())); - } - if (pageWrap.getModel().getDealInfo() != null) { - queryWrapper.lambda().eq(YwProblem::getDealInfo, pageWrap.getModel().getDealInfo()); - } - if (pageWrap.getModel().getDealType() != null) { - queryWrapper.lambda().eq(YwProblem::getDealType, pageWrap.getModel().getDealType()); - } - if (pageWrap.getModel().getWorkorderId() != null) { - queryWrapper.lambda().eq(YwProblem::getWorkorderId, pageWrap.getModel().getWorkorderId()); - } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } - } - return PageData.from(ywProblemMapper.selectPage(page, queryWrapper)); + YwProblem model = pageWrap.getModel(); + queryWrapper.selectAll(YwProblem.class) + .selectAs(SystemUser::getRealname,YwProblem::getDealUserName) + .leftJoin(SystemUser.class,SystemUser::getId,YwProblem::getDealUserId) + .like(StringUtils.isNotBlank(model.getContent()),YwProblem::getContent,model.getContent()) + .ge(Objects.nonNull(model.getDealDateStart()),YwProblem::getDealDate, Utils.Date.getStart(model.getDealDateStart())) + .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); + return PageData.from(iPage); } @Override 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 2e0587a..81b1493 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 @@ -140,7 +140,21 @@ @Override public YwProject findById(Integer id) { - return ywProjectMapper.selectById(id); + YwProject ywProject = ywProjectMapper.selectById(id); + if(Objects.isNull(ywProject)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(Objects.nonNull(ywProject.getAreaId())){ + Areas a = areasService.findById(ywProject.getAreaId(),Constants.TWO); + if(a != null){ + ywProject.setAreaName(a.getName()); + ywProject.setCityId(a.getCityId()); + ywProject.setCityName(a.getCityName()); + ywProject.setProvinceId(a.getProvinceId()); + ywProject.setProvinceName(a.getProvinceName()); + } + } + return ywProject; } @Override @@ -308,7 +322,6 @@ ProjectTree treeBuild = new ProjectTree(projectDataVOList); projectDataVOList = treeBuild.buildTree(); return projectDataVOList; - } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java new file mode 100644 index 0000000..840fe32 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java @@ -0,0 +1,142 @@ +package com.doumee.service.business.impl; + +import com.doumee.core.model.PageData; +import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Utils; +import com.doumee.dao.business.YwQuickModelMapper; +import com.doumee.dao.business.model.YwQuickModel; +import com.doumee.service.business.YwQuickModelService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * 宸ヤ綔鍙� - 蹇嵎妯″潡Service瀹炵幇 + * @author 姹熻箘韫� + * @date 2025/01/09 17:47 + */ +@Service +public class YwQuickModelServiceImpl implements YwQuickModelService { + + @Autowired + private YwQuickModelMapper ywQuickModelMapper; + + @Override + public Integer create(YwQuickModel ywQuickModel) { + ywQuickModelMapper.insert(ywQuickModel); + return ywQuickModel.getId(); + } + + @Override + public void deleteById(Integer id) { + ywQuickModelMapper.deleteById(id); + } + + @Override + public void delete(YwQuickModel ywQuickModel) { + UpdateWrapper<YwQuickModel> deleteWrapper = new UpdateWrapper<>(ywQuickModel); + ywQuickModelMapper.delete(deleteWrapper); + } + + @Override + public void deleteByIdInBatch(List<Integer> ids) { + if (CollectionUtils.isEmpty(ids)) { + return; + } + ywQuickModelMapper.deleteBatchIds(ids); + } + + @Override + public void updateById(YwQuickModel ywQuickModel) { + ywQuickModelMapper.updateById(ywQuickModel); + } + + @Override + public void updateByIdInBatch(List<YwQuickModel> ywQuickModels) { + if (CollectionUtils.isEmpty(ywQuickModels)) { + return; + } + for (YwQuickModel ywQuickModel: ywQuickModels) { + this.updateById(ywQuickModel); + } + } + + @Override + public YwQuickModel findById(Integer id) { + return ywQuickModelMapper.selectById(id); + } + + @Override + public YwQuickModel findOne(YwQuickModel ywQuickModel) { + QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel); + return ywQuickModelMapper.selectOne(wrapper); + } + + @Override + public List<YwQuickModel> findList(YwQuickModel ywQuickModel) { + QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel); + return ywQuickModelMapper.selectList(wrapper); + } + + @Override + public PageData<YwQuickModel> findPage(PageWrap<YwQuickModel> pageWrap) { + IPage<YwQuickModel> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + QueryWrapper<YwQuickModel> queryWrapper = new QueryWrapper<>(); + Utils.MP.blankToNull(pageWrap.getModel()); + if (pageWrap.getModel().getId() != null) { + queryWrapper.lambda().eq(YwQuickModel::getId, pageWrap.getModel().getId()); + } + if (pageWrap.getModel().getCreator() != null) { + queryWrapper.lambda().eq(YwQuickModel::getCreator, pageWrap.getModel().getCreator()); + } + if (pageWrap.getModel().getCreateDate() != null) { + queryWrapper.lambda().ge(YwQuickModel::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); + queryWrapper.lambda().le(YwQuickModel::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); + } + if (pageWrap.getModel().getEditor() != null) { + queryWrapper.lambda().eq(YwQuickModel::getEditor, pageWrap.getModel().getEditor()); + } + if (pageWrap.getModel().getEditDate() != null) { + queryWrapper.lambda().ge(YwQuickModel::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); + queryWrapper.lambda().le(YwQuickModel::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); + } + if (pageWrap.getModel().getIsdeleted() != null) { + queryWrapper.lambda().eq(YwQuickModel::getIsdeleted, pageWrap.getModel().getIsdeleted()); + } + if (pageWrap.getModel().getUserId() != null) { + queryWrapper.lambda().eq(YwQuickModel::getUserId, pageWrap.getModel().getUserId()); + } + if (pageWrap.getModel().getName() != null) { + queryWrapper.lambda().eq(YwQuickModel::getName, pageWrap.getModel().getName()); + } + if (pageWrap.getModel().getPath() != null) { + queryWrapper.lambda().eq(YwQuickModel::getPath, pageWrap.getModel().getPath()); + } + if (pageWrap.getModel().getIcoPath() != null) { + queryWrapper.lambda().eq(YwQuickModel::getIcoPath, pageWrap.getModel().getIcoPath()); + } + if (pageWrap.getModel().getSort() != null) { + queryWrapper.lambda().eq(YwQuickModel::getSort, pageWrap.getModel().getSort()); + } + for(PageWrap.SortData sortData: pageWrap.getSorts()) { + if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { + queryWrapper.orderByDesc(sortData.getProperty()); + } else { + queryWrapper.orderByAsc(sortData.getProperty()); + } + } + return PageData.from(ywQuickModelMapper.selectPage(page, queryWrapper)); + } + + @Override + public long count(YwQuickModel ywQuickModel) { + QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel); + return ywQuickModelMapper.selectCount(wrapper); + } +} 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 87d1ec9..af4bcbc 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 @@ -6,12 +6,13 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; -import com.doumee.dao.business.YwBuildingMapper; -import com.doumee.dao.business.YwContractRoomMapper; -import com.doumee.dao.business.YwRoomMapper; -import com.doumee.dao.business.YwWorkorderMapper; +import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.YwFloorStatusDataVO; +import com.doumee.dao.business.vo.YwRoomContractDataVO; +import com.doumee.dao.business.vo.YwRoomStatusDataVO; import com.doumee.service.business.YwRoomService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -23,8 +24,12 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 杩愮淮鎴挎簮淇℃伅琛⊿ervice瀹炵幇 @@ -41,7 +46,13 @@ @Autowired private YwContractRoomMapper ywContractRoomMapper; @Autowired + private YwContractMapper ywContractMapper; + + @Autowired private YwWorkorderMapper ywWorkorderMapper; + @Autowired + private YwFloorMapper ywFloorMapper; + @Override public Integer create(YwRoom model) { @@ -126,7 +137,19 @@ @Override public YwRoom findById(Integer id) { - return ywRoomMapper.selectById(id); + MPJLambdaWrapper<YwRoom> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(YwRoom.class ) + .selectAs(YwProject::getName,YwRoom::getProjectName) + .selectAs(YwFloor::getName,YwRoom::getFloorName) + .selectAs(YwBuilding::getName,YwRoom::getBuildingName) + .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId) + .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId) + .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor) + .eq(YwRoom::getId,id) + .last(" limit 1 ") + ; + YwRoom ywRoom = ywRoomMapper.selectJoinOne(YwRoom.class,queryWrapper); + return ywRoom; } @Override @@ -235,4 +258,172 @@ QueryWrapper<YwRoom> wrapper = new QueryWrapper<>(ywRoom); return ywRoomMapper.selectCount(wrapper); } + + + + @Override + public List<YwFloorStatusDataVO> getRoomStatusList(YwRoom model){ + if(Objects.isNull(model) + || (Objects.isNull(model.getBuildingId()) && Objects.isNull(model.getFloor()))){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + List<YwFloorStatusDataVO> ywFloorStatusDataVOList = new ArrayList<>(); + List<YwFloor> ywFloorList = ywFloorMapper.selectList(new QueryWrapper<YwFloor>().lambda() + .eq(YwFloor::getIsdeleted,Constants.ZERO) + .eq(Objects.nonNull(model.getBuildingId()),YwFloor::getBuildingId,model.getBuildingId()) + .eq(Objects.nonNull(model.getFloor()),YwFloor::getId,model.getFloor()) + .orderByAsc(YwFloor::getFloor) + ); + List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda() + .eq(YwRoom::getIsdeleted,Constants.ZERO) + .eq(YwRoom::getIsInvestment,Constants.ONE) + .eq(YwRoom::getStatus,Constants.ZERO) + .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId()) + .eq(Objects.nonNull(model.getFloor()),YwRoom::getFloor,model.getFloor()) + .orderByAsc(YwRoom::getSortnum) + ); + List<YwRoomStatusDataVO> roomStatusDataList = new ArrayList<>(); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywRoomList)){ + for (YwRoom ywRoom:ywRoomList) { + YwRoomStatusDataVO roomStatusDataVO = new YwRoomStatusDataVO(); + roomStatusDataVO.setFloorId(ywRoom.getFloor()); + roomStatusDataVO.setRoomId(ywRoom.getId()); + roomStatusDataVO.setRoomCode(ywRoom.getCode()); + roomStatusDataVO.setRoomRentArea(ywRoom.getRentArea()); + + List<YwContract> roomContractList = 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) + .ge(YwContract::getStartDate, DateUtil.getCurrDateTime()) + .eq(YwContractRoom::getType,Constants.ZERO) + .eq(YwContractRoom::getRoomId,ywRoom.getId()) + .ne(YwContract::getBillStatus,Constants.THREE) + .orderByDesc(YwContract::getStartDate) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){ + roomStatusDataVO.setRoomStatus(Constants.ZERO); + roomStatusDataVO.setFreeDayAmount(Constants.ZERO); + }else{ + YwContract ywContract = roomContractList.get(Constants.ZERO); + //鍚堝悓鐘舵�� 0寰呮墽琛� 1鎵ц涓� 2宸插埌鏈� 3閫�绉熶腑 4宸查��绉� + //寰呮墽琛�/鎵ц涓�/閫�绉熶腑 鍧囧睘浜庡凡鍑虹 鏍规嵁鍏蜂綋鍒版湡鏃堕棿鍒ゆ柇鏄惁澶勪簬鍗冲皢鍒版湡 90澶� + if(Constants.equalsInteger(ywContract.getStatus(),Constants.ZERO)||Constants.equalsInteger(ywContract.getStatus(),Constants.ONE)|| + Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){ + roomStatusDataVO.setRoomStatus(Constants.ONE); + roomStatusDataVO.setCustomerName(ywContract.getRenterName()); + if(Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){ + if(Objects.nonNull(ywContract.getBtDate()) && DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getBtDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))<=90){ + roomStatusDataVO.setRoomStatus(Constants.TWO); + roomStatusDataVO.setOverData(ywContract.getBtDate()); + } + }else{ + if(Objects.nonNull(ywContract.getEndDate()) && DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))<=90){ + roomStatusDataVO.setRoomStatus(Constants.TWO); + roomStatusDataVO.setOverData(ywContract.getEndDate()); + } + } + } + } + roomStatusDataList.add(roomStatusDataVO); + } + } + for (YwFloor ywFloor:ywFloorList) { + YwFloorStatusDataVO ywFloorStatusDataVO = new YwFloorStatusDataVO(); + ywFloorStatusDataVO.setFloor(ywFloor.getFloor()); + ywFloorStatusDataVO.setFloorId(ywFloor.getId()); + ywFloorStatusDataVO.setFloorArea(ywFloor.getArea()); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(roomStatusDataList)){ + List<YwRoomStatusDataVO> floorRoomList = roomStatusDataList.stream().filter(i->Objects.nonNull(i.getFloorId())&&Constants.equalsInteger(i.getFloorId(),ywFloor.getId())).collect(Collectors.toList()); + ywFloorStatusDataVO.setYwRoomStatusDataVOList(floorRoomList); + } + ywFloorStatusDataVOList.add(ywFloorStatusDataVO); + } + return ywFloorStatusDataVOList; + } + + + @Override + public YwRoomContractDataVO getRoomContract(YwRoom model){ + if(Objects.isNull(model) + || (Objects.isNull(model.getBuildingId()) && Objects.isNull(model.getProjectId()))){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + YwRoomContractDataVO ywRoomContractDataVO = new YwRoomContractDataVO(); + ywRoomContractDataVO.setInvestmentRoomAmount(Constants.ZERO); + ywRoomContractDataVO.setInvestmentArea(BigDecimal.ZERO); + ywRoomContractDataVO.setLeaseContractAmount(Constants.ZERO); + ywRoomContractDataVO.setLeasePrice(BigDecimal.ZERO); + ywRoomContractDataVO.setLeaseArea(BigDecimal.ZERO); + ywRoomContractDataVO.setLeaseRoomAmount(Constants.ZERO); + + List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda() + .eq(YwRoom::getIsdeleted,Constants.ZERO) + .eq(YwRoom::getStatus,Constants.ZERO) + .eq(YwRoom::getIsInvestment,Constants.ONE) + .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId()) + .eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId()) + .orderByAsc(YwRoom::getSortnum) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywRoomList)){ + return ywRoomContractDataVO; + } + ywRoomContractDataVO.setInvestmentRoomAmount(ywRoomList.size()); + ywRoomContractDataVO.setInvestmentArea(ywRoomList.stream().filter(i->Objects.nonNull(i.getRentArea())).map(i->i.getRentArea()).reduce(BigDecimal.ZERO,BigDecimal::add)); + + List<YwContract> roomContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>() + .selectAll(YwContract.class) + .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 ) " , YwContract::getTotalFee) + .eq(YwContract::getIsdeleted,Constants.ZERO) + .in(YwContract::getStatus,Constants.ONE,Constants.TWO,Constants.THREE) + .ne(YwContract::getBillStatus,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()), + " 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.PROJECT_ID = "+model.getProjectId()+" ) ") + .apply(Objects.nonNull(model.getProjectId())," ") + .orderByDesc(YwContract::getStartDate) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){ + return ywRoomContractDataVO; + } + //澶勭悊绉熻祦鍗曚环 鏍规嵁 鍚堝悓绉熻祦鎬婚 / 锛堢璧佹椂闀� * 绉熻祦闈㈢Н锛� + for (YwContract ywContract:roomContractList) { + long contractDayAmount = DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(ywContract.getStartDate(),"yyyy-MM-dd")); + if(Objects.nonNull(contractDayAmount) && Objects.nonNull(ywContract.getTotalArea()) && Objects.nonNull(ywContract.getTotalFee())){ + ywRoomContractDataVO.setLeasePrice( + ywRoomContractDataVO.getLeasePrice().add( + ywContract.getTotalFee().divide((ywContract.getTotalArea().multiply(new BigDecimal(Long.toString(contractDayAmount)))),2,BigDecimal.ROUND_HALF_UP) + ) + ); + } + } + + ywRoomContractDataVO.setLeaseContractAmount(roomContractList.size()); + List<Integer> contractId = roomContractList.stream().map(i->i.getId()).collect(Collectors.toList()); + List<YwRoom> ywLeaseRoomList = ywRoomMapper.selectJoinList(YwRoom.class,new MPJLambdaWrapper<YwRoom>() + .selectAll(YwRoom.class) + .leftJoin(YwContractRoom.class,YwContractRoom::getRoomId,YwRoom::getId) + .eq(YwRoom::getIsdeleted,Constants.ZERO) + .eq(YwRoom::getIsInvestment,Constants.ONE) + .eq(YwRoom::getStatus,Constants.ZERO) + .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) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywLeaseRoomList)){ + ywRoomContractDataVO.setLeaseArea( + ywLeaseRoomList.stream().filter(i->Objects.nonNull(i.getRentArea())).map(i->i.getRentArea()).reduce(BigDecimal.ZERO,BigDecimal::add) + ); + ywRoomContractDataVO.setLeaseRoomAmount(ywLeaseRoomList.size()); + } + return ywRoomContractDataVO; + } + + + } 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 42f163b..4346ef6 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 @@ -8,9 +8,12 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; +import com.doumee.dao.business.dto.YwWorkorderDataDTO; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.YwWorkorderDataVO; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.Multifile; @@ -29,6 +32,7 @@ import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.stream.Collectors; /** * 杩愮淮宸ュ崟淇℃伅琛⊿ervice瀹炵幇 @@ -383,6 +387,7 @@ .selectAs(YwFloor::getName,YwWorkorder::getFloorName) .selectAs(YwBuilding::getName,YwWorkorder::getBuildingName) .selectAs(YwProject::getName,YwWorkorder::getProjectName) + .selectAs(YwProblem::getId,YwWorkorder::getProblemId) .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDealUserId) .leftJoin(Category.class,Category::getId,YwWorkorder::getCateId) .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator) @@ -390,6 +395,7 @@ .leftJoin(YwFloor.class,YwFloor::getId,YwWorkorder::getFloorId) .leftJoin(YwBuilding.class,YwBuilding::getId,YwWorkorder::getBuildingId) .leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId) + .leftJoin(YwProblem.class,YwProblem::getWorkorderId,YwWorkorder::getId) .apply(StringUtils.isNotBlank(pageWrap.getModel().getQueryStatus())," find_in_set(t.DEAL_STATUS ,'"+pageWrap.getModel().getQueryStatus()+"') "); pageWrap.getModel().setIsdeleted(Constants.ZERO); Utils.MP.blankToNull(pageWrap.getModel()); @@ -406,6 +412,9 @@ } if (pageWrap.getModel().getCreator() != null) { queryWrapper.eq(YwWorkorder::getCreator, pageWrap.getModel().getCreator()); + } + if (pageWrap.getModel().getOrigin() != null) { + queryWrapper.eq(YwWorkorder::getOrigin, pageWrap.getModel().getOrigin()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.ge(YwWorkorder::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); @@ -528,4 +537,27 @@ QueryWrapper<YwWorkorder> wrapper = new QueryWrapper<>(ywWorkorder); return ywWorkorderMapper.selectCount(wrapper); } + + + + @Override + public YwWorkorderDataVO getDataVO(YwWorkorderDataDTO dto){ + YwWorkorderDataVO ywWorkorderDataVO = new YwWorkorderDataVO(); + + List<YwWorkorder> list = ywWorkorderMapper.selectList(new QueryWrapper<YwWorkorder>().lambda() + .eq(YwWorkorder::getIsdeleted,Constants.ZERO) + .eq(Constants.equalsInteger(dto.getQueryType(),Constants.ONE),YwWorkorder::getProjectId,dto.getQueryId()) + .eq(Constants.equalsInteger(dto.getQueryType(),Constants.TWO),YwWorkorder::getFloorId,dto.getQueryId()) + .eq(Constants.equalsInteger(dto.getQueryType(),Constants.THREE),YwWorkorder::getRoomId,dto.getQueryId())); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){ + ywWorkorderDataVO.setAmount(list.size()); + ywWorkorderDataVO.setMonthAmount(list.stream().filter(i-> DateUtil.formatDate(i.getSubmitDate(),"yyyy-MM").equals(DateUtil.formatDate(new Date(),"yyyy-MM"))).collect(Collectors.toList()).size()); + ywWorkorderDataVO.setWaitDealAmount(list.stream().filter(i-> Constants.equalsInteger(i.getDealStatus(),Constants.ONE)).collect(Collectors.toList()).size()); + ywWorkorderDataVO.setWaitAssignAmount(list.stream().filter(i-> Constants.equalsInteger(i.getDealStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); + } + return ywWorkorderDataVO; + } + + + } -- Gitblit v1.9.3