From c9975ff121d58b1c156f991f978afabd58ae6c00 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 17 一月 2025 10:33:46 +0800 Subject: [PATCH] 入平库 --- 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9dd8ee51-5695-476a-8693-52d9616451a3.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 85 +++++++++++++++++++++ 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d6e89eb-c613-4d7c-8a88-4d58462d368b.vsidx | 0 代码管理/淮安PDA/pages/stash/boxing.vue | 126 ++++++++++++++++++++++--------- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs | 11 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs | 1 6 files changed, 187 insertions(+), 36 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/16db4c6a-3f42-45b5-b9ef-df469de7deae.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9dd8ee51-5695-476a-8693-52d9616451a3.vsidx" similarity index 100% rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/16db4c6a-3f42-45b5-b9ef-df469de7deae.vsidx" rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9dd8ee51-5695-476a-8693-52d9616451a3.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/abd54a07-f45e-4ca1-84da-81eadaf42b49.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d6e89eb-c613-4d7c-8a88-4d58462d368b.vsidx" similarity index 63% rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/abd54a07-f45e-4ca1-84da-81eadaf42b49.vsidx" rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d6e89eb-c613-4d7c-8a88-4d58462d368b.vsidx" index b31c7ef..4a6c086 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/abd54a07-f45e-4ca1-84da-81eadaf42b49.vsidx" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d6e89eb-c613-4d7c-8a88-4d58462d368b.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" index bc3971c..70b95c6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" @@ -21,6 +21,7 @@ WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum); WebResponseContent InPinKu(string inboundOrderId,int warehouseId, List<string> serNums); + WebResponseContent InPinKu(int warehouseId, List<string> serNums); WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums); //WebResponseContent FeedbackInboundOrder(int id); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index 92e8817..2f92c4b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -423,7 +423,91 @@ } return content; } + /// <summary> + /// WMS鍏ュ钩搴撲笉鎺ㄥ崟鎹� + /// </summary> + /// <param name="warehouseId"></param> + /// <param name="serNums"></param> + /// <returns></returns> + public WebResponseContent InPinKu(int warehouseId, List<string> serNums) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅"); + } + List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums); + if (models.Select(x => x.MaterielCode).Distinct().Count() > 1) + { + return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁"); + } + string materielCode = models.FirstOrDefault()?.MaterielCode ?? ""; + Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode); + if (materielInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�"); + } + float beforeQuantity = 0; + Dt_StockInfo stockInfo = new Dt_StockInfo() + { + PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"), + StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(), + WarehouseId = warehouse.WarehouseId, + PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), + LocationCode = "骞冲簱浣�", + Details = new List<Dt_StockInfoDetail>() + }; + List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>(); + foreach (var model in models) + { + Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail() + { + BatchNo = model.LotNo, + MaterielCode = materielInfo.MaterielCode, + MaterielName = materielInfo.MaterielName, + SerialNumber = model.SerialNumber, + StockQuantity = model.Quantity, + OutboundQuantity = 0, + Unit = materielInfo.MaterielUnit, + Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(), + ProductionDate = model.ProductionDate, + EffectiveDate = model.EffectiveDate, + }; + + if (stockInfo.Id > 0) + { + stockInfoDetail.StockId = stockInfo.Id; + } + stockInfo.Details.Add(stockInfoDetail); + + stockInfoDetails.Add(stockInfoDetail); + + } + float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity); + _unitOfWorkManage.BeginTran(); + if (stockInfo.Id == 0) + { + _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand(); + } + else + { + _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand(); + } + _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.Inbound); + _unitOfWorkManage.CommitTran(); + content.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } /// <summary> /// 缁勭洏 /// </summary> @@ -764,6 +848,7 @@ { foreach (var item in stockInfo.Details.GroupBy(x=>x.InboundOrderRowNo).Select(x=>x.Key)) { + //鍖哄垎涓嶅悓鎵规 Dt_StockInfoDetail? dt_StockInfoDetail = stockInfo.Details.Where(x => x.InboundOrderRowNo == item).FirstOrDefault(); ERPInboundDetailModel detailModel = new ERPInboundDetailModel() { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs" index 8a3bbf1..aff5205 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs" @@ -42,6 +42,17 @@ return Service.InPinKu(orderNo, warehouseId, serNums); } /// <summary> + /// WMS鍏ュ钩搴� + /// </summary> + /// <param name="warehouseId"></param> + /// <param name="serNums"></param> + /// <returns></returns> + [HttpPost, HttpGet, Route("InPinKu")] + public WebResponseContent InPinKu(int warehouseId, [FromBody] List<string> serNums) + { + return Service.InPinKu(warehouseId, serNums); + } + /// <summary> /// 鍗曚釜鐗╂枡鐮佺粍鐩� /// </summary> /// <param name="inboundOrderId"></param> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" index 4a56381..fbddaf8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" @@ -122,49 +122,29 @@ </view> <view v-if="current === 3" class="headerstyle"> <view class="itemstyle"> - <uni-forms label-width="120"> - <uni-forms-item> - <uni-easyinput type="text" @input="releaseboxInput" v-model="value" placeholder="璇锋壂鐮�" - ref='midInput' :focus="true" /> + <uni-forms label-width="180"> + <uni-forms-item label="鍐呯鏍囩:"> + <uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="pkfocus" + v-model="pkmaterSn" @input="pksnInput" /> </uni-forms-item> <uni-forms-item> - <button @click="releasebox" type="primary" size="default">瑙g洏</button> + <button @click="pksubmit" type="primary" size="default" style="margin-top: 2%;">鍏ュ钩搴�</button> </uni-forms-item> </uni-forms> <uni-list> - <uni-list-item direction="column" v-if="value2"> + <uni-list-item direction="column" v-for="(item,index) in pkmatInfos" :key="index"> <template v-slot:body> <view class="uni-list-box"> + <uni-icons type="trash" size="22" style="position: absolute;right: 5%;" + @click="pkdeleteList(index)"> + </uni-icons> <view class="uni-content"> - <view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{value2}}</view> - </view> - </view> - </template> - </uni-list-item> - <uni-list-item direction="column" v-for="item in matTotal" :key="item.matCode"> - <template v-slot:body> - <view class="uni-list-box"> - <view class="uni-content"> - <view class="uni-title-sub uni-ellipsis-2">鐗╂枡缂栫爜锛歿{item.matCode}}</view> - <view class="uni-title-sub uni-ellipsis-2">鏁伴噺锛歿{item.matQuantity}}</view> - </view> - </view> - </template> - </uni-list-item> - - <uni-list-item direction="column" v-for="(item,index) in matInfo" :key="index"> - <template v-slot:body> - <view class="uni-list-box"> - <view class="uni-content"> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> - 鐗╂枡缂栫爜锛歿{item.matCode}} - </view> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> - 鐗╂枡鍚嶇О锛歿{item.matName}} - </view> - <view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;"> - 鏁伴噺锛歿{item.matQty}} - </view> + <view class="uni-title-sub uni-ellipsis-2">閲囪喘鍗曞彿锛歿{item.purchaseOrderNo}}</view> + <view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view> + <view class="uni-note">鎵规鍙凤細{{item.lotNo}}</view> + <view class="uni-note">鏁伴噺锛歿{item.quantity}}</view> + <view class="uni-note">鐢熶骇鏃ユ湡锛歿{item.productionDate}}</view> + <view class="uni-note">鏈夋晥鏈燂細{{item.effectiveDate}}</view> </view> </view> </template> @@ -190,6 +170,7 @@ label: "", orderInfo: [], focus: false, + pkfocus: false, barcode: "", materSn: "", Initiallife: 1000, @@ -210,7 +191,10 @@ Testcheck: false, Summmary:0, stockInfoDetail:[], - addressdisabled: false + addressdisabled: false, + pksns: [], + pkmaterSn: "", + pkmatInfos: [] } }, onShow() {}, @@ -233,6 +217,10 @@ }else if (this.warehouseId == 3) { //杈呮枡浠撳簱鍖篒D this.address = "1011"; this.addressdisabled = true; + }else if (this.warehouseId == 5) { //杈呮枡 + this.items.push("鍏ュ钩搴�"); + this.items[1] = "鍏ョ珛搴�"; + this.address = "8005"; } this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo; this.getData(); @@ -242,6 +230,72 @@ innerAudioContext.src = src; // '../../static/success.mp3'; innerAudioContext.play(); }, + //wms鍏ュ钩搴� + pksubmit() { + if (this.pkmatInfos.length == 0) { + this.$refs.uToast.show({ + title: "璇锋壂鎻忓唴绠辨爣绛�", + type: 'error' + }) + return; + } + this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId, this + .pksns).then(res => { + if (res.status) { + this.$refs.uToast.show({ + title: "鍏ュ簱鎴愬姛", + type: "success" + }) + this.focus = false; + this.pkmatInfos = []; + this.pksns = []; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + } + }) + }, + pksnInput() { + this.$nextTick(() => { + if (this.pkmaterSn != "") { + this.focus = false; + var matSn = this.pkmaterSn; + setTimeout(() => { + this.pkmaterSn = ""; + }, 10); + this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => { + if (res.status) { + this.pksns.push(res.data.serialNumber); + this.pkmatInfos.push(res.data); + if (!res.status) { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + setTimeout(() => { + this.voiceSpeech('../../static/fail.mp3'); + }, 100); + return; + } + setTimeout(() => { + this.voiceSpeech('../../static/success.mp3'); + }, 100); + return; + } else { + this.$refs.uToast.show({ + title: res.message, + type: "error" + }) + setTimeout(() => { + this.voiceSpeech('../../static/fail.mp3'); + }, 100); + } + }) + } + }) + }, //瑙g洏 releasebox() { if (this.value.length == 0) { -- Gitblit v1.9.3