diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts
index 002c27c..18cec1b 100644
--- a/src/i18n/lang/en.ts
+++ b/src/i18n/lang/en.ts
@@ -565,5 +565,8 @@ export default {
finQty: 'Scan Qty',
confirm: 'Confirm',
HeaderText: 'Header Text',
+ so: 'Sell Order',
+ rawSo: 'Material So',
+ spSo: 'Spare So',
},
};
diff --git a/src/pages.json b/src/pages.json
index 8f5ade7..ef14c5d 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -1010,6 +1010,30 @@
"navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
}
},
+ {
+ "path": "pages/raw/so/index",
+ "style": {
+ "navigationBarTitleText": "销售订单",
+ "navigationStyle": "custom", // 隐藏系统导航栏
+ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
+ }
+ },
+ {
+ "path": "pages/raw/so/rawSo/index",
+ "style": {
+ "navigationBarTitleText": "原材料SO",
+ "navigationStyle": "custom", // 隐藏系统导航栏
+ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
+ }
+ },
+ {
+ "path": "pages/raw/so/spSo/index",
+ "style": {
+ "navigationBarTitleText": "备件SO",
+ "navigationStyle": "custom", // 隐藏系统导航栏
+ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
+ }
+ },
{
"path": "pages/raw/Semi-finished/Semi-finished-SO/detail",
"style": {
diff --git a/src/pages/raw/so/index.vue b/src/pages/raw/so/index.vue
new file mode 100644
index 0000000..bd67d1c
--- /dev/null
+++ b/src/pages/raw/so/index.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+ {{ index + 1 + ' ' + $t('message.' + item.engResourceName) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/raw/so/rawSo/config.ts b/src/pages/raw/so/rawSo/config.ts
new file mode 100644
index 0000000..dd6369d
--- /dev/null
+++ b/src/pages/raw/so/rawSo/config.ts
@@ -0,0 +1,73 @@
+/*
+ * @Author: zhou lei
+ * @Date: 2021-11-11 11:09:57
+ * @LastEditTime: 2021-12-14 10:13:18
+ * @LastEditors: zhou lei
+ * @Description:
+ * @FilePath: /wms_haiwai_app/src/pages/raw/commission/goOut/config.ts
+ * 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司
+ */
+/**
+ * 看单明细表格列
+ */
+import vm from '@/main';
+export const headers = [
+ {
+ label: vm.$t('message.Pi_OrderNo'),
+ key: 'order1',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.Line'),
+ key: 'order2',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.matcode'),
+ key: 'productCode',
+ width: 300,
+ },
+ {
+ label: vm.$t('message.po_MaterielDes'),
+ key: 'productDescZh',
+ width: 430,
+ },
+ {
+ label: vm.$t('message.product_barCode'),
+ key: 'barcode',
+ width: 260,
+ },
+ {
+ label: vm.$t('message.CommissionedLocation'),
+ key: 'locCode',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.Operation'),
+ key: 'createdBy',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.operatingTime'),
+ key: 'createdDate',
+ width: 470,
+ },
+];
+
+export const detailHeader = [
+ {
+ label: vm.$t('message.po_MaterielNo'),
+ key: 'materialCode',
+ width: 301,
+ },
+ {
+ label: vm.$t('message.CommissionedLocation'),
+ key: 'locCode',
+ width: 186,
+ },
+ {
+ label: vm.$t('message.product_Number'),
+ key: 'qty',
+ width: 186,
+ },
+];
diff --git a/src/pages/raw/so/rawSo/detail.vue b/src/pages/raw/so/rawSo/detail.vue
new file mode 100644
index 0000000..7651704
--- /dev/null
+++ b/src/pages/raw/so/rawSo/detail.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/raw/so/rawSo/index.vue b/src/pages/raw/so/rawSo/index.vue
new file mode 100644
index 0000000..013eae6
--- /dev/null
+++ b/src/pages/raw/so/rawSo/index.vue
@@ -0,0 +1,554 @@
+
+
+
+
+
+
+
+
+ {{ $t('message.CommissionedSingleNumber') }}
+
+
+
+ {{ $t('message.Query') }}
+
+
+
+
+
+ {{ $t('message.CommissionedMaterielNo') }}
+
+
+
+
+
+ {{ $t('message.CommissionedMaterielDesc') }}
+ {{ every.materialDesc }}
+
+
+
+
+
+ {{ $t('message.CommissionedDemandData') }}
+
+
+
+ {{ $t('message.Cumulative') }}
+
+
+
+
+
+
+
+
+
+
+ {{ $t('message.CommissionedLocation') }}
+
+
+
+ {{ $t('message.CommissionedThisNumber') }}
+
+
+
+
+
+ {{ $t('message.product_add') }}
+
+
+
+
+
+
+
+
+ {{ $t('message.detailed') }}
+
+
+ {{ $t('message.product_Upload') }}
+
+
+ {{ $t('message.po_Return') }}
+
+
+
+
+
+
+
diff --git a/src/pages/raw/so/rawSo/model.ts b/src/pages/raw/so/rawSo/model.ts
new file mode 100644
index 0000000..b8a24ba
--- /dev/null
+++ b/src/pages/raw/so/rawSo/model.ts
@@ -0,0 +1,212 @@
+import { Action, getModule, Module, 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';
+
+class OrderInInfo {
+ stoAmount?: 0;
+ stoNo?: string; //STO采购单号
+ orderAmount?: string; //单据总数
+ Allocated?: string; //已分配
+ Unallocated?: string; //未分配
+}
+
+@Module({
+ namespaced: true,
+ dynamic: true,
+ store,
+ name: 'product.outbound.Semi-finished-SO',
+})
+export class ReturningModule extends VuexModule {
+ /**
+ * 月台列表
+ */
+ returningTypeList: any[] = [];
+ detailedList: any;
+ /**
+ * 物料列表
+ */
+ materielList: any[] = [];
+ locationCodeList: any[] = [];
+ LocList: any[] = [];
+ //条码扫描的返回的结果
+ oneMaterielDetail: any = {};
+ /**
+ * 订单号查询结果
+ */
+ orderInInfo: OrderInInfo = new OrderInInfo();
+ //记账按钮的code码
+ code = '';
+ /**
+ * 委外出库单号查询
+ * @param orderNo
+ */
+ @Action
+ async queryOrder(form: any) {
+ const result = await http.post(url.material.commission.goOut.queryOrder, {
+ ...form,
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ const orderInInfo = result.data.records[0] || {};
+ return { orderInInfo };
+ }
+ /**
+ * 库位
+ */
+ // @MutationAction
+ // async queryByFactoryCodeAndWorkAreaCode() {
+ // const list: [] = await http.post(url.material.commission.goOut.queryByFactoryCodeAndWorkAreaCode, {
+ // factoryCode: session.factoryCode,
+ // whCode: session.warehouseCode,
+ // loginName: session.loginName,
+ // });
+ // const locationCodeList = list.map((item: any) => ({
+ // label: item.locationCode,
+ // value: item.locationCode,
+ // }));
+ // return { locationCodeList };
+ // }
+ /**
+ * 获取物料
+ *
+ * @returns
+ * @memberof ReturningModule
+ */
+ @MutationAction
+ async outInfo(poNo: string) {
+ const list: [] = await http.post(url.material.commission.goOut.outInfo, {
+ factoryCode: session.factoryCode,
+ poNo: poNo,
+ loginName: session.loginName,
+ });
+ const locationCodeList = list.map((item: any) => ({
+ label: item.locationCode,
+ value: item.locationCode,
+ }));
+ return { locationCodeList };
+ }
+
+ /**
+ * 提交
+ */
+ @Action
+ async materialComplete(form: any) {
+ const res = await http.post(url.material.commission.goOut.materialComplete, {
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ ...form,
+ });
+ console.log(res, '>>>>>res');
+ }
+
+ /**
+ * 扫条码
+ */
+ @Action
+ async tluSubmit(list: any[]) {
+ const obj = {
+ barcode: list[0].barCode,
+ loginName: session.loginName,
+ };
+ let oneMaterielDetail: any = {};
+ const { data }: any = await http.post(url.outbound.stoOutbound.checkScan, obj);
+ console.log('shneme a ', data.records);
+ oneMaterielDetail = data.records[0];
+ data.records[0].materialCode = list[0].productCode;
+ data.records[0].materialDesc = list[0].productDescZh;
+ console.log('aaaaa', oneMaterielDetail);
+ return oneMaterielDetail;
+ }
+ /**
+ * 确认按钮
+ * @param orderNo
+ */
+ @MutationAction
+ async confirm(list: any[]) {
+ const { code, data } = await http.post(url.outbound.stoOutbound.Bookkeeping, list);
+ console.log('res数据', data, code);
+ // if (code == '1') {
+ // uni.showToast({ icon: 'success', title: msg });
+ // } else {
+ // uni.showToast({ icon: 'none', title: msg });
+ // }
+ const materielList: any = [];
+ return { code, materielList };
+ }
+ //委外出库 关闭订单
+ @MutationAction
+ async closeCode(poNo: any) {
+ const res: any = await http.post(url.outbound.stoOutbound.close, {
+ poNo,
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ const code: any = res.code;
+ return { code };
+ }
+
+ //委外出库 初始化获取库位
+ // @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ @MutationAction
+ async queryCodeAndWorkAreaCode(content: any) {
+ const res: any = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content);
+ console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', res);
+ const LocList = res;
+ console.log('LocList', LocList);
+ return { LocList };
+ }
+ @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);
+ });
+ return { LocList };
+ }
+ @Action
+ async queryOutsourcing(nxOutCode: any) {
+ const res = await http.post(url.so.soOutbound.findInfoByDN, {
+ nxOutCode,
+ proOutType: 'raw',
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ return res;
+ }
+
+ @Action
+ async submitOutsourcing(upload: any) {
+ const res = await http.post(url.so.soOutbound.confirm, upload);
+ return res;
+ }
+ //查询明细
+ @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ async querydetaildlist(content: any) {
+ const res: any = await http.post('/wmspda/fg/querySfgListInfoByDnNo/russia', content);
+ console.log('明细》》》》》》》》》', res.list);
+ this.detailedList = res.data;
+ return res;
+ }
+ ContainerCode: any = '';
+ @MutationAction
+ async searchBarcode(params: any) {
+ const res: any = await http.post(url.auth.query.barcode, {
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ barcode: params.barcode,
+ productCode: params.productCode,
+ });
+ const ContainerCode = res.data;
+ return { ContainerCode };
+ }
+}
+
+export default getModule(ReturningModule);
diff --git a/src/pages/raw/so/spSo/config.ts b/src/pages/raw/so/spSo/config.ts
new file mode 100644
index 0000000..e878c23
--- /dev/null
+++ b/src/pages/raw/so/spSo/config.ts
@@ -0,0 +1,78 @@
+/*
+ * @Author: zhou lei
+ * @Date: 2021-11-11 11:09:57
+ * @LastEditTime: 2021-12-14 10:13:18
+ * @LastEditors: zhou lei
+ * @Description:
+ * @FilePath: /wms_haiwai_app/src/pages/raw/commission/goOut/config.ts
+ * 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司
+ */
+/**
+ * 看单明细表格列
+ */
+import vm from '@/main';
+export const headers = [
+ {
+ label: vm.$t('message.Pi_OrderNo'),
+ key: 'order1',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.Line'),
+ key: 'order2',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.matcode'),
+ key: 'productCode',
+ width: 300,
+ },
+ {
+ label: vm.$t('message.po_MaterielDes'),
+ key: 'productDescZh',
+ width: 430,
+ },
+ {
+ label: vm.$t('message.product_barCode'),
+ key: 'barcode',
+ width: 260,
+ },
+ {
+ label: vm.$t('message.CommissionedLocation'),
+ key: 'locCode',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.Operation'),
+ key: 'createdBy',
+ width: 200,
+ },
+ {
+ label: vm.$t('message.operatingTime'),
+ key: 'createdDate',
+ width: 470,
+ },
+];
+
+export const detailHeader = [
+ {
+ label: vm.$t('message.po_MaterielNo'),
+ key: 'materialCode',
+ width: 301,
+ },
+ {
+ label: vm.$t('message.CommissionedLocation'),
+ key: 'locCode',
+ width: 186,
+ },
+ {
+ label: vm.$t('message.product_Number'),
+ key: 'qty',
+ width: 186,
+ },
+ {
+ label: vm.$t('message.product_barCode'),
+ key: 'barcode',
+ width: 300,
+ },
+];
diff --git a/src/pages/raw/so/spSo/detail.vue b/src/pages/raw/so/spSo/detail.vue
new file mode 100644
index 0000000..2c89d99
--- /dev/null
+++ b/src/pages/raw/so/spSo/detail.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/raw/so/spSo/index.vue b/src/pages/raw/so/spSo/index.vue
new file mode 100644
index 0000000..1ae24b3
--- /dev/null
+++ b/src/pages/raw/so/spSo/index.vue
@@ -0,0 +1,549 @@
+
+
+
+
+
+
+
+
+ {{ $t('message.CommissionedSingleNumber') }}
+
+
+
+ {{ $t('message.Query') }}
+
+
+
+
+
+ {{ $t('message.CommissionedMaterielNo') }}
+
+
+
+
+
+ {{ $t('message.CommissionedMaterielDesc') }}
+ {{ every.materialDesc }}
+
+
+
+
+
+ {{ $t('message.CommissionedDemandData') }}
+
+
+
+ {{ $t('message.Cumulative') }}
+
+
+
+
+
+
+
+
+
+
+ {{ $t('message.CommissionedLocation') }}
+
+
+
+ {{ $t('message.CommissionedThisNumber') }}
+
+
+
+
+
+ {{ $t('message.product_add') }}
+
+
+
+
+
+
+
+
+ {{ $t('message.detailed') }}
+
+
+ {{ $t('message.product_Upload') }}
+
+
+ {{ $t('message.po_Return') }}
+
+
+
+
+
+
+
diff --git a/src/pages/raw/so/spSo/model.ts b/src/pages/raw/so/spSo/model.ts
new file mode 100644
index 0000000..2d6947a
--- /dev/null
+++ b/src/pages/raw/so/spSo/model.ts
@@ -0,0 +1,212 @@
+import { Action, getModule, Module, 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';
+
+class OrderInInfo {
+ stoAmount?: 0;
+ stoNo?: string; //STO采购单号
+ orderAmount?: string; //单据总数
+ Allocated?: string; //已分配
+ Unallocated?: string; //未分配
+}
+
+@Module({
+ namespaced: true,
+ dynamic: true,
+ store,
+ name: 'product.outbound.Semi-finished-SO',
+})
+export class ReturningModule extends VuexModule {
+ /**
+ * 月台列表
+ */
+ returningTypeList: any[] = [];
+ detailedList: any;
+ /**
+ * 物料列表
+ */
+ materielList: any[] = [];
+ locationCodeList: any[] = [];
+ LocList: any[] = [];
+ //条码扫描的返回的结果
+ oneMaterielDetail: any = {};
+ /**
+ * 订单号查询结果
+ */
+ orderInInfo: OrderInInfo = new OrderInInfo();
+ //记账按钮的code码
+ code = '';
+ /**
+ * 委外出库单号查询
+ * @param orderNo
+ */
+ @Action
+ async queryOrder(form: any) {
+ const result = await http.post(url.material.commission.goOut.queryOrder, {
+ ...form,
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ const orderInInfo = result.data.records[0] || {};
+ return { orderInInfo };
+ }
+ /**
+ * 库位
+ */
+ // @MutationAction
+ // async queryByFactoryCodeAndWorkAreaCode() {
+ // const list: [] = await http.post(url.material.commission.goOut.queryByFactoryCodeAndWorkAreaCode, {
+ // factoryCode: session.factoryCode,
+ // whCode: session.warehouseCode,
+ // loginName: session.loginName,
+ // });
+ // const locationCodeList = list.map((item: any) => ({
+ // label: item.locationCode,
+ // value: item.locationCode,
+ // }));
+ // return { locationCodeList };
+ // }
+ /**
+ * 获取物料
+ *
+ * @returns
+ * @memberof ReturningModule
+ */
+ @MutationAction
+ async outInfo(poNo: string) {
+ const list: [] = await http.post(url.material.commission.goOut.outInfo, {
+ factoryCode: session.factoryCode,
+ poNo: poNo,
+ loginName: session.loginName,
+ });
+ const locationCodeList = list.map((item: any) => ({
+ label: item.locationCode,
+ value: item.locationCode,
+ }));
+ return { locationCodeList };
+ }
+
+ /**
+ * 提交
+ */
+ @Action
+ async materialComplete(form: any) {
+ const res = await http.post(url.material.commission.goOut.materialComplete, {
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ ...form,
+ });
+ console.log(res, '>>>>>res');
+ }
+
+ /**
+ * 扫条码
+ */
+ @Action
+ async tluSubmit(list: any[]) {
+ const obj = {
+ barcode: list[0].barCode,
+ loginName: session.loginName,
+ };
+ let oneMaterielDetail: any = {};
+ const { data }: any = await http.post(url.outbound.stoOutbound.checkScan, obj);
+ console.log('shneme a ', data.records);
+ oneMaterielDetail = data.records[0];
+ data.records[0].materialCode = list[0].productCode;
+ data.records[0].materialDesc = list[0].productDescZh;
+ console.log('aaaaa', oneMaterielDetail);
+ return oneMaterielDetail;
+ }
+ /**
+ * 确认按钮
+ * @param orderNo
+ */
+ @MutationAction
+ async confirm(list: any[]) {
+ const { code, data } = await http.post(url.outbound.stoOutbound.Bookkeeping, list);
+ console.log('res数据', data, code);
+ // if (code == '1') {
+ // uni.showToast({ icon: 'success', title: msg });
+ // } else {
+ // uni.showToast({ icon: 'none', title: msg });
+ // }
+ const materielList: any = [];
+ return { code, materielList };
+ }
+ //委外出库 关闭订单
+ @MutationAction
+ async closeCode(poNo: any) {
+ const res: any = await http.post(url.outbound.stoOutbound.close, {
+ poNo,
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ const code: any = res.code;
+ return { code };
+ }
+
+ //委外出库 初始化获取库位
+ // @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ @MutationAction
+ async queryCodeAndWorkAreaCode(content: any) {
+ const res: any = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content);
+ console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', res);
+ const LocList = res;
+ console.log('LocList', LocList);
+ return { LocList };
+ }
+ @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);
+ });
+ return { LocList };
+ }
+ @Action
+ async queryOutsourcing(nxOutCode: any) {
+ const res = await http.post(url.so.soOutbound.findInfoByDN, {
+ nxOutCode,
+ proOutType: 'sp',
+ loginName: session.loginName,
+ factoryCode: session.factoryCode,
+ });
+ return res;
+ }
+
+ @Action
+ async submitOutsourcing(upload: any) {
+ const res = await http.post(url.so.soOutbound.confirm, upload);
+ return res;
+ }
+ //查询明细
+ @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ async querydetaildlist(content: any) {
+ const res: any = await http.post('/wmspda/fg/querySfgListInfoByDnNo/russia', content);
+ console.log('明细》》》》》》》》》', res.list);
+ this.detailedList = res.data;
+ return res;
+ }
+ ContainerCode: any = '';
+ @MutationAction
+ async searchBarcode(params: any) {
+ const res: any = await http.post(url.auth.query.barcode, {
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ barcode: params.barcode,
+ productCode: params.productCode,
+ });
+ const ContainerCode = res.data;
+ return { ContainerCode };
+ }
+}
+
+export default getModule(ReturningModule);
diff --git a/src/utils/page.ts b/src/utils/page.ts
index 3e70b64..42c927b 100644
--- a/src/utils/page.ts
+++ b/src/utils/page.ts
@@ -230,6 +230,17 @@ export const page = {
detail: '/pages/raw/Semi-finished/Semi-finished-rowTransfer/details',
},
},
+ so: {
+ index: '/pages/raw/so/index',
+ spSo: {
+ index: '/pages/raw/so/spSo/index',
+ detail: '/pages/raw/so/spSo/detail',
+ },
+ rawSo: {
+ index: '/pages/raw/so/rawSo/index',
+ detail: '/pages/raw/so/rawSo/detail',
+ },
+ },
LineSide: {
semifinishedTransfer: {
index: '/pages/raw/LineSide/semi-finished-Transfer/index',
diff --git a/src/utils/url.ts b/src/utils/url.ts
index 9008c97..6a50271 100644
--- a/src/utils/url.ts
+++ b/src/utils/url.ts
@@ -142,6 +142,13 @@ export const url = {
enter: '/wmspda/material/orderin/enterPoEub',
},
},
+ so: {
+ soOutbound: {
+ findInfoByDN: '/wmspda/raw/so/findInfoByDN',
+ confirm: '/wmspda/raw/so/confirm',
+ },
+ soInbound: {},
+ },
//出库
outbound: {
stoOutbound: {