| | |
| | | "Type": "MethodCode", |
| | | "Level": "Item", |
| | | "Statement": "public void OperateHKTaskStatus(System.Object param1)", |
| | | "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }\r\n}", |
| | | "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }", |
| | | "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\n if (string.IsNullOrEmpty(model.taskCode))\r\n return;\r\n // æ¥è¯¢ä»»å¡ï¼æ ¹æ®ä»»å¡å·\r\n //var wcsTask = WCSHelper.GetTask(model.taskCode);\r\n ITaskRepository MainMissionService = new TaskRepository();\r\n var wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\n if (wcsTask != null)\r\n {\r\n if (!string.IsNullOrWhiteSpace(model.method))\r\n {\r\n ILocRepository locrep = new LocRepository();\r\n var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n bool bobe = false;\r\n switch (model.method)\r\n {\r\n case \"start\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºæ§è¡ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n if (wcsTask.S_B_STATE.Trim() == \"å·²æ¨é\")\r\n {\r\n wcsTask.S_B_STATE = \"æ§è¡ä¸\";\r\n wcsTask.T_START_TIME = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n bobe = true;\r\n }\r\n break;\r\n case \"outbin\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåè´§å®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åè´§å®æ\";\r\n\r\n startloc.N_CURRENT_NUM = 0;\r\n startloc.S_LOCK_STATE = \"æ \";\r\n startloc.T_MODIFY = DateTime.Now;\r\n //ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n ////var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n //locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n MainMissionService.Update(wcsTask);\r\n locrep.Update(startloc);\r\n\r\n bobe = true;\r\n var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n if (device != null)\r\n {\r\n if (device.deviceType == 1)\r\n {\r\n if (device.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n { //å¸è´§è¿è¡æ¸
空ï¼è§¦åæ«ç \r\n var inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n string V = inde ? \"R05\" : \"R06\";\r\n Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n \r\n TcpServer.TrayIps.Remove(device.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if(device.deviceType == 2){\r\n\t\t\t\t\t\t\t\t\tvar inde = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0;\r\n\t\t\t\t\t\t\t\t\t string V = inde? \"D1224\" : \"D1225\";\r\n\t\t\t\t\t\t\t\t\t Conn.é»è®¤Redis.SetValue(device.deviceName + \".\" + V, \"0\", device.deviceName + \"Queue\");\r\n }\r\n }\r\n //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n break;\r\n case \"end\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºå®æï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"宿\";\r\n wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n bobe = true;\r\n //ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n //List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n //foreach (var c in cntrs)\r\n //{\r\n // var action = new LocContainerEntity()\r\n // {\r\n // S_ID = Guid.NewGuid().ToString(),\r\n // S_STATE = \"ç¼è¾\",\r\n // T_CREATE = DateTime.Now,\r\n // T_MODIFY = DateTime.Now,\r\n\r\n // S_LOC_CODE = endLoc.S_LOC_CODE,\r\n // S_CNTR_CODE = c,\r\n // S_TYPE = \"\",\r\n // };\r\n // llls.Add(action);\r\n //}\r\n\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n endLoc.N_CURRENT_NUM = 1;\r\n endLoc.T_MODIFY = DateTime.Now;\r\n MainMissionService.Update(wcsTask);\r\n if(Settings.deviceInfos.Find(x=>x.deviceType==2 && (/*x.location.Contains(wcsTask.S_END_LOC)||*/x.deviceNo.Contains(wcsTask.S_END_LOC)))!=null)\r\n locrep.Update(endLoc);\r\n //locContainerRepository2.Insert(llls);\r\n\r\n var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n if (device2 != null)\r\n {\r\n if (device2.deviceType == 1)\r\n {\r\n if (device2.deviceName.Contains(\"ç»´å¸å°æè\"))\r\n {\r\n //string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n //å¸è´§ååæçåèµ°ã ç¶åè§¦åæ«ç è¿è¡æ ¡éªã \r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n //string V = inde ? \"R05\" : \"R06\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n string V2 = inde ? \"R10_LAST\" : \"R11_LAST\";\r\n //Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V2, \"true\", device2.deviceName + \"Queue\");\r\n \r\n GZ.Modular.Redis.RedisHelper.Add(device2.deviceName + \".\" + V2, \"true\", out string msg1);\r\n TcpServer.TrayIps.Remove(device2.deviceNo[inde ? 0 : 1]);\r\n }\r\n }\r\n else if (device2.deviceType == 2)\r\n if (device2.deviceName.Contains(\"Jsæ·é¡º\"))\r\n {\r\n var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;\r\n string V = inde? \"D1224\" : \"D1225\";\r\n Conn.é»è®¤Redis.SetValue(device2.deviceName + \".\" + V, \"1\", device2.deviceName + \"Queue\");\r\n\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 3,\r\n cntrCode = cntrs.FirstOrDefault()\r\n }));\r\n //if (device2.deviceName.Contains(\"1\"))\r\n //{\r\n // if (inde) tag.Js1.D1224 = 1;\r\n // else tag.Js1.D1225 = 1;\r\n //}else\r\n //{\r\n // if (inde) tag.Js2.D1224 = 1;\r\n // else tag.Js2.D1225 = 1;\r\n //}\r\n }\r\n }\r\n\r\n //LocationMethod.JudgeLocation(wcsTask);\r\n break;\r\n case \"cancel\":\r\n LogHelper.Info($\"海康车任å¡ç¶æåæ´ä¸ºåæ¶ï¼ä»»å¡å·ä¸ºï¼{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n wcsTask.S_B_STATE = \"åæ¶\";\r\n //startloc.S_LOCK_STATE = \"æ \";\r\n //endLoc.S_LOCK_STATE = \"æ \";\r\n MainMissionService.Update(wcsTask);\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n var tare = taskActRepository.FindList(x => x.S_TASK_NO == wcsTask.S_TASK_NO);\r\n if (tare.Any())\r\n {\r\n if(tare.Find(x=>x.S_ACTION_CODE==\"outbin\")==null)\r\n {\r\n startloc.S_LOCK_STATE = \"æ \";\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(startloc);\r\n locrep.Update(endLoc);\r\n }else if (tare.Find(x => x.S_ACTION_CODE == \"end\") == null)\r\n {\r\n endLoc.S_LOCK_STATE = \"æ \";\r\n locrep.Update(endLoc);\r\n }\r\n }\r\n\r\n //locrep.Update(startloc);\r\n //locrep.Update(endLoc);\r\n //TaskProcess.OperateStatus(wcsTask, 7);\r\n //WCSHelper.Fail(wcsTask);\r\n break;\r\n case \"apply\":\r\n // å¤æè¯¥ä»»å¡çæ¥é©³ä½æ¯å¦æå
¶ä»å
¥åºæåºåºä»»å¡ï¼å¦ææï¼åå¨çä½çå¾
ï¼å¦ææ²¡æï¼åå
¥\r\n TaskisOk(wcsTask);\r\n break;\r\n }\r\n\r\n if (!string.IsNullOrEmpty(wcsTask.S_SRC_NO))\r\n {\r\n var mestask = MainMissionService.FindEntity(x => x.S_TASK_NO == wcsTask.S_SRC_NO);\r\n if (mestask!=null&&bobe)\r\n {\r\n if ( model.method != \"end\")\r\n {\r\n \tif (mestask.S_START_LOC == wcsTask.S_START_LOC&&mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t }));\r\n }\r\n else\r\n {\r\n if (mestask.S_END_LOC != wcsTask.S_END_LOC)\r\n {\r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µå®æï¼éç½®è¿è¡äºé¶æ®µã\");\r\n mestask.N_PRIORITY = -88;\r\n MainMissionService.Update(mestask);\r\n }\r\n else if(mestask.S_B_STATE == \"MES\")\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n {\r\n reqCode = wcsTask.S_SRC_NO,\r\n model.method\r\n }));\r\n }\r\n }\r\n\r\n }else if(mestask!=null && model.method== \"cancel\")\r\n {\r\n \t if(mestask.S_B_STATE == \"MES\")\r\n\t Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/201\", JsonConvert.SerializeObject(new\r\n\t {\r\n\t reqCode = wcsTask.S_SRC_NO,\r\n\t model.method\r\n\t })); \r\n LogHelper.Info($\"{wcsTask.S_SRC_NO}-{wcsTask.S_TASK_NO} ä¸é¶æ®µåæ¶ï¼éç½®ç¹ï¼çº¿ç¨å¤çã\");\r\n mestask.N_PRIORITY = -1;\r\n mestask.S_B_STATE = \"MES_åæ¶\";\r\n MainMissionService.Update(mestask);\r\n }\r\n }\r\n TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data,wcsTask.S_START_LOC,wcsTask.S_END_LOC);\r\n //è°ç¨ç¬¬ä¸æ¹æ¥å£ï¼å¦ææï¼TaskProcess.ReportStatus\r\n }\r\n else\r\n {\r\n // ææ¶è®¾å®ä¸º0\r\n wcsTask.S_B_STATE = \"䏿¥ç¶æç©º\";\r\n //å®å
¨è¯·æ±ç\r\n //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n }\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"å½åä»»å¡å·ä»»å¡ä¸åå¨{model.taskCode}\", \"agvæåäº¤äºæ¥å¿\");\r\n }\r\n}", |
| | | "CusMethod": { |
| | | "Name": "OperateHKTaskStatus", |
| | | "Params": [ |
| | |
| | | "Type": "ClassCode", |
| | | "Level": "Item", |
| | | "Statement": "public class TaskProcess", |
| | | "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", |
| | | "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", |
| | | "EditCode": "internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }", |
| | | "Code": "public class TaskProcess\r\n{internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = \"AGV\", int cntrCount = 1, int startLayer = 1, int endLayer = 1)\r\n{\r\n\t\r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to}å¼å§å建>\");\r\n var cntrInfo = string.Join(\",\", cntrs);\r\n ILocRepository locc = new LocRepository();\r\n var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);\r\n var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);\r\n \r\n var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;\r\n var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;\r\n string t = \"F01\";\r\n if (s && !e) t = \"A002\";\r\n if (!s && e) t = \"A003\";\r\n if (s && e) t = \"A004\";\r\n try\r\n {\r\n\r\n TaskEntity wmsTask = new TaskEntity()\r\n {\r\n \tS_ID = Guid.NewGuid().ToString(),\r\n\t\tS_STATE = \"ç¼è¾\",\r\n\t\tT_CREATE = DateTime.Now,\r\n\t\tT_MODIFY = DateTime.Now,\r\n\r\n S_TASK_NO = GenerateTaskNo(),\r\n S_START_LAREA = fromLoc.S_AREA_CODE,\r\n S_END_LAREA = endLoc.S_AREA_CODE,\r\n S_DEPART_NAME = \"\",\r\n S_START_LOC = from,\r\n S_END_LOC = to,\r\n S_TYPE = taskType,\r\n S_SRC_NO = no,//\r\n N_PRIORITY = pri,\r\n S_WORK_MODE = workMode,\r\n S_B_STATE = \"æªæ§è¡\",\r\n S_CNTRS = cntrInfo,\r\n N_START_LAYER = startLayer,\r\n N_END_LAYER = endLayer,\r\n N_CNTR_COUNT = cntrCount,\r\n S_INDEX=t,\r\n };\r\n ITaskRepository taskserice = new TaskRepository();\r\n taskserice.Insert(wmsTask);\r\n \r\n if (workMode == \"AGV\")\r\n {\r\n fromLoc.S_LOCK_STATE = \"åºåºé\";\r\n endLoc.S_LOCK_STATE = \"å
¥åºé\";\r\n locc.Update(fromLoc);\r\n locc.Update(endLoc);\r\n }\r\n \r\n LogHelper.Info($\"è¾é线RGV空æä»»å¡ from:{from}>to {to} å建{wmsTask.S_TASK_NO}æå\");\r\n return true;\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(\"CreateTask\" + ex.Message, ex);\r\n return false;\r\n }\r\n}\r\n\r\n\r\n internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc)\r\n {\r\n var action = new TaskActEntity()\r\n {\r\n S_ID = Guid.NewGuid().ToString(),\r\n S_STATE = \"ç¼è¾\",\r\n T_CREATE = DateTime.Now,\r\n T_MODIFY = DateTime.Now,\r\n S_START_LOC= strloc,\r\n S_END_LOC= endloc,\r\n S_ACTION_CODE = state,\r\n S_TASK_NO = no,\r\n S_EQ_NO = forkliftNo,\r\n S_EQ_TYPE = \"agv\",\r\n S_DATA = extData,\r\n N_CREATEMETHOD = 0\r\n };\r\n TaskActRepository taskserice = new TaskActRepository();\r\n taskserice.Insert(action);\r\n }\r\n\r\n public static System.String GenerateTaskNo()\r\n {\r\n var id = SYSHelper.GetSerialNumber(\"ä»»å¡å·\", \"TN\", \"1\");\r\n var date = DateTime.Now.ToString(\"yyMMdd\");\r\n return $\"TN{date}{id.ToString().PadLeft(4, '0')}\";\r\n }\r\n}", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | }, |
| | | { |
| | | "ID": "20250623083459471", |
| | | "Name": "AutoThread", |
| | | "Desc": "", |
| | | "ParentID": "", |
| | | "Type": "VsCode", |
| | | "Level": "Item", |
| | | "Statement": "", |
| | | "EditCode": "using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Concurrent;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing GZ.Modular.Redis;\r\nusing GZ.DB.Entity.OIDATABASE;\r\nusing GZ.DB.IRepository.OIDATABASE;\r\nusing GZ.DB.Repository.OIDATABASE;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement;\r\nusing System.Windows.Interop;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;\r\n\r\nnamespace GZ.Projects.AuxAllWCS\r\n{\r\n public partial class AutoThread\r\n {\r\n\r\n private static AutoThread _instance;\r\n\r\n // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å\r\n private AutoThread() { }\r\n\r\n public static AutoThread Instance\r\n {\r\n get\r\n {\r\n if (_instance == null)\r\n {\r\n _instance = new AutoThread();\r\n }\r\n return _instance;\r\n }\r\n }\r\n\r\n // 线ç¨å®å
¨çå§æç¼å\r\n private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>();\r\n\r\n // æ¹æ³æ§è¡å¨\r\n public static object InvokeMethod(object instance, string methodName, params object[] args)\r\n {\r\n var cacheKey = $\"{instance.GetType().FullName}_{methodName}\";\r\n\r\n if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate))\r\n {\r\n // è·åæ¹æ³ä¿¡æ¯\r\n var methodInfo = instance.GetType().GetMethod(\r\n methodName,\r\n BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);\r\n\r\n if (methodInfo == null)\r\n throw new MissingMethodException($\"Method {methodName} not found\");\r\n\r\n // åå»ºå§æå¹¶ç¼å\r\n methodDelegate = Delegate.CreateDelegate(\r\n GetDelegateType(methodInfo),\r\n instance,\r\n methodInfo);\r\n\r\n _methodCache.TryAdd(cacheKey, methodDelegate);\r\n }\r\n\r\n // æ§è¡å§æ\r\n return methodDelegate.DynamicInvoke(args);\r\n }\r\n\r\n // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å\r\n private static Type GetDelegateType(MethodInfo methodInfo)\r\n {\r\n var parameterTypes = methodInfo.GetParameters()\r\n .Select(p => p.ParameterType)\r\n .ToList();\r\n\r\n if (methodInfo.ReturnType == typeof(void))\r\n {\r\n return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray());\r\n }\r\n else\r\n {\r\n parameterTypes.Add(methodInfo.ReturnType);\r\n return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray());\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// é
ç½®åå§åã\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n /// <param name=\"action\"></param>\r\n public void ThreadSettingInit(Tag tag, Action action)\r\n {\r\n Console.WriteLine(\"åå§åé
ç½® çº¿ç¨ run \" + tag.Global.SettingsOver);\r\n if (tag.Global.SettingsOver == 0)\r\n {\r\n action?.Invoke();\r\n tag.Global.SettingsOver = 1;\r\n }\r\n else if (Settings.deviceInfos.Count == 0)\r\n {\r\n tag.Global.SettingsOver = 0;\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// æ·é¡º1 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS1(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1212_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0)\r\n {\r\n //tag.Js1.D1212_LAST = 0; \r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1213_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0)\r\n {\r\n //tag.Js1.D1213_LAST = 0;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// æ·é¡º2 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS2(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1212_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0)\r\n {\r\n //tag.Js2.D1212_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1213_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0)\r\n {\r\n //tag.Js2.D1213_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// ç»´å¸å°1 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1L ç»´å¸å°1 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R10)\r\n {\r\n tag.wxr1.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°1 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1R ç»´å¸å°1 å³ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R11)\r\n {\r\n tag.wxr1.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2L ç»´å¸å°2 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R10)\r\n {\r\n tag.wxr2.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2R ç»´å¸å°2 å³ =================> \");\r\n\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R11)\r\n {\r\n tag.wxr2.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action)\r\n {\r\n Console.WriteLine($\"ThreadTaskRun ä»»å¡ä¸å =================> \");\r\n LogHelper.Info(\"ThreadTaskRun ä»»å¡ä¸å\");\r\n\r\n ITaskRepository taskservice = new TaskRepository();\r\n try\r\n {\r\n LogHelper.Info(\"ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥\");\r\n #region AGVä»»å¡ä¸åã\r\n\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\n if (tklist.Any())\r\n foreach (var tk in tklist.GroupBy(item =>\r\n {\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n }).OrderBy(x => x.Key))\r\n {\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n }\r\n //foreach (var tk in tklist.GroupBy(item =>\r\n //{\r\n // var ticks = item.T_CREATE.Ticks;\r\n // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n //}).OrderBy(x => x.Key))\r\n //if (tklist.Any())\r\n //{\r\n\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n try\r\n {\r\n #region Rgv\r\n\r\n LogHelper.Info($\"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã\");\r\n\r\n if (tag.RGV.taskend == 125)\r\n {\r\n System.Threading.Thread.Sleep(3000);\r\n return;\r\n }\r\n LogHelper.Info(\"ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥\");\r\n\r\n var task1Isrun = false;\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n {\r\n task1Isrun = true;\r\n //if (tag.RGV.bit1taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n }\r\n var task2Isrun = false;\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n {\r\n task2Isrun = true;\r\n //if (tag.RGV.bit2taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n }\r\n if (task1Isrun || task2Isrun)\r\n {\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n System.Threading.Thread.Sleep(3000);\r\n return; \r\n }\r\n var thisOver = 0;\r\n TaskEntity task1 = null;\r\n TaskEntity task2 = null;\r\n\r\n LogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 1;\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask1No = 0;\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit1taskOver = 0;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV1å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask1No == 0)\r\n {\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n }\r\n\r\n LogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 2;\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask2No = 0;\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit2taskOver = 0;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV2å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask2No == 0)\r\n {\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n }\r\n\r\n\r\n\r\n //if (thisOver > 0)\r\n //{\r\n // var v2 = RedisHelper.Get<WriteGroupEntity>(\"RGVQueue\", out string rev);\r\n // if (v2 != null)\r\n // {\r\n // LogHelper.Info($\"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \\n ä¸ååè¿è¡æ¸
é¤ã\");\r\n // var b = RedisHelper.Remove(\"RGVQueue\", out rev);\r\n // }\r\n //}\r\n\r\n ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\n if (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n //RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n //Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\");\r\n\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã \r\n {\r\n\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n\r\n // 2å· ä¼å
ç» 1020 1008 1016\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (t2 != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n //else if (leftSide.Contains(task1.S_START_LOC))\r\n //{\r\n // leftSide.Remove(task1.S_START_LOC);\r\n // var lsde = leftSide.FirstOrDefault();\r\n // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n //else if (RightSide.Contains(task1.S_START_LOC))\r\n //{\r\n // RightSide.Remove(task1.S_START_LOC);\r\n // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 125\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n else //1 ç´æ¥å¸è´§ã \r\n //if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> taskend å 0\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{task2.S_TASK_NO}> taskend å125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n //var lss = tklist.Take(2).ToList();\r\n var e1017first = tklist.Find(x => x.S_START_LOC == \"1002\" || x.S_START_LOC == \"1010\" || x.S_START_LOC == \"1023\");\r\n //if (e1017first != null)\r\n //{\r\n // e1017first = tklist.FirstOrDefault();\r\n //}\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend å125\");\r\n //tag.RGV.taskend=125\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else\r\n {\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (tklist != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n }\r\n LogHelper.Info($\"rgv å¤ç宿ãtaskend 125\");\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n\r\n\r\n public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask)\r\n {\r\n Console.WriteLine($\"ThreadGrats å
æ
å¤ç =================> \");\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n }\r\n if (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu = false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n //è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n //车è¦è¿å
¥äº¤äºã\r\n else\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n if (tf?.ToLower() == \"true\")\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n LogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask?.Invoke(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n /// <summary>\r\n /// 1020 1023空æ¡ä¸çº¿\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadEdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> \");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } \");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n try\r\n {\r\n var listtep = new List<string>();\r\n if (Bssx == \"1020\")\r\n {\r\n if (tag.SF䏿ä½.RArrive1003 == 1)\r\n {\r\n listtep = new List<string> { \"1012\", \"1004\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1004\", \"1012\" };\r\n }\r\n }\r\n else\r\n {\r\n if (tag.SF䏿ä½.RArrive1005 == 1)\r\n {\r\n listtep = new List<string> { \"1014\", \"1006\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1006\", \"1014\" };\r\n }\r\n }\r\n\r\n foreach (var item in listtep)//(Bssx == \"1020\" ? new string[] { \"1004\", \"1012\" } : new string[] { \"1006\", \"1014\" }))\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0 && task == null)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n\r\n foreach (var item in new string[] { \"1004\", \"1012\", \"1006\", \"1014\", \"1026\", \"1017\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadDdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadDdown 08 10 ==================> 1026\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n public void Thread0210Down(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread0210Down ==================>\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n\r\n public void Thread䏿使£æµ(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread䏿使£æµ =====>\");\r\n foreach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n {\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\" && tag.SF䏿ä½.WRelease1005 == 0)\r\n {\r\n tag.FNK1.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1005 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\" && tag.SF䏿ä½.WRelease1003 == 0)\r\n {\r\n tag.FNK1.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1003 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\" && tag.SF䏿ä½.WRelease1013 == 0)\r\n {\r\n tag.FNK2.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1013 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\" && tag.SF䏿ä½.WRelease1011 == 0)\r\n {\r\n tag.FNK2.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1011 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", $\"FNK1003051113Queue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadFNK1Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK1Over =====>\");\r\n if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n {\r\n tag.FNK1.D2215 = 0;\r\n //tag.FNK1.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"0\", out msg);\r\n }\r\n if (tag.FNK1.D2216 == 1)\r\n tag.FNK1.D2215 = 0;\r\n else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n //tag.FNK1.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n {\r\n tag.FNK1.D2210 = 0;\r\n //tag.FNK1.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"0\", out msg);\r\n }\r\n //else if (tag.FNK1.D2211 == 1)\r\n // tag.FNK1.D2210 = 0;\r\n else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n {\r\n //tag.FNK1.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK1.D2211 == 1)\r\n tag.FNK1.D2210 = 0;\r\n\r\n }\r\n public void ThreadFNK2Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK2Over =====>\");\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n //tag.FNK2.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n //tag.FNK2.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK2.D2216 == 1)\r\n tag.FNK2.D2215 = 0;\r\n\r\n if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n //tag.FNK2.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n //tag.FNK2.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK2.D2211 == 1)\r\n tag.FNK2.D2210 = 0;\r\n\r\n }\r\n\r\n public void Thread1019Down(Tag tag)\r\n {\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");\r\n }\r\n public void Thread1025Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");\r\n }\r\n public void Thread1022Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1022 =====>\");\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");\r\n }\r\n public void Thread1030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");\r\n }\r\n public void Thread2030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");\r\n }\r\n\r\n\r\n }\r\n}\r\n", |
| | | "Code": "using Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.Concurrent;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing GZ.Modular.Redis;\r\nusing GZ.DB.Entity.OIDATABASE;\r\nusing GZ.DB.IRepository.OIDATABASE;\r\nusing GZ.DB.Repository.OIDATABASE;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement;\r\nusing System.Windows.Interop;\r\nusing static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;\r\n\r\nnamespace GZ.Projects.AuxAllWCS\r\n{\r\n public partial class AutoThread\r\n {\r\n\r\n private static AutoThread _instance;\r\n\r\n // ç§ææé 彿°é²æ¢å¤é¨å®ä¾å\r\n private AutoThread() { }\r\n\r\n public static AutoThread Instance\r\n {\r\n get\r\n {\r\n if (_instance == null)\r\n {\r\n _instance = new AutoThread();\r\n }\r\n return _instance;\r\n }\r\n }\r\n\r\n // 线ç¨å®å
¨çå§æç¼å\r\n private static readonly ConcurrentDictionary<string, Delegate> _methodCache = new ConcurrentDictionary<string, Delegate>();\r\n\r\n // æ¹æ³æ§è¡å¨\r\n public static object InvokeMethod(object instance, string methodName, params object[] args)\r\n {\r\n var cacheKey = $\"{instance.GetType().FullName}_{methodName}\";\r\n\r\n if (!_methodCache.TryGetValue(cacheKey, out var methodDelegate))\r\n {\r\n // è·åæ¹æ³ä¿¡æ¯\r\n var methodInfo = instance.GetType().GetMethod(\r\n methodName,\r\n BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);\r\n\r\n if (methodInfo == null)\r\n throw new MissingMethodException($\"Method {methodName} not found\");\r\n\r\n // åå»ºå§æå¹¶ç¼å\r\n methodDelegate = Delegate.CreateDelegate(\r\n GetDelegateType(methodInfo),\r\n instance,\r\n methodInfo);\r\n\r\n _methodCache.TryAdd(cacheKey, methodDelegate);\r\n }\r\n\r\n // æ§è¡å§æ\r\n return methodDelegate.DynamicInvoke(args);\r\n }\r\n\r\n // æ ¹æ®æ¹æ³ç¾åçæå¯¹åºçå§æç±»å\r\n private static Type GetDelegateType(MethodInfo methodInfo)\r\n {\r\n var parameterTypes = methodInfo.GetParameters()\r\n .Select(p => p.ParameterType)\r\n .ToList();\r\n\r\n if (methodInfo.ReturnType == typeof(void))\r\n {\r\n return System.Linq.Expressions.Expression.GetActionType(parameterTypes.ToArray());\r\n }\r\n else\r\n {\r\n parameterTypes.Add(methodInfo.ReturnType);\r\n return System.Linq.Expressions.Expression.GetFuncType(parameterTypes.ToArray());\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// é
ç½®åå§åã\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n /// <param name=\"action\"></param>\r\n public void ThreadSettingInit(Tag tag, Action action)\r\n {\r\n Console.WriteLine(\"åå§åé
ç½® çº¿ç¨ run \" + tag.Global.SettingsOver);\r\n if (tag.Global.SettingsOver == 0)\r\n {\r\n action?.Invoke();\r\n tag.Global.SettingsOver = 1;\r\n }\r\n else if (Settings.deviceInfos.Count == 0)\r\n {\r\n tag.Global.SettingsOver = 0;\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// æ·é¡º1 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS1(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS1 æ·é¡º1 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º1\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1212_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0)\r\n {\r\n //tag.Js1.D1212_LAST = 0; \r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js1.D1213_LAST = 1;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0)\r\n {\r\n //tag.Js1.D1213_LAST = 0;\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// æ·é¡º2 ä¿¡å·å¤ç\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadJS2(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadJS2 æ·é¡º2 ä¿¡å·å¤ç =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 2 && x.deviceName == \"Jsæ·é¡º2\");\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[0]\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1212_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0)\r\n {\r\n //tag.Js2.D1212_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 4,\r\n endBit = VERX.location[1]\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n //tag.Js2.D1213_LAST = 1;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"1\", out string msg);\r\n }\r\n }\r\n if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0)\r\n {\r\n //tag.Js2.D1213_LAST = 0;\r\n\r\n RedisHelper.Add($\"Jsæ·é¡º1.D1213_LAST\", \"0\", out string msg);\r\n }\r\n }\r\n }\r\n /// <summary>\r\n /// ç»´å¸å°1 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1L ç»´å¸å°1 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n //TaskRepository ts = new TaskRepository();\r\n if (tag.wxr1.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R10)\r\n {\r\n tag.wxr1.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R10 = true;\r\n tag.wxr1.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°1 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr1R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr1R ç»´å¸å°1 å³ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr1.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr1.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr1.R11)\r\n {\r\n tag.wxr1.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr1.R11 = true;\r\n tag.wxr1.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å·¦\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2L(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2L ç»´å¸å°2 å·¦ =================> \");\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[0],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[0]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R44_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R10_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R10)\r\n {\r\n tag.wxr2.R10_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R10 = true;\r\n tag.wxr2.R44_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// ç»´å¸å°2 å³\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void Threadwxr2R(Tag tag)\r\n {\r\n Console.WriteLine($\"Threadwxr2R ç»´å¸å°2 å³ =================> \");\r\n\r\n var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n if (VERX != null)\r\n {\r\n if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n {\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n {\r\n requestType = 1,\r\n cntrCode = traycode,\r\n startBit = VERX.location[1],\r\n endBit = \"\"\r\n }));\r\n LogHelper.Info($\"{VERX.location[1]}ç³è¯·mesä»»å¡ç»æ{str}\");\r\n if (str.Contains(\"true\"))\r\n {\r\n tag.wxr2.R46_LAST = true;\r\n }\r\n }\r\n else\r\n {\r\n TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n }\r\n }\r\n else\r\n {\r\n if (tag.wxr2.R11_LAST) //æçæ¾ç½®ä¿¡å·ãã\r\n {\r\n if (tag.wxr2.R11)\r\n {\r\n tag.wxr2.R11_LAST = false;\r\n }\r\n else\r\n if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n {\r\n //䏿¥æ ¡éªã\r\n ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n {\r\n sceneType = 1,\r\n cntrCode = traycode,\r\n }));\r\n if (str.Contains(\"true\"))\r\n {\r\n //Conn.é»è®¤Redis.SetValue(\"ç»´å¸å°æè1.R10\", \"true\", \"ç»´å¸å°æè1Queue\");\r\n tag.wxr2.R11 = true;\r\n tag.wxr2.R46_LAST = false;\r\n }\r\n else\r\n {\r\n //æ¥è¦ã\r\n }\r\n }\r\n else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action)\r\n {\r\n Console.WriteLine($\"ThreadTaskRun ä»»å¡ä¸å =================> \");\r\n LogHelper.Info(\"ThreadTaskRun ä»»å¡ä¸å\");\r\n\r\n ITaskRepository taskservice = new TaskRepository();\r\n try\r\n {\r\n LogHelper.Info(\"ä»»å¡ä¸å ARG ä»»å¡ è¿å
¥\");\r\n #region AGVä»»å¡ä¸åã\r\n\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"AGV\");\r\n if (tklist.Any())\r\n foreach (var tk in tklist.GroupBy(item =>\r\n {\r\n var ticks = item.T_CREATE.Ticks;\r\n return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n }).OrderBy(x => x.Key))\r\n {\r\n var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n foreach (var t in ts)\r\n {\r\n var b = false;\r\n b = action?.Invoke(t) ?? false; //new ViewModel().RunTask(t);\r\n\r\n if (b)\r\n {\r\n t.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t);\r\n }\r\n }\r\n break;\r\n }\r\n //foreach (var tk in tklist.GroupBy(item =>\r\n //{\r\n // var ticks = item.T_CREATE.Ticks;\r\n // return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n //}).OrderBy(x => x.Key))\r\n //if (tklist.Any())\r\n //{\r\n\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n try\r\n {\r\n #region Rgv\r\n\r\n LogHelper.Info($\"æ¥çRGV çµéï¼ã{tag.RGV.Rå½åçµé}ã å
çµç¶æï¼ã{tag.RGV.Rå
çµç¶æ}ã æ
é代ç ï¼ã{tag.RGV.RgvrunError}ã\");\r\n\r\n if (tag.RGV.taskend == 125)\r\n {\r\n System.Threading.Thread.Sleep(3000);\r\n return;\r\n }\r\n LogHelper.Info(\"ä»»å¡ä¸å Rgv ä»»å¡ è¿å
¥\");\r\n\r\n var task1Isrun = false;\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n {\r\n task1Isrun = true;\r\n //if (tag.RGV.bit1taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n }\r\n var task2Isrun = false;\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n {\r\n task2Isrun = true;\r\n //if (tag.RGV.bit2taskOver_LAST == 1)\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n }\r\n if (task1Isrun || task2Isrun)\r\n {\r\n string mes = \"\";\r\n if (task1Isrun)\r\n mes += tag.RGV.ReadTask1No + \"æ§è¡ä¸...\";\r\n if (task2Isrun)\r\n mes += tag.RGV.ReadTask2No + \"æ§è¡ä¸...\";\r\n LogHelper.Info($\"{mes} ä¸è½ä¸åæ°ä»»å¡ã\");\r\n System.Threading.Thread.Sleep(3000);\r\n return; \r\n }\r\n var thisOver = 0;\r\n TaskEntity task1 = null;\r\n TaskEntity task2 = null;\r\n\r\n LogHelper.Info($\"æ¥çRGV 1å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask1No;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{tag.RGV.ReadTask1No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task1)}.bit1taskOver_LASTï¼{tag.RGV.bit1taskOver_LAST}\");\r\n if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n {\r\n if (task1.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 1;\r\n if (task1.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task1.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask1No = 0;\r\n }\r\n else\r\n {\r\n task1.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit1taskOver = 0;\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡{task1.S_TASK_NO} ç¶æåæ¢ä¸º{task1.S_B_STATE}\");\r\n //tag.RGV.bit1taskOver_LAST = 1;\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task1);\r\n LogHelper.Info($\"RGV 1å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV1å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask1No == 0)\r\n {\r\n LogHelper.Info($\"RGV 1工使²¡æä»»å¡ã\");\r\n }\r\n\r\n LogHelper.Info($\"æ¥çRGV 2å·¥ä½ä»»å¡ã\");\r\n if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n {\r\n var taskno = tag.RGV.ReadTask2No;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{tag.RGV.ReadTask2No}\");\r\n string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n LogHelper.Info($\"RGV2å·¥ä½ä»»å¡{JsonConvert.SerializeObject(task2)}.bit2taskOver_LASTï¼{tag.RGV.bit2taskOver_LAST}\");\r\n if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n {\r\n if (task2.S_B_STATE != \"宿\")\r\n {\r\n thisOver = 2;\r\n if (task2.S_B_STATE == \"åè´§å®æ\")\r\n {\r\n task2.S_B_STATE = \"宿\";\r\n tag.RGV.ReadTask2No = 0;\r\n }\r\n else\r\n {\r\n task2.S_B_STATE = \"åè´§å®æ\";\r\n }\r\n tag.RGV.bit2taskOver = 0;\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡{task2.S_TASK_NO} ç¶æåæ¢ä¸º{task2.S_B_STATE}\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡åå¤ç\");\r\n taskservice.Update(task2);\r\n LogHelper.Info($\"RGV 2å·¥ä½ä»»å¡æ´æ°ã\");\r\n }\r\n else\r\n {\r\n LogHelper.Info(\"RGV2å·¥ä½ä»»å¡å·²ç»å®æã\");\r\n }\r\n }\r\n }\r\n else if (tag.RGV.ReadTask2No == 0)\r\n {\r\n LogHelper.Info($\"RGV 2工使²¡æä»»å¡ã\");\r\n }\r\n\r\n\r\n\r\n //if (thisOver > 0)\r\n //{\r\n // var v2 = RedisHelper.Get<WriteGroupEntity>(\"RGVQueue\", out string rev);\r\n // if (v2 != null)\r\n // {\r\n // LogHelper.Info($\"RGVQueue 读å°ç»æ-{JsonConvert.SerializeObject(v2)} \\n ä¸ååè¿è¡æ¸
é¤ã\");\r\n // var b = RedisHelper.Remove(\"RGVQueue\", out rev);\r\n // }\r\n //}\r\n\r\n ///1 æè´§ å°±2 åã 1 没货 å°±2 å¸è´§ï¼ é½æè´§ å°±1å¸è´§ã 齿²¡è´§ å°±1å¸\r\n var tklist = taskservice.FindList(x => x.S_B_STATE == \"æªæ§è¡\" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\n if (task1 != null && task1.S_B_STATE != \"宿\") //1æä»»å¡\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 乿任å¡{task2.S_TASK_NO}ã å¼å§å·¥ä½1 å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n //RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n //Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\");\r\n\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else //1æä»»å¡ 2 没任å¡ã \r\n {\r\n\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡ã\");\r\n\r\n var leftSide = new List<string> { \"1023\", \"1020\" };\r\n var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n bool creT2 = false;\r\n\r\n // 2å· ä¼å
ç» 1020 1008 1016\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (t2 != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n creT2 = true;\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n ////2 妿æåä¾§åè´§ä»»å¡ãå°±åãæ²¡æ\r\n //else if (leftSide.Contains(task1.S_START_LOC))\r\n //{\r\n // leftSide.Remove(task1.S_START_LOC);\r\n // var lsde = leftSide.FirstOrDefault();\r\n // t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n //else if (RightSide.Contains(task1.S_START_LOC))\r\n //{\r\n // RightSide.Remove(task1.S_START_LOC);\r\n // t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n // if (t2 != null) //åä¾§åè´§ä»»å¡ã\r\n // {\r\n // LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã æ¾åä¾§ 1002,1010 åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n // tag.RGV.workMod = 2;\r\n // tag.RGV.taskmod = 1;\r\n // tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n // tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n // t2.S_B_STATE = \"å·²æ¨é\";\r\n // taskservice.Update(t2);\r\n // creT2 = true;\r\n // System.Threading.Thread.Sleep(750);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 125\");\r\n // RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n // LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n // Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n // }\r\n //}\r\n else //1 ç´æ¥å¸è´§ã \r\n //if (!creT2)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 æä»»å¡{task1.S_TASK_NO},å·¥ä½2 没任å¡ã 没æåä¾§åè´§ä»»å¡ 1å·¥ä½å¸è´§ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> bit1taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{task1.S_TASK_NO}> taskend å 0\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if (task2 != null && task2.S_B_STATE != \"宿\")// 1 æ²¡ä»»å¡ 2 æä»»å¡ã \r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 æä»»å¡{task2.S_TASK_NO}ãå·¥ä½2å¸è´§ãã\");\r\n //2 å¸è´§ã\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 2;\r\n tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{task2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n //tag.RGV.taskend = 125;\r\n LogHelper.Info($\"{task2.S_TASK_NO}> taskend å125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else if (tklist.Any()) //1mei ä»»å¡ 2 没任å¡ã\r\n {\r\n LogHelper.Info($\"æ¥çRGV 1工使²¡ä»»å¡,å·¥ä½2 乿²¡ä»»å¡ãä¼å
1å·¥ä½ç»ç¹1017ä»»å¡ãã\");\r\n //ãä¸ 1017ä»»å¡ ç»1å·å·¥ä½ã\r\n //var lss = tklist.Take(2).ToList();\r\n var e1017first = tklist.Find(x => x.S_START_LOC == \"1002\" || x.S_START_LOC == \"1010\" || x.S_START_LOC == \"1023\");\r\n //if (e1017first != null)\r\n //{\r\n // e1017first = tklist.FirstOrDefault();\r\n //}\r\n if (e1017first != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 ä»»å¡å·¥ä½2 没任å¡ã 1002 1010 1023åè´§ä»»å¡{e1017first.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 1;\r\n tag.RGV.taskmod = 1;\r\n uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> 转æ¢åä»»å¡å·{tno} å¼å§åå
¥ã\");\r\n tag.RGV.taskno1 = tno;\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}>å¼å§åå
¥ task1do>>{e1017first.S_START_LOC}ã\");\r\n tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> æ´æ°ä»»å¡ã\");\r\n e1017first.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(e1017first);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> bit1taskOver_LAST å0\");\r\n RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend å125\");\r\n //tag.RGV.taskend=125\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n else\r\n {\r\n var t2 = tklist.OrderBy(x => x.T_CREATE).ToList().Find(x => x.S_START_LOC == \"1020\" || x.S_START_LOC == \"1008\" || x.S_START_LOC == \"1016\");\r\n if (tklist != null)\r\n {\r\n LogHelper.Info($\"æ¥çRGV1 没任å¡å·¥ä½2 没任å¡ã æ¾1020 1008 1016åè´§ä»»å¡{t2.S_TASK_NO}ã\");\r\n tag.RGV.workMod = 2;\r\n tag.RGV.taskmod = 1;\r\n tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n t2.S_B_STATE = \"å·²æ¨é\";\r\n taskservice.Update(t2);\r\n System.Threading.Thread.Sleep(750);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> bit2taskOver_LAST å 0\");\r\n RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n LogHelper.Info($\"{t2.S_TASK_NO}> end å 125\");\r\n Conn.é»è®¤Redis.SetValue(\"RGV.taskend\", \"125\", \"RGVQueue\", false);\r\n }\r\n }\r\n }\r\n }\r\n LogHelper.Info($\"rgv å¤ç宿ãtaskend 125\");\r\n #endregion\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Info(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n\r\n\r\n public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask)\r\n {\r\n Console.WriteLine($\"ThreadGrats å
æ
å¤ç =================> \");\r\n var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n TaskActRepository taskActRepository = new TaskActRepository();\r\n TaskRepository taskRepository = new TaskRepository();\r\n var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n foreach (var item in requires)\r\n {\r\n var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n if (tin == -1)\r\n {\r\n item.N_CREATEMETHOD = -1;\r\n taskActRepository.Update(item);\r\n continue;\r\n }\r\n //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n string loc = \"\";\r\n if (tin < 2)\r\n {\r\n loc = item.S_START_LOC;\r\n }\r\n else\r\n {\r\n loc = item.S_END_LOC;\r\n }\r\n if (loc == null) continue; else loc = loc.Trim();\r\n bool goin = tin % 2 == 0;\r\n bool continuuuuu = false;\r\n var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n if (dev != null)\r\n {\r\n var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n //è½¦èµ°äº å¼å
æ
\r\n if (!goin)\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n //车è¦è¿å
¥äº¤äºã\r\n else\r\n {\r\n if (dev.deviceType == 1)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//读å
³éç¶æ\r\n if (tf?.ToLower() == \"true\")\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n }\r\n\r\n }\r\n else if (dev.deviceType == 2)\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1)\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã å·²ç»å
³éï¼\");\r\n continuuuuu = true;\r\n }\r\n else\r\n {\r\n LogHelper.Info($\"{dev.deviceName}{(V ? \"å·¦\" : \"å³\")} å
æ
{(goin ? \"å
³é\" : \"å¼å¯\")} ç³è¯·ã\" + string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n if (continuuuuu)\r\n {\r\n LogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 车è¾åéç»§ç»ä»»å¡ï¼\");\r\n continueTask?.Invoke(new HaiKangOrderInfo\r\n {\r\n reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n taskCode = item.S_TASK_NO\r\n });\r\n item.N_CREATEMETHOD = 1;\r\n taskActRepository.Update(item);\r\n }\r\n }\r\n System.Threading.Thread.Sleep(3000);\r\n //é置信å·\r\n foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n {\r\n var tf = Conn.é»è®¤Redis.GetValue(dev.deviceName + \".D1202\");\r\n int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n if (TcpServer.GetBitdata(numm, 0) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n {\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n Conn.é»è®¤Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n }\r\n }\r\n\r\n }\r\n /// <summary>\r\n /// 1020 1023空æ¡ä¸çº¿\r\n /// </summary>\r\n /// <param name=\"tag\"></param>\r\n public void ThreadEdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadEdown 20 23 = ç©ºä¸æ£æµ =================> \");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} ç©ºä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç } \");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n try\r\n {\r\n var listtep = new List<string>();\r\n if (Bssx == \"1020\")\r\n {\r\n if (tag.SF䏿ä½.RArrive1003 == 1)\r\n {\r\n listtep = new List<string> { \"1012\", \"1004\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1004\", \"1012\" };\r\n }\r\n }\r\n else\r\n {\r\n if (tag.SF䏿ä½.RArrive1005 == 1)\r\n {\r\n listtep = new List<string> { \"1014\", \"1006\" };\r\n }\r\n else\r\n {\r\n listtep = new List<string> { \"1006\", \"1014\" };\r\n }\r\n }\r\n\r\n foreach (var item in listtep)//(Bssx == \"1020\" ? new string[] { \"1004\", \"1012\" } : new string[] { \"1006\", \"1014\" }))\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0 && task == null)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\" {item}ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"空ä¸RGV\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n LogHelper.Debug($\"è¾é线RGV空æä»»å¡ from:{Bssx}>to {item}å¼å§å建æå\");\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n System.Threading.Thread.Sleep(1000);\r\n }\r\n catch (Exception ex)\r\n {\r\n LogHelper.Error(ex.Message, ex);\r\n Console.WriteLine(ex.Message + ex.StackTrace);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n\r\n foreach (var item in new string[] { \"1004\", \"1012\", \"1006\", \"1014\", \"1026\", \"1017\" })\r\n {\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadDdown(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadDdown 08 10 ==================> 1026\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n\r\n var item = \"1026\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1026\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg2);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg2);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n public void Thread0210Down(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread0210Down ==================>\");\r\n TaskRepository taskRepository = new TaskRepository();\r\n foreach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n {\r\n var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n var Ræçç = (System.String)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{Bssx}Read.Ræçç \"), typeof(System.String));\r\n Console.WriteLine($\"{Bssx} æ»¡ä¸æ£æµï¼ä»»å¡ç³è¯·ï¼{RtaskState}- æ¯å¦å·²å¤çï¼{RtaskState_LAST}- æçç ï¼{Ræçç }\");\r\n if (RtaskState == 3 && RtaskState_LAST == 0)\r\n {\r\n var task = taskRepository.FindEntity(x => x.S_START_LOC == Bssx && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n string msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{Bssx} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var item = \"1017\";\r\n var R5 = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²\"), typeof(System.UInt16));\r\n var R5空é²_LAST = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"S{item}Read.R5空é²_LAST\"), typeof(System.UInt16));\r\n if (R5 == 5 && R5空é²_LAST == 0)\r\n {\r\n task = taskRepository.FindEntity(x => x.S_END_LOC == item && x.S_B_STATE != \"宿\" && x.S_B_STATE != \"åæ¶\");\r\n msg = \"\";\r\n if (task != null)\r\n {\r\n Console.WriteLine($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n LogHelper.Info($\"{item} ææ£å¨ [{task.S_B_STATE}] ä¸ç{task.S_TASK_NO}ä»»å¡\");\r\n continue;\r\n }\r\n var b = TaskProcess.CreateTask(\"\", Bssx, item, \"满转1017\", 5, new List<string> { Ræçç }, \"RGV\");\r\n if (b)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out msg);\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"1\", out string msg1);\r\n //Conn.é»è®¤Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n //Conn.é»è®¤Redis.SetValue($\"S{item}Read.R5空é²_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n break;\r\n }\r\n }\r\n else if (R5 != 5 && R5空é²_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{item}Read.R5空é²_LAST\", \"0\", out string msg1);\r\n }\r\n }\r\n else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n {\r\n RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n }\r\n System.Threading.Thread.Sleep(2000);\r\n }\r\n }\r\n\r\n\r\n public void Thread䏿使£æµ(Tag tag)\r\n {\r\n Console.WriteLine($\"Thread䏿使£æµ =====>\");\r\n foreach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n {\r\n var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.é»è®¤Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n if (RArrive == 1 && RArriveLast == 0)\r\n {\r\n if (ssx == \"1005\" && tag.SF䏿ä½.WRelease1005 == 0)\r\n {\r\n tag.FNK1.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1005_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1005 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1003\" && tag.SF䏿ä½.WRelease1003 == 0)\r\n {\r\n tag.FNK1.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1003_LAST = 1;\r\n\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1003 = 0;\r\n //tag.SF䏿ä½.WSafe0305 = 0;\r\n }\r\n else if (ssx == \"1013\" && tag.SF䏿ä½.WRelease1013 == 0)\r\n {\r\n tag.FNK2.D2215 = 1;\r\n //tag.SF䏿ä½.RArrive1013_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1013 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n else if (ssx == \"1011\" && tag.SF䏿ä½.WRelease1011 == 0)\r\n {\r\n tag.FNK2.D2210 = 1;\r\n //tag.SF䏿ä½.RArrive1011_LAST = 1;\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"1\", out string msg);\r\n\r\n //tag.SF䏿ä½.WRelease1011 = 0;\r\n //tag.SF䏿ä½.WSafe1113 = 0;\r\n }\r\n }\r\n else if (RArrive == 0 && RArriveLast == 1)\r\n {\r\n RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n //Conn.é»è®¤Redis.SetValue($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", $\"FNK1003051113Queue\");\r\n }\r\n }\r\n }\r\n\r\n public void ThreadFNK1Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK1Over =====>\");\r\n if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n {\r\n tag.FNK1.D2215 = 0;\r\n //tag.FNK1.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1005 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1005_LAST\", \"0\", out msg);\r\n }\r\n if (tag.FNK1.D2216 == 1)\r\n tag.FNK1.D2215 = 0;\r\n else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n //tag.FNK1.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n {\r\n tag.FNK1.D2210 = 0;\r\n //tag.FNK1.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n tag.SF䏿ä½.WRelease1003 = 1;\r\n tag.SF䏿ä½.WSafe0305 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1003_LAST\", \"0\", out msg);\r\n }\r\n //else if (tag.FNK1.D2211 == 1)\r\n // tag.FNK1.D2210 = 0;\r\n else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n {\r\n //tag.FNK1.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§1ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK1.D2211 == 1)\r\n tag.FNK1.D2210 = 0;\r\n\r\n }\r\n public void ThreadFNK2Over(Tag tag)\r\n {\r\n Console.WriteLine($\"ThreadFNK2Over =====>\");\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n tag.FNK2.D2215 = 0;\r\n //tag.FNK2.D2212_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1013 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1013_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n //tag.FNK2.D2217_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2217_LAST\", \"0\", out string msg);\r\n\r\n if (tag.FNK2.D2216 == 1)\r\n tag.FNK2.D2215 = 0;\r\n\r\n if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n tag.FNK2.D2210 = 0;\r\n //tag.FNK2.D2217_LAST = 1;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"1\", out string msg);\r\n\r\n tag.SF䏿ä½.WRelease1011 = 1;\r\n tag.SF䏿ä½.WSafe1113 = 1;\r\n System.Threading.Thread.Sleep(1000);\r\n RedisHelper.Add($\"FNK1003051113.RArrive1011_LAST\", \"0\", out msg);\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n //tag.FNK2.D2212_LAST = 0;\r\n RedisHelper.Add($\"påé£ç§2ä¸çº¿.D2212_LAST\", \"0\", out string msg);\r\n }\r\n if (tag.FNK2.D2211 == 1)\r\n tag.FNK2.D2210 = 0;\r\n\r\n }\r\n\r\n public void Thread1019Down(Tag tag)\r\n {\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"1019ä»»å¡ç¶æï¼{tag.SA1019.RtaskState}- barcode:{tag.SA1019.Ræçç }- 空é²{tag.SA1019.R5空é²}\");\r\n }\r\n public void Thread1025Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1025 ä»»å¡ç¶æï¼{tag.SA1025.RtaskState}- 空é²{tag.SA1025.R5空é²}\");\r\n }\r\n public void Thread1022Up(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1022 =====>\");\r\n Console.WriteLine($\"SA1022 ä»»å¡ç¶æï¼{tag.SA1022.RtaskState}- 空é²{tag.SA1022.R5空é²}\");\r\n }\r\n public void Thread1030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA1030 ä»»å¡ç¶æï¼{tag.SA1030.RtaskState}- 空é²{tag.SA1030.R5空é²}-->对åºç»ç¹2001>空é²5ï¼{tag.SA2001.R5空é²}\");\r\n }\r\n public void Thread2030Down(Tag tag)\r\n {\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼ =====>\");\r\n Console.WriteLine($\"SA2030 ä»»å¡ç¶æï¼{tag.SA2030.RtaskState}- 空é²{tag.SA2030.R5空é²} - barcode:{tag.SA2030.Ræçç }\");\r\n }\r\n\r\n\r\n }\r\n}\r\n", |
| | | "CusMethod": { |
| | | "Name": "", |
| | | "Params": [], |
| | | "ReturnType": "" |
| | | }, |
| | | "CusClass": { |
| | | "Name": "", |
| | | "InheritClass": "", |
| | | "Inherits": [] |
| | | } |
| | | } |
| | | ], |
| | | "CreationTime": "2025-02-26 15:31:23", |
| | | "LastWriteTime": "2025-06-17 09:30:15", |
| | | "LastWriteTime": "2025-06-23 09:18:50", |
| | | "HasSaved": true |
| | | } |