lss
2025-05-21 af42a9904d1d3939da7fa0a00c3a7a2ced78258e
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs
@@ -4,11 +4,13 @@
using HH.WCS.JiaTong.util;
using HH.WCS.JiaTong.wms;
using Newtonsoft.Json;
using S7.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using static HH.WCS.JiaTong.LISTA.process.HttpModel;
using static System.Collections.Specialized.BitVector32;
namespace HH.WCS.JiaTong.process
{
@@ -31,7 +33,7 @@
                    {
                        if (data == "")
                        {
                           // Traystacker(plc);
                            // Traystacker(plc);
                        }
                    }
                }
@@ -45,38 +47,47 @@
        /// <summary>
        /// 叠盘机空托返回
        /// </summary>    
        internal static void Traystacker(string loc,int qty)
        internal static void Traystacker(string loc, int qty, int type)
        {
            try
            {
                //上传数据
                Result<Traystacker> result1 = new Result<Traystacker>();
                Traystacker traystacker = new Traystacker() { station = loc, taskSource = 1, Qty = qty };
                result1.data.Add(traystacker);
                Traystacker result1 = new Traystacker() { station = loc, taskSource = 1, Qty = qty, dpType = type };
                HttpHelper httpHelper = new HttpHelper();
                Result result = new Result();
                string date = JsonConvert.SerializeObject(result1);
                string url = Settings.tableUrls.Find(a => a.id == 2).url;
                LogHelper.Info($"叠盘机空托返回:地址:{url},内容:{date}");
                var r = httpHelper.WebPost(url, date);
                result = JsonConvert.DeserializeObject<Result>(r);
                if (result.code == "0")
                var url = Settings.tableUrls.Find(a => a.id == 3);
                if (url != null)
                {
                    LogHelper.Info($"叠盘机空托返回:地址:{url.url},内容:{date}");
                    var r = httpHelper.WebPost(url.url, date);
                    result = JsonConvert.DeserializeObject<Result>(r);
                    if (result.code == "0")
                    {
                    LogHelper.Info($"叠盘机空托返回请求成功");
                        LogHelper.Info($"叠盘机空托返回请求成功");
                    }
                    else
                    {
                        LogHelper.Info($"叠盘机空托返回请求失败=>msg:{result.msg}");
                    }
                }
                else
                {
                    LogHelper.Info($"叠盘机空托返回请求失败=>msg:{result.msg}");
                    LogHelper.Info($"叠盘机空托:根据id=3,未找到配置链接,请检查配置文件");
                }
            }
            catch (Exception ex)
            {
                LogHelper.Info($"叠盘机空托返回  Error=>{ex.ToString()}");
                LogHelper.Error($"叠盘机空托返回  Error=>{ex.ToString()}", ex);
            }
        }
        /// <summary>
        /// 原材料库agv叠盘回库
        /// </summary>
        internal static void Traffic()
        {
            var db = new SqlHelper<object>().GetInstance();
@@ -107,14 +118,20 @@
                }
            }
        }
        /// <summary>
        /// 井松agv叠盘回库
        /// </summary>
        internal static void KjTraffic()
        {
            var db = new SqlHelper<object>().GetInstance();
            List<string> locs = new List<string>() { "PMDDW-001" };
            var location = db.Queryable<Location>().Where(a => locs.Contains(a.S_CODE)).ToList();
            if (location.Count > 0)
            {
               // string cntrcode = "";
                // string cntrcode = "";
                foreach (var item in location)
                {
@@ -131,12 +148,58 @@
                        var mst = WCSHelper.GetTaskByStartloc(item.S_CODE);
                        if (mst == null)
                        {
                            Traystacker(item.S_CODE, item.N_CURRENT_NUM);
                            Traystacker(item.S_CODE, item.N_CURRENT_NUM, 1);
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 井松叠盘机叠盘回库
        /// </summary>
        internal static void DpjTraffic()
        {
            string startBti = "CMB17-DP-001";
            try
            {
                var IsDp = S7Helper.ReadDpj(2001, S7.Net.VarType.Byte);
                var value = S7Helper.ReadDpj(2014, S7.Net.VarType.Int);
                if (value >= 1 && IsDp == 1)
                {
                    //var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList();
                    //if (cntr.Count > 0)
                    //{
                    //    var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
                    //    cntrcode = string.Join(",", cntrcodes);
                    //}
                    //创建过未完成的任务不发起请求
                    var mst = WCSHelper.GetTaskByStartloc(startBti);
                    if (mst == null)
                    {
                        Traystacker(startBti, value, 2);
                    }
                    else
                    {
                        LogHelper.Info($"有执行中的叠盘回库任务{mst.S_CODE},不触发叠盘任务");
                    }
                }
                else
                {
                    LogHelper.Info($"叠盘机数量:{value},叠盘信号:{IsDp},不触发叠盘任务");
                }
                Thread.Sleep(8000);
            }
            catch (Exception ex)
            {
                LogHelper.Error($"ReadDpj DpjTraffic:{ex}", ex);
            }
        }
        /// <summary>
        /// 原材料库接口访问
        /// </summary>