11
pulg
2025-06-05 28bea7128b8c24a6a664e880f1425e1fa24b9b5f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using HH.WCS.Hexafluo.api;
using HH.WCS.Hexafluo.util;
using HH.WCS.SJML.Bll;
using HH.WCS.SJML.dispatch;
using HH.WCS.ZCQTJ.Entitys;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Linq;
 
namespace HH.WCS.Hexafluo.core
{
    /// <summary>
    /// wcs安全请求
    /// </summary>
    public class WcsSecurityRequest
    {
        private static object locko5 = new object();
        /// <summary>
        /// 检查是否有自管任务,自动子任务
        /// </summary>
        public static void CheckCamera()
        {
            try
            {
                lock (locko5)
                {
                    var chi = new SqlHelper<object>().GetInstance();
                    var newDb2 = chi.CopyNew();
 
                    var TaskList2 = newDb2.Queryable<TN_AsyncEntitys>().Where(e => e.S_PortID == "2" && e.S_IsCall == "Y").ToList();
                    if (TaskList2.Any())
                    {
                        foreach (var task in TaskList2)
                        {
                            LogHelper.DanInfo("立库", " WCS下任务 异步交互 参数" + task.JsonValue);
                            var tp = BLLCreator.Create<WmsController>().WcsMtInwork(task.JsonValue);
                            if (tp.Success)
                            {
                                try
                                {
                                    newDb2.BeginTran();
                                    var I = newDb2.Updateable<TN_AsyncEntitys>().SetColumns(it => new TN_AsyncEntitys() { S_IsCall = "N" }).Where(e => e.S_ID == task.S_ID).ExecuteCommand();
                                    LogHelper.DanInfo("立库", " WCS下任务 异步交互 成功通知后 修改异步表 影响行数 " + I);
                                    newDb2.CommitTran();
                                }
                                catch (Exception ex)
                                {
                                    LogHelper.DanInfo("立库", " WCS下任务 异步交互 报错" + JsonConvert.SerializeObject(ex));
                                    newDb2.RollbackTran();
                                }
                            }
                        }
                    }
 
                    var TaskList = newDb2.Queryable<TN_AsyncEntitys>().Where(e => e.S_PortID == "1" && e.S_IsCall == "Y").ToList();
                    if (TaskList.Any())
                    {
                        TaskList = TaskList.OrderBy(e => e.T_CREATE).ToList();
                        foreach (var item in TaskList)
                        {
                            var Wcs = BLLCreator.Create<WcsTask>().WcsCallbackAnyc(item.JsonValue);
                            if (Wcs.Success)
                            {
                                try
                                {
                                    newDb2.BeginTran();
                                    var I = newDb2.Updateable<TN_AsyncEntitys>().SetColumns(it => new TN_AsyncEntitys() { S_IsCall = "N" }).Where(e => e.S_ID == item.S_ID).ExecuteCommand();
                                    LogHelper.DanInfo("立库", " 安全交互 异步交互 成功通知后 修改异步表 影响行数 " + I);
                                    newDb2.CommitTran();
                                }
                                catch (Exception ex)
                                {
                                    LogHelper.DanInfo("立库", " 安全交互 异步交互 报错" + JsonConvert.SerializeObject(ex));
                                    newDb2.RollbackTran();
                                }
                            }
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                LogHelper.Info("立库", "异步交互报错:" + JsonConvert.SerializeObject(ex));
            }
        }
    }
}