From 76fc40d4f1e0dbd15383c0f3e29fd8bcb6dcff2a Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 22 11月 2024 19:01:50 +0800 Subject: [PATCH] 2 --- CC/iWareCommon/BusinessHelper/BusinessHelper.cs | 2 LA24030_LuLiPackageLine_Web/src/api/main/WmsStockQuan/wmsStockQuan.ts | 78 ++ SDA/iWareSda/Devices/4-Station/StationService/StationService.cs | 8 SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs | 4 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/DataProcess_RobotBuffer_ModeChange.cs | 95 -- CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs | 102 +++ LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs | 237 +++++++ CC/iWareCC_ASRS/FormCC.cs | 6 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/2、DataProcess_RobotBuffer_FinishTask.cs | 26 CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd | 2 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/1、DataProcess_BZ39.cs | 18 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs | 383 +++++++++++ LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/component/editDialog.vue | 297 +++++++++ CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs | 24 SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs | 12 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/2、DataProcess_RobotBuffer_IssueOutboundTask.cs | 14 LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/index.vue | 387 ++++++++++++ CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/3、DataProcess_RobotBuffer_FinishTaskForOutbound.cs | 32 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs | 150 ++++ 19 files changed, 1,752 insertions(+), 125 deletions(-) diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs index 79db503..5a6b0be 100644 --- a/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs +++ b/CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs @@ -1500,16 +1500,16 @@ System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteQiTaoInfoAsync(int deviceId, string stationCode, bool value); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/InboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/InboundFinishConfirmResponse")] - iWareCC.StationService.SdaResEntity InboundFinishConfirm(int deviceId, string stationCode); + iWareCC.StationService.SdaResEntity InboundFinishConfirm(int deviceId, bool value, string stationCode); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/InboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/InboundFinishConfirmResponse")] - System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> InboundFinishConfirmAsync(int deviceId, string stationCode); + System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> InboundFinishConfirmAsync(int deviceId, bool value, string stationCode); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/OutboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/OutboundFinishConfirmResponse")] - iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode); + iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, bool value, string stationCode); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/OutboundFinishConfirm", ReplyAction="http://tempuri.org/IStationService/OutboundFinishConfirmResponse")] - System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, string stationCode); + System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, bool value, string stationCode); [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteInStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteInStoreTaskInfoResponse")] iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID); @@ -1649,20 +1649,20 @@ return base.Channel.WriteQiTaoInfoAsync(deviceId, stationCode, value); } - public iWareCC.StationService.SdaResEntity InboundFinishConfirm(int deviceId, string stationCode) { - return base.Channel.InboundFinishConfirm(deviceId, stationCode); + public iWareCC.StationService.SdaResEntity InboundFinishConfirm(int deviceId, bool value, string stationCode) { + return base.Channel.InboundFinishConfirm(deviceId, value, stationCode); } - public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> InboundFinishConfirmAsync(int deviceId, string stationCode) { - return base.Channel.InboundFinishConfirmAsync(deviceId, stationCode); + public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> InboundFinishConfirmAsync(int deviceId, bool value, string stationCode) { + return base.Channel.InboundFinishConfirmAsync(deviceId, value, stationCode); } - public iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode) { - return base.Channel.OutboundFinishConfirm(deviceId, stationCode); + public iWareCC.StationService.SdaResEntity OutboundFinishConfirm(int deviceId, bool value, string stationCode) { + return base.Channel.OutboundFinishConfirm(deviceId, value, stationCode); } - public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, string stationCode) { - return base.Channel.OutboundFinishConfirmAsync(deviceId, stationCode); + public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> OutboundFinishConfirmAsync(int deviceId, bool value, string stationCode) { + return base.Channel.OutboundFinishConfirmAsync(deviceId, value, stationCode); } public iWareCC.StationService.SdaResEntity WriteInStoreTaskInfo(int deviceId, string stationCode, string toPlaceNo, short length, short width, short height, int inbound_TaskID) { diff --git a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd index 0bf77f3..8da0c43 100644 --- a/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd +++ b/CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd @@ -159,6 +159,7 @@ <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="deviceId" type="xs:int" /> + <xs:element minOccurs="0" name="value" type="xs:boolean" /> <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" /> </xs:sequence> </xs:complexType> @@ -174,6 +175,7 @@ <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="deviceId" type="xs:int" /> + <xs:element minOccurs="0" name="value" type="xs:boolean" /> <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" /> </xs:sequence> </xs:complexType> diff --git a/CC/iWareCC_ASRS/FormCC.cs b/CC/iWareCC_ASRS/FormCC.cs index c45661a..dae98d6 100644 --- a/CC/iWareCC_ASRS/FormCC.cs +++ b/CC/iWareCC_ASRS/FormCC.cs @@ -31,6 +31,12 @@ { public partial class FormCC : Form { + + /// <summary> + /// 鍏ㄥ眬鈥旀槸鍚﹀彲浠ヨ繍琛屾墽琛屽嚭搴撴ā寮� + /// </summary> + public static bool IsAllowRunOutMode = false; + /// <summary> /// 1鍙峰爢鍨涙満鍏ュ簱鍙f壂鐮佸己鍒堕獙璇侀�氳繃 /// </summary> diff --git "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" index b99875d..35bfcd7 100644 --- "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" @@ -9,6 +9,8 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.NetworkInformation; +using System.Reflection.Emit; using System.ServiceModel.Configuration; using System.Text; using System.Threading; @@ -37,6 +39,12 @@ { if (SystemValue.isAllowRuning_DataProcess_BZ01 && SystemValue.isStartedModel) { + if (FormCC.IsAllowRunOutMode == true) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"姝e湪骞插嚭搴撴ā寮忥紝姝ゆ柟娉曟殏鍋溿�傘�� "; + continue; + } + var rgvLocation = StationLocationEnum.BZ01.ToString(); /* * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬 @@ -61,6 +69,14 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 "; continue; } + + var isAllow = IsAllloRunOutTaskMode(wmsDB, upiObj); + if (isAllow) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ01 = $"{rgvLocation.ToString()},鍒ゆ柇瑕佹墽琛屽嚭搴撴ā寮忎簡锛屾鏂规硶鏆傚仠銆傘�� "; + continue; + } + //鏌ヨ鏄惁榻愬寘 var allList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); var isQiTaoList = allList.Where(x => x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯 @@ -117,8 +133,13 @@ wmsDB.SaveChanges(); } - - + } + else + { + using (WmsDBModel wmsDB = new WmsDBModel()) + { + var isAllow = IsAllloRunOutTaskMode(wmsDB, null); + } } } } @@ -130,5 +151,82 @@ } } + + /// <summary> + /// 鏄惁鍙互鎵ц鍑哄簱妯″紡 + /// </summary> + /// <param name="wmsDB"></param> + /// <param name="curUpiObj"></param> + /// <returns></returns> + private static bool IsAllloRunOutTaskMode(WmsDBModel wmsDB, mes_batchOrderUPI_new curUpiObj) + { + //棣栧厛鏌ヨ鏁版嵁搴撲腑鏄惁鏈� 瑕佸嚭搴撶殑鏁版嵁 + var isExistOutTaskForNewCreated = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟 + && x.TaskStatus == (int)TaskStatusEnum.鏂板缓 + ).Count(); + if (isExistOutTaskForNewCreated == 0) + { + FormCC.IsAllowRunOutMode = false; + return false;//涓嶈兘鎵ц 鍑哄簱妯″紡 + } + + var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault(); + var lastUpi = rbRunMode.UPI; + var lastPackageCode = rbRunMode.PackageCode; + + if (curUpiObj == null) + {//琛ㄧず姝ゆ椂鏃犳柊鏉胯繃鏉� + if (!string.IsNullOrEmpty(lastUpi)) + { + var lastObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == lastUpi).FirstOrDefault(); + if (lastObj.UpiStatus == (int)UpiStatusEnum.涓嶉綈鍖� || lastObj.UpiStatus == (int)UpiStatusEnum.鍒濆) + {//琛ㄧず鏈�鍚庤繃鍘荤殑鏉挎槸涓嶉綈鍖呯殑鏉� + //鍙互杩愯鎵ц 鍑哄簱妯″紡 + } + else + {//琛ㄧず鏈�鍚庤繃鍘荤殑鏉挎槸榻愬寘鐨勬澘 + //瑕佺户缁垽鏂悗闈� 寰呭垎鎷e尯鍩熻繕瀛樺湪鐩稿悓鍖呯殑鏉挎暟鎹悧 + var isExistSamePackageCode = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == lastPackageCode + && x.AreaCode == (int)AreaCodeEnum.寰呯紦瀛樺垎鎷e尯).Count(); + if (isExistSamePackageCode > 0) + { + FormCC.IsAllowRunOutMode = false; + return false;//涓嶈兘鎵ц 鍑哄簱妯″紡 + } + else + { + //鍙互杩愯鎵ц 鍑哄簱妯″紡 + } + } + } + else + { + //鍙互杩愯鎵ц 鍑哄簱妯″紡 + } + } + else + {//琛ㄧず姝ゆ椂鏈夋柊鏉胯繃鏉� + if (!string.IsNullOrEmpty(lastUpi)) + { + if (lastPackageCode == curUpiObj.PackageCode) + { + FormCC.IsAllowRunOutMode = false; + return false;//涓嶈兘鎵ц 鍑哄簱妯″紡 + } + else + {//鏂板寘杩囨潵浜� + //鍙互杩愯鎵ц 鍑哄簱妯″紡 + } + } + else + { + //鍙互杩愯鎵ц 鍑哄簱妯″紡 + } + } + + FormCC.IsAllowRunOutMode = true; + return true; + } + } } diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" index 595fc18..97019c4 100644 --- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" @@ -36,91 +36,36 @@ { if (SystemValue.isAllowRuning_DataProcess_BZ39 && SystemValue.isStartedModel) { - var rgvLocation = StationLocationEnum.BZ39.ToString(); - /* - * 1銆佸鏋� bz01 鐨勬澘鏂欐槸鏂板寘 锛屽苟涓旀湁瑕佸嚭搴撶殑闇�姹傦紝灏卞垏鎹㈠埌鍑哄簱妯″紡锛屽惁鍒欐槸鍏ュ簱妯″紡 - * 2銆� - */ - - var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); - if (obj.R_ReqParseData) + if (FormCC.IsAllowRunOutMode) { - var result = obj.R_ReadCodeResult; - if (string.IsNullOrEmpty(result)) - { - SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-璇锋眰浜嗚В鐮侊紝浣嗘槸缁撴灉鏄┖鐨�,姝ゆ寰幆缁撴潫"; - continue; - } - var upiCode = result; - var qitaoReault = false; using (WmsDBModel wmsDB = new WmsDBModel()) { var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault(); - var lastUpi = rbRunMode.UPI; - var lastPackageCode = rbRunMode.PackageCode; - - var rgvLocation_BZ01 = StationLocationEnum.BZ01.ToString(); - var currUpi_BZ01 = ""; - var obj_BZ01 = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation_BZ01.ToString()).FirstOrDefault(); - if (obj.R_ReqParseData) + if (rbRunMode.LineRunMode == (int)RbRunModeEnum.鍑哄簱妯″紡) { - currUpi_BZ01 = obj_BZ01.R_ReadCodeResult; - } - if (string.IsNullOrEmpty(currUpi_BZ01)) - { - - } - - var rgvLocation22 = StationLocationEnum.BZ01.ToString(); - /* - * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬 - * 2銆佹牴鎹綈濂楃粨鏋滐紝鎺ㄩ�佺粰PLC - */ - - - //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛� - var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB); - if (!isValidate) - { - SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-鏈夆�樺凡涓嬪彂鈥欑殑浠诲姟锛屼笉鑳藉鐞�,姝ゆ寰幆缁撴潫"; + SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"宸茬粡鏄嚭搴撴ā寮忎簡,姝ゆ寰幆缁撴潫"; continue; } + rbRunMode.LineRunMode = (int)RbRunModeEnum.鍑哄簱妯″紡; + rbRunMode.LineRunModeName = RbRunModeEnum.鍑哄簱妯″紡.ToString(); + rbRunMode.UpdateTime = DateTime.Now; + //鎺ㄩ�佺粰PLC鍒囨崲妯″紡 + //using (StationServiceClient client = new StationServiceClient()) + //{ + // var res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo)); + // if (!res.result) + // { + // SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}"; + // continue; + // } + // else + // { + // Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,WriteOutStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}"); + // } + //} - - var taskList = wmsDB.wms_rbline_task.Where(x => x.PlaceCode == obj.R_OutboundNumber - && x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟 - && x.TaskStatus == (int)TaskStatusEnum.鏂板缓).OrderBy(x => x.PackageCode).ToList(); - if (taskList == null) - { - SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()},鏍规嵁 R_OutboundNumber:{obj.R_OutboundNumber}娌℃湁鎵惧埌宸蹭笅鍙戠殑浠诲姟 "; - continue; - } - - var doTask = taskList.FirstOrDefault(); - - var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); - if (upiObj == null) - { - SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 "; - continue; - } - - //杩欓噷鏀逛负 涓嬪彂 鍑哄簱浠诲姟 - using (StationServiceClient client = new StationServiceClient()) - { - var res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo)); - if (!res.result) - { - SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}"; - continue; - } - else - { - Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,WriteOutStoreTaskInfoAsync锛屽弬鏁�: 绔欑偣{rgvLocation}"); - } - } wmsDB.SaveChanges(); } diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" index 4cb7bf2..ae46d74 100644 --- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" @@ -110,9 +110,21 @@ using (StationServiceClient client = new StationServiceClient()) { - var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode, - (short)upiObj.Length, - (short)upiObj.Width, (short)upiObj.Thk, Convert.ToInt32(task.TaskNo)); + //棣栧厛鍏堟竻鐞� + var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation); + if (!res.result) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,InboundFinishConfirmAsync 杩斿洖:{res.resMsg}"; + continue; + } + else + { + Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 鎴愬姛,InboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}"); + } + + res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode, + (short)upiObj.Length, + (short)upiObj.Width, (short)upiObj.Thk, Convert.ToInt32(task.TaskNo)); if (!res.result) { SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{res.resMsg}"; diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs" index eb83ebc..9424fc2 100644 --- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs" @@ -39,15 +39,17 @@ var rgvLocation = StationLocationEnum.BZ39.ToString(); var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); if (obj.R_InboundFinish) + //if (true)//妯℃嫙 { - var result = obj.R_InboundNumber; - if (string.IsNullOrEmpty(result)) - { - SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}- 鍏ュ簱搴撲綅鍙锋槸绌虹殑,姝ゆ寰幆缁撴潫"; - continue; - } - var result2 = obj.R_Inbound_TaskID; - if (result2==0) + //var result = obj.R_InboundNumber; + //if (string.IsNullOrEmpty(result)) + //{ + // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}- 鍏ュ簱搴撲綅鍙锋槸绌虹殑,姝ゆ寰幆缁撴潫"; + // continue; + //} + //obj.R_Inbound_TaskID = 17797;//妯℃嫙 + var result2 = obj.R_Inbound_TaskID; + if (result2 == 0) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}- 鍏ュ簱浠诲姟鍙锋槸绌虹殑,姝ゆ寰幆缁撴潫"; continue; @@ -57,8 +59,8 @@ var qitaoReault = false; using (WmsDBModel wmsDB = new WmsDBModel()) { - var task = wmsDB.wms_rbline_task.Where(x => x.PlaceCode == obj.R_InboundNumber - && x.TaskNo == obj.R_Inbound_TaskID.ToString() + var task = wmsDB.wms_rbline_task.Where(x => + x.TaskNo == obj.R_Inbound_TaskID.ToString() && x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟 && x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�).FirstOrDefault(); if (task == null) @@ -80,6 +82,8 @@ Id = Yitter.IdGenerator.YitIdHelper.NextId(), Upi = upiCode, PlanNo = task.PlanNo, + DetailName = upiObj.DetailName, + OrderId = task.OrderId, CreateTime = DateTime.Now, CreateUserName = "CC", InTime = DateTime.Now, @@ -105,7 +109,7 @@ //缁橮LC鎺ㄩ�佷换鍔″畬鎴愮‘璁や俊鍙� using (StationServiceClient client = new StationServiceClient()) { - var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, rgvLocation); + var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); if (!res.result) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,InboundFinishConfirmAsync 杩斿洖:{res.resMsg}"; diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" index b70a353..2a87ab0 100644 --- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" @@ -85,7 +85,19 @@ //杩欓噷鏀逛负 涓嬪彂 鍑哄簱浠诲姟 using (StationServiceClient client = new StationServiceClient()) { - var res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo)); + //棣栧厛瑕佹竻鐞� + var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); + if (!res.result) + { + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,OutboundFinishConfirmAsync 杩斿洖:{res.resMsg}"; + continue; + } + else + { + Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,OutboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}"); + } + + res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo)); if (!res.result) { SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}"; diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs" index 8e05c85..62d38cd 100644 --- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs" @@ -1,4 +1,5 @@ 锘縰sing Admin.NET.Application; +using iWareCC.StationService; using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; @@ -31,12 +32,12 @@ var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); if (obj.R_OutboundFinish) { - var result = obj.R_OutboundNumber; - if (string.IsNullOrEmpty(result)) - { - SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}- 鍑哄簱搴撲綅鍙锋槸绌虹殑,姝ゆ寰幆缁撴潫"; - continue; - } + //var result = obj.R_OutboundNumber; + //if (string.IsNullOrEmpty(result)) + //{ + // SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}- 鍑哄簱搴撲綅鍙锋槸绌虹殑,姝ゆ寰幆缁撴潫"; + // continue; + //} var result2 = obj.R_Outbound_TaskID; if (result2 == 0) @@ -49,8 +50,8 @@ using (WmsDBModel wmsDB = new WmsDBModel()) { - var task = wmsDB.wms_rbline_task.Where(x => x.PlaceCode == obj.R_OutboundNumber - && x.TaskNo == obj.R_Outbound_TaskID.ToString() + var task = wmsDB.wms_rbline_task.Where(x => + x.TaskNo == obj.R_Outbound_TaskID.ToString() && x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟 && x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�).FirstOrDefault(); if (task == null) @@ -77,6 +78,21 @@ var place = StationHandler.GetPlaceByPlaceCode(task.PlaceCode, wmsDB); place.PlaceStatus = (int)PlaceStatusEnum.姝e父; + //缁橮LC鎺ㄩ�佷换鍔″畬鎴愮‘璁や俊鍙� + using (StationServiceClient client = new StationServiceClient()) + { + var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); + if (!res.result) + { + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,OutboundFinishConfirmAsync 杩斿洖:{res.resMsg}"; + continue; + } + else + { + Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,OutboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}"); + } + } + wmsDB.SaveChanges(); } } diff --git a/CC/iWareCommon/BusinessHelper/BusinessHelper.cs b/CC/iWareCommon/BusinessHelper/BusinessHelper.cs index 81c5dab..33b4856 100644 --- a/CC/iWareCommon/BusinessHelper/BusinessHelper.cs +++ b/CC/iWareCommon/BusinessHelper/BusinessHelper.cs @@ -135,7 +135,7 @@ /// <returns></returns> public static string CreatePlcTaskIdForSrmTask() { - int iSeed = 99999; + int iSeed = 65534; //浠�101-9999锛屼负浠�涔堣浠�101寮�濮嬶紝鍥犱负1-100浣滀负鎵嬪姩浠诲姟涓嬪彂銆傘�怑ditBy shaocx,2022-05-10銆� return new Random(Guid.NewGuid().GetHashCode()).Next(101, iSeed).ToString(); } diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/WmsStockQuan/wmsStockQuan.ts b/LA24030_LuLiPackageLine_Web/src/api/main/WmsStockQuan/wmsStockQuan.ts new file mode 100644 index 0000000..a9f7182 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/api/main/WmsStockQuan/wmsStockQuan.ts @@ -0,0 +1,78 @@ +锘縤mport request from '/@/utils/request'; +enum Api { + AddWmsStockQuan = '/api/wmsStockQuan/add', + DeleteWmsStockQuan = '/api/wmsStockQuan/delete', + UpdateWmsStockQuan = '/api/wmsStockQuan/update', + PageWmsStockQuan = '/api/wmsStockQuan/page', + ListWmsStockQuan = '/api/wmsStockQuan/list', + DetailWmsStockQuan = '/api/wmsStockQuan/detail', + ImportExcelWmsStockQuan = '/api/wmsStockQuan/importExcel', + DownloadExcelTemplateWmsStockQuan = '/api/wmsStockQuan/downloadExcelTemplate', +} + +// 澧炲姞搴撳瓨淇℃伅 +export const addWmsStockQuan = (params?: any) => + request({ + url: Api.AddWmsStockQuan, + method: 'post', + data: params + }); + +// 鍒犻櫎搴撳瓨淇℃伅 +export const deleteWmsStockQuan = (params?: any) => + request({ + url: Api.DeleteWmsStockQuan, + method: 'post', + data: params + }); + +// 缂栬緫搴撳瓨淇℃伅 +export const updateWmsStockQuan = (params?: any) => + request({ + url: Api.UpdateWmsStockQuan, + method: 'post', + data: params + }); + +// 瀵煎叆搴撳瓨淇℃伅 +export const importExcelWmsStockQuan = (params?: any) => + request({ + url: Api.ImportExcelWmsStockQuan, + method: 'post', + data: params + }); + +// 涓嬭浇瀵煎叆搴撳瓨淇℃伅妯℃澘 +export const downloadExcelTemplateWmsStockQuan = (params?: any) => + request({ + url: Api.DownloadExcelTemplateWmsStockQuan, + method: 'get', + data: params, + responseType: 'blob' + }); + + +// 鍒嗛〉鏌ヨ搴撳瓨淇℃伅 +export const pageWmsStockQuan = (params?: any) => + request({ + url: Api.PageWmsStockQuan, + method: 'post', + data: params + }); + +// 涓嶅垎椤垫煡璇㈠簱瀛樹俊鎭� +export const listWmsStockQuan = (params?: any) => + request({ + url: Api.ListWmsStockQuan, + method: 'get', + data: params + }); + +// 璇︽儏搴撳瓨淇℃伅 +export const detailWmsStockQuan = (id: any) => + request({ + url: Api.DetailWmsStockQuan, + method: 'get', + data: { id } + }); + diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/component/editDialog.vue new file mode 100644 index 0000000..10d339a --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/component/editDialog.vue @@ -0,0 +1,297 @@ +锘�<template> + <div class="wmsStockQuan-container"> + <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false"> + <template #header> + <div style="color: #fff"> + <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>--> + <span>{{ props.title }}</span> + </div> + </template> + <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules" v-loading="loading"> + <el-row :gutter="35"> + <el-form-item v-show="false"> + <el-input v-model="ruleForm.id" /> + </el-form-item> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="搴撲綅缂栫爜" prop="placeCode"> + <el-input v-model="ruleForm.placeCode" placeholder="璇疯緭鍏ュ簱浣嶇紪鐮�" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="杩涘叆鏃堕棿" prop="inTime"> + <el-date-picker v-model="ruleForm.inTime" type="date" placeholder="杩涘叆鏃堕棿" /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閮ㄤ欢鏉$爜" prop="upi"> + <el-input v-model="ruleForm.upi" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�" maxlength="100" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閮ㄤ欢鍚嶇О" prop="detailName"> + <el-input v-model="ruleForm.detailName" placeholder="璇疯緭鍏ラ儴浠跺悕绉�" maxlength="100" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鎵规" prop="planNo"> + <el-input v-model="ruleForm.planNo" placeholder="璇疯緭鍏ユ壒娆�" maxlength="100" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="璁㈠崟鍙�" prop="orderId"> + <el-input v-model="ruleForm.orderId" placeholder="璇疯緭鍏ヨ鍗曞彿" maxlength="100" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鍖呰鍙�" prop="packageCode"> + <el-input v-model="ruleForm.packageCode" placeholder="璇疯緭鍏ュ寘瑁呭彿" maxlength="100" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="闀�" prop="length"> + <el-input v-model="ruleForm.length" placeholder="璇疯緭鍏ラ暱" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="瀹�" prop="width"> + <el-input v-model="ruleForm.width" placeholder="璇疯緭鍏ュ" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鍘�" prop="thk"> + <el-input v-model="ruleForm.thk" placeholder="璇疯緭鍏ュ帤" maxlength="53" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="搴撳瓨鐘舵��" prop="stockStatus"> + <el-select clearable v-model="ruleForm.stockStatus" placeholder="璇烽�夋嫨搴撳瓨鐘舵��"> + <el-option v-for="(item,index) in getEnumStockStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option> + + </el-select> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="搴撳瓨鐘舵�佸悕绉�" prop="stockStatusName"> + <el-input v-model="ruleForm.stockStatusName" placeholder="璇疯緭鍏ュ簱瀛樼姸鎬佸悕绉�" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鎿嶄綔鍘熷洜" prop="operReason"> + <el-input v-model="ruleForm.operReason" placeholder="璇疯緭鍏ユ搷浣滃師鍥�" maxlength="255" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鎿嶄綔浜�" prop="operUser"> + <el-input v-model="ruleForm.operUser" placeholder="璇疯緭鍏ユ搷浣滀汉" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="鎿嶄綔鏃堕棿" prop="operTime"> + <el-date-picker v-model="ruleForm.operTime" type="date" placeholder="鎿嶄綔鏃堕棿" /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閿佸畾鐘舵��" prop="lockStatus"> + <el-select clearable v-model="ruleForm.lockStatus" placeholder="璇烽�夋嫨閿佸畾鐘舵��"> + <el-option v-for="(item,index) in getEnumLockStatusData" :key="index" :value="item.value" :label="`${item.describe}`"></el-option> + + </el-select> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閿佸畾鍘熷洜" prop="lockReason"> + <el-input v-model="ruleForm.lockReason" placeholder="璇疯緭鍏ラ攣瀹氬師鍥�" maxlength="255" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閿佸畾浜�" prop="lockUser"> + <el-input v-model="ruleForm.lockUser" placeholder="璇疯緭鍏ラ攣瀹氫汉" maxlength="50" show-word-limit clearable /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="閿佸畾鏃堕棿" prop="lockTime"> + <el-date-picker v-model="ruleForm.lockTime" type="date" placeholder="閿佸畾鏃堕棿" /> + + </el-form-item> + + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input v-model="ruleForm.remarks" placeholder="璇疯緭鍏ュ娉�" maxlength="255" show-word-limit clearable /> + + </el-form-item> + + </el-col> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="cancel">鍙� 娑�</el-button> + <el-button type="primary" @click="submit" :disabled="disabled_btn">纭� 瀹�</el-button> + </span> + </template> + </el-dialog> + </div> +</template> +<style scoped> +:deep(.el-select), +:deep(.el-input-number) { + width: 100%; +} +</style> +<script lang="ts" setup> + import { ref,onMounted } from "vue"; + import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; + import { ElMessage } from "element-plus"; + import type { FormRules } from "element-plus"; + import { addWmsStockQuan, updateWmsStockQuan, detailWmsStockQuan } from "/@/api/main/WmsStockQuan/wmsStockQuan"; + import { getAPI } from '/@/utils/axios-utils'; + import { SysEnumApi } from '/@/api-services/api'; + + const getEnumStockStatusData = ref<any>([]); + const getEnumLockStatusData = ref<any>([]); + //鐖剁骇浼犻�掓潵鐨勫弬鏁� + var props = defineProps({ + title: { + type: String, + default: "", + }, + }); + //鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟 + const emit = defineEmits(["reloadTable"]); + const ruleFormRef = ref(); + const isShowDialog = ref(false); + const loading = ref(false); + const disabled_btn = ref(false); + const ruleForm = ref<any>({}); + //鑷娣诲姞鍏朵粬瑙勫垯 + const rules = ref<FormRules>({ + placeCode: [{required: true, message: '璇疯緭鍏ュ簱浣嶇紪鐮侊紒', trigger: 'blur',},], + upi: [{required: true, message: '璇疯緭鍏ラ儴浠舵潯鐮侊紒', trigger: 'blur',},], + detailName: [{required: true, message: '璇疯緭鍏ラ儴浠跺悕绉帮紒', trigger: 'blur',},], + planNo: [{required: true, message: '璇疯緭鍏ユ壒娆★紒', trigger: 'blur',},], + orderId: [{required: true, message: '璇疯緭鍏ヨ鍗曞彿锛�', trigger: 'blur',},], + packageCode: [{required: true, message: '璇疯緭鍏ュ寘瑁呭彿锛�', trigger: 'blur',},], + length: [{required: true, message: '璇疯緭鍏ラ暱锛�', trigger: 'blur',},], + width: [{required: true, message: '璇疯緭鍏ュ锛�', trigger: 'blur',},], + thk: [{required: true, message: '璇疯緭鍏ュ帤锛�', trigger: 'blur',},], + stockStatus: [{required: true, message: '璇烽�夋嫨搴撳瓨鐘舵�侊紒', trigger: 'change',},], + stockStatusName: [{required: true, message: '璇疯緭鍏ュ簱瀛樼姸鎬佸悕绉帮紒', trigger: 'blur',},], + lockStatus: [{required: true, message: '璇烽�夋嫨閿佸畾鐘舵�侊紒', trigger: 'change',},], + isDelete: [{required: true, message: '璇烽�夋嫨杞垹闄わ紒', trigger: 'change',},], + }); + + /* + * 鎵撳紑寮圭獥 + * @param flag 鏍囪锛�1鏂板 2缂栬緫 3鏌ョ湅锛� + * @param row 琛屾暟鎹� + */ + const openDialog = async (flag: number,row: any) => { + // ruleForm.value = JSON.parse(JSON.stringify(row)); + // 鏀圭敤detail鑾峰彇鏈�鏂版暟鎹潵缂栬緫 + let rowData = JSON.parse(JSON.stringify(row)); + if (rowData.id) + ruleForm.value = (await detailWmsStockQuan(rowData.id)).data.result; + else { + ruleForm.value = rowData; + } + isShowDialog.value = true; + }; + + // 鍏抽棴寮圭獥 + const closeDialog = () => { + emit("reloadTable"); + isShowDialog.value = false; + }; + + // 鍙栨秷 + const cancel = () => { + isShowDialog.value = false; + }; + + // 鎻愪氦 + const submit = async () => { + disabled_btn.value = true; + ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => { + if (isValid) { + loading.value = true; + let values = ruleForm.value; + let ret={}; + let title='鏂板'; + if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) { + ret = await addWmsStockQuan(values); + } else { + title='缂栬緫'; + ret = await updateWmsStockQuan(values); + } + loading.value = false; + disabled_btn.value = false; + if(ret.data.type=="success"){ + ElMessage.success(title+'鎴愬姛'); + closeDialog(); + } + } else { + disabled_btn.value = false; + ElMessage({ + message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜, + type: "error", + }); + } + }); + }; + + + + + + + + // 椤甸潰鍔犺浇鏃� + onMounted(async () => { + getEnumStockStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? []; + getEnumLockStatusData.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? []; + }); + + //灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠� + defineExpose({ openDialog }); +</script> + + + + diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/index.vue new file mode 100644 index 0000000..7f88552 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsStockQuan/wmsStockQuan/index.vue @@ -0,0 +1,387 @@ +锘�<template> + <div class="wmsStockQuan-container"> + <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> + <el-form :model="queryParamsWmsStockQuan" ref="queryForm" labelWidth="90"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> + <el-form-item label="鍏抽敭瀛�"> + <el-input v-model="queryParamsWmsStockQuan.searchKey" clearable="" placeholder="搴撲綅缂栫爜,閮ㄤ欢鏉$爜,閮ㄤ欢鍚嶇О,鎵规,璁㈠崟鍙�,鍖呰鍙�,搴撳瓨鐘舵�佸悕绉�,鎿嶄綔鍘熷洜,鎿嶄綔浜�,閿佸畾鍘熷洜,閿佸畾浜�,澶囨敞,鍒涘缓浜�,淇敼浜�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="搴撲綅缂栫爜"> + <el-input v-model="queryParamsWmsStockQuan.placeCode" clearable="" placeholder="璇疯緭鍏ュ簱浣嶇紪鐮�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="杩涘叆鏃堕棿"> + <el-date-picker placeholder="璇烽�夋嫨杩涘叆鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsStockQuan.inTimeRange" /> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閮ㄤ欢鏉$爜"> + <el-input v-model="queryParamsWmsStockQuan.upi" clearable="" placeholder="璇疯緭鍏ラ儴浠舵潯鐮�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閮ㄤ欢鍚嶇О"> + <el-input v-model="queryParamsWmsStockQuan.detailName" clearable="" placeholder="璇疯緭鍏ラ儴浠跺悕绉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鎵规"> + <el-input v-model="queryParamsWmsStockQuan.planNo" clearable="" placeholder="璇疯緭鍏ユ壒娆�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="璁㈠崟鍙�"> + <el-input v-model="queryParamsWmsStockQuan.orderId" clearable="" placeholder="璇疯緭鍏ヨ鍗曞彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鍖呰鍙�"> + <el-input v-model="queryParamsWmsStockQuan.packageCode" clearable="" placeholder="璇疯緭鍏ュ寘瑁呭彿"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="闀�"> + <el-input v-model="queryParamsWmsStockQuan.length" clearable="" placeholder="璇疯緭鍏ラ暱"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="瀹�"> + <el-input v-model="queryParamsWmsStockQuan.width" clearable="" placeholder="璇疯緭鍏ュ"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鍘�"> + <el-input v-model="queryParamsWmsStockQuan.thk" clearable="" placeholder="璇疯緭鍏ュ帤"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="搴撳瓨鐘舵��"> + <el-select clearable="" v-model="queryParamsWmsStockQuan.stockStatus" placeholder="璇烽�夋嫨搴撳瓨鐘舵��"> + <el-option v-for="(item,index) in getEnumStockStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> + + </el-select> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="搴撳瓨鐘舵�佸悕绉�"> + <el-input v-model="queryParamsWmsStockQuan.stockStatusName" clearable="" placeholder="璇疯緭鍏ュ簱瀛樼姸鎬佸悕绉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鎿嶄綔鍘熷洜"> + <el-input v-model="queryParamsWmsStockQuan.operReason" clearable="" placeholder="璇疯緭鍏ユ搷浣滃師鍥�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鎿嶄綔浜�"> + <el-input v-model="queryParamsWmsStockQuan.operUser" clearable="" placeholder="璇疯緭鍏ユ搷浣滀汉"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="鎿嶄綔鏃堕棿"> + <el-date-picker placeholder="璇烽�夋嫨鎿嶄綔鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsStockQuan.operTimeRange" /> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閿佸畾鐘舵��"> + <el-select clearable="" v-model="queryParamsWmsStockQuan.lockStatus" placeholder="璇烽�夋嫨閿佸畾鐘舵��"> + <el-option v-for="(item,index) in getEnumLockStatusData_Index" :key="index" :value="item.value" :label="`${item.describe}`" /> + + </el-select> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閿佸畾鍘熷洜"> + <el-input v-model="queryParamsWmsStockQuan.lockReason" clearable="" placeholder="璇疯緭鍏ラ攣瀹氬師鍥�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閿佸畾浜�"> + <el-input v-model="queryParamsWmsStockQuan.lockUser" clearable="" placeholder="璇疯緭鍏ラ攣瀹氫汉"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="閿佸畾鏃堕棿"> + <el-date-picker placeholder="璇烽�夋嫨閿佸畾鏃堕棿" value-format="YYYY/MM/DD" type="daterange" v-model="queryParamsWmsStockQuan.lockTimeRange" /> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> + <el-form-item label="澶囨敞"> + <el-input v-model="queryParamsWmsStockQuan.remarks" clearable="" placeholder="璇疯緭鍏ュ娉�"/> + + </el-form-item> + </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> + <el-form-item> + <el-button-group style="display: flex; align-items: center;"> + <el-button type="primary" icon="ele-Search" @click="handleQueryWmsStockQuan" v-auth="'wmsStockQuan:page'" :disabled="disabled_btnWmsStockQuan"> 鏌ヨ </el-button> + <el-button icon="ele-Refresh" @click="resetWmsStockQuan"> 閲嶇疆 </el-button> + <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button> + <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left:5px;"> 闅愯棌 </el-button> + <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsStockQuan" v-auth="'wmsStockQuan:add'"> 鏂板 </el-button> + <el-button type="primary" style="margin-left:5px;" icon="ele-Download" @click="handleExportExcelWmsStockQuan" v-auth="'wmsStockQuan:exportExcel'" > 瀵煎嚭 </el-button> + </el-button-group> + </el-form-item> + + </el-col> + </el-row> + </el-form> + </el-card> + <el-card class="full-table" shadow="hover" style="margin-top: 5px"> + <el-table + ref="tableRefWmsStockQuan" + :data="tableDataWmsStockQuan" + style="width: 100%" + v-loading="loadingWmsStockQuan" + tooltip-effect="light" + row-key="id" + @sort-change="sortChangeWmsStockQuan" + border=""> + <el-table-column type="index" label="搴忓彿" width="55" align="center"/> + <el-table-column prop="placeCode" label="搴撲綅缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="inTime" label="杩涘叆鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="upi" label="閮ㄤ欢鏉$爜" show-overflow-tooltip="" /> + <el-table-column prop="detailName" label="閮ㄤ欢鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="planNo" label="鎵规" show-overflow-tooltip="" /> + <el-table-column prop="orderId" label="璁㈠崟鍙�" show-overflow-tooltip="" /> + <el-table-column prop="packageCode" label="鍖呰鍙�" show-overflow-tooltip="" /> + <el-table-column prop="length" label="闀�" show-overflow-tooltip="" /> + <el-table-column prop="width" label="瀹�" show-overflow-tooltip="" /> + <el-table-column prop="thk" label="鍘�" show-overflow-tooltip="" /> + <el-table-column prop="stockStatus" label="搴撳瓨鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="stockStatusName" label="搴撳瓨鐘舵�佸悕绉�" show-overflow-tooltip="" /> + <el-table-column prop="operReason" label="鎿嶄綔鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="operUser" label="鎿嶄綔浜�" show-overflow-tooltip="" /> + <el-table-column prop="operTime" label="鎿嶄綔鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="lockStatus" label="閿佸畾鐘舵��" show-overflow-tooltip="" > + <template #default="scope"> + <el-tag>{{ getEnumDesc(scope.row.lockStatus, getEnumLockStatusData_Index)}}</el-tag> + </template> + </el-table-column> + <el-table-column prop="lockReason" label="閿佸畾鍘熷洜" show-overflow-tooltip="" /> + <el-table-column prop="lockUser" label="閿佸畾浜�" show-overflow-tooltip="" /> + <el-table-column prop="lockTime" label="閿佸畾鏃堕棿" width="80" :formatter="formatDate_T_Date" show-overflow-tooltip="" /> + <el-table-column prop="remarks" label="澶囨敞" show-overflow-tooltip="" /> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" /> + <el-table-column prop="createUserName" label="鍒涘缓浜�" show-overflow-tooltip="" /> + <el-table-column prop="updateUserName" label="淇敼浜�" show-overflow-tooltip="" /> + <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wmsStockQuan:update') || auth('wmsStockQuan:delete')"> + <template #default="scope"> + <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWmsStockQuan(scope.row)" v-auth="'wmsStockQuan:update'"> 缂栬緫 </el-button> + <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWmsStockQuan(scope.row)" v-auth="'wmsStockQuan:delete'"> 鍒犻櫎 </el-button> + </template> + </el-table-column> + </el-table> + <el-pagination + v-model:currentPage="tableParamsWmsStockQuan.page" + v-model:page-size="tableParamsWmsStockQuan.pageSize" + :total="tableParamsWmsStockQuan.total" + :page-sizes="[10, 20, 50, 100, 200, 500]" + small="" + background="" + @size-change="handleSizeChangeWmsStockQuan" + @current-change="handleCurrentChangeWmsStockQuan" + layout="total, sizes, prev, pager, next, jumper" + /> + <printDialogWmsStockQuan + ref="printDialogRefWmsStockQuan" + :title="printWmsStockQuanTitle" + @reloadTable="handleQueryWmsStockQuan" /> + <editDialogWmsStockQuan + ref="editDialogRefWmsStockQuan" + :title="editWmsStockQuanTitle" + @reloadTable="handleQueryWmsStockQuan" + /> + </el-card> + </div> +</template> + +<script lang="ts" setup="" name="wmsStockQuan"> + import { ref,onMounted } from "vue"; + import { ElMessageBox, ElMessage } from "element-plus"; + import { auth } from '/@/utils/authFunction'; + import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; + import { formatDate,formatDate_T_Date,formatDate_T_Time,defaultTimeRange } from '/@/utils/formatTime'; + import { exportPageExcel } from '/@/utils/exportPageExcel' //寮曞叆瀵煎嚭鏂规硶 + + + import printDialogWmsStockQuan from '/@/views/system/print/component/hiprint/preview.vue' + import { pageWmsStockQuan, deleteWmsStockQuan,importExcelWmsStockQuan,downloadExcelTemplateWmsStockQuan } from '/@/api/main/WmsStockQuan/wmsStockQuan'; + import { getAPI } from '/@/utils/axios-utils'; + import { SysEnumApi } from '/@/api-services/api'; + import commonFunction from '/@/utils/commonFunction'; + + const getEnumStockStatusData_Index = ref<any>([]); + const getEnumLockStatusData_Index = ref<any>([]); + + const { getEnumDesc } = commonFunction(); + + /***************************************************[搴撳瓨淇℃伅鎿嶄綔]寮�濮�***************************************************/ + const showAdvanceQueryUIWmsStockQuan = ref(false); + const tableRefWmsStockQuan = ref(null); + const printDialogRefWmsStockQuan = ref(); + const editDialogRefWmsStockQuan = ref(); + const loadingWmsStockQuan = ref(false); + const disabled_btnWmsStockQuan = ref(false); + const tableDataWmsStockQuan = ref<any>([]); + const queryParamsWmsStockQuan = ref<any>({}); + const tableParamsWmsStockQuan = ref({ + page: 1, + pageSize: 10, + total: 0, + }); + + const printWmsStockQuanTitle = ref(""); + const editWmsStockQuanTitle = ref(""); + + // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� + const changeAdvanceQueryUIWmsStockQuan = () => { + showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value; + } + + // 鏌ヨ搴撳瓨淇℃伅 + const handleQueryWmsStockQuan = async () => { + loadingWmsStockQuan.value = true; + disabled_btnWmsStockQuan.value = true; + var res = await pageWmsStockQuan(Object.assign(queryParamsWmsStockQuan.value, tableParamsWmsStockQuan.value)); + if(res.data.type=="success"){ + tableDataWmsStockQuan.value = res.data.result?.items ?? []; + tableParamsWmsStockQuan.value.total = res.data.result?.total; + } + loadingWmsStockQuan.value = false; + disabled_btnWmsStockQuan.value = false; + }; + + // 閲嶇疆搴撳瓨淇℃伅鏌ヨ + const resetWmsStockQuan = async () => { + queryParamsWmsStockQuan.value = {} + }; + + // 搴撳瓨淇℃伅鍒楁帓搴� + const sortChangeWmsStockQuan = async (column: any) => { + queryParamsWmsStockQuan.value.field = column.prop; + queryParamsWmsStockQuan.value.order = column.order; + await handleQueryWmsStockQuan(); + }; + + // 鎵撳紑鏂板搴撳瓨淇℃伅椤甸潰 + const openAddWmsStockQuan = () => { + editWmsStockQuanTitle.value = '娣诲姞搴撳瓨淇℃伅'; + editDialogRefWmsStockQuan.value.openDialog(1,{}); + }; + + // 鎵撳紑鎵撳嵃搴撳瓨淇℃伅椤甸潰 + const openPrintWmsStockQuan = async (row: any) => { + printWmsStockQuanTitle.value = '鎵撳嵃搴撳瓨淇℃伅'; + } + + // 鎵撳紑缂栬緫搴撳瓨淇℃伅椤甸潰 + const openEditWmsStockQuan = (row: any) => { + editWmsStockQuanTitle.value = '缂栬緫搴撳瓨淇℃伅'; + editDialogRefWmsStockQuan.value.openDialog(2,row); + }; + + // 鍒犻櫎搴撳瓨淇℃伅 + const delWmsStockQuan = (row: any) => { + ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(async () => { + loadingWmsStockQuan.value = true; + var ret = await deleteWmsStockQuan(row); + if(ret.data.type=="success"){ + ElMessage.success("鍒犻櫎鎴愬姛"); + } + loadingWmsStockQuan.value = false; + handleQueryWmsStockQuan(); + }) + .catch(() => {}); + }; + + // 鏀瑰彉搴撳瓨淇℃伅椤甸潰瀹归噺 + const handleSizeChangeWmsStockQuan = (val: number) => { + tableParamsWmsStockQuan.value.pageSize = val; + handleQueryWmsStockQuan(); + }; + + // 鏀瑰彉搴撳瓨淇℃伅椤电爜搴忓彿 + const handleCurrentChangeWmsStockQuan = (val: number) => { + tableParamsWmsStockQuan.value.page = val; + handleQueryWmsStockQuan(); + }; + +/***************************************************[搴撳瓨淇℃伅鎿嶄綔]缁撴潫***************************************************/ +/***************************************************[搴撳瓨淇℃伅瀵煎嚭]寮�濮�***************************************************/ +//瀹氫箟褰撳墠椤甸潰鐨勬柟娉曠粍 +const functionMapWmsStockQuan = { + getEnumStockStatusData_Index, + getEnumLockStatusData_Index, + formatDate_T_Date, + formatDate_T_Time +}; +//鐐瑰嚮瀵煎嚭鎸夐挳 +const handleExportExcelWmsStockQuan = async (formData:Blob) => { + loadingWmsStockQuan.value = true; + disabled_btnWmsStockQuan.value = true; + var new_tableParamsWmsStockQuan=JSON.parse(JSON.stringify(tableParamsWmsStockQuan.value)); + new_tableParamsWmsStockQuan.page = 1; + new_tableParamsWmsStockQuan.pageSize = 100000; + var res = await pageWmsStockQuan(Object.assign(queryParamsWmsStockQuan.value, new_tableParamsWmsStockQuan)); + if(res.data.type=="success"){ + exportExcelWmsStockQuan(res.data.result?.items ?? []); + } + loadingWmsStockQuan.value = false; + disabled_btnWmsStockQuan.value = false; +}; +//瀵煎嚭 +const exportExcelWmsStockQuan = async (exportDataList:Array) => { + exportPageExcel(exportDataList, tableRefWmsStockQuan,"搴撳瓨淇℃伅",functionMapWmsStockQuan); +}; +/***************************************************[搴撳瓨淇℃伅瀵煎嚭]缁撴潫***************************************************/ + // 搴撳瓨淇℃伅椤甸潰鍔犺浇鏃� + onMounted(async () => { + getEnumStockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('StockStatusEnum')).data.result ?? []; + getEnumLockStatusData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('LockStatusEnum')).data.result ?? []; + }); + + handleQueryWmsStockQuan(); +</script> +<style scoped> +:deep(.el-input), +:deep(.el-select), +:deep(.el-input-number) { + width: 100%; +} +</style> + diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs new file mode 100644 index 0000000..50b71cc --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs @@ -0,0 +1,383 @@ +锘縰sing Admin.NET.Core; +using System.ComponentModel.DataAnnotations; + +namespace Admin.NET.Application; + + /// <summary> + /// 搴撳瓨淇℃伅鍩虹杈撳叆鍙傛暟 + /// </summary> + public class WmsStockQuanBaseInput + { + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public virtual string PlaceCode { get; set; } + + /// <summary> + /// 杩涘叆鏃堕棿 + /// </summary> + public virtual DateTime? InTime { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public virtual string Upi { get; set; } + + /// <summary> + /// 閮ㄤ欢鍚嶇О + /// </summary> + public virtual string DetailName { get; set; } + + /// <summary> + /// 鎵规 + /// </summary> + public virtual string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public virtual string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public virtual string PackageCode { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public virtual float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public virtual float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public virtual float Thk { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�� + /// </summary> + public virtual Admin.NET.Application.StockStatusEnum StockStatus { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�佸悕绉� + /// </summary> + public virtual string StockStatusName { get; set; } + + /// <summary> + /// 鎿嶄綔鍘熷洜 + /// </summary> + public virtual string OperReason { get; set; } + + /// <summary> + /// 鎿嶄綔浜� + /// </summary> + public virtual string OperUser { get; set; } + + /// <summary> + /// 鎿嶄綔鏃堕棿 + /// </summary> + public virtual DateTime? OperTime { get; set; } + + /// <summary> + /// 閿佸畾鐘舵�� + /// </summary> + public virtual Admin.NET.Application.LockStatusEnum LockStatus { get; set; } + + /// <summary> + /// 閿佸畾鍘熷洜 + /// </summary> + public virtual string LockReason { get; set; } + + /// <summary> + /// 閿佸畾浜� + /// </summary> + public virtual string LockUser { get; set; } + + /// <summary> + /// 閿佸畾鏃堕棿 + /// </summary> + public virtual DateTime? LockTime { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + public virtual string Remarks { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public virtual DateTime? CreateTime { get; set; } + + /// <summary> + /// 淇敼鏃堕棿 + /// </summary> + public virtual DateTime? UpdateTime { get; set; } + + /// <summary> + /// 鍒涘缓浜篒d + /// </summary> + public virtual long? CreateUserId { get; set; } + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public virtual string CreateUserName { get; set; } + + /// <summary> + /// 淇敼浜篒d + /// </summary> + public virtual long? UpdateUserId { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public virtual string UpdateUserName { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + public virtual bool IsDelete { get; set; } + + } + + /// <summary> + /// 搴撳瓨淇℃伅鍒嗛〉鏌ヨ杈撳叆鍙傛暟 + /// </summary> + public class WmsStockQuanInput : BasePageInput + { + /// <summary> + /// 鍏抽敭瀛楁煡璇� + /// </summary> + public string? SearchKey { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public string? PlaceCode { get; set; } + + /// <summary> + /// 杩涘叆鏃堕棿 + /// </summary> + public DateTime? InTime { get; set; } + + /// <summary> + /// 杩涘叆鏃堕棿鑼冨洿 + /// </summary> + public List<DateTime?> InTimeRange { get; set; } + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public string? Upi { get; set; } + + /// <summary> + /// 閮ㄤ欢鍚嶇О + /// </summary> + public string? DetailName { get; set; } + + /// <summary> + /// 鎵规 + /// </summary> + public string? PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public string? OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public string? PackageCode { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public float? Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public float? Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public float? Thk { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�� + /// </summary> + public Admin.NET.Application.StockStatusEnum? StockStatus { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�佸悕绉� + /// </summary> + public string? StockStatusName { get; set; } + + /// <summary> + /// 鎿嶄綔鍘熷洜 + /// </summary> + public string? OperReason { get; set; } + + /// <summary> + /// 鎿嶄綔浜� + /// </summary> + public string? OperUser { get; set; } + + /// <summary> + /// 鎿嶄綔鏃堕棿 + /// </summary> + public DateTime? OperTime { get; set; } + + /// <summary> + /// 鎿嶄綔鏃堕棿鑼冨洿 + /// </summary> + public List<DateTime?> OperTimeRange { get; set; } + /// <summary> + /// 閿佸畾鐘舵�� + /// </summary> + public Admin.NET.Application.LockStatusEnum? LockStatus { get; set; } + + /// <summary> + /// 閿佸畾鍘熷洜 + /// </summary> + public string? LockReason { get; set; } + + /// <summary> + /// 閿佸畾浜� + /// </summary> + public string? LockUser { get; set; } + + /// <summary> + /// 閿佸畾鏃堕棿 + /// </summary> + public DateTime? LockTime { get; set; } + + /// <summary> + /// 閿佸畾鏃堕棿鑼冨洿 + /// </summary> + public List<DateTime?> LockTimeRange { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string? Remarks { get; set; } + + } + + /// <summary> + /// 搴撳瓨淇℃伅澧炲姞杈撳叆鍙傛暟 + /// </summary> + public class AddWmsStockQuanInput : WmsStockQuanBaseInput + { + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + [Required(ErrorMessage = "搴撲綅缂栫爜涓嶈兘涓虹┖")] + public override string PlaceCode { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + [Required(ErrorMessage = "閮ㄤ欢鏉$爜涓嶈兘涓虹┖")] + public override string Upi { get; set; } + + /// <summary> + /// 閮ㄤ欢鍚嶇О + /// </summary> + [Required(ErrorMessage = "閮ㄤ欢鍚嶇О涓嶈兘涓虹┖")] + public override string DetailName { get; set; } + + /// <summary> + /// 鎵规 + /// </summary> + [Required(ErrorMessage = "鎵规涓嶈兘涓虹┖")] + public override string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + [Required(ErrorMessage = "璁㈠崟鍙蜂笉鑳戒负绌�")] + public override string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + [Required(ErrorMessage = "鍖呰鍙蜂笉鑳戒负绌�")] + public override string PackageCode { get; set; } + + /// <summary> + /// 闀� + /// </summary> + [Required(ErrorMessage = "闀夸笉鑳戒负绌�")] + public override float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + [Required(ErrorMessage = "瀹戒笉鑳戒负绌�")] + public override float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + [Required(ErrorMessage = "鍘氫笉鑳戒负绌�")] + public override float Thk { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�� + /// </summary> + [Required(ErrorMessage = "搴撳瓨鐘舵�佷笉鑳戒负绌�")] + public override Admin.NET.Application.StockStatusEnum StockStatus { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�佸悕绉� + /// </summary> + [Required(ErrorMessage = "搴撳瓨鐘舵�佸悕绉颁笉鑳戒负绌�")] + public override string StockStatusName { get; set; } + + /// <summary> + /// 閿佸畾鐘舵�� + /// </summary> + [Required(ErrorMessage = "閿佸畾鐘舵�佷笉鑳戒负绌�")] + public override Admin.NET.Application.LockStatusEnum LockStatus { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")] + public override bool IsDelete { get; set; } + + } + + /// <summary> + /// 搴撳瓨淇℃伅鍒犻櫎杈撳叆鍙傛暟 + /// </summary> + public class DeleteWmsStockQuanInput : BaseIdInput + { + } + + /// <summary> + /// 搴撳瓨淇℃伅鏇存柊杈撳叆鍙傛暟 + /// </summary> + public class UpdateWmsStockQuanInput : AddWmsStockQuanInput + { + /// <summary> + /// 涓婚敭Id + /// </summary> + [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")] + public long Id { get; set; } + + } + + /// <summary> + /// 搴撳瓨淇℃伅涓婚敭鏌ヨ杈撳叆鍙傛暟 + /// </summary> + public class QueryByIdWmsStockQuanInput : DeleteWmsStockQuanInput + { + + } diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs new file mode 100644 index 0000000..cf82253 --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs @@ -0,0 +1,150 @@ +锘縩amespace Admin.NET.Application; + +/// <summary> +/// 搴撳瓨淇℃伅杈撳嚭鍙傛暟 +/// </summary> +public class WmsStockQuanOutput +{ + /// <summary> + /// 涓婚敭Id + /// </summary> + public long? Id { get; set; } + + /// <summary> + /// 搴撲綅缂栫爜 + /// </summary> + public string PlaceCode { get; set; } + + /// <summary> + /// 杩涘叆鏃堕棿 + /// </summary> + public DateTime? InTime { get; set; } + + /// <summary> + /// 閮ㄤ欢鏉$爜 + /// </summary> + public string Upi { get; set; } + + /// <summary> + /// 閮ㄤ欢鍚嶇О + /// </summary> + public string DetailName { get; set; } + + /// <summary> + /// 鎵规 + /// </summary> + public string PlanNo { get; set; } + + /// <summary> + /// 璁㈠崟鍙� + /// </summary> + public string OrderId { get; set; } + + /// <summary> + /// 鍖呰鍙� + /// </summary> + public string PackageCode { get; set; } + + /// <summary> + /// 闀� + /// </summary> + public float Length { get; set; } + + /// <summary> + /// 瀹� + /// </summary> + public float Width { get; set; } + + /// <summary> + /// 鍘� + /// </summary> + public float Thk { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�� + /// </summary> + public Admin.NET.Application.StockStatusEnum StockStatus { get; set; } + + /// <summary> + /// 搴撳瓨鐘舵�佸悕绉� + /// </summary> + public string StockStatusName { get; set; } + + /// <summary> + /// 鎿嶄綔鍘熷洜 + /// </summary> + public string OperReason { get; set; } + + /// <summary> + /// 鎿嶄綔浜� + /// </summary> + public string OperUser { get; set; } + + /// <summary> + /// 鎿嶄綔鏃堕棿 + /// </summary> + public DateTime? OperTime { get; set; } + + /// <summary> + /// 閿佸畾鐘舵�� + /// </summary> + public Admin.NET.Application.LockStatusEnum LockStatus { get; set; } + + /// <summary> + /// 閿佸畾鍘熷洜 + /// </summary> + public string LockReason { get; set; } + + /// <summary> + /// 閿佸畾浜� + /// </summary> + public string LockUser { get; set; } + + /// <summary> + /// 閿佸畾鏃堕棿 + /// </summary> + public DateTime? LockTime { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + public string Remarks { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public DateTime? CreateTime { get; set; } + + /// <summary> + /// 淇敼鏃堕棿 + /// </summary> + public DateTime? UpdateTime { get; set; } + + /// <summary> + /// 鍒涘缓浜篒d + /// </summary> + public long? CreateUserId { get; set; } + + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string CreateUserName { get; set; } + + /// <summary> + /// 淇敼浜篒d + /// </summary> + public long? UpdateUserId { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public string UpdateUserName { get; set; } + + /// <summary> + /// 杞垹闄� + /// </summary> + public bool IsDelete { get; set; } + + } + + diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs new file mode 100644 index 0000000..fe70b9d --- /dev/null +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs @@ -0,0 +1,237 @@ +锘縰sing Admin.NET.Core.Service; +using Admin.NET.Application.Entity; +using Microsoft.AspNetCore.Http; +using System.Data; +using System.Web; +using System.Text; +namespace Admin.NET.Application; +/// <summary> +/// 搴撳瓨淇℃伅鏈嶅姟 +/// </summary> +[ApiDescriptionSettings(ApplicationConst.WmsStockQuanGroupName, Order = 100)] +public class WmsStockQuanService : IDynamicApiController, ITransient +{ + private readonly SqlSugarRepository<WmsStockQuan> _rep; + public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep) + { + _rep = rep; + } + + /// <summary> + /// 鍒嗛〉鏌ヨ搴撳瓨淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Page")] + [Description("WmsStockQuan/Page")] + public async Task<SqlSugarPagedList<WmsStockQuanOutput>> Page(WmsStockQuanInput input) + { + var query = CommonPageFilter(input); + return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize); + } + + /// <summary> + /// 涓嶅垎椤垫煡璇㈠簱瀛樹俊鎭� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet] + [ApiDescriptionSettings(Name = "List")] + [Description("WmsStockQuan/List")] + public async Task<List<WmsStockQuanOutput>> List([FromQuery] WmsStockQuanInput input) + { + var query = CommonPageFilter(input); + return await query.OrderBuilder(input, "", "Id").Select<WmsStockQuanOutput>().ToListAsync(); + } + + /// <summary> + /// 澧炲姞搴撳瓨淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Add")] + [Description("WmsStockQuan/Add")] + public async Task<long> Add(AddWmsStockQuanInput input) + { + var entity = input.Adapt<WmsStockQuan>(); + + //閲嶅鎬ч獙璇� + await CheckExist(entity); + + await _rep.InsertAsync(entity); + return entity.Id; + } + + /// <summary> + /// 鍒犻櫎搴撳瓨淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Delete")] + [Description("WmsStockQuan/Delete")] + public async Task Delete(DeleteWmsStockQuanInput input) + { + var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002); + //await _rep.FakeDeleteAsync(entity); //鍋囧垹闄� + await _rep.DeleteAsync(entity); //鐪熷垹闄� + } + + /// <summary> + /// 鏇存柊搴撳瓨淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "Update")] + [Description("WmsStockQuan/Update")] + public async Task Update(UpdateWmsStockQuanInput input) + { + var entity = input.Adapt<WmsStockQuan>(); + + //閲嶅鎬ч獙璇� + await CheckExist(entity,true); + + await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + } + + /// <summary> + /// 鑾峰彇搴撳瓨淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet] + [ApiDescriptionSettings(Name = "Detail")] + [Description("WmsStockQuan/Detail")] + public async Task<WmsStockQuan> Detail([FromQuery] QueryByIdWmsStockQuanInput input) + { + return await _rep.GetFirstAsync(u => u.Id == input.Id); + } + + + + + + + #region 绉佹湁鏂规硶 + + /// <summary> + /// 鍏叡鏌ヨ搴撳瓨淇℃伅鏉′欢 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + private ISugarQueryable<WmsStockQuanOutput> CommonPageFilter(WmsStockQuanInput input) + { + var query = _rep.AsQueryable() + .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => + u.PlaceCode.Contains(input.SearchKey.Trim()) + || u.Upi.Contains(input.SearchKey.Trim()) + || u.DetailName.Contains(input.SearchKey.Trim()) + || u.PlanNo.Contains(input.SearchKey.Trim()) + || u.OrderId.Contains(input.SearchKey.Trim()) + || u.PackageCode.Contains(input.SearchKey.Trim()) + || u.StockStatusName.Contains(input.SearchKey.Trim()) + || u.OperReason.Contains(input.SearchKey.Trim()) + || u.OperUser.Contains(input.SearchKey.Trim()) + || u.LockReason.Contains(input.SearchKey.Trim()) + || u.LockUser.Contains(input.SearchKey.Trim()) + || u.Remarks.Contains(input.SearchKey.Trim()) + || u.CreateUserName.Contains(input.SearchKey.Trim()) + || u.UpdateUserName.Contains(input.SearchKey.Trim()) + ) + .WhereIF(!string.IsNullOrWhiteSpace(input.PlaceCode), u => u.PlaceCode.Contains(input.PlaceCode.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.Upi), u => u.Upi.Contains(input.Upi.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.DetailName.Contains(input.DetailName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim())) + .WhereIF(input.StockStatus.HasValue, u => u.StockStatus == input.StockStatus) + .WhereIF(!string.IsNullOrWhiteSpace(input.StockStatusName), u => u.StockStatusName.Contains(input.StockStatusName.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.OperReason), u => u.OperReason.Contains(input.OperReason.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.OperUser), u => u.OperUser.Contains(input.OperUser.Trim())) + .WhereIF(input.LockStatus.HasValue, u => u.LockStatus == input.LockStatus) + .WhereIF(!string.IsNullOrWhiteSpace(input.LockReason), u => u.LockReason.Contains(input.LockReason.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.LockUser), u => u.LockUser.Contains(input.LockUser.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.Remarks), u => u.Remarks.Contains(input.Remarks.Trim())) + .Select<WmsStockQuanOutput>(); + if(input.InTimeRange != null && input.InTimeRange.Count >0) + { + DateTime? start= input.InTimeRange[0].Value.AddDays(-1); + query = query.WhereIF(start.HasValue, u => u.InTime > start); + if (input.InTimeRange.Count >1 && input.InTimeRange[1].HasValue) + { + var end = input.InTimeRange[1].Value.AddDays(1); + query = query.Where(u => u.InTime < end); + } + } + if(input.OperTimeRange != null && input.OperTimeRange.Count >0) + { + DateTime? start= input.OperTimeRange[0].Value.AddDays(-1); + query = query.WhereIF(start.HasValue, u => u.OperTime > start); + if (input.OperTimeRange.Count >1 && input.OperTimeRange[1].HasValue) + { + var end = input.OperTimeRange[1].Value.AddDays(1); + query = query.Where(u => u.OperTime < end); + } + } + if(input.LockTimeRange != null && input.LockTimeRange.Count >0) + { + DateTime? start= input.LockTimeRange[0].Value.AddDays(-1); + query = query.WhereIF(start.HasValue, u => u.LockTime > start); + if (input.LockTimeRange.Count >1 && input.LockTimeRange[1].HasValue) + { + var end = input.LockTimeRange[1].Value.AddDays(1); + query = query.Where(u => u.LockTime < end); + } + } + return query; + } + + /// <summary> + /// 閲嶅鎬ч獙璇� + /// </summary> + /// <param name="input">楠岃瘉瀵硅薄</param> + /// <param name="isEdit">鏄惁鏄紪杈�</param> + /// <returns></returns> + private async Task CheckExist( WmsStockQuan input,bool isEdit=false) + { + + + + //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲� + + + //娌℃湁閰嶇疆鍗曠嫭鏍¢獙锛屼笉闇�瑕侀獙閲� + } + + /// <summary> + /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇� + /// </summary> + /// <param name="inputs"></param> + /// <returns></returns> + private async Task CheckExisitForImport(List<WmsStockQuan> inputs) + { + if (inputs?.Count <= 0) + { + throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖"); + } + //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + + + + + + + + + //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + + + + } + #endregion + +} + diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs index 22bb8d6..368ac29 100644 --- a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs +++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs @@ -234,7 +234,7 @@ } - public bool InboundFinishConfirm(string stationCode, out string msg) + public bool InboundFinishConfirm(string stationCode, bool value, out string msg) { try { @@ -242,10 +242,10 @@ var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); - MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_InboundFinishConfirm, true, view_stationObj.W_DataFinish); + MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_InboundFinishConfirm, value, view_stationObj.W_DataFinish); if (!b2.result) { - msg = string.Format("鍚慡tation鍦板潃{0} 鍏ュ簱瀹屾垚纭 鍐� " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + msg = string.Format("鍚慡tation鍦板潃{0} 鍏ュ簱瀹屾垚纭 鍐� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, stationObj.W_InboundFinishConfirm); return false; } @@ -262,7 +262,7 @@ } } - public bool OutboundFinishConfirm(string stationCode, out string msg) + public bool OutboundFinishConfirm(string stationCode, bool value, out string msg) { try { @@ -270,10 +270,10 @@ var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); - MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_OutboundFinishConfirm, true, view_stationObj.W_OutboundFinishConfirm); + MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_OutboundFinishConfirm, value, view_stationObj.W_OutboundFinishConfirm); if (!b2.result) { - msg = string.Format("鍚慡tation 鍑哄簱浠诲姟瀹屾垚纭 鍦板潃{0} 鍐� " + true + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, + msg = string.Format("鍚慡tation 鍑哄簱浠诲姟瀹屾垚纭 鍦板潃{0} 鍐� " + value + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg, stationObj.W_OutboundFinishConfirm); return false; } diff --git a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs index b6b350d..ab94395 100644 --- a/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs +++ b/SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs @@ -99,7 +99,7 @@ /// <param name="value"></param> /// <returns></returns> [OperationContract] - SdaResEntity InboundFinishConfirm(int deviceId, string stationCode); + SdaResEntity InboundFinishConfirm(int deviceId, bool value, string stationCode); /// <summary> /// 鍑哄簱瀹屾垚宸茬‘璁� @@ -108,7 +108,7 @@ /// <param name="value"></param> /// <returns></returns> [OperationContract] - SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode); + SdaResEntity OutboundFinishConfirm(int deviceId, bool value, string stationCode); /// <summary> /// 鍐欏叆鍏ュ簱浠诲姟淇℃伅 diff --git a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs index 6abd3ce..90b9047 100644 --- a/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs +++ b/SDA/iWareSda/Devices/4-Station/StationService/StationService.cs @@ -444,7 +444,7 @@ /// <param name="deviceId"></param> /// <param name="value"></param> /// <returns></returns> - public SdaResEntity InboundFinishConfirm(int deviceId, string stationCode) + public SdaResEntity InboundFinishConfirm(int deviceId, bool value, string stationCode) { SdaResEntity _SdaResEntity = new SdaResEntity(); try @@ -457,7 +457,7 @@ var Station = StationResult.resData as StationEntity; string msg = ""; - var result = Station.InboundFinishConfirm(stationCode, out msg); + var result = Station.InboundFinishConfirm(stationCode, value, out msg); _SdaResEntity.result = result; _SdaResEntity.resMsg = msg; return _SdaResEntity; @@ -476,7 +476,7 @@ /// <param name="deviceId"></param> /// <param name="value"></param> /// <returns></returns> - public SdaResEntity OutboundFinishConfirm(int deviceId, string stationCode) + public SdaResEntity OutboundFinishConfirm(int deviceId, bool value, string stationCode) { SdaResEntity _SdaResEntity = new SdaResEntity(); try @@ -489,7 +489,7 @@ var Station = StationResult.resData as StationEntity; string msg = ""; - var result = Station.OutboundFinishConfirm(stationCode, out msg); + var result = Station.OutboundFinishConfirm(stationCode, value, out msg); _SdaResEntity.result = result; _SdaResEntity.resMsg = msg; return _SdaResEntity; -- Gitblit v1.9.3