From e6b95b867105e7be676510c248638ecb41dd6f87 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期三, 15 一月 2025 13:35:57 +0800 Subject: [PATCH] 优化物料码查询 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs | 6 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs | 29 +++++++ 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue | 47 +++++++++-- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs | 10 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs | 2 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js | 45 +++++++++- 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue | 94 ++++++++++++++++++----- 7 files changed, 197 insertions(+), 36 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" index 7956968..1e93c31 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" @@ -26,26 +26,47 @@ }) return option; }, + formatDate(dateStr) { + let date = new Date(dateStr); + let year = date.getFullYear(); + let month = String(date.getMonth() + 1).padStart(2, "0"); + let day = String(date.getDate()).padStart(2, "0"); + return year + "-" + month + "-" + day; + }, //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛� + let warehouseIdOption = this.getOption("warehouseId"); let materielCodeOption = this.getOption("materielCode"); let purchaseOrderNoOption = this.getOption("purchaseOrderNo"); - purchaseOrderNoOption.onChange = (val, option) => { + warehouseIdOption.onChange=(val,option)=>{ this.editFormFields.materielCode = ""; materielCodeOption.data = []; + this.editFormFields.purchaseOrderNo = ""; + purchaseOrderNoOption.data = []; if (val == null || val == 0) { - return this.$error("璇烽�夋嫨鐗╂枡缂栧彿锛�") + return this.$error("璇烽�夋嫨浠撳簱锛�") } - // console.log(val) - // console.log(option) - this.http.post("/api/PurchaseOrder/GetPurchaseOrderInfo?purchaseOrderNo=" + val, {}, true).then( + this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderDetailMaterielCode?warehouseId=" + val, {}, true).then( source => { if (!source.status) return this.$error(source.message); for (let i = 0; i < source.data.length; i++) { materielCodeOption.data.push({ key: source.data[i], value: source.data[i] }) } - // this.editFormFields.InputOder_itemname = source.data.itemName; - // this.$success(source.data.itemName); + this.refresh(); + }) + } + materielCodeOption.onChange = (val, option) => { + this.editFormFields.purchaseOrderNo = ""; + purchaseOrderNoOption.data = []; + if (val == null || val == 0) { + return this.$error("璇烽�夋嫨鐗╂枡缂栧彿锛�") + } + this.http.post("/api/PurchaseOrderDetail/GetPurchaseOrderNos?materielCode=" + val, {}, true).then( + source => { + if (!source.status) return this.$error(source.message); + for (let i = 0; i < source.data.length; i++) { + purchaseOrderNoOption.data.push({ key: source.data[i], value: source.data[i] }) + } this.refresh(); }) } @@ -99,6 +120,16 @@ //(3)this.editFormFields.瀛楁='xxx'; //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊� //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions) + let isAdd = this.currentAction == 'Add'; + if (isAdd) { + let date = new Date(); + let year = date.getFullYear(); + let month = String(date.getMonth() + 1).padStart(2, "0"); + let day = String(date.getDate()).padStart(2, "0"); + this.editFormFields.lotNo = year + month + day; + this.editFormFields.productionDate = year + "-" + month + "-" + day; + this.editFormFields.effectiveDate = year + 2 + "-" + month + "-" + day; + } } } }; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" index 52349e9..6091790 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" @@ -1,6 +1,12 @@ <template> <div> - <vol-box v-model="showDetialBox" :lazy="true" width="75%" :padding="15" title="鍗曟嵁鏄庣粏淇℃伅"> + <vol-box + v-model="showDetialBox" + :lazy="true" + width="75%" + :padding="15" + title="鍗曟嵁鏄庣粏淇℃伅" + > <div class="box-head"> <el-alert :closable="false" style="width: 100%"> <el-row> @@ -8,27 +14,71 @@ <span>宸查�変腑 {{ selection.length }} 椤�</span> </el-col> <el-col :span="8"> - <el-link type="primary" size="small" style="float: right; height: 20px" @click="lockstocks">閿佸畾搴撳瓨</el-link> - <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px" - @click="outbound">鐩存帴鍑哄簱</el-link> - <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px" - @click="getData">鍒锋柊</el-link></el-col> + <el-link + type="primary" + size="small" + style="float: right; height: 20px" + @click="lockstocks" + >閿佸畾搴撳瓨</el-link + > + <el-link + type="primary" + size="small" + style="float: right; height: 20px; margin-right: 10px" + @click="outbound" + >鐩存帴鍑哄簱</el-link + > + <el-link + type="primary" + size="small" + style="float: right; height: 20px; margin-right: 10px" + @click="getData" + >鍒锋柊</el-link + ></el-col + > </el-row> </el-alert> </div> <div class="box-table" style="margin-top: 1%"> - <el-table ref="singleTable" :data="tableData" style="width: 100%; height: 100%" highlight-current-row - @current-change="handleCurrentChange" height="500px" @row-click="handleRowClick" - @selection-change="handleSelectionChange"> + <el-table + ref="singleTable" + :data="tableData" + style="width: 100%; height: 100%" + highlight-current-row + @current-change="handleCurrentChange" + height="500px" + @row-click="handleRowClick" + @selection-change="handleSelectionChange" + > <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column label="搴忓彿" type="index" fixed="left" width="55" align="center"></el-table-column> - <el-table-column v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" :key="index" :prop="item.prop" - :label="item.title" :width="item.width" align="center"> + <el-table-column + label="搴忓彿" + type="index" + fixed="left" + width="55" + align="center" + ></el-table-column> + <el-table-column + v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" + :key="index" + :prop="item.prop" + :label="item.title" + :width="item.width" + align="center" + > <template #default="scoped"> <div v-if="item.type == 'icon'"> - <el-tooltip class="item" effect="dark" :content="item.title" placement="bottom"><el-link type="primary" - :disabled="getButtonEnable(item.prop, scoped.row)" @click="tableButtonClick(scoped.row, item)"><i - :class="item.icon" style="font-size: 22px"></i></el-link></el-tooltip> + <el-tooltip + class="item" + effect="dark" + :content="item.title" + placement="bottom" + ><el-link + type="primary" + :disabled="getButtonEnable(item.prop, scoped.row)" + @click="tableButtonClick(scoped.row, item)" + ><i :class="item.icon" style="font-size: 22px"></i></el-link + ></el-tooltip> </div> <div v-else-if="item.type == 'tag'"> @@ -42,7 +92,10 @@ </div> </vol-box> <stock-select ref="child" @parentCall="parentCall"></stock-select> - <selected-stock ref="selectedStock" @parentCall="parentCall"></selected-stock> + <selected-stock + ref="selectedStock" + @parentCall="parentCall" + ></selected-stock> </div> </template> <script> @@ -122,7 +175,7 @@ title: "璁㈠崟鏄庣粏鐘舵��", type: "tag", width: 180, - bindKey: "orderDetailStatusEnum" + bindKey: "orderDetailStatusEnum", }, { prop: "assignStock", @@ -285,7 +338,8 @@ if ( row.orderDetailStatus !== 0 && row.orderDetailStatus !== 60 && - row.orderDetailStatus !== 70 + row.orderDetailStatus !== 70 && + row.orderDetailStatus !== 80 ) { return true; } else { @@ -358,12 +412,12 @@ background: oldlace; } -.box-table .el-table tbody tr:hover>td { +.box-table .el-table tbody tr:hover > td { background-color: #d8e0d4 !important; /* color: #ffffff; */ } -.box-table .el-table tbody tr.current-row>td { +.box-table .el-table tbody tr.current-row > td { background-color: #f0f9eb !important; /* color: #ffffff; */ } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" index ed96261..ccadec6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" @@ -27,25 +27,42 @@ sortName: "id", }); const editFormFields = ref({ - purchaseOrderNo:"", - materielCode:"", + lotNo: "", + warehouseId: "", + purchaseOrderNo: "", + materielCode: "", + productionDate: "", + effectiveDate: "", }); const editFormOptions = ref([ [ { - title: "閲囪喘鍗曞彿", - field: "purchaseOrderNo", - type:"select", - dataKey: "purchaseOrderNos", + title: "浠撳簱", + field: "warehouseId", + type: "select", + dataKey: "areainfo", data: [], required: true, }, + ], + [ { title: "鐗╂枡缂栫爜", field: "materielCode", type: "select", - dataKey: "MaterielCodes", + required: true, + // dataKey: "MaterielCodes", data: [], + }, + ], + [ + { + title: "閲囪喘鍗曞彿", + field: "purchaseOrderNo", + type: "select", + // dataKey: "purchaseOrderNos", + data: [], + required: true, }, ], [ @@ -54,6 +71,8 @@ field: "lotNo", required: true, }, + ], + [ { title: "鏁伴噺", field: "quantity", @@ -64,13 +83,15 @@ { title: "鐢熶骇鏃ユ湡", field: "productionDate", - type: "date", + // type: "date", required: true, }, + ], + [ { title: "鏈夋晥鏈�", field: "effectiveDate", - type: "date", + // type: "date", required: true, }, ], @@ -100,6 +121,14 @@ align: "left", }, { + field: "warehouseId", + title: "浠撳簱", + type: "string", + width: 90, + align: "left", + bind: { key: "areainfo", data: [] }, + }, + { field: "purchaseOrderNo", title: "閲囪喘鍗曞彿", type: "string", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" index 2abe5f2..d56094b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" @@ -12,5 +12,7 @@ { public interface IPurchaseOrderDetailService : IService<Dt_PurchaseOrderDetail> { + WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId); + WebResponseContent GetPurchaseOrderNos(string materielCode); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" index a314b9b..18fc975 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; @@ -20,5 +21,33 @@ public PurchaseOrderDetailService(IPurchaseOrderDetailRepository BaseDal) : base(BaseDal) { } + public WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId) + { + try + { + List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.QueryData(x => x.WarehouseId == warehouseId && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); + List<string> MaterielCodes = purchaseOrderDetails.Select(x => x.MaterielCode).ToList(); + return WebResponseContent.Instance.OK(data: MaterielCodes); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + public WebResponseContent GetPurchaseOrderNos(string materielCode) + { + try + { + List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.QueryData(x => x.MaterielCode == materielCode && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); + List<int> PurchaseOrderIds = purchaseOrderDetails.Select(x => x.PurchaseOrderId).ToList(); + List<Dt_PurchaseOrder> purchaseOrders = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => PurchaseOrderIds.Contains(x.Id)).ToList(); + List<string> PurchaseOrderNos = purchaseOrders.Select(x => x.PurchaseOrderNo).ToList(); + return WebResponseContent.Instance.OK(data: PurchaseOrderNos); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" index 02df027..37610d3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_MaterielCodeInfo.cs" @@ -28,6 +28,12 @@ public string MaterielCode { get; set; } /// <summary> + /// 浠撳簱涓婚敭 + /// </summary> + [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱缂栧彿")] + public int WarehouseId { get; set; } + + /// <summary> /// 鎵规鍙� /// </summary> [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鎵规鍙�")] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" index ee5c974..2a4cb19 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" @@ -18,5 +18,15 @@ public PurchaseOrderDetailController(IPurchaseOrderDetailService service) : base(service) { } + [HttpPost, HttpGet, Route("GetPurchaseOrderDetailMaterielCode"), AllowAnonymous] + public WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId) + { + return Service.GetPurchaseOrderDetailMaterielCode(warehouseId); + } + [HttpPost, HttpGet, Route("GetPurchaseOrderNos"), AllowAnonymous] + public WebResponseContent GetPurchaseOrderNos(string materielCode) + { + return Service.GetPurchaseOrderNos(materielCode); + } } } -- Gitblit v1.9.3