| | |
| | | using iWareSql.WmsDBModel; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Diagnostics.Contracts; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading; |
| | |
| | | { |
| | | public class DataProcess_BZ21 |
| | | { |
| | | public static void Hander() |
| | | public static async void Hander() |
| | | { |
| | | var alertMsg = ""; |
| | | LogType logType = LogType.DataProcess_BZ21; |
| | |
| | | * 1ã仿°æ®åºä¸å¤ææ¯å¦é½å¥ |
| | | * 2ãæ ¹æ®é½å¥ç»æï¼æ¨éç»PLC |
| | | */ |
| | | if (FormCC.stationView == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-è·åPLC对象为null"; |
| | | continue; |
| | | } |
| | | var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); |
| | | if (obj.R_PalletizingAck) |
| | | { |
| | |
| | | var res = client.WriteStation_ACK((int)EDevice.Station, false, rgvLocation); |
| | | if (!res.result) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-ä¸åç æ¿ä»»å¡ 失败,SetPalletizingTaskFinishAck è¿å:{res.resMsg}"; |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-ä¸åç æ¿ä»»å¡ 失败,SetPalletizingTaskFinishAck è¿å:{res.resMsg}"; |
| | | continue; |
| | | } |
| | | else |
| | |
| | | using (WmsDBModel wmsDB = new WmsDBModel()) |
| | | { |
| | | //è¦æ¯æå·²ä¸åçä»»å¡ï¼å°±ä¸è¦æ§è¡ |
| | | var isValidate = TaskHandler.ValidateIssueTaskForBZ21(wmsDB, result); |
| | | var isValidate = TaskHandler.ValidateIssueTaskForNoFinishTaskByUpi(wmsDB, result); |
| | | if (!isValidate) |
| | | { |
| | | SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-æâå·²ä¸åâçä»»å¡ï¼ä¸è½å¤ç,æ¤æ¬¡å¾ªç¯ç»æ"; |
| | | continue; |
| | | } |
| | | |
| | | //å¢å æ ¡éªï¼å¦æä¸ä¸ä¸ªä»»å¡upiè·æ¬æ¬¡upiä¸è´ï¼å°±æ¥é ãEditby shaocx,2024-12-03ã |
| | | var lastTask = wmsDB.wms_rbline_task.Where(x => x.RbTaskType == (int)RbTaskTypeEnum.åå
ä»»å¡).OrderByDescending(x => x.Id).FirstOrDefault(); |
| | | if (lastTask != null && lastTask.Upi == result) |
| | | { |
| | | SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-PLCé忤任å¡ï¼upiï¼{result}ï¼ç³»ç»ä¸è½éå¤å¤ç,æ¤æ¬¡å¾ªç¯ç»æ"; |
| | | continue; |
| | | } |
| | | |
| | | var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == result).FirstOrDefault(); |
| | | if (upiObj == null) |
| | | { |
| | | //åå
¥æ¥è¦ä¿¡æ¯ |
| | | await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningAddressGloble.Num_BZ21_1); |
| | | |
| | | SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},æ ¹æ®UPI:{result}æ²¡ææ¾å°å¯¹è±¡ "; |
| | | continue; |
| | | } |
| | | |
| | | var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); |
| | | if (package == null) |
| | | { |
| | | SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},æ ¹æ®å
å·:{upiObj.PackageCode}æ²¡ææ¾å°å¯¹è±¡ "; |
| | | continue; |
| | | } |
| | | |
| | | //éªè¯æ¯å¦å
许å纸 |
| | | var validteReslt = ValidateIsAllowCut(); |
| | | if (validteReslt == false) |
| | | { |
| | | //åå
¥æ¥è¦ä¿¡æ¯ |
| | | await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningAddressGloble.Num_BZ21_2); |
| | | |
| | | continue; |
| | | } |
| | | |
| | | //string upi = "LS070700101B0001GS"; |
| | | //è°ç¨åºçº¸æºæ¥å£ |
| | | var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); |
| | | var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_package_gather>(package); |
| | | papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | papercut.ApiMessage = ""; |
| | | papercut.PushNum = 1; |
| | | papercut.PushNum = 0; |
| | | papercut.PushStatus = (int)PushStatusEnum.NotPush; |
| | | papercut.CreateUserName = papercut.UpdateUserName = SysGloble.WCSSystem; |
| | | papercut.CreateTime = papercut.UpdateTime = DateTime.Now; |
| | | wmsDB.mes_push_papercut.Add(papercut); |
| | | |
| | | |
| | | AreaCodeEnum setAreaCode = AreaCodeEnum.åå
è£ååº; |
| | | UpiStatusEnum setUpiStatus = UpiStatusEnum.å·²åå
; |
| | | |
| | | var ngFlag = false; |
| | | var queryFlag = (int)UpiFlagEnum.NG; |
| | | var upilist = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); |
| | | var ngCount = upilist.Count(x => x.UpiFlag == queryFlag); |
| | | if (ngCount > 0) |
| | | { |
| | | ngFlag = true; |
| | | setUpiStatus = UpiStatusEnum.å·²ä¸çº¿; |
| | | setAreaCode = AreaCodeEnum.ä¸çº¿åºå; |
| | | } |
| | | else |
| | | {//䏿¯NG |
| | | //æ°å¢mesæ¨é表 |
| | | var putpakegecodeid = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | var putpakegecode = new mes_push_packagecode() |
| | | { |
| | | Id = putpakegecodeid, |
| | | PackageCode = upiObj.PackageCode, |
| | | PushStatus = 0, |
| | | PushNum = 0, |
| | | ApiMessage = "", |
| | | CreateTime = DateTime.Now, |
| | | CreateUserName = SysGloble.WCSSystem, |
| | | UpdateTime = DateTime.Now, |
| | | UpdateUserName = SysGloble.WCSSystem |
| | | |
| | | }; |
| | | wmsDB.mes_push_packagecode.Add(putpakegecode); |
| | | |
| | | //æ°å¢è¡¨ |
| | | var mesinequeue = ClassHelper.RotationMapping<mes_package_linequeue, mes_package_gather>(package); |
| | | mesinequeue.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | mesinequeue.CreateTime = mesinequeue.UpdateTime = DateTime.Now; |
| | | wmsDB.mes_package_linequeue.Add(mesinequeue); |
| | | } |
| | | |
| | | //æ´æ°è¡¨ |
| | | var mesgather = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); |
| | | if (mesgather != null) |
| | | { |
| | | mesgather.AreaCode = (int)AreaCodeEnum.åå
è£ååº; |
| | | mesgather.UpiStatus = (int)UpiStatusEnum.å·²åå
; |
| | | mesgather.AreaCode = (int)setAreaCode; |
| | | mesgather.UpiStatus = (int)setUpiStatus; |
| | | } |
| | | //var upilist = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); |
| | | //var upilength = upilist.Max(x => x.Length); |
| | | //var upiwidth = upilist.Max(x => x.Width); |
| | | //cartonhigh = (short)upiObj.Info3; |
| | | //cartonwidth = (short)upiObj.Info2; |
| | | upiObj.UpiStatus = (int)UpiStatusEnum.å·²åå
; |
| | | upiObj.AreaCode = (int)AreaCodeEnum.åå
è£ååº; |
| | | |
| | | upiObj.UpiStatus = (int)setUpiStatus; |
| | | upiObj.AreaCode = (int)setAreaCode; |
| | | //è®°å½ä»»å¡ |
| | | var _id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | var putpakegecodeid = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); |
| | | //æ°å¢è¡¨ |
| | | var mesinequeue = ClassHelper.RotationMapping<mes_package_linequeue, mes_batchOrderUPI_new>(upiObj); |
| | | mesinequeue.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | //æ°å¢mesæ¨é表 |
| | | var putpakegecode = new mes_push_packagecode() |
| | | { |
| | | Id = putpakegecodeid, |
| | | PackageCode = upiObj.PackageCode, |
| | | PushStatus = 0, |
| | | PushNum = 0, |
| | | ApiMessage = "å¾
æ¨é", |
| | | CreateTime = DateTime.Now, |
| | | CreateUserName = "CC", |
| | | UpdateTime = DateTime.Now, |
| | | UpdateUserName = "CC", |
| | | CreateOrgName = "11" |
| | | }; |
| | | |
| | | var plcTaskNo = BusinessHelper.CreatePlcTaskId(); |
| | | plcTaskNo = MyExtendHelper.GetNewTaskNo(wmsDB, RbTaskTypeEnum.åå
ä»»å¡, plcTaskNo); |
| | | |
| | | //æ°å¢ä»»å¡è¡¨ |
| | | var task = new wms_rbline_task() |
| | | { |
| | | Id = _id, |
| | | TaskNo = plcTaskNo, |
| | | UPI = upiObj.UPI, |
| | | Upi = upiObj.UPI, |
| | | Length = upiObj.Length, |
| | | Width = upiObj.Width, |
| | | Thk = upiObj.Thk, |
| | |
| | | OrderId = upiObj.OrderId, |
| | | PackageCode = upiObj.PackageCode, |
| | | RbTaskType = (int)RbTaskTypeEnum.åå
ä»»å¡, |
| | | RbTaskTypeEnumName = RbTaskTypeEnum.åå
ä»»å¡.ToString(), |
| | | TaskStatus = (int)TaskStatusEnum.æ°å»º, |
| | | TaskStatusName = TaskStatusEnum.æ°å»º.ToString(), |
| | | TaskMsg = "夹æ¿", |
| | | CreateTime = DateTime.Now, |
| | | CreateUserName = "CC", |
| | | CreateUserName = SysGloble.WCSSystem, |
| | | UpdateTime = DateTime.Now, |
| | | UpdateUserName = "CC", |
| | | UpdateUserName = SysGloble.WCSSystem, |
| | | PlaceCode = place |
| | | }; |
| | | //æ°å¢æå°è¡¨ |
| | | var printid = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | var print = ClassHelper.RotationMapping<wms_record_print, mes_batchOrderUPI_new>(upiObj); |
| | | var print = ClassHelper.RotationMapping<wms_record_print, mes_package_gather>(package); |
| | | print.Id = printid; |
| | | print.PrintType = (int)PrintTypeEnum.å
è£
æ¡ç ; |
| | | print.PrintSource = (int)PrintSourceEnum.å
è£
æ¡ç æå°; |
| | |
| | | print.IsAllowPrint = true; |
| | | print.CreateTime = print.UpdateTime = DateTime.Now; |
| | | wmsDB.wms_record_print.Add(print); |
| | | var printtwo = ClassHelper.RotationMapping<wms_record_print, mes_batchOrderUPI_new>(upiObj); |
| | | printtwo.PrintType = (int)PrintTypeEnum.å
è£
æ¡ç ; |
| | | printtwo.PrintSource = (int)PrintSourceEnum.å
è£
æ¡ç æå°; |
| | | printtwo.PrintSheetNum = 1; |
| | | printtwo.PrintNum = 0; |
| | | printtwo.PrintStatus = (int)PrintStatuEnum.æªæå°; |
| | | printtwo.IsAllowPrint = true; |
| | | printtwo.CreateTime = print.UpdateTime = DateTime.Now; |
| | | printtwo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | wmsDB.wms_record_print.Add(printtwo); |
| | | //var printtwo = ClassHelper.RotationMapping<wms_record_print, mes_batchOrderUPI_new>(upiObj); |
| | | //printtwo.PrintType = (int)PrintTypeEnum.å
è£
æ¡ç ; |
| | | //printtwo.PrintSource = (int)PrintSourceEnum.å
è£
æ¡ç æå°; |
| | | //printtwo.PrintSheetNum = 1; |
| | | //printtwo.PrintNum = 0; |
| | | //printtwo.PrintStatus = (int)PrintStatuEnum.æªæå°; |
| | | //printtwo.IsAllowPrint = true; |
| | | //printtwo.CreateTime = print.UpdateTime = DateTime.Now; |
| | | //printtwo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | //wmsDB.wms_record_print.Add(printtwo); |
| | | |
| | | wmsDB.mes_package_linequeue.Add(mesinequeue); |
| | | |
| | | wmsDB.wms_rbline_task.Add(task); |
| | | wmsDB.mes_push_packagecode.Add(putpakegecode); |
| | | |
| | | |
| | | //å¤ç表 mes_order_gather |
| | | var errmsg = ""; |
| | | var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); |
| | | |
| | | var resultAlert = MyExtendHelper.HandlerOrderGather(wmsDB, package, "", "", out errmsg); |
| | | if (resultAlert == false) |
| | | { |
| | |
| | | continue; |
| | | } |
| | | |
| | | /* |
| | | using (StationServiceClient client = new StationServiceClient()) |
| | | { |
| | | |
| | | var plcres = client.WriteSurroundTaskInfo((int)EDevice.Station, rgvLocation, short.Parse(task.TaskNo), |
| | | (short)upilength, (short)upiwidth, cartonhigh, cartonwidth, 0, 0); |
| | | if (!plcres.result) |
| | | { |
| | | SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-ä¸åå
¥åºä»»å¡ 失败,WriteInStoreTaskInfoAsync è¿å:{plcres.resMsg}"; |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-ä¸åå
¥åºä»»å¡ æå,WriteInStoreTaskInfoAsyncï¼åæ°: ç«ç¹{rgvLocation}"); |
| | | } |
| | | } |
| | | //*/ |
| | | |
| | | |
| | | WmsRecordUpiProcessHandler.SaveWmsRecordUpiProcess(wmsDB, upiObj, "BZ21", "åå
"); |
| | | WmsRecordUpiProcessHandler.SaveWmsRecordPackageProcess(wmsDB, upiObj, "BZ21", "åå
"); |
| | | WmsRecordUpiProcessHandler.SaveWmsRecordPackageProcess(wmsDB, package, "BZ21", "åå
"); |
| | | |
| | | wmsDB.SaveChanges(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-没æè¦å¤ççæ°æ®"; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// éªè¯æ¯å¦å
许å纸 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static bool ValidateIsAllowCut() |
| | | { |
| | | var rgvLocation = StationLocationEnum.BZ3007.ToString(); |
| | | |
| | | if (FormCC.stationView == null) |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-è·åPLC对象为null"; |
| | | return false; |
| | | } |
| | | var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault(); |
| | | if (obj != null) |
| | | { |
| | | if (obj.R_AllowCut) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-PLCä¸å
许å纸"; |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | SystemWarningMsg._lbl_Alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-è·åPLC对象为null"; |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |