You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

424 lines
10 KiB
TypeScript

import { Action, getModule, Module, Mutation, MutationAction, VuexModule } from 'vuex-module-decorators';
import store from '@/store';
import http from '@/utils/request';
import { url } from '@/utils/url';
import { session } from '@/store/modules/session';
import vm from '@/main';
@Module({
namespaced: true,
dynamic: true,
store,
name: 'raw.handover.picking',
})
export class PickingModule extends VuexModule {
/**
*
*/
proOrderList: any[] = [];
detailedList: any;
mrpCodeRegion: '';
sapFactoryCode: '';
formParams: '';
code = '';
orderOutIdList: any;
NEWparams: any;
LocList: any = [];
lockCode: any = '';
// 容器码返回
ContainerCode: any = '';
/**
*
*/
proOrderResultList: any[] = [];
/**
*
*/
aggregateList: any[] = [];
/**
*
*/
locationList = [];
/**
*
*/
get isCheckedAll() {
return !this.proOrderList.filter((_: any) => !_.checked).length;
}
/**
*
*/
get hasChecked() {
return this.checkedProOrderList.length > 0;
}
/**
*
*/
get checkedProOrderList() {
return this.proOrderList.filter((_: any) => _.checked);
}
/**
*
*/
get isAggregateCheckedAll() {
return !this.aggregateList.filter((_: any) => !_.checked).length;
}
/**
*
*/
get hasAggregateChecked() {
return this.checkedAggregateList.length > 0;
}
/**
*
*/
get checkedAggregateList() {
return this.aggregateList.filter((_: any) => _.checked);
}
/**
*
*/
get hasAggregateCurrentAmount() {
return this.aggregateList.findIndex((_: any) => _.currentAmount) > -1;
}
/**
*
*/
get aggregateUploadList() {
return this.aggregateList.map((item: any) => {
if (!item.checked) {
item.currentAmount = 0;
}
return item;
});
}
/**
*
*/
get isProOrderResultCheckedAll() {
return !this.proOrderResultList.filter((_: any) => !_.checked).length;
}
/**
*
*/
get hasProOrderResultChecked() {
return this.checkedProOrderResultList.length > 0;
}
/**
*
*/
get checkedProOrderResultList() {
return this.proOrderResultList.filter((_: any) => _.checked);
}
/**
*
*/
get hasProOrderResultCurrentAmount() {
return this.proOrderResultList.findIndex((_: any) => _.currentAmount) > -1;
}
/**
*
*/
get proOrderResultUploadList() {
return this.proOrderResultList.map((item: any) => {
if (!item.checked) {
item.currentAmount = 0;
}
return item;
});
}
/**
*
*/
@Mutation
clearState() {
this.proOrderList = [];
this.proOrderResultList = [];
this.aggregateList = [];
}
/**
*
*/
@Mutation
clearProOrderList() {
this.proOrderList = [];
}
/**
* /
* @param checked
*/
@Mutation
checkAllProOrderList(checked: boolean) {
this.proOrderList = this.proOrderList.map((item: any) => ({
...item,
checked,
}));
}
/**
* /
* @param checked
*/
@Mutation
checkAllAggregateList(checked: boolean) {
this.aggregateList = this.aggregateList.map((item: any) => ({
...item,
checked,
}));
}
/**
*
* @param params
*/
@Mutation
confirmCheckedAggregateList(params: { locationCode: string; amount: number }) {
this.aggregateList
.filter((_: any) => _.checked)
.forEach((item: any) => {
if (params.locationCode) {
item.currentWkposCode = params.locationCode;
}
if (params.amount) {
item.currentAmount = params.amount;
}
});
}
/**
* /
* @param checked
*/
@Mutation
checkAllProOrderResultList(checked: boolean) {
this.proOrderResultList = this.proOrderResultList.map((item: any) => ({
...item,
checked,
}));
}
/**
*
* @param params
*/
@Mutation
confirmCheckedProOrderResultList(params: { amount: number }) {
this.proOrderResultList
.filter((_: any) => _.checked)
.forEach((item: any) => {
// if (params.locationCode) {
// item.currentWkposCode = params.locationCode;
// }
if (params.amount) {
item.currentAmount = params.amount;
}
});
}
/**
*
* @param params
*/
@MutationAction
async queryProOrder(params: any) {
const { list: proOrderList }: any = await http.post(url.sortscan.query.prdorder, params);
if (!proOrderList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
}
return { proOrderList };
}
@MutationAction
async queryOrder() {
const { list: proOrderList }: any = await http.post(url.sortscan.query.prdorder, this.formParams);
if (!proOrderList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
}
return { proOrderList };
}
/**
*
* @param params
*/
@Action({ commit: 'updateCheckedOrderInInfoListKw' })
async queryStockList(params: any) {
const res: any = await http.post('/material/queryOdsRawStorageNews', params);
return res;
}
/**
*
* @param params
*/
@MutationAction
async queryProOrderResult(params: any) {
const { list: proOrderResultList }: any = await http.post(url.sortscan.query.prdorderList, params);
proOrderResultList.forEach((item: any) => {
(item.loginName = params.loginName), (item.differences = parseFloat(item.amount) - parseFloat(item.totalMoAmount));
});
return { proOrderResultList };
}
/**
* -
* @param params
*/
@MutationAction
async queryAggregateList(params: any) {
const { list: aggregateList }: any = await http.post(url.sortscan.query.aggregateList, params);
if (!aggregateList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
// vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
return;
}
aggregateList.forEach((item: any) => {
(item.loginName = params.loginName), (item.differences = parseFloat(item.amount) - parseFloat(item.totalMoAmount));
});
return { aggregateList };
}
/**
* url.auth.locations listvalues item string
*/
@MutationAction
async queryLocationList() {
const params = {
factoryCode: session.factoryCode,
loginName: session.loginName,
};
const { values }: any = await http.post(url.auth.locations, params);
const locationList = values.map((value: string) => ({
label: value,
value,
}));
return { locationList };
}
@MutationAction
async lock(params: any) {
const res: any = await http.post(url.sortscan.lock.list, params);
const lockCode = res.code;
return { lockCode };
}
//俄罗斯汇总拣配扫描容器码
@MutationAction
async searchBarcode(barcode: any) {
const res: any = await http.post(url.auth.query.barcode, {
factoryCode: session.factoryCode,
loginName: session.loginName,
barcode,
});
const ContainerCode = res.data;
return { ContainerCode };
}
/**
*
*/
// @Action({ commit: 'clearState' })
@MutationAction
async saveAggregateUpload(params: any) {
const res: any = await http.post(url.sortscan.save.aggregate, params);
console.log('res', res);
const code = res.code;
return { code };
}
/**
*
*/
// @Action({ commit: 'clearState' })
@MutationAction
async saveProOrderResultUpload(dataList: any[]) {
const res: any = await http.post(url.sortscan.save.order, dataList);
const code = res.code;
console.log('code', code);
return { code };
}
@MutationAction
async queryItemLoc(params: any = {}) {
const res: any = await http.post(url.sortscan.save.queryWlByMat, params);
const LocList = [];
res.forEach((item: any) => {
const arr: any = {
label: item.locationCode,
value: item.locationCode + '(' + item.sendSpot + ')' + '(' + item.amount + ')',
};
LocList.push(arr);
});
console.log('res', res);
console.log('LocList', LocList);
return { LocList };
}
/**
*
* @param list
*/
@Action
async unlockProOrderResult(list: any[]) {
try {
await http.post(url.sortscan.unlock.list, list, {
custom: { hideError: true },
} as any);
} catch {
//
}
}
@Action
async unlockAggregateResult(params: any) {
try {
await http.post(url.sortscan.unlock.aggregateList, params);
} catch {
//
}
}
/**
*
* @param list
*/
@Action
async lockProOrderResult(list: any[]) {
await http.post(url.sortscan.lock.list, list);
}
@Action({ commit: 'updateCheckedOrderInInfoListKw' })
async queryByFactoryCodeAndWorkAreaCode(content: any) {
const res = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content);
return res;
}
//查询拣配明细
@Action({ commit: 'updateCheckedOrderInInfoListKw' })
async querydetaildlist(content: any) {
const res: any = await http.post('/wmspda/sortscan/getJhListSn', content);
this.detailedList = res.list;
console.log(this.detailedList);
return res;
}
}
export default getModule(PickingModule);