分配楼层.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WCS.Core;
  8. using WCS.Entity.Protocol.Station;
  9. using WCS.WorkEngineering.Worlds;
  10. using WCS.WorkEngineering.Extensions;
  11. using ServiceCenter.SqlSugars;
  12. using WCS.Entity;
  13. using SqlSugar;
  14. using ICSharpCode.SharpZipLib.Zip;
  15. using WCS.Entity.Protocol.QT;
  16. using Newtonsoft.Json;
  17. using WCS.WorkEngineering.WebApi.Models.WCS.Request;
  18. namespace WCS.WorkEngineering.Systems.扭转检测
  19. {
  20. [BelongTo(typeof(MainWorld))]
  21. [Description("分配楼层")]
  22. public class 分配楼层 : DeviceSystem<Device<IStation520, IStation521, IStation523>>
  23. {
  24. protected override bool ParallelDo => false;
  25. public override void Do(Device<IStation520, IStation521, IStation523> obj)
  26. {
  27. if (obj.Data.VoucherNo != obj.Data2.VoucherNo)
  28. {
  29. World.Log("PLC正在处理");
  30. return;
  31. }
  32. if (obj.Data2.Request == 0)
  33. {
  34. World.Log("无请求");
  35. return;
  36. }
  37. //return;
  38. World.Log($"扭转回库楼层分配{obj.Entity.Code}交互开始时间:一个周期" + DateTime.Now.ToString("yyyyMMddHHmmss"));
  39. var res = WMS.检测回库分配楼层(4);
  40. if (!res.Success)
  41. {
  42. World.Log($"扭转回库楼层分配{obj.Entity.Code}交互结束时间:一个周期" + DateTime.Now.ToString("yyyyMMddHHmmss"));
  43. MainWorld.Redis.Set($"Sx:WCSErrorInfo:{obj.Entity.Code}", JsonConvert.SerializeObject(new RedisError() { Equip = obj.Entity.Code, Con = "扭转回库楼层分配" + obj.Entity.Code + "," + res.ResMsg, Time = DateTime.Now }));
  44. return;
  45. }
  46. if (res.ResData == 0)
  47. {
  48. MainWorld.Redis.Set($"Sx:WCSErrorInfo:{obj.Entity.Code}", JsonConvert.SerializeObject(new RedisError() { Equip = obj.Entity.Code, Con = obj.Entity.Code + "," + res.ResMsg, Time = DateTime.Now }));
  49. return;
  50. }
  51. obj.Data.TaskNumber = short.Parse(obj.Entity.Code);
  52. obj.Data.GoodsEnd = (short)res.ResData;
  53. obj.Data.VoucherNo++;
  54. World.Log($"扭转回库楼层分配{obj.Entity.Code}交互结束时间:一个周期" + DateTime.Now.ToString("yyyyMMddHHmmss"));
  55. }
  56. public override bool Select(Device dev)
  57. {
  58. //5197 异常回库交互点
  59. return "4163,5197".Split(",").Contains(dev.Code);
  60. }
  61. }
  62. }