lss
2025-06-17 d0b3abf74ac5f94f5373922172ed79fbfc24e6be
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -173,7 +173,18 @@
                            var CntrRel = LocationHelper.GetLocCntrRel(startloc.S_CODE).FirstOrDefault();
                            if (CntrRel != null)
                            {
                                CntrCode = CntrRel.S_CNTR_CODE;
                                if (CntrRel.S_CNTR_CODE!= partData.rfid)
                                {
                                    result.code = "1";
                                    result.msg = $"根据起点:{Start}获取托盘:{CntrRel.S_CNTR_CODE}与下发托盘:{partData.rfid}不一致,请检查托盘码是否正确";
                                    AddErrorInfo("托盘码校检失败", result.msg, Source);
                                    return result;
                                }
                                else
                                {
                                    CntrCode = CntrRel.S_CNTR_CODE;
                                }
                            }
                            //else
                            //{
@@ -2065,11 +2076,11 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal static Result CreatelevatorTask(Elevator model)
        internal static Result CreatelevatorTask(ElevatorModel model)
        {
            Result result = new Result() { code = "200", msg = "点对点任务创建成功" };
            string Source = "MES";
            if (model == null)
            Result result = new Result() { code = "200", msg = "电梯搬运任务创建成功" };
            string Source = "WMS";
            if (model.Data == null)
            {
                result.code = "1";
                result.msg = "参数为null";
@@ -2092,11 +2103,10 @@
                    if (startloc.N_LOCK_STATE != 0)
                    {
                        result.code = "1";
                        result.msg = $"创建任务失败,起点{startloc.S_CODE}有锁";
                        result.msg = $"创建任务失败,起点{startloc.S_CODE}有锁,电梯有其他任务,请等待电梯任务完成";
                        AddErrorInfo("货位有锁", result.msg, Source);
                        return result;
                    }
                    var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == startloc.S_CODE).First();
                    if (cntr == null)
                    {
@@ -2125,26 +2135,7 @@
                    //根据任务数量判断送往哪个电梯 (具体电梯流程根据现场电梯数量)
                    var elevatorLoc = LocationHelper.GetElevatorLoc();
                    //创建wcs分段任务
                    var wcsTask = new WCSTask
                    {
                        S_CODE = WCSHelper.GenerateTaskNo(),
                        S_TYPE = "电梯1",
                        S_EQ_NO = model.Data.task_no,
                        S_START_LOC = startloc.S_CODE,
                        S_END_LOC = elevatorLoc.S_CODE,
                        N_CNTR_COUNT = 1,
                        S_START_WH = startloc.S_WH_CODE,
                        S_START_AREA = startloc.S_AREA_CODE,
                        S_END_WH = elevatorLoc.S_WH_CODE,
                        S_END_AREA = elevatorLoc.S_AREA_CODE,
                        N_SCHEDULE_TYPE = 1,
                        S_CNTR_CODE = cntr.S_CNTR_CODE,
                        N_END_LAYER = 1,
                        Z_TYPE = 6
                    };
                    var wcsTask1 = new WCSTask
                    {
                        S_CODE = WCSHelper.GenerateTaskNo(),
                        S_TYPE = "电梯2",
@@ -2162,13 +2153,34 @@
                        Z_TYPE = 6
                    };
                    LogHelper.Info("创建任务:" + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                    if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1))
                    if (WCSHelper.CreateTask(wcsTask) )
                    {
                        LogHelper.Info("创建任务成功");
                        var device = Settings.deviceInfos.Where(a => a.TN_Location == startloc.S_CODE).FirstOrDefault();
                        var loc = LocationHelper.GetLocByLoc(endloc.S_CODE);
                        if (device == null)
                        {
                            LogHelper.Info($"根据任务起点:{startloc.S_CODE},未找到对应电梯配置文件");
                        }
                        if (loc == null)
                        {
                            LogHelper.Info($"根据任务起点:{endloc.S_CODE},未找到对应货位");
                        }
                        if (device!=null&&loc!=null)
                        {
                            int value = 0;
                            if (loc.N_LAYER == 1) value = 1;
                            else if (loc.N_LAYER == 2) value = 3;
                            else if (loc.N_LAYER == 3) value = 5;
                            ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024);
                            ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
                        }
                        //LocationHelper.LockLoc(startloc.S_CODE, 2);
                        //LocationHelper.LockLoc(endloc.S_CODE, 1);
                        LogHelper.Info("创建任务成功");
                    }
                    else
                    {
@@ -2192,7 +2204,7 @@
            {
                result.code = "1";
                result.msg = $"物料主数据创建失败 错误信息:{ex}";
                result.msg = $"电梯搬运任务创建失败 错误信息:{ex}";
                LogHelper.Error("点对点任务 Error:" + ex.ToString(), ex);
                return result;
            }