diff --git a/src/i18n/lang/cn.ts b/src/i18n/lang/cn.ts
index 2cd097f..a9d0ccd 100644
--- a/src/i18n/lang/cn.ts
+++ b/src/i18n/lang/cn.ts
@@ -494,5 +494,6 @@ export default {
AllThem: '请全部出库',
submitted: '还有数据没提交 是否重新查询',
StorageLocation: '入库地点',
+ BCPInventory: '半成品盘点',
},
};
diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts
index 2c441d5..c322392 100644
--- a/src/i18n/lang/en.ts
+++ b/src/i18n/lang/en.ts
@@ -494,5 +494,6 @@ export default {
AllThem: 'All of them, please',
submitted: 'There is data not submitted whether to re-query',
StorageLocation: 'Storage Loc',
+ BCPInventory: 'Inventory',
},
};
diff --git a/src/i18n/lang/ru.ts b/src/i18n/lang/ru.ts
index 7897201..d7d6ee4 100644
--- a/src/i18n/lang/ru.ts
+++ b/src/i18n/lang/ru.ts
@@ -494,5 +494,6 @@ export default {
AllThem: 'Все из библиотеки, пожалуйста',
submitted: 'Есть также данные, которые не были представлены для повторного запроса',
StorageLocation: 'Вход.',
+ BCPInventory: 'инвентаризац',
},
};
diff --git a/src/pages.json b/src/pages.json
index 14b7dee..896e6f1 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -1186,6 +1186,14 @@
"navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
}
},
+ {
+ "path": "pages/raw/Semi-finished/Semi-finished-inventory/index",
+ "style": {
+ "navigationBarTitleText": "半成品盘点",
+ "navigationStyle": "custom", // 隐藏系统导航栏
+ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
+ }
+ },
{
"path": "pages/demo/index",
"style": {
diff --git a/src/pages/raw/Semi-finished/Semi-finished-inventory/index.vue b/src/pages/raw/Semi-finished/Semi-finished-inventory/index.vue
new file mode 100644
index 0000000..97ae3bc
--- /dev/null
+++ b/src/pages/raw/Semi-finished/Semi-finished-inventory/index.vue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+ {{ $t('message.Query') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('message.workArea_Confirm') }}
+
+
+ {{ $t('message.InventoryFinish') }}
+
+
+ {{ $t('message.po_Return') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/raw/Semi-finished/Semi-finished-inventory/model.ts b/src/pages/raw/Semi-finished/Semi-finished-inventory/model.ts
new file mode 100644
index 0000000..bfd6ae5
--- /dev/null
+++ b/src/pages/raw/Semi-finished/Semi-finished-inventory/model.ts
@@ -0,0 +1,307 @@
+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';
+
+class OrderInInfo {
+ checked?: boolean;
+ dnNo?: string;
+ kw?: string;
+ userDefined10?: string;
+ orderStatus?: string;
+ carNo?: string;
+ bookingTime?: string;
+ supplyCode?: string;
+ poType?: string;
+ location?: string;
+}
+
+@Module({
+ namespaced: true,
+ dynamic: true,
+ store,
+ name: 'raw.ingoods.dnReceipt',
+})
+export class ReceiptModule extends VuexModule {
+ // 是否有
+ isState = true;
+ sendSpot = '';
+ code: any = '';
+ /**
+ * sap库存地点列表
+ */
+ cboPlaceList = [];
+ /**
+ * 隐藏看单号
+ */
+ dnNo = '';
+ /**
+ * 看单号查询结果
+ */
+ orderInInfo: OrderInInfo = new OrderInInfo();
+ /**
+ * 看单明细
+ */
+ orderInInfoList: OrderInInfo[] = [];
+ /**
+ * 看单明细未通过明细
+ */
+ orderInInfoListEx: OrderInInfo[] = [];
+ InventoryList: any = [];
+ InventoryItemList: any = [];
+
+ /**
+ * 库位列表
+ */
+ returningTypeList: any[] = [];
+
+ /**
+ * 是否已查询看单号
+ */
+ get hasDnInfo() {
+ return !!this.orderInInfo.dnNo;
+ }
+
+ /**
+ * 是否全选
+ */
+ get isCheckedAll() {
+ return !this.orderInInfoList.filter((_) => !_.checked).length;
+ }
+
+ /**
+ * 是否有选择项
+ */
+ get hasChecked() {
+ return this.orderInInfoList.filter((_) => _.checked).length > 0;
+ }
+
+ /**
+ * 更新看单明细库位
+ * @param kw 库位
+ */
+ @Mutation
+ updateOrderInInfoListKw(kw: string) {
+ this.orderInInfoList = this.orderInInfoList.map((item) => {
+ item.kw = kw;
+ return item;
+ });
+ }
+
+ /**
+ * 更新选中的看单明细库位
+ * @param kw 库位
+ */
+ @Mutation
+ updateCheckedOrderInInfoListKw(kw: string) {
+ this.orderInInfoList = this.orderInInfoList.map((item) => {
+ if (item.checked) {
+ item.kw = kw;
+ }
+ return item;
+ });
+ }
+
+ /**
+ * 看单明细全选/全不选
+ */
+ @Mutation
+ checkAllOrderInInfoList(checked: boolean) {
+ this.orderInInfoList = this.orderInInfoList.map((item) => {
+ item.checked = checked;
+ return item;
+ });
+ }
+
+ /**
+ * 查询库位列表
+ */
+ @MutationAction
+ async queryLocation() {
+ const result: any = await http.post(url.auth.query.location1, {
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ userDefined3: 1,
+ });
+ console.log('result', result);
+ const cboPlaceList = result.data.records.map((_: any) => ({
+ label: _.sendSpot,
+ value: _.sendSpot,
+ }));
+ return { cboPlaceList };
+ }
+
+ /**
+ * 查询单号
+ * 查询DN单号
+ * @param dnNo
+ */
+ @MutationAction
+ async queryOrderInInfo(dnNo: string) {
+ const { list }: any = await http.post(url.material.DNorderin.info, {
+ dnNo,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ const orderInInfo = list[0] || {};
+ const orderInInfoList = list.filter((_: OrderInInfo) => _.userDefined10 === '1');
+ const orderInInfoListEx = list.filter((_: OrderInInfo) => _.userDefined10 === '0');
+ // orderInInfoList.forEach((item: any) => {
+ // item.receiptAmount = item.requestAmount;
+ // });
+ uni.setStorageSync('sendSpot', JSON.stringify(list[0].sendSpot) as any);
+ return { dnNo, orderInInfo, orderInInfoList, orderInInfoListEx };
+ }
+
+ /**
+ * 查询单号
+ * 查询盘点单号
+ * @param pddNo
+ */
+ @MutationAction
+ async rawMaterialInventoryCheckRaw(pddNo: string) {
+ const res: any = await http.post(url.material.rawMaterialInventory.checkRaw, {
+ pddNo,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ const InventoryList = res.data;
+ const InventoryItemList = [];
+ InventoryList.forEach((item: any) => {
+ const arr = {
+ value: item.productCode,
+ label: item.productCode,
+ };
+ InventoryItemList.push(arr);
+ });
+ return { InventoryList, InventoryItemList };
+ // uni.showToast({
+ // icon: "none",
+ // title: msg,
+ // });
+ }
+
+ /**
+ * 扫描物料号检查
+ *
+ * @param {string} productCode
+ * @param {string} pddNo
+ * @memberof ReceiptModule
+ */
+ @Action
+ async checkRawProductCode(form: any) {
+ const { code, msg }: any = await http.post(url.material.rawMaterialInventory.productCode, {
+ productCode: form.productCode,
+ pddNo: form.pddNo,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ uni.showToast({
+ icon: 'none',
+ title: msg,
+ });
+ console.log('code:::', code, msg);
+ const isState = !!+code;
+ return { isState };
+ }
+ /**
+ * 新增单号、物料信息
+ *
+ * @param {string} productCode
+ * @param {string} pddNo
+ * @memberof ReceiptModule
+ */
+ @Action
+ async checkRawCreateInfo(form: any) {
+ const { msg }: any = await http.post(url.material.rawMaterialInventory.createInfo, {
+ ...form,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ uni.showToast({
+ icon: 'none',
+ title: msg,
+ });
+ }
+
+ /**
+ * 物料盘点确定
+ *
+ * @param {string} productCode
+ * @param {string} pddNo
+ * @memberof ReceiptModule
+ */
+ @MutationAction
+ async checkRawProductComplete(form: any) {
+ const res: any = await http.post(url.material.rawMaterialInventory.productComplete, {
+ ...form,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ const code = res.code;
+ return { code };
+ }
+
+ /**
+ * 物料盘点完成
+ *
+ * @param {string} productCode
+ * @param {string} pddNo
+ * @memberof ReceiptModule
+ */
+ @MutationAction
+ async checkRawOrderComplete(pddNo?: string | null) {
+ const res: any = await http.post(url.material.rawMaterialInventory.orderComplete, {
+ pddNo,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ });
+ const code = res.code;
+ return { code };
+ }
+
+ /**
+ * 提交看单明细
+ */
+ @MutationAction
+ async submitOrderInEnter() {
+ const list = (this.state as any).orderInInfoList.map((item: any) => {
+ item.orderStatus = item.checked ? '2' : '1';
+ return item;
+ });
+ const result: any = await http.post(url.material.DNorderin.enter, {
+ dnNo: this.dnNo,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ list,
+ });
+ uni.showToast({
+ icon: 'none',
+ title: result.msg,
+ });
+ const orderInInfoList = result.list.sort((a: any, b: any) => Number(a.accountingStatus) - Number(b.accountingStatus));
+ return { orderInInfoList };
+ }
+
+ /**
+ * 修改库位
+ */
+ @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ async changeOrderInLocation(kw: string) {
+ await http.post('/wmspda/material/orderin/enter', {
+ warehouseCode: session.warehouseCode,
+ factoryCode: session.factoryCode,
+ loginName: session.loginName,
+ locationCode: kw,
+ });
+ return kw;
+ }
+ @Action({ commit: 'updateCheckedOrderInInfoListKw' })
+ async queryByFactoryCodeAndWorkAreaCode(content: any) {
+ const res = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content);
+ return res;
+ }
+}
+
+export default getModule(ReceiptModule);