You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
562 lines
11 KiB
562 lines
11 KiB
import {
|
|
getManagementPrecision,
|
|
getPrecisionStrategy,
|
|
getBalanceByFilter
|
|
} from '@/api/request2.js';
|
|
|
|
/**
|
|
*
|
|
获取管理精度查询策略参数
|
|
* @param {*}
|
|
*
|
|
*/
|
|
export function getPrecisionStrategyParams(detailSource) {
|
|
var itemList = []
|
|
detailSource.forEach(item => {
|
|
item.subList.forEach(detail => {
|
|
if (detail.scaned) {
|
|
var filterResult = itemList.filter(res => {
|
|
if (res.itemCode == item.itemCode &&
|
|
res.locationCode == detail.toLocationCode) {
|
|
return res
|
|
}
|
|
})
|
|
//去掉重复元素
|
|
if (filterResult.length == 0) {
|
|
var result = {
|
|
itemCode: item.itemCode,
|
|
locationCode: detail.toLocationCode
|
|
}
|
|
itemList.push(result)
|
|
}
|
|
|
|
}
|
|
})
|
|
})
|
|
return itemList;
|
|
}
|
|
/**
|
|
*
|
|
获取管理精度查询策略参数
|
|
* @param {*}
|
|
*
|
|
*/
|
|
export function getPrecisionStrategyParamsByLocation(detailSource, toLocationCode) {
|
|
var itemList = []
|
|
detailSource.forEach(item => {
|
|
item.subList.forEach(detail => {
|
|
if (detail.scaned) {
|
|
detail.toLocationCode = toLocationCode;
|
|
var filterResult = itemList.filter(res => {
|
|
if (res.itemCode == item.itemCode &&
|
|
res.locationCode == detail.toLocationCode) {
|
|
return res
|
|
}
|
|
})
|
|
//去掉重复元素
|
|
if (filterResult.length == 0) {
|
|
var result = {
|
|
itemCode: item.itemCode,
|
|
locationCode: detail.toLocationCode
|
|
}
|
|
itemList.push(result)
|
|
}
|
|
|
|
}
|
|
})
|
|
})
|
|
return itemList;
|
|
}
|
|
|
|
/**
|
|
* "itemCode": [],
|
|
"locationCode":"INSPECT"
|
|
管理精度策略
|
|
* @param {*}
|
|
*
|
|
*/
|
|
export function getPrecisionStrategyList(itemList, callback) {
|
|
// let jsonParem = JSON.stringify(param)
|
|
let result = {
|
|
list: [],
|
|
success: true,
|
|
message: ''
|
|
};
|
|
|
|
getPrecisionStrategy(itemList).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false
|
|
result.message = '未查询到管理精度信息'
|
|
} else {
|
|
result.list = res.data;
|
|
}
|
|
callback(result);
|
|
}).catch(error => {
|
|
result.success = false;
|
|
result.message = error;
|
|
callback(result);
|
|
})
|
|
}
|
|
|
|
/**
|
|
* "itemCode": [],
|
|
"locationCode":"INSPECT"
|
|
管理精度策略
|
|
* @param {*}
|
|
*
|
|
*/
|
|
export function getManagementPrecisions(itemCodes, locationCode, callback) {
|
|
// let jsonParem = JSON.stringify(param)
|
|
let result = {
|
|
list: [],
|
|
success: true,
|
|
message: ''
|
|
};
|
|
|
|
var params = {
|
|
itemCodes: itemCodes,
|
|
locationCode: locationCode
|
|
}
|
|
getManagementPrecision(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false
|
|
result.message = '未查询到管理精度信息'
|
|
} else {
|
|
result.list = res.data;
|
|
}
|
|
callback(result);
|
|
}).catch(error => {
|
|
result.success = false;
|
|
result.message = error;
|
|
callback(result);
|
|
})
|
|
}
|
|
//通过父包装查询
|
|
export function getBalanceByManagementPrecisionByPacking(label, packageInfo,locationCode, fromInventoryStatuses, callback) {
|
|
let result = {
|
|
list: [],
|
|
success: true,
|
|
message: ''
|
|
};
|
|
let params = {
|
|
itemCodes: [label.itemCode],
|
|
locationCode: locationCode
|
|
};
|
|
// let jsonParem = JSON.stringify(param)
|
|
getManagementPrecision(params).then(res => {
|
|
let managementPrecision = res.data[0].ManagementPrecision;
|
|
switch (managementPrecision) {
|
|
case 'BY_PACKAGING':
|
|
byPacking(label, packageInfo,locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_BATCH':
|
|
byBatch(label, locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_QUANTITY':
|
|
byQuantity(label, locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_UNIQUEID':
|
|
byUniqueId(label, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
}
|
|
}).catch(error => {
|
|
let result = {
|
|
success: false,
|
|
message: error
|
|
};
|
|
callback(result);
|
|
})
|
|
}
|
|
|
|
|
|
|
|
export function getBalanceByManagementPrecision(label,locationCode, fromInventoryStatuses, callback) {
|
|
let result = {
|
|
list: [],
|
|
success: true,
|
|
message: ''
|
|
};
|
|
let params = {
|
|
itemCodes: [label.itemCode],
|
|
locationCode: locationCode
|
|
};
|
|
// let jsonParem = JSON.stringify(param)
|
|
getManagementPrecision(params).then(res => {
|
|
let managementPrecision = res.data[0].ManagementPrecision;
|
|
switch (managementPrecision) {
|
|
case 'BY_PACKAGING':
|
|
byPacking(label, "",locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_BATCH':
|
|
byBatch(label, locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_QUANTITY':
|
|
byQuantity(label, locationCode, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
case 'BY_UNIQUEID':
|
|
byUniqueId(label, fromInventoryStatuses, res => {
|
|
res.managementPrecision = managementPrecision;
|
|
callback(res);
|
|
});
|
|
break;
|
|
}
|
|
}).catch(error => {
|
|
let result = {
|
|
success: false,
|
|
message: error
|
|
};
|
|
callback(result);
|
|
})
|
|
}
|
|
/** 按包装管理查询库存
|
|
* @param {Object} label
|
|
* @param {Object} locationCode
|
|
* @param {Object} callback
|
|
*/
|
|
export function byPacking(label, packageInfo,locationCode, fromInventoryStatuses, callback) {
|
|
let result = {
|
|
success: true,
|
|
message: '',
|
|
data: {}
|
|
};
|
|
var filters = []
|
|
|
|
if (packageInfo&&packageInfo.parentNumber) {
|
|
var packingNumber = packageInfo.parentNumber + "," + label.packingNumber;
|
|
filters.push({
|
|
column: "packingNumber",
|
|
action: "in",
|
|
value: packingNumber
|
|
})
|
|
} else {
|
|
filters.push({
|
|
column: "packingNumber",
|
|
action: "==",
|
|
value: label.packingNumber
|
|
})
|
|
}
|
|
|
|
|
|
filters.push({
|
|
column: "itemCode",
|
|
action: "==",
|
|
value: label.itemCode
|
|
})
|
|
filters.push({
|
|
column: "batch",
|
|
action: "==",
|
|
value: label.batch
|
|
})
|
|
filters.push({
|
|
column: "locationCode",
|
|
action: "==",
|
|
value: locationCode
|
|
})
|
|
if (fromInventoryStatuses) {
|
|
var status = fromInventoryStatuses.join(',');
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
}
|
|
|
|
|
|
|
|
var params = {
|
|
filters: filters,
|
|
pageNo: 1,
|
|
pageSize: 100,
|
|
}
|
|
getBalanceByFilter(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false;
|
|
result.message =
|
|
"按包装管理查询、未查询到物料号[" + label.itemCode + "]" +
|
|
"到箱码[" + label.packingNumber + "]" +
|
|
"批次[" + label.batch + "]" +
|
|
"库位[" + label.locationCode + "]的信息"
|
|
} else {
|
|
result.success = true;
|
|
result.data = res.data;
|
|
}
|
|
|
|
callback(result)
|
|
}).catch(err => {
|
|
result.success = false;
|
|
result.data = null;
|
|
result.message = err;
|
|
callback(result)
|
|
})
|
|
}
|
|
/** 按批次管理查询库存
|
|
* @param {Object} label
|
|
* @param {Object} locationCode
|
|
* @param {Object} callback
|
|
*/
|
|
export function byBatch(label, locationCode, fromInventoryStatuses, callback) {
|
|
var filters = []
|
|
filters.push({
|
|
column: "itemCode",
|
|
action: "==",
|
|
value: label.itemCode
|
|
})
|
|
filters.push({
|
|
column: "batch",
|
|
action: "==",
|
|
value: label.batch
|
|
})
|
|
filters.push({
|
|
column: "packingNumber",
|
|
action: "==",
|
|
value: null
|
|
})
|
|
filters.push({
|
|
column: "locationCode",
|
|
action: "==",
|
|
value: locationCode
|
|
})
|
|
|
|
if (fromInventoryStatuses) {
|
|
var status = fromInventoryStatuses.join(',');
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
}
|
|
|
|
var params = {
|
|
filters: filters,
|
|
pageNo: 1,
|
|
pageSize: 100,
|
|
}
|
|
|
|
let result = {
|
|
success: true,
|
|
message: '',
|
|
data: {}
|
|
};
|
|
getBalanceByFilter(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false;
|
|
result.message =
|
|
"按批次管理查询、未查询到物料号[" + label.itemCode + "]" +
|
|
"批次[" + label.batch + "]" +
|
|
"库位[" + label.locationCode + "]的信息"
|
|
} else {
|
|
result.success = true;
|
|
result.data = res.data;
|
|
}
|
|
callback(result)
|
|
}).catch(err => {
|
|
result.success = false;
|
|
result.data = null;
|
|
result.message = err.message;
|
|
callback(result)
|
|
})
|
|
}
|
|
/** 按数量管理查询库存
|
|
* @param {Object} label
|
|
* @param {Object} locationCode
|
|
* @param {Object} callback
|
|
*/
|
|
export function byQuantity(label, locationCode, fromInventoryStatuses, callback) {
|
|
let result = {
|
|
success: true,
|
|
message: '',
|
|
data: {}
|
|
};
|
|
|
|
var filters = []
|
|
filters.push({
|
|
column: "itemCode",
|
|
action: "==",
|
|
value: label.itemCode
|
|
})
|
|
filters.push({
|
|
column: "packingNumber",
|
|
action: "==",
|
|
value: null
|
|
})
|
|
filters.push({
|
|
column: "batch",
|
|
action: "==",
|
|
value: null
|
|
})
|
|
filters.push({
|
|
column: "locationCode",
|
|
action: "==",
|
|
value: locationCode
|
|
})
|
|
|
|
if (fromInventoryStatuses) {
|
|
var status = fromInventoryStatuses.join(',');
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
}
|
|
|
|
var params = {
|
|
filters: filters,
|
|
pageNo: 1,
|
|
pageSize: 100,
|
|
}
|
|
|
|
getBalanceByFilter(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false;
|
|
result.message =
|
|
"按数量管理查询、未查询到物料号[" + label.itemCode + "]" +
|
|
"库位[" + label.locationCode + "]的信息"
|
|
} else {
|
|
result.success = true;
|
|
result.data = res.data;
|
|
}
|
|
callback(result)
|
|
}).catch(err => {
|
|
result.success = false;
|
|
result.data = null;
|
|
result.message = err.message;
|
|
callback(result)
|
|
})
|
|
}
|
|
/** 按唯一码管理查询库存
|
|
* @param {Object} label
|
|
* @param {Object} locationCode
|
|
* @param {Object} callback
|
|
*/
|
|
export function byUniqueId(label, locationCode, fromInventoryStatuses, callback) {
|
|
let param = {
|
|
packingNumber: label.packingNumber
|
|
};
|
|
let result = {
|
|
success: true,
|
|
message: '',
|
|
data: {}
|
|
};
|
|
|
|
var filters = []
|
|
filters.push({
|
|
column: "packingNumber",
|
|
action: "==",
|
|
value: label.packingNumber
|
|
})
|
|
|
|
if (fromInventoryStatuses) {
|
|
var status = fromInventoryStatuses.join(',');
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
|
|
filters.push({
|
|
column: "inventoryStatus",
|
|
action: "in",
|
|
value: status
|
|
})
|
|
}
|
|
|
|
var params = {
|
|
filters: filters,
|
|
pageNo: 1,
|
|
pageSize: 100,
|
|
}
|
|
|
|
getBalanceByFilter(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false;
|
|
result.message =
|
|
"按唯一码管理查询、未查询到箱码[" + label.packingNumber + "]" +
|
|
"的信息"
|
|
} else {
|
|
result.success = true;
|
|
result.data = res.data;
|
|
}
|
|
callback(result)
|
|
}).catch(err => {
|
|
result.success = false;
|
|
result.data = null;
|
|
result.message = err.message;
|
|
callback(result)
|
|
})
|
|
}
|
|
/**
|
|
* 查询指定库位下的库存
|
|
* @param {*} param
|
|
* @param {*} callback
|
|
*/
|
|
export function balanceByLocation(locationCode, callback) {
|
|
let result = {
|
|
success: true,
|
|
message: '',
|
|
data: {}
|
|
};
|
|
|
|
var filters = []
|
|
filters.push({
|
|
column: "locationCode",
|
|
action: "==",
|
|
value: locationCode
|
|
})
|
|
|
|
var params = {
|
|
filters: filters,
|
|
pageNo: 1,
|
|
pageSize: 100,
|
|
}
|
|
|
|
getBalanceByFilter(params).then(res => {
|
|
if (res.data == null) {
|
|
result.success = false;
|
|
result.message =
|
|
"按唯一码管理查询、未查询到库位[" + label.locationCode + "]" +
|
|
"的信息"
|
|
} else {
|
|
result.success = true;
|
|
result.data = res.data;
|
|
}
|
|
callback(result)
|
|
}).catch(err => {
|
|
result.success = false;
|
|
result.data = null;
|
|
result.message = err.message;
|
|
callback(result)
|
|
})
|
|
}
|