优化库存预警报表的查询逻辑

This commit is contained in:
季圣华 2021-10-31 23:51:08 +08:00
parent c9ac3d2197
commit 1e81a691b7
15 changed files with 30 additions and 26 deletions

View File

@ -388,7 +388,7 @@ export const JeecgListMixin = {
//需要合计的列 //需要合计的列
let parseCols = 'initialStock,currentStock,currentStockPrice,initialAmount,thisMonthAmount,currentAmount,inSum,inSumPrice,' + let parseCols = 'initialStock,currentStock,currentStockPrice,initialAmount,thisMonthAmount,currentAmount,inSum,inSumPrice,' +
'outSum,outSumPrice,outInSumPrice,operNumber,allPrice,numSum,priceSum,prevSum,thisSum,thisAllPrice,billMoney,changeAmount,' + 'outSum,outSumPrice,outInSumPrice,operNumber,allPrice,numSum,priceSum,prevSum,thisSum,thisAllPrice,billMoney,changeAmount,' +
'allPrice,safetystock,currentNumber,linjieNumber' 'allPrice,currentNumber,lowSafeStock,highSafeStock,lowCritical,highCritical'
columns.forEach(column => { columns.forEach(column => {
let { key, dataIndex } = column let { key, dataIndex } = column
if (![key, dataIndex].includes(numKey)) { if (![key, dataIndex].includes(numKey)) {
@ -408,7 +408,7 @@ export const JeecgListMixin = {
}) })
dataSource.push(totalRow) dataSource.push(totalRow)
//总数要增加合计的行数每页都有一行合计所以总数要加上 //总数要增加合计的行数每页都有一行合计所以总数要加上
let size = parseInt(this.ipagination.total/this.ipagination.pageSize) +1 let size = Math.ceil(this.ipagination.total/this.ipagination.pageSize)
this.ipagination.total = this.ipagination.total + size this.ipagination.total = this.ipagination.total + size
} }
}, },

View File

@ -366,10 +366,10 @@
title: '期初库存数量', key: 'initStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}' title: '期初库存数量', key: 'initStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}'
}, },
{ {
title: '最低库存数量', key: 'lowSafeStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}' title: '最低安全库存数量', key: 'lowSafeStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}'
}, },
{ {
title: '最高库存数量', key: 'highSafeStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}' title: '最高安全库存数量', key: 'highSafeStock', width: '15%', type: FormTypes.input, defaultValue: '', placeholder: '请输入${title}'
} }
] ]
}, },

View File

@ -64,7 +64,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -91,7 +91,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -52,7 +52,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -71,7 +71,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -84,7 +84,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -81,7 +81,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -70,7 +70,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -87,7 +87,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -84,7 +84,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -81,7 +81,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -52,7 +52,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>

View File

@ -59,7 +59,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>
@ -113,15 +113,18 @@
return (t !== '合计') ? (parseInt(index) + 1) : t return (t !== '合计') ? (parseInt(index) + 1) : t
} }
}, },
{title: '条码', dataIndex: 'barCode', width: 120}, {title: '仓库', dataIndex: 'depotName', width: 100},
{title: '名称', dataIndex: 'mname', width: 120}, {title: '条码', dataIndex: 'barCode', width: 100},
{title: '名称', dataIndex: 'mname', width: 100},
{title: '规格', dataIndex: 'mstandard', width: 80}, {title: '规格', dataIndex: 'mstandard', width: 80},
{title: '型号', dataIndex: 'mmodel', width: 80}, {title: '型号', dataIndex: 'mmodel', width: 80},
{title: '扩展信息', dataIndex: 'materialOther', width: 150}, {title: '扩展信息', dataIndex: 'materialOther', width: 100},
{title: '单位', dataIndex: 'materialUnit', width: 80}, {title: '单位', dataIndex: 'materialUnit', width: 60},
{title: '安全存量', dataIndex: 'safetystock', sorter: (a, b) => a.safetystock - b.safetystock, width: 80}, {title: '库存', dataIndex: 'currentNumber', sorter: (a, b) => a.currentNumber - b.currentNumber, width: 80},
{title: '当前库存', dataIndex: 'currentNumber', sorter: (a, b) => a.currentNumber - b.currentNumber, width: 80}, {title: '最低安全库存', dataIndex: 'lowSafeStock', sorter: (a, b) => a.lowSafeStock - b.lowSafeStock, width: 100},
{title: '建议入库量', dataIndex: 'linjieNumber', sorter: (a, b) => a.linjieNumber - b.linjieNumber, width: 80} {title: '最高安全库存', dataIndex: 'highSafeStock', sorter: (a, b) => a.highSafeStock - b.highSafeStock, width: 100},
{title: '建议入库量', dataIndex: 'lowCritical', sorter: (a, b) => a.lowCritical - b.lowCritical, width: 80},
{title: '建议出库量', dataIndex: 'highCritical', sorter: (a, b) => a.highCritical - b.highCritical, width: 80}
], ],
url: { url: {
list: "/depotItem/findStockWarningCount" list: "/depotItem/findStockWarningCount"
@ -149,10 +152,11 @@
}) })
}, },
exportExcel() { exportExcel() {
let aoa = [['条码', '名称', '规格', '型号', '扩展信息', '单位', '安全存', '当前库存', '建议入库量']] let aoa = [['仓库', '条码', '名称', '规格', '型号', '扩展信息', '单位', '库存', '最低安全', '最高安全库存', '建议入库量', '建议出库量']]
for (let i = 0; i < this.dataSource.length; i++) { for (let i = 0; i < this.dataSource.length; i++) {
let ds = this.dataSource[i] let ds = this.dataSource[i]
let item = [ds.barCode, ds.mname, ds.mstandard, ds.mmodel, ds.materialOther, ds.materialUnit, ds.safetystock, ds.currentNumber, ds.linjieNumber] let item = [ds.depotName, ds.barCode, ds.mname, ds.mstandard, ds.mmodel, ds.materialOther, ds.materialUnit,
ds.currentNumber, ds.lowSafeStock, ds.highSafeStock, ds.lowCritical, ds.highCritical]
aoa.push(item) aoa.push(item)
} }
openDownloadDialog(sheet2blob(aoa), '库存预警') openDownloadDialog(sheet2blob(aoa), '库存预警')

View File

@ -71,7 +71,7 @@
:page-size="ipagination.pageSize" :page-size="ipagination.pageSize"
:page-size-options="ipagination.pageSizeOptions" :page-size-options="ipagination.pageSizeOptions"
:total="ipagination.total" :total="ipagination.total"
:show-total="(total, range) => `共 ${total-parseInt(total/ipagination.pageSize)-1} 条`"> :show-total="(total, range) => `共 ${total-Math.ceil(total/ipagination.pageSize)} 条`">
<template slot="buildOptionText" slot-scope="props"> <template slot="buildOptionText" slot-scope="props">
<span>{{ props.value-1 }}/</span> <span>{{ props.value-1 }}/</span>
</template> </template>