Browse Source

物品安全库存预警功能开发

dev_web_online
陈薪名 2 years ago
parent
commit
6a97af6731
  1. 10
      fe/PC/src/api/wms-api.js
  2. 7
      fe/PC/src/components/tablePagination/index.vue
  3. 38
      fe/PC/src/utils/detailsTableColumns/index.js
  4. 18
      fe/PC/src/utils/tableColumns/index.js
  5. 21
      fe/PC/src/utils/tabsDesTions/index.js
  6. 130
      fe/PC/src/views/inventoryManage/InventoryQuery/safetyStockWarning.vue

10
fe/PC/src/api/wms-api.js

@ -565,6 +565,16 @@ export function getVsersion() {
method: 'get'
})
}
// 安全库存预警
export function getListPageSafety(data, url) {
return request({
url: baseURL + url,
method: 'post',
data
})
}
// 根据编号获取字典信息
// export function getDictByCode(code) {
// return request({

7
fe/PC/src/components/tablePagination/index.vue

@ -52,6 +52,7 @@
@buttonOperationClick="buttonOperationClick"
:tableBorder="true"
:firstFixed="true"
:cellStyle = "cellStyle"
>
<template>
<slot></slot>
@ -170,6 +171,12 @@ export default {
httpOverallSearchData:{
type: Object,
default: null
},
cellStyle: {
type: Function,
default: () => {
return Function;
}
}
},
data () {

38
fe/PC/src/utils/detailsTableColumns/index.js

@ -3091,4 +3091,42 @@ export const CountPlanAdjust = [
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: "id" },
// ************** 确定隐藏 ************************
]
// 物品安全库存预警
export const safetyStockWarning = [
{
label: "物品代码",
prop: "itemCode",
fixed: "left",
},
{ label: "物品名称", prop: 'itemName' },
{ label: "物品描述1", prop: 'itemDesc1' },
{ label: "物品描述2", prop: 'itemDesc2' },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "到货时间", prop: 'arriveDate' ,type:"dateTime" },
{ label: "生产时间", prop: 'produceDate' ,type:"dateTime" },
{ label: "过期时间", prop: 'expireDate' ,type:"dateTime" },
{ label: "批次", prop: 'lot' },
{ label: "序号", prop: 'serialNumber' },
{ label: "单位", prop: 'uom' },
{ label: "数量", prop: 'qty' },
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "仓库代码", prop: "warehouseCode" },
{ label: "库位组", prop: 'locationGroup' },
{ label: "库区", prop: 'locationArea' },
{ label: "ERP库位", prop: 'locationErpCode' },
{ label: "入库时间", prop: 'putInTime', type:"dateTime" },
{ label: "最后盘点时间", prop: 'lastCountTime', type:"dateTime" },
{ label: "最后盘点计划", prop: 'lastCountPlanNumber' },
{ label: "最后盘点标签", prop: 'lastCountLabel' },
{ label: "是否可用", prop: 'isActive' },
{ label: "库位代码", prop: 'locationCode' },
{ label: "箱码", prop: 'packingCode' },
{ label: "管理类型", prop: "manageType", type: "filter", filters: "manageType" },
{ label: "最后事务编号", prop: "lastTransNumber" },
{ label: "最后事务类型", prop: "lastTransType", type: "filter", filters: "TransTypeBase" },
{ label: "创建时间", prop: "creationTime",type: "dateTime",showProp: true },
{ label: "上次修改时间", prop: "lastModificationTime", type:'dateTime',showProp: true },
{ label: "备注", prop: 'remark' },
]

18
fe/PC/src/utils/tableColumns/index.js

@ -2753,6 +2753,24 @@ export const expectIn = [
// { label: "事务ID", prop: "tenantId" },
// ************** 确认隐藏 ************************
]
// 物品安全库存预警
export const safetyStockWarning = [
{
label: "物品代码",
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: "最小库存", prop: 'minStock' },
{ label: "最大库存", prop: 'maxStock' },
{ label: "安全库存", prop: 'safetyStock' },
// { label: "安全库存状态", prop: 'safetyStockStatus' },
{ label: "仓库代码", prop: "warehouseCode" },
{ label: "存储关系代码", prop: "storeValue" },
{ label: "存储关系类型", prop: "storeRelationType", type: "filter", filters: "storeRelationType" },
]
// 非生产领料申请 20230417
export const pickingRequest = [
{

21
fe/PC/src/utils/tabsDesTions/index.js

@ -1984,6 +1984,27 @@ export const expectOut = [
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
// 物品安全库存预警
export const safetyStockWarning = [
{
label: "物品代码",
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: "最大库存", prop: 'maxStock' },
{ label: "最小库存", prop: 'minStock' },
{ label: "安全库存", prop: 'safetyStock' },
{ label: "安全库存状态", prop: 'safetyStockStatus' },
{ label: "仓库代码", prop: "warehouseCode" },
{ label: "存储关系代码", prop: "storeValue" },
{ label: "存储关系类型", prop: "storeRelationType", type: "filter", filters: "storeRelationType" },
{ label: "创建时间", prop: "creationTime",type: "dateTime",showProp: true },
{ label: "上次修改时间", prop: "lastModificationTime", type:'dateTime',showProp: true },
{ label: "备注", prop: 'remark' },
]
// 非生产领料申请 20230417
export const pickingRequest = [
{ label: "领料单号码", prop: "number" },

130
fe/PC/src/views/inventoryManage/InventoryQuery/safetyStockWarning.vue

@ -0,0 +1,130 @@
<template>
<div class="page-box InspectNoticePage" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
FormFixedLeft="0px"
:Options="editOptions"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
:cellStyle = "cellStyle"
>
</tablePagination>
<curren-Drawer
:title="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
:Butttondata="[]"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@close-value="closeValue"
:currenButtonData="currenButtonData"
:tableColumns="detailsTableColumns"
:totalCount="totalCountDetails"
:MaxResultCount="MaxResultCountDetails"
@alterResultCountDetails="alterResultCountDetails"
@alertoldSkipCountDetails="alertoldSkipCountDetails"
></curren-Drawer>
</div>
</template>
<script>
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { getListPageSafety } from '@/api/wms-api'
export default {
name: "safetyStockWarning",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
],
data () {
return {
URL: 'wms/inventory/safety-stock-inventory-balance',
//
currenButtonData: [
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
]
}
},
mounted () {
this.paging();
},
methods: {
//
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
getListPageSafety(this.PageListParams, this.URL + '/list-page').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
},
//Table
inlineDialog(val) {
val.details = val.balancesDtos
// tag
this.firstTabs = 'xq'
//
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
if (val.details) {
//
this.tableDataDetails = JSON.parse(JSON.stringify(val))
let linshiTableDataDetails = JSON.parse(JSON.stringify(this.tableDataDetails))
this.totalCountDetails = val.details.length
//
linshiTableDataDetails.details.splice(this.MaxResultCountDetails,this.totalCountDetails);
this.propsData = linshiTableDataDetails
} else {
this.propsData = {}
}
this.inlineDialogCallback()
},
//
cellStyle({row, column, rowIndex, columnIndex}){
if (row.safetyStockStatus == 'Red' && columnIndex === 1) {
return {'background':'#B22222','color':'#fff'}
} else if (row.safetyStockStatus == 'Green' && columnIndex === 1) {
return {'background':'#228B22','color':'#fff'}
} else if (row.safetyStockStatus == 'Yellow' && columnIndex === 1) {
return {'background':'#FFFF000','color':'#fff'}
}
return ''
}
}
}
</script>
<style lang="scss" scoped>
@import "../../../styles/mainbasicData.scss";
</style>
Loading…
Cancel
Save