便利店
This commit is contained in:
parent
ec60b58193
commit
5e06f4582f
@ -17,6 +17,15 @@ export function getLJGoods(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 根据商品条码查询商品详细
|
||||
export function queryLJGoods(data) {
|
||||
return request({
|
||||
url: '/business/convenience/goods/getGoods',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 生成13位二维码
|
||||
export function createGoodsNo() {
|
||||
return request({
|
||||
|
11
fuintAdmin/src/api/convenienceStore/saledetail.js
Normal file
11
fuintAdmin/src/api/convenienceStore/saledetail.js
Normal file
@ -0,0 +1,11 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询库存统计列表
|
||||
export function listSaleDetail(query) {
|
||||
return request({
|
||||
url: '/business/convenience/saleDetail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
20
fuintAdmin/src/api/convenienceStore/salestatistic.js
Normal file
20
fuintAdmin/src/api/convenienceStore/salestatistic.js
Normal file
@ -0,0 +1,20 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询销售统计信息
|
||||
export function listSale(query) {
|
||||
return request({
|
||||
url: '/business/convenience/saleStatistic/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出销售统计信息
|
||||
export function exportSale(data) {
|
||||
return request({
|
||||
url: '/business/convenience/saleStatistic/export',
|
||||
method: 'post',
|
||||
responseType:'blob',
|
||||
data: data
|
||||
})
|
||||
}
|
@ -19,11 +19,12 @@ export function getStock(id) {
|
||||
|
||||
|
||||
// 导出库存统计信息
|
||||
export function exportStocks() {
|
||||
export function exportStocks(data) {
|
||||
return request({
|
||||
url: '/business/convenience/stockStatistic/export',
|
||||
method: 'post',
|
||||
responseType:'blob'
|
||||
responseType:'blob',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,15 @@ export function getSupplier(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 新增供应商
|
||||
export function querySupplier(data) {
|
||||
return request({
|
||||
url: '/business/convenience/supplier/byName',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增供应商
|
||||
export function addSupplier(data) {
|
||||
return request({
|
||||
|
@ -17,6 +17,15 @@ export function getFixingLevel(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 根据固定等级名称查询固定等级信息
|
||||
export function queryFixingLevel(data) {
|
||||
return request({
|
||||
url: '/business/userManager/fixingLevel/getName',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增固定等级
|
||||
export function addFixingLevel(data) {
|
||||
return request({
|
||||
|
@ -7,15 +7,18 @@
|
||||
<el-tab-pane label="商品回收站" name="recovery"></el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-form-item label="商品分类" prop="cvsGoodId">
|
||||
<!-- <el-cascader :options="cvsGoodOptions" clearable></el-cascader>-->
|
||||
<el-select
|
||||
v-model="queryParams.cvsGoodId"
|
||||
placeholder="全部"
|
||||
clearable
|
||||
style="width: 300px"
|
||||
>
|
||||
<el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>
|
||||
</el-select>
|
||||
<el-cascader v-model="cvsGoodId"
|
||||
:options="cvsGoodOptions"
|
||||
:props="{ checkStrictly: true }"
|
||||
clearable></el-cascader>
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.cvsGoodId"-->
|
||||
<!-- placeholder="全部"-->
|
||||
<!-- clearable-->
|
||||
<!-- style="width: 300px"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>-->
|
||||
<!-- </el-select>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="供应商" prop="supplierId">
|
||||
<el-select
|
||||
@ -182,6 +185,7 @@
|
||||
<el-form-item label="商品条码" prop="goodsNo">
|
||||
<el-input v-model="form.goodsNo"
|
||||
@keydown.enter.native="getGoods(form)"
|
||||
v-focus
|
||||
placeholder="商品的条码信息">
|
||||
<el-button slot="append" @click="getGoods(form)">查询</el-button>
|
||||
</el-input>
|
||||
@ -269,9 +273,11 @@
|
||||
<el-form-item label="供应商" prop="supplierId">
|
||||
<el-select
|
||||
v-model="form.supplierId"
|
||||
filterable
|
||||
placeholder="全部"
|
||||
clearable
|
||||
style="width: 300px"
|
||||
@change="selectSupplier"
|
||||
>
|
||||
<el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"/>
|
||||
</el-select>
|
||||
@ -319,16 +325,24 @@ import {
|
||||
createGoodsNo,
|
||||
delLJGoods,
|
||||
getLJGoods,
|
||||
listLJGoods, scanCode,
|
||||
listLJGoods, queryLJGoods, scanCode,
|
||||
updateLJGoods
|
||||
} from "@/api/convenienceStore/ljgoods";
|
||||
import {getSysConfig} from "@/api/staff/user/sysconfig";
|
||||
import pinyin from "js-pinyin";
|
||||
import Vue from 'vue'
|
||||
|
||||
Vue.directive('focus', {
|
||||
inserted(el, binding, vnode) {
|
||||
el.querySelector('input').focus()
|
||||
},
|
||||
})
|
||||
export default {
|
||||
dicts: ['zhzt','yes_or_no'],
|
||||
data(){
|
||||
return {
|
||||
// 商品分类id
|
||||
cvsGoodId:"",
|
||||
cvsGoodOptions:[],
|
||||
isAdd:false,
|
||||
activeName: 'goods',
|
||||
@ -376,6 +390,7 @@ export default {
|
||||
rules: {
|
||||
goodsNo: [
|
||||
{ required: true, message: "商品条码不能为空", trigger: "blur" },
|
||||
{ required: true, validator: this.checkGoodsNo, trigger: "blur" },
|
||||
],
|
||||
name: [
|
||||
{ required: true, message: "商品名称不能为空", trigger: "blur" },
|
||||
@ -414,14 +429,28 @@ export default {
|
||||
this.getList();
|
||||
this.getQueryList();
|
||||
this.getType();
|
||||
// this.getTree();
|
||||
this.getTree();
|
||||
},
|
||||
computed:{
|
||||
},
|
||||
methods:{
|
||||
checkGoodsNo(rule, value, callback){
|
||||
queryLJGoods({goodsNo:this.form.goodsNo}).then( response => {
|
||||
if(response.data!=null){
|
||||
callback(new Error("商品已存在"))
|
||||
}else {
|
||||
callback();
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查询供应商信息
|
||||
selectSupplier(data){
|
||||
console.log(data)
|
||||
},
|
||||
// 获取分类菜单
|
||||
getTree(){
|
||||
cvsGoodsTree().then(response => {
|
||||
console.log(response)
|
||||
this.cvsGoodOptions = response.data
|
||||
})
|
||||
},
|
||||
// 价格填写
|
||||
@ -520,10 +549,16 @@ export default {
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
if (this.cvsGoodId.length==1){
|
||||
this.queryParams.cvsGoodId = this.cvsGoodId[0]
|
||||
}else {
|
||||
this.queryParams.cvsGoodId = this.cvsGoodId[1]
|
||||
}
|
||||
this.getList();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
this.cvsGoodId = ""
|
||||
this.resetForm("queryForm");
|
||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order);
|
||||
this.handleQuery();
|
||||
@ -591,6 +626,7 @@ export default {
|
||||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
// console.log(this.form.supplierId)
|
||||
if (this.form.id) {
|
||||
updateLJGoods(this.form).then(response => {
|
||||
this.$modal.msgSuccess("商品信息更新成功");
|
||||
|
@ -123,11 +123,12 @@
|
||||
<el-form :model="form" :inline="true" :rules="rules" ref="form" >
|
||||
<el-form-item label="上级分类" >
|
||||
<el-select v-model="form.pid" placeholder="请选择上级分类">
|
||||
<el-option
|
||||
v-for="item in goodsOptions"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
<el-option label="无上级" :value="0">无上级</el-option>
|
||||
<el-option
|
||||
v-for="item in goodsOptions"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类名称" prop="name" style="margin-left: -8px;">
|
||||
@ -392,7 +393,6 @@ export default {
|
||||
this.reset();
|
||||
const id = row.id || this.ids;
|
||||
selectParentById(id).then(response => {
|
||||
console.log(response)
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "编辑分类";
|
||||
|
261
fuintAdmin/src/views/convenienceStore/saleStatistic.vue
Normal file
261
fuintAdmin/src/views/convenienceStore/saleStatistic.vue
Normal file
@ -0,0 +1,261 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 搜索框-->
|
||||
<el-card >
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="商品名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入商品名称"
|
||||
clearable
|
||||
style="width: 240px;"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="拼音码" prop="pinyinCode">
|
||||
<el-input
|
||||
v-model="queryParams.pinyinCode"
|
||||
placeholder="请输入拼音码"
|
||||
clearable
|
||||
style="width: 240px;"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="条形码" prop="goodsNo">
|
||||
<el-input
|
||||
v-model="queryParams.goodsNo"
|
||||
placeholder="请输入商品条形码"
|
||||
clearable
|
||||
style="width: 240px;"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="销售时间">
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
style="width: 240px"
|
||||
size="medium"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
|
||||
<!-- 列表-->
|
||||
<el-card style="margin-top: 20px" >
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div style="font-size: 18px">列表</div>
|
||||
<el-button type="primary" @click="dialogVisible = true">导出</el-button>
|
||||
</div>
|
||||
|
||||
<el-table ref="tables" v-loading="loading" :data="list"
|
||||
@selection-change="handleSelectionChange" :default-sort="defaultSort"
|
||||
@sort-change="handleSortChange">
|
||||
<el-table-column label="ID" align="center" prop="id" width="40"/>
|
||||
<el-table-column label="商品名称" align="center" prop="name" width="300" />
|
||||
<el-table-column label="条码" align="center" prop="goodsNo" width="160" />
|
||||
<el-table-column label="拼音码" align="center" prop="pinyinCode" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="销售数量" align="center" prop="saleNumber" />
|
||||
<el-table-column label="销售总额" align="center" prop="saleTotal" />
|
||||
<el-table-column label="成本总额" align="center" prop="costTotal" />
|
||||
<el-table-column label="盈利总额" align="center" prop="profitTotal" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-document"
|
||||
@click="detail(scope.row)"
|
||||
>详细信息</el-button>
|
||||
<!-- -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.page"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
<el-drawer
|
||||
title="销售详情信息"
|
||||
:visible.sync="table"
|
||||
direction="rtl"
|
||||
size="60%">
|
||||
<el-card style="width: 98%;margin: 0px auto">
|
||||
<el-table ref="tables"
|
||||
v-loading="loading"
|
||||
:data="detailList"
|
||||
:default-sort="defaultSort">
|
||||
<el-table-column
|
||||
lable="#"
|
||||
type="index"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column label="销售商品名称" align="center" prop="name" width="140" />
|
||||
<el-table-column label="销售数量" align="center" prop="saleNumber" />
|
||||
<el-table-column label="销售总额" align="center" prop="saleTotal" />
|
||||
<el-table-column label="销售单价" align="center" prop="retailPrice" />
|
||||
<el-table-column label="销售会员单价" align="center" prop="memberPrice" width="100" />
|
||||
<el-table-column label="成本单价" align="center" prop="buyingPrice" />
|
||||
<el-table-column label="成本总额" align="center" prop="costTotal" />
|
||||
<el-table-column label="盈利总额" align="center" prop="profitTotal" />
|
||||
<el-table-column label="销售时间" align="center" prop="createTime" width="150">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total1>0"
|
||||
:total="total1"
|
||||
:page.sync="queryParam.page"
|
||||
:limit.sync="queryParam.pageSize"
|
||||
@pagination="getDetailList"
|
||||
/>
|
||||
</el-card>
|
||||
</el-drawer>
|
||||
|
||||
<el-dialog
|
||||
title="导出状态"
|
||||
:visible.sync="dialogVisible"
|
||||
width="20%"
|
||||
style="margin-top: 200px"
|
||||
:before-close="handleClose">
|
||||
<span>导出文档已生成,请点击下载按钮进行下载</span>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="exportSale">
|
||||
确 定
|
||||
<!-- <a href="/dev-api/business/convenience/stockStatistic/export">确 定</a>-->
|
||||
</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {exportSale, listSale} from "@/api/convenienceStore/salestatistic";
|
||||
import {addSaleDetail, listSaleDetail} from "@/api/convenienceStore/saledetail";
|
||||
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
table: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
id: '',
|
||||
name: '',
|
||||
pinyinCode: '',
|
||||
goodsNo: '',
|
||||
},
|
||||
// 查询参数
|
||||
queryParam: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
id: '',
|
||||
saleId: '',
|
||||
},
|
||||
// 日期范围
|
||||
dateRange: [],
|
||||
dialogVisible: false,
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 默认排序
|
||||
defaultSort: {prop: 'createTime', order: 'descending'},
|
||||
// 总条数
|
||||
total: 0,
|
||||
total1: 0,
|
||||
// 表格数据
|
||||
list: [],
|
||||
detailList: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 导出信息
|
||||
exportSale(){
|
||||
exportSale(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||
const blob = new Blob([response], { type: 'application/json' })
|
||||
this.$download.saveAs(blob,'商品销售统计.xlsx')
|
||||
})
|
||||
this.dialogVisible = false
|
||||
},
|
||||
// 弹出框
|
||||
detail(data){
|
||||
this.table = true;
|
||||
this.queryParam.saleId = data.id;
|
||||
listSaleDetail(this.queryParam).then(response => {
|
||||
this.detailList = response.data.records;
|
||||
this.total1 = response.data.total;
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
// 获取销售统计列表
|
||||
getList(){
|
||||
this.loading = true;
|
||||
listSale(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||
this.list = response.data.records;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 获取销售商品详情信息
|
||||
getDetailList(){
|
||||
|
||||
},
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
this.dateRange = [];
|
||||
this.resetForm("queryForm");
|
||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order);
|
||||
this.handleQuery();
|
||||
},
|
||||
// 是否关闭弹框
|
||||
handleClose(done) {
|
||||
done();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
// 排序触发事件
|
||||
handleSortChange(column, prop, order) {
|
||||
this.queryParams.orderByColumn = column.prop;
|
||||
this.queryParams.isAsc = column.order;
|
||||
this.getList();
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app-container{
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background: #f6f8f9;
|
||||
}
|
||||
</style>
|
@ -4,14 +4,18 @@
|
||||
<el-card >
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="商品分类" prop="cvsGoodId">
|
||||
<el-select
|
||||
v-model="queryParams.cvsGoodId"
|
||||
placeholder="全部"
|
||||
clearable
|
||||
style="width: 300px"
|
||||
>
|
||||
<el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>
|
||||
</el-select>
|
||||
<el-cascader v-model="cvsGoodId"
|
||||
:options="cvsGoodOptions"
|
||||
:props="{ checkStrictly: true }"
|
||||
clearable></el-cascader>
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.cvsGoodId"-->
|
||||
<!-- placeholder="全部"-->
|
||||
<!-- clearable-->
|
||||
<!-- style="width: 300px"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>-->
|
||||
<!-- </el-select>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="供应商" prop="supplierId">
|
||||
<el-select
|
||||
@ -225,7 +229,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {selectTree} from "@/api/convenienceStore/goods";
|
||||
import {cvsGoodsTree, selectTree} from "@/api/convenienceStore/goods";
|
||||
import {listSupplier} from "@/api/convenienceStore/supplier";
|
||||
import {exportStocks, getStock, listStock} from "@/api/convenienceStore/stockstatistic";
|
||||
import {listTrack} from "@/api/convenienceStore/stocktrack";
|
||||
@ -236,6 +240,9 @@ export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
// 商品分类id
|
||||
cvsGoodId:"",
|
||||
cvsGoodOptions:[],
|
||||
dialogVisible: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
@ -280,10 +287,18 @@ export default {
|
||||
created() {
|
||||
this.getList();
|
||||
this.getQueryList();
|
||||
this.getTree();
|
||||
},
|
||||
methods: {
|
||||
// 获取分类菜单
|
||||
getTree(){
|
||||
cvsGoodsTree().then(response => {
|
||||
this.cvsGoodOptions = response.data
|
||||
})
|
||||
},
|
||||
// 导出信息
|
||||
exportStock(){
|
||||
exportStocks().then(response => {
|
||||
exportStocks(this.queryParams).then(response => {
|
||||
const blob = new Blob([response], { type: 'application/json' })
|
||||
this.$download.saveAs(blob,'商品-库存统计.xlsx')
|
||||
})
|
||||
@ -318,6 +333,11 @@ export default {
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
if (this.cvsGoodId.length==1){
|
||||
this.queryParams.cvsGoodId = this.cvsGoodId[0]
|
||||
}else {
|
||||
this.queryParams.cvsGoodId = this.cvsGoodId[1]
|
||||
}
|
||||
this.getList();
|
||||
},
|
||||
// 查询搜索列表信息
|
||||
@ -331,6 +351,7 @@ export default {
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
this.cvsGoodId = ""
|
||||
this.resetForm("queryForm");
|
||||
this.$refs.tables.sort(this.defaultSort.prop, this.defaultSort.order);
|
||||
this.handleQuery();
|
||||
|
@ -43,7 +43,7 @@
|
||||
icon="el-icon-plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['member:add']"
|
||||
>新增会员</el-button>
|
||||
>新增供应商</el-button>
|
||||
<el-table ref="tables" v-loading="loading" :data="list"
|
||||
@selection-change="handleSelectionChange" :default-sort="defaultSort"
|
||||
@sort-change="handleSortChange">
|
||||
@ -146,7 +146,14 @@
|
||||
|
||||
<script>
|
||||
|
||||
import {addSupplier, delSupplier, getSupplier, listSupplier, updateSupplier} from "@/api/convenienceStore/supplier";
|
||||
import {
|
||||
addSupplier,
|
||||
delSupplier,
|
||||
getSupplier,
|
||||
listSupplier,
|
||||
querySupplier,
|
||||
updateSupplier
|
||||
} from "@/api/convenienceStore/supplier";
|
||||
|
||||
export default {
|
||||
// dicts: ['zhzt'],
|
||||
@ -181,6 +188,7 @@ export default {
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: "供应商名称不能为空", trigger: "blur" },
|
||||
{ required: true, validator: this.checkName, trigger: "blur" },
|
||||
],
|
||||
}
|
||||
}
|
||||
@ -189,6 +197,15 @@ export default {
|
||||
this.getList();
|
||||
},
|
||||
methods:{
|
||||
checkName(rule, value, callback){
|
||||
querySupplier({name:this.form.name}).then( response => {
|
||||
if(response.data!=null){
|
||||
callback(new Error("供应商名称已存在"))
|
||||
}else {
|
||||
callback();
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查询列表
|
||||
getList() {
|
||||
this.loading = true;
|
||||
|
@ -814,7 +814,7 @@ import {
|
||||
addFixingLevel,
|
||||
delFixingLevel,
|
||||
getFixingLevel,
|
||||
listFixingLevel,
|
||||
listFixingLevel, queryFixingLevel,
|
||||
updateFixingLevel
|
||||
} from "@/api/staff/user/fixinglevel";
|
||||
import {
|
||||
@ -928,6 +928,7 @@ export default {
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: "请填写认证名称", trigger: "blur" },
|
||||
{ required: true, validator: this.checkName, trigger: "blur" },
|
||||
],
|
||||
discountType: [
|
||||
{ required: true, message: "请选择优惠类型", trigger: "blur" },
|
||||
@ -993,6 +994,16 @@ export default {
|
||||
this.getUserList();
|
||||
},
|
||||
methods: {
|
||||
// 检验固定等级名称是否存在
|
||||
checkName(rule, value, callback){
|
||||
queryFixingLevel({name:this.form.name}).then( response => {
|
||||
if(response.data!=null){
|
||||
callback(new Error("固定等级名称不可重复"))
|
||||
}else {
|
||||
callback();
|
||||
}
|
||||
})
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
// console.log(tab, event);
|
||||
},
|
||||
|
@ -44,11 +44,23 @@ public class LJGoodsController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject staffInfo(@PathVariable Integer id){
|
||||
public ResponseObject goodsInfo(@PathVariable Integer id){
|
||||
LJGoods goods = goodsService.selectLJGoodsById(id);
|
||||
return getSuccessResult(goods);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询商品信息
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/getGoods")
|
||||
public ResponseObject getGoods(@Validated @RequestBody Map<String ,String > map){
|
||||
String goodsNo = map.get("goodsNo");
|
||||
LJGoods goods = goodsService.selectLJGoodsByGoodsNo(goodsNo);
|
||||
return getSuccessResult(goods);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成13位数字条码信息
|
||||
* @return
|
||||
|
@ -0,0 +1,38 @@
|
||||
package com.fuint.business.convenienceSore.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.convenienceSore.entity.SaleDetail;
|
||||
import com.fuint.business.convenienceSore.service.SaleDetailService;
|
||||
import com.fuint.business.convenienceSore.vo.SaleDetailVo;
|
||||
import com.fuint.business.convenienceSore.vo.SaleStatisticVo;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/business/convenience/saleDetail")
|
||||
public class SaleDetailController extends BaseController {
|
||||
@Autowired
|
||||
private SaleDetailService saleDetailService;
|
||||
|
||||
/**
|
||||
* 根据条件查询库存商品信息
|
||||
* @param saleDetailVo
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public ResponseObject list(SaleDetailVo saleDetailVo,
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
IPage<SaleDetailVo> list = saleDetailService.selectSaleDetailList(page, saleDetailVo);
|
||||
return getSuccessResult(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
package com.fuint.business.convenienceSore.controller;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.convenienceSore.service.SaleStatisticService;
|
||||
import com.fuint.business.convenienceSore.vo.SaleStatisticVo;
|
||||
import com.fuint.business.convenienceSore.vo.StockStatisticVo;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售统计信息 controller层
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/convenience/saleStatistic")
|
||||
public class SaleStatisticController extends BaseController {
|
||||
@Autowired
|
||||
private SaleStatisticService saleService;
|
||||
|
||||
/**
|
||||
* 根据条件查询销售统计信息
|
||||
* @param saleVo
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public ResponseObject list(SaleStatisticVo saleVo,
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
IPage<SaleStatisticVo> list = saleService.selectSaleList(page, saleVo);
|
||||
return getSuccessResult(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出销售统计信息
|
||||
* @param response
|
||||
* @param request
|
||||
*/
|
||||
@PostMapping("/export")
|
||||
public void export(@Validated @RequestBody SaleStatisticVo saleVo, HttpServletResponse response, HttpServletRequest request) {
|
||||
|
||||
try {
|
||||
String filenames = "商品销售统计";
|
||||
String userAgent = request.getHeader("User-Agent");
|
||||
if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
|
||||
filenames = URLEncoder.encode(filenames, "UTF-8");
|
||||
} else {
|
||||
filenames = new String(filenames.getBytes("UTF-8"), "ISO-8859-1");
|
||||
}
|
||||
response.setContentType("application/json.ms-exce");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
response.addHeader("Content-Disposition", "filename=" + filenames + ".xlsx");
|
||||
|
||||
List<SaleStatisticVo> list = saleService.selectSales(saleVo);
|
||||
|
||||
EasyExcel.write(response.getOutputStream(), SaleStatisticVo.class).sheet("sheet").doWrite(list);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
@ -9,6 +9,7 @@ import com.fuint.business.userManager.listener.EasyExcelListener;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -52,7 +53,7 @@ public class StockStatisticController extends BaseController {
|
||||
}
|
||||
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, HttpServletRequest request) {
|
||||
public void export(@Validated @RequestBody StockStatisticVo stockStatisticVo, HttpServletResponse response, HttpServletRequest request) {
|
||||
|
||||
try {
|
||||
String filenames = "商品-库存统计";
|
||||
@ -66,7 +67,7 @@ public class StockStatisticController extends BaseController {
|
||||
response.setCharacterEncoding("utf-8");
|
||||
response.addHeader("Content-Disposition", "filename=" + filenames + ".xlsx");
|
||||
|
||||
List<StockStatisticVo> list = stockService.selectStocks();
|
||||
List<StockStatisticVo> list = stockService.selectStocks(stockStatisticVo);
|
||||
|
||||
EasyExcel.write(response.getOutputStream(), StockStatisticVo.class).sheet("sheet").doWrite(list);
|
||||
} catch (Exception e) {
|
||||
|
@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 供应商 controller层
|
||||
*/
|
||||
@ -41,11 +43,23 @@ public class SupplierController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject staffInfo(@PathVariable Integer id){
|
||||
public ResponseObject supplierInfo(@PathVariable Integer id){
|
||||
Supplier supplier = supplierService.selectSupplierById(id);
|
||||
return getSuccessResult(supplier);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询供应商信息
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/byName")
|
||||
public ResponseObject supplierByName(@Validated @RequestBody Map<String ,String > map){
|
||||
String name = map.get("name");
|
||||
Supplier supplier = supplierService.selectSupplierByName(name);
|
||||
return getSuccessResult(supplier);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商信息
|
||||
* @return
|
||||
|
@ -50,10 +50,4 @@ public class CvsGoods extends BaseEntity implements Serializable {
|
||||
@ApiModelProperty("商品状态")
|
||||
private String status;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer pageNum;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer pageSize;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,64 @@
|
||||
package com.fuint.business.convenienceSore.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 销售详情表(SaleDetail)实体类
|
||||
*/
|
||||
@Data
|
||||
@TableName("sale_detail")
|
||||
@ApiModel(value = "SaleDetail对象", description = "销售详情表")
|
||||
public class SaleDetail extends BaseEntity implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ApiModelProperty("自增ID")
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
/**
|
||||
* 商品id
|
||||
*/
|
||||
@ApiModelProperty("商品id")
|
||||
private Integer goodsId;
|
||||
/**
|
||||
* 销售统计id
|
||||
*/
|
||||
@ApiModelProperty("销售统计id")
|
||||
private Integer saleId;
|
||||
/**
|
||||
* 商铺id
|
||||
*/
|
||||
@ApiModelProperty("商铺id")
|
||||
private Integer storeId;
|
||||
/**
|
||||
* 销售数量
|
||||
*/
|
||||
@ApiModelProperty("销售数量")
|
||||
private Integer saleNumber;
|
||||
/**
|
||||
* 销售总额
|
||||
*/
|
||||
@ApiModelProperty("销售总额")
|
||||
private Double saleTotal;
|
||||
/**
|
||||
* 成本总额
|
||||
*/
|
||||
@ApiModelProperty("成本总额")
|
||||
private Double costTotal;
|
||||
/**
|
||||
* 盈利总额
|
||||
*/
|
||||
@ApiModelProperty("盈利总额")
|
||||
private Double profitTotal;
|
||||
}
|
||||
|
@ -0,0 +1,60 @@
|
||||
package com.fuint.business.convenienceSore.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 销售统计表(SaleStatistic)实体类
|
||||
*/
|
||||
@Data
|
||||
@TableName("sale_statistic")
|
||||
@ApiModel(value = "SaleStatistic对象", description = "销售统计表")
|
||||
public class SaleStatistic extends BaseEntity implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ApiModelProperty("自增ID")
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
/**
|
||||
* 商品id
|
||||
*/
|
||||
@ApiModelProperty("商品id")
|
||||
private Integer goodsId;
|
||||
/**
|
||||
* 商铺id
|
||||
*/
|
||||
@ApiModelProperty("商铺id")
|
||||
private Integer storeId;
|
||||
/**
|
||||
* 销售数量
|
||||
*/
|
||||
@ApiModelProperty("销售数量")
|
||||
private Integer saleNumber;
|
||||
/**
|
||||
* 销售总额
|
||||
*/
|
||||
@ApiModelProperty("销售总额")
|
||||
private Double saleTotal;
|
||||
/**
|
||||
* 成本总额
|
||||
*/
|
||||
@ApiModelProperty("成本总额")
|
||||
private Double costTotal;
|
||||
/**
|
||||
* 盈利总额
|
||||
*/
|
||||
@ApiModelProperty("盈利总额")
|
||||
private Double profitTotal;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.fuint.business.convenienceSore.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.convenienceSore.entity.SaleDetail;
|
||||
import com.fuint.business.convenienceSore.vo.SaleDetailVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface SaleDetailMapper extends BaseMapper<SaleDetail> {
|
||||
/**
|
||||
* 根据条件分页查询销售详情信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<SaleDetailVo> selectSaleDetailList(Page page, @Param("saleDetail") SaleDetailVo saleDetail);
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.fuint.business.convenienceSore.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.convenienceSore.entity.SaleStatistic;
|
||||
import com.fuint.business.convenienceSore.vo.SaleStatisticVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface SaleStatisticMapper extends BaseMapper<SaleStatistic> {
|
||||
/**
|
||||
* 根据条件分页查询库存统计信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<SaleStatisticVo> selectSaleList(Page page, @Param("sale") SaleStatisticVo saleStatisticVo);
|
||||
|
||||
/**
|
||||
* 根据条件分页查询库存统计信息
|
||||
* @return
|
||||
*/
|
||||
public List<SaleStatisticVo> selectSales(@Param("sale") SaleStatisticVo saleStatisticVo);
|
||||
}
|
@ -20,10 +20,10 @@ public interface StockStatisticMapper extends BaseMapper<StockStatistic> {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param storeId
|
||||
* @param stock
|
||||
* @return
|
||||
*/
|
||||
public List<StockStatisticVo> selectStocks(@Param("storeId") Integer storeId);
|
||||
public List<StockStatisticVo> selectStocks(@Param("stock") StockStatisticVo stock);
|
||||
|
||||
/**
|
||||
* 根据id查询库存统计信息
|
||||
|
@ -0,0 +1,16 @@
|
||||
<?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.fuint.business.convenienceSore.mapper.SaleDetailMapper">
|
||||
<sql id="selectSaleDetail">
|
||||
select sd.*,mg.name,mg.buying_price,mg.retail_price,mg.member_price from sale_detail sd
|
||||
inner join mt_goods mg on sd.goods_id = mg.id
|
||||
</sql>
|
||||
|
||||
<select id="selectSaleDetailList" resultType="com.fuint.business.convenienceSore.vo.SaleDetailVo">
|
||||
<include refid="selectSaleDetail"></include>
|
||||
<where>
|
||||
sd.store_id = #{saleDetail.storeId}
|
||||
and sd.sale_id = #{saleDetail.saleId}
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -0,0 +1,52 @@
|
||||
<?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.fuint.business.convenienceSore.mapper.SaleStatisticMapper">
|
||||
<sql id="selectSale">
|
||||
select sa.*,mg.name,mg.goods_no,mg.pinyin_code,mg.unit from sale_statistic sa
|
||||
inner join mt_goods mg on sa.goods_id = mg.id
|
||||
</sql>
|
||||
|
||||
<select id="selectSaleList" resultType="com.fuint.business.convenienceSore.vo.SaleStatisticVo">
|
||||
<include refid="selectSale"></include>
|
||||
<where>
|
||||
sa.store_id = #{sale.storeId}
|
||||
<if test="sale.name != null and sale.name != ''">
|
||||
and mg.name like concat('%', #{sale.name}, '%')
|
||||
</if>
|
||||
<if test="sale.pinyinCode != null and sale.pinyinCode != ''">
|
||||
and mg.pinyin_code like concat('%', #{sale.pinyinCode}, '%')
|
||||
</if>
|
||||
<if test="sale.goodsNo != null and sale.goodsNo != ''">
|
||||
and mg.goods_no like concat('%', #{sale.goodsNo}, '%')
|
||||
</if>
|
||||
<if test="sale.params.beginTime != null and sale.params.beginTime != ''"><!-- 开始时间检索 -->
|
||||
and date_format(sa.update_time,'%y%m%d') >= date_format(#{sale.params.beginTime},'%y%m%d')
|
||||
</if>
|
||||
<if test="sale.params.endTime != null and sale.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(sa.update_time,'%y%m%d') <= date_format(#{sale.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectSales" resultType="com.fuint.business.convenienceSore.vo.SaleStatisticVo"
|
||||
parameterType="com.fuint.business.convenienceSore.vo.SaleStatisticVo">
|
||||
<include refid="selectSale"></include>
|
||||
<where>
|
||||
sa.store_id = #{sale.storeId}
|
||||
<if test="sale.name != null and sale.name != ''">
|
||||
and mg.name like concat('%', #{sale.name}, '%')
|
||||
</if>
|
||||
<if test="sale.pinyinCode != null and sale.pinyinCode != ''">
|
||||
and mg.pinyin_code like concat('%', #{sale.pinyinCode}, '%')
|
||||
</if>
|
||||
<if test="sale.goodsNo != null and sale.goodsNo != ''">
|
||||
and mg.goods_no like concat('%', #{sale.goodsNo}, '%')
|
||||
</if>
|
||||
<if test="sale.params.beginTime != null and sale.params.beginTime != ''"><!-- 开始时间检索 -->
|
||||
and date_format(sa.update_time,'%y%m%d') >= date_format(#{sale.params.beginTime},'%y%m%d')
|
||||
</if>
|
||||
<if test="sale.params.endTime != null and sale.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(sa.update_time,'%y%m%d') <= date_format(#{sale.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -46,7 +46,28 @@
|
||||
parameterType="java.lang.Integer">
|
||||
<include refid="selectStock"></include>
|
||||
<where>
|
||||
st.store_id = #{storeId}
|
||||
st.store_id = #{stock.storeId}
|
||||
<if test="stock.cvsGoodId != null and stock.cvsGoodId != ''">
|
||||
and st.cvs_good_id = #{stock.cvsGoodId}
|
||||
</if>
|
||||
<if test="stock.supplierId != null and stock.supplierId != ''">
|
||||
and st.supplier_id = #{stock.supplierId}
|
||||
</if>
|
||||
<if test="stock.name != null and stock.name != ''">
|
||||
and mg.name like concat('%', #{stock.name}, '%')
|
||||
</if>
|
||||
<if test="stock.pinyinCode != null and stock.pinyinCode != ''">
|
||||
and mg.pinyin_code like concat('%', #{stock.pinyinCode}, '%')
|
||||
</if>
|
||||
<if test="stock.goodsNo != null and stock.goodsNo != ''">
|
||||
and mg.goods_no like concat('%', #{stock.goodsNo}, '%')
|
||||
</if>
|
||||
<if test="stock.shelfNumber != null and stock.shelfNumber != ''">
|
||||
and mg.shelf_number like concat('%', #{stock.shelfNumber}, '%')
|
||||
</if>
|
||||
<if test="stock.status != null and stock.status != ''">
|
||||
and mg.status = #{stock.status}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -24,6 +24,13 @@ public interface LJGoodsService extends IService<LJGoods> {
|
||||
*/
|
||||
public LJGoods selectLJGoodsById(int id);
|
||||
|
||||
/**
|
||||
* 根据条码查询商品信息
|
||||
* @param goodsNo
|
||||
* @return
|
||||
*/
|
||||
public LJGoods selectLJGoodsByGoodsNo(String goodsNo);
|
||||
|
||||
/**
|
||||
* 生成13位条码数字信息
|
||||
* @return
|
||||
|
@ -0,0 +1,26 @@
|
||||
package com.fuint.business.convenienceSore.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.convenienceSore.entity.SaleDetail;
|
||||
import com.fuint.business.convenienceSore.vo.SaleDetailVo;
|
||||
|
||||
/**
|
||||
* 销售详情信息 业务层
|
||||
*/
|
||||
public interface SaleDetailService extends IService<SaleDetail> {
|
||||
/**
|
||||
* 根据条件分页查询销售详情信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<SaleDetailVo> selectSaleDetailList(Page page, SaleDetailVo saleDetail);
|
||||
|
||||
/**
|
||||
* 添加销售详情信息
|
||||
* @param saleDetail
|
||||
* @return
|
||||
*/
|
||||
public int insertSaleDetail(SaleDetail saleDetail);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.fuint.business.convenienceSore.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.convenienceSore.entity.SaleStatistic;
|
||||
import com.fuint.business.convenienceSore.vo.SaleStatisticVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售统计信息 业务层
|
||||
*/
|
||||
public interface SaleStatisticService extends IService<SaleStatistic> {
|
||||
/**
|
||||
* 根据条件分页查询销售统计信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<SaleStatisticVo> selectSaleList(Page page, SaleStatisticVo saleStatisticVo);
|
||||
|
||||
/**
|
||||
* 根据条件查询销售统计信息
|
||||
* @return
|
||||
*/
|
||||
public List<SaleStatisticVo> selectSales(SaleStatisticVo saleStatisticVo);
|
||||
|
||||
/**
|
||||
* 根据id查询销售统计信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public SaleStatistic selectSaleById(int id);
|
||||
|
||||
/**
|
||||
* 根据商品id查询销售统计信息
|
||||
* @param goodsId
|
||||
* @return
|
||||
*/
|
||||
public SaleStatistic selectSaleByGoodsId(int goodsId);
|
||||
|
||||
/**
|
||||
* 增加销售统计信息
|
||||
* @param saleStatistic
|
||||
* @return
|
||||
*/
|
||||
public int insertSale(SaleStatistic saleStatistic);
|
||||
|
||||
/**
|
||||
* 修改销售统计信息
|
||||
* @param saleStatistic
|
||||
* @return
|
||||
*/
|
||||
public int updateSales(SaleStatistic saleStatistic);
|
||||
}
|
@ -24,7 +24,7 @@ public interface StockStatisticService extends IService<StockStatistic> {
|
||||
* 查询所有库存统计信息
|
||||
* @return
|
||||
*/
|
||||
public List<StockStatisticVo> selectStocks();
|
||||
public List<StockStatisticVo> selectStocks(StockStatisticVo stockStatisticVo);
|
||||
|
||||
/**
|
||||
* 根据id查询库存统计信息
|
||||
|
@ -23,6 +23,13 @@ public interface SupplierService extends IService<Supplier> {
|
||||
*/
|
||||
public Supplier selectSupplierById(int id);
|
||||
|
||||
/**
|
||||
* 根据供应商名称查询供应商信息
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public Supplier selectSupplierByName(String name);
|
||||
|
||||
/**
|
||||
* 根据id删除供应商信息
|
||||
* @param id
|
||||
|
@ -132,26 +132,21 @@ public class CvsGoodsServiceImpl extends ServiceImpl<CvsGoodsMapper,CvsGoods> im
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
List<CvsGoods> cvsGoods = baseMapper.selectList(queryWrapper);
|
||||
List<CvsGoodsTree> list = new ArrayList<>();
|
||||
List<CvsGoodsVo> goodsVos = new ArrayList<>();
|
||||
for (CvsGoods cvsGood : cvsGoods) {
|
||||
if (cvsGood.getPid()==0){
|
||||
CvsGoodsTree cvsGoodsTree = new CvsGoodsTree();
|
||||
CvsGoodsVo cvsGoodsVo = new CvsGoodsVo();
|
||||
|
||||
cvsGoodsVo.setPid(cvsGood.getPid());
|
||||
|
||||
cvsGoodsTree.setValue(cvsGood.getId());
|
||||
cvsGoodsTree.setLabel(cvsGood.getName());
|
||||
cvsGoodsTree.setChildren(new ArrayList<>());
|
||||
|
||||
list.add(cvsGoodsTree);
|
||||
goodsVos.add(cvsGoodsVo);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < cvsGoods.size(); i++){
|
||||
for (int i = 0; i < list.size(); i++){
|
||||
List<CvsGoodsTree> children = new ArrayList<>();
|
||||
for (CvsGoods cvsGood : cvsGoods) {
|
||||
if (goodsVos.get(i).getPid()==cvsGood.getPid()){
|
||||
if (list.get(i).getValue()==cvsGood.getPid()){
|
||||
CvsGoodsTree cvsGoodsTree = new CvsGoodsTree();
|
||||
cvsGoodsTree.setValue(cvsGood.getId());
|
||||
cvsGoodsTree.setLabel(cvsGood.getName());
|
||||
|
@ -2,6 +2,7 @@ package com.fuint.business.convenienceSore.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -53,6 +54,22 @@ public class LJGoodsServiceImpl extends ServiceImpl<LJGoodsMapper, LJGoods> impl
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据条码查询商品信息
|
||||
* @param goodsNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LJGoods selectLJGoodsByGoodsNo(String goodsNo) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("goods_no",goodsNo);
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
LJGoods ljGoods = baseMapper.selectOne(queryWrapper);
|
||||
return ljGoods;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成13位条码数字信息
|
||||
* @return
|
||||
|
@ -0,0 +1,97 @@
|
||||
package com.fuint.business.convenienceSore.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.convenienceSore.entity.LJGoods;
|
||||
import com.fuint.business.convenienceSore.entity.SaleDetail;
|
||||
import com.fuint.business.convenienceSore.entity.SaleStatistic;
|
||||
import com.fuint.business.convenienceSore.mapper.SaleDetailMapper;
|
||||
import com.fuint.business.convenienceSore.service.LJGoodsService;
|
||||
import com.fuint.business.convenienceSore.service.SaleDetailService;
|
||||
import com.fuint.business.convenienceSore.service.SaleStatisticService;
|
||||
import com.fuint.business.convenienceSore.vo.SaleDetailVo;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 销售详情信息 业务层
|
||||
*/
|
||||
@Service
|
||||
public class SaleDetailServiceImpl extends ServiceImpl<SaleDetailMapper, SaleDetail> implements SaleDetailService {
|
||||
@Autowired
|
||||
private SaleStatisticService saleStatisticService;
|
||||
@Autowired
|
||||
private LJGoodsService goodsService;
|
||||
|
||||
/**
|
||||
* 根据条件分页查询销售详情信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<SaleDetailVo> selectSaleDetailList(Page page, SaleDetailVo saleDetail) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
saleDetail.setStoreId(storeId);
|
||||
IPage<SaleDetailVo> saleDetailVoIPage = baseMapper.selectSaleDetailList(page, saleDetail);
|
||||
return saleDetailVoIPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加销售详情信息
|
||||
* @param saleDetail
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int insertSaleDetail(SaleDetail saleDetail) {
|
||||
// 修改商品库存 库存不可小于0 小于0的话返回-1
|
||||
LJGoods ljGoods = goodsService.selectLJGoodsById(saleDetail.getGoodsId());
|
||||
int stock = ljGoods.getStock() - saleDetail.getSaleNumber();
|
||||
if (stock>=0){
|
||||
LJGoods goods = new LJGoods();
|
||||
goods.setStock(stock);
|
||||
goods.setId(ljGoods.getId());
|
||||
goodsService.updateLJGoods(goods);
|
||||
}else {
|
||||
return -1;
|
||||
}
|
||||
// 根据商品id查询销售信息是否存在
|
||||
SaleStatistic saleStatistic = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId());
|
||||
SaleStatistic saleStatistic1 = new SaleStatistic();
|
||||
SaleStatistic saleStatistic2 = null;
|
||||
// 判断商品是否是第一次出售
|
||||
if (saleStatistic==null){
|
||||
// 为空则为第一次销售 添加销售统计记录
|
||||
saleStatistic1.setGoodsId(saleDetail.getGoodsId());
|
||||
saleStatistic1.setStoreId(saleDetail.getStoreId());
|
||||
saleStatistic1.setSaleNumber(saleDetail.getSaleNumber());
|
||||
saleStatistic1.setSaleTotal(saleDetail.getSaleTotal());
|
||||
saleStatistic1.setCostTotal(saleDetail.getCostTotal());
|
||||
saleStatistic1.setProfitTotal(saleDetail.getProfitTotal());
|
||||
saleStatisticService.insertSale(saleStatistic1);
|
||||
saleStatistic2 = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId());
|
||||
saleDetail.setSaleId(saleStatistic2.getId());
|
||||
}else {
|
||||
// 不为空则修改销售统计记录
|
||||
saleStatistic1.setGoodsId(saleDetail.getGoodsId());
|
||||
saleStatistic1.setStoreId(saleDetail.getStoreId());
|
||||
Integer saleNumber = saleStatistic.getSaleNumber() + saleDetail.getSaleNumber();
|
||||
saleStatistic1.setSaleNumber(saleNumber);
|
||||
Double saleTotal = saleStatistic.getSaleTotal() + saleDetail.getSaleTotal();
|
||||
saleStatistic1.setSaleTotal(saleTotal);
|
||||
Double costTotal = saleStatistic.getCostTotal() + saleDetail.getCostTotal();
|
||||
saleStatistic1.setCostTotal(costTotal);
|
||||
Double profitTotal = saleStatistic.getProfitTotal() + saleDetail.getProfitTotal();
|
||||
saleStatistic1.setProfitTotal(profitTotal);
|
||||
saleStatistic2 = saleStatisticService.selectSaleByGoodsId(saleDetail.getGoodsId());
|
||||
saleStatistic1.setId(saleStatistic2.getId());
|
||||
saleStatisticService.updateSales(saleStatistic1);
|
||||
saleDetail.setSaleId(saleStatistic2.getId());
|
||||
}
|
||||
int row = baseMapper.insert(saleDetail);
|
||||
return row;
|
||||
}
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.fuint.business.convenienceSore.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.convenienceSore.entity.SaleStatistic;
|
||||
import com.fuint.business.convenienceSore.mapper.SaleStatisticMapper;
|
||||
import com.fuint.business.convenienceSore.service.SaleStatisticService;
|
||||
import com.fuint.business.convenienceSore.vo.SaleStatisticVo;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售统计信息 业务层
|
||||
*/
|
||||
@Service
|
||||
public class SaleStatisticServiceImpl extends ServiceImpl<SaleStatisticMapper, SaleStatistic> implements SaleStatisticService {
|
||||
/**
|
||||
* 根据条件分页查询销售统计信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<SaleStatisticVo> selectSaleList(Page page, SaleStatisticVo saleStatisticVo) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
saleStatisticVo.setStoreId(storeId);
|
||||
IPage<SaleStatisticVo> saleStatisticVoIPage = baseMapper.selectSaleList(page, saleStatisticVo);
|
||||
return saleStatisticVoIPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据条件查询销售统计信息
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SaleStatisticVo> selectSales(SaleStatisticVo saleStatisticVo) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
saleStatisticVo.setStoreId(storeId);
|
||||
List<SaleStatisticVo> list = baseMapper.selectSales(saleStatisticVo);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询销售统计信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public SaleStatistic selectSaleById(int id) {
|
||||
SaleStatistic saleStatistic = baseMapper.selectById(id);
|
||||
return saleStatistic;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品id查询销售统计信息
|
||||
* @param goodsId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public SaleStatistic selectSaleByGoodsId(int goodsId) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("goods_id",goodsId);
|
||||
SaleStatistic saleStatistic = baseMapper.selectOne(queryWrapper);
|
||||
return saleStatistic;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加销售统计信息
|
||||
* @param saleStatistic
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int insertSale(SaleStatistic saleStatistic) {
|
||||
int row = baseMapper.insert(saleStatistic);
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售统计信息
|
||||
* @param saleStatistic
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateSales(SaleStatistic saleStatistic) {
|
||||
int row = baseMapper.updateById(saleStatistic);
|
||||
return row;
|
||||
}
|
||||
}
|
@ -38,10 +38,11 @@ public class StockStatisticServiceImpl extends ServiceImpl<StockStatisticMapper,
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<StockStatisticVo> selectStocks() {
|
||||
public List<StockStatisticVo> selectStocks(StockStatisticVo stockStatisticVo) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
List<StockStatisticVo> list = baseMapper.selectStocks(storeId);
|
||||
stockStatisticVo.setStoreId(storeId);
|
||||
List<StockStatisticVo> list = baseMapper.selectStocks(stockStatisticVo);
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.fuint.business.convenienceSore.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -39,6 +40,22 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据供应商名称查询供应商信息
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Supplier selectSupplierByName(String name) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("name",name);
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
Supplier supplier = baseMapper.selectOne(queryWrapper);
|
||||
return supplier;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除供应商信息
|
||||
* @param id
|
||||
|
@ -1,10 +1,14 @@
|
||||
package com.fuint.business.convenienceSore.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class CvsGoodsTree {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
@ -0,0 +1,32 @@
|
||||
package com.fuint.business.convenienceSore.vo;
|
||||
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SaleDetailVo extends BaseEntity {
|
||||
// id
|
||||
private Integer id;
|
||||
// 店铺id
|
||||
private Integer storeId;
|
||||
// 商品id
|
||||
private Integer goodsId;
|
||||
// 销售统计id
|
||||
private Integer saleId;
|
||||
// 商品名称
|
||||
private String name;
|
||||
// 销售数量
|
||||
private Integer saleNumber;
|
||||
// 销售总额
|
||||
private Double saleTotal;
|
||||
// 成本总额
|
||||
private Double costTotal;
|
||||
// 盈利总额
|
||||
private Double profitTotal;
|
||||
// 成本单价
|
||||
private Double buyingPrice;
|
||||
// 销售单价
|
||||
private Double retailPrice;
|
||||
// 销售会员单价
|
||||
private Double memberPrice;
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.fuint.business.convenienceSore.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SaleStatisticVo extends BaseEntity {
|
||||
// id
|
||||
private Integer id;
|
||||
// 店铺id
|
||||
private Integer storeId;
|
||||
// 商品id
|
||||
private Integer goodsId;
|
||||
// 商品名称
|
||||
@ExcelProperty(value = "商品名称")
|
||||
private String name;
|
||||
// 条码
|
||||
@ExcelProperty(value = "条码")
|
||||
private String goodsNo;
|
||||
// 拼音码
|
||||
@ExcelProperty(value = "拼音码")
|
||||
private String pinyinCode;
|
||||
// 单位
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
// 销售数量
|
||||
@ExcelProperty(value = "销售数量")
|
||||
private Integer saleNumber;
|
||||
// 销售总额
|
||||
@ExcelProperty(value = "销售总额")
|
||||
private Double saleTotal;
|
||||
// 成本总额
|
||||
@ExcelProperty(value = "成本总额")
|
||||
private Double costTotal;
|
||||
// 盈利总额
|
||||
@ExcelProperty(value = "盈利总额")
|
||||
private Double profitTotal;
|
||||
// 销售时间
|
||||
@ExcelProperty(value = "销售时间")
|
||||
private Date createTime;
|
||||
}
|
@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 固定等级 controller层
|
||||
*/
|
||||
@ -41,11 +43,23 @@ public class FixingLevelController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject staffInfo(@PathVariable Integer id){
|
||||
public ResponseObject fixingLevelInfo(@PathVariable Integer id){
|
||||
FixingLevel fixingLevel = fixingLevelService.selectFixingLevelById(id);
|
||||
return getSuccessResult(fixingLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据固定等级名称查询固定等级信息
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/getName")
|
||||
public ResponseObject fixingLevelByName(@Validated @RequestBody Map<String ,String> map){
|
||||
String name = map.get("name");
|
||||
FixingLevel fixingLevel = fixingLevelService.selectFixingLevelByName(name);
|
||||
return getSuccessResult(fixingLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除固定等级信息
|
||||
* @return
|
||||
|
@ -23,6 +23,13 @@ public interface FixingLevelService extends IService<FixingLevel> {
|
||||
*/
|
||||
public FixingLevel selectFixingLevelById(int id);
|
||||
|
||||
/**
|
||||
* 根据固定等级名称查询固定等级信息
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public FixingLevel selectFixingLevelByName(String name);
|
||||
|
||||
/**
|
||||
* 根据id删除固定等级信息
|
||||
* @param id
|
||||
|
@ -2,6 +2,7 @@ package com.fuint.business.userManager.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -59,6 +60,19 @@ public class FixingLevelServiceImpl extends ServiceImpl<FixingLevelMapper, Fixin
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据固定等级名称查询固定等级信息
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public FixingLevel selectFixingLevelByName(String name) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("name",name);
|
||||
FixingLevel fixingLevel = baseMapper.selectOne(queryWrapper);
|
||||
return fixingLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除固定等级信息
|
||||
* @param id
|
||||
|
@ -37,7 +37,7 @@ public class SysDictDataController extends BaseController
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseObject list(SysDictData dictData,
|
||||
@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize)
|
||||
{
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
|
Loading…
Reference in New Issue
Block a user