|  |  |  | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System.Collections.Generic; | 
|---|
|  |  |  | using System.Linq; | 
|---|
|  |  |  | using System.Runtime.Remoting.Messaging; | 
|---|
|  |  |  | using System.ServiceModel.Configuration; | 
|---|
|  |  |  | using System.Text; | 
|---|
|  |  |  | using System.Threading; | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (SystemValue.isAllowRuning_DataProcess_ValidateQiTao && SystemValue.isStartedModel) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var rgvLocation = StationLocationEnum.BZ39.ToString(); | 
|---|
|  |  |  | if (FormCC.IsAllowRunOutMode) | 
|---|
|  |  |  | var rgvLocation = StationLocationEnum.BZ30.ToString(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | using (WmsDBModel wmsDB = new WmsDBModel()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | using (WmsDBModel wmsDB = new WmsDBModel()) | 
|---|
|  |  |  | var bz30Config = wmsDB.SysConfig.Where(x => x.Code == "wms_bz30_qitao").FirstOrDefault(); | 
|---|
|  |  |  | if (bz30Config == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var rbRunMode = wmsDB.wms_rbline_runmode.FirstOrDefault(); | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"没æé
ç½® wms_bz30_qitao å¼"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var configValue = bz30Config.Value; | 
|---|
|  |  |  | if (string.IsNullOrEmpty(configValue) || configValue.IndexOf('|') <= -1) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"é
ç½® wms_bz30_qitao å¼{configValue}为空æä¸æ£ç¡®"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var configValues = configValue.Split('|'); | 
|---|
|  |  |  | var packageCode = configValues[0]; | 
|---|
|  |  |  | var qitaoValue = configValues[1];//é½å¥  ä¸é½å¥ | 
|---|
|  |  |  | var _UnlinePerson = configValues[2]; | 
|---|
|  |  |  | bool iscomplete = false; | 
|---|
|  |  |  | if (qitaoValue.Equals("é½å¥")) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | iscomplete = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //TODO:æ¨éç»PLC å»åªä¸ªæ¹åï¼ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (TaskHandler.ValidateNoFinishOutTaskForRobotBuffer(wmsDB)) | 
|---|
|  |  |  | {//ä¸åå¨ | 
|---|
|  |  |  | rbRunMode.LineRunMode = (int)RbRunModeEnum.å
¥åºæ¨¡å¼; | 
|---|
|  |  |  | rbRunMode.LineRunModeName = RbRunModeEnum.å
¥åºæ¨¡å¼.ToString(); | 
|---|
|  |  |  | rbRunMode.UpdateTime = DateTime.Now; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //æ¨éç»PLCåæ¢æ¨¡å¼ | 
|---|
|  |  |  | using (StationServiceClient client = new StationServiceClient()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var res = await client.ChangeModeAsync((int)EDevice.Station, (int)RbRunModeEnum.å
¥åºæ¨¡å¼, rgvLocation); | 
|---|
|  |  |  | if (!res.result) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"{rgvLocation.ToString()}-æ¨éç»PLCåæ¢æ¨¡å¼ å¤±è´¥,ChangeModeAsync è¿å:{res.resMsg}"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-æ¨éç»PLCåæ¢æ¨¡å¼ æå,ChangeModeAsyncï¼åæ°: ç«ç¹{rgvLocation}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | FormCC.IsAllowRunOutMode = false; | 
|---|
|  |  |  | using (StationServiceClient client = new StationServiceClient()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var res = client.WriteQiTaoInfo((int)EDevice.Station, rgvLocation, iscomplete); | 
|---|
|  |  |  | if (!res.result) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"{rgvLocation.ToString()}-æ¨éç»PLCæ¯å¦é½å¥å¤±è´¥,ChangeModeAsync è¿å:{res.resMsg}"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | {//åå¨ | 
|---|
|  |  |  | if (rbRunMode.LineRunMode == (int)RbRunModeEnum.åºåºæ¨¡å¼) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"å·²ç»æ¯åºåºæ¨¡å¼äº,æ¤æ¬¡å¾ªç¯ç»æ"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | rbRunMode.LineRunMode = (int)RbRunModeEnum.åºåºæ¨¡å¼; | 
|---|
|  |  |  | rbRunMode.LineRunModeName = RbRunModeEnum.åºåºæ¨¡å¼.ToString(); | 
|---|
|  |  |  | rbRunMode.UpdateTime = DateTime.Now; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //æ¨éç»PLCåæ¢æ¨¡å¼ | 
|---|
|  |  |  | using (StationServiceClient client = new StationServiceClient()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var res = await client.ChangeModeAsync((int)EDevice.Station, (int)RbRunModeEnum.åºåºæ¨¡å¼, rgvLocation); | 
|---|
|  |  |  | if (!res.result) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = $"{rgvLocation.ToString()}-æ¨éç»PLCåæ¢æ¨¡å¼ å¤±è´¥,ChangeModeAsync è¿å:{res.resMsg}"; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-æ¨éç»PLCåæ¢æ¨¡å¼ æå,ChangeModeAsyncï¼åæ°: ç«ç¹{rgvLocation}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-æ¨éç»PLCæ¯å¦é½å¥ æå,ChangeModeAsyncï¼åæ°: ç«ç¹{rgvLocation}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wmsDB.SaveChanges(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //æ´æ°å¼ | 
|---|
|  |  |  | bz30Config.Value = ""; | 
|---|
|  |  |  | var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == packageCode).FirstOrDefault(); | 
|---|
|  |  |  | if (package != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | package.UpiStatus = (int)UpiStatusEnum.å·²ä¸çº¿; | 
|---|
|  |  |  | package.AreaCode = (int)AreaCodeEnum.ä¸çº¿åºå; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var upiList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == packageCode).ToList(); | 
|---|
|  |  |  | foreach (var item in upiList) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | item.UpiStatus = (int)UpiStatusEnum.å·²ä¸çº¿; | 
|---|
|  |  |  | item.AreaCode = (int)AreaCodeEnum.ä¸çº¿åºå; | 
|---|
|  |  |  | item.UpdateTime = DateTime.Now; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //å é¤éåä¿¡æ¯ | 
|---|
|  |  |  | var lineQueue = wmsDB.mes_package_linequeue.Where(x => x.PackageCode == packageCode).FirstOrDefault(); | 
|---|
|  |  |  | if (lineQueue != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | wmsDB.mes_package_linequeue.Remove(lineQueue); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //å¤ç表  mes_order_gather | 
|---|
|  |  |  | var errmsg = ""; | 
|---|
|  |  |  | var result = MyExtendHelper.HandlerOrderGather(wmsDB, package, qitaoValue, _UnlinePerson, out errmsg); | 
|---|
|  |  |  | if (result == false) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = errmsg; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //æ°å¢ä¸çº¿è®°å½ | 
|---|
|  |  |  | mes_package_unline_record record = new mes_package_unline_record(); | 
|---|
|  |  |  | record = ClassHelper.RotationMapping<mes_package_unline_record, mes_package_gather>(package); | 
|---|
|  |  |  | record.Id = Yitter.IdGenerator.YitIdHelper.NextId(); | 
|---|
|  |  |  | record.CreateTime = DateTime.Now; | 
|---|
|  |  |  | record.UpdateTime = DateTime.Now; | 
|---|
|  |  |  | record.OpRemark = "ä¸çº¿"; | 
|---|
|  |  |  | wmsDB.mes_package_unline_record.Add(record); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wmsDB.SaveChanges(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|