Browse Source

Merge remote-tracking branch 'origin/master'

master
wangpengfei 2 years ago
parent
commit
d2834a89cf
  1. 8
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/oilTypeInAndOutBound/oilTypeInAndOutBound.js
  2. 30
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/portal/Upload.js
  3. 384
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/components/uploadFile/upload_yanchejianchaTuBiao.vue
  4. 12
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/layout/components/Sidebar/index.vue
  5. 12
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/router/index.js
  6. 6
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialInfo/index.vue
  7. 0
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialInfo/materialInfoAdd.vue
  8. 20
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/index.vue
  9. 23
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/materialTypeAdd.vue
  10. 0
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/oilTypeInfo.vue
  11. 6
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/oilTank/oilTankAdd.vue
  12. 3
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/inventory/oilTypeInBoundList/index.vue
  13. 111
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/oilTypeInBound/index.vue
  14. 93
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/oilTypeOutBound/index.vue
  15. 24
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/recordOilTank/index.vue
  16. 12
      yxt-supervise-dbcenter/docs/databases/table_create-data-init.sql
  17. 13
      yxt-supervise-dbcenter/docs/databases/table_create.sql
  18. 3
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/CrawlTask.java
  19. 4
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountMapper.java
  20. 15
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountMapper.xml
  21. 70
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountService.java
  22. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesMapper.java
  23. 4
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesMapper.xml
  24. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesService.java
  25. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlpurchase/CrawlPurchaseMapper.xml
  26. 11
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/dishesInfo/DishesInfoService.java
  27. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandMapper.java
  28. 6
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandMapper.xml
  29. 22
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandService.java
  30. 5
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoMapper.xml
  31. 15
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoRest.java
  32. 64
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoService.java
  33. 112
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreDto.java
  34. 16
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreMapper.java
  35. 11
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreMapper.xml
  36. 41
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreRest.java
  37. 42
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreService.java
  38. 32
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfo.java
  39. 72
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoDto.java
  40. 12
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoMapper.java
  41. 41
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoRest.java
  42. 42
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoService.java
  43. 34
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/inquireStatistics/index.js
  44. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/layout/components/Sidebar/index.vue
  45. 214
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/inquireStatistics/index.vue

8
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/oilTypeInAndOutBound/oilTypeInAndOutBound.js

@ -13,6 +13,14 @@ export default {
})
},
// 获取油罐by Sid
tankLisBySid: function(sid) {
return request({
url: '/cyf/tankinfo/listByType/' + sid
})
},
// 入库
logPagerList: function(params) {

30
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/portal/Upload.js

@ -0,0 +1,30 @@
import request from '@/utils/request'
import qs from 'qs'
// 统一请求路径前缀
const base = process.env.VUE_APP_URL
// 文件上传接口
export const uploadFile = '/api/file/upload'
// export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'
// 上传图片
// export function imageUpload(data) {
// return request({
// url: '/portal/file/upload',
// method: 'post',
// data,
// headers: { 'Content-Type': 'multipart/form-data' }
// })
// }
// 移除图片
export function deleteFilesOss(data) {
return request({
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss',
method: 'post',
data: qs.stringify(data),
// headers: { 'Content-Type': 'multipart/form-data' }
})
}

384
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/components/uploadFile/upload_yanchejianchaTuBiao.vue

@ -1,222 +1,226 @@
<template>
<div>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" list-type="picture-card" :limit="limit" :file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian">
<i class="el-icon-plus avatar-uploader-icon"/>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile"
:accept="accept" list-type="picture-card" :file-list="files" :on-remove="removeImage"
:on-preview="handlePictureCardPreview" :on-progress="uploadProgrees"
:on-error="uploadError" :on-success="uploadImgSuccess_FuJian">
<i class="el-icon-plus avatar-uploader-icon" />
</el-upload>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { uploadFile_yanchejiancha } from '@/api/portal/Upload'
import { getStorage } from '@/utils/auth.js'
import {
uploadFile
} from '@/api/portal/Upload'
import {
getStorage
} from '@/utils/auth.js'
export default {
model: {
prop: 'name',
event: 'change'
},
props: {
placeholder: {
type: String,
default: ''
},
bucket: {
type: String,
default: 'abc'
},
//
width: {
type: String,
default: '270px'
},
limit: {
type: Number,
default: ''
},
accept: {
type: String,
default: '.jpg,.jpeg,.png,.JPG,.JPEG,'
},
//
name: {
type: Array,
required: true
},
uploadData: {
type: Object,
default: {}
}
},
data() {
return {
dialogImageUrl: '',
dialogVisible: false,
accessToken: null,
uploadFile: uploadFile_yanchejiancha,
fileList_FuJian: [],
enclosure: '',
file_add: '',
file_catch: '',
files: [],
files_list: [],
filedUrl: '',
// fileUrl: fileUrl,
// showpicture:false,
isview: false,
nameArr: '',
loadding: false
}
},
watch: {
name: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
console.log('aaaa1', newVal)
this.files = newVal
console.log('aaaa2', this.files)
export default {
model: {
prop: 'name',
event: 'change'
},
props: {
placeholder: {
type: String,
default: ''
},
bucket: {
type: String,
default: 'abc'
},
//
width: {
type: String,
default: '270px'
},
// limit: {
// type: Number,
// default: ''
// },
accept: {
type: String,
default: '.jpg,.jpeg,.png,.JPG,.JPEG,'
},
//
name: {
type: Array,
required: true
},
uploadData: {
type: Object,
default: {}
}
}
},
mounted() {
this.$nextTick(() => {
this.Init()
})
},
created() {
this.uploadFile = uploadFile_yanchejiancha //
this.accessToken = {
token: getStorage()
}
},
methods: {
showImg(imgList) {
this.files = imgList
console.log('123123123', this.files)
},
view() {
// window.open(this.filedUrl)
},
//
Init() {
if (this.name !== undefined) {
this.files = []
for (var i = 0; i < this.name.length; i++) {
this.files.push({
name: this.name[i],
url: this.name[i]
})
}
data() {
return {
dialogImageUrl: '',
dialogVisible: false,
accessToken: null,
uploadFile: uploadFile,
fileList_FuJian: [],
enclosure: '',
file_add: '',
file_catch: '',
files: [],
files_list: [],
filedUrl: '',
// fileUrl: fileUrl,
// showpicture:false,
isview: false,
nameArr: '',
loadding: false
}
},
handlePictureCardPreview(file) {
this.dialogVisible = true
this.dialogImageUrl = file.url
},
// --
uploadImgSuccess_FuJian(response, file, fileList) {
console.log('您选择的file:', file)
if (file.response.code === '200') {
this.loadding = false
//
this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data
this.files.push({
name: file.response.data.sourceFileName,
url: file.response.data.fullUrl,
size: file.response.data.size
})
this.$emit('change', this.files)
this.$emit('eett', this.files)
watch: {
name: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
this.files = newVal
}
}
},
removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
mounted() {
this.$nextTick(() => {
this.Init()
})
this.$emit('fileChange', this.files)
},
handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList))
this.enclosure = ''
// 1. id(this.file_add)
this.getNewFileId(fileList)
// 2. id(this.file_catch)
this.getCatchFileId(file)
// 3. id
this.getFileId()
// 4. id
this.$emit('change', this.enclosure)
},
// this.file_add(id)
getNewFileId(fileList) {
// debugger
this.file_add = ''
for (var i = 0; i < fileList.length; i++) {
if (fileList[i].response && fileList[i].response.code === '200') {
this.file_add = this.file_add + fileList[i].response.data + ','
}
created() {
this.uploadFile = uploadFile //
this.accessToken = {
token: getStorage()
}
if (this.file_add !== '') {
this.file_add = this.file_add.substring(0, this.file_add.length - 1)
}
// console.log('1. this.file_add: ' + this.file_add)
},
// this.file_catchid
getCatchFileId(file) {
for (var i = 0; i < this.files_list.length; i++) {
if (this.file_catch !== '') {
// 1. id
if (this.files_list[i].name === file.name) {
// 2. file_catchfils_arry
var fils_arry = this.file_catch.split(',')
// 3. fils_arry this.files_list[i].id
var arry = []
fils_arry.forEach((element) => {
//
if (element !== this.files_list[i].id) {
arry.push(element)
}
methods: {
showImg(imgList) {
this.files = imgList
},
view() {
// window.open(this.filedUrl)
},
//
Init() {
if (this.name !== undefined) {
this.files = []
for (var i = 0; i < this.name.length; i++) {
this.files.push({
name: this.name[i],
url: this.name[i]
})
// 4. file_catch
this.file_catch = arry.join(',')
}
}
}
// console.log('2. this.file_catch:' + this.file_catch)
},
// id
getFileId() {
// console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add)
if (this.file_catch !== '') {
},
handlePictureCardPreview(file) {
this.dialogVisible = true
this.dialogImageUrl = file.url
},
// --
uploadImgSuccess_FuJian(response, file, fileList) {
console.log('您选择的file:', file)
if (file.response.code === '200') {
this.loadding = false
//
this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data
this.files.push({
name: file.response.data.sourceFileName,
url: file.response.data.fullUrl,
size: file.response.data.size
})
this.$emit('change', this.files)
this.$emit('eett', this.files)
}
},
removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
})
this.$emit('fileChange', this.files)
},
handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList))
this.enclosure = ''
// 1. id(this.file_add)
this.getNewFileId(fileList)
// 2. id(this.file_catch)
this.getCatchFileId(file)
// 3. id
this.getFileId()
// 4. id
this.$emit('change', this.enclosure)
},
// this.file_add(id)
getNewFileId(fileList) {
// debugger
this.file_add = ''
for (var i = 0; i < fileList.length; i++) {
if (fileList[i].response && fileList[i].response.code === '200') {
this.file_add = this.file_add + fileList[i].response.data + ','
}
}
if (this.file_add !== '') {
this.enclosure = this.file_catch + ',' + this.file_add
this.file_add = this.file_add.substring(0, this.file_add.length - 1)
}
// console.log('1. this.file_add: ' + this.file_add)
},
// this.file_catchid
getCatchFileId(file) {
for (var i = 0; i < this.files_list.length; i++) {
if (this.file_catch !== '') {
// 1. id
if (this.files_list[i].name === file.name) {
// 2. file_catchfils_arry
var fils_arry = this.file_catch.split(',')
// 3. fils_arry this.files_list[i].id
var arry = []
fils_arry.forEach((element) => {
//
if (element !== this.files_list[i].id) {
arry.push(element)
}
})
// 4. file_catch
this.file_catch = arry.join(',')
}
}
}
// console.log('2. this.file_catch:' + this.file_catch)
},
// id
getFileId() {
// console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add)
if (this.file_catch !== '') {
if (this.file_add !== '') {
this.enclosure = this.file_catch + ',' + this.file_add
} else {
this.enclosure = this.file_catch
}
} else {
this.enclosure = this.file_catch
this.enclosure = this.file_add
}
} else {
this.enclosure = this.file_add
}
},
//
uploadError() {
this.loadding = false
},
uploadProgrees(event, file, fileList) {
if (Number(event.percent) > 0) {
this.loadding = true
},
//
uploadError() {
this.loadding = false
},
uploadProgrees(event, file, fileList) {
if (Number(event.percent) > 0) {
this.loadding = true
}
// console.log('event:', event)
}
// console.log('event:', event)
}
}
}
</script>
<style scoped></style>

12
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/layout/components/Sidebar/index.vue

@ -137,20 +137,20 @@
component: 'index',
meta: {
icon: "el-icon-help",
title: "料类型"
title: "料类型"
},
name: "/baseInfo/rawMaterialType",
path: "/baseInfo/rawMaterialType",
name: "/baseInfo/materialType",
path: "/baseInfo/materialType",
},
{
alwaysShow: true,
component: 'index',
meta: {
icon: "el-icon-help",
title: "料信息"
title: "料信息"
},
name: "/baseInfo/rawMaterialInfo",
path: "/baseInfo/rawMaterialInfo",
name: "/baseInfo/materialInfo",
path: "/baseInfo/materialInfo",
},
{
alwaysShow: true,

12
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/router/index.js

@ -52,21 +52,21 @@ export const constantRoutes = [{
title: '基础信息'
},
children: [{
path: '/baseInfo/rawMaterialType',
path: '/baseInfo/materialType',
component: () =>
import('@/views/baseInfo/rawMaterialType/index.vue'),
import('@/views/baseInfo/materialType/index.vue'),
name: 'index',
meta: {
title: '料类型'
title: '料类型'
}
},
{
path: '/baseInfo/rawMaterialInfo',
path: '/baseInfo/materialInfo',
component: () =>
import('@/views/baseInfo/rawMaterialInfo/index.vue'),
import('@/views/baseInfo/materialInfo/index.vue'),
name: 'index',
meta: {
title: '料信息'
title: '料信息'
}
},
{

6
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/rawMaterialInfo/index.vue → yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialInfo/index.vue

@ -41,7 +41,7 @@
</div>
</div>
<rawMaterialInfoAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" />
<materialInfoAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" />
<!-- <oilTypeInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @reloadlist="getList" /> -->
<el-dialog title="记录本次读取库存" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0">
@ -66,7 +66,7 @@
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import rawMaterialInfoAdd from './rawMaterialInfoAdd.vue'
import materialInfoAdd from './materialInfoAdd.vue'
// import oilTypeInfo from './oilTypeInfo.vue'
export default {
name: 'CustomerManagement',
@ -74,7 +74,7 @@
Pagination,
pageye,
ButtonBar,
rawMaterialInfoAdd,
materialInfoAdd,
// oilTypeInfo,
},

0
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/rawMaterialInfo/rawMaterialInfoAdd.vue → yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialInfo/materialInfoAdd.vue

20
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/rawMaterialType/index.vue → yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/index.vue

@ -1,14 +1,14 @@
<template>
<div class="app-container">
<div v-show="viewState ==1">
<button-bar view-title="料类型" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar view-title="料类型" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="80px" class="tab-header">
<el-form-item label="料名称">
<el-input v-model="listQuery.params.name" maxlength="20" placeholder="请输入料名称" class="addinputw"
<el-form-item label="料名称">
<el-input v-model="listQuery.params.name" maxlength="20" placeholder="请输入料名称" class="addinputw"
clearable />
</el-form-item>
</el-form>
@ -19,7 +19,7 @@
</div>
</div>
<div class="listtop">
<div class="tit">料列表</div>
<div class="tit">料列表</div>
<!-- 翻页分页 -->
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> -->
</div>
@ -34,9 +34,9 @@
<el-button type="primary" size="mini" @click="doDel(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="料类型" prop="name" align="center" />
<el-table-column label="料编码" prop="number" align="center" />
<el-table-column label="料Code" prop="code" align="center" />
<el-table-column label="料类型" prop="name" align="center" />
<el-table-column label="料编码" prop="number" align="center" />
<el-table-column label="料Code" prop="code" align="center" />
</el-table>
</div>
<div class="pages">
@ -45,7 +45,7 @@
</div>
</div>
</div>
<rawMaterialTypeAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" />
<materialTypeAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" />
<!-- <oilTypeInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @reloadlist="getList" /> -->
</div>
</template>
@ -55,7 +55,7 @@
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import rawMaterialTypeAdd from './rawMaterialTypeAdd.vue'
import materialTypeAdd from './materialTypeAdd.vue'
// import oilTypeInfo from './oilTypeInfo.vue'
export default {
name: 'CustomerManagement',
@ -63,7 +63,7 @@
Pagination,
pageye,
ButtonBar,
rawMaterialTypeAdd,
materialTypeAdd,
// oilTypeInfo,
},

23
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/rawMaterialType/rawMaterialTypeAdd.vue → yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/materialTypeAdd.vue

@ -3,7 +3,7 @@
<div class="tab-header webtop">
<!-- 标题 -->
<div>料类型</div>
<div>料类型</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
@ -17,15 +17,22 @@
<el-card class="box-card">
<div class="item">
<span class="item_text">原料类型</span>
<span class="item_text">原料/包装物</span>
<div class="item_input">
<el-radio v-model="radio" label="1">原料</el-radio>
<el-radio v-model="radio" label="2">包装物</el-radio>
</div>
</div>
<div class="item">
<span class="item_text">物料类型</span>
<el-input v-model="formobj.name" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">原料编码</span>
<span class="item_text">料编码</span>
<el-input v-model="formobj.number" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">料Code</span>
<span class="item_text">料Code</span>
<el-input v-model="formobj.code" placeholder="" class="item_input" clearable />
</div>
</el-card>
@ -41,8 +48,10 @@
data() {
return {
submitdisabled: false,
radio:"1",
formobj: {
sid: "",
type:"",
name: "",
number: "",
code: ""
@ -51,6 +60,12 @@
},
methods: {
saveOrUpdate() {
console.log("radio》》》》》》》",this.radio)
this.formobj.type = this.radio
if(this.formobj.sid){
req.updateData(this.formobj)
.then(resp => {

0
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/rawMaterialType/oilTypeInfo.vue → yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/materialType/oilTypeInfo.vue

6
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/baseInfo/oilTank/oilTankAdd.vue

@ -21,14 +21,14 @@
<el-input v-model="formobj.number" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">原油类型</span>
<el-select v-model="formobj.crudeName" filterable placeholder="请选择原油类型" class="item_input" @change="getType">
<span class="item_text">原油名称</span>
<el-select v-model="formobj.crudeName" filterable placeholder="请选择原油名称" class="item_input" @change="getType">
<el-option v-for="item in crudeList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<!-- <el-input v-model="formobj.number" placeholder="" class="item_input" clearable /> -->
</div>
<div class="item">
<span class="item_text">原油编</span>
<span class="item_text">原油编</span>
<el-input v-model="formobj.crudeNumber" placeholder="" :readonly="true" class="item_input" clearable />
<!-- <span class="item_input">{{formobj.crudeNumber}}</span> -->
</div>

3
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/inventory/oilTypeInBoundList/index.vue

@ -32,8 +32,9 @@
<el-table-column prop="contractSigningDate" label="合同日期" width="150" align="center" />
<el-table-column prop="licensePlateNumber" label="发货车牌号" width="150" align="center" />
<el-table-column prop="warehousingDate" label="入库日期" width="150" align="center" />
<el-table-column prop="crudeName" label="原油名称" width="150" align="center" />
<el-table-column prop="crudeNumber" label="原油编码" width="150" align="center" />
<el-table-column prop="tankNumber" label="油罐编号" width="150" align="center" />
<el-table-column prop="crudeName" label="原油类型" width="150" align="center" />
<el-table-column prop="weight" label="收料净重" width="150" align="center" />
<el-table-column prop="value" label="收料价值" width="150" align="center" />
<el-table-column prop="inventory" label="收料后库存" width="150" align="center" />

111
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/oilTypeInBound/index.vue

@ -38,6 +38,18 @@
<el-date-picker v-model="formobj.warehousingDate" type="date" format="yyyy-MM-dd" class="item_input"
value-format="yyyy-MM-dd" placeholder="请选择" />
</div>
<div class="item">
<span class="item_text">原油名称</span>
<el-select v-model="formobj.crudeName" filterable placeholder="请选择原油名称" class="item_input" @change="getType">
<el-option v-for="item in crudeList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<!-- <el-input v-model="formobj.number" placeholder="" class="item_input" clearable /> -->
</div>
<div class="item">
<span class="item_text">原油编号</span>
<el-input v-model="formobj.crudeNumber" placeholder="" :readonly="true" class="item_input" clearable />
<!-- <span class="item_input">{{formobj.crudeNumber}}</span> -->
</div>
<div class="item">
<span class="item_text">油罐编号</span>
<el-select v-model="formobj.tankName" filterable placeholder="请选择油罐编号" class="item_input" @change="getTank">
@ -45,11 +57,6 @@
</el-select>
<!-- <el-input v-model="formobj.number" placeholder="" class="item_input" clearable /> -->
</div>
<div class="item">
<span class="item_text">原油种类</span>
<el-input v-model="formobj.oilType" placeholder="" :readonly="true" class="item_input" clearable />
<!-- <span class="item_input">{{formobj.crudeNumber}}</span> -->
</div>
<div class="item">
<span class="item_text">收料净重</span>
<el-input v-model="formobj.weight" placeholder="" class="item_input" clearable />
@ -63,6 +70,12 @@
<span class="item_text">备注</span>
<el-input v-model="formobj.remarks" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-top: 70px;">
<span class="item_text">登记材料</span>
<upload class="item_input" ref="uploadImg" v-model="imgList" @change="backData" bucket="map"
:upload-data="{ type: '0001' }"></upload>
</div>
</el-card>
</div>
@ -72,38 +85,69 @@
<script>
import req from '@/api/oilTypeInAndOutBound/oilTypeInAndOutBound'
import req2 from '@/api/oilTank/oilTank'
import upload from '@/components/uploadFile/upload_yanchejianchaTuBiao'
export default {
components: {
upload
},
data() {
return {
submitdisabled: false,
crudeLists: [],
crudeList: [],
tankLists: [],
tankList: [],
imgList: [],
imgList2: [],
formobj: {
sid: "",
contractNumber: "",
contractSigningDate: "",
warehousingDate: "",
crudeSid: "",
crudeName: "",
crudeNumber: "",
tankName: "",
tankSid: "",
oilType: "",
weight: "",
value: "",
supplierSid: "",
licensePlateNumber: "",
remarks: "",
crudeOilStorageFile:[],
}
}
},
created() {
this.getTankList()
this.crudeinfoList()
},
methods: {
getTankList() {
req.tankList().then((res) => {
crudeinfoList() {
req.crudeinfoList().then((res) => {
if (res.success) {
console.log(">>>>>>>>>2222222", res.data)
this.crudeLists = res.data
for (var i = 0; i < this.crudeLists.length; i++) {
let item = {
name: this.crudeLists[i].name,
sid: this.crudeLists[i].sid,
}
this.crudeList.push(item)
}
}
})
},
getTankList(sid) {
req.tankLisBySid(sid).then((res) => {
if (res.success) {
console.log(">>>>>>>>>111111111111wwwwwwwwww", res.data)
this.tankLists = res.data
this.tankList =[]
for (var i = 0; i < this.tankLists.length; i++) {
let item = {
@ -126,20 +170,26 @@
type: 'success',
message: resp.msg
})
this.formobj = {
this.formobj = {
sid: "",
salesContractNumber: "",
contractNumber: "",
contractSigningDate: "",
deliveryDate: "",
flowmeterSid: "",
flowmeterName: "",
warehousingDate: "",
crudeSid: "",
crudeName: "",
crudeNumber: "",
tankName: "",
oilType: "",
tankSid: "",
weight: "",
value: "",
supplierSid: "",
licensePlateNumber: "",
remarks: "",
}
crudeOilStorageFile:[],
}
this.imgList = []
this.imgList2 = []
} else {
// resp.code
}
@ -148,15 +198,35 @@
},
handleReturn() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
getType(value) {
console.log(">>>>>>>>>getType", value)
const choose = this.crudeLists.filter((item) => item.sid === value)
console.log(">>>>>>>>>getType", choose[0])
this.formobj.crudeNumber = choose[0].number
this.formobj.crudeSid = value
this.getTankList(value)
},
getTank(value) {
console.log(">>>>>>>>>getType", value)
const choose = this.tankLists.filter((item) => item.sid === value)
console.log(">>>>>>>>>getType", choose[0])
this.formobj.tankSid = choose[0].sid
this.formobj.oilType = choose[0].crudeName
},
backData(value) {
console.log("backData>>>>>", value)
const aa = []
if (value.length > 0 && value != null && value != undefined) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].url)
}
}
this.formobj.crudeOilStorageFile = aa
},
}
}
@ -167,6 +237,7 @@
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
.item {
display: flex;

93
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/oilTypeOutBound/index.vue

@ -13,7 +13,7 @@
<!-- end 详情按钮 -->
</div>
<div>
<div class="listconadd">
<el-card class="box-card">
<div class="item">
@ -31,17 +31,24 @@
value-format="yyyy-MM-dd" placeholder="请选择" />
</div>
<div class="item">
<span class="item_text">油罐编号</span>
<el-select v-model="formobj.tankName" filterable placeholder="请选择油罐编号" class="item_input" @change="getTank">
<el-option v-for="item in tankList" :key="item.sid" :label="item.name" :value="item.sid" />
<span class="item_text">原油名称</span>
<el-select v-model="formobj.crudeName" filterable placeholder="请选择原油名称" class="item_input" @change="getType">
<el-option v-for="item in crudeList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<!-- <el-input v-model="formobj.number" placeholder="" class="item_input" clearable /> -->
</div>
<div class="item">
<span class="item_text">原油编号</span>
<el-input v-model="formobj.oilType" placeholder="" :readonly="true" class="item_input" clearable />
<el-input v-model="formobj.crudeNumber" placeholder="" :readonly="true" class="item_input" clearable />
<!-- <span class="item_input">{{formobj.crudeNumber}}</span> -->
</div>
<div class="item">
<span class="item_text">油罐编号</span>
<el-select v-model="formobj.tankName" filterable placeholder="请选择油罐编号" class="item_input" @change="getTank">
<el-option v-for="item in tankList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<!-- <el-input v-model="formobj.number" placeholder="" class="item_input" clearable /> -->
</div>
<div class="item">
<span class="item_text">流量仪器</span>
<el-input v-model="formobj.flowmeterName" placeholder="" :readonly="true" class="item_input" clearable />
@ -59,6 +66,12 @@
<span class="item_text">备注</span>
<el-input v-model="formobj.remarks" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-top: 70px;">
<span class="item_text">登记材料</span>
<upload class="item_input" ref="uploadImg" v-model="imgList" @change="backData"
bucket="map" :upload-data="{ type: '0001' }"></upload>
</div>
</el-card>
</div>
@ -68,17 +81,29 @@
<script>
import req from '@/api/oilTypeInAndOutBound/oilTypeInAndOutBound'
import req2 from '@/api/oilTank/oilTank'
import upload from '@/components/uploadFile/upload_yanchejianchaTuBiao'
export default {
components: {
upload
},
data() {
return {
submitdisabled: false,
crudeLists: [],
crudeList: [],
tankLists: [],
tankList: [],
imgList: [],
imgList2: [],
formobj: {
sid: "",
salesContractNumber: "",
contractSigningDate: "",
deliveryDate: "",
crudeSid: "",
crudeName: "",
crudeNumber: "",
tankSid: "",
tankName: "",
flowmeterName: "",
@ -86,20 +111,41 @@
weight: "",
value: "",
remarks: "",
crudeOilOutboundFiles :[],
}
}
},
created() {
console.log(">>>>>>>>>created")
this.getTankList()
this.crudeinfoList()
},
methods: {
getTankList() {
req.tankList().then((res) => {
crudeinfoList() {
req.crudeinfoList().then((res) => {
if (res.success) {
console.log(">>>>>>>>>2222222", res.data)
this.crudeLists = res.data
for (var i = 0; i < this.crudeLists.length; i++) {
let item = {
name: this.crudeLists[i].name,
sid: this.crudeLists[i].sid,
}
this.crudeList.push(item)
}
}
})
},
getTankList(sid) {
req.tankLisBySid(sid).then((res) => {
if (res.success) {
console.log(">>>>>>>>>111111111111wwwwwwwwww", res.data)
this.tankLists = res.data
this.tankList =[]
for (var i = 0; i < this.tankLists.length; i++) {
let item = {
@ -127,6 +173,9 @@
salesContractNumber: "",
contractSigningDate: "",
deliveryDate: "",
crudeSid: "",
crudeName: "",
crudeNumber: "",
tankSid: "",
tankName: "",
flowmeterName: "",
@ -134,8 +183,11 @@
weight: "",
value: "",
remarks: "",
crudeOilOutboundFiles :[],
}
this.imgList = []
this.imgList2 = []
} else {
// resp.code
}
@ -147,15 +199,33 @@
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
getType(value) {
console.log(">>>>>>>>>getType", value)
const choose = this.crudeLists.filter((item) => item.sid === value)
console.log(">>>>>>>>>getType", choose[0])
this.formobj.crudeNumber = choose[0].number
this.formobj.crudeSid = value
this.getTankList(value)
},
getTank(value) {
console.log(">>>>>>>>>getType", value)
const choose = this.tankLists.filter((item) => item.sid === value)
console.log(">>>>>>>>>getType", choose[0])
this.formobj.tankSid = choose[0].sid
this.formobj.oilType = choose[0].crudeName
this.formobj.flowmeterName = choose[0].flowmeterName
},
backData(value) {
console.log("backData>>>>>", value)
const aa = []
if (value.length > 0 && value != null && value != undefined) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].url)
}
}
this.formobj.crudeOilOutboundFiles = aa
},
}
}
</script>
@ -165,6 +235,7 @@
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
.item {
display: flex;
@ -221,4 +292,4 @@
}
}
</style>
</style>

24
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/supervise/recordOilTank/index.vue

@ -26,6 +26,12 @@
<span class="item_text">油罐库存高度</span>
<el-input v-model="formobj.height" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="margin-top: 70px;">
<span class="item_text">登记材料</span>
<upload class="item_input" ref="uploadImg" v-model="imgList" :limit="3" @change="backData"
bucket="map" :upload-data="{ type: '0001' }"></upload>
</div>
</el-card>
</div>
@ -36,12 +42,18 @@
<script>
import req from '@/api/oilTank/oilTank'
import req2 from '@/api/oilTypeInAndOutBound/oilTypeInAndOutBound'
import upload from '@/components/uploadFile/upload_yanchejianchaTuBiao'
export default {
components: {
upload
},
data() {
return {
submitdisabled: false,
tankLists: [],
tankList: [],
imgList: [],
imgList2: [],
formobj: {
tankName: "",
tankSid: "",
@ -105,6 +117,17 @@
this.formobj.tankSid = choose[0].sid
this.formobj.tankName = choose[0].number
},
backData(value) {
console.log("backData>>>>>", value)
// const aa = []
// if (value.length > 0 && value != null && value != undefined) {
// for (var i = 0; i < value.length; i++) {
// aa.push(value[i].url)
// }
// }
// this.formobj.businessLicenseFiles = aa
},
}
}
</script>
@ -114,6 +137,7 @@
margin-right: 60px;
min-width: 70%;
margin-top: 20px;
padding-bottom: 50px;
.item {
display: flex;

12
yxt-supervise-dbcenter/docs/databases/table_create-data-init.sql

@ -0,0 +1,12 @@
-- 企业/集团信息
INSERT INTO `enp_info` (`sid`, `name`, `code`) VALUES
('1001', '中鸿记', '1001');
-- 企业品牌信息
INSERT INTO `enp_brand` (`sid`, `name`, `code`, `enpSid`, `enpCode`, `enpName`) VALUES
('100101', '熟溢香', '100101', '1001', '1001', '中鸿记'),
('100102', '馍馍卤', '100102', '1001', '1001', '中鸿记');
-- 企业门店信息
INSERT INTO `enp_store` (`sid`, `name`, `code`, `enpSid`, `enpCode`, `enpName`, `brandSid`, `brandCode`, `brandName`) VALUES
('10010101', '熟溢香振头店', '10010101', '1001', '1001', '中鸿记','100101', '100101', '熟溢香'),
('10010102', '馍馍卤振岗店', '10010102', '1001', '1001', '中鸿记','100102', '100102', '馍馍卤'),
('10010103', '馍馍卤雅清街店', '10010103', '1001', '1001', '中鸿记','100102', '100102', '馍馍卤');

13
yxt-supervise-dbcenter/docs/databases/table_create.sql

@ -19,6 +19,10 @@ CREATE TABLE `enp_info` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='企业/集团信息' ROW_FORMAT = Dynamic;
INSERT INTO `enp_info` (`sid`, `name`, `code`) VALUES
('1001', '中鸿记', '1001');
DROP TABLE IF EXISTS `enp_brand`;
CREATE TABLE `enp_brand` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
@ -41,6 +45,10 @@ CREATE TABLE `enp_brand` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='企业品牌信息' ROW_FORMAT = Dynamic;
INSERT INTO `enp_brand` (`sid`, `name`, `code`, `enpSid`, `enpCode`, `enpName`) VALUES
('100101', '熟溢香', '100101', '1001', '1001', '中鸿记'),
('100102', '馍馍卤', '100102', '1001', '1001', '中鸿记');
DROP TABLE IF EXISTS `enp_store`;
CREATE TABLE `enp_store` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
@ -66,6 +74,11 @@ CREATE TABLE `enp_store` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='企业门店信息' ROW_FORMAT = Dynamic;
INSERT INTO `enp_store` (`sid`, `name`, `code`, `enpSid`, `enpCode`, `enpName`, `brandSid`, `brandCode`, `brandName`) VALUES
('10010101', '熟溢香振头店', '10010101', '1001', '1001', '中鸿记','100101', '100101', '熟溢香'),
('10010102', '馍馍卤振岗店', '10010102', '1001', '1001', '中鸿记','100102', '100102', '馍馍卤'),
('10010103', '馍馍卤雅清街店', '10010103', '1001', '1001', '中鸿记','100102', '100102', '馍馍卤');
DROP TABLE IF EXISTS `dishes_info`;
CREATE TABLE `dishes_info` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT 'id',

3
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/CrawlTask.java

@ -30,9 +30,10 @@ public class CrawlTask {
@Scheduled(cron = "0 30 10 * * ?")
public void pullZhjData() {
String currDay = DateUtil.format(DateUtil.offsetDay(new Date(), -1), "yyyy-MM-dd");
String purchaseDay = DateUtil.format(DateUtil.offsetDay(new Date(), -2), "yyyy-MM-dd");
ThreadUtil.execute(() -> crawlSalesAmountService.pullData(currDay));
ThreadUtil.execute(() -> crawlSalesDishesService.pullData(currDay));
ThreadUtil.execute(() -> crawlPurchaseService.pullData(currDay));
ThreadUtil.execute(() -> crawlPurchaseService.pullData(purchaseDay));
}
}

4
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountMapper.java

@ -15,9 +15,7 @@ import org.apache.ibatis.annotations.Param;
*/
@Mapper
public interface CrawlSalesAmountMapper extends BaseMapper<CrawlSalesAmount> {
CrawlSalesAmount select();
IPage<CrawlSalesAmountVo> selectPageVo(IPage<CrawlSalesAmount> page, @Param(Constants.WRAPPER) Wrapper<CrawlSalesAmount> qw);
IPage<CrawlSalesAmountVo> listPageVo(IPage<CrawlSalesAmount> page, @Param(Constants.WRAPPER) Wrapper<CrawlSalesAmount> qw);
@Delete("delete from crawl_sales_amount where dataDate=#{dataDate} ")
void deleteOfDay(@Param("dataDate") String currDay);

15
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountMapper.xml

@ -1,17 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesAmount.CrawlSalesAmountMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="select" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesAmount.CrawlSalesAmount">
</select>
<select id="selectPageVo" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesAmount.CrawlSalesAmountVo">
select s.enpName,b.name,a.storeName,a.dataDate,a.salesAmount
from crawl_sales_amount a
inner join enp_store s
inner join enp_brand b on s.enpSid = b.enpSid
<select id="listPageVo" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesAmount.CrawlSalesAmountVo">
SELECT s.enpName,b.name,a.storeName,a.dataDate,a.salesAmount
FROM crawl_sales_amount a
inner join enp_store s on s.name = a.storeName
inner join enp_brand b on s.brandName = b.name
<where>
${ew.sqlSegment}
</where>

70
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesAmount/CrawlSalesAmountService.java

@ -1,19 +1,15 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesAmount;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.dbcenter.zhj.crawl.ZhjSpider;
import com.yxt.supervise.dbcenter.zhj.crawl.spider.RespSalesAmount;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -41,7 +37,7 @@ public class CrawlSalesAmountService extends ServiceImpl<CrawlSalesAmountMapper,
CrawlSalesAmountQuery query = pq.getParams();
QueryWrapper<CrawlSalesAmount> qw = new QueryWrapper<>();
if (query != null){
if (StrUtil.isNotBlank(query.getStoreName())){
if (query.getStoreName() != null && !query.getStoreName().equals("")){
qw.eq("a.storeName",query.getStoreName());
}
if (query.getFromTime() != null && !query.getFromTime().equals("")){
@ -54,39 +50,41 @@ public class CrawlSalesAmountService extends ServiceImpl<CrawlSalesAmountMapper,
qw.eq("b.name",query.getBrandName());
}
}
qw.gt("a.id",0);
qw.orderByDesc("a.dataDate");
// IPage<CrawlSalesAmount> crawlSalesAmountIPage = baseMapper.selectPage(page, qw);
// List<CrawlSalesAmount> records = crawlSalesAmountIPage.getRecords();
// List<CrawlSalesAmountVo> voList = new ArrayList<>();
// for (CrawlSalesAmount csa: records){
// CrawlSalesAmountVo vo = new CrawlSalesAmountVo();
// BeanUtil.copyProperties(csa,vo);
// vo.setEnpName("中鸿记");
// String storeName = csa.getStoreName();
// if("熟溢香振头店".equals(storeName)){
// vo.setName("熟溢香");
// }else{
// vo.setName("馍馍卤");
// }
// vo.setOils(csa.getSalesAmount()*50*0.01);
// vo.setRice(csa.getSalesAmount()*30*0.01);
// vo.setFace(csa.getSalesAmount()*20*0.01);
// vo.setTotalCount(vo.getOils()+vo.getRice()+vo.getFace());
// voList.add(vo);
// }
//
// PagerVo<CrawlSalesAmountVo> pvo = new PagerVo<>();
// PagerVo<CrawlSalesAmountVo> pv = PagerUtil.pageToVo(crawlSalesAmountIPage, pvo);
// pv.setRecords(voList);
IPage<CrawlSalesAmount> page = PagerUtil.queryToPage(pq);
IPage<CrawlSalesAmount> crawlSalesAmountIPage = baseMapper.selectPage(page, qw);
List<CrawlSalesAmount> records = crawlSalesAmountIPage.getRecords();
List<CrawlSalesAmountVo> voList = new ArrayList<>();
for (CrawlSalesAmount csa: records){
CrawlSalesAmountVo vo = new CrawlSalesAmountVo();
BeanUtil.copyProperties(csa,vo);
vo.setEnpName("中鸿记");
String storeName = csa.getStoreName();
if("熟溢香振头店".equals(storeName)){
vo.setName("熟溢香");
}else{
vo.setName("馍馍卤");
}
vo.setOils(csa.getSalesAmount()*50*0.01);
vo.setRice(csa.getSalesAmount()*30*0.01);
vo.setFace(csa.getSalesAmount()*20*0.01);
vo.setTotalCount(vo.getOils()+vo.getRice()+vo.getFace());
voList.add(vo);
IPage<CrawlSalesAmountVo> pagging = baseMapper.listPageVo(page, qw);
PagerVo<CrawlSalesAmountVo> pv = PagerUtil.pageToVo(pagging, null);
List<CrawlSalesAmountVo> records = pv.getRecords();
for (CrawlSalesAmountVo record : records) {
record.setOils(record.getSalesAmount()*50*0.01);
record.setRice(record.getSalesAmount()*30*0.01);
record.setFace(record.getSalesAmount()*20*0.01);
record.setTotalCount(record.getOils()+record.getRice()+record.getFace());
}
PagerVo<CrawlSalesAmountVo> pvo = new PagerVo<>();
PagerVo<CrawlSalesAmountVo> pv = PagerUtil.pageToVo(crawlSalesAmountIPage, pvo);
pv.setRecords(voList);
// IPage<CrawlSalesAmountVo> pagging = baseMapper.selectPage();//.selectPageVo(page, qw);
// PagerVo<CrawlSalesAmountVo> pv = PagerUtil.pageToVo(pagging, null);
// List<CrawlSalesAmountVo> records = pv.getRecords();
// for (CrawlSalesAmountVo record : records) {
// record.setOils(record.getSalesAmount()*50*0.01);
// record.setRice(record.getSalesAmount()*30*0.01);
// record.setFace(record.getSalesAmount()*20*0.01);
// record.setTotalCount(record.getOils()+record.getRice()+record.getFace());
// }
return pv;
}

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesMapper.java

@ -16,6 +16,8 @@ public interface CrawlSalesDishesMapper extends BaseMapper<CrawlSalesDishes> {
List<CrawlSalesDishes> selectSalesDishesList(CrawlSalesDishesDto dto);
List<CrawlSalesDishes> selectSalesDishesListList(CrawlSalesDishesDto dto);
@Delete("delete from crawl_sales_dishes where dataDate=#{dataDate} ")
void deleteOfDay(@Param("dataDate") String currDay);
}

4
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesMapper.xml

@ -8,4 +8,8 @@
where a.storeName = #{StoreName} and d.dataDate = #{dataDate}
</select>
<select id="selectSalesDishesListList" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesDishes.CrawlSalesDishes" parameterType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlSalesDishes.CrawlSalesDishesDto">
select * from crawl_sales_dishes where storeName = #{StoreName} and dataDate = #{dataDate}
</select>
</mapper>

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlSalesDishes/CrawlSalesDishesService.java

@ -34,7 +34,7 @@ public class CrawlSalesDishesService extends ServiceImpl<CrawlSalesDishesMapper,
public ResultBean selectSalesDishesList(CrawlSalesDishesDto dto) {
ResultBean rb = ResultBean.fireFail();
List<CrawlSalesDishes> crawlSalesDishes = baseMapper.selectSalesDishesList(dto);
List<CrawlSalesDishes> crawlSalesDishes = baseMapper.selectSalesDishesListList(dto);
if (crawlSalesDishes == null || crawlSalesDishes.size() == 0) {
return rb.setMsg("此门店下没有销售数据");
}

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/crawlpurchase/CrawlPurchaseMapper.xml

@ -3,7 +3,7 @@
<mapper namespace="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlpurchase.CrawlPurchaseMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPurchaseList" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlpurchase.CrawlPurchase" parameterType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlpurchase.CrawlPurchase">
<select id="selectPurchaseList" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlpurchase.CrawlPurchase" parameterType="com.yxt.supervise.dbcenter.zhj.crawl.biz.crawlpurchase.CrawlPurchaseDto">
select * from crawl_purchase where storeName = #{storeName} and dataDate = #{dataDate}
</select>

11
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/dishesInfo/DishesInfoService.java

@ -16,14 +16,11 @@ import java.util.List;
@Service
public class DishesInfoService extends MybatisBaseService<DishesInfoMapper, DishesInfo> {
@Autowired
private DishesInfoMapper dishesInfoMapper;
public ResultBean save(DishesInfoDto dto){
ResultBean rb = ResultBean.fireFail();
DishesInfo info = new DishesInfo();
BeanUtil.copyProperties(dto,info,"id","sid");
int insert = dishesInfoMapper.insert(info);
int insert = baseMapper.insert(info);
if (insert == 0){
return rb.setMsg("添加失败");
}
@ -35,7 +32,7 @@ public class DishesInfoService extends MybatisBaseService<DishesInfoMapper, Dish
String sid = dto.getSid();
DishesInfo dishesInfo = fetchBySid(sid);
BeanUtil.copyProperties(dto,dishesInfo,"id","sid");
int i = dishesInfoMapper.updateById(dishesInfo);
int i = baseMapper.updateById(dishesInfo);
if (i == 0){
return rb.setMsg("修改失败");
}
@ -44,7 +41,7 @@ public class DishesInfoService extends MybatisBaseService<DishesInfoMapper, Dish
public ResultBean deleteDishesInfo(String sid){
ResultBean rb = ResultBean.fireFail();
int delete = dishesInfoMapper.delete(new QueryWrapper<DishesInfo>().eq("sid", sid));
int delete = baseMapper.delete(new QueryWrapper<DishesInfo>().eq("sid", sid));
if (delete == 0){
return rb.setMsg("删除失败");
}
@ -53,7 +50,7 @@ public class DishesInfoService extends MybatisBaseService<DishesInfoMapper, Dish
public ResultBean selectDishesInfoList(){
ResultBean rb = ResultBean.fireFail();
List<DishesInfo> dishesInfos = dishesInfoMapper.selectDishesInfoList();
List<DishesInfo> dishesInfos = baseMapper.selectDishesInfoList();
return rb.success().setData(dishesInfos);
}
}

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandMapper.java

@ -10,5 +10,5 @@ import org.apache.ibatis.annotations.Param;
*/
@Mapper
public interface EnpBrandMapper extends BaseMapper<EnpBrand> {
void deleteEnpBrandBySid(@Param("sid") String sid);
EnpBrand selectEnpBrandBEnpySid(@Param("sid") String sid);
}

6
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandMapper.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpBrand.EnpBrandMapper">
<delete id="deleteEnpBrandBySid">
delete from enp_brand where sid = #{sid}
</delete>
<select id="selectEnpBrandBEnpySid" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpBrand.EnpBrand">
select * from enp_brand where enpSid = #{sid}
</select>
</mapper>

22
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpBrand/EnpBrandService.java

@ -2,7 +2,10 @@ package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpBrand;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStore;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStoreMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -14,13 +17,13 @@ import org.springframework.stereotype.Service;
public class EnpBrandService extends MybatisBaseService<EnpBrandMapper, EnpBrand> {
@Autowired
private EnpBrandMapper enpBrandMapper;
private EnpStoreMapper enpStoreMapper;
public ResultBean save(EnpBrandDto dto){
ResultBean rb = ResultBean.fireFail();
EnpBrand enpBrand = new EnpBrand();
BeanUtil.copyProperties(dto,enpBrand);
int insert = enpBrandMapper.insert(enpBrand);
int insert = baseMapper.insert(enpBrand);
if (insert == 0){
return rb.setMsg("添加失败");
}
@ -29,7 +32,7 @@ public class EnpBrandService extends MybatisBaseService<EnpBrandMapper, EnpBrand
public ResultBean delete(String sid){
ResultBean rb = ResultBean.fireFail();
enpBrandMapper.deleteEnpBrandBySid(sid);
int i = deleteBySid(sid);
return rb.success().setMsg("删除成功");
}
@ -37,7 +40,18 @@ public class EnpBrandService extends MybatisBaseService<EnpBrandMapper, EnpBrand
ResultBean rb = ResultBean.fireFail();
EnpBrand enpBrand = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto,enpBrand,"id","sid");
int i = enpBrandMapper.updateById(enpBrand);
int i = baseMapper.updateById(enpBrand);
EnpStore enpStore = enpStoreMapper.selectEnpStoreByBrandSid(dto.getSid());
if (enpBrand != null){
if (StringUtils.isNotNull(dto.getCode())){
enpStore.setBrandCode(dto.getCode());
}
if (StringUtils.isNotNull(dto.getName())){
enpStore.setBrandName(dto.getName());
}
//修改企业门店信息中所属品牌信息
enpStoreMapper.updateById(enpStore);
}
if (i == 0){
return rb.setMsg("修改失败");
}

5
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpInfo.EnpInfoMapper">
</mapper>

15
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoRest.java

@ -4,6 +4,7 @@ import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -20,9 +21,21 @@ public class EnpInfoRest {
@Autowired
private EnpInfoService enpInfoService;
@ApiOperation("新增企业")
@ApiOperation("新增企业信息")
@RequestMapping("/save")
public ResultBean save(@RequestBody EnpInfoDto enpInfoDto){
return enpInfoService.save(enpInfoDto);
}
@ApiOperation("删除该企业信息")
@RequestMapping("/deleteEnpInfoBySid/{sid}")
public ResultBean deleteEnpInfoBySid(@PathVariable String sid){
return enpInfoService.deleteEnpInfoBySid(sid);
}
@ApiOperation("修改该企业信息")
@RequestMapping("/alterEnpInfo")
public ResultBean alterEnpInfo(@RequestBody EnpInfoDto dto){
return enpInfoService.alterEnpInfo(dto);
}
}

64
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpInfo/EnpInfoService.java

@ -1,9 +1,15 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpInfo;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpBrand.EnpBrand;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpBrand.EnpBrandMapper;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStore;
import com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStoreMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author shkstart
@ -12,7 +18,59 @@ import org.springframework.web.bind.annotation.RequestBody;
@Service
public class EnpInfoService extends MybatisBaseService<EnpInfoMapper, EnpInfo>{
public ResultBean save(EnpInfoDto enpInfoDto){
return null;
@Autowired
private EnpBrandMapper enpBrandMapper;
@Autowired
private EnpStoreMapper enpStoreMapper;
public ResultBean save(EnpInfoDto dto){
ResultBean rb = ResultBean.fireFail();
EnpInfo enpInfo = new EnpInfo();
BeanUtil.copyProperties(dto,enpInfo);
int insert = baseMapper.insert(enpInfo);
if (insert == 0){
return rb.setMsg("新增失败");
}
return rb.success().setMsg("新增成功");
}
public ResultBean deleteEnpInfoBySid(String sid){
ResultBean rb = ResultBean.fireFail();
int i = deleteBySid(sid);
if (i == 0){
return rb.setMsg("删除失败");
}
return rb.success().setMsg("删除成功");
}
public ResultBean alterEnpInfo(EnpInfoDto dto){
ResultBean rb = ResultBean.fireFail();
EnpInfo enpInfo = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto,enpInfo,"id","sid");
int i = baseMapper.updateById(enpInfo);
EnpBrand enpBrand = enpBrandMapper.selectEnpBrandBEnpySid(dto.getSid());
EnpStore enpStore = enpStoreMapper.selectEnpStoreByEnpSid(dto.getSid());
if (enpBrand != null || enpStore != null){
if (StringUtils.isNotNull(dto.getCode())){
enpBrand.setEnpCode(dto.getCode());
enpStore.setEnpCode(dto.getCode());
}
if (StringUtils.isNotNull(dto.getName())){
enpBrand.setEnpName(dto.getName());
enpStore.setEnpName(dto.getName());
}
if (enpBrand != null){
//修改企业品牌中所属企业的信息
enpBrandMapper.updateById(enpBrand);
}
if (enpStore != null){
//修改企业门店中所属企业的信息
enpStoreMapper.updateById(enpStore);
}
}
if (i == 0){
return rb.setMsg("修改失败");
}
return rb.success().setMsg("修改成功");
}
}

112
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreDto.java

@ -0,0 +1,112 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author shkstart
* @create 2023-05-11-11:03
*/
@ApiModel("企业门店信息 传输对象")
public class EnpStoreDto implements Dto {
private String id;
private String sid;
@ApiModelProperty("门店编码")
private String code;
@ApiModelProperty("门店名称")
private String name;
@ApiModelProperty("所属企业Sid")
private String enpSid;
@ApiModelProperty("所属企业编码")
private String enpCode;
@ApiModelProperty("所属企业名称")
private String enpName;
@ApiModelProperty("所属品牌Sid")
private String brandSid;
@ApiModelProperty("所属品牌编码")
private String brandCode;
@ApiModelProperty("所属品牌名称")
private String brandName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEnpSid() {
return enpSid;
}
public void setEnpSid(String enpSid) {
this.enpSid = enpSid;
}
public String getEnpCode() {
return enpCode;
}
public void setEnpCode(String enpCode) {
this.enpCode = enpCode;
}
public String getEnpName() {
return enpName;
}
public void setEnpName(String enpName) {
this.enpName = enpName;
}
public String getBrandSid() {
return brandSid;
}
public void setBrandSid(String brandSid) {
this.brandSid = brandSid;
}
public String getBrandCode() {
return brandCode;
}
public void setBrandCode(String brandCode) {
this.brandCode = brandCode;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
}

16
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreMapper.java

@ -0,0 +1,16 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author shkstart
* @create 2023-05-11-11:11
*/
@Mapper
public interface EnpStoreMapper extends BaseMapper<EnpStore> {
EnpStore selectEnpStoreByEnpSid(@Param("sid") String sid);
EnpStore selectEnpStoreByBrandSid(@Param("sid") String sid);
}

11
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStoreMapper">
<select id="selectEnpStoreByEnpSid" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStore">
select * from enp_store where enpSid = #{sid}
</select>
<select id="selectEnpStoreByBrandSid" resultType="com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore.EnpStore">
select * from enp_store where brandSid = #{sid}
</select>
</mapper>

41
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreRest.java

@ -0,0 +1,41 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author shkstart
* @create 2023-05-11-11:07
*/
@Api("企业门店信息")
@RestController
@RequestMapping("dbCenter/enpStore")
public class EnpStoreRest {
@Autowired
private EnpStoreService enpStoreService;
@ApiOperation("新增企业门店信息")
@RequestMapping("/save")
public ResultBean save(@RequestBody EnpStoreDto dto){
return enpStoreService.save(dto);
}
@ApiOperation("删除企业门店信息")
@RequestMapping("/deleteEnpStore/{sid}")
public ResultBean deleteEnpStore(@PathVariable String sid){
return enpStoreService.deleteEnpStore(sid);
}
@ApiOperation("修改企业门店信息")
@RequestMapping("/alterEnpStore")
public ResultBean alterEnpStore(@RequestBody EnpStoreDto dto){
return enpStoreService.alterEnpStore(dto);
}
}

42
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/enpStore/EnpStoreService.java

@ -0,0 +1,42 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.enpStore;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
/**
* @author shkstart
* @create 2023-05-11-11:11
*/
@Service
public class EnpStoreService extends MybatisBaseService<EnpStoreMapper, EnpStore> {
public ResultBean save(EnpStoreDto dto){
ResultBean rb = ResultBean.fireFail();
EnpStore store = new EnpStore();
BeanUtil.copyProperties(dto,store);
int insert = baseMapper.insert(store);
if (insert == 0){
return rb.setMsg("新增失败");
}
return rb.success().setMsg("新增成功");
}
public ResultBean deleteEnpStore(String sid){
ResultBean rb = ResultBean.fireFail();
int i = deleteBySid(sid);
return rb.success().setMsg("删除成功");
}
public ResultBean alterEnpStore(EnpStoreDto dto){
ResultBean rb = ResultBean.fireFail();
EnpStore enpStore = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto,enpStore,"id","sid");
int i = baseMapper.updateById(enpStore);
if (i == 0){
return rb.setMsg("修改失败");
}
return rb.success().setMsg("修改成功");
}
}

32
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfo.java

@ -18,4 +18,36 @@ public class MaterialInfo extends BaseEntity {
private String unit;
@ApiModelProperty("含税单位")
private String taxPrice;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getTaxPrice() {
return taxPrice;
}
public void setTaxPrice(String taxPrice) {
this.taxPrice = taxPrice;
}
}

72
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoDto.java

@ -0,0 +1,72 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.materialInfo;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author shkstart
* @create 2023-05-11-11:26
*/
@ApiModel("物料信息 传输对象")
public class MaterialInfoDto implements Dto {
private String id;
private String sid;
@ApiModelProperty("物料编码")
private String code;
@ApiModelProperty("物料名称")
private String name;
@ApiModelProperty("规格单位")
private String unit;
@ApiModelProperty("含税单位")
private String taxPrice;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getTaxPrice() {
return taxPrice;
}
public void setTaxPrice(String taxPrice) {
this.taxPrice = taxPrice;
}
}

12
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoMapper.java

@ -0,0 +1,12 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.materialInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author shkstart
* @create 2023-05-11-11:35
*/
@Mapper
public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
}

41
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoRest.java

@ -0,0 +1,41 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.materialInfo;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author shkstart
* @create 2023-05-11-11:28
*/
@Api("物料信息")
@RestController
@RequestMapping("dbCenter/materialInfo")
public class MaterialInfoRest {
@Autowired
private MaterialInfoService materialInfoService;
@ApiOperation("新增物料信息")
@RequestMapping("/save")
public ResultBean save(@RequestBody MaterialInfoDto dto){
return materialInfoService.save(dto);
}
@ApiOperation("删除物料信息")
@RequestMapping("/deleteMaterialInfo/{sid}")
public ResultBean deleteMaterialInfo(@PathVariable String sid){
return materialInfoService.deleteMaterialInfo(sid);
}
@ApiOperation("修改物料信息")
@RequestMapping("/alterMaterialInfo")
public ResultBean alterMaterialInfo(@RequestBody MaterialInfoDto dto){
return materialInfoService.alterMaterialInfo(dto);
}
}

42
yxt-supervise-dbcenter/yxt-supervise-dbcenter-biz/src/main/java/com/yxt/supervise/dbcenter/zhj/crawl/biz/materialInfo/MaterialInfoService.java

@ -0,0 +1,42 @@
package com.yxt.supervise.dbcenter.zhj.crawl.biz.materialInfo;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
/**
* @author shkstart
* @create 2023-05-11-11:34
*/
@Service
public class MaterialInfoService extends MybatisBaseService<MaterialInfoMapper, MaterialInfo> {
public ResultBean save(MaterialInfoDto dto){
ResultBean rb = ResultBean.fireFail();
MaterialInfo info = new MaterialInfo();
BeanUtil.copyProperties(dto,info);
int insert = baseMapper.insert(info);
if (insert == 0){
return rb.setMsg("新增失败");
}
return rb.success().setMsg("新增成功");
}
public ResultBean deleteMaterialInfo(String sid){
ResultBean rb = ResultBean.fireFail();
int i = deleteBySid(sid);
return rb.success().setMsg("删除成功");
}
public ResultBean alterMaterialInfo(MaterialInfoDto dto){
ResultBean rb = ResultBean.fireFail();
MaterialInfo materialInfo = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto,materialInfo,"id","sid");
int i = baseMapper.updateById(materialInfo);
if (i == 0){
return rb.setMsg("修改失败");
}
return rb.success().setMsg("修改成功");
}
}

34
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/inquireStatistics/index.js

@ -1,7 +1,6 @@
import request from '@/utils/request'
// 接口文档名称:潜在客户信息
// Pc端客户基础信息条件分页查询数据的列表
// 查询
export function listPage(data) {
return request({
url: '/dbCenter/crawlAmount/listPage',
@ -13,16 +12,27 @@ export function listPage(data) {
})
}
// 客户查询
export function listPageByOrgPathSid(data) {
return request({
url: '/crm/v1/crmcustomertemp/listPageByOrgPathSid',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
// 查询采购数据
export function selectPurchaseList(data) {
return request({
url: '/dbCenter/crawlPurchase/selectPurchaseList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 查询销售数据
export function selectSalesDishes(data) {
return request({
url: '/dbCenter/crawlDishes/selectSalesDishes',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 添加 已改

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/layout/components/Sidebar/index.vue

@ -3,7 +3,7 @@
<logo v-if="showLogo" :collapse="isCollapse" />
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-menu
:default-active="activeMenu"
:default-active="$route.path"
:background-color="variables.menuBg"
:text-color="variables.menuText"
:unique-opened="false"

214
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/inquireStatistics/index.vue

@ -1,17 +1,15 @@
<template>
<el-tabs class="my-tabs" type="card">
<el-tab-pane label="品牌信息">
<div class="app-container">
<div class="search">
<el-form ref="queryParams" :inline="true" :model="queryParams" class="tab-header">
<span style="font-size: 16px;font-weight: 500">品牌</span>
<el-select
v-model="queryParams.params.name"
v-model="queryParams.params.brandName"
placeholder="请选择品牌"
style="width: 120px;margin-left: 10px;"
@change="blur"
>
<el-option
v-for="(item, i) in tableData"
v-for="(item, i) in ListName"
:key="i"
:label="item.name"
:value="item.name"
@ -22,11 +20,9 @@
v-model="queryParams.params.storeName"
placeholder="请选择门店"
style="width: 120px;margin-left: 10px;"
:disabled="chooseStore"
@change="store"
>
<el-option
v-for="(item, i) in tableData"
v-for="(item, i) in apparatusListName"
:key="i"
:label="item.storeName"
:value="item.storeName"
@ -65,8 +61,8 @@
>
</el-form>
</div>
<div class="container">
<el-table v-loading="tableLoading" :data="tableData" border style="width: 100%">
<div class="listconadd" style="padding: 20px;">
<el-table v-loading="tableLoading" :default-sort = "{prop: 'date', order: 'descending'}" :data="tableData" border style="width: 100%" >
<el-table-column label="序号" width="55px" type="index" align="center"></el-table-column>
<el-table-column prop="enpName" label="厂家" width="100px" align="center">
</el-table-column>
@ -78,13 +74,13 @@
</el-table-column>
<el-table-column prop="salesAmount" label="销售额" align="center" width="100px">
</el-table-column>
<el-table-column prop="oils" label="油类成本占比" align="center" width="150px">
<el-table-column prop="oils" label="油类成本" align="center" width="150px" :formatter="to2">
</el-table-column>
<el-table-column prop="rice" label="米类成本占比" align="center" width="150px">
<el-table-column prop="rice" label="米类成本" align="center" width="150px" :formatter="to2">
</el-table-column>
<el-table-column prop="face" label="面类成本占比" align="center" width="150px">
<el-table-column prop="face" label="面类成本" align="center" width="150px" :formatter="to2">
</el-table-column>
<el-table-column prop="totalCount" label="合计成本金额" align="center" width="150px">
<el-table-column prop="totalCount" label="合计成本金额" align="center" width="150px" :formatter="to2">
</el-table-column>
<el-table-column fixed="right" width="200px" label="明细信息" align="center">
<template slot-scope="scope">
@ -109,79 +105,101 @@
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
@pagination="loadList"
@pagination="pagination"
/>
</div>
<!-- 销售详细信息 -->
<el-dialog
:title="dialogTitle + '详细信息'"
:visible.sync="editDialog"
width="40%"
width="70%"
>
<table class="e-table" cellspacing="0">
<tr>
<td>学生姓名</td>
</tr>
<tr>
<td>学号ID</td>
</tr>
<tr>
<td>性别</td>
</tr>
<tr>
<td>所属班级</td>
</tr>
<tr>
<td>系别</td>
</tr>
<tr>
<td>专业</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center">
<el-button type="primary" @click="save()">保存</el-button>
</div>
<el-table ref="datalist" @mouseover.native="mouseEnter()" @mouseout.native="mouseLeave()" :data="tableXiaoshou" height="420" border style="width: 100%">
<el-table-column
property="dataDate"
label="数据日期"
></el-table-column>
<el-table-column
property="storeName"
label="门店名称"
></el-table-column>
<el-table-column
property="dishesName"
label="菜品名称"
></el-table-column>
<el-table-column
property="salesCount"
label="数量"
></el-table-column>
<el-table-column
property="unit"
label="规格单位"
></el-table-column>
<el-table-column
property="salesPrice"
label="单价(元)"
></el-table-column>
</el-table>
</el-dialog>
</div>
</el-tab-pane>
<!-- 采购详细信息 -->
<el-dialog
:title="dialogTitle + '详细信息'"
:visible.sync="entry"
width="40%"
width="70%"
>
<table class="e-table" cellspacing="0">
<tr>
<td>学号ID</td>
</tr>
<tr>
<td>四级()</td>
</tr>
<tr>
<td>六级()</td>
</tr>
<tr>
<td>计算机()</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center">
<el-button type="primary">保存</el-button>
</div>
<el-table ref="datalist" @mouseover.native="mouseEnter()" @mouseout.native="mouseLeave()" :data="tableCaigou" height="420" border style="width: 100%">
<el-table-column
property="dataDate"
label="数据日期"
></el-table-column>
<el-table-column
property="storeName"
label="门店名称"
></el-table-column>
<el-table-column
property="purchaseDate"
label="采购日期"
></el-table-column>
<el-table-column
property="materialName"
label="物料名称"
></el-table-column>
<!-- <el-table-column
property="unit"
label="规格单位"
></el-table-column> -->
<el-table-column
property="purchaseCount"
label="采购数量"
></el-table-column>
<el-table-column
property="purchaseAmount"
label="采购金额(元)"
></el-table-column>
<el-table-column
property="taxPrice"
label="含税单位"
></el-table-column>
</el-table>
</el-dialog>
</el-tabs>
</div>
</template>
<script>
import {listPage} from '@/api/Zhj/inquireStatistics/index.js'
import {listPage,selectPurchaseList,selectSalesDishes} from '@/api/Zhj/inquireStatistics/index.js'
export default {
data() {
return {
rollPx:1,
rolltime:50,
dialogTitle: "",
editDialog: false,
entry: false,
tableLoading: false,
chooseStore:true,
form: {},
rolltimmer:'',
formBackup: Object.assign({}, this.form),
page: {
total: 0, //
@ -192,7 +210,11 @@ export default {
size: 10,
},
},
apparatusListName:{},
ListName:{},
tableData: [],
tableCaigou:[],
tableXiaoshou:[],
student: {},
queryParams: {
current: 1,
@ -232,11 +254,25 @@ export default {
};
this.getPageList(this.queryParams);
},
to2(row,col,val){
return parseFloat(val).toFixed(2)
},
getPageList(data) {
const _this=this
listPage(data).then((res) => {
this.tableData=res.data.records
_this.tableData=res.data.records
this.apparatusListName = this.uniqueName(_this.tableData)
this.ListName = this.uniqueName1(_this.tableData)
})
},
uniqueName(arr) {
const res = new Map();
return arr.filter((arr) => !res.has(arr.storeName) && res.set(arr.storeName, 1));
},
uniqueName1(arr) {
const res = new Map();
return arr.filter((arr) => !res.has(arr.name) && res.set(arr.name, 1));
},
loadList() {
this.tableLoading = true
},
@ -244,29 +280,33 @@ export default {
this.form = {};
},
//
blur(){
if(this.queryParams.params.name){
this.chooseStore=false
}
},
store(){
console.log(777777777);
},
// blur(){
// if(this.queryParams.params.name){
// this.chooseStore=false
// }
// },
// store(){
// console.log(777777777);
// },
purchase(row) {
this.dialogTitle = "采购";
this.entry = true;
selectPurchaseList(row).then((res)=>{
this.tableCaigou=res.data
})
},
market(row) {
this.dialogTitle = "销售";
this.editDialog = true;
this.form = Object.assign({}, row);
selectSalesDishes(row).then((res)=>{
this.tableXiaoshou=res.data
})
},
//
dosearch() {
this.getPageList(this.queryParams);
},
resetQuery() {
this.getPageList(this.queryParams);
this.chooseStore=true
this.queryParams = {
current: 1,
@ -279,12 +319,40 @@ export default {
store:'',
},
};
this.getPageList(this.queryParams);
},
autoRoll(stop){
if(stop){
clearInterval(this.rolltimmer);
return;
}
const table=this.$refs.datalist;
const divData=table.bodyWrapper;
this.rolltimmer=setInterval(()=>{
divData.scrollTop+=this.rollPx;
if(divData.clientHeight+divData.scrollTop>=divData.scrollHeight){
divData.scrollTop=0;
}
},this.rolltime);
},
//
mouseEnter(time){
this.autoRoll(true);
},
//
mouseLeave(){
this.autoRoll();
},
},
};
</script>
<style scoped="scoped" lang="scss">
<style scoped="scoped" >
/deep/ .el-dialog__title{
color: #000;
font-size: 24px;
}
.my-tabs {
margin-top: 10px;
}

Loading…
Cancel
Save