cjs
2025-06-16 fee025c0d4fb4fd41d9dbf81b6435fd8e6229d5c
11111
9个文件已修改
292 ■■■■ 已修改文件
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
@@ -165,5 +165,19 @@
            result = ApiHelper.Bzxx(model);
            return result;
        }
        /// <summary>
        /// 电钴包装下线
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("DGPackingLineFull")]
        public SimpleResult DGPackingLineFull(string trayCode)
        {
            SimpleResult result = new SimpleResult();
            CMMLog.Debug("DGPackingLineFull Request:" + trayCode);
            result = ApiHelper.DGPackingLineFull(trayCode);
            return result;
        }
    }
}
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
@@ -588,6 +588,37 @@
            return result;
        }
        /// <summary>
        /// 电钴车间包装下线获取wms传入的托盘
        /// </summary>
        /// <param name="trayCode"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        internal static SimpleResult DGPackingLineFull(string trayCode)
        {
            SimpleResult result = new SimpleResult() { success = false,errCode = -1 };
            if (!string.IsNullOrEmpty(trayCode)){
                var DGInfo = MongoDBSingleton.Instance.FindOne<DGPackingLineFullModel>(Query.EQ("trayCode", trayCode), "DGPackingLineFullModel");
                if (DGInfo == null)
                {
                    MongoDBSingleton.Instance.Insert<DGPackingLineFullModel>(new DGPackingLineFullModel() { trayCode = trayCode, createTime = DateTime.Now }, "DGPackingLineFullModel");
                    result.success = true;
                    result.errCode = 0;
                }
                else
                {
                    result.errMsg = $"当前托盘号,已存在于ams中间表中,托盘号:{trayCode}";
                }
            }
            else
            {
                result.errMsg = $"当前托盘号为空";
            }
            return result;
        }
        public class mesInfo
        {
            public int code { get; set; }
@@ -728,6 +759,13 @@
            public int haveItem { get; set; }
        }
        public class DGPackingLineFullModel
        {
            public ObjectId _id { get; set; }
            public string trayCode { get; set; }
            public DateTime createTime { get; set; }
        }
        public class secondResultCache
        {
            /// <summary>
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
@@ -414,6 +414,21 @@
            }
            #endregion
            #region 10019-电钴接驳位入立库
            if (currActionModel.CN_N_ACTION_CODE == 10019)
            {
                var conInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
                if (conInfo != null)
                {
                    foreach (var a in conInfo)
                    {
                        CMMLog.Info(JsonConvert.SerializeObject(a));
                        PLCControl.DGInWarehouse(a.locCode);
                    }
                }
            }
            #endregion
            #endregion
            return bResult;
        }
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -731,7 +731,7 @@
        internal static void PickUpFullDoorComplete(string ip, string taskNo)
        {
            var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault();
            if (plc != null && !plc.location.Contains("FLZT"))
            if (plc != null)
            {
                if (plc.location.Contains("FLZT"))
                {
@@ -3978,6 +3978,38 @@
            }
        }
        /// <summary>
        /// 四钴接驳位入立库任务
        /// </summary>
        /// <param name="locCode"></param>
        internal static void DGInWarehouse(string locCode)
        {
            try
            {
                var locInfo = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", locCode), "DGConnectingBits");
                if (locInfo != null)
                {
                    if (locInfo.state == "1")
                    {
                        CMMLog.Info("DGInWarehouse:" + JsonConvert.SerializeObject(locInfo));
                        string wmstaskno = "";
                        string trayCode = "";
                        bool req = WMSHelper.WMSIn(locCode, "电钴打包下线", ref wmstaskno, ref trayCode, "", "CKHJ");
                        if (req)
                        {
                            CMMLog.Info($"电钴接驳位入立库流程:WMS生成任务成功!");
                            MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None);
                        }
                        else CMMLog.Info($"电钴接驳位入立库流程:WMS生成任务失败!");
                    }
                }
            }
            catch (Exception ex)
            {
                CMMLog.Info("DGInWarehouse" + ex.Message);
            }
        }
        internal static void outWare(string taskNo,bool flage)
        {
            var plc = Settings.GetPlcInfo().Where(a => a.Extend == "2" && a.enable == 1).FirstOrDefault();
@@ -4702,7 +4734,7 @@
                            //成品下线任务生成到接驳平台
                            string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
                            //可生成任务
                            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
                            var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
                            if (CBInfo != null)
                            {
                                //string timeStamp = timecuo.data.First().timeStamp.ToString();
@@ -4712,7 +4744,7 @@
                                    if (!string.IsNullOrEmpty(a.locCode))
                                    {
                                        //在中间表中查找点位
                                        var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits");
                                        var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits");
                                        if (CBTable != null)
                                        {
                                            if (string.IsNullOrEmpty(CBTable.trayCode))
@@ -4722,7 +4754,7 @@
                                                if (amsResult.success)
                                                {
                                                    CMMLog.Debug($"包装机满托下线:AMS调用API成功!");
                                                    MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
                                                    MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
                                                    break;
                                                }
@@ -4738,7 +4770,7 @@
                                                CMMLog.Debug($"包装机满托下线:AMS调用API成功!");
                                                //打包下线任务生成成功,向中间表插入数据
                                                MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
                                                MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
                                                break;
                                            }
                                            else CMMLog.Debug($"包装机满托下线:AMS调用API失败,开始重新调用!");
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -697,51 +697,52 @@
                if (plc.Count > 0)
                {
                    #region 判断输送线模式 变更注释
                    //bool action = true;
                    //foreach(var a in plc)
                    //{
                    //    var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                    //    {
                    //        dataNum = 1,
                    //        addr = a.readAddr + 3,
                    //        host = a.ip,
                    //        port = a.port
                    //    });
                    //    if (modeResult != null && modeResult.errCode == 0)
                    //    {
                    //        CMMLog.Debug($"OutWareTask:读取滚筒机{a.ip}通道号为:{a.readAddr + 3}的值为:{modeResult.result[0]}");
                    //        if (modeResult.result[0] == 2)
                    //        {
                    //            action = false;
                    //            CMMLog.Debug($"OutWareTask:输送线为 入库模式,输送线点位:{a.location}");
                    //            break;
                    //        }
                    //        else
                    //        {
                    //            //读取中间表模式
                    //            var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
                    //            if (modelInfo != null)
                    //            {
                    //                if (modelInfo.Mode == "入库模式")
                    //                {
                    //                    action = false;
                    //                    CMMLog.Debug($"OutWareTask:中间表 ModeList为 入库模式");
                    //                    break;
                    //                }
                    //            }
                    //            else
                    //            {
                    //                action = false;
                    //                CMMLog.Debug("OutWareTask:中间表 ModeList 为空");
                    //                break;
                    //            }
                    //        }
                    //    }
                    //};
                    //if (!action)
                    //{
                    //    return false;
                    //}
                    foreach(var a in plc)
                    {
                        bool action = false;
                        var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                        {
                            dataNum = 1,
                            addr = a.readAddr + 3,
                            host = a.ip,
                            port = a.port
                        });
                        if (modeResult != null && modeResult.errCode == 0)
                        {
                            CMMLog.Debug($"OutWareTask:读取滚筒机{a.ip}通道号为:{a.readAddr + 3}的值为:{modeResult.result[0]}");
                            if (modeResult.result[0] == 2)
                            {
                                CMMLog.Debug($"OutWareTask:输送线为 入库模式,输送线点位:{a.location}");
                                break;
                            }
                            else
                            {
                                //读取中间表模式
                                var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
                                if (modelInfo != null)
                                {
                                    if (modelInfo.Mode == "入库模式")
                                    {
                                        CMMLog.Debug($"OutWareTask:中间表 ModeList为 入库模式");
                                    }
                                    else
                                    {
                                        action = true;
                                    }
                                }
                                else
                                {
                                    CMMLog.Debug("OutWareTask:中间表 ModeList 为空");
                                }
                            }
                        }
                        if (!action)
                        {
                            return false;
                        }
                    };
                    #endregion
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -387,7 +387,10 @@
                        {
                            //打包下线取货完成,将数据写入中间表
                        }
                        if (mst.CN_S_BUSS_TYPE == "电钴缓存架入立库")
                        {
                            MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO),RemoveFlags.None);
                        }
                    }
                    if (action.CN_N_ACTION_CODE == 6)
                    {
@@ -821,6 +824,33 @@
            /// </summary>
            //public string END_LOC { get; set; } //变更注释
        }
        public class DGConnectingBits
        {
            public ObjectId _id { get; set; }
            /// <summary>
            /// 货位编码
            /// </summary>
            public string Bit { get; set; }
            /// <summary>
            /// 托盘号
            /// </summary>
            public string trayCode { get; set; }
            /// <summary>
            /// 货位状态 0 无货  1 有货
            /// </summary>
            public string state { get; set; }
            /// <summary>
            /// 时间戳
            /// </summary>
            public string timeCuo { get; set; }
            /// <summary>
            /// 二段任务的终点货位
            /// </summary>
            //public string END_LOC { get; set; } //变更注释
        }
        #endregion
        public class InAndOutQuantity
        {
            public ObjectId _id { get; set; }
@@ -857,8 +887,6 @@
            public string Day { get; set; }
            public int Quntity { get; set; }
        }
        #endregion
        internal void writeAGVState(TN_I_TASK_DTL_ACTION action)
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
@@ -499,6 +499,38 @@
        }
        #endregion
        #region SGConnectingbits
        private static string _SGConnectingbits = "";
        private static string SGConnectingbitsList
        {
            get
            {
                if (_SGConnectingbits == "")
                {
                    _SGConnectingbits = XmlHelper.GetElementValue("SGConnectingbits");
                }
                return _SGConnectingbits;
            }
        }
        private static List<SGConnectingbitsModel> SGconnectingbits = new List<SGConnectingbitsModel>();
        public static List<SGConnectingbitsModel> GetDGConnectingbitsList()
        {
            if (SGconnectingbits.Count == 0 && SGConnectingbitsList != "")
            {
                SGconnectingbits = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SGConnectingbitsModel>>(SGConnectingbitsList);
            }
            return SGconnectingbits;
        }
        public class SGConnectingbitsModel
        {
            public string locCode { get; set; }
            public int[] agvSite { get; set; }
            public int enable { get; set; }
        }
        #endregion
        #region ThirdUrl
        private static string _ThirdUrl = "";
        private static string ThirdUrlList
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
@@ -12,6 +12,7 @@
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper;
using static Hanhe.iWCS.JingmenGEMTwoProtocol.ERPService;
using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper;
using static System.Runtime.CompilerServices.RuntimeHelpers;
@@ -509,6 +510,18 @@
                            //将数据插入中间表
                            ERPService.senderpTask(time, startBit);
                        }
                        else if (ItemCode == "四钴打包下线")
                        {
                            var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel");
                            if(DGinfoList.Count > 0){
                                var DGinfo = DGinfoList.OrderBy(a => a.createTime).First();
                                model.trayCode = DGinfo.trayCode;
                                //model.endArea = endArea;
                            }
                            //将数据插入中间表
                            //ERPService.senderpTask(time, startBit);
                        }
                    }
                    else
                    {
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
@@ -289,6 +289,19 @@
    </Connectingbits>
    <!--
        成品入库的接驳位-四钴
        参数说明:
        locCode:货位编码
    -->
    <SGConnectingbits>
        <![CDATA[
        [
         {"locCode":"1","agvSite":[],"enable":1},
         {"locCode":"2","agvSite":[],"enable":1}
        ]]]>
    </SGConnectingbits>
    <!--
        第三方接口URL配置项
        参数说明:
        UrlNo:URL标识(唯一,开发指定,不允许修改)