diff --git a/src/i18n/lang/cn.ts b/src/i18n/lang/cn.ts index 531d313..0d61bc4 100644 --- a/src/i18n/lang/cn.ts +++ b/src/i18n/lang/cn.ts @@ -240,6 +240,9 @@ export default { Relocation: '成品移库', Scrap: '成品报废', CollectionAndBorrowing: '成品领用借用', + FgTransfer: '成品移库-Vn', + FgScrap: '成品报废-Vn', + FgCostCenter: '成品成本中心-Vn', Inventory: '成品盘点', raw_Inventory: '原材料盘点', Transfer: '移库码', @@ -253,6 +256,9 @@ export default { RowScrap: '原材料报废', RowRelocation: '原材料移库', RowCollectionAndBorrowing: '原材料领用借用', + RawScrap: '原材料报废-Vn', + RawTransfer: '原材料移库-Vn', + RawConsuming: '原材料成本中心-Vn', InventoryOrderNo: '单号', InventoryMaterielNo: '物料号', InventoryMateriel: '物料名', diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts index 4a24849..79e3894 100644 --- a/src/i18n/lang/en.ts +++ b/src/i18n/lang/en.ts @@ -240,6 +240,9 @@ export default { Relocation: 'FG transfer', Scrap: 'FG scrap', CollectionAndBorrowing: 'FG cost center', + FgTransfer: 'FG transfer-Vn', + FgScrap: 'FG scrap-Vn', + FgCostCenter: 'FG cost center-Vn', Inventory: 'FG PSV', raw_Inventory: 'Raw Inventory', Transfer: 'Code', @@ -253,6 +256,9 @@ export default { RowScrap: 'RAW scrap', RowRelocation: 'RAW transfer', RowCollectionAndBorrowing: 'RAW cost center', + RawScrap: 'RAW scrap-Vn', + RawTransfer: 'RAW transfer-Vn', + RawConsuming: 'RAW cost center-Vn', InventoryOrderNo: 'Order', InventoryMaterielNo: 'MAT code', InventoryMateriel: 'MAT name', diff --git a/src/i18n/lang/ru.ts b/src/i18n/lang/ru.ts index e6ec751..30e3b14 100644 --- a/src/i18n/lang/ru.ts +++ b/src/i18n/lang/ru.ts @@ -252,6 +252,8 @@ export default { SemiProductZC: 'Перемещение полуфабрикатов на хранение', RowScrap: 'Брак сырья', RowRelocation: 'Передача сырья', + RawScrap: 'Брак сырья-Vn', + RawTransfer: 'Передача сырья-Vn', RowCollectionAndBorrowing: 'Заимствование сырья', InventoryOrderNo: 'Номер заказа', InventoryMaterielNo: 'Номер материала', diff --git a/src/pages.json b/src/pages.json index d932bf7..d762d5f 100644 --- a/src/pages.json +++ b/src/pages.json @@ -114,6 +114,30 @@ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 } }, + { + "path": "pages/product/warehouse/fgScrap/index", + "style": { + "navigationBarTitleText": "成品报废",//越南工厂 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/product/warehouse/fgConsuming/index", + "style": { + "navigationBarTitleText": "成品领用",//越南工厂 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/product/warehouse/fgTransfer/index", + "style": { + "navigationBarTitleText": "成品移库",//越南工厂 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, { "path": "pages/product/warehouse/wholeLnventory/index", "style": { @@ -330,6 +354,30 @@ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 } }, + { + "path": "pages/raw/warehouse/rawTransfer/index", + "style": { + "navigationBarTitleText": "越南移库",//越南移库,包含跨工厂移库业务 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/raw/warehouse/rawScrap/index", + "style": { + "navigationBarTitleText": "报废",//越南报废,不包含目标库位 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/raw/warehouse/rawConsuming/index", + "style": { + "navigationBarTitleText": "成本中心",//越南工厂 + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, { "path": "pages/raw/warehouse/Container-consolidation/index", "style": { diff --git a/src/pages/product/warehouse/fgConsuming/config.ts b/src/pages/product/warehouse/fgConsuming/config.ts new file mode 100644 index 0000000..f7d0f8a --- /dev/null +++ b/src/pages/product/warehouse/fgConsuming/config.ts @@ -0,0 +1,48 @@ +/** + * 成品领用借用详细列表 + */ +import vm from '@/main'; +export const headers = [ + //条码号 + { + label: vm.$t('message.product_barCode'), + key: 'barCode', + width: 300, + }, + //单号 + { + label: vm.$t('message.borrow_OrderNo'), + key: 'proMoveCode', + width: 300, + }, + //型号编码 + { + label: vm.$t('message.ModelCode'), + key: 'materialCode', + width: 300, + }, + //型号名称 + { + label: vm.$t('message.ModelName'), + key: 'materialDesc', + width: 300, + }, + //源库位 + { + label: vm.$t('message.SourceLocation'), + key: 'wlFromCode', + width: 300, + }, + //目标库位 + { + label: vm.$t('message.Warehouse_TargetLocation'), + key: 'wlToCode', + width: 300, + }, + // //操作时间 + { + label: vm.$t('message.operatingTime'), + key: 'moveTime', + width: 300, + }, +]; diff --git a/src/pages/product/warehouse/fgConsuming/detail.vue b/src/pages/product/warehouse/fgConsuming/detail.vue new file mode 100644 index 0000000..8c4eedc --- /dev/null +++ b/src/pages/product/warehouse/fgConsuming/detail.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/pages/product/warehouse/fgConsuming/index.vue b/src/pages/product/warehouse/fgConsuming/index.vue new file mode 100644 index 0000000..8ff0c64 --- /dev/null +++ b/src/pages/product/warehouse/fgConsuming/index.vue @@ -0,0 +1,379 @@ + + + diff --git a/src/pages/product/warehouse/fgConsuming/model.ts b/src/pages/product/warehouse/fgConsuming/model.ts new file mode 100644 index 0000000..4d8caf8 --- /dev/null +++ b/src/pages/product/warehouse/fgConsuming/model.ts @@ -0,0 +1,195 @@ +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 { page } from '@/utils/page'; + +class OrderInInfo { + productDescZh?: string; + qty?: string; + custCode?: string; + custCodeName?: string; + productCode?: string; + locCode?: string; + costCenter?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'product.warehouse.wholeCollect', +}) +export class wholeCollect extends VuexModule { + /** + * 库位地点列表 + */ + WlList = []; + code: any = ''; + delCode: any = ''; + recordsList: any = []; + choiceCodeList: any = []; + materielList: any = []; + /** + * 物料型号类型 + */ + // modelType = [ + // { label: '内销', value: '0' }, + // { label: '外销', value: '1' }, + // { label: '样机', value: '2' }, + // { label: '半成品', value: '4' }, + // ]; + /** + * 隐藏看单号 + */ + dnNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + + // /** + // * 更新看单明细库位 + // * @param kw 库位 + // */ + // @Mutation + // updateOrderInInfoListKw(kw: string) { + // this.orderInInfoList = this.orderInInfoList.map((item) => { + // item.kw = kw; + // return item; + // }); + // } + + /** + * 查询库位列表 + */ + @MutationAction + async queryLocationFgConsuming() { + const result: any = await http.get(url.warehouse.wholeTransfer.list, { + params: { + factoryCode: session.factoryCode, + loginName: session.loginName, + }, + }); + // console.log('库位数据',result) + const WlList = result.data.map((_: any) => ({ + label: _.locationCode, + value: _.locationCode, + })); + return { WlList }; + } + + @MutationAction + async queryConsumingInfoFg(param: any) { + const res: any = await http.post(url.warehouse.manualOrder.list, param); + const code = res.code; + console.log('res', res); + const recordsList = res.data.records; + const choiceCodeList = []; + recordsList.forEach((item: any) => { + const arr: any = {}; + arr.label = item.productCode; + arr.value = item.productCode; + choiceCodeList.push(arr); + }); + console.log('choiceCodeList', choiceCodeList); + return { code, recordsList, choiceCodeList }; + } + /** + * 查询单号 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async getProductCode(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.content, params); + const orderInInfo = res.data.records[0]; + const code = res.code; + return { code, orderInInfo }; + } + //退扫 + @MutationAction + async codeDel(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.del, params); + const delCode = res.code; + return { delCode }; + } + @MutationAction + async consumingConfirmFg(list: any[]) { + const records: any = await http.post(url.warehouse.manualOrder.confirmFg, list); + const code = records.code; + return { code }; + } + // /** + // * 提交看单明细 + // */ + // @MutationAction + // async submitOrderInEnter() { + // const list = (this.state as any).orderInInfoList.map((item: any) => { + // item.orderStatus = item.checked ? '2' : '1'; + // item.requestAmount = item.checked ? item.y : '0'; + // return item; + // }); + // const result: any = await http.post(url.material.DNorderin.enter, { + // dnNo: this.dnNo, + // factoryCode: '1999', + // loginName: '1999', + // 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', { + loginName: session.loginName, + warehouseCode: '', + factoryCode: session.factoryCode, + locationCode: kw, + }); + return kw; + } + /** + * 查询明细 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async queryDetailed(proMoveCode: any) { + const { code, data } = await http.post(url.warehouse.rowTransfer.queryListByMoveCode, { + proMoveCode, + factoryCode: session.factoryCode as string, + loginName: session.loginName as string, + }); + const materielList = data; + return { materielList, code }; + } + /** + * 关单 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async close(proMoveCode: any) { + const { code } = await http.post(url.warehouse.rowTransfer.close, { + factoryCode: session.factoryCode as string, + loginName: session.loginName as string, + proMoveCode, + }); + //const materielList = data; + return { code }; + } +} + +export default getModule(wholeCollect); diff --git a/src/pages/product/warehouse/fgScrap/config.ts b/src/pages/product/warehouse/fgScrap/config.ts new file mode 100644 index 0000000..6f5c7c1 --- /dev/null +++ b/src/pages/product/warehouse/fgScrap/config.ts @@ -0,0 +1,48 @@ +/** + * 成品报废详细列表 + */ +import vm from '@/main'; +export const headers = [ + //条码号 + { + label: vm.$t('message.product_barCode'), + key: 'barCode', + width: 300, + }, + //单号 + { + label: vm.$t('message.Scrap_ScrapNo'), + key: 'proMoveCode', + width: 300, + }, + //型号编码 + { + label: vm.$t('message.ModelCode'), + key: 'materialCode', + width: 300, + }, + //型号名称 + { + label: vm.$t('message.ModelName'), + key: 'materialDesc', + width: 300, + }, + //源库位 + { + label: vm.$t('message.SourceLocation'), + key: 'wlFromCode', + width: 300, + }, + //目标库位 + { + label: vm.$t('message.Warehouse_TargetLocation'), + key: 'wlToCode', + width: 300, + }, + // //操作时间 + { + label: vm.$t('message.operatingTime'), + key: 'moveTime', + width: 300, + }, +]; diff --git a/src/pages/product/warehouse/fgScrap/detail.vue b/src/pages/product/warehouse/fgScrap/detail.vue new file mode 100644 index 0000000..67289ef --- /dev/null +++ b/src/pages/product/warehouse/fgScrap/detail.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/pages/product/warehouse/fgScrap/index.vue b/src/pages/product/warehouse/fgScrap/index.vue new file mode 100644 index 0000000..d0524e0 --- /dev/null +++ b/src/pages/product/warehouse/fgScrap/index.vue @@ -0,0 +1,417 @@ + + + + + diff --git a/src/pages/product/warehouse/fgScrap/model.ts b/src/pages/product/warehouse/fgScrap/model.ts new file mode 100644 index 0000000..8ba6be3 --- /dev/null +++ b/src/pages/product/warehouse/fgScrap/model.ts @@ -0,0 +1,201 @@ +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 { page } from '@/utils/page'; + +class OrderInInfo { + productDescZh?: string; + qty?: string; + custCode?: string; + custCodeName?: string; + productCode?: string; + locCode?: string; + barcode?: string; + costCenter?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'product.warehouse.wholeScrap', +}) +export class wholeScrap extends VuexModule { + /** + * 库位地点列表 + */ + WlList = []; + code: any = ''; + delCode: any = ''; + recordsList: any = []; + choiceCodeList: any = []; + materielList: any = []; + /** + * 物料型号类型 + */ + // modelType = [ + // { label: '内销', value: '0' }, + // { label: '外销', value: '1' }, + // { label: '样机', value: '2' }, + // { label: '半成品', value: '4' }, + // ]; + /** + * 隐藏看单号 + */ + dnNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + + // /** + // * 更新看单明细库位 + // * @param kw 库位 + // */ + // @Mutation + // updateOrderInInfoListKw(kw: string) { + // this.orderInInfoList = this.orderInInfoList.map((item) => { + // item.kw = kw; + // return item; + // }); + // } + + /** + * 查询库位列表 + */ + @MutationAction + async queryLocationFgScrap() { + const result: any = await http.get(url.warehouse.wholeTransfer.list, { + params: { + // factoryCode: '1999', + factoryCode: session.factoryCode, + loginName: session.loginName, + // loginName: '1999', + }, + }); + // console.log('库位数据',result) + const WlList = result.data.map((_: any) => ({ + label: _.locationCode, + value: _.locationCode, + })); + return { WlList }; + } + + /** + * 查询单号 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async getProductCode(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.content, params); + const orderInInfo = res.data.records[0]; + const code = res.code; + return { code, orderInInfo }; + } + //退扫 + @MutationAction + async codeDel(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.del, params); + const delCode = res.code; + return { delCode }; + } + @MutationAction + async scrapConfirmFg(list: any) { + const records: any = await http.post(url.warehouse.manualOrder.confirmFg, list); + const code = records.code; + return { code }; + } + /** + * 查询明细 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async queryDetailed(proMoveCode: any) { + const { code, data } = await http.post(url.warehouse.rowTransfer.queryListByMoveCode, { + proMoveCode, + factoryCode: session.factoryCode as string, + loginName: session.loginName as string, + }); + const materielList = data; + return { materielList, code }; + } + /** + * 关单 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async close(proMoveCode: any) { + const { code } = await http.post(url.warehouse.rowTransfer.close, { + factoryCode: session.factoryCode as string, + loginName: session.loginName as string, + proMoveCode, + }); + //const materielList = data; + return { code }; + } + + @MutationAction + async queryScrapInfoFg(param: any) { + const res: any = await http.post(url.warehouse.manualOrder.list, param); + const code = res.code; + console.log('res', res); + const recordsList = res.data.records; + const choiceCodeList = []; + recordsList.forEach((item: any) => { + const arr: any = {}; + arr.label = item.productCode; + arr.value = item.productCode; + choiceCodeList.push(arr); + }); + console.log('choiceCodeList', choiceCodeList); + return { code, recordsList, choiceCodeList }; + } + // /** + // * 提交看单明细 + // */ + // @MutationAction + // async submitOrderInEnter() { + // const list = (this.state as any).orderInInfoList.map((item: any) => { + // item.orderStatus = item.checked ? '2' : '1'; + // item.requestAmount = item.checked ? item.y : '0'; + // return item; + // }); + // const result: any = await http.post(url.material.DNorderin.enter, { + // dnNo: this.dnNo, + // factoryCode: '1999', + // loginName: '1999', + // 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', { + loginName: session.loginName, + // loginName: '1999', + warehouseCode: '', + factoryCode: session.factoryCode, + // factoryCode: '1999', + locationCode: kw, + }); + return kw; + } +} + +export default getModule(wholeScrap); diff --git a/src/pages/product/warehouse/fgTransfer/Local-details.vue b/src/pages/product/warehouse/fgTransfer/Local-details.vue new file mode 100644 index 0000000..c792ac9 --- /dev/null +++ b/src/pages/product/warehouse/fgTransfer/Local-details.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/pages/product/warehouse/fgTransfer/config.ts b/src/pages/product/warehouse/fgTransfer/config.ts new file mode 100644 index 0000000..be213a0 --- /dev/null +++ b/src/pages/product/warehouse/fgTransfer/config.ts @@ -0,0 +1,214 @@ +/** + * 拣配查询表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Pi_OrderNo'), + key: 'prdOrder', + width: 550, + }, +]; + +/** + * 拣配查询结果表格列 + */ +export const resultHeaders = [ + { + label: vm.$t('message.po_MaterielNo'), + key: 'materialCode', + width: 220, + }, + { + label: vm.$t('message.po_DemandQuantity'), + key: 'amount', + }, + { + label: vm.$t('message.Pi_CumulativePickingQuantity'), + key: 'totalMoAmount', + width: 300, + }, + { + label: vm.$t('message.Pi_HandoverQuantity'), + key: 'totalHvAmount', + }, + { + label: vm.$t('message.Pi_factory'), + key: 'sapFactoryCode', + }, + { + label: vm.$t('message.Pi_Station'), + key: 'sendSpot', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'materialDesc', + width: 350, + }, + { + label: 'MRP', + key: 'mrpCode', + }, + { + label: vm.$t('message.Pi_unit'), + key: 'unit', + }, + { + label: vm.$t('message.Pi_OrderNo'), + key: 'prdOrder', + }, + { + label: vm.$t('message.Pi_FinishedProductModel'), + key: 'prdMaterialDesc', + width: 300, + }, + { + label: vm.$t('message.po_Location'), + key: 'wkposCode', + }, +]; + +/** + * 汇总拣配表格列 + */ +export const summaryHeaders = [ + { + label: vm.$t('message.po_MaterielNo'), + key: 'materialCode', + width: 220, + }, + { + label: vm.$t('message.po_DemandQuantity'), + key: 'amount', + }, + { + label: vm.$t('message.Pi_CurrentPickingQuantity'), + key: 'currentAmount', + width: 300, + }, + { + label: vm.$t('message.Pi_PickedQuantity'), + key: 'totalMoAmount', + }, + { + label: vm.$t('message.Pi_QuantityHandedOver'), + key: 'totalHvAmount', + }, + { + label: vm.$t('message.po_Location'), + // key: 'currentWkposCode', + key: 'wkposCode', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'materialDesc', + width: 350, + }, + { + label: vm.$t('message.Pi_unit'), + key: 'unit', + }, + // { + // label: '成品型号', + // key: 'prdMaterialDesc', + // width: 300, + // }, + // { + // label: '工位', + // key: 'sendSpot', + // }, + // { + // label: '工厂', + // key: 'sapFactoryCode', + // }, +]; + +/** + * 按单拣配表格列 + */ +export const orderHeaders = [ + { + label: vm.$t('message.po_MaterielNo'), + key: 'materialCode', + width: 220, + }, + { + label: vm.$t('message.po_DemandQuantity'), + key: 'amount', + }, + { + label: vm.$t('message.Pi_CurrentPickingQuantity'), + key: 'currentAmount', + width: 300, + }, + { + label: vm.$t('message.Pi_PickedQuantity'), + key: 'totalMoAmount', + }, + { + label: vm.$t('message.Pi_QuantityHandedOver'), + key: 'totalHvAmount', + }, + { + label: vm.$t('message.po_Location'), + // key: 'currentWkposCode', + key: 'wkposCode', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'materialDesc', + width: 350, + }, + { + label: vm.$t('message.Pi_unit'), + key: 'unit', + }, + { + label: vm.$t('message.Pi_FinishedProductModel'), + key: 'prdMaterialDesc', + width: 300, + }, + { + label: vm.$t('message.Pi_factory'), + key: 'sapFactoryCode', + }, + { + label: vm.$t('message.Pi_Station'), + key: 'sendSpot', + }, + { + label: vm.$t('message.Pi_OrderNo'), + key: 'prdOrder', + }, +]; + +export const Headers = [ + { + label: vm.$t('message.product_barCode'), + key: 'barCode', //条码 + width: 220, + }, + { + label: vm.$t('message.transfer_barcode'), + key: 'proMoveCode', //移库批次 + }, + { + label: vm.$t('message.Product_code'), + key: 'materialCode', //产品编码 + width: 300, + }, + // { + // label: vm.$t('message.Access_type'), + // key: 'oiType', //出入类型 + // }, + //源库位 + { + label: vm.$t('message.SourceLocation'), + key: 'wlFromCode', + width: 300, + }, + { + label: vm.$t('message.Warehouse_TargetLocation'), + key: 'wlToCode', //库位 + }, +]; diff --git a/src/pages/product/warehouse/fgTransfer/index.vue b/src/pages/product/warehouse/fgTransfer/index.vue new file mode 100644 index 0000000..cf3a652 --- /dev/null +++ b/src/pages/product/warehouse/fgTransfer/index.vue @@ -0,0 +1,369 @@ + + + diff --git a/src/pages/product/warehouse/fgTransfer/model.ts b/src/pages/product/warehouse/fgTransfer/model.ts new file mode 100644 index 0000000..b8a8480 --- /dev/null +++ b/src/pages/product/warehouse/fgTransfer/model.ts @@ -0,0 +1,202 @@ +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'; +// import { page } from '@/utils/page'; + +class OrderInInfo { + productDescZh?: string; + qty?: string; + custCode?: string; + custCodeName?: string; + productCode?: string; + locCode?: string; + barcode?: string; + // actualQty?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'product.warehouse.wholeTransfer', +}) +export class wholeTransfer extends VuexModule { + /** + * 库位地点列表 + */ + WlList = []; + userDefined: any = ''; + detailedList: any; + code = ''; + delCode = ''; + removeList: any = []; + removeMaterialList: any = []; + /** + * 物料型号类型 + */ + // modelType = [ + // { label: '内销', value: '0' }, + // { label: '外销', value: '1' }, + // { label: '样机', value: '2' }, + // { label: '半成品', value: '4' }, + // ]; + /** + * 隐藏看单号 + */ + dnNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + + // /** + // * 更新看单明细库位 + // * @param kw 库位 + // */ + // @Mutation + // updateOrderInInfoListKw(kw: string) { + // this.orderInInfoList = this.orderInInfoList.map((item) => { + // item.kw = kw; + // return item; + // }); + // } + + /** + * 查询库位列表 + */ + @MutationAction + async queryLocationFgTransfer() { + const result: any = await http.get(url.warehouse.wholeTransfer.list, { + params: { + factoryCode: session.factoryCode, + loginName: session.loginName, + }, + }); + console.log('库位数据', result); + const WlList = result.data.map((_: any) => ({ + label: _.locationCode, + value: _.locationCode, + })); + return { WlList }; + } + + /** + * 查询单号 + * 查询DN单号 + * @param dnNo + */ + @MutationAction + async getProductCode(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.content, params); + const code = res.code; + const orderInInfo = res.data.records[0]; + if (orderInInfo.custCode == '0') { + orderInInfo.custCodeName = vm.$t('message.Warehouse_NX') as any; + } else if (orderInInfo.custCode == '1') { + orderInInfo.custCodeName = vm.$t('message.Warehouse_WX') as any; + } else if (orderInInfo.custCode == '2') { + orderInInfo.custCodeName = vm.$t('message.Warehouse_YJ') as any; + } else if (orderInInfo.custCode == '4') { + orderInInfo.custCodeName = vm.$t('message.Warehouse_BCP') as any; + } + return { orderInInfo, code }; + } + //退扫 + @MutationAction + async codeDel(params: any) { + const res: any = await http.post(url.warehouse.wholeTransfer.del, params); + const delCode = res.code; + return { delCode }; + } + //清除数据 + @MutationAction + async empty() { + const orderInInfo: any = []; + // const userDefined = ''; + // const WlList = []; + const code = ''; + return { orderInInfo, code }; + } + @MutationAction + async transferConfirmFg(list: any) { + const records: any = await http.post(url.warehouse.manualOrder.confirmFg, list); + const code = records.code; + return { code }; + } + //生成移库码 + @MutationAction + async getTransferNo(loginName: any) { + const res: any = await http.post(url.warehouse.rowTransfer.getCode, loginName); + const userDefined: any = res.data; + return { userDefined }; + } + //查询已扫物料 + @MutationAction + async QueryHistory(params: any = {}) { + const res: any = await http.post(url.warehouse.rowTransfer.queryGroupLis, params); + const removeList: any = res.data; + const removeMaterialList: any = []; + res.data.forEach((item: any) => { + const arr: any = { + value: item.materialCode, + laber: item.materialCode, + }; + removeMaterialList.push(arr); + }); + return { removeList, removeMaterialList }; + } + //查询明细 + @Action({ commit: 'updateCheckedOrderInInfoListKw' }) + async querydetaildlist(content: any) { + const res: any = await http.post('/wmspda/fg/queryListByMoveCode', content); + console.log('明细》》》》》》》》》', res.list); + this.detailedList = res.data; + return res; + } + // /** + // * 提交看单明细 + // */ + // @MutationAction + // async submitOrderInEnter() { + // const list = (this.state as any).orderInInfoList.map((item: any) => { + // item.orderStatus = item.checked ? '2' : '1'; + // item.requestAmount = item.checked ? item.y : '0'; + // return item; + // }); + // const result: any = await http.post(url.material.DNorderin.enter, { + // dnNo: this.dnNo, + // factoryCode: '1999', + // loginName: '1999', + // 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', { + loginName: session.loginName, + // loginName: '1999', + warehouseCode: '', + factoryCode: session.factoryCode, + // factoryCode: '1999', + locationCode: kw, + }); + return kw; + } +} + +export default getModule(wholeTransfer); diff --git a/src/pages/raw/warehouse/rawConsuming/config.ts b/src/pages/raw/warehouse/rawConsuming/config.ts new file mode 100644 index 0000000..e766571 --- /dev/null +++ b/src/pages/raw/warehouse/rawConsuming/config.ts @@ -0,0 +1,45 @@ +/** + * 看单交接明细表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Warehouse_OrderNo'), + key: 'orderNo', + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielNo'), + key: 'productCode', + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'productDescZh', + width: 350, + }, + { + label: vm.$t('message.dn_Number'), + key: 'qty', + }, + { + label: vm.$t('message.Warehouse_OriginalLocation'), + key: 'originWl', + }, + { + label: vm.$t('message.product_costCenter'), + key: 'costCenter', + }, + // { + // label: '库存地点', + // key: 'wkposCode', + // }, + // { + // label: '校验状态', + // key: 'checkResult', + // }, + // { + // label: '看单号', + // key: 'kdOrderNo', + // }, +]; diff --git a/src/pages/raw/warehouse/rawConsuming/details.vue b/src/pages/raw/warehouse/rawConsuming/details.vue new file mode 100644 index 0000000..0ce75b2 --- /dev/null +++ b/src/pages/raw/warehouse/rawConsuming/details.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/pages/raw/warehouse/rawConsuming/index.vue b/src/pages/raw/warehouse/rawConsuming/index.vue new file mode 100644 index 0000000..a8e3010 --- /dev/null +++ b/src/pages/raw/warehouse/rawConsuming/index.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/pages/raw/warehouse/rawConsuming/model.ts b/src/pages/raw/warehouse/rawConsuming/model.ts new file mode 100644 index 0000000..cfa3eb9 --- /dev/null +++ b/src/pages/raw/warehouse/rawConsuming/model.ts @@ -0,0 +1,80 @@ +import { getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators'; +import store from '@/store'; +import http from '@/utils/request'; +import { url } from '@/utils/url'; +// import { page } from '@/utils/page' +import { session } from '@/store/modules/session'; +import vm from '@/main'; + +class OrderInInfo { + checked?: boolean; + poNo?: string; + kw?: string; + userDefined10?: string; + orderStatus?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'raw.warehouse.rowCollect', +}) +export class rowCollect extends VuexModule { + /** + * sap库存地点列表 + */ + cboPlaceList = []; + /** + * 隐藏看单号 + */ + poNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + /** + * 看单明细 + */ + orderInInfoList: OrderInInfo[] = []; + code: any = ''; + /** + * 看单明细未通过明细 + */ + // orderInInfoListEx: OrderInInfo[] = []; + + /** + // * 查询看单号 + * @param poNo + */ + @MutationAction + async queryConsumingInfoRaw(order3: any) { + try { + const records: any = await http.post(url.warehouse.manualOrder.list, { + ...order3, + orderType: 'LY', + orderSourceSys: 'RAW', + page: 1, + rows: 50, + factoryCode: session.factoryCode, + loginName: session.loginName, + }); + const orderInInfoList = records.data.records; + const code = records.code; + console.log('获取来的数据', orderInInfoList); + return { orderInInfoList, code }; + } catch { + //uni.showToast({ icon: 'none', title: vm.$t('message.Warehouse_Tip11') as any }); + vm.customToast(vm.$t('message.Warehouse_Tip11') as any); + } + } + + @MutationAction + async consumingConfirmRaw(list: any) { + const records: any = await http.post(url.warehouse.manualOrder.confirmRaw, list); + const code = records.code; + return { code }; + } +} + +export default getModule(rowCollect); diff --git a/src/pages/raw/warehouse/rawScrap/config.ts b/src/pages/raw/warehouse/rawScrap/config.ts new file mode 100644 index 0000000..0815c81 --- /dev/null +++ b/src/pages/raw/warehouse/rawScrap/config.ts @@ -0,0 +1,53 @@ +/** + * 看单交接明细表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Warehouse_OrderNo'), + key: 'orderNo', + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielNo'), + key: 'productCode', + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'productDescZh', + width: 350, + }, + { + label: vm.$t('message.dn_Number'), + key: 'qty', + }, + { + label: vm.$t('message.Warehouse_OriginalLocation'), + key: 'originWl', + }, + { + label: vm.$t('message.Warehouse_TargetLocation'), + key: 'aimWl', + }, + { + label: vm.$t('message.product_costCenter'), + key: 'costCenter', + }, + { + label: vm.$t('message.DocumentNumber'), + key: 'fileNo', + }, + // { + // label: '库存地点', + // key: 'wkposCode', + // }, + // { + // label: '校验状态', + // key: 'checkResult', + // }, + // { + // label: '看单号', + // key: 'kdOrderNo', + // }, +]; diff --git a/src/pages/raw/warehouse/rawScrap/details.vue b/src/pages/raw/warehouse/rawScrap/details.vue new file mode 100644 index 0000000..fdb5894 --- /dev/null +++ b/src/pages/raw/warehouse/rawScrap/details.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/pages/raw/warehouse/rawScrap/index.vue b/src/pages/raw/warehouse/rawScrap/index.vue new file mode 100644 index 0000000..bef2f80 --- /dev/null +++ b/src/pages/raw/warehouse/rawScrap/index.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/src/pages/raw/warehouse/rawScrap/model.ts b/src/pages/raw/warehouse/rawScrap/model.ts new file mode 100644 index 0000000..2a3b911 --- /dev/null +++ b/src/pages/raw/warehouse/rawScrap/model.ts @@ -0,0 +1,80 @@ +import { getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators'; +import store from '@/store'; +import http from '@/utils/request'; +import { url } from '@/utils/url'; +// import { page } from '@/utils/page'; +import { session } from '@/store/modules/session'; +import vm from '@/main'; + +class OrderInInfo { + checked?: boolean; + poNo?: string; + kw?: string; + userDefined10?: string; + orderStatus?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'raw.warehouse.rowScrap', +}) +export class rowScrap extends VuexModule { + /** + * sap库存地点列表 + */ + cboPlaceList = []; + /** + * 隐藏看单号 + */ + poNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + /** + * 看单明细 + */ + orderInInfoList: OrderInInfo[] = []; + code: any = ''; + /** + * 看单明细未通过明细 + */ + // orderInInfoListEx: OrderInInfo[] = []; + + /** + // * 查询看单号 + * @param poNo + */ + @MutationAction + async queryScrapInfoRaw(order3: any) { + try { + const records: any = await http.post(url.warehouse.manualOrder.list, { + ...order3, + orderType: 'BF', + orderSourceSys: 'RAW', + page: 1, + rows: 50, + factoryCode: session.factoryCode, + loginName: session.loginName, + }); + const orderInInfoList = records.data.records; + const code = records.code; + console.log('获取来的数据', orderInInfoList); + return { orderInInfoList, code }; + } catch { + //uni.showToast({ icon: 'none', title: vm.$t('message.Warehouse_Tip11') as any }); + vm.customToast(vm.$t('message.Warehouse_Tip11') as any); + } + } + + @MutationAction + async scrapConfirmRaw(list: any) { + const records: any = await http.post(url.warehouse.manualOrder.confirmRaw, list); + const code = records.code; + return { code }; + } +} + +export default getModule(rowScrap); diff --git a/src/pages/raw/warehouse/rawTransfer/config.ts b/src/pages/raw/warehouse/rawTransfer/config.ts new file mode 100644 index 0000000..aff8f73 --- /dev/null +++ b/src/pages/raw/warehouse/rawTransfer/config.ts @@ -0,0 +1,41 @@ +/** + * 看单交接明细表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Warehouse_OrderNo'), + key: 'orderNo', //单号 + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielNo'), + key: 'productCode', //物料号 + // width: '15%', + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'productDescZh', //物料描述 + width: 350, + }, + { + label: vm.$t('message.dn_Number'), + key: 'qty', //数量 + }, + { + label: vm.$t('message.Warehouse_OriginalLocation'), + key: 'originWl', //原库位 + }, + { + label: vm.$t('message.Warehouse_TargetLocation'), + key: 'aimWl', //目标库位 + }, + // { + // label: '校验状态', + // key: 'checkResult', + // }, + // { + // label: '看单号', + // key: 'kdOrderNo', + // }, +]; diff --git a/src/pages/raw/warehouse/rawTransfer/details.vue b/src/pages/raw/warehouse/rawTransfer/details.vue new file mode 100644 index 0000000..233c67b --- /dev/null +++ b/src/pages/raw/warehouse/rawTransfer/details.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/raw/warehouse/rawTransfer/index.vue b/src/pages/raw/warehouse/rawTransfer/index.vue new file mode 100644 index 0000000..05abc6e --- /dev/null +++ b/src/pages/raw/warehouse/rawTransfer/index.vue @@ -0,0 +1,221 @@ + + + diff --git a/src/pages/raw/warehouse/rawTransfer/model.ts b/src/pages/raw/warehouse/rawTransfer/model.ts new file mode 100644 index 0000000..345fcd2 --- /dev/null +++ b/src/pages/raw/warehouse/rawTransfer/model.ts @@ -0,0 +1,94 @@ +import { getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators'; +import store from '@/store'; +import http from '@/utils/request'; +import { url } from '@/utils/url'; +// import { page } from '@/utils/page'; +import { session } from '@/store/modules/session'; +import vm from '@/main'; + +class OrderInInfo { + checked?: boolean; + poNo?: string; + kw?: string; + userDefined10?: string; + orderStatus?: string; +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'raw.warehouse.rawTransfer', +}) +export class rawTransfer extends VuexModule { + /** + * sap库存地点列表 + */ + cboPlaceList = []; + /** + * 隐藏看单号 + */ + poNo = ''; + /** + * 看单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + /** + * 看单明细 + */ + orderInInfoList: OrderInInfo[] = []; + materielList = []; + code = ''; + /** + * 看单明细未通过明细 + */ + // orderInInfoListEx: OrderInInfo[] = []; + + /** + // * 查询看单号 + * @param poNo + */ + @MutationAction + async queryTransferInfoRaw(order3: any) { + // console.log('获取来的数据咋啊啊啊'); + try { + const records: any = await http.post(url.warehouse.manualOrder.list, { + ...order3, + orderType: 'YK', + orderSourceSys: 'RAW', + page: 1, + rows: 50, + factoryCode: session.factoryCode, + loginName: session.loginName, + }); + console.log('records', records); + const code = records.code; + const orderInInfoList = records.data.records; + const materielList = orderInInfoList.map((item: any) => ({ + label: item.productCode, + value: item.productCode, + ...item, + })); + console.log('materielList', materielList); + return { orderInInfoList, materielList, code }; + } catch { + //uni.showToast({ icon: 'none', title: vm.$t('message.Warehouse_Tip11') as any }); + vm.customToast(vm.$t('message.Warehouse_Tip11') as any); + } + } + + @MutationAction + async transferConfirmRaw(list: any) { + const records: any = await http.post(url.warehouse.manualOrder.confirmRaw, list); + const code = records.code; + return { code }; + } + //清除数据 + @MutationAction + async empty() { + const materielList = null; + return { materielList }; + } +} + +export default getModule(rawTransfer); diff --git a/src/utils/page.ts b/src/utils/page.ts index e56768b..efe7e49 100644 --- a/src/utils/page.ts +++ b/src/utils/page.ts @@ -63,6 +63,21 @@ export const page = { wholeLnventory: { index: '/pages/product/warehouse/wholeLnventory/index', }, + fgScrap: { + //成品报废 越南工厂 + index: '/pages/product/warehouse/fgScrap/index', + stoOutboundDetail: '/pages/product/warehouse/fgScrap/detail', + }, + fgConsuming: { + //成品领用 越南工厂 + index: '/pages/product/warehouse/fgConsuming/index', + stoOutboundDetail: '/pages/product/warehouse/fgConsuming/detail', + }, + fgTransfer: { + //成品移库 越南工厂 + index: '/pages/product/warehouse/fgTransfer/index', + Local: '/pages/product/warehouse/fgTransfer/Local-details', + }, }, }, raw: { @@ -214,6 +229,18 @@ export const page = { rowInventory: { index: '/pages/raw/warehouse/rowInventory/index', }, + rawTransfer: { + index: '/pages/raw/warehouse/rawTransfer/index', + details: '/pages/raw/warehouse/rawTransfer/details', + }, + rawScrap: { + index: '/pages/raw/warehouse/rawScrap/index', + details: '/pages/raw/warehouse/rawScrap/details', + }, + rawConsuming: { + index: '/pages/raw/warehouse/rawConsuming/index', + details: '/pages/raw/warehouse/rawConsuming/details', + }, }, commission: { index: '/pages/raw/commission/index', diff --git a/src/utils/url.ts b/src/utils/url.ts index 4b7cc5a..bf55c1b 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -301,6 +301,11 @@ export const url = { preScrapSfgConfirm: '/wmspda/fg/preScrapSfgConfirm', preScrapRawConfirm: '/wmspda/fg/preScrapRawConfirm', }, + manualOrder: { + list: '/wmspda/fg/manualOrderInfo', + confirmRaw: '/wmspda/fg/confirmManualRaw', + confirmFg: '/wmspda/fg/confirmManualFg', + }, rowScrap: { list: '/wmspda/fg/listByOrder', },