CC/iWareCC_ASRS/App.config
@@ -35,7 +35,7 @@ <add key="IsEnableNewInStorePlace" value="false"/> </appSettings> <connectionStrings> <add name="WmsDBModel" connectionString="data source=localhost;initial catalog=LA24030_LuLiPackageLine;persist security info=True;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/> <add name="WmsDBModel" connectionString="data source=172.17.1.111;initial catalog=LA24030_LuLiPackageLine;persist security info=True;user id=sa;password=admin@123;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/> CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -1,9 +1,11 @@ using iWareCommon.Common.Globle; using Admin.NET.Application; using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareModel.EnumType.XiGangPublicCommon; using iWareSql.DataAccess; using iWareSql.DBModel; using iWareSql.WmsDBModel; using System; using System.Collections.Generic; using System.Linq; @@ -20,6 +22,91 @@ /// </summary> public class MyExtendHelper { /// <summary> /// å¤ç 表 mes_order_gather /// </summary> /// <param name="wmsDB"></param> /// <param name="package"></param> /// <param name="qitaoValue"></param> /// <param name="_UnlinePerson"></param> /// <param name="errMsg"></param> /// <returns></returns> public static bool HandlerOrderGather(WmsDBModel wmsDB, mes_package_gather package, string qitaoValue, string _UnlinePerson, out string errMsg) { errMsg = ""; //å¤ç表 mes_order_gather if (package == null) { return true; } var isAddOrder = false; var packageList = wmsDB.mes_package_gather.Where(x => x.Info5 == package.Info5).ToList(); if (packageList == null || packageList?.Count == 0) { errMsg = $"æ²¡ææ¾å°ç产åå·{package.Info5}çæ±æ»æ°æ®"; return false; } var order = wmsDB.mes_order_gather.Where(x => x.Info5 == package.Info5).FirstOrDefault(); if (order != null) { } else { order = new mes_order_gather() { Id = Yitter.IdGenerator.YitIdHelper.NextId(), Info5 = package.Info5, OrderId = package.OrderId, PlanNo = package.PlanNo, }; isAddOrder = true; } order.PackageNum = packageList.Count(); order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.å·²ä¸çº¿).Count(); order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum; order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13)); order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.å·²ä¸çº¿).Sum(x => Convert.ToDecimal(x.Info13)); order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea; order.IsKitting = qitaoValue == "é½å¥" ? true : false; var order_unLine = false; //æ¥è¯¢ä¸ä¸ä¸ªå æ¯ä¸æ¯å±äºè¯¥è®¢å var newLineQueue = wmsDB.mes_package_linequeue.OrderBy(x => x.Id).FirstOrDefault(); if (newLineQueue != null && newLineQueue.Info5 != order.Info5) { //è¡¨ç¤ºæ¯ åæ¢ æ°è®¢åäºï¼è¯¥è®¢åè¦æ´æ°ä¸º å·²ä¸çº¿ã order_unLine = true; } else { //å¤æè¯¥è®¢åæ¯å¦å·²ä¸çº¿ if (order.PackageNum == order.UnLinePackageNum) { order_unLine = true; } } //å¤æè¯¥è®¢åæ¯å¦å·²ä¸çº¿ if (order_unLine) { order.IsUnline = true; order.UnlineTime = DateTime.Now; order.UnlinePerson = _UnlinePerson; } else { order.IsUnline = false; } if (isAddOrder) { wmsDB.mes_order_gather.Add(order); } return true; } /// <summary> /// é 置缺æåå @@ -517,270 +604,6 @@ #endregion /// <summary> /// æ°å»ºè½¬è¿ä»»å¡ /// </summary> /// <param name="flag">1:转移å°1014ä½ç½® 2:转移å°ç«ä½åºä¸ 3:1009å°1011 4:ç«ä½åºå°1014ä½ç½® </param> /// <param name="rgvEDevice">RGV设å¤å·</param> /// <param name="user"></param> /// <param name="store"></param> /// <returns></returns> public static FunRetEntity AddTransferTask(AddTransferTaskEnum flag, EDevice rgvEDevice, SysUser user, V_AllStore store) { FunRetEntity fr = new FunRetEntity(); var errMsg = ""; var remark = "æ°å¢è½¬è¿ä»»å¡"; try { #region äºå¡ #endregion using (DbModel edm = new DbModel()) { //å¢å éªè¯ ãEditBy shaocx,2022-04-28ã switch (flag) { case AddTransferTaskEnum.ä½ç½®1011转移å°1014ä½ç½®: case AddTransferTaskEnum.ä½ç½®1011转移å°ç«ä½åºä¸: //廿è¿ä¸ªéªè¯ï¼åé¢å 许å建任å¡å°±åå»ºå§ ãEditBy shaocx,2022-05-15ã /* var isAllow = IsAllowCreateTaskForInStore(edm, ref errMsg); if (!isAllow) { return FunRetEntity.Fail(errMsg); } //*/ break; } using (var trans = edm.Database.BeginTransaction()) { try { Task_Main mainTask = new Task_Main(); mainTask.IsVirtual = false;//éèæå ¥åº mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("TR"); mainTask.TaskName = "空æè½¬è¿"; #region è·åä»»å¡èµ·ç¹ //èµ·ç¹ var realSourcePlace = ""; Base_Station sourcePlace = null; if (flag == AddTransferTaskEnum.ç«ä½åºå°1014ä½ç½®) {//4:ç«ä½åºå°1014ä½ç½® var srmStore = MyExtendHelper.FindStoreForEmptySalverTo1014(edm, ref errMsg); if (srmStore == null) { return FunRetEntity.Fail(errMsg); } store = ClassHelper.RotationMapping<V_AllStore, V_Store>(srmStore); sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm); realSourcePlace = sourcePlace.SrmStationCode; //è®°å½åºå [EditBy shaocx,2022-05-02] var device = BusinessHelper.GetSrmDeviceByPlaceNo(sourcePlace.SrmStationCode); mainTask.Area = ((int)device).ToString(); } else if (flag == AddTransferTaskEnum.ä½ç½®1014å°1020) {//5:ä½ç½®1014å°1020 sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm); realSourcePlace = sourcePlace.RgvStationCode; } else { var getSourcePlaceResult = StationHandler.GetTargtStationForAddTransferTask(edm, rgvEDevice, ref errMsg, ref sourcePlace); if (getSourcePlaceResult.result == false) return getSourcePlaceResult; realSourcePlace = sourcePlace.RgvStationCode; } mainTask.SourcePlace = sourcePlace.Id; mainTask.RealSourcePlace = realSourcePlace; #endregion #region è·åä¸é´ç¹åç®æ ç¹ Base_Station toPlace = null; Base_Station midPlace = null; var getMidToPlaceResult = MainTaskHandler.GetMidToPlaceForAddTransferTask(sourcePlace, flag, edm, ref errMsg, ref toPlace, ref midPlace, ref mainTask); if (getMidToPlaceResult.result == false) return getMidToPlaceResult; #endregion SetTaskTypeStateAndInOutFlagForMainTask(flag, ref mainTask); Base_Salver salver = null; Base_Material newMaterial = null; if (store == null) {//æ°å»ºç©æï¼æ°å»ºæçï¼æ°å»ºç»å®å ³ç³» //ç»å®æçåç«ç¹çå ³ç³» //æ°å»ºç©æ var salverStackCount = GetSalverStackCountForBackToStore(); if (salverStackCount == 0) { //æ¥é return FunRetEntity.Fail("æ ¹æ®1009ç«ç¹çå çµè·åè¿åç«ä½åºçæçæ°ä¸º0"); } newMaterial = MaterialHandler.CreateEmptySlaverMaterial(edm, "空æçè½¬è¿æ¶å建", salverStackCount); //夿æçæ¯å¦åå¨ï¼å¦æåå¨ï¼å°±ä¸éè¦é建ï¼å¦æä¸åå¨ï¼å°±æ°å»ºæç salver = SalverHandler.CreateVirtualSalver(edm, "空æç转è¿"); if (!string.IsNullOrEmpty(errMsg)) { return FunRetEntity.Fail(errMsg); } //ç»å®æçåç©æçå ³ç³» Salver_Material_Handler.CreateCvIRelation(edm, user.Name, salver, newMaterial, remark); //ç»å®æçåç«ç¹çå ³ç³» Salver_Station_Handler.CreateCvPRelation(edm, user.Name, salver, sourcePlace, Salver_V_Station_StateEnum.å ¥åºç»å®, remark); } else { salver = SalverHandler.GetSalveById(edm, store.SalverId); newMaterial = MaterialHandler.GetMaterialById(edm, store.MaterialId); } mainTask.SalverId = salver.Id; mainTask.SalverCode = salver.SalverCode; mainTask.MaterialId = newMaterial.Id; //ç©æä¿¡æ¯ MainTaskHandler.SetMaterialForMainTask(ref mainTask, newMaterial); //åºåå·å订货å·èµå¼ [Editby shaocx,2022-04-05] mainTask.SerialNumber = ""; mainTask.OrderNo = ""; mainTask.CreateTime = mainTask.ModifyTime = mainTask.StartTime = DateTime.Now; mainTask.CreateBy = mainTask.ModifyBy = user.Name; mainTask.CreateId = mainTask.ModifyId = user.ID; mainTask.OperationRemark = "æ·»å "; string taskSequenceGuid = ""; mainTask.TaskSequence = MainTaskHandler.GenerateTaskSequence(edm, ref taskSequenceGuid);//çæä»»å¡åºåå· mainTask.TaskSequenceGuid = taskSequenceGuid; edm.Task_Main.Add(mainTask); edm.SaveChanges();//ä¿å䏿¬¡ï¼æ¤æ¶mainTaskçèªå¢IDå°±æå¼äº var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); var createTime = DateTime.Now; if (flag == AddTransferTaskEnum.ä½ç½®1011转移å°1014ä½ç½®) {//转移å°1014ä½ç½® //å建RGVä»»å¡ FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.空æè½¬è¿å°æçæºå ¥å£, mainTask, salver, sourcePlace, toPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } } else if (flag == AddTransferTaskEnum.ä½ç½®1011转移å°ç«ä½åºä¸) {//转移å°ç«ä½åºä¸ //å建RGVä»»å¡ FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.空æè½¬è¿å°ç«ä½åº, mainTask, salver, sourcePlace, midPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } //å建å åæºä»»å¡ fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.å åæº, user.Name, 2, DeviceTaskTypeEnum.空æè½¬è¿å°ç«ä½åº, mainTask, salver, midPlace, toPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } } else if (flag == AddTransferTaskEnum.ä½ç½®1009å°ä½ç½®1011) {// 3:1009å°1011 //å建RGVä»»å¡ FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.空æç¼åä½è½¬è¿, mainTask, salver, sourcePlace, toPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } } else if (flag == AddTransferTaskEnum.ç«ä½åºå°1014ä½ç½®) {//4:ç«ä½åºå°1014ä½ç½® //å建å åæºä»»å¡ FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.å åæº, user.Name, 1, DeviceTaskTypeEnum.ç«åºç©ºæå°æçæºå ¥å£, mainTask, salver, sourcePlace, midPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } //å建RGVä»»å¡ fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 2, DeviceTaskTypeEnum.ç«åºç©ºæå°æçæºå ¥å£, mainTask, salver, midPlace, toPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } } else if (flag == AddTransferTaskEnum.ä½ç½®1014å°1020) {//5:1014å°1020ä½ç½® //å建RGVä»»å¡ FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.æçæºå ¥å£å°æçæº, mainTask, salver, sourcePlace, toPlace, remark); if (fre.result == false) { throw new Exception(fr.resMsg); } } edm.SaveChanges();//ç¬¬äºæ¬¡ä¿å trans.Commit();//äºå¡æäº¤ } catch (Exception ex) { trans.Rollback(); throw ex; } } return FunRetEntity.Success("æå"); } } catch (System.Exception ex) { throw ex; } } private static void SetTaskTypeStateAndInOutFlagForMainTask(AddTransferTaskEnum flag, ref Task_Main mainTask) { var _InOutFlag = default(MainInOutFlagEnum); var _taskType = default(MainTaskTypeEnum); var _taskState = default(MainTaskStatusEnum); switch (flag) { case AddTransferTaskEnum.ç«ä½åºå°1014ä½ç½®: _taskType = MainTaskTypeEnum.èªå¨åºåº; _taskState = MainTaskStatusEnum.åºåºä¸; _InOutFlag = MainInOutFlagEnum.åºåº; break; case AddTransferTaskEnum.ä½ç½®1009å°ä½ç½®1011: case AddTransferTaskEnum.ä½ç½®1011转移å°1014ä½ç½®: case AddTransferTaskEnum.ä½ç½®1014å°1020: _taskType = MainTaskTypeEnum.空æè½¬è¿; _taskState = MainTaskStatusEnum.å¾ è½¬è¿; _InOutFlag = MainInOutFlagEnum.转è¿; break; case AddTransferTaskEnum.ä½ç½®1011转移å°ç«ä½åºä¸: _taskType = MainTaskTypeEnum.èªå¨å ¥åº; _taskState = MainTaskStatusEnum.å ¥åºä¸; _InOutFlag = MainInOutFlagEnum.å ¥åº; break; default: throw new Exception("䏿¯æçç±»å"); } mainTask.TaskType = Convert.ToInt32(_taskType); mainTask.TaskTypeName = _taskType.ToString(); mainTask.TaskState = Convert.ToInt32(_taskState); mainTask.TaskStateName = _taskState.ToString(); mainTask.InOutFlag = (int)_InOutFlag; mainTask.InOutFlagName = _InOutFlag.ToString(); } /// <summary> /// æ¯å¦å 许ç»1014åéç®æ ç¹æ¯1014çä»»å¡ /// </summary> /// <param name="context"></param> @@ -889,58 +712,7 @@ public static FunRetEntity DoHandler(DbModel context, V_AllStore store, EDevice rgvStationCode) { try { SysUser user = new SysUser() { ID = 0, Name = SysGloble.WCSSystem }; if (rgvStationCode == EDevice.空æç¼å1011) { //夿1014æ¯å¦æç©ºä½ var queryRgvStationCode = ((int)EDevice.æçæºå ¥å£1014).ToString(); V_AllStore my1014Store = null; var isAllow = MyExtendHelper.IsAllowSendTaskToPlace1014(context, queryRgvStationCode, ref my1014Store); if (isAllow) { return AddTransferTask(AddTransferTaskEnum.ä½ç½®1011转移å°1014ä½ç½®, rgvStationCode, user, store); } else { //寻æ¾ç«ä½åºæ¯å¦æåºå return AddTransferTask(AddTransferTaskEnum.ä½ç½®1011转移å°ç«ä½åºä¸, rgvStationCode, user, store); } //*/ //var isGD_HasCatogryForRgvStattion = IsGD_HasCatogryForRgvStattion(queryRgvStationCode); //var store_1014_count = context.V_AllStore.Where(x => x.RgvStationCode == queryRgvStationCode).Count(); //if (store_1014_count > 0 || isGD_HasCatogryForRgvStattion) //{ //} //else //{//1014æ è´§ï¼åå»ºä»»å¡ // return MainTaskHandler.AddTransferTask(AddTransferTaskEnum.转移å°1014ä½ç½®, rgvStationCode, user, store); //} } else if (rgvStationCode == EDevice.空æç¼å1009) { return AddTransferTask(AddTransferTaskEnum.ä½ç½®1009å°ä½ç½®1011, rgvStationCode, user, store); } else if (rgvStationCode == EDevice.æçæºå ¥å£1014) {//æçæºå ¥å£1014夿°å»ºä»ç«ä½åºå«æçä»»å¡ return AddTransferTask(AddTransferTaskEnum.ç«ä½åºå°1014ä½ç½®, rgvStationCode, user, store); } else if (rgvStationCode == EDevice.æçæº1020) {// ä»1014å°1020 return AddTransferTask(AddTransferTaskEnum.ä½ç½®1014å°1020, rgvStationCode, user, store); } return null; } catch (Exception ex) { return FunRetEntity.Fail("æ°å¢ç©ºæç转è¿ä»»å¡å¼å¸¸:" + ex.Message); } } /// <summary> CC/iWareCC_ASRS/ThreadService/01_BZ01¹¤Î»£¨Çå»Ò£¬Ï´°åºó¹¤Î»£©/DataProcess_BZ01.cs
@@ -37,7 +37,7 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ01 = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_BZ01 && SystemValue.isStartedModel) if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ01 && { if (FormCC.IsAllowRunOutMode == true) { CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/DataProcess_RobotBuffer_ModeChange.cs
@@ -33,8 +33,8 @@ Thread.Sleep(2000);//ä¼ç 2ç§ï¼å°ä¼ç åå°åé¢ï¼æ¯ä¸ºäºä¸é¢çcontinueæ¹æ³æ§è¡å䏿¾ç¤ºé误信æ¯çæç¤ºï¼ï¼ï¼ãEditBy shaocx,2022-05-24ã SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_ModeChange && SystemValue.isStartedModel) {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_ModeChange && if ( SystemValue.isStartedModel) { var rgvLocation = StationLocationEnum.BZ39.ToString(); if (FormCC.IsAllowRunOutMode) CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/1¡¢DataProcess_BZ39.cs
@@ -34,7 +34,7 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ39 = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_BZ39 && SystemValue.isStartedModel) if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ39 && { var rgvLocation = StationLocationEnum.BZ39.ToString(); /* @@ -55,15 +55,15 @@ using (WmsDBModel wmsDB = new WmsDBModel()) { //ä¸åæ¦æª /* //è¦æ¯æå·²ä¸åçä»»å¡ï¼å°±ä¸è¦æ§è¡ var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB); var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB,upiCode); if (!isValidate) { SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-æâå·²ä¸åâçä»»å¡ï¼ä¸è½å¤ç,æ¤æ¬¡å¾ªç¯ç»æ"; continue; } //*/ // var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); if (upiObj == null) { @@ -112,20 +112,6 @@ using (StationServiceClient client = new StationServiceClient()) { //ä¸åæ¦æª /* //é¦å å æ¸ ç 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}"); } //*/ var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode, (short)upiObj.Length, CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/2¡¢DataProcess_RobotBuffer_FinishTask.cs
@@ -34,7 +34,7 @@ SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask && SystemValue.isStartedModel) if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask && { var rgvLocation = StationLocationEnum.BZ39.ToString(); var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); @@ -62,11 +62,23 @@ var task = wmsDB.wms_rbline_task.Where(x => x.TaskNo == obj.R_Inbound_TaskID.ToString() && x.RbTaskType == (int)RbTaskTypeEnum.å ¥åºä»»å¡ && x.TaskStatus == (int)TaskStatusEnum.å·²ä¸å).FirstOrDefault(); ).OrderByDescending(x=>x.Id).FirstOrDefault(); if (task == null) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},æ ¹æ® R_InboundNumber:{obj.R_InboundNumber}æ²¡ææ¾å°å·²ä¸åçä»»å¡ "; continue; } else { if (task.TaskStatus == (int)TaskStatusEnum.已宿) { using (StationServiceClient client = new StationServiceClient()) { var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); } continue; } } var upiCode = task.UPI; @@ -125,6 +137,18 @@ wmsDB.SaveChanges(); } } else { //ä¸åæ¦æª //é¦å å æ¸ ç using (StationServiceClient client = new StationServiceClient()) { var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation); } } } } catch (Exception ex) CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/1¡¢DataProcess_RobotBuffer_AutoQiTaoOutbound.cs
@@ -26,8 +26,8 @@ Thread.Sleep(2000);//ä¼ç 2ç§ï¼å°ä¼ç åå°åé¢ï¼æ¯ä¸ºäºä¸é¢çcontinueæ¹æ³æ§è¡å䏿¾ç¤ºé误信æ¯çæç¤ºï¼ï¼ï¼ãEditBy shaocx,2022-05-24ã SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && SystemValue.isStartedModel) {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && if (SystemValue.isStartedModel) { using (WmsDBModel wmsDB = new WmsDBModel()) CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/2¡¢DataProcess_RobotBuffer_IssueOutboundTask.cs
@@ -34,8 +34,8 @@ Thread.Sleep(1000);//ä¼ç 2ç§ï¼å°ä¼ç åå°åé¢ï¼æ¯ä¸ºäºä¸é¢çcontinueæ¹æ³æ§è¡å䏿¾ç¤ºé误信æ¯çæç¤ºï¼ï¼ï¼ãEditBy shaocx,2022-05-24ã SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask && SystemValue.isStartedModel) {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask && if ( SystemValue.isStartedModel) { var rgvLocation = StationLocationEnum.BZ39.ToString(); /* @@ -46,7 +46,7 @@ using (WmsDBModel wmsDB = new WmsDBModel()) { //è¦æ¯æå·²ä¸åçä»»å¡ï¼å°±ä¸è¦æ§è¡ var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB); var isValidate = TaskHandler.ValidateIssueOutTaskForRobotBuffer(wmsDB); if (!isValidate) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = $"{rgvLocation.ToString()}-æâå·²ä¸åâçä»»å¡ï¼ä¸è½å¤ç,æ¤æ¬¡å¾ªç¯ç»æ"; @@ -98,18 +98,18 @@ using (StationServiceClient client = new StationServiceClient()) { //é¦å è¦æ¸ ç var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation); if (!res.result) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}-ä¸ååºåºä»»å¡ 失败,OutboundFinishConfirmAsync è¿å:{res.resMsg}"; continue; } else { Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-ä¸ååºåºä»»å¡ æå,OutboundFinishConfirmAsyncï¼åæ°: ç«ç¹{rgvLocation}"); } //var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, false, 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)); 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}"; CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Outbound/3¡¢DataProcess_RobotBuffer_FinishTaskForOutbound.cs
@@ -25,8 +25,8 @@ Thread.Sleep(500);//ä¼ç 2ç§ï¼å°ä¼ç åå°åé¢ï¼æ¯ä¸ºäºä¸é¢çcontinueæ¹æ³æ§è¡å䏿¾ç¤ºé误信æ¯çæç¤ºï¼ï¼ï¼ãEditBy shaocx,2022-05-24ã SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = string.Empty; try { if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTaskForOutbound && SystemValue.isStartedModel) {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTaskForOutbound && if (SystemValue.isStartedModel) { var rgvLocation = StationLocationEnum.BZ39.ToString(); var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); @@ -53,11 +53,23 @@ var task = wmsDB.wms_rbline_task.Where(x => x.TaskNo == obj.R_Outbound_TaskID.ToString() && x.RbTaskType == (int)RbTaskTypeEnum.åºåºä»»å¡ && x.TaskStatus == (int)TaskStatusEnum.å·²ä¸å).FirstOrDefault(); ).OrderByDescending(x => x.Id).FirstOrDefault(); if (task == null) { SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()},æ ¹æ® R_OutboundNumber:{obj.R_OutboundNumber}æ²¡ææ¾å°å·²ä¸åçä»»å¡ "; continue; } else { if (task.TaskStatus == (int)TaskStatusEnum.已宿) { //using (StationServiceClient client = new StationServiceClient()) //{ // var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation); //} continue; } } var upiCode = task.UPI; @@ -96,6 +108,10 @@ wmsDB.SaveChanges(); } } else { } } } catch (Exception ex) CC/iWareCC_ASRS/ThreadService/04_BZ21£¨°áÔËÕû¶â»úÆ÷ÈË£©/DataProcess_BZ21.cs
@@ -1,4 +1,5 @@ using Admin.NET.Application; using iWareCC.Common.Helper; using iWareCC.StationService; using iWareCommon.Common.Globle; using iWareCommon.Utils; @@ -82,48 +83,48 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},æ ¹æ®UPI:{result}æ²¡ææ¾å°å¯¹è±¡ "; continue; } string upi = "LS070700101B0001GS"; //è°ç¨åºçº¸æºæ¥å£ var res =new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode="+upi, Guid.NewGuid(),10000); if (res.iState == 0) { var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); if (papertable != null) { papertable.PushStatus = (int)PushStatusEnum.PushSuccess; papertable.ApiMessage = res.message; papertable.PushNum++; } else { var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); papercut.ApiMessage = res.message; papercut.PushNum = 0; papercut.PushStatus = (int)PushStatusEnum.PushSuccess; wmsDB.mes_push_papercut.Add(papercut); } } else { var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); if (papertable != null) { papertable.PushStatus = (int)PushStatusEnum.PushFail; papertable.ApiMessage = res.message; papertable.PushNum++; } else { var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); papercut.ApiMessage = res.message; papercut.PushNum = 0; papercut.PushStatus = (int)PushStatusEnum.PushFail; wmsDB.mes_push_papercut.Add(papercut); } continue; } //string upi = "LS070700101B0001GS"; ////è°ç¨åºçº¸æºæ¥å£ //var res =new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode="+upi, Guid.NewGuid(),10000); //if (res.iState == 0) //{ // var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); // if (papertable != null) // { // papertable.PushStatus = (int)PushStatusEnum.PushSuccess; // papertable.ApiMessage = res.message; // papertable.PushNum++; // } // else // { // var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); // papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); // papercut.ApiMessage = res.message; // papercut.PushNum = 0; // papercut.PushStatus = (int)PushStatusEnum.PushSuccess; // wmsDB.mes_push_papercut.Add(papercut); // } //} //else //{ // var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); // if (papertable != null) // { // papertable.PushStatus = (int)PushStatusEnum.PushFail; // papertable.ApiMessage = res.message; // papertable.PushNum++; // } // else // { // var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); // papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); // papercut.ApiMessage = res.message; // papercut.PushNum = 0; // papercut.PushStatus = (int)PushStatusEnum.PushFail; // wmsDB.mes_push_papercut.Add(papercut); // } // continue; //} //æ´æ°è¡¨ var mesgather = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); if (mesgather != null) @@ -191,6 +192,7 @@ print.PrintNum= 0; print.PrintStatus = (int)PrintStatuEnum.æªæå°; print.IsAllowPrint= true; print.CreateTime = print.UpdateTime = DateTime.Now; wmsDB.wms_record_print.Add(print); wms_record_print printtwo = print; printtwo.Id= Yitter.IdGenerator.YitIdHelper.NextId(); @@ -203,7 +205,7 @@ //å¤ç表 mes_order_gather var errmsg = ""; var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); var resultAlert = DataProcess_ValidateQiTao.HandlerOrderGather(wmsDB, package, "", "", out errmsg); var resultAlert = MyExtendHelper.HandlerOrderGather(wmsDB, package, "", "", out errmsg); if (resultAlert == false) { SystemWarningMsg._lbl_alert_DataProcess_BZ21 = errmsg; CC/iWareCC_ASRS/ThreadService/05_BZ30(ÆëÌ×ÑéÖ¤)/DataProcess_ValidateQiTao.cs
@@ -105,7 +105,7 @@ //å¤ç表 mes_order_gather var errmsg = ""; var result = HandlerOrderGather(wmsDB, package, qitaoValue, _UnlinePerson, out errmsg); var result = MyExtendHelper.HandlerOrderGather(wmsDB, package, qitaoValue, _UnlinePerson, out errmsg); if (result == false) { SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = errmsg; @@ -136,86 +136,6 @@ } } /// <summary> /// å¤ç 表 mes_order_gather /// </summary> /// <param name="wmsDB"></param> /// <param name="package"></param> /// <param name="qitaoValue"></param> /// <param name="_UnlinePerson"></param> /// <param name="errMsg"></param> /// <returns></returns> public static bool HandlerOrderGather(WmsDBModel wmsDB, mes_package_gather package, string qitaoValue, string _UnlinePerson, out string errMsg) { errMsg = ""; //å¤ç表 mes_order_gather var isAddOrder = false; var packageList = wmsDB.mes_package_gather.Where(x => x.Info5 == package.Info5).ToList(); if (packageList == null || packageList?.Count == 0) { errMsg = $"æ²¡ææ¾å°ç产åå·{package.Info5}çæ±æ»æ°æ®"; return false; } var order = wmsDB.mes_order_gather.Where(x => x.Info5 == package.Info5).FirstOrDefault(); if (order != null) { } else { order = new mes_order_gather() { Id = Yitter.IdGenerator.YitIdHelper.NextId(), Info5 = package.Info5, OrderId = package.OrderId, PlanNo = package.PlanNo, }; isAddOrder = true; } order.PackageNum = packageList.Count(); order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.å·²ä¸çº¿).Count(); order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum; order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13)); order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.å·²ä¸çº¿).Sum(x => Convert.ToDecimal(x.Info13)); order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea; order.IsKitting = qitaoValue == "é½å¥" ? true : false; var order_unLine = false; //æ¥è¯¢ä¸ä¸ä¸ªå æ¯ä¸æ¯å±äºè¯¥è®¢å var newLineQueue = wmsDB.mes_package_linequeue.OrderBy(x => x.Id).FirstOrDefault(); if (newLineQueue != null && newLineQueue.Info5 != order.Info5) { //è¡¨ç¤ºæ¯ åæ¢ æ°è®¢åäºï¼è¯¥è®¢åè¦æ´æ°ä¸º å·²ä¸çº¿ã order_unLine = true; } else { //å¤æè¯¥è®¢åæ¯å¦å·²ä¸çº¿ if (order.PackageNum == order.UnLinePackageNum) { order_unLine = true; } } //å¤æè¯¥è®¢åæ¯å¦å·²ä¸çº¿ if (order_unLine) { order.IsUnline = true; order.UnlineTime = DateTime.Now; order.UnlinePerson = _UnlinePerson; } else { order.IsUnline = false; } if (isAddOrder) { wmsDB.mes_order_gather.Add(order); } return true; } } } CC/iWareSql/DataAccess/TaskHandler.cs
@@ -18,7 +18,28 @@ /// </summary> /// <param name="wmsDB"></param> /// <returns></returns> public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB) public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB,string UPI) { var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.å·²ä¸å && ( x.RbTaskType == (int)RbTaskTypeEnum.å ¥åºä»»å¡ || x.RbTaskType == (int)RbTaskTypeEnum.åºåºä»»å¡ )&&x.UPI== UPI ).ToList(); if (isExist?.Count() > 0) { return false; } return true; } /// <summary> /// éªè¯ æºå¨äººç¼å岿¯å¦åå¨å·²ä¸åçä»»å¡ /// </summary> /// <param name="wmsDB"></param> /// <returns></returns> public static bool ValidateIssueOutTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB) { var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.å·²ä¸å && ( @@ -34,7 +55,6 @@ } return true; } /// <summary> /// éªè¯ ç æ¿æ¯å¦ææ§è¡ä¸ä»»å¡ /// </summary> LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/UnlineForNGPackageInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ using Admin.NET.Core; using System.ComponentModel.DataAnnotations; namespace Admin.NET.Application; public class UnlineForNGPackageInput { /// <summary> /// å è£ å· /// </summary> public virtual string PackageCode { get; set; } /// <summary> /// NGåå /// </summary> public virtual string Reason { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -199,6 +199,51 @@ } /// <summary> /// NGå ä¸çº¿ /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "UnlineForNGPackage")] [Description("WmsOperationTask/UnlineForNGPackage")] public async Task UnlineForNGPackage(UnlineForNGPackageInput input) { //if (input == null) //{ // throw Oops.Oh("åæ°ä¸è½ä¸ºç©º"); //} //if (string.IsNullOrEmpty(input.PackageCode)) //{ // throw Oops.Oh("å å·ä¸è½ä¸ºç©º"); //} //if (string.IsNullOrEmpty(input.Reason)) //{ // throw Oops.Oh("åå ä¸è½ä¸ºç©º"); //} //List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>(); //foreach (var item in input.PackageCodeList) //{ // var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); // var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.é½å å¾ åºåº).Count(); // if (isExist > 0) // { // throw Oops.Oh($"å {item}ä¸å ¶ä¸ææ¿ç¶ææ¯'{StockStatusEnum.é½å å¾ åºåº.ToString()}'ï¼ä¸å 许强å¶åºåº"); // } // æ´æ°ç¶æ // foreach (var quan in quanList) // { // quan.StockStatus = StockStatusEnum.人工强å¶å¾ åºåº; // quan.UpdateTime = DateTime.Now; // quan.OperReason = "人工强å¶å¾ åºåº"; // } // updateQuanList.AddRange(quanList); //} //await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList); } } SDA/iWareSda/App.config
@@ -4,8 +4,8 @@ <!-- è¯è¨é ç½® é ç½® 0 䏿 1 è±æ --> <add key="LanguageFlg" value="0"/> <!-- ç«ç¹çPLC é ç½® --> <!--<add key="Station_Address" value="172.17.51.202"/> --> <add key="Station_Address" value="192.168.10.100"/> <add key="Station_Address" value="172.17.51.202"/> <!--<add key="Station_Address" value="192.168.10.100"/>--> <add key="Station_Rack" value="0"/> <add key="Station_Slot" value="1"/> <add key="Station_Port" value="102"/> SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -278,7 +278,8 @@ return false; } if (value) { b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut); if (!b2.result) { @@ -300,6 +301,9 @@ stationObj.W_Outbound_TaskID); return false; } } return true;