From a29e0df3c165dfe2ddd825bb340ed480a64865db Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 02 四月 2026 15:02:30 +0800
Subject: [PATCH] 解决冲突
---
server/system_timer/src/main/resources/bootstrap-dev.yml | 6
admin/src/components/business/OperaDianbiaoDataListWindow.vue | 177 +++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceDataMapper.java | 12
admin/src/api/Inspection/ywPatrolPoint.js | 10
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java | 293 ++++
admin/package-lock.json | 2
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemRoleBizImpl.java | 5
server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java | 60 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java | 156 ++
admin/src/api/business/deviceData.js | 8
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java | 13
server/system_gateway/src/main/resources/application-dev.yml | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java | 1
admin/.env.development | 9
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java | 21
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java | 7
server/startsh/startup.bat | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java | 56
server/system_timer/src/main/resources/bootstrap-test.yml | 6
admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue | 9
admin/src/views/business/deviceKongtiao.vue | 206 +++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java | 95 +
admin/src/components/business/OperaDeviceDianbiaoWindow.vue | 147 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 12
admin/src/views/contract/components/terminateLease.vue | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java | 4
server/system_gateway/src/main/resources/bootstrap.yml | 2
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 8
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 153 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java | 10
server/visits/dmvisit_admin/src/main/resources/bootstrap-test.yml | 6
server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java | 11
server/emaysms/src/main/java/cn/emay/sdk/util/DateUtil.java | 5
temp/f1fe6230-8109-4137-b2fb-eb906d31fddf.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java | 26
server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 29
server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml | 6
server/visits/dmvisit_service/src/main/resources/application-dev.yml | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceDataCloudController.java | 43
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java | 26
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceData.java | 95 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceDataService.java | 98 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceDataServiceImpl.java | 161 ++
server/emaysms/src/main/java/cn/emay/sdk/util/GZIPUtils.java | 4
server/system_gateway/src/main/resources/application-test.yml | 6
server/system_timer/src/main/resources/application-pro.yml | 3
server/emaysms/src/main/java/cn/emay/sdk/EmayTool.java | 6
admin/.env.production | 1
admin/src/views/Inspection/dot.vue | 44
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java | 5
server/visits/admin_timer/src/main/resources/bootstrap-test.yml | 6
server/system_gateway/src/main/resources/bootstrap-dev.yml | 6
server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java | 22
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java | 49
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java | 30
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 28
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java | 2
server/visits/admin_timer/src/main/resources/bootstrap-dev.yml | 6
server/visits/dmvisit_service/src/main/java/com/doumee/core/device/WaterElectricityUtil.java | 600 ++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java | 27
server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java | 8
server/visits/dmvisit_service/src/main/resources/application-test.yml | 8
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java | 2
server/system_timer/src/main/resources/bootstrap.yml | 2
admin/src/views/business/deviceDianbiao.vue | 209 +++
/dev/null | 139 --
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java | 19
server/system_timer/src/main/resources/application-test.yml | 6
admin/src/views/roomStatus/index.vue | 8
server/system_timer/src/main/resources/application-dev.yml | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java | 161 +-
server/system_gateway/src/main/resources/bootstrap-test.yml | 6
admin/src/components/base/BaseTable.vue | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java | 2
90 files changed, 2,996 insertions(+), 522 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 04d1cb4..53d536a 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -3,11 +3,6 @@
# 椤圭洰涓婁笅鏂囪矾寰�
VUE_APP_CONTEXT_PATH = './'
-# VUE_APP_API_URL = 'http://localhost:10010'
+VUE_APP_API_URL = 'http://localhost:10010'
-VUE_APP_API_URL = 'http://192.168.0.143:10010'
-
-# VUE_APP_API_URL = 'https://dmtest.ahapp.net/fn_admin'
-
-# VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface'
-
+#VUE_APP_API_URL = 'https://zhcg.fnwtzx.com/gateway_interface'
diff --git a/admin/.env.production b/admin/.env.production
index 4e3f06d..19d9a2b 100644
--- a/admin/.env.production
+++ b/admin/.env.production
@@ -3,3 +3,4 @@
# VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface'
VUE_APP_API_URL = 'https://zhcg.fnwtzx.com/gateway_interface/doc.html'
+VUE_APP_API_URL = 'https://zhcg.fnwtzx.com/gateway_interface'
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 2a619e8..240cbab 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -6,7 +6,7 @@
"dependencies": {
"@amap/amap-jsapi-loader": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
+ "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
"integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
},
"@babel/code-frame": {
diff --git a/admin/src/api/Inspection/ywPatrolPoint.js b/admin/src/api/Inspection/ywPatrolPoint.js
index 13709e9..00d3dea 100644
--- a/admin/src/api/Inspection/ywPatrolPoint.js
+++ b/admin/src/api/Inspection/ywPatrolPoint.js
@@ -12,6 +12,16 @@
trim: true
})
}
+
+
+// 浜岀淮鐮佸垪琛�
+export function exportQrcodes (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/exportQrcodes',data, {
+ trim: true,
+ download: true
+ })
+
+}
// 瀵煎嚭Excel
export function exportExcel (data) {
return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/exportExcel', data, {
diff --git a/admin/src/api/business/deviceData.js b/admin/src/api/business/deviceData.js
new file mode 100644
index 0000000..c337434
--- /dev/null
+++ b/admin/src/api/business/deviceData.js
@@ -0,0 +1,8 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/deviceData/page', data, {
+ trim: true
+ })
+}
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index 7aea229..06c3ed3 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/admin/src/components/base/BaseTable.vue
@@ -182,7 +182,7 @@
containChildrenRows.push(row[this.configData['field.main']])
}
}
- if (containChildrenRows.length > 0) {
+ if (containChildrenRows.length > 0) {鎴�
message = '鏈灏嗗垹闄よ鏁版嵁鍙婂叾瀛愭暟鎹紝纭鍒犻櫎鍚楋紵'
}
}
diff --git a/admin/src/components/business/OperaDeviceDianbiaoWindow.vue b/admin/src/components/business/OperaDeviceDianbiaoWindow.vue
new file mode 100644
index 0000000..0a22a1a
--- /dev/null
+++ b/admin/src/components/business/OperaDeviceDianbiaoWindow.vue
@@ -0,0 +1,147 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ width="65%"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <p class="tip-header" >鍩烘湰淇℃伅</p>
+ <el-form-item label="璁惧鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁惧鍦板潃鍩�" prop="no">
+ <el-input v-model="form.no" placeholder="璇疯緭鍏ヨ澶囨爣璇嗙" v-trim/>
+ </el-form-item>
+ <el-form-item label="璁惧鍙�" prop="doorNo">
+ <el-input v-model="form.doorNo" placeholder="璇疯緭鍏ュ簭鍒楀彿" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍘傚晢" prop="manufature">
+ <el-input v-model="form.manufature" placeholder="璇疯緭鍏ュ巶鍟�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀹夎浣嶇疆" prop="regionPathName">
+ <el-input v-model="form.regionPathName" placeholder="璇疯緭鍏ヨ澶囦綅缃�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩炴帴IP" prop="ip">
+ <el-input v-model="form.ip" placeholder="璇疯緭鍏ヨ澶囪繛鎺P鍦板潃" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩炴帴绔彛" prop="port">
+ <el-input v-model="form.port" placeholder="璇疯緭鍏ヨ繛鎺ョ鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鐢垫祦姣�" prop="channelNo">
+ <el-input v-model="form.channelNo" type="number" placeholder="璇疯緭鍏ョ數娴佹瘮" v-trim>
+ <template slot="append">/5A</template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="瀵嗙爜绛夌骇" prop="pwdLevel">
+ <el-input v-model="form.doorNameObj.pwdLevel" placeholder="璇疯緭鍏ュ瘑鐮佺瓑绾�" v-trim/>
+ </el-form-item>
+ <el-form-item label="瀵嗙爜" prop="pwd">
+ <el-input v-model="form.doorNameObj.pwd" placeholder="璇疯緭鍏ヨ繛鎺ュ瘑鐮�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎿嶄綔鑰呬唬鐮�" prop="userCode">
+ <el-input v-model="form.doorNameObj.userCode" placeholder="璇疯緭鍏ヨ澶囨搷浣滆�呬唬鐮�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaDeviceDuanluqiWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ regionPathName: '',
+ doorNo: '',
+ no: '',
+ type: 6,
+ ip: '',
+ port: '',
+ level: '',
+ doorName: '',
+ doorId: '',
+ doorNameObj: {
+ pwdLevel: '',
+ pwd: '',
+ userCode: ''
+ },
+ channelInfo: '',
+ manufature: '',
+ channelNo: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�' }
+ ],
+ doorName: [
+ { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ュ瘑鐮�' }
+ ],
+ channelNo: [
+ { required: true, message: '璇疯緭鍏ュ紑鍏冲簭鍙�' }
+ ],
+ doorNo: [
+ { required: true, message: '璇疯緭鍏ヨ澶囧彿' }
+ ],
+ no: [
+ { required: true, message: '璇疯緭鍏ヨ澶囨爣璇嗙' }
+ ]
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/device',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.doorName = ''
+ this.form.doorNameObj = {
+ userCode: '',
+ pwd: '',
+ pwdLevel: ''
+ }
+ // debugger
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ if(!this.form.doorNameObj){
+ this.form.doorNameObj = {
+ pwdLevel: '',
+ pwd: '',
+ userCode: ''
+ }
+ }
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(async () => {
+ if(!target.doorNameObj){
+ target.doorNameObj={
+ pwdLevel: '',
+ pwd: '',
+ userCode: ''}
+ }
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ }
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaDianbiaoDataListWindow.vue b/admin/src/components/business/OperaDianbiaoDataListWindow.vue
new file mode 100644
index 0000000..802bc8f
--- /dev/null
+++ b/admin/src/components/business/OperaDianbiaoDataListWindow.vue
@@ -0,0 +1,177 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ >
+ <TableLayout >
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <div style="display: block;margin-bottom: 60px;padding: 20px; border: 1px solid #f2f2f2;">
+ <div style="display: block;font-size: 16px;font-weight: 600;margin-bottom: 20px;">璁惧淇℃伅</div>
+ <div style="display: flex;">
+ <div style="flex: 1"><span class="label">鍚嶇О锛�</span>{{model.name ||''}}</div>
+ <div style="flex: 1"><span class="label">鍦板潃鍩燂細</span>{{model.no ||''}}</div>
+ <div style="flex: 1"><span class="label">璁惧鍙凤細</span>{{model.doorNo ||'-'}}</div>
+ </div>
+ <div style="display: flex;margin-top: 20px;">
+ <div style="flex: 1"><span class="label">IP锛�</span>{{ model.ip ||'' }}</div>
+ <div style="flex: 1"><span class="label">绔彛锛�</span>{{ model.port ||''}}</div>
+ <div style="flex: 3">
+ <span class="label">鏈�杩戞帶鍒舵搷浣滐細</span>
+ <span class="orange" >{{model.remark||''}}</span>
+ </div>
+ </div>
+ </div>
+ <div class="platgroup_tabs">
+ <div class="tab" :class="{ active: activeGroup === item.id }" @click="groupClick(item)"
+ v-for="(item, i) in groupList" :key="i">
+ {{ item.name }}
+ </div>
+ </div>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <el-table
+ v-if="activeGroup===0"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe>
+ <el-table-column prop="happenTime" label="璇诲彇鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="val1" label="鐢佃兘锛圞WH锛�" min-width="120px"></el-table-column>
+ <el-table-column prop="val2" label="鐘舵��" min-width="120px">
+ <template slot-scope="{row}">
+ <span v-if=" row.val2 === '0000'" class="green">鍚堥椄</span>
+ <span v-else-if=" row.val2 === '0050'" class="red">鍒嗛椄</span>
+ <span v-else>-</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="val3" label="鐢佃〃鏃堕棿" min-width="120px"></el-table-column>
+ </el-table>
+ <el-table
+ v-if="activeGroup===1"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe>
+ <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="val4" label="鎿嶄綔浜�" min-width="100px" ></el-table-column>
+ <el-table-column prop="val3" label="鎿嶄綔鍐呭" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if=" row.val3 === '銆愬悎闂搞��'" class="green">{{row.val3||''}}</span>
+ <span v-else-if=" row.val3 === '銆愬垎闂搞��'" class="red">{{row.val3||''}}</span>
+ <span v-else>{{row.val3||''}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="val2" label="鍐呭" min-width="300px" show-overflow-tooltip></el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ </TableLayout>
+ <template v-slot:footer>
+ <el-button @click="visible=false">杩斿洖</el-button>
+ </template>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaJkSketchCustomerWindow',
+ extends: BaseTable,
+ components: { GlobalWindow, TableLayout, Pagination },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ visible: false,
+ title: '',
+ activeGroup:0,
+ model:{doorNameObj:{}},
+ groupList: [{ id: 0, name: '鏁版嵁涓婃姤璁板綍', type: 0 }, { id: 1, name: '杩滅▼鎺у埗璁板綍', type: 1 }],
+ searchForm: {
+ deviceId: null,
+ val1: '',
+ dataType:0
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧鏁版嵁淇℃伅琛�',
+ api: '/business/deviceData',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ groupClick (item) {
+ this.activeGroup = item.id
+ this.searchForm.val1 = ''
+ this.searchForm.dataType = item.type
+ this.search()
+ },
+ open (title, row) {
+ this.title = title +' 銆�'+ (row.name)+'銆�'
+ this.searchForm.deviceId = row.id
+ if(!row.doorNameObj) {
+ row.doorNameObj = {}
+ }
+ this.model=row
+ this.visible = true
+ this.tableData = {
+ // 宸查�変腑鐨勬暟鎹�
+ selectedRows: [],
+ // 鎺掑簭鐨勫瓧娈�
+ sorts: [],
+ // 褰撳墠椤垫暟鎹�
+ list: [],
+ // 鍒嗛〉
+ pagination: {
+ pageIndex: 1,
+ pageSize: 10,
+ total: 0
+ }
+ }
+ this.groupClick(this.groupList[0])
+ }
+ }
+}
+</script>
+<style>
+.platgroup_tabs {
+ flex: 1;
+ display: flex;
+ border-bottom: 1px solid #dfe2e8;
+ margin-bottom:30px;
+
+ .tab {
+ color: #666666;
+ margin-right: 40px;
+ cursor: pointer;
+ padding-bottom: 18px;
+ border-bottom: 2px solid #fff;
+ }
+
+ .active {
+ font-weight: 500;
+ font-size: 15px;
+ color: #2080f7;
+ border-bottom: 2px solid $primary-color;
+ }
+}
+.label{
+/* width: 80px;
+ text-align: right;*/
+ color: rgb(102, 102, 102);
+ display: inline-block;
+
+}
+</style>
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
index d17b360..2f22cd9 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
@@ -1,8 +1,8 @@
<template>
<GlobalWindow :title="title" :visible.sync="visible" width="620px" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="宸℃鐐圭紪鐮�" prop="code">
- <el-input v-model="form.code" placeholder="璇疯緭鍏ュ悕绉�" v-trim />
+ <el-form-item label="宸℃鐐圭紪鐮�" required >
+ <el-input v-model="form.code" disabled readonly placeholder="绯荤粺鑷姩鐢熸垚" v-trim />
</el-form-item>
<el-form-item label="宸℃鐐瑰悕绉�" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ贰妫�鐐瑰悕绉�" v-trim />
@@ -67,7 +67,6 @@
// 楠岃瘉瑙勫垯
rules: {
name: [{ required: true, message: '璇疯緭鍏�' }],
- code: [{ required: true, message: '璇疯緭鍏�' }],
},
isUploading: false,
}
@@ -87,7 +86,7 @@
this.$nextTick(() => {
this.form = {
name: '',
- code: '',
+ // code: '',
content: '',
imgurl: '',
areaId: 0,
@@ -182,4 +181,4 @@
margin-bottom: 20px;
float: left;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/admin/src/views/Inspection/dot.vue b/admin/src/views/Inspection/dot.vue
index 943bb51..d23746f 100644
--- a/admin/src/views/Inspection/dot.vue
+++ b/admin/src/views/Inspection/dot.vue
@@ -20,9 +20,11 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:ywpatrolpoint:create', 'business:ywpatrolpoint:delete']">
+ <ul class="toolbar" v-permissions="['business:ywpatrolpoint:create', 'business:ywpatrolpoint:qrcode', 'business:ywpatrolpoint:delete']">
<li><el-button type="primary" @click="editClick()" icon="el-icon-plus"
v-permissions="['business:ywpatrolpoint:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="exportQrcodes()" icon="el-icon-download"
+ v-permissions="['business:ywpatrolpoint:qrcode']">瀵煎嚭鍏ㄩ噺浜岀淮鐮�</el-button></li>
<!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
v-permissions="['business:ywpatrolpoint:delete']">鍒犻櫎</el-button></li> -->
</ul>
@@ -32,9 +34,11 @@
<el-table-column prop="name" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
<el-table-column prop="deviceName" label="鍏宠仈璁惧" min-width="100px"></el-table-column>
<el-table-column prop="areaName" label="宸℃鍖哄煙" min-width="100px"></el-table-column>
- <el-table-column v-if="containPermissions(['business:ywpatrolpoint:update', 'business:ywpatrolpoint:delete'])"
- label="鎿嶄綔" min-width="120" fixed="right">
+ <el-table-column v-if="containPermissions(['business:ywpatrolpoint:update','business:ywpatrolpoint:qrcode', 'business:ywpatrolpoint:delete'])"
+ label="鎿嶄綔" min-width="160" fixed="right">
<template slot-scope="{row}">
+ <el-button type="text" @click="exportQrcodes(row.id)" icon="el-icon-download"
+ v-permissions="['business:ywpatrolpoint:qrcode']">涓嬭浇浜岀淮鐮�</el-button>
<el-button type="text" @click="editClick(row)" icon="el-icon-edit"
v-permissions="['business:ywpatrolpoint:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
@@ -56,11 +60,12 @@
import Pagination from '@/components/common/Pagination'
import OperaYwPatrolPointWindow from './components/OperaYwPatrolPointWindow'
import { fetchList } from '@/api/business/category'
+import { exportQrcodes } from '@/api/Inspection/ywPatrolPoint'
export default {
name: 'YwPatrolPoint',
extends: BaseTable,
components: { TableLayout, Pagination, OperaYwPatrolPointWindow },
- data() {
+ data () {
return {
// 鎼滅储
searchForm: {
@@ -71,7 +76,7 @@
areaList: []
}
},
- created() {
+ created () {
this.config({
module: '杩愮淮宸℃鐐逛俊鎭〃',
api: '/Inspection/ywPatrolPoint',
@@ -82,7 +87,24 @@
this.getProject()
},
methods: {
- reset() {
+
+ exportQrcodes (id) {
+ this.$dialog.actionConfirm( '鎮ㄧ‘璁よ繘琛岃鎿嶄綔鍚楋紵','涓嬭浇鎿嶄綔鎻愮ず')
+ .then(() => {
+ exportQrcodes({id:id})
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.export = false
+ })
+ })
+ .catch(() => {})
+ },
+ reset () {
this.searchForm = {
name: '',
areaId: '',
@@ -90,16 +112,16 @@
}
this.search()
},
- getProject() {
+ getProject () {
fetchList({
model: { type: 4 },
capacity: 1000,
- page: 1,
+ page: 1
}).then(res => {
this.areaList = res.records || []
})
},
- editClick(row) {
+ editClick (row) {
if (row && row.id) {
this.$refs.operaYwPatrolPointWindow.open('缂栬緫宸℃鐐�', row)
} else {
@@ -107,7 +129,7 @@
}
// this.$refs.operaYwPatrolPointWindow.initData()
},
- changeSel(e) {
+ changeSel (e) {
if (e && e.length == 1) {
} else if (e && e.length == 2) {
this.$set(this.searchForm, 'areaId', e[1])
@@ -115,7 +137,7 @@
}
this.search()
- },
+ }
}
}
</script>
diff --git a/admin/src/views/business/deviceDianbiao.vue b/admin/src/views/business/deviceDianbiao.vue
new file mode 100644
index 0000000..85a37d0
--- /dev/null
+++ b/admin/src/views/business/deviceDianbiao.vue
@@ -0,0 +1,209 @@
+<template>
+ <TableLayout :permissions="['business:device:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item title="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item title="鏍囪瘑绗�" prop="no">
+ <el-input v-model="searchForm.no" placeholder="璇疯緭鍏ヨ澶囧湴鍧�鍩�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item title="璁惧鍙�" prop="doorNo">
+ <el-input v-model="searchForm.doorNo" placeholder="璇疯緭鍏ヨ澶囧彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:device:create', 'business:device:delete']">
+ <li><el-button type="primary" @click="$refs.operaDeviceWindow.open('鏂板缓鐢佃〃')" icon="el-icon-plus" v-permissions="['business:device:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:device:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" fixed min-width="150" align="center"></el-table-column>
+ <el-table-column prop="no" label="鐢佃〃鍦板潃鍩�" min-width="100" align="center" ></el-table-column>
+ <el-table-column prop="doorNo" label="璁惧鍙�" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+<!--
+ <el-table-column prop="channelNo" label="寮�鍏冲簭鍙�" align="center" min-width="100"></el-table-column>
+-->
+ <el-table-column prop="manufature" label="鍘傚晢" align="center" min-width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="regionPathName" align="center" min-width="100" label="鎵�鍦ㄤ綅缃�"></el-table-column>
+ <el-table-column prop="ip" label="IP" min-width="150" align="center" show-overflow-tooltip ></el-table-column>
+ <el-table-column prop="port" label="绔彛" align="center" ></el-table-column>
+ <el-table-column prop="isUsed" label="鏄惁浣跨敤">
+ <template slot-scope="{row}">
+ <el-switch @change="changeUsed($event, row)" v-model="row.isUsed" active-color="#13ce66"
+ inactive-color="#ff4949" :active-value="0" :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="doorNameObj.pwdLevel" label="瀵嗙爜绛夌骇" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="doorNameObj.pwd" label="瀵嗙爜" align="center">
+ <template slot-scope="{row}">
+ <span :class=" 'blue'">{{row.showPwd?row.doorNameObj.pwd:'******'}}</span>
+ <el-button style="margin-left: 10px" v-if="row.doorNameObj.pwd!=null"
+ @click.native.p.prevent="showPassward(row)" type="text">
+ <i class="el-icon-view" :class="row.showPwd?'red':'blue'" :title="row.showPwd?'闅愯棌':'鏄剧ず'"></i>
+ </el-button>
+ </template>
+ </el-table-column>
+ <el-table-column prop="doorNameObj.userCode" label="鎿嶄綔鑰呬唬鐮�" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" align="center" min-width="150"></el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ min-width="280"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaDeviceWindow.open('缂栬緫鐢佃〃', row)" icon="el-icon-edit" v-permissions="['business:device:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaDeviceDataWindow.open('鏌ョ湅鐢佃〃鏁版嵁', row)" icon="el-icon-view" v-permissions="['business:device:update']">鏁版嵁</el-button>
+ <el-button type="text" @click="send(row,1)" icon="el-icon-circle-check" v-permissions="['business:device:update']">寮�闂�</el-button>
+ <el-button type="text" class="red" @click="send(row,0)" icon="el-icon-circle-close" v-permissions="['business:device:update']">鍏抽椄</el-button>
+ <el-button type="text" class="red" @click="readData(row)" icon="el-icon-circle-close" v-permissions="['business:device:update']">璇诲彇鏁版嵁</el-button>
+ <el-button type="text" class="red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:device:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination" >
+ </pagination>
+ </template>
+ <el-dialog
+ :visible.sync="visibleSend"
+ style="z-index: 100000"
+ append-to-body
+ width="50%"
+ height="50%"
+ :title="'鎺у埗鐢佃〃-銆�'+ form.name+'銆�'"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鎵ц鎿嶄綔锛�" >
+ <b class="green" v-if="form.status ===1">寮�闂�</b>
+ <b class="red" v-else>鍏抽椄</b>
+ </el-form-item>
+ <el-form-item label="鏈夋晥鏃堕棿" prop="cmdDate">
+ <el-date-picker type="datetime" v-model="form.cmdDate" value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="璇烽�夋嫨鏈夋晥鏃堕棿" />
+ </el-form-item>
+ <!-- <p class="tip-warn" style="width: 100%;"><i class="el-icon-warning"></i></p> -->
+ </el-form>
+ <template v-slot:footer >
+ <el-button @click="sendAction(0)" type="primary" v-if="form.status === 1" :loading="isWorkSending">纭寮�闂�</el-button>
+ <el-button @click="sendAction(1)" type="danger" v-if="form.status !== 1" :loading="isWorkSending">纭鍏抽椄</el-button>
+ <el-button @click="sendClose()">杩斿洖</el-button>
+ </template>
+ </el-dialog>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaDeviceDianbiaoWindow ref="operaDeviceWindow" @success="handlePageChange"/>
+ <OperaDeviceDataListWindow ref="operaDeviceDataWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDeviceDataListWindow from '@/components/business/OperaDianbiaoDataListWindow'
+import OperaDeviceDianbiaoWindow from '@/components/business/OperaDeviceDianbiaoWindow'
+export default {
+ name: 'DeviceDuanluqi',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDeviceDianbiaoWindow, OperaDeviceDataListWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ doorNo: '',
+ no: '',
+ name: '',
+ type: 6
+ },
+ isWorkSending: false,
+ form: {
+ id: '',
+ status: null,
+ name: null,
+ cmdDate: null
+ },
+ visibleSend: false,
+ options: [],
+ rules: {
+ cmdDate: [{ required: true, message: '璇烽�夋嫨鎿嶄綔鏈夋晥鏃堕棿' }]
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧淇℃伅琛�',
+ api: '/business/device',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ changeUsed (e, row) {
+ this.api.updateUsedById({
+ id: row.id,
+ isUsed: e
+ })
+ },
+ showPassward (row) {
+ if (!row.showPwd) {
+ this.$set(row, 'showPwd', true)
+ } else {
+ this.$set(row, 'showPwd', false)
+ }
+ },
+ sendAction (status) {
+ this.form.status = status
+ this.$dialog.actionConfirm('纭杩涜鐢佃〃銆�' + (this.form.status === 1 ? '寮�闂�' : '鍏抽椄') + '銆戞搷浣滃悧锛�', '鎿嶄綔纭鎻愰啋')
+ .then(() => {
+ console.log(this.form)
+ this.isWorkSending = true
+ this.api.dianbaoCmd(this.form)
+ .then(res => {
+ this.$tip.apiSuccess(res || '璇锋眰鎴愬姛')
+ this.handlePageChange()
+ })
+ .catch(e => {
+ })
+ .finally(() => {
+ this.isWorkSending = false
+ })
+ })
+ .catch(() => {})
+ },
+ readData (row) {
+ this.api.dianbiaoData({ id: row.id })
+ .then(res => {
+ this.$tip.apiSuccess(res || '璇锋眰鎴愬姛')
+ this.handlePageChange()
+ })
+ .catch(e => {
+ })
+ .finally(() => {
+ this.isWorkSending = false
+ })
+ },
+ send (row, type) {
+ this.visibleSend = true
+ this.form = { id: row.id, name: row.name, cmdDate: null, status: type}
+ },
+ sendClose () {
+ this.visibleSend = false
+ this.isWorkSending = false
+ this.form = { id: '', name: '', status: '', cmdDate: '' }
+ }
+ }
+}
+</script>
diff --git a/admin/src/views/business/deviceKongtiao.vue b/admin/src/views/business/deviceKongtiao.vue
new file mode 100644
index 0000000..5a014a9
--- /dev/null
+++ b/admin/src/views/business/deviceKongtiao.vue
@@ -0,0 +1,206 @@
+<template>
+ <TableLayout :permissions="['business:device:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item title="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item title="鏍囪瘑绗�" prop="no">
+ <el-input v-model="searchForm.no" placeholder="璇疯緭鍏ヨ澶囧湴鍧�鍩�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item title="璁惧鍙�" prop="doorNo">
+ <el-input v-model="searchForm.doorNo" placeholder="璇疯緭鍏ヨ澶囧彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:device:create', 'business:device:delete']">
+ <li><el-button type="primary" @click="$refs.operaDeviceWindow.open('鏂板缓绌鸿皟')" icon="el-icon-plus" v-permissions="['business:device:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:device:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="鍚嶇О" fixed min-width="150" align="center"></el-table-column>
+ <el-table-column prop="no" label="绌鸿皟鍦板潃鍩�" min-width="100" align="center" ></el-table-column>
+ <el-table-column prop="doorNo" label="璁惧鍙�" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="manufature" label="鍘傚晢" align="center" min-width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="regionPathName" align="center" min-width="100" label="鎵�鍦ㄤ綅缃�"></el-table-column>
+ <el-table-column prop="ip" label="IP" min-width="150" align="center" show-overflow-tooltip ></el-table-column>
+ <el-table-column prop="port" label="绔彛" align="center" ></el-table-column>
+ <el-table-column prop="isUsed" label="鏄惁浣跨敤">
+ <template slot-scope="{row}">
+ <el-switch @change="changeUsed($event, row)" v-model="row.isUsed" active-color="#13ce66"
+ inactive-color="#ff4949" :active-value="0" :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="doorNameObj.pwdLevel" label="瀵嗙爜绛夌骇" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="doorNameObj.pwd" label="瀵嗙爜" align="center">
+ <template slot-scope="{row}">
+ <span :class=" 'blue'">{{row.showPwd?row.doorNameObj.pwd:'******'}}</span>
+ <el-button style="margin-left: 10px" v-if="row.doorNameObj.pwd!=null"
+ @click.native.p.prevent="showPassward(row)" type="text">
+ <i class="el-icon-view" :class="row.showPwd?'red':'blue'" :title="row.showPwd?'闅愯棌':'鏄剧ず'"></i>
+ </el-button>
+ </template>
+ </el-table-column>
+ <el-table-column prop="doorNameObj.userCode" label="鎿嶄綔鑰呬唬鐮�" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" align="center" min-width="150"></el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ min-width="280"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaDeviceWindow.open('缂栬緫绌鸿皟', row)" icon="el-icon-edit" v-permissions="['business:device:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaDeviceDataWindow.open('鏌ョ湅绌鸿皟鏁版嵁', row)" icon="el-icon-view" v-permissions="['business:device:update']">鏁版嵁</el-button>
+ <el-button type="text" @click="send(row,1)" icon="el-icon-circle-check" v-permissions="['business:device:update']">鎵撳紑</el-button>
+ <el-button type="text" class="red" @click="send(row,0)" icon="el-icon-circle-close" v-permissions="['business:device:update']">鍏抽棴</el-button>
+ <el-button type="text" class="red" @click="readData(row)" icon="el-icon-circle-close" v-permissions="['business:device:update']">璇诲彇鏁版嵁</el-button>
+ <el-button type="text" class="red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:device:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination" >
+ </pagination>
+ </template>
+ <el-dialog
+ :visible.sync="visibleSend"
+ style="z-index: 100000"
+ append-to-body
+ width="50%"
+ height="50%"
+ :title="'鎺у埗绌鸿皟-銆�'+ form.name+'銆�'"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鎵ц鎿嶄綔锛�" >
+ <b class="green" v-if="form.status ===1">鎵撳紑</b>
+ <b class="red" v-else>鍏抽棴</b>
+ </el-form-item>
+ <el-form-item label="鏈夋晥鏃堕棿" prop="cmdDate">
+ <el-date-picker type="datetime" v-model="form.cmdDate" value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="璇烽�夋嫨鏈夋晥鏃堕棿" />
+ </el-form-item>
+ <!-- <p class="tip-warn" style="width: 100%;"><i class="el-icon-warning"></i></p> -->
+ </el-form>
+ <template v-slot:footer >
+ <el-button @click="sendAction(0)" type="primary" v-if="form.status === 1" :loading="isWorkSending">纭鎵撳紑</el-button>
+ <el-button @click="sendAction(1)" type="danger" v-if="form.status !== 1" :loading="isWorkSending">纭鍏抽棴</el-button>
+ <el-button @click="sendClose()">杩斿洖</el-button>
+ </template>
+ </el-dialog>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaDeviceDianbiaoWindow ref="operaDeviceWindow" @success="handlePageChange"/>
+ <OperaDeviceDataListWindow ref="operaDeviceDataWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDeviceDataListWindow from '@/components/business/OperaDianbiaoDataListWindow'
+import OperaDeviceDianbiaoWindow from '@/components/business/OperaDeviceDianbiaoWindow'
+export default {
+ name: 'DeviceDuanluqi',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDeviceDianbiaoWindow, OperaDeviceDataListWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ doorNo: '',
+ no: '',
+ name: '',
+ type: 7
+ },
+ isWorkSending: false,
+ form: {
+ id: '',
+ status: null,
+ name: null,
+ cmdDate: null
+ },
+ visibleSend: false,
+ options: [],
+ rules: {
+ cmdDate: [{ required: true, message: '璇烽�夋嫨鎿嶄綔鏈夋晥鏃堕棿' }]
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧淇℃伅琛�',
+ api: '/business/device',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ changeUsed (e, row) {
+ this.api.updateUsedById({
+ id: row.id,
+ isUsed: e
+ })
+ },
+ showPassward (row) {
+ if (!row.showPwd) {
+ this.$set(row, 'showPwd', true)
+ } else {
+ this.$set(row, 'showPwd', false)
+ }
+ },
+ sendAction (status) {
+ this.form.status = status
+ this.$dialog.actionConfirm('纭杩涜绌鸿皟銆�' + (this.form.status === 1 ? '鎵撳紑' : '鍏抽棴') + '銆戞搷浣滃悧锛�', '鎿嶄綔纭鎻愰啋')
+ .then(() => {
+ console.log(this.form)
+ this.isWorkSending = true
+ this.api.dianbaoCmd(this.form)
+ .then(res => {
+ this.$tip.apiSuccess(res || '璇锋眰鎴愬姛')
+ this.handlePageChange()
+ })
+ .catch(e => {
+ })
+ .finally(() => {
+ this.isWorkSending = false
+ })
+ })
+ .catch(() => {})
+ },
+ readData (row) {
+ this.api.dianbiaoData({ id: row.id })
+ .then(res => {
+ this.$tip.apiSuccess(res || '璇锋眰鎴愬姛')
+ this.handlePageChange()
+ })
+ .catch(e => {
+ })
+ .finally(() => {
+ this.isWorkSending = false
+ })
+ },
+ send (row, type) {
+ this.visibleSend = true
+ this.form = { id: row.id, name: row.name, cmdDate: null, status: type}
+ },
+ sendClose () {
+ this.visibleSend = false
+ this.isWorkSending = false
+ this.form = { id: '', name: '', status: '', cmdDate: '' }
+ }
+ }
+}
+</script>
diff --git a/admin/src/views/business/platformBroadcastLog.vue b/admin/src/views/business/platformBroadcastLog.vue
deleted file mode 100644
index 14c7504..0000000
--- a/admin/src/views/business/platformBroadcastLog.vue
+++ /dev/null
@@ -1,154 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformbroadcastlog:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="content">
- <el-input v-model="searchForm.content" placeholder="璇疯緭鍏ュ唴瀹�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="personType">
- <el-select v-model="searchForm.deviceType" placeholder="璇烽�夋嫨璁惧绫诲瀷">
- <el-option label="骞挎挱" value="0"></el-option>
- <el-option label="LED" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="eventType">
- <el-select v-model="searchForm.hkStatus" placeholder="璇烽�夋嫨涓嬪彂鐘舵��">
- <el-option label="寰呬笅鍙�" value="0"></el-option>
- <el-option label="涓嬪彂涓�" value="1"></el-option>
- <el-option label="涓嬪彂鎴愬姛" value="2"></el-option>
- <el-option label="涓嬪彂澶辫触" value="3"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="璧锋鏃堕棿" prop="eventType">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:platformbroadcastlog:exportExcel']">
-<!--
- <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:platformbroadcastlog:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
--->
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="deviceType" label="璁惧绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.deviceType == 0">骞挎挱</span>
- <span v-if="row.deviceType == 1">LED</span>
- </template>
- </el-table-column>
- <el-table-column prop="hkStatus" label="涓嬪彂鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.hkStatus == 0" style="color: #0c6ce3">寰呬笅鍙�</span>
- <span v-if="row.hkStatus == 1" style="color: #0c6ce3">涓嬪彂涓�</span>
- <span v-if="row.hkStatus == 2" style="color: green">涓嬪彂鎴愬姛</span>
- <span v-if="row.hkStatus == 3" style="color: red">涓嬪彂澶辫触</span>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="鏍囬" min-width="100px"></el-table-column>
- <el-table-column prop="info" label="鍐呭" min-width="100px"></el-table-column>
- <el-table-column prop="ids" label="璁惧缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'DeviceEvent',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- info: '',
- deviceType: '',
- hkStatus: '',
- startTime: '',
- endTime: '',
- radio: 0
- },
- time: []
- }
- },
- created () {
- this.config({
- module: 'LED骞挎挱鎾斁璁板綍',
- api: '/business/platformBroadcastLog',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.changeRadio('0')
- },
- methods: {
- changeRadio (e) {
- if (e === '0') {
- this.searchForm.startTime = timeForMat(0)[0]
- this.searchForm.endTime = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.startTime = timeForMat(6)[0]
- this.searchForm.endTime = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.startTime = timeForMat(29)[0]
- this.searchForm.endTime = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- seleTime (e) {
- this.searchForm.startTime = e[0]
- this.searchForm.endTime = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.time = []
- this.searchForm.radio = '0'
- this.changeRadio('0')
- this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/platformEvent.vue b/admin/src/views/business/platformEvent.vue
deleted file mode 100644
index 193fbf5..0000000
--- a/admin/src/views/business/platformEvent.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-<template>
- <TableLayout :permissions="['business:platformevent:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="" prop="platformName">
- <el-input v-model="searchForm.platformName" placeholder="璇疯緭鍏ユ湀鍙板悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="channelName">
- <el-input v-model="searchForm.channelName" placeholder="璇疯緭鍏ョ洃鎺х偣鍚嶇О" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="plateNo">
- <el-input v-model="searchForm.plateNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="eventType">
- <el-select v-model="searchForm.motionStatus" placeholder="璇烽�夋嫨杩涘嚭绫诲瀷">
- <el-option label="绂诲紑" value="leave"></el-option>
- <el-option label="杩涘叆" value="enter"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="璧锋鏃堕棿" prop="startDate">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="platformName" label="鏈堝彴鍚嶇О" min-width="150px"></el-table-column>
- <el-table-column prop="channelName" label="鐩戞帶鐐瑰悕绉�" min-width="150px"></el-table-column>
- <el-table-column prop="plateNo" label="杞︾墝鍙�" min-width="100px"></el-table-column>
- <el-table-column label="杩涘嚭绫诲瀷" min-width="90px">
- <template slot-scope="{row}">
- <span v-if="row.motionStatus == 'enter'">杩涘叆</span>
- <span v-if="row.motionStatus == 'leave'">绂诲紑</span>
- <span v-if="row.motionStatus != 'leave' && row.motionStatus != 'enter'">{{ row.motionStatus }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鍓嶅悗鏍囪瘑" min-width="90px">
- <template slot-scope="{row}">
- <span v-if="row.stockStatus == 'rear'">杞﹀熬</span>
- <span v-if="row.stockStatus == 'front'">杞﹀ご</span>
- <span v-if="row.stockStatus != 'rear' && row.stockStatus != 'front'">{{ row.stockStatus }}</span>
- </template>
- </el-table-column>
- <el-table-column label="杞﹂棬鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.vehicleDoorStatus == 'open'">寮�闂�</span>
- <span v-if="row.vehicleDoorStatus == 'close'">鍏抽棬</span>
- <span v-if="row.vehicleDoorStatus != 'open' && row.vehicleDoorStatus != 'close'">{{ row.vehicleDoorStatus }}</span>
- </template>
- </el-table-column>
- <el-table-column prop="srcIndex" label="璁惧缂栫爜" min-width="180px"></el-table-column>
- <el-table-column prop="ipAddress" label="IP鍦板潃" min-width="100px"></el-table-column>
- <el-table-column prop="portNo" label="绔彛" min-width="80px"></el-table-column>
- <el-table-column fixed="right" label="鎶撴媿鍥�" min-width="100px">
- <template slot-scope="{row}">
- <el-image v-if="row.backgroundImageDown" style="width: 60px; height: 60px" :src="row.backgroundImageDown"
- :preview-src-list="[row.backgroundImageDown]">
- </el-image>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="160px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'platformEvent',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- plateNo: '',
- motionStatus: '',
- channelName: '',
- platformName: '',
- endDate: '',
- startDate: '',
- radio: '0'
- },
- time: []
- }
- },
- created () {
- this.config({
- module: '鏈堝彴杞﹁締鐘舵�佷簨浠朵氦浜掕褰�',
- api: '/business/platformEvent',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.changeRadio('0')
- },
- methods: {
- changeRadio (e) {
- if (e === '0') {
- this.searchForm.startDate = timeForMat(0)[0]
- this.searchForm.endDate = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.startDate = timeForMat(6)[0]
- this.searchForm.endDate = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.startDate = timeForMat(29)[0]
- this.searchForm.endDate = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- seleTime (e) {
- this.searchForm.startDate = e[0]
- this.searchForm.endDate = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.searchForm.startDate = ''
- this.searchForm.endDate = ''
- this.time = []
- this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/business/platformInterfaceLog.vue b/admin/src/views/business/platformInterfaceLog.vue
deleted file mode 100644
index 70b00ca..0000000
--- a/admin/src/views/business/platformInterfaceLog.vue
+++ /dev/null
@@ -1,145 +0,0 @@
-<template>
- <TableLayout :permissions="['business:interfacelog:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鎺ュ彛鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ帴鍙e悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲瀷" prop="type">
- <el-select v-model="searchForm.type" @change="search" placeholder="璇烽�夋嫨">
- <el-option label="璋冪敤" value="0"></el-option>
- <el-option label="鎺ㄩ�佹帴鍙�" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="璧锋鏃堕棿" prop="startDate">
- <el-date-picker
- @change="seleTime"
- v-model="time"
- type="datetimerange"
- format="yyyy-MM-dd HH:mm:ss"
- value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿">
- </el-date-picker>
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="name" label="鎺ュ彛鍚嶇О" min-width="180px"></el-table-column>
- <el-table-column prop="url" label="鍦板潃淇℃伅" min-width="180px"></el-table-column>
- <el-table-column label="绫诲瀷" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.type == 0">璋冪敤</span>
- <span v-if="row.type == 1">鎺ㄩ�佹帴鏀�</span>
- </template>
- </el-table-column>
- <el-table-column label="骞冲彴" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.plat == 0">娴峰悍瀹夐槻骞冲彴</span>
- <span v-if="row.plat == 1">ERP绯荤粺</span>
- </template>
- </el-table-column>
- <el-table-column prop="request" label="璇锋眰鍙傛暟" min-width="100px">
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaInterfaceLogWindow.open('璇锋眰鍙傛暟', {content: row.request})">鏌ョ湅</el-button>
- </template>
- </el-table-column>
- <el-table-column prop="repose" label="鍝嶅簲鍙傛暟" min-width="100px">
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaInterfaceLogWindow.open('鍝嶅簲鍙傛暟', {content: row.repose})">鏌ョ湅</el-button>
- </template>
- </el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaInterfaceLogWindow ref="operaInterfaceLogWindow" @success="handlePageChange"/>
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaInterfaceLogWindow from '@/components/business/OperaInterfaceLogWindow'
-import { timeForMat } from '@/utils/util'
-export default {
- name: 'InterfaceLog',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaInterfaceLogWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- type: '',
- endDate: '',
- startDate: '',
- radio: '0'
- },
- time: []
- }
- },
- created () {
- this.config({
- module: '涓夋柟骞冲彴鎺ュ彛浜や簰璁板綍',
- api: '/business/platformInterfaceLog',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.changeRadio('0')
- },
- methods: {
- changeRadio (e) {
- if (e === '0') {
- this.searchForm.startDate = timeForMat(0)[0]
- this.searchForm.endDate = timeForMat(0)[1]
- this.time = timeForMat(0)
- } else if (e === '1') {
- this.searchForm.startDate = timeForMat(6)[0]
- this.searchForm.endDate = timeForMat(6)[1]
- this.time = timeForMat(6)
- } else if (e === '2') {
- this.searchForm.startDate = timeForMat(29)[0]
- this.searchForm.endDate = timeForMat(29)[1]
- this.time = timeForMat(29)
- }
- this.search()
- },
- seleTime (e) {
- this.searchForm.startDate = e[0]
- this.searchForm.endDate = e[1]
- this.searchForm.radio = null
- this.search()
- },
- reset () {
- this.$refs.searchForm.resetFields()
- this.searchForm.startDate = ''
- this.searchForm.endDate = ''
- this.time = []
- this.search()
- }
- }
-}
-</script>
diff --git a/admin/src/views/contract/components/terminateLease.vue b/admin/src/views/contract/components/terminateLease.vue
index 5520b8a..04ed6cf 100644
--- a/admin/src/views/contract/components/terminateLease.vue
+++ b/admin/src/views/contract/components/terminateLease.vue
@@ -249,14 +249,14 @@
{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }
]
},
-
+
list: [],
pickerOptions: {},
agentList: [],
receivable: '',
meet: '',
-
+
loading: false
}
},
@@ -515,7 +515,7 @@
.main_box {
width: 100%;
display: flex;
- align-items: start;
+ align-items: flex-start;
margin-bottom: 15px;
justify-content: space-between;
.main_box_form {
diff --git a/admin/src/views/roomStatus/index.vue b/admin/src/views/roomStatus/index.vue
index 0bdccb2..88f0ef1 100644
--- a/admin/src/views/roomStatus/index.vue
+++ b/admin/src/views/roomStatus/index.vue
@@ -288,7 +288,7 @@
</div>
</div>
<div class="xm_house_list_right">
- <template v-for="(child, i) in item.roomsList" :key="i">
+ <template v-for="(child, i) in item.roomsList" >
<div class="xm_house_list_right_row" v-for="(childThree, a) in child" :key="a" :style="{ width: childThree.width + 'px', backgroundColor: ifBackground(childThree.roomStatus) }">
<div class="ft">
<span>{{childThree.roomCode}}</span>
@@ -305,7 +305,6 @@
<div class="xm_house_list_right_row_day" v-if="childThree.roomStatus === 0">鏈嚭绉燂綔绌虹疆{{childThree.freeDayAmount}}澶�</div>
</div>
</template>
-
</div>
</div>
</div>
@@ -498,7 +497,7 @@
<el-table
:data="tableData"
border
- v-lading="loading"
+ v-loading="loading"
style="width: 100%">
<el-table-column
prop="categoryName"
@@ -687,6 +686,7 @@
label: '榛勯噾绯�'
}],
value: '',
+ ids:[],
form: {
name: '',
status: '',
@@ -1246,7 +1246,7 @@
.box_content {
width: 100%;
display: flex;
- align-items: start;
+ align-items: flex-start;
justify-content: space-between;
.left {
width: 300px;
diff --git a/admin/src/views/statistics/platformRecord.vue b/admin/src/views/statistics/platformRecord.vue
deleted file mode 100644
index 5659e49..0000000
--- a/admin/src/views/statistics/platformRecord.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
- <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="100" show-overflow-tooltip />
- <el-table-column prop="name" label="杩愯緭鍗曞彿/鍚堝悓鍙�" min-width="100" show-overflow-tooltip>
- <template v-slot="scope">
- <span>{{ scope.row.billCode || scope.row.contractNum }}</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: 'platformName',
- type: 'input',
- label: '鏈堝彴鍚嶇О'
- },
- {
- filed: 'platformGroupId',
- type: 'select',
- label: '鏈堝彴缁�',
- placeholder: '鍏ㄩ儴鏈堝彴缁�',
- options: []
- },
- {
- filed: 'carCodeFront',
- type: 'input',
- label: '杞︾墝鍙�'
- },
- {
- filed: 'selDate',
- type: 'daterange',
- label: '鏃ユ湡'
- }
- ],
- online: true
- }
- }
- },
- created() {
- this.getList()
- this.getGroupList()
- },
- methods: {
- handleSub() {
- this.$refs.ruleForm.validate((valid) => {
- if (valid) {
- alert('submit!')
- }
- })
- },
- 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
- this.getList()
- }
- }
-}
-</script>
-
-<style></style>
diff --git a/admin/src/views/statistics/platformStatic.vue b/admin/src/views/statistics/platformStatic.vue
deleted file mode 100644
index 520748a..0000000
--- a/admin/src/views/statistics/platformStatic.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-<template>
- <div class="main_app">
- <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear">
- <template #fastdate>
- <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="6">杩�7澶�</el-radio-button>
- <el-radio-button label="29">杩�30澶�</el-radio-button>
- </el-radio-group>
- </template>
- </QueryForm>
- <el-table v-loading="loading" :data="list" stripe>
- <el-table-column prop="name" label="鏈堝彴鍚嶇О" min-width="100" show-overflow-tooltip />
- <el-table-column prop="groupName" label="鏈堝彴缁�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="stopCount" label="鍋滈潬娆℃暟(娆�)" min-width="100" show-overflow-tooltip />
- <el-table-column prop="workCountTime" label="宸ヤ綔鏃堕暱" min-width="100" show-overflow-tooltip />
- <el-table-column prop="useRata" label="鏈堝彴浣跨敤鐜�" min-width="100" show-overflow-tooltip />
- </el-table>
- <!-- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> -->
- </div>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import QueryForm from '@/components/common/QueryForm'
-import dayjs from 'dayjs'
-import { platformWorkReportPage, getPlatformGroupList } from '@/api'
-export default {
- components: {
- Pagination,
- QueryForm
- },
- data() {
- return {
- loading: false,
- pagination: {
- pageSize: 10,
- page: 1,
- total: 0
- },
- filters: {
- fastdate: 0,
- selDate: []
- },
- list: [],
- total: 0,
- queryFormConfig: {
- formItems: [
- {
- filed: 'name',
- type: 'input',
- label: '鏈堝彴鍚嶇О'
- },
- {
- filed: 'groupId',
- type: 'select',
- label: '鏈堝彴缁�',
- placeholder: '鍏ㄩ儴鏈堝彴缁�',
- options: []
- },
- {
- type: 'slot',
- filed: 'fastdate',
- label: ''
- },
- {
- filed: 'selDate',
- type: 'daterange',
- clearable: false,
- label: '鏃ユ湡'
- }
- ],
- online: true
- }
- }
- },
- created() {
- this.changeRadio('0')
- this.getGroupList()
- },
- methods: {
- changeRadio(day) {
- const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]
- this.$set(this.filters, 'selDate', arr)
- this.getList()
- },
- handleSub() {
- this.$refs.ruleForm.validate((valid) => {
- if (valid) {
- alert('submit!')
- }
- })
- },
- 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
- platformWorkReportPage({
- ...filters,
- queryDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- queryDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
- }).then(res => {
- this.loading = false
- this.list = res || []
- this.list.forEach(item => {
- item.useRata = item.useRata + '%'
- item.workCountTime = item.workCountTime + '鏃�'
- // item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�')
- })
- }, () => {
- this.loading = false
- })
- },
- clear() {
- this.filters = {
- fastdate: 0,
- selDate: []
- }
- this.changeRadio('0')
- },
- handleSizeChange(capacity) {
- this.pagination.pageSize = capacity
- this.getList()
- }
- }
-}
-</script>
-
-<style></style>
diff --git a/server/emaysms/src/main/java/cn/emay/sdk/EmayTool.java b/server/emaysms/src/main/java/cn/emay/sdk/EmayTool.java
index 8d3b9ee..9000dd2 100644
--- a/server/emaysms/src/main/java/cn/emay/sdk/EmayTool.java
+++ b/server/emaysms/src/main/java/cn/emay/sdk/EmayTool.java
@@ -22,6 +22,8 @@
import cn.emay.sdk.core.dto.sms.response.RetrieveReportResponse;
import cn.emay.sdk.core.dto.sms.response.SmsResponse;
import cn.emay.sdk.util.exception.SDKParamsException;
+import cn.emay.sdk.util.json.gson.JsonObject;
+import netscape.javascript.JSObject;
public class EmayTool {
private static SmsSDKClient client ;
@@ -43,7 +45,7 @@
}
public static void main(String[] args) throws SDKParamsException, IOException {
new EmayTool("www.btom.cn",8080,"8SDK-EMY-6699-RIXTP","5EA482CE6A904271")
- .sendSingleSms("15345690849","銆愯眴绫崇鎶�銆戣繖鏄垜浠殑绗竴鏉$煭淇″摝");
+ .sendSingleSms("15345690849","銆愰槣瀹侀槣閾佹姇璧勬湁闄愬叕鍙搞�戣繖鏄垜浠殑绗竴鏉$煭淇″摝");
// sendBatchOnlySms();
// sendBatchSms();
// sendPersonalitySms();
@@ -66,7 +68,7 @@
if (result.getCode().equals("SUCCESS")) {
System.out.println("璇锋眰鎴愬姛");
SmsResponse response = result.getResult();
- System.out.println("sendSingleSms:" + response.toString());
+ System.out.println("sendSingleSms:" + response.toString());
return true;
} else {
System.out.println("璇锋眰澶辫触");
diff --git a/server/emaysms/src/main/java/cn/emay/sdk/util/DateUtil.java b/server/emaysms/src/main/java/cn/emay/sdk/util/DateUtil.java
index 675b4f2..72834e9 100644
--- a/server/emaysms/src/main/java/cn/emay/sdk/util/DateUtil.java
+++ b/server/emaysms/src/main/java/cn/emay/sdk/util/DateUtil.java
@@ -150,13 +150,8 @@
* 姝f暟涔嬪悗鐨勬煇澶╋紝璐熸暟涔嬪墠鏌愬ぉ
* @param type
* 杩斿洖鏁版嵁绫诲瀷锛屽紑濮�00:00:00 缁撴潫 23:59:59鎴栧綋
- *
* ex :
- *
- * getOtherDay(new Date(), -1, ""); 鍓嶄竴澶╁綋鍓嶆椂鍒嗙
- *
* getOtherDay(new Date(), -1, "start"); 鍓嶄竴澶╁紑濮嬫椂闂�00:00:00
- *
* getOtherDay(new Date(), -1, "end"); 鍓嶄竴澶╃粨鏉熸椂闂�23:59:59
* @return
*/
diff --git a/server/emaysms/src/main/java/cn/emay/sdk/util/GZIPUtils.java b/server/emaysms/src/main/java/cn/emay/sdk/util/GZIPUtils.java
index a0d53e1..e2cf46b 100644
--- a/server/emaysms/src/main/java/cn/emay/sdk/util/GZIPUtils.java
+++ b/server/emaysms/src/main/java/cn/emay/sdk/util/GZIPUtils.java
@@ -56,8 +56,6 @@
/**
* 鏁版嵁鍘嬬缉
*
- * @param is
- * @param os
* @throws Exception
*/
public static byte[] compress(byte[] bytes) throws IOException {
@@ -82,8 +80,6 @@
/**
* 鏁版嵁瑙e帇
- *
- * @param in
* @return
* @throws IOException
*/
diff --git a/server/startsh/startup.bat b/server/startsh/startup.bat
new file mode 100644
index 0000000..13fd5be
--- /dev/null
+++ b/server/startsh/startup.bat
@@ -0,0 +1,6 @@
+@echo off
+START "system_gateway" javaw -jar system_gateway.jar
+START "admin_interface" javaw -jar admin_interface.jar
+START "admin_timer" javaw -jar admin_timer.jar
+START "system_timer" javaw -jar system_timer.jar
+pause
\ No newline at end of file
diff --git a/server/system_gateway/src/main/resources/application-dev.yml b/server/system_gateway/src/main/resources/application-dev.yml
index f119388..dc9c91c 100644
--- a/server/system_gateway/src/main/resources/application-dev.yml
+++ b/server/system_gateway/src/main/resources/application-dev.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/server/system_gateway/src/main/resources/application-test.yml b/server/system_gateway/src/main/resources/application-test.yml
index cc9c87d..2e7c89c 100644
--- a/server/system_gateway/src/main/resources/application-test.yml
+++ b/server/system_gateway/src/main/resources/application-test.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/server/system_gateway/src/main/resources/bootstrap-dev.yml b/server/system_gateway/src/main/resources/bootstrap-dev.yml
index 2066005..a4c7cd6 100644
--- a/server/system_gateway/src/main/resources/bootstrap-dev.yml
+++ b/server/system_gateway/src/main/resources/bootstrap-dev.yml
@@ -1,13 +1,13 @@
spring:
cloud:
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
# namespace: dmvisit
- namespace: dev_renkang
+ namespace: funingyunwei_dev
username: nacos
password: nacos
gateway:
diff --git a/server/system_gateway/src/main/resources/bootstrap-test.yml b/server/system_gateway/src/main/resources/bootstrap-test.yml
index 351bfe7..4ccd298 100644
--- a/server/system_gateway/src/main/resources/bootstrap-test.yml
+++ b/server/system_gateway/src/main/resources/bootstrap-test.yml
@@ -1,12 +1,12 @@
spring:
cloud:
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: funing_test
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_test
# namespace: dev_renkang
username: nacos
password: nacos
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 8ecd0a5..1375e72 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -4,8 +4,8 @@
application:
name: system_gateway
# 瀹夊叏閰嶇疆
- security:
# 楠岀鍏挜鍦板潃
+ security:
oauth2:
authorizationserver:
token-uri: https://
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemRoleBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemRoleBizImpl.java
index 33b987b..934227f 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemRoleBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemRoleBizImpl.java
@@ -22,6 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -94,14 +95,16 @@
SystemRolePermission deleteDto = new SystemRolePermission();
deleteDto.setRoleId(dto.getRoleId());
systemRolePermissionService.delete(deleteDto);
+ List<SystemRolePermission> newList = new ArrayList<>();
// 鏂板鏂扮殑鏉冮檺
for (Integer permissionId : dto.getPermissionIds()) {
SystemRolePermission newRolePermission = new SystemRolePermission();
newRolePermission.setRoleId(dto.getRoleId());
newRolePermission.setPermissionId(permissionId);
newRolePermission.setCreateUser(dto.getCreateUser());
- systemRolePermissionService.create(newRolePermission);
+ newList.add(newRolePermission);
}
+ systemRolePermissionService.createList(newList);
}
@Override
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 29ead0a..528e092 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
@@ -50,6 +50,8 @@
public static final String HK_HOST ="HK_HOST" ;
public static final String HK_APPKEY ="HK_APPKEY" ;
public static final String LOGIN_OUT_URL ="LOGIN_OUT" ;
+
+ public static boolean DEALING_DUANLUQI_CLOSE = false;
public static final String HK_APPSECRET ="HK_APPSECRET" ;
public static final String HK_HTTPS ="HK_HTTPS" ;
public static final String HK_PUSH_URL = "HK_PUSH_URL";
@@ -108,7 +110,16 @@
public static final String INTERVAL = "INTERVAL";
public static final String USE_CAR_TAKE_CARE = "USE_CAR_TAKE_CARE";
-
+ //绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱鐐� 4骞挎挱璁惧 5鏂矾鍣ㄧ┖寮� 6鐢佃〃
+ public interface DEVICE_TYPE{
+ public static final int door = 0;
+ public static final int park = 1;
+ public static final int led = 2;
+ public static final int broadcaset = 3;
+ public static final int broadcasetChannel = 4;
+ public static final int duanluqi = 5;
+ public static final int dianbiao = 6;
+ }
// 鍔冲姟鏉ヨ閰嶇疆
@@ -159,6 +170,11 @@
public static final String EVENT_FILES_PRIVATE_DOMAIN ="EVENT_FILES_PRIVATE_DOMAIN" ;
public static final String EVENT_FILES_PUBLIC_DOMAIN ="EVENT_FILES_PUBLIC_DOMAIN" ;
public static final String YW_CONTRACT_FILE = "YW_CONTRACT_FILE";
+ public static final String XUNJIAN ="XUNJIAN" ;
+ public static final String XJ_POINT_PREFIX ="XJ_POINT_PREFIX" ;
+ public static final String XJ_POINT_CODE_LENGTH ="XJ_POINT_CODE_LENGTH" ;
+ public static final String XJ_POINT_QRCODE_URL ="XJ_POINT_QRCODE_URL" ;
+ public static final String XJ_RERIRECT_URI ="XJ_RERIRECT_URI" ;
public static boolean DEALING_HK_SYNCPRIVILEGE= false;
public static boolean DEALING_HK_SYNCDEVICE = false;
public static boolean DEALING_HK_SYNCPLATFORM = false;
@@ -250,6 +266,12 @@
return sb.toString();
}
+
+ public static String formartNumString(int length, long l) {
+
+ return String.format("%0"+length+"d",l );
+ }
+
public interface VisitIccmStatus{
//璁垮鐘舵��(0:鏈鍒�,1:宸茬鍒�,2:宸茬閫�,3:婊炵暀,4:鏈闂�,5:鑷姩绛剧,6:鏈閫�)
int waitSign = 0;
@@ -508,6 +530,7 @@
public static final String WX_PLATFORM = "WX_PLATFORM";
public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN";
+ public static final String WX_AUTH_URL = "WX_AUTH_URL";
public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID";
public static final String WX_PLATFORM_SECRET = "WX_PLATFORM_SECRET";
public static final String WX_PLATFORM_AUDIT_VISIT = "WX_PLATFORM_AUDIT_VISIT";
@@ -809,8 +832,8 @@
}
public static void main(String[] args) {
- System.out.println(Constants.checkCarNo("鐨朅10991"));
- System.out.println(Constants.checkCarNo("鐨朅A10991"));
+ System.out.println(Constants.formartNumString(8,1023492384023480l));
+// System.out.println(Constants.checkCarNo("鐨朅A10991"));
// System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
// System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
new file mode 100644
index 0000000..716e7b5
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
@@ -0,0 +1,60 @@
+package com.doumee.dao.system.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/05/04 18:21
+ */
+@Data
+@ApiModel("瀵煎叆鐗╂枡淇℃伅")
+public class ImportMaterialDTO {
+
+ @ApiModelProperty(value = "鐗╂枡缂栧彿")
+ @ExcelColumn(name="鐗╂枡缂栧彿",index = 0,width = 10)
+ private String code;
+
+ @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
+ private String name;
+
+ @ApiModelProperty(value = "鐗╂枡鍒嗙被")
+ @ExcelColumn(name="鐗╂枡鍒嗙被",index = 2,width = 10)
+ private String categoryName;
+
+ @ApiModelProperty(value = "鐗╂枡瀛愬垎绫�")
+ @ExcelColumn(name="鐗╂枡瀛愬垎绫�",index = 3,width = 10)
+ private String categoryChildName;
+
+ @ApiModelProperty(value = "鏉$爜")
+ @ExcelColumn(name="鏉$爜",index = 4,width = 10)
+ private String qrcode;
+
+ @ApiModelProperty(value = "鍝佺墝")
+ @ExcelColumn(name="鍝佺墝",index = 5,width = 10)
+ private String brand;
+
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 6,width = 10)
+ private String attr;
+
+ @ApiModelProperty(value = "鍗曚綅")
+ @ExcelColumn(name="鍗曚綅",index = 7,width = 10)
+ private String unitName;
+
+ @ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笅闄愶級", example = "1")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級",index = 8,width = 16)
+ private BigDecimal minStock;
+
+ @ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笂闄愶級", example = "1")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級",index = 9,width = 16)
+ private BigDecimal maxStock;
+
+
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
index b3fcb94..3eea8fc 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
@@ -88,4 +88,6 @@
* @date 2023/03/21 14:49
*/
long count(SystemRolePermission systemRolePermission);
+
+ Integer createList(List<SystemRolePermission> newList);
}
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
index da0131d..8f6bee6 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
@@ -34,6 +34,14 @@
systemRolePermissionMapper.insert(systemRolePermission);
return systemRolePermission.getId();
}
+ @Override
+ public Integer createList(List<SystemRolePermission> list) {
+ if(list ==null || list.size() == 0){
+ return null;
+ }
+ systemRolePermissionMapper.insert(list);
+ return list.size();
+ }
@Override
public void deleteById(Integer id) {
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index 3dd4077..3a31274 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -98,4 +98,11 @@
@GetMapping("/timer/yw/ywPatrolSchemeTaskTimer")
ApiResponse ywPatrolSchemeTaskTimer();
+ @ApiOperation("銆愰槣瀹佽繍缁淬�戝畾鏃舵洿鏂版埧婧愮璧佺姸鎬�")
+ @GetMapping("/timer/yw/ywRoomStatusTimer")
+ ApiResponse ywRoomStatusTimer();
+
+
+
+
}
diff --git a/server/system_timer/src/main/resources/application-dev.yml b/server/system_timer/src/main/resources/application-dev.yml
index 5ad7897..938c527 100644
--- a/server/system_timer/src/main/resources/application-dev.yml
+++ b/server/system_timer/src/main/resources/application-dev.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
redis:
diff --git a/server/system_timer/src/main/resources/application-pro.yml b/server/system_timer/src/main/resources/application-pro.yml
index ee05abc..9ef34e8 100644
--- a/server/system_timer/src/main/resources/application-pro.yml
+++ b/server/system_timer/src/main/resources/application-pro.yml
@@ -11,10 +11,7 @@
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
-
-
debug_model: false
-
captcha_check: true
# Swagger閰嶇疆
diff --git a/server/system_timer/src/main/resources/application-test.yml b/server/system_timer/src/main/resources/application-test.yml
index 55107e2..9d47502 100644
--- a/server/system_timer/src/main/resources/application-test.yml
+++ b/server/system_timer/src/main/resources/application-test.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
redis:
diff --git a/server/system_timer/src/main/resources/bootstrap-dev.yml b/server/system_timer/src/main/resources/bootstrap-dev.yml
index 53c54ce..21ef2c5 100644
--- a/server/system_timer/src/main/resources/bootstrap-dev.yml
+++ b/server/system_timer/src/main/resources/bootstrap-dev.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,7 +22,7 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: dev_renkang
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_dev
username: nacos
password: nacos
\ No newline at end of file
diff --git a/server/system_timer/src/main/resources/bootstrap-test.yml b/server/system_timer/src/main/resources/bootstrap-test.yml
index 13e1c1c..4e04742 100644
--- a/server/system_timer/src/main/resources/bootstrap-test.yml
+++ b/server/system_timer/src/main/resources/bootstrap-test.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,7 +22,7 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: funing_test
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_test
username: nacos
password: nacos
\ No newline at end of file
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 05a83ce..107b53b 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: pro
+ active: dev
application:
name: systemTimer
# 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
index eda709f..4d0d49f 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
@@ -83,6 +83,17 @@
}
+
+ @ApiOperation("瀹氭椂鏇存柊鎴挎簮绉熻祦鐘舵��")
+ @GetMapping("/ywRoomStatusTimer")
+ public ApiResponse ywRoomStatusTimer() {
+ ywContractService.updRentContractStatus();
+ ywContractService.updRoomLeaseNowStatus();
+ return ApiResponse.success("瀹氭椂鏇存柊鎴挎簮绉熻祦鐘舵�佷换鍔℃墽琛屼腑");
+ }
+
+
+
@ApiOperation("瀹氭椂鏇存柊redis鏁版嵁")
@GetMapping("/ywUpdRedisDataTimer")
public ApiResponse ywUpdRedisDataTimer() {
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap-dev.yml b/server/visits/admin_timer/src/main/resources/bootstrap-dev.yml
index 700974a..0c21840 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap-dev.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap-dev.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,7 +22,7 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: dev_renkang
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_dev
username: nacos
password: nacos
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap-test.yml b/server/visits/admin_timer/src/main/resources/bootstrap-test.yml
index dd58dce..d5944e2 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap-test.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap-test.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,7 +22,7 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: funing_test
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_test
username: nacos
password: nacos
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
index 43cf1d2..8cf21fe 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+
/**
* @author 姹熻箘韫�
* @date 2023/11/30 15:33
@@ -36,25 +37,55 @@
@PostMapping("/create")
@CloudRequiredPermission("business:device:create")
public ApiResponse create(@RequestBody Device device,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ device.setLoginUserInfo(this.getLoginUser(token));
return ApiResponse.success(deviceService.create(device));
}
@ApiOperation("鏍规嵁ID鍒犻櫎")
@GetMapping("/delete/{id}")
@CloudRequiredPermission("business:device:delete")
- public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
- deviceService.deleteById(id);
+ public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ deviceService.deleteById(id,this.getLoginUser(token));
return ApiResponse.success(null);
}
@ApiOperation("淇敼鏄惁闂ㄧ鍏ュ彛")
@PostMapping("/updateEntranceById")
- @CloudRequiredPermission("business:company:update")
+ @CloudRequiredPermission("business:device:update")
public ApiResponse updateStatusById(@RequestBody Device param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
Device d = new Device();
d.setId(param.getId());
d.setEditDate(new Date());
d.setIsEntrance(Constants.formatIntegerNum(param.getIsEntrance()));
+ d.setLoginUserInfo(this.getLoginUser(token));
deviceService.updateById(d);
+ return ApiResponse.success(null);
+ }
+ @ApiOperation("淇敼鏄惁绯荤粺浣跨敤")
+ @PostMapping("/updateUsedById")
+ @CloudRequiredPermission("business:device:update")
+ public ApiResponse updateUsedById(@RequestBody Device param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ Device d = new Device();
+ d.setId(param.getId());
+ d.setEditDate(new Date());
+ d.setLoginUserInfo(this.getLoginUser(token));
+ d.setIsUsed(Constants.formatIntegerNum(param.getIsUsed()));
+ deviceService.updateUsedById(d);
+ return ApiResponse.success(null);
+ }
+ @ApiOperation("鎵ц鐢佃〃寮�鍏抽椄鎿嶄綔")
+ @PostMapping("/dianbaoCmd")
+ @CloudRequiredPermission("business:device:update")
+ public ApiResponse dianbaoCmd(@RequestBody Device param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ param.setLoginUserInfo(this.getLoginUser(token));
+ deviceService.dianbaoCmd(param);
+ return ApiResponse.success(null);
+ }
+ @ApiOperation("璇诲彇鐢佃〃鏁版嵁锛堢數鑳姐�佹椂闂村拰鐘舵�侊級")
+ @PostMapping("/dianbiaoData")
+ @CloudRequiredPermission("business:device:update")
+ public ApiResponse dianbiaoData(@RequestBody Device param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ param.setLoginUserInfo(this.getLoginUser(token));
+ deviceService.dianbiaoData(param);
return ApiResponse.success(null);
}
@@ -67,7 +98,7 @@
for (String id : idArray) {
idList.add(Integer.valueOf(id));
}
- deviceService.deleteByIdInBatch(idList);
+ deviceService.deleteByIdInBatch(idList,this.getLoginUser(token));
return ApiResponse.success(null);
}
@@ -75,6 +106,8 @@
@PostMapping("/updateById")
@CloudRequiredPermission("business:device:update")
public ApiResponse updateById(@RequestBody Device device,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+
+ device.setLoginUserInfo(this.getLoginUser(token));
deviceService.updateById(device);
return ApiResponse.success(null);
}
@@ -82,9 +115,15 @@
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
@CloudRequiredPermission("business:device:query")
- public ApiResponse<PageData<Device>> findPage (@RequestBody PageWrap<Device> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ public ApiResponse<PageData<Device>> findPage (@RequestBody PageWrap<Device> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
return ApiResponse.success(deviceService.findPage(pageWrap));
}
+ @ApiOperation("鏌ヨ鍏ㄩ儴")
+ @PostMapping("/list")
+ @CloudRequiredPermission("business:device:query")
+ public ApiResponse<List<Device>> findPage (@RequestBody Device model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(deviceService.findList(model));
+ }
@ApiOperation("瀵煎嚭Excel")
@PostMapping("/exportExcel")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceDataCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceDataCloudController.java
new file mode 100644
index 0000000..bc050bd
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceDataCloudController.java
@@ -0,0 +1,43 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.DeviceData;
+import com.doumee.service.business.DeviceDataService;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Api(tags = "璁惧鏁版嵁淇℃伅琛�")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/deviceData")
+public class DeviceDataCloudController extends BaseController {
+
+ @Autowired
+ private DeviceDataService deviceDataService;
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:device:query")
+ public ApiResponse<PageData<DeviceData>> findPage (@RequestBody PageWrap<DeviceData> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(deviceDataService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:device:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<DeviceData> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ ExcelExporter.build(DeviceData.class).export(deviceDataService.findPage(pageWrap).getRecords(), "璁惧淇℃伅琛�", response);
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
index 1d6d9d6..4916c65 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
@@ -14,6 +14,7 @@
import com.doumee.dao.business.vo.YwContractBillCallDataVO;
import com.doumee.dao.business.vo.YwContractBillDataVO;
import com.doumee.service.business.YwContractBillService;
+import com.doumee.service.business.YwContractService;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -38,6 +39,9 @@
@Autowired
private SmsEmailServiceImpl smsEmailService;
+
+ @Autowired
+ private YwContractService ywContractService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -129,6 +133,15 @@
return ApiResponse.success("鐢熸垚鎴愬姛");
}
+ @LoginNoRequired
+ @ApiOperation("鏇存柊鎴挎簮绉熻祦鐘舵��")
+ @GetMapping("/dealRoomStatus")
+ public ApiResponse dealRoomStatus() {
+ ywContractService.updRentContractStatus();
+ ywContractService.updRoomLeaseNowStatus();
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
@ApiOperation("鑾峰彇寰呭鐞嗚处鍗�")
@GetMapping("/getWaitDealList")
@CloudRequiredPermission("business:ywcontractbill:query")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
index 4470c79..1929afc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwMaterialController.java
@@ -10,13 +10,15 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwMaterial;
import com.doumee.service.business.YwMaterialService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+import io.swagger.annotations.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -91,7 +93,7 @@
@PostMapping("/exportExcel")
@CloudRequiredPermission("business:ywmaterial:exportExcel")
public void exportExcel (@RequestBody PageWrap<YwMaterial> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
- ExcelExporter.build(YwMaterial.class).export(ywMaterialService.findPage(pageWrap).getRecords(), "杩愮淮璧勪骇淇℃伅琛�", response);
+ ExcelExporter.build(YwMaterial.class).export(ywMaterialService.findPage(pageWrap).getRecords(), "鐗╂枡淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
@@ -100,4 +102,15 @@
public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
return ApiResponse.success(ywMaterialService.getDetail(id));
}
+
+
+ @ApiOperation("鐗╂枡淇℃伅瀵煎叆")
+ @PostMapping("/importMaterialBatch")
+ @CloudRequiredPermission("business:ywmaterial:query")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+ })
+ public ApiResponse importMaterialBatch(@ApiParam(value = "file") MultipartFile file,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(ywMaterialService.importMaterialBatch(file,getLoginUser(token)));
+ }
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java
index af02236..94e9c2c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java
@@ -12,6 +12,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.doumee.config.annotation.CloudRequiredPermission;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -70,6 +71,14 @@
return ApiResponse.success(null);
}
+ @ApiOperation("鎵归噺瀵煎嚭浜岀淮鐮�")
+ @PostMapping("/exportQrcodes")
+ @CloudRequiredPermission("business:ywpatrolpoint:qrcode")
+ public void exportQrcodes(@RequestBody YwPatrolPoint ywPatrolPoint,HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ ywPatrolPointService.exportQrcodes(ywPatrolPoint.getId(),response);
+ }
+
+
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
@CloudRequiredPermission("business:ywpatrolpoint:query")
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
index d9853fc..96054ed 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,9 +22,9 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
# namespace: dmvisit
- namespace: dev_renkang
+ namespace: funingyunwei_dev
username: nacos
password: nacos
# swagger閰嶇疆
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap-test.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap-test.yml
index ab2c361..385cbc6 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap-test.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap-test.yml
@@ -10,7 +10,7 @@
# 鏆傛椂鍏抽棴缂撳瓨
enabled: false
nacos:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
username: nacos
password: nacos
# config:
@@ -22,7 +22,7 @@
# group: dev
# data-id: com.doumee.meeting.admin
discovery:
- server-addr: http://175.27.187.84:8848 #閰嶇疆Nacos鍦板潃
- namespace: funing_test
+ server-addr: http://192.168.0.7:8848 #閰嶇疆Nacos鍦板潃
+ namespace: funingyunwei_test
username: nacos
password: nacos
\ No newline at end of file
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/WaterElectricityUtil.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/WaterElectricityUtil.java
new file mode 100644
index 0000000..682394d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/WaterElectricityUtil.java
@@ -0,0 +1,600 @@
+package com.doumee.core.device;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.Socket;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+public class WaterElectricityUtil {
+
+
+ private static double parseBcdToDouble(byte[] bcdBytes) {
+ StringBuilder sb = new StringBuilder();
+ for (byte b : bcdBytes) {
+ sb.append(String.format("%02X", b));
+ }
+ try {
+ return Double.parseDouble(sb.toString());
+ } catch (NumberFormatException e) {
+ return 0.0;
+ }
+ }
+
+ private static byte[] reverseAddress(String address) {
+ byte[] result = new byte[6];
+ for (int i = 0; i < 6; i++) {
+ if (i * 2 + 1 < address.length()) {
+ String hex = address.substring(i * 2, Math.min((i + 1) * 2, address.length()));
+ result[i] = (byte) Integer.parseInt(hex, 16);
+ }
+ }
+ return result;
+ }
+
+ private static byte calculateChecksum(byte[] data, int offset, int length) {
+ int sum = 0;
+ for (int i = offset; i < offset + length; i++) {
+ sum += data[i] & 0xFF;
+ }
+ return (byte) (sum & 0xFF);
+ }
+
+ private static byte[] hexStringToByteArray(String hex) {
+ int len = hex.length();
+ byte[] data = new byte[len / 2];
+ for (int i = 0; i < len; i += 2) {
+ data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16));
+ }
+ return data;
+ }
+
+ public static byte calcCS(byte[] data) {
+ int sum = 0;
+ for (byte b : data) {
+ sum += b & 0xFF;
+ }
+ return (byte) (sum & 0xFF);
+ }
+
+
+ public static byte[] getRequestParam(int feCount, byte[] address, byte control, byte[] data) throws IOException {
+
+ ///FEFEFE 68 999999999999 68 01 02 65 F3C1 16
+// byte b = (byte) 0xFE;
+// byte[] msg = {(byte) 0xFE,0x68};
+ ByteArrayOutputStream frame = new ByteArrayOutputStream();
+ for (int i = 0; i < feCount; i++) {
+ frame.write(0xFE);
+ }
+ // 2. 甯ц捣濮嬬
+ frame.write(0x68);
+ // 3. 鍦板潃鍩�
+ frame.write(address);
+ // 4. 鍐嶆甯ц捣濮嬬
+ frame.write(0x68);
+ // 5. 鎺у埗鐮�
+ frame.write(control);
+ // 6. 鏁版嵁闀垮害
+ frame.write(data.length);
+ // 7. 鏁版嵁鍩�
+ frame.write(data);
+ // 8. 璁$畻 CS锛堜粠绗竴涓� 68 寮�濮嬶級
+ byte[] csData = frame.toByteArray();
+ int start = feCount; // 绗竴涓� 68 鐨勪綅缃�
+ byte cs = calcCS(Arrays.copyOfRange(csData, start, csData.length));
+ frame.write(cs);
+ // 9. 缁撴潫绗�
+ frame.write(0x16);
+ return frame.toByteArray();
+ }
+
+
+ private static byte[] readDeviceData(String ip, int port, byte[] data) {
+ Socket socket = null;
+ try {
+ socket = new Socket(ip, port);
+ socket.setSoTimeout(5000);
+ java.io.OutputStream out = socket.getOutputStream();
+ java.io.InputStream in = socket.getInputStream();
+ out.write(data);
+ out.flush();
+ // 璇诲彇鍝嶅簲
+ byte[] buffer = new byte[2048];
+ int bytesRead = in.read(buffer);
+ byte[] response = Arrays.copyOf(buffer, bytesRead);
+ // 瑙f瀽鍝嶅簲鏁版嵁
+ return response;
+ } catch (Exception e) {
+// e.printStackTrace();
+ throw new RuntimeException("Failed to read from device", e);
+ } finally {
+ if (socket != null) {
+ try {
+ socket.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ }
+
+ private static String bytesToHex(byte[] bytes) {
+ StringBuilder hexString = new StringBuilder();
+ for (byte b : bytes) {
+ String hex = String.format("%02X", b & 0xFF);
+ hexString.append(hex);
+ }
+ return hexString.toString();
+ }
+
+ /**
+ * 灏�12浣嶅崄杩涘埗鍦板潃杞崲涓�6瀛楄妭BCD灏忕搴忓湴鍧�
+ *
+ * @param decimalAddress 12浣嶅崄杩涘埗鍦板潃瀛楃涓�
+ * @return 6瀛楄妭鐨凚CD鍦板潃锛堝皬绔簭锛�
+ */
+ private static byte[] convertToBCDAddress(String decimalAddress) {
+ // 1. 楠岃瘉杈撳叆
+ if (decimalAddress == null || decimalAddress.length() != 12) {
+ throw new IllegalArgumentException("鍦板潃蹇呴』鏄�12浣嶅崄杩涘埗鏁�");
+ }
+ if (!decimalAddress.matches("\\d{12}")) {
+ throw new IllegalArgumentException("鍦板潃蹇呴』鍏ㄩ儴鏄暟瀛�");
+ }
+ // 2. 鍑嗗缁撴灉鏁扮粍锛�6瀛楄妭锛�
+ byte[] result = new byte[6];
+ // 3. 浠庡彸鍚戝乏姣�2浣嶄竴缁勫鐞嗭紙灏忕搴忥級
+ for (int i = 0; i < 6; i++) {
+ // 璁$畻鍦ㄥ瓧绗︿覆涓殑浣嶇疆锛堜粠鍙冲悜宸︼級
+ int strIndex = 10 - (i * 2); // 鍥犱负瑕佸彇涓や綅锛屾墍浠ユ槸10,8,6,4,2,0
+ String twoDigits = decimalAddress.substring(strIndex, strIndex + 2);
+ // 灏嗕袱浣嶅崄杩涘埗鏁拌浆鎹负BCD瀛楄妭
+ // 渚嬪锛�"25" -> 0x25
+ result[i] = (byte) Integer.parseInt(twoDigits, 16);
+ }
+ // 娉ㄦ剰锛氫笂闈㈢殑寰幆椤哄簭宸茬粡鏄皬绔簭锛宺esult[0]瀛樼殑鏄渶浣庝袱浣�
+ return result;
+ }
+
+
+ private static String subByte(String value, byte sub) {
+ byte b = (byte) Integer.parseInt(value, 16);
+ int result = (b & 0xFF) - (sub & 0xFF);
+ // 纭繚缁撴灉鍦�0-255鑼冨洿鍐咃紙澶勭悊璐熸暟锛�
+ if (result < 0) {
+ result += 256;
+ }
+ String hexResult = String.format("%02X", result & 0xFF);
+ return hexResult;
+
+ }
+ private static String addByte(String value, byte add) {
+ byte b = (byte) Integer.parseInt(value, 16);
+ int result = (b & 0xFF) + (add & 0xFF);
+ // 纭繚缁撴灉鍦�0-255鑼冨洿鍐咃紙澶勭悊璐熸暟锛�
+ if (result < 0) {
+ result += 256;
+ }
+ String hexResult = String.format("%02X", result & 0xFF);
+ return hexResult;
+
+ }
+
+
+ private static String[] parseSub33Reverse(String msg, int n) {
+ //33333333 3333
+ String[] nArr = new String[n];
+
+ byte _33 = 0x33;
+ for (int i = 0; i < n; i++) {
+ int index = i * 2;
+ String twoDigits = msg.substring(index, index + 2);
+ String hexResult = subByte(twoDigits, _33);
+ // 鍙嶅悜瀛樺偍锛歯Arr[n - i - 1] 瀹炵幇鍙嶈浆
+ nArr[n - i - 1] = hexResult;
+ }
+ return nArr;
+ }
+
+
+ public static Map<String, Object> water(String ip, int port, String address) throws IOException {
+ byte[] address_buf = convertToBCDAddress(address);
+ byte control = 0x01;
+ byte[] data = {0x43, (byte) 0xC3};
+ byte[] bufReq = getRequestParam(3, address_buf, control, data);
+ byte[] resp = readDeviceData(ip, port, bufReq);
+ String hex = bytesToHex(resp);
+
+ //FEFEFE6899254652010068810843C3333433333333E916
+// System.out.println(hex);
+ String msg = hex.substring(30, 30 + 8 + 4);
+
+ String[] nArr = parseSub33Reverse(msg, 4);
+ Double total = strArrNum(nArr);
+ Map<String, Object> r = new HashMap<>();
+ r.put("total", total);
+
+ msg = hex.substring(40, 40 + 2);
+ byte sub = 0x33;
+ String hexResult = subByte(msg, sub);
+ String v = hexToBinary(hexResult);
+ /**
+ * Y0.B0銆�瀛樺偍鍣ㄧ姸鎬� (1:鏁呴殰,0:姝e父)锛�
+ * Y0.B1銆�闃�闂ㄧ姸鎬� (1:鏁呴殰,0:姝e父)锛�
+ * Y0.B2銆�淇″彿鐘舵�� (1:鏁呴殰,0:姝e父)锛�
+ * Y0.B3銆�鐢垫睜鐘舵�� (1:鏁呴殰,0:姝e父)锛�
+ * Y0.B4銆�淇濈暀锛�
+ * Y0.B5銆�淇濈暀锛�
+ * Y0.B6銆�姘磋〃閫氳鐘舵�侊紙 1:鏁呴殰,0:姝e父锛夛紱
+ * Y0.B7銆�闃�闂ㄥ紑鍏崇姸鎬� (1: 鍚�,0:寮�)锛�
+ * 娉ㄦ剰锛氱姸鎬佷綅鏃犳椂涓� 0锛堟甯革級
+ * 绾㈣壊锛氭棤璁板繂鐩磋琛ㄧ殑鐘舵��
+ */
+
+ r.put("status", v);
+ return r;
+ }
+
+
+ private static void electricityTotal(String ip, int port, byte[] addressBuf, Map<String, Object> map) throws IOException {
+ byte control = 0x11;
+ byte[] data = {0x33, 0x33, 0x33, 0x33};
+
+ byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+ byte[] respBuf = readDeviceData(ip, port, bufReq);
+ String resp = bytesToHex(respBuf);
+ String msg = resp.substring(28 + 8, 28 + 8 + 8);
+ String[] nArr = parseSub33Reverse(msg, 4);
+ Double total = strArrNum(nArr);
+ map.put("total", total);
+ }
+
+ /**
+ * 鐢佃〃璺抽椄銆佸悎闂�
+ * @param ip
+ * @param port
+ * @param addressBuf
+ * @param type 锛�0璺抽椄 1鍚堥椄锛�
+ * @param date 鏈夋晥鎴鏃堕棿
+ * @throws IOException
+ */
+ private static boolean electricityControl(String ip, int port, byte[] addressBuf,int type, String date) {
+ /**
+ * N1涓烘帶鍒跺懡浠ょ被鍨嬶紝N1=1AH浠h〃璺抽椄4D锛孨1=1BH浠h〃鍚堥椄4F鍏佽N2淇濈暀
+ * 鏉冮檺瀵嗙爜鎿嶄綔浠g爜锛歅AP2P1P0C3C2C1C0(02/223203/111111H)
+ * 4F
+ * TCP/IP鐩存帴鍚堥椄鎸囦护[2026骞�03鏈�09鏃� 10:57:39]
+ * Tx ->FEFEFEFE68615121010000681C1035366555776655444F33568843433659E016
+ * TCP/IP鐩存帴鍚堥椄鎸囦护[2026骞�03鏈�09鏃� 10:57:40]
+ * Rx <-FEFEFEFE68615121010000689C004016
+ * 鐩存帴鍚堥椄鎵ц鎴愬姛锛� 9C
+ */
+ try {
+ byte control = 0x1C;
+ byte n1 = 0x4D;
+ if(type==1){
+ n1 = 0x4F;
+ }
+// byte[] data0 = {0x02, 0x03, 0x32, 0x22,0x44,0x33,0x22,0x11};
+ byte[] data = {0x35, 0x36, 0x65, 0x55,0x77,0x66,0x55,0x44,n1,0x33,0,0,0,0,0,0};
+ byte[] data2 = getDateBytes(date);
+ for (int i = 0; i < data2.length; i++) {
+ data[10+i]=data2[i];
+ }
+ byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+ String reqt = bytesToHex(bufReq);
+ System.out.println(reqt);
+ byte[] respBuf = readDeviceData(ip, port, bufReq);
+ String resp = bytesToHex(respBuf);
+ System.out.println(resp);
+ //FEFEFEFE68379707010000689C004216
+ String msg = resp.substring(24, 26);
+ return msg.equals("9C");
+ }catch (Exception e){
+
+ }
+ return false;
+ }
+
+ private static byte[] getDateBytes(String dateStr) {
+// String dateStr = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
+ dateStr = dateStr.substring(2);
+ // 1. 楠岃瘉杈撳叆
+ if (dateStr == null || dateStr.length() != 12) {
+ throw new IllegalArgumentException("鏃堕棿蹇呴』鏄�12浣嶅崄杩涘埗鏁�");
+ }
+ if (!dateStr.matches("\\d{12}")) {
+ throw new IllegalArgumentException("鏃堕棿蹇呴』鍏ㄩ儴鏄暟瀛�");
+ }
+ // 2. 鍑嗗缁撴灉鏁扮粍锛�6瀛楄妭锛�
+ byte[] result = new byte[6];
+ // 3. 浠庡彸鍚戝乏姣�2浣嶄竴缁勫鐞嗭紙灏忕搴忥級
+ byte add = 0x33;
+ for (int i = 0; i < 6; i++) {
+ // 璁$畻鍦ㄥ瓧绗︿覆涓殑浣嶇疆锛堜粠鍙冲悜宸︼級
+ int strIndex = 10 - (i * 2); // 鍥犱负瑕佸彇涓や綅锛屾墍浠ユ槸10,8,6,4,2,0
+ String twoDigits = dateStr.substring(strIndex, strIndex + 2);
+ // 灏嗕袱浣嶅崄杩涘埗鏁拌浆鎹负BCD瀛楄妭
+ // 渚嬪锛�"25" -> 0x25
+ int t = Integer.parseInt(twoDigits, 16);
+ int t1 = ( t& 0xFF) + (add & 0xFF);
+ System.out.println(t1+":");
+ result[i] =(byte) t1 ;
+ }
+ // 娉ㄦ剰锛氫笂闈㈢殑寰幆椤哄簭宸茬粡鏄皬绔簭锛宺esult[0]瀛樼殑鏄渶浣庝袱浣�
+ return result;
+ }
+
+
+ private static void electricityStatus(String ip, int port, byte[] addressBuf, Map<String, Object> map) throws IOException {
+ byte control = 0x11;
+ byte[] data = {0x36, 0x38, 0x33, 0x37};
+ byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+ byte[] respBuf = readDeviceData(ip, port, bufReq);
+ String resp = bytesToHex(respBuf);
+ String msg = resp.substring(36, 36 + 4);
+ System.out.println(resp);
+ String[] nArr = parseSub33Reverse(msg, 2);
+ String status = hexToBinary1(nArr);
+// String resp = "FEFEFEFE 68 615121010000 68 91 06 36383337 3333 7916";
+ map.put("status", status);
+ }
+
+ private static void electricityTime(String ip, int port, byte[] addressBuf, Map<String, Object> map) throws IOException {
+ byte control = 0x11;
+ byte[] data = {0x3F, 0x34, 0x33, 0x37};
+ byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+ byte[] respBuf = readDeviceData(ip, port, bufReq);
+ String resp = bytesToHex(respBuf);
+ String msg = resp.substring(36, 36 + 14);
+// System.out.println(msg);
+ String[] nArr = parseSub33Reverse(msg, 7);
+ String ts = hexToBinary1(nArr);
+ String time = "20"+ts.substring(0,6)+ts.substring(8);
+ Date date = getDateByStr(time);
+ System.out.println( formatData(date));
+// String resp = "FEFEFEFE 68 615121010000 68 91 06 36383337 3333 7916";
+ map.put("time", date);
+// map.put("currentTime", formatData(date));
+ }
+ public static Date getDateByStr(String date) {
+ TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
+ if(date!=null ){
+ int i = date.indexOf("+");
+ if(i >0){
+ date = date.substring(0,i);
+ }
+ }
+ DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
+ df.setTimeZone(tz);
+ Date dates = null;
+ try {
+ dates = df.parse(date);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return dates;
+ }
+ public static String formatData(Date date) {
+ DateFormat df = new SimpleDateFormat("yyyy骞碝M鏈坉d鏃H鏃秏m鍒唖s绉�");
+ try {
+ return df.format(date);
+ } catch (Exception e) {
+ }
+ return null;
+ }
+
+ public static Map<String, Object> electricityData(String ip, int port, String address) throws IOException {
+ Map<String, Object> r = new HashMap<>();
+ byte[] addressBuf = convertToBCDAddress(address);
+ electricityTotal(ip, port, addressBuf, r);
+ electricityStatus(ip, port, addressBuf, r);
+ electricityTime(ip, port, addressBuf, r);
+ return r;
+ }
+ public static boolean electricityAct(String ip, int port, String address,int type,String dateStr) {
+ Map<String, Object> r = new HashMap<>();
+ byte[] addressBuf = convertToBCDAddress(address);
+ return electricityControl(ip,port,addressBuf,type,dateStr);
+ }
+ private static String hexToBinary(String hex) {
+ StringBuilder sb = new StringBuilder();
+ for (char c : hex.toCharArray()) {
+ int val = Integer.parseInt(String.valueOf(c), 16);
+ sb.append(String.format("%4s", Integer.toBinaryString(val)).replace(' ', '0'));
+ }
+ return sb.toString();
+ }
+
+ private static String hexToBinary(String[] hexArr) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < hexArr.length; i++) {
+ sb.append(hexToBinary(hexArr[i]));
+ }
+ return sb.toString();
+ }
+ private static String hexToBinary1(String[] hexArr) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < hexArr.length; i++) {
+ sb.append(hexArr[i]);
+ }
+ return sb.toString();
+ }
+
+ private static String addHex(String hex1, String hex2) {
+ int num1 = Integer.parseInt(hex1.replace("0x", ""), 16);
+ int num2 = Integer.parseInt(hex2.replace("0x", ""), 16);
+ int sum = num1 + num2;
+ return "0x" + Integer.toHexString(sum).toUpperCase();
+ }
+
+ private static void testWater() throws IOException {
+ //"00000152462599"; 000152462599
+ //FEFEFE 68 999999999999 68 01(C) 02(L) 65(DI0) F3(DI1) C1(CS鏍¢獙鐮�) 16(缁撴潫绗�)
+ //FEFEFE6899254652010068010243C33016
+ //FEFEFE6899254652010068810843C3333333333333E816
+
+// FEFEFE6899254652010068810843C3333333333333E816
+ String ip = "192.168.1.78";
+ int port = 1030;
+// DeviceData d = readDeviceData(ip, port, "00000152462599");
+// System.out.println(d);
+// String address = "000152462599";
+ String address = "000152462599";
+ //00000152462599
+ byte[] address_buf = convertToBCDAddress(address);
+// byte[] address_buf = hexStringToByteArray(address);
+// System.out.println(buf);
+ /**
+ *
+ * FEFEFE 68 000152462599 68010243C33016
+ * FEFEFE 68 992546520100 68010243C33016
+ */
+ byte control = 0x01;
+ byte[] data = {0x43, (byte) 0xC3};
+ byte[] datas = getRequestParam(3, address_buf, control, data);
+ System.out.println(bytesToHex(datas));
+ System.out.println("FEFEFE6899254652010068010243C33016");
+// datas = hexStringToByteArray("FEFEFE6899254652010068010243C33016");
+ byte[] resp = readDeviceData(ip, port, datas);
+ String r = bytesToHex(resp);
+ System.out.println(r);
+
+ /**
+ *
+ * FEFEFE 68 992546520100 68 01 02 43C3 30 16
+ * FEFEFE 68 992546520100 68 81 08 43C3 33333333 3333 E8 16
+ */
+// String r = "FEFEFE6899254652010068810843C3333333333333E816";
+ String msg = r.substring(30, 30 + 8 + 4);
+ System.out.println(msg);
+ String[] nArr = parseSub33Reverse(msg, 4);
+ System.out.println(strArrNum(nArr));
+// byte d10 = 0x10;
+// byte add = 0x33;
+// String hex = String.format("%02X", (d10 + add) & 0xFF);
+// System.out.println(hex);
+
+// r = addHex("0x10", "0x33");
+// System.out.println(r);
+//
+// r = addHex("0x90", "0x33");
+// System.out.println(r);
+ msg = r.substring(40, 40 + 2);
+ System.out.println(msg);
+
+ byte sub = 0x33;
+ String hexResult = subByte(msg, sub);
+ String v = hexToBinary(hexResult);
+ System.out.println(v);
+ }
+
+
+ /**
+ * 鏈�鍚庝竴浣嶆槸灏忔暟鐐�
+ *
+ * @param nArr
+ * @return
+ */
+ private static Double strArrNum(String[] nArr) {
+ if (nArr == null || nArr.length == 0) {
+ return 0.0;
+ }
+ // 灏嗘墍鏈夐儴鍒嗘嫾鎺ヨ捣鏉�
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < nArr.length; i++) {
+ sb.append(nArr[i]);
+ }
+
+ // 鍦ㄩ�傚綋浣嶇疆鎻掑叆灏忔暟鐐�
+ String combined = sb.toString();
+ int totalLength = combined.length();
+ int decimalLength = nArr[nArr.length - 1].length();
+ // 鎻掑叆灏忔暟鐐�
+ String numberStr = combined.substring(0, totalLength - decimalLength) + "." + combined.substring(totalLength - decimalLength);
+ return Double.parseDouble(numberStr);
+ }
+
+
+ public static void electricityTest() throws IOException {
+ //000001215161
+// FEFEFEFE 68 615121010000 68 11 04 33333333 8516
+// FEFEFEFE6861512101000068910833333333A93333334B16
+// FEFEFEFE6861512101000068910833333333AC3333334E16
+ String ip = "192.168.1.78";
+ int port = 1030;
+
+ String address = "000001215161";
+ byte[] addressBuf = convertToBCDAddress(address);
+
+// byte control = 0x11;
+// byte[] data = {0x33, 0x33, 0x33, 0x33};
+////
+// byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+//// String req = bytesToHex(bufReq);
+////// String param = "FEFEFE68615121010000681104333333338516";
+//// System.out.println(req);
+////// System.out.println(param);
+//// byte[] buf = hexStringToByteArray(param);
+// byte[] respBuf = readDeviceData(ip, port, bufReq);
+// String hex = bytesToHex(respBuf);
+//// System.out.println(hex);
+// String resp = "FEFEFEFE6861512101000068910833333333AC3333334E16";
+//// FEFEFEFE68615121010000 68 91 08 33333333 A9 333333 4B16
+//
+// String msg = resp.substring(28, 28 + 8);
+// System.out.println(msg);
+//
+// String[] nArr = parseSub33Reverse(msg, 4);
+// System.out.println(strArrNum(nArr));
+// msg = resp.substring(28 + 8, 28 + 8 + 8);
+// System.out.println(msg);
+//
+// nArr = parseSub33Reverse(msg, 4);
+//// parseSub33Reverse
+// System.out.println(strArrNum(nArr));
+
+
+// String msgStatus = "FEFEFEFE 68 379707010000 68 11 04 36383337 9316";
+// String msgStatus = "FEFEFEFE68379707010000681104363833379316";
+// byte control = 0x11;
+// byte[] data = {0x36, 0x38, 0x33, 0x37};
+// byte[] bufReq = getRequestParam(4, addressBuf, control, data);
+// String req = bytesToHex(bufReq);
+// System.out.println(req);
+// System.out.println(msgStatus);
+// byte[] respBuf = readDeviceData(ip, port, bufReq);
+// String resp = bytesToHex(respBuf);
+// System.out.println(resp);
+// FEFEFEFE 68 615121010000 68 91 06 36383337 3333 79 16
+// FEFEFEFE 68 615121010000 68 91 06 36383337 3333 79 16
+ String resp = "FEFEFEFE686151210100006891063638333733337916";
+ String msg = resp.substring(36, 36 + 4);
+ System.out.println(msg);
+ String[] nArr = parseSub33Reverse(msg, 2);
+// System.out.println(strArrNum(nArr));
+ String v = hexToBinary(nArr);
+ v="0000000000010000";
+ System.out.println(v);
+ System.out.println(v.charAt(11));
+
+
+ }
+
+
+ public static void main(String[] args) throws IOException {
+// testWater();
+// electricityTest();
+// water("192.168.1.78",1030,"000152462599");
+// Map<String, Object> map = electricityData("192.168.1.78", 1030, "000001215161");
+// System.out.println(JSONObject.toJSONString(map));
+ electricityAct("192.168.1.78", 1030, "000001215161",0,"20260309162655");
+// FEFEFE6899254652010068810 843C3333433333333 E9 16
+// FEFEFE6899254652010068810 84 3C3333433333333E916
+
+// Map<String, Object> map1 = water("192.168.1.78", 1030, "000152462599");
+// System.out.println(JSONObject.toJSONString(map1));
+ }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
index e0c27a1..9adc1f6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/excel/ExcelReplaceCommon.java
@@ -94,7 +94,7 @@
IContext context = report.createContext();
for (YwTempConfig ywTempConfig:ywTempConfigList) {
if(StringUtils.isBlank(ywTempConfig.getUrl())){
- ywTempConfig.setUrl("-");
+ ywTempConfig.setUrl(" - ");
}
context.put(ywTempConfig.getTitle().replace("${","").replace("}",""), ywTempConfig.getUrl());
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceDataMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceDataMapper.java
new file mode 100644
index 0000000..4818344
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceDataMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.DeviceData;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/12/25 10:04
+ */
+public interface DeviceDataMapper extends BaseMapper<DeviceData> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
index 1209387..70a6da0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
@@ -1,5 +1,7 @@
package com.doumee.dao.business.model;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -8,9 +10,9 @@
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;
+
import java.math.BigDecimal;
+import java.util.Date;
/**
* 璁惧淇℃伅琛�
@@ -71,8 +73,8 @@
@ExcelColumn(name="鎺掑簭鐮�")
private Integer sortnum;
- @ApiModelProperty(value = "绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱", example = "1")
- @ExcelColumn(name="绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱")
+ @ApiModelProperty(value = "绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱鐐� 4骞挎挱璁惧 5鏂矾鍣ㄧ┖寮� 6娴峰悍鐢佃〃 7j绌鸿", example = "1")
+ @ExcelColumn(name="绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱鐐� 4骞挎挱璁惧 5鏂矾鍣ㄧ┖寮� 6娴峰悍鐢佃〃 7绌鸿")
private Integer type;
@ApiModelProperty(value = "鏄惁鍥尯鍑哄叆鍙� 0涓嶆槸 1鏄�", example = "1")
@ExcelColumn(name="鏄惁鍥尯鍑哄叆鍙� 0涓嶆槸 1鏄�")
@@ -154,12 +156,14 @@
@ApiModelProperty(value = "闂ㄧ鐐瑰悕绉�")
@ExcelColumn(name="闂ㄧ鐐瑰悕绉�")
private String doorName;
-
-
-
-
-
-
-
+ @ApiModelProperty(value = "鎾姤鍐呭")
+ @TableField(exist = false)
+ private String sendInfo;
+ @ApiModelProperty(value = "杩滅▼鎿嶄綔鏃堕棿鍙傛暟")
+ @TableField(exist = false)
+ private Date cmdDate;
+ @ApiModelProperty(value = "閰嶇疆鍙傛暟")
+ @TableField(exist = false)
+ private JSONObject doorNameObj;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceData.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceData.java
new file mode 100644
index 0000000..f9498d8
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceData.java
@@ -0,0 +1,95 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 闂ㄧ浜嬩欢鎺ㄩ�佽褰曡〃
+ * @author 姹熻箘韫�
+ * @date 2025/12/25 10:04
+ */
+@Data
+@ApiModel("闂ㄧ浜嬩欢鎺ㄩ�佽褰曡〃")
+@TableName("`device_data`")
+public class DeviceData {
+
+ @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="鍒涘缓鏃堕棿")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String remark;
+
+ @ApiModelProperty(value = "鏁版嵁json瀵硅薄", example = "1")
+ @ExcelColumn(name="鏁版嵁json瀵硅薄")
+ private String dataJson;
+
+ @ApiModelProperty(value = "璁惧缂栫爜锛堝叧鑱攄evice)")
+ @ExcelColumn(name="璁惧缂栫爜锛堝叧鑱攄evice)")
+ private String deviceId;
+
+ @ApiModelProperty(value = "鍙戠敓鏃堕棿")
+ @ExcelColumn(name="鍙戠敓鏃堕棿")
+ private String happenTime;
+
+ @ApiModelProperty(value = "灞炴�у��1")
+ @ExcelColumn(name="灞炴�у��1")
+ private String val1;
+
+ @ApiModelProperty(value = "灞炴�у��2")
+ @ExcelColumn(name="灞炴�у��2")
+ private String val2;
+
+ @ApiModelProperty(value = "灞炴�у��3")
+ @ExcelColumn(name="灞炴�у��3")
+ private String val3;
+
+ @ApiModelProperty(value = "灞炴�у��4")
+ @ExcelColumn(name="灞炴�у��4")
+ private String val4;
+
+ @ApiModelProperty(value = "灞炴�у��5")
+ @ExcelColumn(name="灞炴�у��5")
+ private String val5;
+
+ @ApiModelProperty(value = "灞炴�у��6")
+ @ExcelColumn(name="灞炴�у��6")
+ private String val6;
+ @ApiModelProperty(value = "灞炴�у��7")
+ @ExcelColumn(name="灞炴�у��7")
+ private String val7;
+
+ @ApiModelProperty(value = "鏁版嵁鏉ユ簮 0mqtt涓婃姤缁煎悎鐘舵�� 1杩滅▼鎺у埗 2TCP璇诲彇鏁版嵁 ", example = "1")
+ @ExcelColumn(name="鏁版嵁鏉ユ簮 0mqtt涓婃姤缁煎悎鐘舵�� 1杩滅▼鎺у埗 2TCP璇诲彇鏁版嵁")
+ private Integer dataType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
index de03a54..e476672 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
@@ -204,6 +204,10 @@
@ExcelColumn(name="鐗╀笟璐规�婚噾棰�")
private BigDecimal wyTotalFee;
+ @ApiModelProperty(value = "鍚堝悓鐘舵�侀泦鍚�")
+ @TableField(exist = false)
+ private List<Integer> statusList;
+
@ApiModelProperty(value = "鎴块棿涓婚敭 鏌ヨ浣跨敤")
@TableField(exist = false)
private Integer roomId;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
index c59d394..dadcb8f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
@@ -157,11 +157,11 @@
@TableField(exist = false)
private Integer customerId;
- @ApiModelProperty(value = "鏄惁鍙戦�侀偖浠讹細0=鍚︼紱1=鏄�", example = "1")
+ @ApiModelProperty(value = "鏄惁鍙戦�侀偖浠讹細0=鍚︼紱1=鍙戦�佹垚鍔燂紱2=鍙戦�佸け璐�", example = "1")
@TableField(exist = false)
private Integer isSendEmail;
- @ApiModelProperty(value = "鏄惁鍙戦�佺煭淇★細0=鍚︼紱1=鏄�", example = "1")
+ @ApiModelProperty(value = "鏄惁鍙戦�佺煭淇★細0=鍚︼紱1=鍙戦�佹垚鍔燂紱2=鍙戦�佸け璐�", example = "1")
@TableField(exist = false)
private Integer isSendSms;
@@ -178,6 +178,7 @@
@ExcelColumn(name="鍚堝悓缂栧彿",index = 2,width = 10)
@TableField(exist = false)
private String contractCode;
+
@ApiModelProperty(value = "鍚堝悓鐘舵��", example = "1")
@TableField(exist = false)
private Integer contractStatus;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
index 37e6303..258a1c5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwMaterial.java
@@ -26,89 +26,77 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelColumn(name="鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelColumn(name="鏇存柊鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鍚嶇О")
- @ExcelColumn(name="鍚嶇О")
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
private String name;
@ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
- @ExcelColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
+ @ExcelColumn(name="鐘舵��",index = 8,width = 8,valueMapping = "0=鍚敤;1=绂佺敤;")
private Integer status;
@ApiModelProperty(value = "缂栧彿")
- @ExcelColumn(name="缂栧彿")
+ @ExcelColumn(name="鐗╂枡缂栧彿",index = 0,width = 10)
private String code;
@ApiModelProperty(value = "鎵�灞炰竴绾у垎绫荤紪鐮侊紙鍏宠仈category)", example = "1")
- @ExcelColumn(name="鎵�灞炰竴绾у垎绫荤紪鐮侊紙鍏宠仈category)")
private Integer parentCateId;
@ApiModelProperty(value = "鎵�灞炰簩绾у垎绫荤紪鐮�(鍏宠仈category锛�", example = "1")
- @ExcelColumn(name="鎵�灞炰簩绾у垎绫荤紪鐮�(鍏宠仈category锛�")
private Integer cateId;
@ApiModelProperty(value = "鏉$爜")
- @ExcelColumn(name="鏉$爜")
+ @ExcelColumn(name="鏉$爜",index = 2,width = 10)
private String qrcode;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "鍝佺墝")
- @ExcelColumn(name="鍝佺墝")
+ @ExcelColumn(name="鍝佺墝",index = 3,width = 10)
private String brand;
@ApiModelProperty(value = "瑙勬牸鍨嬪彿")
- @ExcelColumn(name="瑙勬牸鍨嬪彿")
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10)
private String attr;
@ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笅闄愶級", example = "1")
- @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笅闄愶級",index = 6,width = 16)
private BigDecimal minStock;
@ApiModelProperty(value = "瀹夊叏搴撳瓨锛堜笂闄愶級", example = "1")
- @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級")
+ @ExcelColumn(name="瀹夊叏搴撳瓨锛堜笂闄愶級",index = 7,width = 16)
private BigDecimal maxStock;
@ApiModelProperty(value = "鍗曚綅")
- @ExcelColumn(name="鍗曚綅")
+ @ExcelColumn(name="鍗曚綅",index = 5,width = 10)
private String unitName;
@ApiModelProperty(value = "鎵�灞炴埧婧愮紪鐮�(鍏宠仈yw_room)", example = "1")
- @ExcelColumn(name="鎵�灞炴埧婧愮紪鐮�(鍏宠仈yw_room)")
private Integer roomId;
@ApiModelProperty(value = "鏄惁鑷姩缂栫爜锛�0=鍚︼紱1=鏄紱", example = "1")
- @ExcelColumn(name="鏄惁鑷姩缂栫爜锛�0=鍚︼紱1=鏄紱")
private Integer autoCode;
@ApiModelProperty(value = "闄勪欢淇℃伅", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
index 36e1608..4ce319c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinbound.java
@@ -92,6 +92,9 @@
@ExcelColumn(name="鍗曟嵁缂栧彿")
private String code;
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
+ private Integer outUserId;
+
@ApiModelProperty(value = "鍑哄叆搴撴暟鎹槑缁�", example = "1")
@TableField(exist = false)
private List<YwOutinboundRecord> recordList;
@@ -108,4 +111,8 @@
@ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
@TableField(exist = false)
private String createUserName;
+
+ @ApiModelProperty(value = "棰嗙敤浜哄悕绉�", example = "1")
+ @TableField(exist = false)
+ private String outUserName;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
index d8a3f12..ef8192b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwOutinboundRecord.java
@@ -24,53 +24,47 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelColumn(name="鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelColumn(name="鍒涘缓鏃堕棿",width = 10,index = 11,dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelColumn(name="鏇存柊鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鍑哄叆搴撹褰曚富閿�", example = "1")
- @ExcelColumn(name="鍑哄叆搴撹褰曚富閿�")
private Integer outInBoundId;
@ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1")
- @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)")
private Integer materialId;
@ApiModelProperty(value = "鏁伴噺", example = "1")
- @ExcelColumn(name="鏁伴噺")
+ @ExcelColumn(name="鏁伴噺",width = 10,index = 5)
private BigDecimal stock;
@ApiModelProperty(value = "璧勪骇缂栫爜")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡缂栫爜",width = 10,index = 1)
private String materialCode;
@ApiModelProperty(value = "璧勪骇鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍚嶇О",width = 10,index = 2)
private String materialName;
@ApiModelProperty(value = "璧勪骇鏉″舰鐮�")
@@ -83,6 +77,7 @@
@ApiModelProperty(value = "璧勪骇鍗曚綅")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曚綅",width = 10,index = 6)
private String materialUnitName;
@ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�1=鍑哄簱锛�0=鍏ュ簱锛堝垎椤靛垪琛ㄦ煡璇娇鐢級", example = "1")
@@ -95,31 +90,38 @@
@ApiModelProperty(value = "浠撳簱鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="浠撳簱",width = 10,index = 8)
private String warehouseName;
@ApiModelProperty(value = "鍗曟嵁鏃ユ湡")
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
+ @ExcelColumn(name="鍗曟嵁鏃ユ湡",width = 10,index = 0,dateFormat = "yyyy-MM-dd")
private Date doneDate;
@ApiModelProperty(value = "涓�绾у垎绫诲悕绉�")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍒嗙被",width = 10,index = 3)
private String categoryParentName;
@ApiModelProperty(value = "浜岀骇鍒嗙被鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡瀛愬垎绫�",width = 10,index = 4)
private String categoryName;
@ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="鍒涘缓浜�",width = 10,index = 10)
private String createUserName;
@ApiModelProperty(value = "鍗曟嵁缂栧彿", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曟嵁缂栧彿",width = 10,index = 9)
private String code;
@ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1")
@TableField(exist = false)
+ @ExcelColumn(name="绫诲瀷",width = 10,index = 7,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;")
private Integer type;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
index 69f6075..2ea3bf2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
@@ -54,7 +54,7 @@
private String remark;
@ApiModelProperty(value = "鐘舵�� 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�", example = "1")
- @ExcelColumn(name="鎵ц缁撴灉",index = 7,width = 6,valueMapping = "0=寰呭紑濮�;1=杩涜涓�;2=宸茶秴鏈�;3=宸插畬鎴�;")
+ @ExcelColumn(name="鎵ц缁撴灉",index = 7,width = 6,valueMapping = "0=寰呭紑濮�;1=杩涜涓�;2=宸茶秴鏈�;3=宸插畬鎴�;4=宸插彇娑�;")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -103,6 +103,9 @@
@TableField(exist = false)
private String userName;
+ @ApiModelProperty(value = "鍙鐞嗕汉锛堝涓互,鍒嗗壊锛�")
+ @TableField(exist = false)
+ private String userIds;
@ApiModelProperty(value = "浠诲姟鐘舵�侊細澶氫釜浠�,鍒嗗壊 0寰呭紑濮� 1杩涜涓� 2宸茶秴鏈� 3宸插畬鎴� 4宸插彇娑�")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
index caa8f4a..d0434c4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwRoom.java
@@ -106,6 +106,13 @@
@ExcelColumn(name="鎵�灞炴ゼ瀹囩紪鐮侊紙鍏宠仈yw_building)")
private Integer buildingId;
+ @ApiModelProperty(value = "褰撳墠绉熻祦鐘舵�侊細0=鏈璧侊紱1=宸茬璧�")
+ private Integer leaseNowStatus;
+
+ @ApiModelProperty(value = "閫�绉熷埌鏈熸棩鏈燂紝閫�绉熶娇鐢�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date leaseRentDate;
+
@ApiModelProperty(value = "绉熻祦鐘舵�侊細0=寰呯璧侊紱1=宸茬璧� ;2=鏈紑鍚璧�", example = "1")
@TableField(exist = false)
private Integer leaseStatus;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
index 16a6200..b402a67 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java
@@ -57,7 +57,6 @@
@ExcelColumn(name="鏁伴噺",index = 6,width = 10)
private BigDecimal stock;
-
@ApiModelProperty(value = "鐗╂枡缂栫爜")
@ExcelColumn(name="鐗╂枡缂栫爜",index = 0,width = 10)
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
index 3addc97..ea7869f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktaking.java
@@ -35,7 +35,7 @@
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@ExcelColumn(name="鍒涘缓鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
index 6672876..44c5b68 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStocktakingRecord.java
@@ -25,97 +25,91 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelColumn(name="鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelColumn(name="鏇存柊鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelColumn(name="澶囨敞")
+ @ExcelColumn(name="澶囨敞",index = 9,width = 30)
private String remark;
@ApiModelProperty(value = "鐘舵�� 0鏈紑濮� 1宸茬洏鐐�", example = "1")
- @ExcelColumn(name="鐘舵�� 0鏈紑濮� 1宸茬洏鐐�")
private Integer status;
@ApiModelProperty(value = "鐩樼偣鍛樼紪鐮�(鍏宠仈system_user)")
- @ExcelColumn(name="鐩樼偣鍛樼紪鐮�(鍏宠仈system_user)")
private String userId;
@ApiModelProperty(value = "鐩樼偣鏃堕棿")
- @ExcelColumn(name="鐩樼偣鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date planDate;
@ApiModelProperty(value = "缂栧彿")
- @ExcelColumn(name="缂栧彿")
private String code;
@ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1")
- @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)")
private Integer materialId;
@ApiModelProperty(value = "璐﹂潰鏁伴噺", example = "1")
- @ExcelColumn(name="璐﹂潰鏁伴噺")
+ @ExcelColumn(name="璐﹂潰鏁伴噺",index = 7,width = 10)
private BigDecimal stock;
@ApiModelProperty(value = "瀹為檯鐩樼偣搴撳瓨閲�", example = "1")
- @ExcelColumn(name="瀹為檯鐩樼偣搴撳瓨閲�")
+ @ExcelColumn(name="鐩樼偣鏁伴噺",index = 8,width = 10)
private BigDecimal actStock;
@ApiModelProperty(value = "鐩樼偣 0璐﹀疄鐩哥 1鐩樹簭 2鐩樼泩", example = "1")
- @ExcelColumn(name="鐩樼偣 0璐﹀疄鐩哥 1鐩樹簭 2鐩樼泩")
private Integer type;
@ApiModelProperty(value = "鐩樼偣璁″垝缂栫爜(鍏宠仈yw_stocktaking)", example = "1")
- @ExcelColumn(name="鐩樼偣璁″垝缂栫爜(鍏宠仈yw_stocktaking)")
private Integer stocktakingId;
@ApiModelProperty(value = "璧勪骇缂栫爜")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡缂栫爜",index = 0,width = 10)
private String materialCode;
@ApiModelProperty(value = "璧勪骇鍚嶇О")
@TableField(exist = false)
+ @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10)
private String materialName;
@ApiModelProperty(value = "璧勪骇鏉″舰鐮�")
@TableField(exist = false)
+ @ExcelColumn(name="鏉$爜",index = 2,width = 10)
private String materialQrcode;
@ApiModelProperty(value = "璧勪骇鍝佺墝")
@TableField(exist = false)
+ @ExcelColumn(name="鍝佺墝",index = 3,width = 10)
private String materialBrand;
@ApiModelProperty(value = "璧勪骇瑙勬牸鍨嬪彿")
@TableField(exist = false)
+ @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10)
private String materialAttr;
@ApiModelProperty(value = "璧勪骇鍗曚綅")
@TableField(exist = false)
+ @ExcelColumn(name="鍗曚綅",index = 5,width = 10)
private String materialUnitName;
@ApiModelProperty(value = "浠撳簱鍚嶇О")
+ @ExcelColumn(name="浠撳簱",index = 6,width = 10)
@TableField(exist = false)
private String warehouseName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
index 6c80566..f2c95f8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
@@ -98,7 +98,7 @@
private String code;
@ApiModelProperty(value = "澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�", example = "1")
- @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呭鐞�;1=宸插垎娲�;2=宸插鐞�;")
+ @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呮寚娲�;1=宸叉寚娲�;2=宸插鐞�;")
private Integer dealStatus;
@ApiModelProperty(value = "鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java
index 23e6818..d2c86d6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java
@@ -39,14 +39,17 @@
@ExcelColumn(name="鍑哄簱鏁伴噺",index = 4,width = 16)
private String outMaterialNum;
- @ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1")
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
@ExcelColumn(name="棰嗙敤浜�",index = 5,width = 16)
- private String createUserName;
+ private String outUserName;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@ExcelColumn(name="鎿嶄綔鏃堕棿",index = 6,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
+ @ApiModelProperty(value = "棰嗙敤浜�", example = "1")
+ @ExcelColumn(name="鎿嶄綔浜哄悕绉�",index = 7,width = 16)
+ private String createUserName;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceDataService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceDataService.java
new file mode 100644
index 0000000..34df45e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceDataService.java
@@ -0,0 +1,98 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.DeviceData;
+
+import java.util.List;
+
+/**
+ * 闂ㄧ浜嬩欢鎺ㄩ�佽褰曡〃Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/12/25 10:04
+ */
+public interface DeviceDataService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(DeviceData deviceData);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ */
+ void delete(DeviceData deviceData);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ */
+ void updateById(DeviceData deviceData);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param deviceDatas 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<DeviceData> deviceDatas);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return DeviceData
+ */
+ DeviceData findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ * @return DeviceData
+ */
+ DeviceData findOne(DeviceData deviceData);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ * @return List<DeviceData>
+ */
+ List<DeviceData> findList(DeviceData deviceData);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<DeviceData>
+ */
+ PageData<DeviceData> findPage(PageWrap<DeviceData> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param deviceData 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(DeviceData deviceData);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
index f752fd9..8c1ed4a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
@@ -1,11 +1,12 @@
package com.doumee.service.business;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelSingleRequest;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Device;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
import java.util.List;
/**
@@ -15,9 +16,10 @@
*/
public interface DeviceService {
+
/**
* 鍒涘缓
- *
+ *
* @param device 瀹炰綋瀵硅薄
* @return Integer
*/
@@ -28,7 +30,7 @@
*
* @param id 涓婚敭
*/
- void deleteById(Integer id);
+ void deleteById(Integer id, LoginUserInfo userInfo);
/**
* 鍒犻櫎
@@ -42,7 +44,7 @@
*
* @param ids 涓婚敭闆�
*/
- void deleteByIdInBatch(List<Integer> ids);
+ void deleteByIdInBatch(List<Integer> ids, LoginUserInfo userInfo);
/**
* 涓婚敭鏇存柊
@@ -106,4 +108,11 @@
long count(Device device);
void setLedContent(TransparentChannelSingleRequest body);
+
+ void setBroadcaseBobao(Device body);
+
+ void updateUsedById(Device d);
+
+ void dianbaoCmd(Device param);
+ void dianbiaoData(Device param);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
index 84f74eb..bca5059 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractService.java
@@ -102,5 +102,17 @@
void dealTimeOut();
+ /**
+ * 鍒版湡鍚堝悓 鏈彂璧烽��绉熺殑杩涜鏁版嵁璋冩暣 鎶婂悎鍚屼笅鐨勬埧婧愰噴鏀� 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ void updRoomLeaseNowStatus();
+
+
+ /**
+ * 閫�绉熶腑/宸查��绉熷悎鍚� 鎶婂埌浜嗛��绉熸棩鏈熸椂闂寸殑鏁版嵁 杩涜鎴挎簮閲婃斁 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ void updRentContractStatus();
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
index 6da3431..6e0c811 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwMaterialService.java
@@ -1,8 +1,11 @@
package com.doumee.service.business;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwMaterial;
+import org.springframework.web.multipart.MultipartFile;
+
import java.util.List;
/**
@@ -98,4 +101,6 @@
long count(YwMaterial ywMaterial);
YwMaterial getDetail(Integer id);
+
+ Integer importMaterialBatch(MultipartFile file, LoginUserInfo loginUserInfo);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java
index 8be507c..261536e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java
@@ -4,6 +4,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwPatrolPoint;
+
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -48,6 +50,7 @@
* @param ywPatrolPoint 瀹炰綋瀵硅薄
*/
void updateById(YwPatrolPoint ywPatrolPoint);
+ void exportQrcodes(Integer id, HttpServletResponse ywPatrolPoint);
/**
* 鎵归噺涓婚敭鏇存柊
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceDataServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceDataServiceImpl.java
new file mode 100644
index 0000000..f1a4754
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceDataServiceImpl.java
@@ -0,0 +1,161 @@
+package com.doumee.service.business.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.DeviceDataMapper;
+import com.doumee.dao.business.model.DeviceData;
+import com.doumee.service.business.DeviceDataService;
+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/12/25 10:04
+ */
+@Service
+public class DeviceDataServiceImpl implements DeviceDataService {
+
+ @Autowired
+ private DeviceDataMapper deviceDataMapper;
+
+ @Override
+ public Integer create(DeviceData deviceData) {
+ deviceDataMapper.insert(deviceData);
+ return deviceData.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ deviceDataMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(DeviceData deviceData) {
+ UpdateWrapper<DeviceData> deleteWrapper = new UpdateWrapper<>(deviceData);
+ deviceDataMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ deviceDataMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(DeviceData deviceData) {
+ deviceDataMapper.updateById(deviceData);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<DeviceData> deviceDatas) {
+ if (CollectionUtils.isEmpty(deviceDatas)) {
+ return;
+ }
+ for (DeviceData deviceData: deviceDatas) {
+ this.updateById(deviceData);
+ }
+ }
+
+ @Override
+ public DeviceData findById(Integer id) {
+ return deviceDataMapper.selectById(id);
+ }
+
+ @Override
+ public DeviceData findOne(DeviceData deviceData) {
+ QueryWrapper<DeviceData> wrapper = new QueryWrapper<>(deviceData);
+ return deviceDataMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<DeviceData> findList(DeviceData deviceData) {
+ QueryWrapper<DeviceData> wrapper = new QueryWrapper<>(deviceData);
+ return deviceDataMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<DeviceData> findPage(PageWrap<DeviceData> pageWrap) {
+ IPage<DeviceData> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<DeviceData> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(DeviceData::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(DeviceData::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(DeviceData::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(DeviceData::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(DeviceData::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(DeviceData::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(DeviceData::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(DeviceData::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getRemark() != null) {
+ queryWrapper.lambda().eq(DeviceData::getRemark, pageWrap.getModel().getRemark());
+ }
+ if (pageWrap.getModel().getDataJson() != null) {
+ queryWrapper.lambda().eq(DeviceData::getDataJson, pageWrap.getModel().getDataJson());
+ }
+ if (pageWrap.getModel().getDeviceId() != null) {
+ queryWrapper.lambda().eq(DeviceData::getDeviceId, pageWrap.getModel().getDeviceId());
+ }
+ if (pageWrap.getModel().getHappenTime() != null) {
+ queryWrapper.lambda().eq(DeviceData::getHappenTime, pageWrap.getModel().getHappenTime());
+ }
+ if (pageWrap.getModel().getVal1() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal1, pageWrap.getModel().getVal1());
+ }
+ if (pageWrap.getModel().getVal2() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal2, pageWrap.getModel().getVal2());
+ }
+ if (pageWrap.getModel().getVal3() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal3, pageWrap.getModel().getVal3());
+ }
+ if (pageWrap.getModel().getVal4() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal4, pageWrap.getModel().getVal4());
+ }
+ if (pageWrap.getModel().getVal5() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal5, pageWrap.getModel().getVal5());
+ }
+ if (pageWrap.getModel().getVal6() != null) {
+ queryWrapper.lambda().eq(DeviceData::getVal6, pageWrap.getModel().getVal6());
+ }
+ if (pageWrap.getModel().getDataType() != null) {
+ queryWrapper.lambda().eq(DeviceData::getDataType, pageWrap.getModel().getDataType());
+ }
+ queryWrapper.lambda().orderByDesc(DeviceData::getHappenTime);
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(deviceDataMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(DeviceData deviceData) {
+ QueryWrapper<DeviceData> wrapper = new QueryWrapper<>(deviceData);
+ return deviceDataMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 57eeaa2..2845622 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -2,29 +2,36 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.haikang.model.HKConstants;
-import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.*;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.DeviceMapper;
-import com.doumee.dao.business.PlatformBroadcastLogMapper;
-import com.doumee.dao.business.model.Device;
-import com.doumee.dao.business.model.PlatformBroadcastLog;
-import com.doumee.service.business.DeviceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.device.WaterElectricityUtil;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
+import com.doumee.core.haikang.model.param.request.TransparentChannelSingleRequest;
+import com.doumee.core.haikang.service.HKService;
+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.*;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.DeviceData;
+import com.doumee.dao.business.model.PlatformBroadcastLog;
+import com.doumee.service.business.DeviceService;
import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
+import lombok.extern.slf4j.Slf4j;
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.*;
@@ -35,25 +42,54 @@
* @date 2023/11/30 15:33
*/
@Service
+@Slf4j
public class DeviceServiceImpl implements DeviceService {
@Autowired
private DeviceMapper deviceMapper;
@Autowired
+ private DeviceDataMapper deviceDataMapper;
+ @Autowired
+ private PlatformMapper platformMapper;
+ @Autowired
+ private PlatformDeviceMapper platformDeviceMapper;
+ @Autowired
private SystemDictDataBiz systemDictDataBiz;
@Autowired
private PlatformBroadcastLogMapper platformBroadcastLogMapper;
+ @Autowired
+ private InterfaceLogMapper interfaceLogMapper;
@Override
- public Integer create(Device device) {
- deviceMapper.insert(device);
- return device.getId();
+ public Integer create(Device model) {
+ model.setCreator(model.getLoginUserInfo().getId()+"");
+ model.setEdirot(model.getCreator());
+ model.setIsdeleted(Constants.ZERO);
+ model.setEditDate(new Date());
+ model.setCreateDate(model.getEditDate());
+ if(model.getDoorNameObj()!=null &&
+ (Constants.equalsInteger(model.getType(),Constants.DEVICE_TYPE.duanluqi)
+ ||Constants.equalsInteger(model.getType(),Constants.DEVICE_TYPE.dianbiao))){
+ model.setDoorName(JSONObject.toJSONString(model.getDoorNameObj()));
+ if(StringUtils.isNotBlank(model.getLevel())){
+ if(getNumberByStr(model.getLevel()) <300){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎺у埗鏃堕暱蹇呴』澶т簬绛変簬300绉�");
+ }
+ }
+ }
+ deviceMapper.insert(model);
+ return model.getId();
}
@Override
- public void deleteById(Integer id) {
- deviceMapper.deleteById(id);
+ public void deleteById(Integer id, LoginUserInfo userInfo) {
+ Device update = new Device();
+ update.setEdirot(userInfo.getId()+"");
+ update.setEditDate(new Date());
+ update.setIsdeleted(Constants.ONE);
+ update.setId(id);
+ deviceMapper.updateById(update);
}
@Override
@@ -63,16 +99,30 @@
}
@Override
- public void deleteByIdInBatch(List<Integer> ids) {
+ public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo userInfo) {
if (CollectionUtils.isEmpty(ids)) {
return;
}
- deviceMapper.deleteBatchIds(ids);
+ for(Integer id :ids){
+ deleteById(id,userInfo);
+ }
}
@Override
public void updateById(Device device) {
+ device.setEdirot(device.getLoginUserInfo().getId()+"");
+ device.setEditDate(new Date());
+ if(device.getDoorNameObj()!=null &&
+ (Constants.equalsInteger(device.getType(),Constants.DEVICE_TYPE.duanluqi)
+ ||Constants.equalsInteger(device.getType(),Constants.DEVICE_TYPE.dianbiao))){
+ device.setDoorName(JSONObject.toJSONString(device.getDoorNameObj()));
+ }
+ Device model = deviceMapper.selectById(device.getId());
+ if(model ==null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
deviceMapper.updateById(device);
+
}
@Override
@@ -87,7 +137,16 @@
@Override
public Device findById(Integer id) {
- return deviceMapper.selectById(id);
+ Device d = deviceMapper.selectById(id);
+ if(StringUtils.isNotBlank(d.getDoorName()) &&Constants.equalsInteger(d.getType(),Constants.DEVICE_TYPE.duanluqi)){
+ try {
+ //鏂矾鍣ㄨ澶囧弬鏁�
+ d.setDoorNameObj(JSONObject.parseObject(d.getDoorName()));
+ }catch (Exception e){
+
+ }
+ }
+ return d;
}
@Override
@@ -98,6 +157,7 @@
@Override
public List<Device> findList(Device device) {
+ device.setIsdeleted(Constants.ZERO);
QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
return deviceMapper.selectList(wrapper);
}
@@ -107,12 +167,25 @@
LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(param);
wrapper.select(Device::getId, Device::getName, Device::getDoorName,Device::getRegionPathName, Device::getRegionName);
wrapper.eq(null != param.getType(),Device::getType,param.getType())
- .eq(null !=param.getIsdeleted(),Device::getIsdeleted,param.getIsdeleted())
- .eq(Objects.isNull(param.getIsdeleted()),Device::getIsdeleted,Constants.ZERO)
- .eq(null != param.getHkStatus(),Device::getHkStatus,param.getHkStatus());
- return deviceMapper.selectList(wrapper);
+ .eq(null !=param.getIsdeleted(),Device::getIsdeleted,param.getIsdeleted())
+ .eq(Objects.isNull(param.getIsdeleted()),Device::getIsdeleted,Constants.ZERO)
+ .eq(null != param.getHkStatus(),Device::getHkStatus,param.getHkStatus());
+ List<Device> list = deviceMapper.selectList(wrapper);
+ if(list!=null){
+ for(Device d : list){
+ if(StringUtils.isNotBlank(d.getDoorName()) &&Constants.equalsInteger(d.getType(),Constants.DEVICE_TYPE.duanluqi)){
+ try {
+ //鏂矾鍣ㄨ澶囧弬鏁�
+ d.setDoorNameObj(JSONObject.parseObject(d.getDoorName()));
+ }catch (Exception e){
+
+ }
+ }
+ }
+ }
+ return list;
}
-
+
@Override
public PageData<Device> findPage(PageWrap<Device> pageWrap) {
IPage<Device> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -147,6 +220,12 @@
}
if (pageWrap.getModel().getName() != null) {
queryWrapper.lambda().like(Device::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getDoorNo() != null) {
+ queryWrapper.lambda().like(Device::getDoorNo, pageWrap.getModel().getDoorNo());
+ }
+ if (pageWrap.getModel().getNo() != null) {
+ queryWrapper.lambda().like(Device::getNo, pageWrap.getModel().getNo());
}
if (pageWrap.getModel().getDoorName() != null) {
queryWrapper.lambda().like(Device::getDoorName, pageWrap.getModel().getDoorName());
@@ -219,7 +298,22 @@
queryWrapper.orderByAsc(sortData.getProperty());
}
}
- return PageData.from(deviceMapper.selectPage(page, queryWrapper));
+ IPage<Device> result = deviceMapper.selectPage(page, queryWrapper);
+ if(result!=null){
+ for(Device d : result.getRecords()){
+ if(StringUtils.isNotBlank(d.getDoorName())
+ && (Constants.equalsInteger(d.getType(),Constants.DEVICE_TYPE.duanluqi)||
+ Constants.equalsInteger(d.getType(),Constants.DEVICE_TYPE.dianbiao))){
+ try {
+ //鏂矾鍣ㄨ澶囧弬鏁�
+ d.setDoorNameObj(JSONObject.parseObject(d.getDoorName()));
+ }catch (Exception e){
+
+ }
+ }
+ }
+ }
+ return PageData.from(result);
}
@Override
@@ -227,6 +321,123 @@
QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
return deviceMapper.selectCount(wrapper);
}
+
+ @Override
+ public void setBroadcaseBobao(Device model){
+ List<String> ids = new ArrayList<>();
+ ids.add(model.getHkId());
+ CustomBroadcastRequest request = new CustomBroadcastRequest();
+ request.setAudioPointIndexCode(ids);
+ request.setPlayDuration(15);//鍗曚綅绉�
+ request.setBroadCastMode("tts");
+ request.setPriority(1);
+ request.setState(1);//鎾斁/鍋滄鏍囪瘑 1-鎾斁锛�0-鍋滄
+ request.setPlayTtsContent(model.getSendInfo());
+ BaseResponse response = HKService.customBroadcast(request);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鍙戦�佸け璐ワ細"+ JSONObject.toJSONString(response));
+ }
+ }
+
+ @Override
+ public void updateUsedById(Device param){
+ Device model = deviceMapper.selectById(param.getId());
+ if(model ==null && Constants.equalsInteger(param.getType(),Constants.DEVICE_TYPE.duanluqi)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+
+ this.updateById(param);
+ }
+
+ @Override
+ public void dianbaoCmd(Device param){
+ Device model = deviceMapper.selectById(param.getId());
+ if(model ==null && Constants.equalsInteger(param.getType(),Constants.DEVICE_TYPE.dianbiao)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if (param.getStatus() == null || param.getCmdDate() == null
+ ||param.getCmdDate().getTime() <= System.currentTimeMillis()) {
+ //濡傛灉鏄紑闂�
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+
+ boolean r ;
+ String date = DateUtil.formatDate(new Date(),"yyyyMMddHHmmss");
+ if(Constants.equalsInteger(param.getStatus(),Constants.ONE)) {
+ //濡傛灉鏄紑闂�
+ r = WaterElectricityUtil.electricityAct(param.getIp(),Integer.parseInt(param.getPort()),param.getNo(),0,date);
+ }else {
+ //濡傛灉鏄悎闂�
+ r = WaterElectricityUtil.electricityAct(param.getIp(),Integer.parseInt(param.getPort()),param.getNo(),1,date);
+ }
+ if(!r){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"杩滅▼鎺у埗鐢佃〃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ String curremak = "銆�"+param.getLoginUserInfo().getRealname()
+ +"銆戜簬"+ DateUtil.getPlusTime2(new Date()) +"杩涜浜�"+(Constants.equalsInteger(param.getStatus(),Constants.ONE)?"銆愬悎闂搞��":"銆愬垎闂搞��")+"鎿嶄綔,寮�鍏炽��"+param.getChannelNo()+"銆戯紱";
+ deviceMapper.update(null,new UpdateWrapper<Device>().lambda()
+ .set(Device::getRemark,curremak)
+ .set(Device::getEditDate,new Date())
+ .set(Device::getEdirot,param.getLoginUserInfo().getId())
+ .eq(Device::getId,param.getId()));
+ DeviceData data = new DeviceData();
+ data.setCreateDate(new Date());
+ data.setEditDate(new Date());
+ data.setCreator(param.getLoginUserInfo().getId());
+ data.setEditor(param.getLoginUserInfo().getId());
+ data.setDeviceId(param.getId()+"");
+ data.setDataType(Constants.ONE);//
+ data.setVal1("杩滅▼鎺у埗");
+ data.setVal2(curremak);
+ data.setHappenTime(DateUtil.getPlusTime2(data.getCreateDate()));
+ data.setVal3((Constants.equalsInteger(param.getStatus(),Constants.ONE)?"銆愬悎闂搞��":"銆愬垎闂搞��"));
+ data.setVal4(param.getLoginUserInfo().getRealname());
+ data.setVal5(param.getChannelNo());
+ deviceDataMapper.insert(data);
+
+ }
+ @Override
+ @Transactional
+ public void dianbiaoData(Device param){
+ Device model = deviceMapper.selectById(param.getId());
+ if(model ==null && Constants.equalsInteger(param.getType(),Constants.DEVICE_TYPE.dianbiao)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ try {
+ Map<String, Object> readData= WaterElectricityUtil.electricityData(model.getIp(),Integer.parseInt(model.getPort()),model.getNo());
+ if(readData!=null){
+ String curremak = "銆�"+param.getLoginUserInfo().getRealname()
+ +"銆戜簬"+ DateUtil.getPlusTime2(new Date()) +"杩涜浜嗘暟鎹鍙栨搷浣�";
+ Date time =(Date) readData.get("time");
+ String total = (Double) readData.get("total")+"";
+ String status = (String) readData.get("status");
+ model.setHkDate(new Date());//鏈�杩戝悓姝ユ椂闂�
+ model.setOnline(Constants.ONE);//鏍囪瘑璁惧鍦ㄧ嚎
+ model.setRemark(curremak);
+
+ DeviceData data = new DeviceData();
+ data.setCreateDate(new Date());
+ data.setEditDate(new Date());
+ data.setCreator(param.getLoginUserInfo().getId());
+ data.setEditor(param.getLoginUserInfo().getId());
+ data.setDeviceId(param.getId()+"");
+ data.setDataType(Constants.ZERO);//
+ data.setVal1(total);
+ data.setVal2(status);
+ data.setHappenTime(DateUtil.getPlusTime2(data.getCreateDate()));
+ data.setVal3(DateUtil.getPlusTime2(time));
+ data.setVal4(param.getLoginUserInfo().getRealname());
+ data.setVal5(param.getNo());//鍦板潃鍩�
+ deviceDataMapper.insert(data);
+ deviceMapper.updateById(model);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ log.error("鐢佃〃鏁版嵁璇诲彇澶辫触锛�"+e.getMessage());
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"璇诲彇鐢佃〃鏁版嵁澶辫触锛�");
+ }
+ }
+
@Override
public void setLedContent(TransparentChannelSingleRequest model) {
@@ -250,4 +461,28 @@
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝灞忓箷鍐呭璁剧疆澶辫触"+(log!=null?log.getHkInfo():""));
}
}
+
+
+ private DeviceData getLastDataByVal1(String b, List<DeviceData> dataList,double limit) {
+ List<DeviceData> list = new ArrayList<>();
+ for(DeviceData d :dataList){
+ if(StringUtils.equals(d.getVal1(),b)){
+ if(limit <= getNumberByStr(d.getVal2())){
+ //濡傛灉鏈夊疄鏃剁數娴佸�煎ぇ浜庣┖闂查槇鍊硷紝鍒欒〃绀哄伐浣滀腑锛屼笉鍋氬鐞�
+ return null;
+ }
+ list.add(d);
+ }
+ }
+ return list.size()>0?list.get(0):null;
+ }
+
+ private double getNumberByStr(String level) {
+ try {
+ return Double.parseDouble(level);
+ }catch (Exception e){
+
+ }
+ return 0;
+ }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 12976d2..135c516 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2231,12 +2231,12 @@
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "韬唤璇佸彿銆�"+member.getIdcardNo()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
}
}
- if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
- .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
- .eq(Member::getPhone, member.getPhone())
- .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
- }
+// if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
+// .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
+// .eq(Member::getPhone, member.getPhone())
+// .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
+// throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
+// }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index b760dd1..a50a208 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -595,7 +595,7 @@
SmsEmail smsEmail = new SmsEmail();
smsEmail.setIsdeleted(Constants.ZERO);
smsEmail.setCreateDate(new Date());
- smsEmail.setStatus(result?Constants.ZERO:Constants.ONE);
+ smsEmail.setStatus(result?Constants.ONE:Constants.TWO);
smsEmail.setType(Constants.ZERO);
smsEmail.setRemark(result?"鐭俊鍙戦�佹垚鍔�":"鐭俊鍙戦�佸け璐�");
smsEmail.setTitle("璐﹀崟鍌垂");
@@ -618,13 +618,13 @@
if(result){
result= emailService.sendEmail(email,"璐﹀崟鍌垂",content,null);
}
- content = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode() + content;
SmsEmail smsEmail = new SmsEmail();
smsEmail.setRemark(result?"閭欢鍙戦�佹垚鍔�":"閭欢鍙戦�佸け璐�");
smsEmail.setIsdeleted(Constants.ZERO);
+ smsEmail.setTitle("璐﹀崟鍌垂");
smsEmail.setCreateDate(new Date());
- smsEmail.setStatus(result?Constants.ZERO:Constants.ONE);
- smsEmail.setType(Constants.TWO);
+ smsEmail.setStatus(result?Constants.ONE:Constants.TWO);
+ smsEmail.setType(Constants.ONE);
smsEmail.setObjId(billId);
smsEmail.setObjType(Constants.TWO+"");
smsEmail.setContent(content);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
index 5d36fa2..e456e57 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
@@ -232,6 +232,17 @@
ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())
);
+ if(Constants.equalsInteger(ywContractBill.getStatus(),Constants.ZERO)
+ && (Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.ZERO)
+ || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO)
+ || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.THREE)
+ || Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.FOUR))
+ && Utils.Date.getEnd(ywContractBill.getPlanPayDate()).getTime() < System.currentTimeMillis()){
+ ywContractBill.setIsOverdue(Constants.ONE);
+ }else{
+ ywContractBill.setIsOverdue(Constants.ZERO);
+ }
+
//鎴挎簮鏁版嵁
ywContractBill.setYwContractRoomList(
ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>()
@@ -239,8 +250,8 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
- .selectAs(YwRoom::getArea,YwContractRoom::getArea)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRentArea,YwContractRoom::getArea)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -345,7 +356,7 @@
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.TWO)
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.THREE)
|| Constants.equalsInteger(ywContractBill.getPayStatus(),Constants.FOUR))
- && ywContractBill.getPlanPayDate().getTime() < System.currentTimeMillis()){
+ && Utils.Date.getEnd(ywContractBill.getPlanPayDate()).getTime() < System.currentTimeMillis()){
ywContractBill.setIsOverdue(Constants.ONE);
}else{
ywContractBill.setIsOverdue(Constants.ZERO);
@@ -392,6 +403,8 @@
IPage<YwContractBill> iPage = ywContractBillMapper.selectJoinPage(page,YwContractBill.class,
queryWrapper.selectAll(YwContractBill.class)
.select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
+ .select(" ifnull((select s.status from sms_email s where s.OBJ_ID = t.id and s.OBJ_TYPE = 2 order by s.CREATE_DATE desc limit 1 ),0) ",YwContractBill::getIsSendEmail)
+ .select(" ifnull((select s.status from sms_email s where s.OBJ_ID = t.id and s.OBJ_TYPE = 1 order by s.CREATE_DATE desc limit 1 ),0) ",YwContractBill::getIsSendSms)
.selectAs(YwContract::getCode,YwContractBill::getContractCode)
.selectAs(YwCustomer::getName,YwContractBill::getCustomerName)
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
@@ -405,12 +418,12 @@
YwContractBill::getBillType,model.getBillType())
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getPayStatus()),
YwContractBill::getPayStatus,model.getPayStatus())
- .in(Objects.nonNull(model)&&Objects.nonNull(model.getPayStatus()),
- YwContractBill::getPayStatus,Constants.ZERO,Constants.THREE,Constants.TWO,Constants.FOUR)
+ .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE)
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getType()),
YwContractBill::getType,model.getType())
.le(Objects.nonNull(model)&&Objects.nonNull(model.getIsOverdue())&&Constants.equalsInteger(model.getIsOverdue(),Constants.ONE),
YwContractBill::getPlanPayDate, DateUtil.getCurrDateTime())
+ .lt(YwContractBill::getPlanPayDate, DateUtil.getDate(new Date(),"yyyy-MM-dd"))
.eq(Objects.nonNull(model)&&Objects.nonNull(model.getIsOverdue())&&Constants.equalsInteger(model.getIsOverdue(),Constants.ONE),
YwContractBill::getStatus, Constants.ZERO)
.ge(Objects.nonNull(model)&&Objects.nonNull(model.getPlanPayDateStart()),YwContractBill::getPlanPayDate, Utils.Date.getStart(model.getPlanPayDateStart()))
@@ -455,7 +468,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBillList)){
//鑾峰彇鎵�鏈夋暟鎹�
List<Integer> billIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getId()).collect(Collectors.toList());
- List<Integer> contractIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getContractId()).collect(Collectors.toList());
+ List<Integer> contractIdList = ywContractBillList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)||Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getContractId()).collect(Collectors.toList());
List<YwContractRoom> ywContractRoomList = new ArrayList<>();
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(billIdList)){
ywContractRoomList.addAll( ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>()
@@ -463,7 +476,7 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -479,7 +492,7 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .selectAs(YwRoom::getCode,YwContractRoom::getRoomName)
+ .selectAs(YwRoom::getRoomNum,YwContractRoom::getRoomName)
.leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
@@ -690,7 +703,8 @@
.selectAs(YwContractDetail::getType,YwContractBill::getDetailType)
.selectAs(YwContract::getZlPayType,YwContractBill::getZlPayType)
.selectAs(YwContract::getWyPayType,YwContractBill::getWyPayType)
- .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 0 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 1 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
.leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
.leftJoin(YwContractDetail.class,YwContractDetail::getId,YwContractBill::getDetailId)
@@ -825,7 +839,7 @@
}else if(y.getTitle().equals("${搴旀敹鏃ユ湡}")&&Objects.nonNull(ywContractBill.getPlanPayDate())){
y.setUrl(DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${搴旀敹閲戦}")&&Objects.nonNull(ywContractBill.getReceivableFee())){
- y.setUrl(ywContractBill.getReceivableFee().toString());
+ y.setUrl((ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())).setScale(2).toString());
}else if(y.getTitle().equals("${璐﹀崟澶囨敞}")){
if(StringUtils.isNotBlank(ywContractBill.getRemark())){
y.setUrl(ywContractBill.getRemark());
@@ -926,14 +940,19 @@
.selectAs(YwContractDetail::getType,YwContractBill::getDetailType)
.selectAs(YwContract::getZlPayType,YwContractBill::getZlPayType)
.selectAs(YwContract::getWyPayType,YwContractBill::getWyPayType)
- .select(" ( select ifnull(sum(r.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 0 and yr.type = 0 ) " , YwContractBill::getTotalArea)
+ .select(" ( select ifnull(sum(y.rent_area),0) from yw_room y left join yw_contract_room yr on y.id = yr.room_id where yr.contract_id = t.contract_id and y.IS_INVESTMENT = 1 and yr.type = 0 ) " , YwContractBill::getTotalArea)
.leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
.leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
.leftJoin(YwContractDetail.class,YwContractDetail::getId,YwContractBill::getDetailId)
.eq(YwContractBill::getId,ywSmsEmailBillCallDTO.getBillId())
.last( "limit 1" )
);
- this.dealTempData(tempList,ywContractBill,loginUserInfo);
+
+ List<YwContractBill> ywContractBillList = new ArrayList<>();
+ ywContractBillList.add(ywContractBill);
+ this.dealRoomDetail(ywContractBillList);
+
+// this.dealTempData(tempList,ywContractBill,loginUserInfo);
Member member = memberMapper.selectById(ywSmsEmailBillCallDTO.getUserId());
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀛樺湪鏈煡璇㈠埌鐨勪汉鍛樹俊鎭�");
@@ -947,11 +966,10 @@
if(Constants.equalsInteger(ywSmsEmailBillCallDTO.getSendEmail(),Constants.ONE) && StringUtils.isNotBlank(member.getEmail())
&& emailTempConfigOptional.isPresent()){
String content = this.dealTempSmsEmailData(emailTempConfigOptional.get().getTitle(),tempList,ywContractBill,loginUserInfo);
- smsEmailService.sendEmail(content,member.getEmail(),ywContractBill.getId());
+ smsEmailService.sendEmail(member.getEmail(),content,ywContractBill.getId());
}
}
}
-
}
@@ -963,82 +981,87 @@
for (YwTempConfig y:ywTempConfigList) {
if(y.getTitle().equals("${璐圭敤鍚嶇О}")&&Objects.nonNull(ywContractBill.getCostType())){
//璐圭敤绫诲瀷锛�0=绉熻祦璐癸紱1=鐗╀笟璐癸紱2=绉熻祦鎶奸噾锛�3=鐗╀笟鎶奸噾锛�4=姘寸數璐癸紱5=鏉傞」璐癸紱6=鍏朵粬; 7=淇濊瘉閲�
- if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ZERO)){
- tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦璐�");
+ if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.ONE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.TWO)){
- tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦鎶奸噾");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","绉熻祦鎶奸噾");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.THREE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟鎶奸噾");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鐗╀笟鎶奸噾");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.FOUR)){
- tempStr.replace("${璐圭敤鍚嶇О}","姘寸數璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","姘寸數璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.FIVE)){
- tempStr.replace("${璐圭敤鍚嶇О}","鏉傞」璐�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鏉傞」璐�");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.SIX)){
- tempStr.replace("${璐圭敤鍚嶇О}","鍏朵粬");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","鍏朵粬");
}else if(Constants.equalsInteger(ywContractBill.getCostType(),Constants.SEVEN)){
- tempStr.replace("${璐圭敤鍚嶇О}","淇濊瘉閲�");
+ tempStr = tempStr.replace("${璐圭敤鍚嶇О}","淇濊瘉閲�");
}
- }else if(y.getTitle().equals("${璁¤垂鍛ㄦ湡}")&&Objects.nonNull(ywContractBill.getDetailType())){
- if(Constants.equalsInteger(ywContractBill.getDetailType(),Constants.ZERO)){
- //绉熻祦鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
- if(Objects.nonNull(ywContractBill.getZlPayType())){
- if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ZERO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ONE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.TWO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
- }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.THREE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }else if(y.getTitle().equals("${璁¤垂鍛ㄦ湡}")){
+ if(Objects.nonNull(ywContractBill.getDetailType())){
+ if(Constants.equalsInteger(ywContractBill.getDetailType(),Constants.ZERO)){
+ //绉熻祦鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
+ if(Objects.nonNull(ywContractBill.getZlPayType())){
+ if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.ONE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.TWO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getZlPayType(),Constants.THREE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }
+ }
+ }else{
+ //鐗╀笟鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
+ if(Objects.nonNull(ywContractBill.getWyPayType())){
+ if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ZERO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ONE)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.TWO)){
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
+ }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.THREE)){
+ tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
+ }
}
}
}else{
- //鐗╀笟鏀粯鏂瑰紡 0=涓�娆℃�т粯娆撅紱1=姣忎笁涓湀涓�浠橈紱2=鍏釜鏈堜竴浠橈紱3=涓�骞翠竴浠�
- if(Objects.nonNull(ywContractBill.getWyPayType())){
- if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ZERO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�娆℃�т粯娆�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.ONE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","姣忎笁涓湀涓�浠�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.TWO)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","鍏釜鏈堜竴浠�");
- }else if(Constants.equalsInteger(ywContractBill.getWyPayType(),Constants.THREE)){
- tempStr.replace("${璁¤垂鍛ㄦ湡}","涓�骞翠竴浠�");
- }
- }
+ tempStr = tempStr.replace("${璁¤垂鍛ㄦ湡}","");
}
+
}else if(y.getTitle().equals("${鍗曚环}")&&Objects.nonNull(ywContractBill.getPrice())){
- tempStr.replace("${鍗曚环}",ywContractBill.getPrice().toString());
+ tempStr = tempStr.replace("${鍗曚环}",ywContractBill.getPrice().setScale(2).toString());
}else if(y.getTitle().equals("${鍗曚綅}")&&Objects.nonNull(ywContractBill.getCircleType())){
//浠樻鍛ㄦ湡绫诲瀷 0=鍏冩瘡骞崇背澶�;1=鍏冩瘡骞崇背鏈�;2=鍏冩瘡骞崇背骞�;3=鍏冩瘡澶�;4=鍏冩瘡鏈�;5=鍏冩瘡骞�;6=鍏冩瘡鍦�;
if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.ZERO)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背澶�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背澶�");
}else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.ONE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背鏈�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背鏈�");
}else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.TWO)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背骞�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞崇背骞�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.THREE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡澶�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡澶�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.FOUR)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡鏈�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡鏈�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.FIVE)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡骞�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡骞�");
} else if(Constants.equalsInteger(ywContractBill.getCircleType(),Constants.SIX)){
- tempStr.replace("${鍗曚綅}","鍏冩瘡鍦�");
+ tempStr = tempStr.replace("${鍗曚綅}","鍏冩瘡鍦�");
}
}else if(y.getTitle().equals("${搴旀敹鏃ユ湡}")&&Objects.nonNull(ywContractBill.getPlanPayDate())){
- tempStr.replace("${搴旀敹鏃ユ湡}",DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
+ tempStr = tempStr.replace("${搴旀敹鏃ユ湡}",DateUtil.formatDate(ywContractBill.getPlanPayDate(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${搴旀敹閲戦}")&&Objects.nonNull(ywContractBill.getReceivableFee())){
- tempStr.replace("${搴旀敹閲戦}",ywContractBill.getReceivableFee().toString());
+ tempStr = tempStr.replace("${搴旀敹閲戦}",(ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())).setScale(2).toString());
}else if(y.getTitle().equals("${璐﹀崟澶囨敞}")){
if(StringUtils.isNotBlank(ywContractBill.getRemark())){
- tempStr.replace("${璐﹀崟澶囨敞}",ywContractBill.getRemark());
+ tempStr = tempStr.replace("${璐﹀崟澶囨敞}",ywContractBill.getRemark());
}else{
- tempStr.replace("${璐﹀崟澶囨敞}","");
+ tempStr = tempStr.replace("${璐﹀崟澶囨敞}","");
}
}else if(y.getTitle().equals("${绉熷鍚嶇О}")&&StringUtils.isNotBlank(ywContractBill.getCustomerName())){
- tempStr.replace("${绉熷鍚嶇О}",ywContractBill.getCustomerName());
+ tempStr = tempStr.replace("${绉熷鍚嶇О}",ywContractBill.getCustomerName());
}else if(y.getTitle().equals("${鎴块棿淇℃伅}")){
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getYwContractRoomList())){
StringBuilder roomPathName = new StringBuilder();
@@ -1059,32 +1082,32 @@
roomPathName.append(";");
}
}
- tempStr.replace("${鎴块棿淇℃伅}",roomPathName.toString());
+ tempStr = tempStr.replace("${鎴块棿淇℃伅}",roomPathName.toString());
}
}else if(y.getTitle().equals("${绉熻祦闈㈢Н}")&&Objects.nonNull(ywContractBill.getTotalArea())){
tempStr.replace("${绉熻祦闈㈢Н}",ywContractBill.getTotalArea().toString());
}else if(y.getTitle().equals("${鎵�灞炲叕鍙歌处鎴峰悕绉皚")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getName())){
- tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚",ywAccount.getName());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚",ywAccount.getName());
}else{
- tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙歌处鎴峰悕绉皚","-");
}
}else if(y.getTitle().equals("${鎵�灞炲叕鍙搁摱琛岃处鍙穧")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getName())){
- tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧",ywAccount.getName());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧",ywAccount.getName());
}else{
- tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙搁摱琛岃处鍙穧","-");
}
}else if(y.getTitle().equals("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎")){
if(Objects.nonNull(ywAccount)&&StringUtils.isNotBlank(ywAccount.getBankNo())){
- tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎",ywAccount.getBankNo());
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎",ywAccount.getBankNo());
}else{
- tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎","-");
+ tempStr = tempStr.replace("${鎵�灞炲叕鍙稿紑鎴烽摱琛寎","-");
}
}else if(y.getTitle().equals("${閫氱煡鍗曠敓鎴愭棩鏈焳")){
- tempStr.replace("${閫氱煡鍗曠敓鎴愭棩鏈焳",DateUtil.formatDate(new Date(),"yyyy-MM-dd"));
+ tempStr = tempStr.replace("${閫氱煡鍗曠敓鎴愭棩鏈焳",DateUtil.formatDate(new Date(),"yyyy-MM-dd"));
}else if(y.getTitle().equals("${鍒惰〃浜哄悕绉皚")){
- tempStr.replace("${鍒惰〃浜哄悕绉皚",loginUserInfo.getRealname());
+ tempStr = tempStr.replace("${鍒惰〃浜哄悕绉皚",loginUserInfo.getRealname());
}
}
return tempStr;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 49ecb0b..383ca4c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -84,7 +84,7 @@
model.setEditor(model.getCreator());
if(model.getStartDate().getTime() > System.currentTimeMillis()){
model.setStatus(Constants.ZERO);
- }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && model.getEndDate().getTime() > System.currentTimeMillis()){
+ }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && Utils.Date.getEnd(model.getEndDate()).getTime() > System.currentTimeMillis()){
model.setStatus(Constants.ONE);
}else{
model.setStatus(Constants.TWO);
@@ -112,6 +112,12 @@
t.setEditor(model.getCreator());
t.setType(Constants.ZERO);
list.add(t);
+ }
+ if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
+ .in(YwRoom::getId,model.getRoomList().stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
}
ywContractRoomMapper.insert(list);
}
@@ -341,6 +347,13 @@
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
public Integer backRent(YwContract param){
isParamValidBackRent(param);
+ YwContract model = ywContractMapper.selectById(param.getId());
+ if(Objects.isNull(model)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!(model.getStartDate().getTime()<=param.getBtDate().getTime()&&model.getEndDate().getTime()>=param.getBtDate().getTime())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�绉熸棩鏈熼敊璇紝璇锋鏌ラ��绉熸棩鏈熼渶鍦ㄥ悎鍚屾棩鏈熷唴锛�");
+ }
param.setEditDate(new Date());
param.setEditor(param.getLoginUserInfo().getId());
//澶勭悊
@@ -364,30 +377,47 @@
update.setBtRemark(getbackRentRemarkByParam(param));
ywContractMapper.updateById(update);
dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param));
+ //濡傛灉閫�绉熸棩鏈熷皬浜庡綋鍓嶆棩鏈� 鍒欑洿鎺ラ噴鏀炬埧婧愪俊鎭� 鏈璧�
+ if(Utils.Date.getEnd(param.getBtDate()).getTime()<System.currentTimeMillis()){
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda()
+ .eq(YwContractRoom::getContractId, param.getId()));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓烘湭绉熻祦
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
return param.getId();
}
@Override
public void dealTimeOut(){
- //瀹氭椂澶勭悊鍚堝悓鎵ц涓�
- ywContractMapper.update(new UpdateWrapper<YwContract>()
- .lambda()
- .set(YwContract::getStatus,Constants.ONE)
- .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+
+ List<YwContract> listA = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
.eq(YwContract::getIsdeleted,Constants.ZERO)
.in(YwContract::getStatus,Constants.ZERO)
.apply(" START_DATE < NOW() AND END_DATE > NOW() ")
);
- //瀹氭椂澶勭悊鍚堝悓宸茶繃鏈�
- ywContractMapper.update(new UpdateWrapper<YwContract>()
- .lambda()
- .set(YwContract::getStatus,Constants.TWO)
- .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
- .eq(YwContract::getIsdeleted,Constants.ZERO)
- .in(YwContract::getStatus,Constants.ONE,Constants.ZERO)
- .apply(" END_DATE < CURRENT_DATE ")
- );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(listA)){
+ //瀹氭椂澶勭悊鍚堝悓鎵ц涓�
+ ywContractMapper.update(new UpdateWrapper<YwContract>()
+ .lambda()
+ .set(YwContract::getStatus,Constants.ONE)
+ .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+ .in(YwContract::getId,listA.stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
+
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ listA.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
}
@@ -420,7 +450,7 @@
||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){
if(bill.getStartDate().getTime()<=param.getBtDate().getTime()){
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}else{
//濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴
closeBills.add(bill);
@@ -432,11 +462,11 @@
noBills.add(bill);
}else{
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}
}else if(Constants.equalsInteger(bill.getPayStatus(),Constants.TWO) ){
canBills.add(bill);
- canBillCount = canBillCount ++;
+ canBillCount = canBillCount + 1 ;
}
}
}
@@ -464,12 +494,17 @@
if(fee.compareTo(new BigDecimal(0))== 0){
//濡傛灉璐圭敤姝eソ锛屽垯淇敼璐﹀崟淇℃伅涓哄凡缁撴竻
b.setPayStatus(Constants.ONE);
- canBillCount = canBillCount --;
- }else if(fee.compareTo(new BigDecimal(0))> 0){
+ canBillCount = canBillCount - 1 ;
+ }else if(fee.compareTo(new BigDecimal(0))< 0){
//濡傛灉闇�瑕佽繘琛岄��娆撅紝鏇存柊璐﹀崟淇℃伅涓哄緟閫�娆�
b.setPayStatus(Constants.FOUR);
- }else if(fee.compareTo(new BigDecimal(0)) < 0){
- //濡傛灉璐﹀崟杩樻湁娆惧緟鏀讹紝鍒欎繚鎸佺姸鎬佷笉鍙�
+ }else if(fee.compareTo(new BigDecimal(0)) > 0){
+ //濡傛灉璐﹀崟杩樻湁娆惧緟鏀讹紝鍒欐洿鏂拌处鍗曚负寰呮敹娆�
+ if(b.getPayStatus()==Constants.ZERO){
+ b.setPayStatus(Constants.ZERO);
+ }else if(b.getPayStatus()!=Constants.TWO){
+ b.setPayStatus(Constants.TWO);
+ }
}
b.setReceivableFee(editBill.getReceivableFee());
}
@@ -654,8 +689,8 @@
//2025-1-23 13:56:53 鍔犲叆 鍓嶇鍏ュ弬璋冩暣鍚庣殑璐﹀崟淇℃伅
List<YwContractBill> ywContractBillList = new ArrayList<>();
//鏌ヨ绉熻祦鏉℃
- if(Constants.equalsInteger(model.getType(),Constants.ZERO )
- || Constants.equalsInteger(model.getType(),Constants.TWO)&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details1)){
+ if((Constants.equalsInteger(model.getType(),Constants.ZERO )
+ || Constants.equalsInteger(model.getType(),Constants.TWO))&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details1)){
YwContractDetail ywContractDetail = details1.get(Constants.ZERO);
YwContractBill zlBill = new YwContractBill();
BeanUtils.copyProperties(model.getZlBillDTO(),zlBill);
@@ -691,8 +726,8 @@
}
}
//鏌ヨ鐗╀笟璐﹀崟
- if(Constants.equalsInteger(model.getType(),Constants.ZERO )
- || Constants.equalsInteger(model.getType(),Constants.TWO)&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details2)){
+ if((Constants.equalsInteger(model.getType(),Constants.ZERO )
+ || Constants.equalsInteger(model.getType(),Constants.ONE))&& com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(details2)){
YwContractDetail ywContractDetail = details2.get(Constants.ZERO);
YwContractBill wyBill = new YwContractBill();
BeanUtils.copyProperties(model.getWyBillDTO(),wyBill);
@@ -1396,7 +1431,7 @@
.selectAs(YwCustomer::getName, YwContract::getRenterName)
.selectAs(YwProject::getName, YwContract::getProjectName)
.select("t3.realname", YwContract::getCreatorName)
- .select("(select sum(r.area) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)", YwContract::getTotalArea)
+ .select("(select sum(r.RENT_AREA) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)", YwContract::getTotalArea)
.leftJoin(Company.class, Company::getId, YwContract::getCompanyId)
.leftJoin(SystemUser.class, SystemUser::getId, YwContract::getUserId)
.leftJoin(SystemUser.class, SystemUser::getId, YwContract::getCreator)
@@ -1457,14 +1492,12 @@
//鏌ヨ璐﹀崟闆嗗悎
model.setBillList(ywContractBillMapper.selectJoinList(YwContractBill.class,new MPJLambdaWrapper<YwContractBill>()
.selectAll(YwContractBill.class )
- //.select(" ( select ifnull(sum(case when yw.REVENUE_TYPE = 0 then yw.ACT_RECEIVABLE_FEE else -yw.ACT_RECEIVABLE_FEE end),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.eq( YwContractBill::getContractId,model.getId())
.eq(YwContractBill::getIsdeleted,Constants.ZERO)
.orderByAsc(YwContractBill::getSortnum,YwContractBill::getCreateDate)));
for (YwContractBill ywContractBill:model.getBillList()) {
ywContractBill.setNeedReceivableFee(ywContractBill.getReceivableFee());
-// ywContractBill.setNeedReceivableFee(ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee()));
}
model.setCanBackRentBills(new ArrayList<>());
long nowStart = Utils.Date.getStart(date).getTime();
@@ -1574,6 +1607,9 @@
if (pageWrap.getModel().getCreateDate() != null) {
queryWrapper.ge(YwContract::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
queryWrapper.le(YwContract::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getStatusList() != null) {
+ queryWrapper.in(YwContract::getStatus, pageWrap.getModel().getStatusList());
}
if (pageWrap.getModel().getEditor() != null) {
queryWrapper.eq(YwContract::getEditor, pageWrap.getModel().getEditor());
@@ -1712,4 +1748,63 @@
QueryWrapper<YwContract> wrapper = new QueryWrapper<>(ywContract);
return ywContractMapper.selectCount(wrapper);
}
+
+
+ /**
+ * 鍒版湡鍚堝悓 鏈彂璧烽��绉熺殑杩涜鏁版嵁璋冩暣 鎶婂悎鍚屼笅鐨勬埧婧愰噴鏀� 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ @Override
+ public void updRoomLeaseNowStatus(){
+
+ //瀹氭椂澶勭悊鍚堝悓宸茶繃鏈�
+ List<YwContract> ywContractList = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .in(YwContract::getStatus,Constants.ONE,Constants.ZERO)
+ .apply(" DATE(END_DATE) = CURRENT_DATE ")
+ );
+
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractList)){
+ ywContractMapper.update(new UpdateWrapper<YwContract>()
+ .lambda()
+ .set(YwContract::getStatus,Constants.TWO)
+ .set(YwContract::getEditDate,DateUtil.getCurrDateTime())
+ .in(YwContract::getId,ywContractList.stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
+
+
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓虹璧佷腑
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
+ }
+
+
+ /**
+ * 閫�绉熶腑/宸查��绉熷悎鍚� 鎶婂埌浜嗛��绉熸棩鏈熸椂闂寸殑鏁版嵁 杩涜鎴挎簮閲婃斁 瀹氭椂鏃堕棿闇�瑕佸湪姣忓ぉ鏅氫笂12鐐瑰墠
+ */
+ @Override
+ public void updRentContractStatus(){
+ List<YwContract> ywContractList = ywContractMapper.selectList(new QueryWrapper<YwContract>().lambda()
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .in(YwContract::getStatus,Constants.THREE,Constants.FOUR)
+ .eq(YwContract::getBtDate,DateUtil.getCurrDate())
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractList)){
+ List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
+ ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(contractRoomList)){
+ //鏇存柊鎴挎簮鏁版嵁涓哄緟绉熻祦
+ roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ZERO)
+ .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
+ );
+ }
+ }
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
index dda5508..69ddf41 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -430,7 +430,7 @@
ywDeviceStatusDataVO.setAmount(ywDeviceList.size());
ywDeviceStatusDataVO.setWorkAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
ywDeviceStatusDataVO.setExceptionAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size());
- ywDeviceStatusDataVO.setErrAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size());
+ ywDeviceStatusDataVO.setErrAmount(ywDeviceList.stream().filter(i->Objects.nonNull(i.getStatus())&&Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size());
return ywDeviceStatusDataVO;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
index a434cd2..ea498da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwMaterialServiceImpl.java
@@ -1,6 +1,8 @@
package com.doumee.service.business.impl;
+import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -9,11 +11,14 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CategoryMapper;
import com.doumee.dao.business.YwMaterialMapper;
import com.doumee.dao.business.YwOutinboundMapper;
import com.doumee.dao.business.YwOutinboundRecordMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.MultifileMapper;
+import com.doumee.dao.system.dto.ImportMaterialDTO;
+import com.doumee.dao.system.dto.ImportSystemUserDTO;
import com.doumee.dao.system.model.Multifile;
import com.doumee.service.business.YwMaterialService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,16 +27,19 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import javafx.scene.paint.Material;
import org.apache.commons.lang.StringUtils;
-import org.checkerframework.checker.units.qual.A;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 杩愮淮璧勪骇淇℃伅琛⊿ervice瀹炵幇
@@ -51,6 +59,9 @@
private YwOutinboundRecordMapper ywOutinboundRecordMapper;
@Autowired
+ private CategoryMapper categoryMapper;
+
+ @Autowired
private SystemDictDataBiz systemDictDataBiz;
@Override
@@ -67,8 +78,17 @@
ywMaterial.setId(null);
if(StringUtils.isBlank(ywMaterial.getCode())){
//鑷姩鐢熸垚 TODO 瀛樺湪闂
- Long countCode = ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getAutoCode, Constants.ONE));
- String nextCode = StringUtils.leftPad(Long.toString(countCode + 1),4,"0");
+ YwMaterial lastAutoMaterial = ywMaterialMapper.selectOne(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getAutoCode,Constants.ONE).last("limit 1 "));
+ Long countCode = 0L;
+ String nextCode = StringUtils.leftPad(Long.toString(countCode + 1 ),4,"0");
+ if(Objects.nonNull(lastAutoMaterial)){
+ Long maxCode = Long.valueOf(lastAutoMaterial.getCode().replace("P",""));
+ nextCode = StringUtils.leftPad(Long.toString(maxCode + 1),4,"0");
+ while (ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getCode, "P"+nextCode))>Constants.ZERO){
+ countCode = countCode + 1 ;
+ nextCode = StringUtils.leftPad(Long.toString(countCode),4,"0");
+ }
+ }
ywMaterial.setCode("P"+nextCode);
ywMaterial.setAutoCode(Constants.ONE);
}else{
@@ -247,4 +267,67 @@
QueryWrapper<YwMaterial> wrapper = new QueryWrapper<>(ywMaterial);
return ywMaterialMapper.selectCount(wrapper);
}
+
+
+ @Override
+ public Integer importMaterialBatch(MultipartFile file,LoginUserInfo loginUserInfo) {
+ try {
+ ExcelImporter ie = new ExcelImporter(file, 0, 0);
+ List<ImportMaterialDTO> dataList = ie.getDataList(ImportMaterialDTO.class, null);
+ if (CollectionUtils.isEmpty(dataList)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+ }
+
+ List<Category> allCategory = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
+ .eq(Category::getIsdeleted,Constants.ZERO).eq(Category::getIsdeleted,Constants.ZERO)
+ .eq(Category::getType,Constants.SEVEN)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(allCategory)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏃犲垎绫诲熀纭�鏁版嵁锛�");
+ }
+ List<Category> categoryList = allCategory.stream().filter(i->Objects.isNull(i.getParentId())).collect(Collectors.toList());
+ for (Category category: categoryList) {
+ category.setChildCategoryList(
+ allCategory.stream().filter(i->Objects.nonNull(i.getParentId())&&Constants.equalsInteger(i.getParentId(),category.getId())).collect(Collectors.toList())
+ );
+ }
+ List<YwMaterial> ywMaterialList = new ArrayList<>();
+ for (int i = 0; i < dataList.size(); i++) {
+ ImportMaterialDTO importMaterialDTO = dataList.get(i);
+ if(Objects.isNull(importMaterialDTO)
+ || StringUtils.isBlank(importMaterialDTO.getName())
+ || StringUtils.isBlank(importMaterialDTO.getCategoryName())
+ || StringUtils.isBlank(importMaterialDTO.getCategoryChildName())
+ || StringUtils.isBlank(importMaterialDTO.getQrcode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛屽繀濉」缂哄け锛�");
+ }
+ YwMaterial ywMaterial = new YwMaterial();
+ BeanUtils.copyProperties(importMaterialDTO,ywMaterial);
+ Optional<Category> categoryOptional = categoryList.stream().filter(j->j.getName().equals(importMaterialDTO.getCategoryName())).findAny();
+ if(categoryOptional.isPresent()){
+ Category category = categoryOptional.get();
+ ywMaterial.setParentCateId(category.getId());
+ Optional<Category> childCategoryOptional = category.getChildCategoryList().stream().filter(j->j.getName().equals(importMaterialDTO.getCategoryChildName())).findAny();
+ if(childCategoryOptional.isPresent()){
+ ywMaterial.setCateId(childCategoryOptional.get().getId());
+ }else{
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛岀墿鏂欏瓙鍒嗙被鏈煡璇㈠埌锛�");
+ }
+ }else{
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绗�"+(i+1)+"琛岀墿鏂欏垎绫绘湭鏌ヨ鍒帮紒");
+ }
+ ywMaterialList.add(ywMaterial);
+ }
+
+ for (YwMaterial ywMaterial:ywMaterialList) {
+ ywMaterial.setLoginUserInfo(loginUserInfo);
+ this.create(ywMaterial);
+ }
+ } catch (Exception e) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),e.getMessage());
+
+ }
+ return null;
+ }
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
index 203c692..42437cd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwOutinboundServiceImpl.java
@@ -95,7 +95,7 @@
public List<YwOutinboundRecord> verifyData(YwOutinbound ywOutinbound){
if(Objects.isNull(ywOutinbound)
|| Objects.isNull(ywOutinbound.getType())
-// || (Objects.nonNull(ywOutinbound.getType()) && (!(ywOutinbound.getType() == Constants.ZERO || ywOutinbound.getType() == Constants.ONE)))
+ || ((ywOutinbound.getType() >= 5 && ywOutinbound.getType() <= 9 ) && Objects.isNull(ywOutinbound.getOutUserId()) )
|| Objects.isNull(ywOutinbound.getWarehouseId())
|| Objects.isNull(ywOutinbound.getDoneDate())
|| com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywOutinbound.getRecordList())
@@ -158,9 +158,9 @@
//鍑哄簱
if(Objects.isNull(ywStock) || ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) < Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), ywMaterial.getName() + "搴撳瓨涓嶈冻锛岃鍒锋柊閲嶈瘯");
- }else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
+ }/*else if(ywStock.getStock().compareTo(ywOutinboundRecord.getStock()) == Constants.ZERO){
ywStockMapper.deleteById(ywStock.getId());
- }else{
+ }*/else{
ywStockMapper.update(new UpdateWrapper<YwStock>().lambda()
.setSql(" stock = ( stock - "+ywOutinboundRecord.getStock()+") ")
.set(YwStock::getEditDate, DateUtil.getCurrDateTime())
@@ -252,22 +252,29 @@
}
List<Integer> typeList = Constants.ywOutInType.getAllTypeKey(model.getInOut());
queryWrapper.selectAll(YwOutinbound.class)
- .selectAs(SystemUser::getRealname,YwOutinbound::getCreateUserName)
+ .select(" s1.realname ",YwOutinbound::getCreateUserName)
+ .select(" s2.realname ",YwOutinbound::getOutUserName)
.selectAs(YwWarehouse::getName,YwOutinbound::getWarehouseName)
- .leftJoin(SystemUser.class,SystemUser::getId,YwOutinbound::getCreator)
.leftJoin(YwWarehouse.class,YwWarehouse::getId,YwOutinbound::getWarehouseId)
+ .leftJoin("system_user s1 on t.creator = s1.id")
+ .leftJoin("system_user s2 on t.out_user_id = s2.id")
.like(StringUtils.isNotBlank(model.getCode()),YwOutinbound::getCode,model.getCode())
.eq(Objects.nonNull(model.getType()),YwOutinbound::getType,model.getType())
.eq(Objects.nonNull(model.getWarehouseId()),YwOutinbound::getWarehouseId,model.getWarehouseId())
.in(Objects.nonNull(model.getInOut()),YwOutinbound::getType,typeList)
;
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(pageWrap.getSorts())){
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
}
+ }else{
+ queryWrapper.orderByDesc(YwOutinbound::getCode);
}
+
IPage iPage = ywOutinboundMapper.selectJoinPage(page,YwOutinbound.class,queryWrapper);
if(Objects.nonNull(iPage.getRecords())){
iPage.setRecords(this.getDetailData(iPage.getRecords()));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
index 548644c..12799da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
@@ -22,14 +22,32 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatWriter;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+import com.google.zxing.qrcode.encoder.ByteMatrix;
+import com.google.zxing.qrcode.encoder.Encoder;
+import com.google.zxing.qrcode.encoder.QRCode;
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
+import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.Charset;
+import java.nio.file.FileSystems;
+import java.nio.file.Path;
+import java.util.*;
/**
* 杩愮淮宸℃鐐逛俊鎭〃Service瀹炵幇
@@ -49,15 +67,21 @@
@Override
public Integer create(YwPatrolPoint ywPatrolPoint) {
if(Objects.isNull(ywPatrolPoint)
- || Objects.isNull(ywPatrolPoint.getCode())
+// || Objects.isNull(ywPatrolPoint.getCode())
|| Objects.isNull(ywPatrolPoint.getName())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO)
- .eq(YwPatrolPoint::getCode,ywPatrolPoint.getCode()))>Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸℃鐐圭紪鐮侀噸澶�!");
+
+ String pre = systemDictDataBiz.queryByCode(Constants.XUNJIAN,Constants.XJ_POINT_PREFIX).getCode();
+ int length = 8;
+ try {
+ length = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.XUNJIAN,Constants.XJ_POINT_CODE_LENGTH).getCode());
+ }catch (Exception e){
}
+ long num = ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>());
+
+ ywPatrolPoint.setCode(pre+Constants.formartNumString (length,(num+1)));
LoginUserInfo loginUserInfo = ywPatrolPoint.getLoginUserInfo();
ywPatrolPoint.setCreateDate(new Date());
ywPatrolPoint.setCreator(loginUserInfo.getId());
@@ -82,10 +106,11 @@
@Override
public void deleteById(Integer id, LoginUserInfo user) {
- ywPatrolPointMapper.update(new UpdateWrapper<YwPatrolPoint>().lambda().set(YwPatrolPoint::getIsdeleted,Constants.ONE)
+ ywPatrolPointMapper.update(new UpdateWrapper<YwPatrolPoint>().lambda()
+ .set(YwPatrolPoint::getIsdeleted,Constants.ONE)
.set(YwPatrolPoint::getEditDate, DateUtil.getCurrDateTime())
.set(YwPatrolPoint::getEditor,user.getId())
- .eq(YwPatrolPoint::getId,user.getId())
+ .eq(YwPatrolPoint::getId,id)
);
}
@@ -94,7 +119,120 @@
UpdateWrapper<YwPatrolPoint> deleteWrapper = new UpdateWrapper<>(ywPatrolPoint);
ywPatrolPointMapper.delete(deleteWrapper);
}
+ @Override
+ public void exportQrcodes(Integer id, HttpServletResponse response){
+ try {
+ List<File> fileList = new ArrayList<>();
+ List<YwPatrolPoint> bikesList = ywPatrolPointMapper.selectList(new QueryWrapper<YwPatrolPoint>().lambda()
+ .eq(YwPatrolPoint::getIsdeleted,Constants.ZERO)
+ .eq(id!=null,YwPatrolPoint::getId,id)
+ );
+ if(bikesList== null || bikesList.size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ // 鍒涘缓涓存椂鏂囦欢鐨勫墠缂�鍜屽悗缂�
+ String path = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_AUTH_URL).getCode();
+ String uri = systemDictDataBiz.queryByCode(Constants.XUNJIAN,Constants.XJ_RERIRECT_URI).getCode();
+ String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode() ;
+ // 鍒涘缓涓存椂鏂囦欢
+ for(YwPatrolPoint l : bikesList){
+ if(StringUtils.isNotBlank(l.getCode())){
+ String redirectUri = uri.replace("${ywid}",l.getCode());
+ String url = path.replace("${url}",URLEncoder.encode(redirectUri)).replace("${appid}",appId);
+ File file = generateQRCodeImage(url,100,100,l.getCode()+".png");
+ if(file!=null && file.isFile()){
+ fileList.add(file);
+ }
+ }
+ }
+ if(fileList == null || fileList.size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝涓嬭浇鍐呭涓虹┖锛屾搷浣滃け璐ワ紒");
+ }
+ String fileName = "宸℃鐐逛簩缁寸爜瀵煎嚭_"+System.currentTimeMillis()+".zip" ;
+ String encodeFileName =URLEncoder.encode(fileName, Charset.forName("UTF-8").toString())+".zip";
+ response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
+ response.setContentType("application/octet-stream");
+ response.setHeader("eva-opera-type", "download");
+ response.setHeader("eva-download-filename", encodeFileName);
+ packFilesToZip(fileList,response.getOutputStream());
+ } catch (IOException e) {
+ throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ }
+ }
+ public static File generateQRCodeImage(String text, int width, int height, String fileName) {
+ try {
+ // 鍒涘缓浜岀淮鐮佹暟鎹煩闃�
+ Map<EncodeHintType, Object> hints = new HashMap<>();
+ hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 璁剧疆瀛楃缂栫爜涓篣TF-8
+ hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 璁剧疆绾犻敊绛夌骇涓篐
+ hints.put(EncodeHintType.MARGIN, 0); // 璁剧疆鐧借竟涓�0
+ BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE , width, height, hints);
+ // 淇濆瓨浜岀淮鐮佸浘鐗囧埌鏂囦欢绯荤粺
+ File f = new File("temp/");
+ if(!f.exists()){
+ f.mkdirs();
+ }
+// bitMatrix = renderResult(bitMatrix,width,height);
+ Path path = FileSystems.getDefault().getPath("temp/"+fileName);
+ MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); // 淇濆瓨涓篜NG鏍煎紡鐨勫浘鐗�
+ return path.toFile();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+ File f =generateQRCodeImage("dj灏戞椂璇佃瘲涔﹀皯鏃惰璇椾功鏄拻鏄拻鏄拻",100,100,UUID.randomUUID().toString()+".png");
+ System.out.println(f.getAbsolutePath());
+ }
+
+ private static BitMatrix renderResult(BitMatrix input, int width, int height) {
+ if (input == null) {
+ return null;
+ }
+ int inputWidth = input.getWidth();
+ int inputHeight = input.getHeight();
+ // 渚濇嵁鐢ㄦ埛鐨勮緭鍏ュ楂橈紝璁$畻鏈�鍚庣殑杈撳嚭瀹介珮
+ int outputWidth = Math.max(width, inputWidth);
+ int outputHeight = Math.max(height, inputHeight);
+
+ //璁$畻缂╂斁姣斾緥
+ int multiple = Math.min(outputWidth / inputWidth, outputHeight / inputHeight);
+
+ BitMatrix output = new BitMatrix(outputWidth, outputHeight);
+ int inputY = 0;
+ // 宓屽寰幆锛屽皢ByteMatrix鐨勫唴瀹硅绠梡adding鍚庤浆鎹㈡垚BitMatrix
+ for (int outputY = 0; inputY < inputHeight; outputY += multiple) {
+ int inputX = 0;
+ for (int outputX = 0; inputX < inputWidth; outputX += multiple) {
+ if (input.get(inputX, inputY)) {
+ output.setRegion(outputX, outputY, multiple, multiple);
+ }
+ inputX++;
+ }
+ inputY++;
+ }
+
+ return output;
+ }
+ public static void packFilesToZip(List<File> files, ServletOutputStream os) throws IOException {
+ try (ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os)) {
+ for (File file : files) {
+ ZipArchiveEntry entry = new ZipArchiveEntry(file.getName());
+ zipOutputStream.putArchiveEntry(entry);
+ try (FileInputStream fileInputStream = new FileInputStream(file)) {
+ byte[] buffer = new byte[1024];
+ int length;
+ while ((length = fileInputStream.read(buffer)) > 0) {
+ zipOutputStream.write(buffer, 0, length);
+ }
+ }
+ zipOutputStream.closeArchiveEntry();
+ }
+ }
+ }
@Override
public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
if (CollectionUtils.isEmpty(ids)) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index c8c5326..cb32343 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -123,7 +123,7 @@
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){
for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) {
- this.createTask(new Date(),ywPatrolScheme);
+ this.createTask(DateUtil.getXDayAfterDate(new Date(),2),ywPatrolScheme);
}
}
}
@@ -301,6 +301,7 @@
ywPatrolScheme.setEditDate(new Date());
ywPatrolScheme.setEditor(loginUserInfo.getId());
ywPatrolSchemeMapper.updateById(ywPatrolScheme);
+ this.createThreeDaysData(ywPatrolScheme);
}
@Override
@@ -356,15 +357,9 @@
YwPatrolScheme model = pageWrap.getModel();
queryWrapper.selectAll(YwPatrolScheme.class)
.select(" t2.realName as createUserName ")
-// .select(" t1.realName as userName ")
-// .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
.leftJoin(" system_user t2 on t.creator = t2.id ")
.eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
.like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
- //鏌ヨ鏈夋椂娈典氦闆嗙殑鏁版嵁
- /* .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
- " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
- )*/
.ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
.le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
.ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec()))
@@ -405,21 +400,24 @@
ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO);
return;
}
+
+ //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
+ if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO))
+ .collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
+ ywPatrolScheme.setSchemeStatus(Constants.ZERO);
+ ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
+ .collect(Collectors.toList()).size());
+ return;
+ }
+
//杩囨护鏁版嵁鏄惁瀛樺湪杩涜涓殑
- if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){
+ if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)||Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()>Constants.ZERO){
ywPatrolScheme.setSchemeStatus(Constants.ONE);
ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
.collect(Collectors.toList()).size());
return;
}
- //杩囨护鏁版嵁鏄笉鏄叏閮ㄦ湭寮�濮�
- if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
- ywPatrolScheme.setSchemeStatus(Constants.ZERO);
- ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
- .collect(Collectors.toList()).size());
- return;
- }
//杩囨护鏁版嵁鏄笉鏄叏閮ㄥ凡瀹屾垚
if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
,ywPatrolTaskList.size())){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
index b1fbb04..963f7b8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
@@ -28,9 +28,11 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 杩愮淮宸℃浠诲姟 - 宸℃鐐逛俊鎭〃Service瀹炵幇
@@ -134,7 +136,7 @@
.selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTaskRecord::getSchemeTitle)
- .selectAs(YwPatrolTask::getTitle,YwPatrolTaskRecord::getTaskCode)
+ .selectAs(YwPatrolTask::getCode,YwPatrolTaskRecord::getTaskCode)
.selectAs(YwPatrolTask::getStartDate,YwPatrolTaskRecord::getStartDate)
.selectAs(YwPatrolTask::getEndDate,YwPatrolTaskRecord::getEndDate)
@@ -213,7 +215,8 @@
if(Objects.isNull(ywPatrolScheme)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸℃璁″垝淇℃伅");
}
- if(!ywPatrolScheme.getUserIds().equals(loginUserInfo.getId().toString())){
+ List<String> userIdList = Arrays.asList(ywPatrolScheme.getUserIds().split(","));
+ if(userIdList.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),loginUserInfo.getId())).collect(Collectors.toList()).size()<=0){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闈炴偍鐨勫贰妫�浠诲姟鏃犳硶杩涜澶勭悊");
}
YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
index 104c528..31722e2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -85,6 +85,7 @@
.selectAll(YwPatrolTask.class)
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
+ .selectAs(YwPatrolScheme::getUserIds,YwPatrolTask::getUserIds)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
@@ -139,6 +140,7 @@
queryWrapper.selectAll(YwPatrolTask.class)
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
+ .selectAs(YwPatrolScheme::getUserIds,YwPatrolTask::getUserIds)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
.select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
@@ -146,7 +148,7 @@
.leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
.eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
.eq(Objects.nonNull(model.getStatus()) && !Constants.equalsInteger(model.getStatus(),Constants.TWO),YwPatrolTask::getStatus, model.getStatus())
- .eq(Objects.nonNull(model.getDealUserId()),YwPatrolScheme::getUserIds, model.getDealUserId())
+ .apply(Objects.nonNull(model.getDealUserId())," find_in_set("+model.getDealUserId()+",t2.USER_IDS) ")
.apply(Objects.nonNull(model.getStatus()) && Constants.equalsInteger(model.getStatus(),Constants.TWO)," t.status = 1 and t.END_DATE > now() ")
.apply(StringUtils.isNotBlank(model.getQueryStatus())," find_in_set(t.status ,'"+model.getQueryStatus()+"') ")
.like(StringUtils.isNotBlank(model.getPlanTitle()),YwPatrolScheme::getTitle,model.getPlanTitle())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
index 36cda9c..ee5fbf6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
@@ -296,13 +296,7 @@
List<YwRoom> ywRoomList = ywRoomMapper.selectJoinList(YwRoom.class,new MPJLambdaWrapper<YwRoom>()
.selectAll(YwRoom.class)
-// .select(" ( SELECT count(1) FROM yw_contract y1 " +
-// " left join yw_contract_room y2 on y1.id = y2.contract_id " +
-// " where 1 = 1 and y2.type = 0 and y1.`STATUS` in( 0,1,2) " +
-// " and y1.START_DATE < now() and y1.END_DATE > now() and y2.ROOM_ID = yw_room.id ) as investmentStatus ")
- .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
- "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
- "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.eq(YwRoom::getIsdeleted,Constants.ZERO)
.eq(YwRoom::getStatus,Constants.ZERO)
.eq(YwRoom::getIsInvestment,Constants.ONE)
@@ -313,7 +307,7 @@
" ) ")
.apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in (" +
" SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` = 3 " +
- " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE > '"+ dataDTO.getStartDate() +" 00:00:00' " +
+ " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE >= '"+ dataDTO.getStartDate() +" 00:00:00' " +
" ) ")
.orderByAsc(YwRoom::getRoomNum)
);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
index 1b7a0a9..65e696b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
@@ -67,6 +67,7 @@
model.setStatus(Constants.ZERO);
model.setEditDate(model.getCreateDate());
model.setEditor(model.getCreator());
+ model.setLeaseNowStatus(Constants.ZERO);
ywRoomMapper.insert(model);
return model.getId();
}
@@ -138,9 +139,10 @@
queryWrapper.selectAll(YwRoom.class )
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
- .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
- "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
- "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+// .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
+// "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
+// "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
.leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
@@ -173,9 +175,10 @@
.selectAs(YwProject::getName,YwRoom::getProjectName)
.selectAs(YwFloor::getName,YwRoom::getFloorName)
.selectAs(YwBuilding::getName,YwRoom::getBuildingName)
- .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
- "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
- "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+// .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END " +
+// "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0 " +
+// "where y1.`STATUS` <> 4 and y2.room_id = t.id order by y1.create_date desc limit 1 ) ,0) ",YwRoom::getLeaseStatus)
+ .select(" ifnull( ( case when t.IS_INVESTMENT = 0 then 2 else t.LEASE_NOW_STATUS end ) ,0) ",YwRoom::getLeaseStatus)
.leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
.leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
.leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor);
@@ -245,11 +248,11 @@
}
queryWrapper.orderByAsc(YwRoom::getRoomNum);
IPage<YwRoom> iPage = ywRoomMapper.selectJoinPage(page,YwRoom.class, queryWrapper);
- for (YwRoom ywRoom:iPage.getRecords()) {
- if(Constants.equalsInteger(ywRoom.getIsInvestment(),Constants.ZERO)){
- ywRoom.setLeaseStatus(Constants.TWO);
- }
- }
+// for (YwRoom ywRoom:iPage.getRecords()) {
+// if(Constants.equalsInteger(ywRoom.getIsInvestment(),Constants.ZERO)){
+// ywRoom.setLeaseStatus(Constants.TWO);
+// }
+// }
return PageData.from(iPage);
}
@@ -302,10 +305,34 @@
.eq(YwContractRoom::getType,Constants.ZERO)
.eq(YwContractRoom::getRoomId,ywRoom.getId())
.orderByDesc(YwContract::getStartDate)
+ .orderByDesc(YwContract::getId)
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){
roomStatusDataVO.setRoomStatus(Constants.ZERO);
- roomStatusDataVO.setFreeDayAmount(Constants.ZERO);
+ //鏌ヨ鏄惁鏈夊凡閫�绉熷悎鍚�
+ List<YwContract> roomRentContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>()
+ .selectAll(YwContract.class)
+ .selectAs(YwCustomer::getName,YwContract::getRenterName)
+ .leftJoin(YwContractRoom.class,YwContractRoom::getContractId,YwContract::getId)
+ .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .eq(YwContract::getStatus,Constants.FOUR)
+ .eq(YwContractRoom::getType,Constants.ZERO)
+ .eq(YwContractRoom::getRoomId,ywRoom.getId())
+ .orderByDesc(YwContract::getStartDate)
+ .orderByDesc(YwContract::getId)
+ );
+ if(CollectionUtils.isEmpty(roomRentContractList)){
+ roomStatusDataVO.setFreeDayAmount(Constants.ZERO);
+ }else{
+ YwContract ywContract = roomRentContractList.get(Constants.ZERO);
+ //鏌ヨ閫�绉熸棩鏈熷拰褰撳墠鏃ユ湡鐩稿樊澶╂暟
+ Integer btDays = DateUtil.daysBetweenDates(new Date(),ywContract.getBtDate());
+ if(btDays>=Constants.ZERO){
+ roomStatusDataVO.setFreeDayAmount(btDays);
+ }
+ }
+
}else{
YwContract ywContract = roomContractList.get(Constants.ZERO);
//鍚堝悓鐘舵�� 0寰呮墽琛� 1鎵ц涓� 2宸插埌鏈� 3閫�绉熶腑 4宸查��绉�
@@ -397,7 +424,7 @@
.select(" ( select ifnull(sum(yr.RENT_AREA),0) from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and y.CONTRACT_ID = t.id ) " , YwContract::getTotalArea)
.select(" ( select ifnull(sum(y.TOTLE_FEE),0) from yw_contract_bill y where y.CONTRACT_ID = t.id and y.type = 0 and y.COST_TYPE=0 and y.BILL_TYPE = 0 ) " , YwContract::getTotalFee)
.eq(YwContract::getIsdeleted,Constants.ZERO)
- .in(YwContract::getStatus,Constants.ONE,Constants.TWO,Constants.THREE)
+ .in(YwContract::getStatus,Constants.ZERO,Constants.ONE,Constants.TWO,Constants.THREE)
.apply(Objects.nonNull(model.getBuildingId()),
" t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.BUILDING_ID = "+model.getBuildingId()+" ) ")
.apply(Objects.nonNull(model.getProjectId()),
@@ -434,7 +461,8 @@
.eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId())
.eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId())
.in(YwContractRoom::getContractId,contractId)
- .orderByAsc(YwRoom::getSortnum)
+ .last(" group by t.id " +
+ "ORDER BY t.sortnum ASC ")
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywLeaseRoomList)){
ywRoomContractDataVO.setLeaseArea(
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
index b04ef29..a1531fe 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingRecordServiceImpl.java
@@ -195,6 +195,7 @@
.set(YwStocktakingRecord::getActStock,ywStocktakingRecord.getActStock())
.set(YwStocktakingRecord::getUserId,loginUserInfo.getId())
.set(YwStocktakingRecord::getPlanDate, DateUtil.getCurrDateTime())
+ .set(StringUtils.isNotBlank(ywStocktakingRecord.getRemark()),YwStocktakingRecord::getRemark, ywStocktakingRecord.getRemark())
.eq(YwStocktakingRecord::getId,ywStocktakingRecord.getId())
);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
index 76ba25d..3ca923e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwStocktakingServiceImpl.java
@@ -442,7 +442,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(recordList)){
//鍚堣鐩樼偣鏁版嵁
ywStocktaking.setFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size());
- ywStocktaking.setUnFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
+ ywStocktaking.setUnFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size());
ywStocktaking.setEqualAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList()).size());
ywStocktaking.setLossAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ONE)).collect(Collectors.toList()).size());
ywStocktaking.setProfitAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.TWO)).collect(Collectors.toList()).size());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
index 6568f12..c68200e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwTempConfigServiceImpl.java
@@ -232,8 +232,6 @@
.set(YwTempConfig::getUrl,leasesTemp.getUrl())
.eq(YwTempConfig::getId,leasesTemp.getId())
);
-
-
YwTempConfig otherTemp = ywCallTempDataDTO.getOtherTemp();
if(Objects.isNull(otherTemp.getId())
|| Objects.isNull(otherTemp.getTitle())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
index cf15928..8e969d7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWarehouseServiceImpl.java
@@ -132,7 +132,7 @@
if(ywStockMapper.selectCount(new QueryWrapper<YwStock>().lambda().eq(YwStock::getIsdeleted,Constants.ZERO)
.gt(YwStock::getStock,Constants.ZERO)
.eq(YwStock::getWarehouseId,ywWarehouse.getId()))>Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠浠撳簱鍐呮湁搴撳瓨鐨勭墿鏂欙紝涓嶅彲鍒犻櫎");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠浠撳簱鍐呮湁搴撳瓨鐨勭墿鏂欙紝涓嶅彲绂佺敤");
};
ywWarehouseMapper.update(new UpdateWrapper<YwWarehouse>().lambda().eq(YwWarehouse::getId,ywWarehouse.getId()).set(YwWarehouse::getStatus,ywWarehouse.getStatus()));
}
diff --git a/server/visits/dmvisit_service/src/main/resources/application-dev.yml b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
index b3984c7..57baaf0 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-dev.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
redis:
diff --git a/server/visits/dmvisit_service/src/main/resources/application-test.yml b/server/visits/dmvisit_service/src/main/resources/application-test.yml
index a8d00a5..c85d9ec 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-test.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-test.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://192.168.0.211:3306/funingyunwei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: root
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
redis:
@@ -28,7 +28,7 @@
debug_model: true
########################鍘嬬缉鍖呮枃浠朵綅缃� ########################
-zip_file_path: d://
+zip_file_path: /usr/local/static_resources/fn/
########################鍚屾鏁版嵁妯″紡 ########################
data-sync:
org-user-data-origin: 0 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
diff --git a/temp/f1fe6230-8109-4137-b2fb-eb906d31fddf.png b/temp/f1fe6230-8109-4137-b2fb-eb906d31fddf.png
new file mode 100644
index 0000000..158872d
--- /dev/null
+++ b/temp/f1fe6230-8109-4137-b2fb-eb906d31fddf.png
Binary files differ
--
Gitblit v1.9.3