From 364d3221b9a8e6dd3a19701d30c4dc4239ef8abf Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 07 二月 2025 11:48:49 +0800 Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/funingyunwei into 2.0.1 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java | 21 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java | 6 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 16 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java | 38 + server/visits/dmvisit_service/src/main/resources/application-dev.yml | 12 server/visits/dmvisit_service/src/main/resources/application-pro.yml | 13 h5/pages/inventory/detail.vue | 1024 ++++++++++++++++++++-------------------- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 21 h5/pages/workOrder/wait.vue | 6 h5/pages/login.vue | 4 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 47 + admin/src/views/stock/components/AssetSel.vue | 16 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java | 32 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java | 3 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java | 52 ++ admin/src/views/stock/components/config.js | 4 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java | 45 + server/visits/dmvisit_service/src/main/resources/application-test.yml | 12 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 4 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java | 1 admin/src/api/store/index.js | 3 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java | 12 h5/pages/polling/empty.vue | 15 admin/src/views/stock/components/OutEdit.vue | 2 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java | 50 ++ admin/src/views/stock/out.vue | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java | 1 server/system_gateway/src/main/resources/application.yml | 2 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java | 25 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java | 5 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 3 31 files changed, 913 insertions(+), 584 deletions(-) diff --git a/admin/src/api/store/index.js b/admin/src/api/store/index.js index ae84b86..03aac7a 100644 --- a/admin/src/api/store/index.js +++ b/admin/src/api/store/index.js @@ -7,7 +7,8 @@ } export function ywOutinboundEx (data) { return request.post('/visitsAdmin/cloudService/business/ywOutinbound/exportExcel', data, { - trim: true + trim: true, + download: true }) } export function ywOutinboundDetail (id) { diff --git a/admin/src/views/stock/components/AssetSel.vue b/admin/src/views/stock/components/AssetSel.vue index d4bb919..f06fbda 100644 --- a/admin/src/views/stock/components/AssetSel.vue +++ b/admin/src/views/stock/components/AssetSel.vue @@ -21,14 +21,14 @@ </el-form> <!-- --> <el-table @selection-change="handleSelectionChange" :data="list" stripe> - <el-table-column type="selection" width="55" /> + <el-table-column type="selection" width="55" /> <el-table-column prop="code" label="鐗╂枡缂栫爜" min-width="100px"></el-table-column> <el-table-column prop="name" label="鐗╂枡鍚嶇О" min-width="80px"></el-table-column> <el-table-column prop="qrcode" label="鏉$爜" min-width="100px"></el-table-column> <el-table-column prop="brand" label="鍝佺墝" min-width="80px"></el-table-column> <el-table-column prop="attr" label="瑙勬牸鍨嬪彿" min-width="80px"></el-table-column> <el-table-column prop="unitName" label="鍗曚綅" min-width="80px"></el-table-column> - <el-table-column prop="maxStock" label="搴撳瓨" min-width="80px"></el-table-column> + <el-table-column v-if="isOut" prop="maxStock" label="搴撳瓨" min-width="80px"></el-table-column> </el-table> <Pagination class="mt10" @size-change="handleSizeChange" @current-change="getList" :pagination="pagination"> </Pagination> @@ -82,19 +82,19 @@ getList(page) { const { pagination, searchForm, isOut, warehouseId } = this this.listLoading = true - if(page){pagination.page = page} - console.log('isOut', isOut); - + if (page) { pagination.page = page } + console.log('isOut', isOut) + let fn = isOut ? ywStockPage : fetchList fn({ capacity: pagination.pageSize, page: pagination.page, - model: {...searchForm,status: 0, warehouseId} + model: { ...searchForm, status: 0, warehouseId } }).then((res) => { this.listLoading = false this.list = res.records this.pagination.total = res.total || 0 - if(isOut){ + if (isOut) { this.list.forEach(item => { item.brand = item.materialBrand item.attr = item.materialAttr @@ -123,7 +123,7 @@ if (e && e.length == 2) { this.$set(this.searchForm, 'cateId', e[1]) this.$set(this.searchForm, 'parentCateId', '') - }else if((e && e.length == 1)){ + } else if ((e && e.length == 1)) { this.$set(this.searchForm, 'parentCateId', e[0]) this.$set(this.searchForm, 'cateId', '') } else { diff --git a/admin/src/views/stock/components/OutEdit.vue b/admin/src/views/stock/components/OutEdit.vue index 0bad33c..6b6f47b 100644 --- a/admin/src/views/stock/components/OutEdit.vue +++ b/admin/src/views/stock/components/OutEdit.vue @@ -82,7 +82,7 @@ rules, storeList: [], list: [], - StoreTypeOps: StoreTypeOps.filter(i => i.type == 1), + StoreTypeOps: StoreTypeOps.filter(i => i.type == 1 && i.id != 10), dataList: [], } diff --git a/admin/src/views/stock/components/config.js b/admin/src/views/stock/components/config.js index 819a718..5254e88 100644 --- a/admin/src/views/stock/components/config.js +++ b/admin/src/views/stock/components/config.js @@ -4,13 +4,13 @@ { name: '搴撳瓨璋冩暣', id: 2, type: 0 }, { name: '鍏跺畠鍏ュ簱', id: 3, type: 0 }, { name: '鐩樼泩鍏ュ簱', id: 4, type: 0 }, - + { name: '棰嗙敤鍑哄簱', id: 5, type: 1 }, { name: '浠撳簱鍑哄崟', id: 6, type: 1 }, { name: '璋冩暣鍑哄簱', id: 7, type: 1 }, { name: '閲囪喘鍑哄簱', id: 8, type: 1 }, { name: '鍏跺畠鍑哄簱', id: 9, type: 1 }, - { name: '鐩樺嚭鍑哄簱', id: 10, type: 1 }, + { name: '鐩樹簭鍑哄簱', id: 10, type: 1 }, ] export const rules = { warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], diff --git a/admin/src/views/stock/out.vue b/admin/src/views/stock/out.vue index f181d40..aee91e5 100644 --- a/admin/src/views/stock/out.vue +++ b/admin/src/views/stock/out.vue @@ -40,7 +40,7 @@ import dayjs from 'dayjs' import duration from 'dayjs/plugin/duration' dayjs.extend(duration) -import { ywOutinboundPage } from '@/api' +import { ywOutinboundPage, ywOutinboundEx } from '@/api' import { fetchList as getStoreList } from '@/api/ywWarehouse' import { StoreTypeOps, rules } from './components/config' export default { diff --git a/h5/pages/inventory/detail.vue b/h5/pages/inventory/detail.vue index 29a92e6..268f979 100644 --- a/h5/pages/inventory/detail.vue +++ b/h5/pages/inventory/detail.vue @@ -32,7 +32,7 @@ <view class="line">瑙勬牸鍨嬪彿锛歿{ item.materialAttr }}</view> <view class="line" v-if="item.status == 0"> <view class="">璐﹂潰鏁伴噺锛歿{ item.stock }}{{ item.materialUnitName }}</view> - <view @click.stop="openEheck(item)" class="btn">鎵ц鐩樼偣</view> + <view v-if="info.status == 1" @click.stop="openEheck(item)" class="btn">鎵ц鐩樼偣</view> </view> <view class="static" v-if="item.status == 1"> <view class="ite"> @@ -81,13 +81,15 @@ <view class="line"> <view class="la">鐩樼偣鏁伴噺锛�</view> <view class="val"> - <view class="wrap"> - <template v-if="!modalForm.handleType"> - <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image> - <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image> + <view class="wrap"> + <template v-if="!modalForm.handleType"> + <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image> + <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image> </template> - <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit" v-model="modalForm.actStock"></input> - <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""></image> + <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit" + v-model="modalForm.actStock"></input> + <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""> + </image> </view> <view class="unit">{{ modalForm.materialUnitName }}</view> </view> @@ -95,8 +97,9 @@ </view> <view class="remark"> <view class="la">澶囨敞锛�</view> - <textarea v-model="modalForm.remark" :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="璇峰~鍐欏娉�" :maxlength="-1" placeholder-class="placeholder9" - cols="30" rows="10"></textarea> + <textarea v-model="modalForm.remark" + :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="璇峰~鍐欏娉�" + :maxlength="-1" placeholder-class="placeholder9" cols="30" rows="10"></textarea> </view> <view v-if="!modalForm.handleType" class="btns"> <view class="btn" @click="showModal = false">鍙栨秷</view> @@ -127,557 +130,574 @@ </template> <script> -import { - ywStocktakingDetail, - getYwStocktakingRecord, - takingDataOpen, - ywStocktaFinishById -} from '@/api' -import { - Html5Qrcode -} from 'html5-qrcode' -export default { - data() { - return { - param: {}, - info: {}, - id: '', - activeTab: 0, + import { + ywStocktakingDetail, + getYwStocktakingRecord, + takingDataOpen, + ywStocktaFinishById + } from '@/api' + import { + Html5Qrcode + } from 'html5-qrcode' + export default { + data() { + return { + param: {}, + info: {}, + id: '', + activeTab: 0, - list: [], - page: 0, - total: 0, + list: [], + page: 0, + total: 0, - showModal: false, - showTip: false, - modalForm: {}, + showModal: false, + showTip: false, + modalForm: {}, - html5Qrcode: null, - isScaning: false, + html5Qrcode: null, + isScaning: false, - } - }, - onLoad(op) { - this.id = op.id - this.getDetail() - this.getList() - }, - methods: { - itemClick(item) { - if(item.status == 1){ - this.showItem(item) - } - }, - showItem(item){ - this.showModal = true - this.modalForm = { - ...item, - handleType: this.info.status != 1 ? 'detail' : '' - } - console.log('modalForm', this.modalForm); - }, - getDetail() { - const { - id - } = this - ywStocktakingDetail(id).then(res => { - this.info = res.data - - }) - }, - handleQuery(str) { - this.list = [] - this.page = 1 - this.getList(str) - }, - getList(str) { - const { - page, - activeTab, - id, - param - } = this - getYwStocktakingRecord({ - capacity: 20, - page, - model: { - status: str || activeTab, - stocktakingId: id, - ...param - } - }).then(res => { - this.list = [...this.list, ...res.data.records] - this.total = res.data.total - if (this.param.materialQrcode && this.list.length == 1) { - this.openEheck(this.list[0]) - this.$set(this.param, 'materialQrcode', null) - } - }) - }, - scrolltolower() { - const { - total, - list - } = this - if (list.length < total) { - this.page = this.page + 1 - this.getList() - } else { - this.showToast('鏆傛棤鏇村鏁版嵁') } }, - openEheck(item) { - this.modalForm = { - ...item - } - this.showModal = true - }, - onSubmit() { - const { - modalForm - } = this - if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺') - takingDataOpen({ - ...modalForm - }).then(res => { - if (res.code == 200) { - this.showToast('鎻愪氦鎴愬姛') - this.handleQuery() - this.getDetail() - this.showModal = false - } - }) - }, - changeAct(val) { - const actStock = this.modalForm.actStock || 0 - this.$set(this.modalForm, 'actStock', actStock + val) - }, - tabsClick(val) { - this.activeTab = val - this.page = 0 - this.list = [] + onLoad(op) { + this.id = op.id + this.getDetail() this.getList() }, - tipSub() { - const { info } = this - ywStocktaFinishById(info.id).then(res => { - this.showTip = false - uni.navigateBack() - }) - - }, - openQrcode() { - this.isScaning = true - Html5Qrcode.getCameras().then((devices) => { - if (devices && devices.length) { - this.html5Qrcode = new Html5Qrcode('reader') - this.html5Qrcode.start({ - facingMode: 'environment' - }, { - focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡 - fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害 - qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬 - }, - (decodeText, decodeResult) => { - if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭 - this.stopScan() - this.$set(this.param, 'materialQrcode', decodeText) - this.handleQuery('null') - } - }, - (err) => { - // console.log(err); //閿欒淇℃伅 - } - ) + methods: { + itemClick(item) { + if (item.status == 1) { + this.showItem(item) } - }) - }, + }, + showItem(item) { + this.showModal = true + this.modalForm = { + ...item, + handleType: this.info.status != 1 ? 'detail' : '' + } + console.log('modalForm', this.modalForm); + }, + getDetail() { + const { + id + } = this + ywStocktakingDetail(id).then(res => { + this.info = res.data - stopScan() { - console.log('鍋滄鎵爜') - this.isScaning = false - if (this.html5Qrcode) { - this.html5Qrcode.stop() + }) + }, + handleQuery() { + this.list = [] + this.page = 1 + this.getList() + }, + getList() { + const { + page, + activeTab, + id, + param + } = this + getYwStocktakingRecord({ + capacity: 20, + page, + model: { + status: activeTab, + stocktakingId: id, + ...param + } + }).then(res => { + this.list = [...this.list, ...res.data.records || []] + this.total = res.data.total + if (this.param.materialQrcode && this.total == 1) { + this.openEheck(this.list[0]) + this.param = {} + } else if (this.param.materialQrcode && this.total == 0) { + this.param = {} + uni.showModal({ + content: '鏈尮閰嶅埌鐗╂枡锛岃閲嶆柊鎵爜', + showCancel: false, + success: (res) => { + if (res.confirm) { + this.getList() + } + } + }); + } + + }) + }, + scrolltolower() { + const { + total, + list + } = this + if (list.length < total) { + this.page = this.page + 1 + this.getList() + } else { + this.showToast('鏆傛棤鏇村鏁版嵁') + } + }, + openEheck(item) { + this.modalForm = { + ...item + } + this.showModal = true + }, + onSubmit() { + const { + modalForm + } = this + if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺') + takingDataOpen({ + ...modalForm + }).then(res => { + if (res.code == 200) { + this.showToast('鎻愪氦鎴愬姛') + this.handleQuery() + this.getDetail() + this.showModal = false + } + }) + }, + changeAct(val) { + const actStock = this.modalForm.actStock || 0 + this.$set(this.modalForm, 'actStock', actStock + val) + }, + tabsClick(val) { + this.activeTab = val + this.page = 0 + this.list = [] + this.getList() + }, + tipSub() { + const { + info + } = this + ywStocktaFinishById(info.id).then(res => { + this.showTip = false + uni.navigateBack() + }) + + }, + openQrcode() { + this.isScaning = true + Html5Qrcode.getCameras().then((devices) => { + if (devices && devices.length) { + this.html5Qrcode = new Html5Qrcode('reader') + this.html5Qrcode.start({ + facingMode: 'environment' + }, { + focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡 + fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害 + qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬 + }, + (decodeText, decodeResult) => { + if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭 + this.stopScan() + this.$set(this.param, 'materialQrcode', decodeText) + this.handleQuery() + } + }, + (err) => { + // console.log(err); //閿欒淇℃伅 + } + ) + } + }) + }, + + stopScan() { + console.log('鍋滄鎵爜') + this.isScaning = false + if (this.html5Qrcode) { + this.html5Qrcode.stop() + } } } } -} </script> <style lang="scss"> -.main_app { - padding: 0 30rpx; - overflow: hidden; -} + .main_app { + padding: 0 30rpx; + overflow: hidden; + } -.tabs { - display: flex; - width: 750rpx; - margin: 12rpx -30rpx 20rpx; - border-bottom: 1rpx solid #E5E5E5; - - .tab { - font-size: 30rpx; - color: #666666; - flex: 1; + .tabs { display: flex; - flex-direction: column; - align-items: center; - justify-content: flex-end; - height: 72rpx; + width: 750rpx; + margin: 12rpx -30rpx 20rpx; + border-bottom: 1rpx solid #E5E5E5; - .name { + .tab { + font-size: 30rpx; + color: #666666; + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-end; + height: 72rpx; + + .name { + display: flex; + align-items: center; + } + + .border { + width: 54rpx; + height: 6rpx; + background-color: #fff; + border-radius: 3rpx; + margin-top: 12rpx; + } + } + + .active { + font-weight: 600; + font-size: 32rpx; + color: #222222; + + .border { + background-color: $primaryColor; + } + + } + + } + + .head_wrap { + display: flex; + align-items: center; + margin-bottom: 36rpx; + + .search_wrap { display: flex; align-items: center; + width: 100%; + height: 76rpx; + background: #F7F7F7; + border-radius: 38rpx; + padding-left: 30rpx; + + input { + flex: 1; + } + + .search { + width: 28rpx; + height: 28rpx; + } } - .border { - width: 54rpx; - height: 6rpx; + } + + .scroll_Y { + height: calc(100vh - 350rpx); + } + + .list { + + .item { + border-bottom: 1rpx solid #E5E5E5; + padding-bottom: 24rpx; + margin-bottom: 16rpx; + + .title { + font-weight: 600; + font-size: 34rpx; + color: #222222; + margin-bottom: 10rpx; + flex: 1; + } + + .head { + display: flex; + // align-items: center; + justify-content: space-between; + color: #666666; + + .status { + width: 76rpx; + text-align: right; + padding-top: 3rpx; + } + } + + .line { + height: 60rpx; + display: flex; + align-items: center; + justify-content: space-between; + color: #666666; + + .btn { + display: flex; + align-items: center; + justify-content: center; + height: 60rpx; + padding: 0 20rpx; + background: #0068FF; + box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3); + border-radius: 30rpx; + font-size: 26rpx; + color: #FFFFFF; + } + } + + .static { + display: flex; + height: 84rpx; + background: #F7F7F7; + font-size: 30rpx; + margin-top: 12rpx; + padding: 16rpx 0; + + .spi { + border: 1rpx solid #E5E5E5; + } + + .ite { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + + .val { + font-weight: 500; + } + } + } + } + } + + .footer_btn { + padding: 20rpx 40rpx 0; + border-top: 1px solid #e5e5e5; + width: 750rpx; + margin: 0 -30rpx; + + .sweep { + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + font-weight: 500; + width: 670rpx; + height: 88rpx; + background: #0068FF; + box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3); + border-radius: 44rpx; + color: #FFFFFF; + } + + .sub_result { background-color: #fff; - border-radius: 3rpx; - margin-top: 12rpx; + color: #FF0000; + border: 1rpx solid #FF0000; + box-shadow: none + } + + image { + width: 32rpx; + height: 32rpx; + margin-right: 6rpx; } } - .active { - font-weight: 600; - font-size: 32rpx; - color: #222222; + .modal_wrap { + padding: 36rpx 30rpx; - .border { - background-color: $primaryColor; + .modal_title { + font-weight: 500; + font-size: 32rpx; + color: #222222; + margin-bottom: 40rpx; + text-align: center; } - - } - -} - -.head_wrap { - display: flex; - align-items: center; - margin-bottom: 36rpx; - - .search_wrap { - display: flex; - align-items: center; - width: 100%; - height: 76rpx; - background: #F7F7F7; - border-radius: 38rpx; - padding-left: 30rpx; - - input { - flex: 1; - } - - .search { - width: 28rpx; - height: 28rpx; - } - } - -} - -.scroll_Y { - height: calc(100vh - 350rpx); -} - -.list { - - .item { - border-bottom: 1rpx solid #E5E5E5; - padding-bottom: 24rpx; - margin-bottom: 16rpx; .title { font-weight: 600; font-size: 34rpx; color: #222222; - margin-bottom: 10rpx; - flex: 1; } - .head{ - display: flex; - // align-items: center; - justify-content: space-between; - color: #666666; - .status{ - width: 76rpx; - text-align: right; - padding-top: 3rpx; - } - } - .line { - height: 60rpx; + + .item { + font-size: 28rpx; + color: #666666; + height: 56rpx; display: flex; align-items: center; - justify-content: space-between; - color: #666666; - - .btn { - display: flex; - align-items: center; - justify-content: center; - height: 60rpx; - padding: 0 20rpx; - background: #0068FF; - box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3); - border-radius: 30rpx; - font-size: 26rpx; - color: #FFFFFF; - } } - .static { - display: flex; - height: 84rpx; - background: #F7F7F7; - font-size: 30rpx; - margin-top: 12rpx; - padding: 16rpx 0; + .content { + border-top: 1rpx solid #E5E5E5; + margin-top: 16rpx; - .spi { - border: 1rpx solid #E5E5E5; - } - - .ite { - flex: 1; + .line { + height: 84rpx; display: flex; align-items: center; - justify-content: center; + justify-content: space-between; + + .la { + font-weight: 500; + font-size: 32rpx; + color: #222222; + } .val { - font-weight: 500; - } - } - } - } -} - -.footer_btn { - padding: 20rpx 40rpx 0; - border-top: 1px solid #e5e5e5; - width: 750rpx; - margin: 0 -30rpx; - - .sweep { - display: flex; - align-items: center; - justify-content: center; - font-size: 32rpx; - font-weight: 500; - width: 670rpx; - height: 88rpx; - background: #0068FF; - box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3); - border-radius: 44rpx; - color: #FFFFFF; - } - - .sub_result { - background-color: #fff; - color: #FF0000; - border: 1rpx solid #FF0000; - box-shadow: none - } - - image { - width: 32rpx; - height: 32rpx; - margin-right: 6rpx; - } -} - -.modal_wrap { - padding: 36rpx 30rpx; - - .modal_title { - font-weight: 500; - font-size: 32rpx; - color: #222222; - margin-bottom: 40rpx; - text-align: center; - } - - .title { - font-weight: 600; - font-size: 34rpx; - color: #222222; - } - - .item { - font-size: 28rpx; - color: #666666; - height: 56rpx; - display: flex; - align-items: center; - } - - .content { - border-top: 1rpx solid #E5E5E5; - margin-top: 16rpx; - - .line { - height: 84rpx; - display: flex; - align-items: center; - justify-content: space-between; - - .la { - font-weight: 500; - font-size: 32rpx; - color: #222222; - } - - .val { - display: flex; - justify-content: flex-end; - align-items: center; - flex: 1; - - .wrap { display: flex; + justify-content: flex-end; align-items: center; + flex: 1; - input { - width: 120rpx; - height: 72rpx; - border-radius: 8rpx; - border: 2rpx solid #0068FF; - margin: 0 16rpx; - padding: 0 10rpx; - text-align: center; + .wrap { + display: flex; + align-items: center; + + input { + width: 120rpx; + height: 72rpx; + border-radius: 8rpx; + border: 2rpx solid #0068FF; + margin: 0 16rpx; + padding: 0 10rpx; + text-align: center; + } + } + + .unit { + font-size: 30rpx; + color: #666666; + margin-left: 20rpx; } } - .unit { - font-size: 30rpx; - color: #666666; - margin-left: 20rpx; + image { + width: 72rpx; + height: 72rpx; + } + } + } + + .remark { + margin-top: 16rpx; + + .la { + font-size: 30rpx; + color: #222222; + margin-bottom: 16rpx; + } + + textarea { + width: 690rpx; + height: 240rpx; + background: #F7F7F7; + border-radius: 12rpx; + padding: 10rpx 20rpx; + } + } + + .btns { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 80rpx; + + .btn { + width: 336rpx; + height: 88rpx; + border-radius: 44rpx; + border: 2rpx solid $primaryColor; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: $primaryColor; + } + + .sub { + background-color: $primaryColor; + color: #fff; + } + } + } + + + .modal_t { + width: 520rpx; + text-align: center; + display: flex; + flex-direction: column; + + .h1 { + height: 86rpx; + font-weight: 500; + font-size: 32rpx; + color: #333333; + display: flex; + align-items: flex-end; + justify-content: center; + } + + .content { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 30rpx 0; + } + + .btns { + height: 102rpx; + display: flex; + align-items: center; + border-top: 1rpx solid #E5E5E5; + + .btn { + height: 102rpx; + flex: 1; + display: flex; + align-items: center; + justify-content: center; + border-right: 1rpx solid #E5E5E5; + font-weight: 400; + font-size: 32rpx; + color: #999999; + + &:nth-last-child(1) { + border-right: none; } } - image { - width: 72rpx; - height: 72rpx; + .sub { + color: $primaryColor; } } } - .remark { - margin-top: 16rpx; - - .la { - font-size: 30rpx; - color: #222222; - margin-bottom: 16rpx; - } - - textarea { - width: 690rpx; - height: 240rpx; - background: #F7F7F7; - border-radius: 12rpx; - padding: 10rpx 20rpx; - } + .reader-box { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(0, 0, 0, 0.5); } - .btns { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 80rpx; - - .btn { - width: 336rpx; - height: 88rpx; - border-radius: 44rpx; - border: 2rpx solid $primaryColor; - display: flex; - align-items: center; - justify-content: center; - font-size: 32rpx; - color: $primaryColor; - } - - .sub { - background-color: $primaryColor; - color: #fff; - } + .reader { + width: 100%; + // width: 540rpx; + // height: 540rpx; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } -} - - -.modal_t { - width: 520rpx; - text-align: center; - display: flex; - flex-direction: column; - - .h1 { - height: 86rpx; - font-weight: 500; - font-size: 32rpx; - color: #333333; - display: flex; - align-items: flex-end; - justify-content: center; - } - - .content { - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - padding: 30rpx 0; - } - - .btns { - height: 102rpx; - display: flex; - align-items: center; - border-top: 1rpx solid #E5E5E5; - - .btn { - height: 102rpx; - flex: 1; - display: flex; - align-items: center; - justify-content: center; - border-right: 1rpx solid #E5E5E5; - font-weight: 400; - font-size: 32rpx; - color: #999999; - - &:nth-last-child(1) { - border-right: none; - } - } - - .sub { - color: $primaryColor; - } - } -} - -.reader-box { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, 0.5); -} - -.reader { - width: 100%; - // width: 540rpx; - // height: 540rpx; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} </style> \ No newline at end of file diff --git a/h5/pages/login.vue b/h5/pages/login.vue index 2a7e31a..134d69c 100644 --- a/h5/pages/login.vue +++ b/h5/pages/login.vue @@ -101,7 +101,7 @@ }) } else { uni.redirectTo({ - url: "/pages/polling/empty" + url: "/pages/polling/empty?message=" + res.message }) } }) @@ -164,7 +164,7 @@ }) } else { uni.redirectTo({ - url: "/pages/polling/empty" + url: "/pages/polling/empty?message=" + res.message }) } }) diff --git a/h5/pages/polling/empty.vue b/h5/pages/polling/empty.vue index 00181a5..9b78f4f 100644 --- a/h5/pages/polling/empty.vue +++ b/h5/pages/polling/empty.vue @@ -1,6 +1,7 @@ <template> <view class="main_app"> <image class="logo" src="@/static/side/default_empty@2x.png" mode=""></image> + <view class="message">{{message}}</view> <view class="btn" @click="backHome">杩斿洖涓婚〉</view> </view> </template> @@ -9,8 +10,11 @@ export default { data() { return { - - }; + message: '' + }; + }, + onLoad(op) { + this.message = op.message || '' }, methods: { backHome(){ @@ -29,6 +33,13 @@ height: 228rpx; margin: 60% auto 0; } + .message{ + font-weight: 500; + font-size: 30rpx; + color: #222222; + margin-top: 20rpx; + text-align: center; + } .btn{ position: fixed; bottom: 64rpx; diff --git a/h5/pages/workOrder/wait.vue b/h5/pages/workOrder/wait.vue index d3fd3e1..6d0ee7c 100644 --- a/h5/pages/workOrder/wait.vue +++ b/h5/pages/workOrder/wait.vue @@ -28,7 +28,7 @@ <view v-if="item.status == 0 && item.param3 == 0 && (item.type == 0 || item.type == 1)" class="status">鏈紑濮� </view> <view v-if="item.status == 0 && item.param3 == 1 && (item.type == 0 || item.type == 1)" - class="status green">杩涜涓�</view> + class="status green">{{ item.type == 0 ? '鐩樼偣涓�' : '杩涜涓�' }}</view> <view v-if="item.status == 1 && item.type == 2" class="status gray">宸插鐞�</view> <view v-if="item.status == 1 && (item.type == 0 || item.type == 1)" class="status gray">宸插畬鎴�</view> </view> @@ -37,7 +37,7 @@ <view class="text">鎵ц鏃堕棿锛歿{item.obj.key3}}</view> <view class="text"> <view class="">宸℃璐熻矗浜猴細{{item.obj.key4}}</view> - <view class="btn" @click.stop="openSc(item)"> + <view v-if="queryStatus == 0" class="btn" @click.stop="openSc(item)"> <image src="@/static/side/ic_saoma@2x.png" mode=""></image> <view v-if="item.status == 0" class="">鎵爜宸℃</view> </view> @@ -249,7 +249,7 @@ .tabs { display: flex; width: 750rpx; - margin: 12rpx 0rpx 0; + margin: 0rpx 0rpx 0; border-bottom: 1rpx solid #E5E5E5; background-color: #fff; diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml index 6503fa3..8994b05 100644 --- a/server/system_gateway/src/main/resources/application.yml +++ b/server/system_gateway/src/main/resources/application.yml @@ -1,6 +1,6 @@ # 椤圭洰淇℃伅閰嶇疆 project: - name: 瀹夋嘲鐗╂祦璁垮绯荤粺 + name: 闃滃畞鍦洪杩愮淮 version: 1.0.0 env: development # env: production diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java index e5f73cb..6386c16 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java @@ -20,6 +20,7 @@ import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.MemberCard; import com.doumee.dao.business.model.MemberRole; +import com.doumee.dao.business.vo.MemberExcelVO; import com.doumee.dao.system.dto.UpdatePwdDto; import com.doumee.service.business.MemberService; import com.doumee.service.business.ext.ERPSyncService; @@ -27,6 +28,7 @@ import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl; import io.swagger.annotations.*; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -412,4 +414,18 @@ return ApiResponse.success(memberService.ywFindPage(pageWrap)); } + + @ApiOperation("闃滃畞 - 瀵煎嚭Excel") + @PostMapping("/ywExportExcel") + @CloudRequiredPermission("business:member:exportExcel") + public void ywExportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + List<Member> memberList = memberService.ywFindPage(pageWrap).getRecords(); + List<MemberExcelVO> memberExcelVOList = new ArrayList<MemberExcelVO>(); + for (Member member:memberList) { + MemberExcelVO memberExcelVO = new MemberExcelVO(); + BeanUtils.copyProperties(member,memberExcelVO); + memberExcelVOList.add(memberExcelVO); + } + ExcelExporter.build(MemberExcelVO.class).export(memberExcelVOList, "浜哄憳淇℃伅琛�", response); + } } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java index 23eccac..11c08ca 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java @@ -49,11 +49,30 @@ @LoginNoRequired @PreventRepeat - @ApiOperation("鑷畾涔夌煭淇″唴瀹�") - @PostMapping("/testSendSms") - public ApiResponse testSendSms(@RequestBody SmsEmail smsEmail) { + @ApiOperation("鑷畾涔夌煭淇″唴瀹筯k") + @PostMapping("/testSendSmsHk") + public ApiResponse testSendSmsHk(@RequestBody SmsEmail smsEmail) { emayService.sendSmsByHk(smsEmail.getPhone(),smsEmail.getContent()); return ApiResponse.success("鎿嶄綔鎴愬姛"); } + + + @LoginNoRequired + @PreventRepeat + @ApiOperation("鑷畾涔夌煭淇″唴瀹�") + @PostMapping("/testSendSms") + public ApiResponse testSendSms(@RequestBody SmsEmail smsEmail) { + smsEmailService.sendBillSms(smsEmail.getContent(),smsEmail.getPhone(),null); + return ApiResponse.success("鎿嶄綔鎴愬姛"); + } + + @LoginNoRequired + @PreventRepeat + @ApiOperation("鑷畾涔夐偖浠跺唴瀹�") + @PostMapping("/testSendEmail") + public ApiResponse testSendEmail(@RequestBody SmsEmail smsEmail) { + smsEmailService.sendEmail(smsEmail.getEmail(),smsEmail.getContent(),null); + return ApiResponse.success("鎿嶄綔鎴愬姛"); + } } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java index 07544f7..9ac8faf 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwOutinboundController.java @@ -1,5 +1,6 @@ package com.doumee.cloud.admin; +import cn.emay.sdk.util.StringUtil; import com.doumee.api.BaseController; import com.doumee.config.annotation.CloudRequiredPermission; import com.doumee.core.annotation.excel.ExcelExporter; @@ -9,10 +10,13 @@ import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.YwOutinbound; +import com.doumee.dao.business.model.YwOutinboundRecord; +import com.doumee.dao.business.vo.YwOutinboundExcelInVO; +import com.doumee.dao.business.vo.YwOutinboundExcelOutVO; import com.doumee.service.business.YwOutinboundService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -82,7 +86,37 @@ @PostMapping("/exportExcel") @CloudRequiredPermission("business:ywoutinbound:exportExcel") public void exportExcel (@RequestBody PageWrap<YwOutinbound> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { - ExcelExporter.build(YwOutinbound.class).export(ywOutinboundService.findPage(pageWrap).getRecords(), "杩愮淮鍑哄叆搴撲俊鎭〃", response); + List<YwOutinbound> ywOutinboundList = ywOutinboundService.findPage(pageWrap).getRecords(); + Integer inOut = pageWrap.getModel().getInOut(); + if(Constants.equalsInteger(inOut,Constants.ZERO)){ + List<YwOutinboundExcelInVO> inList = new ArrayList<>(); + for (YwOutinbound ywOutinbound:ywOutinboundList) { + YwOutinboundExcelInVO inVO = new YwOutinboundExcelInVO(); + BeanUtils.copyProperties(ywOutinbound,inVO); + List<YwOutinboundRecord> ywOutinboundRecordList = ywOutinbound.getRecordList(); + StringBuffer stringBuffer = new StringBuffer(); + for (YwOutinboundRecord ywOutinboundRecord:ywOutinboundRecordList) { + stringBuffer.append(ywOutinboundRecord.getMaterialName()+"["+ywOutinboundRecord.getMaterialCode()+"]*"+ywOutinboundRecord.getStock()+ywOutinboundRecord.getMaterialUnitName()+";"); + } + inVO.setOutMaterialNum(stringBuffer.toString()); + inList.add(inVO); + } + ExcelExporter.build(YwOutinboundExcelInVO.class).export(inList, "鍏ュ簱淇℃伅琛�", response); + }else{ + List<YwOutinboundExcelOutVO> outList = new ArrayList<>(); + for (YwOutinbound ywOutinbound:ywOutinboundList) { + YwOutinboundExcelOutVO ywOutinboundExcelOutVO = new YwOutinboundExcelOutVO(); + BeanUtils.copyProperties(ywOutinbound,ywOutinboundExcelOutVO); + List<YwOutinboundRecord> ywOutinboundRecordList = ywOutinbound.getRecordList(); + StringBuffer stringBuffer = new StringBuffer(); + for (YwOutinboundRecord ywOutinboundRecord:ywOutinboundRecordList) { + stringBuffer.append(ywOutinboundRecord.getMaterialName()+"["+ywOutinboundRecord.getMaterialCode()+"]*"+ywOutinboundRecord.getStock()+ywOutinboundRecord.getMaterialUnitName()+";"); + } + ywOutinboundExcelOutVO.setOutMaterialNum(stringBuffer.toString()); + outList.add(ywOutinboundExcelOutVO); + } + ExcelExporter.build(YwOutinboundExcelOutVO.class).export(outList, "鍑哄簱淇℃伅琛�", response); + } } @ApiOperation("鏍规嵁ID鏌ヨ") diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java index bfe3148..7676246 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwStockController.java @@ -8,7 +8,9 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; +import com.doumee.dao.business.model.YwPatrolTask; import com.doumee.dao.business.model.YwStock; +import com.doumee.dao.business.model.YwWorkorder; import com.doumee.service.business.YwStockService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -80,9 +82,10 @@ @PostMapping("/exportExcel") @CloudRequiredPermission("business:ywstock:exportExcel") public void exportExcel (@RequestBody PageWrap<YwStock> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { - ExcelExporter.build(YwStock.class).export(ywStockService.findPage(pageWrap).getRecords(), "杩愮淮搴撳瓨淇℃伅琛�", response); + ExcelExporter.build(YwStock.class).export(ywStockService.findPage(pageWrap).getRecords(), "搴撳瓨淇℃伅琛╛"+System.currentTimeMillis(), response); } + @ApiOperation("鏍规嵁ID鏌ヨ") @GetMapping("/{id}") @CloudRequiredPermission("business:ywstock:query") diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java index 399570e..4e1b250 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java @@ -222,7 +222,6 @@ private String email; - @ApiModelProperty(value = "鏈�鍚庢搷浣滀汉") @TableField(exist = false) private String editorName; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java index 1ab32e6..7438d92 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java @@ -32,7 +32,7 @@ private Integer creator; @ApiModelProperty(value = "鍒涘缓鏃堕棿") - @ExcelColumn(name="鍒涘缓鏃堕棿",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss") + @ExcelColumn(name="鍒涘缓鏃堕棿",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss",width = 16) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createDate; @@ -50,7 +50,7 @@ private String remark; @ApiModelProperty(value = "鐘舵�� 0姝e父 1鎹熷潖 2鎶ュ簾", example = "1") - @ExcelColumn(name="璁惧鐘舵��",index = 3, valueMapping = "0=姝e父;1=鎹熷潖;2=鎶ュ簾;") + @ExcelColumn(name="璁惧鐘舵��",index = 3, valueMapping = "0=姝e父;1=鎹熷潖;2=鎶ュ簾;",width = 10) private Integer status; @ApiModelProperty(value = "璁惧鍨嬪彿", example = "1") @@ -67,7 +67,7 @@ private Date company; @ApiModelProperty(value = "鎯呭喌璇存槑") - @ExcelColumn(name="杩愮淮澶囨敞",index = 4) + @ExcelColumn(name="杩愮淮澶囨敞",index = 4,width = 30) private String content; @ApiModelProperty(value = "杩愮淮鏃堕棿") @@ -75,17 +75,17 @@ private Date dealDate; @ApiModelProperty(value = "璁惧鍚嶇О") - @ExcelColumn(name="璁惧鍚嶇О",index = 2) + @ExcelColumn(name="璁惧鍚嶇О",index = 2,width = 20) @TableField(exist = false) private String deviceName; @ApiModelProperty(value = "璁惧缂栧彿") - @ExcelColumn(name="璁惧缂栧彿",index = 1) + @ExcelColumn(name="璁惧缂栧彿",index = 1,width = 10) @TableField(exist = false) private String deviceCode; @ApiModelProperty(value = "杩愮淮浜哄悕绉�") - @ExcelColumn(name="杩愮淮浜�",index = 0) + @ExcelColumn(name="杩愮淮浜�",index = 0,width = 10) @TableField(exist = false) private String realName; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java index ef8a041..379c7ff 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java @@ -75,15 +75,15 @@ @ApiModelProperty(value = "澶勭悊鏃堕棿") @ExcelColumn(name="澶勭悊鏃堕棿") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dealDate; @ApiModelProperty(value = "鏄惁宸℃ 0=寰呭紑濮嬶紱1=宸插贰妫�锛�", example = "1") @ExcelColumn(name="鏄惁宸℃ 0=寰呭紑濮嬶紱1=宸插贰妫�") private Integer status; - @ApiModelProperty(value = "宸℃缁撴灉 0=姝e父锛�1=寮傚父", example = "1") - @ExcelColumn(name="宸℃缁撴灉 0=姝e父锛�1=寮傚父") + @ApiModelProperty(value = "宸℃缁撴灉 0=姝e父锛�1=寮傚父;2=璺宠繃锛�", example = "1") + @ExcelColumn(name="宸℃缁撴灉 0=姝e父锛�1=寮傚父锛�2=璺宠繃锛�") private Integer dealStatus; @ApiModelProperty(value = "澶勭悊澶囨敞") diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java index dc2ec33..16a6200 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwStock.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; +import com.doumee.core.model.LoginUserModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -20,65 +21,60 @@ @Data @ApiModel("杩愮淮搴撳瓨淇℃伅琛�") @TableName("`yw_stock`") -public class YwStock { +public class YwStock extends LoginUserModel { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "涓婚敭", example = "1") - @ExcelColumn(name="涓婚敭") private Integer id; @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1") - @ExcelColumn(name="鍒涘缓浜虹紪鐮�") private Integer creator; @ApiModelProperty(value = "鍒涘缓鏃堕棿") - @ExcelColumn(name="鍒涘缓鏃堕棿") @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1") - @ExcelColumn(name="鏇存柊浜虹紪鐮�") private Integer editor; @ApiModelProperty(value = "鏇存柊鏃堕棿") - @ExcelColumn(name="鏇存柊鏃堕棿") @JsonFormat(pattern = "yyyy-MM-dd") private Date editDate; @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1") - @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�") private Integer isdeleted; @ApiModelProperty(value = "澶囨敞") - @ExcelColumn(name="澶囨敞") private String remark; @ApiModelProperty(value = "浠撳簱缂栫爜(鍏宠仈yw_warehouse)") - @ExcelColumn(name="浠撳簱缂栫爜(鍏宠仈yw_warehouse)") private Integer warehouseId; @ApiModelProperty(value = "鐗╄祫缂栫爜锛堝叧鑱攜w_material)", example = "1") - @ExcelColumn(name="鐗╄祫缂栫爜锛堝叧鑱攜w_material)") private Integer materialId; @ApiModelProperty(value = "鏁伴噺", example = "1") - @ExcelColumn(name="鏁伴噺") + @ExcelColumn(name="鏁伴噺",index = 6,width = 10) private BigDecimal stock; - @ApiModelProperty(value = "璧勪骇缂栫爜") + @ApiModelProperty(value = "鐗╂枡缂栫爜") + @ExcelColumn(name="鐗╂枡缂栫爜",index = 0,width = 10) @TableField(exist = false) private String materialCode; - @ApiModelProperty(value = "璧勪骇鍚嶇О") + @ApiModelProperty(value = "鐗╂枡鍚嶇О") + @ExcelColumn(name="鐗╂枡鍚嶇О",index = 1,width = 10) @TableField(exist = false) private String materialName; - @ApiModelProperty(value = "璧勪骇鏉″舰鐮�") + @ApiModelProperty(value = "鏉$爜") + @ExcelColumn(name="鏉$爜",index = 2,width = 10) @TableField(exist = false) private String materialQrcode; - @ApiModelProperty(value = "璧勪骇鍝佺墝") + @ApiModelProperty(value = "鍝佺墝") + @ExcelColumn(name="鍝佺墝",index = 3,width = 10) @TableField(exist = false) private String materialBrand; @@ -86,11 +82,13 @@ @TableField(exist = false) private String materialUnitName; - @ApiModelProperty(value = "璧勪骇瑙勬牸鍨嬪彿") + @ApiModelProperty(value = "瑙勬牸鍨嬪彿") + @ExcelColumn(name="瑙勬牸鍨嬪彿",index = 4,width = 10) @TableField(exist = false) private String materialAttr; - @ApiModelProperty(value = "浠撳簱鍚嶇О") + @ApiModelProperty(value = "鎵�鍦ㄤ粨搴�") + @ExcelColumn(name="鎵�鍦ㄤ粨搴�",index = 5,width = 10) @TableField(exist = false) private String warehouseName; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java new file mode 100644 index 0000000..210cdc9 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MemberExcelVO.java @@ -0,0 +1,45 @@ +package com.doumee.dao.business.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.doumee.core.annotation.excel.ExcelColumn; +import com.doumee.core.model.LoginUserModel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 浜哄憳淇℃伅琛� + * @author 姹熻箘韫� + * @date 2023/11/30 15:33 + */ +@Data +public class MemberExcelVO { + + @ApiModelProperty(value = "瀹㈡埛鍚嶇О", example = "1") + @ExcelColumn(name="瀹㈡埛鍚嶇О",width = 10,index = 1) + private String customerName; + + @ApiModelProperty(value = "鑱旂郴浜�", example = "1") + @ExcelColumn(name="鑱旂郴浜�",width = 10,index = 2) + private String name; + + @ApiModelProperty(value = "鑱旂郴鐢佃瘽", example = "1") + @ExcelColumn(name="鑱旂郴鐢佃瘽",width = 10,index = 3) + private String phone; + + @ApiModelProperty(value = "韬唤 0鑰佹澘/瓒呯骇绠$悊鍛� 1浜轰簨/绠$悊鍛� 2鍛樺伐/鏅�氬憳宸�", example = "1") + @ExcelColumn(name="韬唤",width = 10,index = 4,valueMapping = "0=鑰佹澘/瓒呯骇绠$悊鍛�;1=浜轰簨/绠$悊鍛�;2=鍛樺伐/鏅�氬憳宸�;") + private Integer highCheckor; + + @ApiModelProperty(value = "鐘舵�� 0姝e父 1绂佺敤 2鎷夐粦/鍐荤粨", example = "1") + @ExcelColumn(name="韬唤",width = 10,index = 5,valueMapping = "0=姝e父;1=绂佺敤;") + private Integer status; + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java new file mode 100644 index 0000000..1766d31 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelInVO.java @@ -0,0 +1,50 @@ +package com.doumee.dao.business.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.doumee.core.annotation.excel.ExcelColumn; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 杩愮淮鍑哄叆搴撲俊鎭〃 + * @author 姹熻箘韫� + * @date 2025/01/06 11:05 + */ +@Data +public class YwOutinboundExcelInVO { + + @ApiModelProperty(value = "鍗曟嵁缂栧彿") + @ExcelColumn(name="鍏ュ簱鍗曞彿",index = 0,width = 16) + private String code; + + @ApiModelProperty(value = "浠撳簱鍚嶇О", example = "1") + @ExcelColumn(name="鍏ュ簱浠撳簱",index = 1,width = 16) + private String warehouseName; + + @ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1") + @ExcelColumn(name="鍏ュ簱绫诲瀷",index = 2,width = 10,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;") + private Integer type; + + @ApiModelProperty(value = "鍑哄簱鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + @ExcelColumn(name="鍏ュ簱鏃ユ湡",index = 3,width = 16,dateFormat = "yyyy-MM-dd") + private Date doneDate; + + @ApiModelProperty(value = "鍑哄簱鏁伴噺") + @ExcelColumn(name="鍏ュ簱鏁伴噺",index = 4,width = 16) + private String outMaterialNum; + + @ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1") + @ExcelColumn(name="鎿嶄綔浜�",index = 5,width = 16) + private String createUserName; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelColumn(name="鎿嶄綔鏃堕棿",index = 6,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createDate; + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java new file mode 100644 index 0000000..23e6818 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwOutinboundExcelOutVO.java @@ -0,0 +1,52 @@ +package com.doumee.dao.business.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.doumee.core.annotation.excel.ExcelColumn; +import com.doumee.dao.business.model.YwOutinboundRecord; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 杩愮淮鍑哄叆搴撲俊鎭〃 + * @author 姹熻箘韫� + * @date 2025/01/06 11:05 + */ +@Data +public class YwOutinboundExcelOutVO { + + @ApiModelProperty(value = "鍗曟嵁缂栧彿") + @ExcelColumn(name="鍑哄簱鍗曞彿",index = 0,width = 16) + private String code; + + @ApiModelProperty(value = "浠撳簱鍚嶇О", example = "1") + @ExcelColumn(name="鍑哄簱浠撳簱",index = 1,width = 16) + private String warehouseName; + + @ApiModelProperty(value = "绫诲瀷 0閲囪喘鍏ュ簱 1棰嗙敤閫�鍥� 2璋冩暣鍏ュ簱 3鍏朵粬鍏ュ簱 4鐩樼泩鍏ュ簱 5棰嗙敤鍑哄簱 6浠撳簱鍑哄簱 7璋冩暣鍑哄簱 8閲囪喘鍑哄簱 9鍏朵粬鍑哄簱 10鐩樹簭鍑哄簱", example = "1") + @ExcelColumn(name="鍑哄簱绫诲瀷",index = 2,width = 10,valueMapping = "0=閲囪喘鍏ュ簱;1=棰嗙敤閫�鍥�;2=璋冩暣鍏ュ簱;3=鍏朵粬鍏ュ簱;4=鐩樼泩鍏ュ簱;5=棰嗙敤鍑哄簱;6=浠撳簱鍑哄簱;7=璋冩暣鍑哄簱;8=閲囪喘鍑哄簱;9=鍏朵粬鍑哄簱;10=鐩樹簭鍑哄簱;") + private Integer type; + + @ApiModelProperty(value = "鍑哄簱鏃ユ湡") + @ExcelColumn(name="鍑哄簱鏃ユ湡",index = 3,width = 16,dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date doneDate; + + @ApiModelProperty(value = "鍑哄簱鏁伴噺") + @ExcelColumn(name="鍑哄簱鏁伴噺",index = 4,width = 16) + private String outMaterialNum; + + @ApiModelProperty(value = "鎿嶄綔浜哄悕绉�", example = "1") + @ExcelColumn(name="棰嗙敤浜�",index = 5,width = 16) + private String createUserName; + + @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; + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java index e75dac5..5ae4161 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java @@ -7,8 +7,9 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; -import com.doumee.dao.business.CategoryMapper; -import com.doumee.dao.business.model.Category; +import com.doumee.dao.business.*; +import com.doumee.dao.business.dao.CompanyMapper; +import com.doumee.dao.business.model.*; import com.doumee.service.business.CategoryService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -37,6 +38,22 @@ @Autowired private CategoryMapper categoryMapper; + @Autowired + private YwCustomerMapper ywCustomerMapper; + + @Autowired + private YwWorkorderMapper ywWorkorderMapper; + + @Autowired + private YwPatrolPointMapper ywPatrolPointMapper; + + @Autowired + private YwDeviceMapper ywDeviceMapper; + + @Autowired + private YwMaterialMapper ywMaterialMapper; + + @Override public Integer create(Category category) { checkUnique(category); @@ -61,8 +78,32 @@ return insert.getId(); } + @Override public void deleteById(Integer id) { + Category category = categoryMapper.selectById(id); + if(Objects.isNull(category)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + + if(categoryMapper.selectCount(new QueryWrapper<Category>().lambda() + .eq(Category::getIsdeleted,Constants.ZERO) + .eq(Category::getParentId,id) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪瀛愰泦鏁版嵁,鏃犳硶杩涜鍒犻櫎"); + } + //鏌ヨ鏁版嵁鏄惁宸蹭娇鐢� 3杩愮淮-宸ュ崟鍒嗙被 4杩愮淮-宸℃鍖哄煙 5杩愮淮-璁惧鍒嗙被 6=瀹㈡埛琛屼笟 7=璧勪骇鍒嗙被 + if(Constants.equalsInteger(category.getType(),Constants.THREE)){ + if(ywWorkorderMapper.selectCount(new QueryWrapper<YwWorkorder>().lambda().eq(YwWorkorder::getIsdeleted,Constants.ZERO).eq(YwWorkorder::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎"); + }else if (Constants.equalsInteger(category.getType(),Constants.FOUR)){ + if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO).eq(YwPatrolPoint::getAreaId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎"); + }else if (Constants.equalsInteger(category.getType(),Constants.FIVE)){ + if(ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎"); + }else if (Constants.equalsInteger(category.getType(),Constants.SIX)){ + if(ywCustomerMapper.selectCount(new QueryWrapper<YwCustomer>().lambda().eq(YwCustomer::getIsdeleted,Constants.ZERO).eq(YwCustomer::getIndustryId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎"); + }else if (Constants.equalsInteger(category.getType(),Constants.SEVEN)){ + if(ywMaterialMapper.selectCount(new QueryWrapper<YwMaterial>().lambda().eq(YwMaterial::getIsdeleted,Constants.ZERO).eq(YwMaterial::getCateId,id))>Constants.ZERO) throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍒嗙被宸茶浣跨敤,鏃犳硶杩涜鍒犻櫎"); + } categoryMapper.update(null,new UpdateWrapper<Category>().lambda().set(Category::getIsdeleted,Constants.ONE) .eq(Category::getId,id) ); @@ -195,6 +236,8 @@ wrapper.lambda() .ne(Objects.nonNull(category.getId()),Category::getId,category.getId()) .eq(Category::getIsdeleted,Constants.ZERO) + .eq(Objects.nonNull(category.getParentId()),Category::getParentId,category.getParentId()) + .isNull(Objects.isNull(category.getParentId()),Category::getParentId) .eq(Category::getType,category.getType()) .eq(Category::getName,category.getName()); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java index 4d4beaf..b760dd1 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java @@ -106,10 +106,11 @@ String code = Constants.getRandom6Num(); SmsConfig smsConfig = smsConfigMapper.selectOne(new QueryWrapper<SmsConfig>().lambda().eq(SmsConfig::getObjType, SmsConstants.inventCode).last(" limit 1 ")); + String comName = systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode(); //寮�鍚煭淇¢�氱煡 if(Objects.nonNull(smsConfig) || Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){ if(StringUtils.isNotBlank(smsConfig.getContent())){ - String content = smsConfig.getContent().replace("{楠岃瘉鐮亇",code); + String content = comName + smsConfig.getContent().replace("{楠岃瘉鐮亇",code); emayService.sendSingleSms(smsEmail.getPhone(),content); smsEmail.setRemark(code); smsEmail.setIsdeleted(Constants.ZERO); @@ -617,6 +618,7 @@ 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); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java index 436e79a..5d36fa2 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 @@ -600,6 +600,7 @@ .leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId) .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) .eq(YwContractBill::getIsdeleted,Constants.ZERO) + .eq(YwContractBill::getStatus,Constants.ZERO) .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE,Constants.FOUR) .eq(YwContractBill::getContractId,contractId) .orderByDesc(YwContractBill::getId); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java index d556571..b1fbb04 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 @@ -249,19 +249,6 @@ .set(YwPatrolTask::getEditor,loginUserInfo.getId()) ); -// if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda() -// .eq(YwPatrolTask::getSchemeId,ywPatrolTask.getSchemeId()) -// .in(YwPatrolTask::getStatus,Constants.ZERO,Constants.ONE) -// .ne(YwPatrolTask::getId,ywPatrolTask.getId()) -// )==Constants.ZERO){ -// ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda() -// .eq(YwPatrolScheme::getId,ywPatrolScheme.getId()) -// .set(YwPatrolScheme::getStatus,Constants.TWO) -// .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime()) -// .set(YwPatrolScheme::getEditor,loginUserInfo.getId()) -// ); -// } - //鏍囪寰呭姙宸插鐞� noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() .set(Notices::getStatus,Constants.ONE) @@ -279,14 +266,6 @@ .set(YwPatrolTask::getEditor,loginUserInfo.getId()) ); } -// if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){ -// ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda() -// .eq(YwPatrolScheme::getId,ywPatrolScheme.getId()) -// .set(YwPatrolScheme::getStatus,Constants.ONE) -// .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime()) -// .set(YwPatrolScheme::getEditor,loginUserInfo.getId()) -// ); -// } //鏍囪寰呭姙宸插鐞� noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() .set(Notices::getParam3,Constants.ONE) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java index 2c33a6c..1571556 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProblemServiceImpl.java @@ -263,7 +263,26 @@ .le(Objects.nonNull(model.getDealDateEnd()),YwProblem::getDealDate, Utils.Date.getEnd(model.getDealDateEnd())) .eq(Objects.nonNull(model.getDealStatus()),YwProblem::getDealStatus,model.getDealStatus()) ; - IPage iPage = ywProblemMapper.selectJoinPage(page,YwProblem.class,queryWrapper); + IPage<YwProblem> iPage = ywProblemMapper.selectJoinPage(page,YwProblem.class,queryWrapper); + for (YwProblem ywProblem:iPage.getRecords()) { + List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() + .eq(Multifile::getObjId, ywProblem.getId() ) + .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.PROBLEM_FILE.getKey() })) + .eq(Multifile::getIsdeleted,Constants.ZERO)); + if(multifiles!=null){ + String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_WORKORDER_FILE).getCode(); + for(Multifile f : multifiles){ + if(StringUtils.isBlank(f.getFileurl())){ + continue; + } + f.setFileurlFull(path+f.getFileurl()); + } + ywProblem.setFileList(multifiles); + } + } + + return PageData.from(iPage); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java index b5c03ed..1b7a0a9 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 @@ -138,6 +138,9 @@ 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) .selectAs(YwBuilding::getName,YwRoom::getBuildingName) .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId) .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java index 58d10e9..07ad32d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java @@ -503,6 +503,9 @@ if (pageWrap.getModel().getRoomId() != null) { queryWrapper.eq(YwWorkorder::getRoomId, pageWrap.getModel().getRoomId()); } + if (pageWrap.getModel().getFloorId() != null) { + queryWrapper.eq(YwWorkorder::getFloorId, pageWrap.getModel().getFloorId()); + } if (pageWrap.getModel().getUserId() != null) { queryWrapper.eq(YwWorkorder::getUserId, pageWrap.getModel().getUserId()); } diff --git a/server/visits/dmvisit_service/src/main/resources/application-dev.yml b/server/visits/dmvisit_service/src/main/resources/application-dev.yml index 29d1baf..b3984c7 100644 --- a/server/visits/dmvisit_service/src/main/resources/application-dev.yml +++ b/server/visits/dmvisit_service/src/main/resources/application-dev.yml @@ -15,7 +15,15 @@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss - + mail: + default-encoding: UTF-8 + host: smtp.exmail.qq.com + username: jp@doumee.com + password: p7iKUE8VvQQpY58S + properties: + mail: + smtp: + auth: true debug_model: true @@ -26,6 +34,8 @@ need-deal-img: true #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹� +########################鍘嬬缉鍖呮枃浠朵綅缃� ######################## +zip_file_path: d:// # Swagger閰嶇疆 swagger: host: 127.0.0.1 diff --git a/server/visits/dmvisit_service/src/main/resources/application-pro.yml b/server/visits/dmvisit_service/src/main/resources/application-pro.yml index b27c85b..eeed79a 100644 --- a/server/visits/dmvisit_service/src/main/resources/application-pro.yml +++ b/server/visits/dmvisit_service/src/main/resources/application-pro.yml @@ -15,10 +15,21 @@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss - + mail: + default-encoding: UTF-8 + host: smtp.exmail.qq.com + username: jp@doumee.com + password: p7iKUE8VvQQpY58S + properties: + mail: + smtp: + auth: true debug_model: true +########################鍘嬬缉鍖呮枃浠朵綅缃� ######################## +zip_file_path: d:// + ########################鍚屾鏁版嵁妯″紡 ######################## data-sync: org-user-data-origin: 0 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺 diff --git a/server/visits/dmvisit_service/src/main/resources/application-test.yml b/server/visits/dmvisit_service/src/main/resources/application-test.yml index 6bc2caa..a8d00a5 100644 --- a/server/visits/dmvisit_service/src/main/resources/application-test.yml +++ b/server/visits/dmvisit_service/src/main/resources/application-test.yml @@ -15,10 +15,20 @@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss - + mail: + default-encoding: UTF-8 + host: smtp.exmail.qq.com + username: jp@doumee.com + password: p7iKUE8VvQQpY58S + properties: + mail: + smtp: + auth: true debug_model: true +########################鍘嬬缉鍖呮枃浠朵綅缃� ######################## +zip_file_path: d:// ########################鍚屾鏁版嵁妯″紡 ######################## data-sync: org-user-data-origin: 0 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺 -- Gitblit v1.9.3