海波 张
2025-05-20 90e4f87fcff67b8833d838fef6703c71de864bce
process/TaskProcess.cs
@@ -116,16 +116,30 @@
            }
            else if (state == 1105)
            {
                //判断接驳位和巷道是否可用 不可用需要改道
                changeBit(mst);
                var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE);
                if (workFlow == null)
                {
                    LogHelper.Info($"判断接驳位以及巷道是否可用,BUSI_TYpe:{mst.N_TYPE},没找到对应作业流程", "改道安全交互");
                    return;
                }
                var wcsTask = TaskHelper.GetTaskByWorkNo(mst.S_OP_CODE,"wcs");
                if (wcsTask == null)
                {
                    LogHelper.Info($"判断巷道可用失败,没找到对应{mst.S_OP_CODE}的wcs任务", "改道安全交互");
                    return;
                }
                //判断空托缓存、接驳位和巷道是否可用 不可用需要改道
                changeBit(mst,wcsTask,workFlow);
            }
            else if (state == 1023 || state == 1025)
            {
                //开关关门申请
                DeviceProcess.Door(mst, forkliftNo, state);
            }
            else if (state == 1013) {
                LogHelper.Info($"等待交互,任务号={mst.S_CODE},卸货交管成功,修改参数", "安全交互");
            else if (state == 1002) {
                LogHelper.Info($"等待交互,任务号={mst.S_CODE}", "安全交互");
                //等待rfid校验
                var rfidFlag = TaskHelper.GetRfid(mst.S_CODE);
@@ -187,33 +201,87 @@
        private static object locLocker = new object();
        internal static void changeBit(WMSTask task) {
        internal static void changeBit(WMSTask task, WMSTask wcsTask, WorkFlow workFlow) {
            var db = new SqlHelper<object>().GetInstance();
            try
            {
                var workFlow = TaskHelper.selectWorkFlowByType(task.N_TYPE.ToString(), task.TOOLSTYPE);
                if (workFlow == null)
                {
                    LogHelper.Info($"判断接驳位以及巷道是否可用,BUSI_TYpe:{task.N_TYPE},没找到对应作业流程", "改道安全交互");
                    throw new Exception($"判断接驳位以及巷道是否可用,BUSI_TYpe:{task.N_TYPE},没找到对应作业流程");
                }
                var wcsTask = db.Queryable<WMSTask>().Where(e => e.S_CODE == task.S_OP_CODE + "_2")?.First();
                if (wcsTask == null)
                {
                    LogHelper.Info($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务", "改道安全交互");
                    throw new Exception($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务");
                }
                //判断接驳位可用
                var flag = true;
                //空托入库判断空托出缓存表,有对应记录直接改道到缓存表终点
                if (workFlow.FLOWCODE=="3") {
                    var kt = db.Queryable<MesKtTask>().Where(e => e.TOOLS_TPYE==task.TOOLSTYPE && e.Status=="N").OrderBy(a=>a.CreateDate).First();
                    if (kt == null)
                    {
                        LogHelper.Info($"当前任务{task.S_CODE}没找到空托出缓存记录", "改道安全交互");
                    }
                    else {
                        LogHelper.Info($"当前任务{task.S_CODE}找到空托出缓存记录:"+JsonConvert.SerializeObject(kt), "改道安全交互");
                        //查找给定终点
                        var end = LocationHelper.GetLoc(kt.Location_To);
                        //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互");
                        //if (end == null || end.S_LOCK_STATE != "无")
                        //{
                        //    LogHelper.Info($"当前任务{task.S_CODE}改道终点失败,终点:{kt.Location_To},没找到或有锁", "改道安全交互");
                        //}
                        TaskHelper.Fail(wcsTask);
                        TaskProcess.OperateStatus(wcsTask, 7);
                        LocationHelper.LockLoc(end.S_CODE, "入库锁", 1);
                        db.BeginTran();
                        //改一段任务终点
                        task.S_END_LOC = end.S_CODE;
                        task.S_END_AREA = end.S_AREA_CODE;
                        db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC,it.S_END_AREA}).ExecuteCommand();
                        kt.Status = "Y";
                        db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand();
                        db.CommitTran();
                        var site = LocationHelper.GetAgvSiteZc(end.S_CODE);
                        LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互");
                        NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                        return;
                    }
                }
                if (workFlow.FLOWNAME.Contains("入库"))
                {
                    var loc1 = LocationHelper.GetLocOne(wcsTask.S_END_LOC);
                    //查找可用巷道
                    var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First();
                    if (rowdwa == null)
                    {
                        LogHelper.Info($"判断巷道可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道", "改道安全交互");
                    }
                    else
                    {
                        LogHelper.Info($"当前巷道不可用,需要改道", "改道安全交互");
                        var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC);
                        var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
                        var end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                        LogHelper.Info($"当前巷道不可用,需要改道,新终点信息" + JsonConvert.SerializeObject(end), "改道安全交互");
                        if (end == null)
                        {
                            LogHelper.Info($"当前巷道不可用,终点库区{workFlow.ENDAREA},没找到终点", "改道安全交互");
                            throw new Exception($"终点库区{workFlow.ENDAREA},没找到终点");
                        }
                        LocationHelper.LockLoc(end.S_CODE, "入库锁", 1);
                        db.BeginTran();
                        endLoc.N_LOCK_STATE = 0;
                        endLoc.S_LOCK_STATE = "无";
                        db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand();
                        wcsTask.S_END_LOC = end.S_CODE;
                        db.Updateable(wcsTask).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
                        db.CommitTran();
                    }
                    var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
                    var usableConnectionList = WcsTask.WcsPositionAvailable(task.S_CODE, connectionList);
                    if (usableConnectionList != null && usableConnectionList.code == "0")
@@ -223,6 +291,7 @@
                            var con = LocationHelper.GetLoc(item);
                            if (con.S_CODE.Contains(task.S_END_LOC))
                            {
                                flag = false;
                                LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1", "改道安全交互");
                                NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
@@ -243,7 +312,7 @@
                        foreach (var item in usableConnectionList.available)
                        {
                            var con = LocationHelper.GetLoc(item);
                            if (con.S_LOCK_STATE == "无" && con.N_CURRENT_NUM < 2)
                            if (con.N_CURRENT_NUM < 2)
                            {
                                connection = con.S_CODE;
                                LogHelper.Info($"改道寻找到可用接驳位{connection}", "改道安全交互");
@@ -257,8 +326,7 @@
                        var loc = LocationHelper.GetLocOne(connection);
                        if (workFlow.FLOWNAME.Contains("入库"))
                        {
                            LocationHelper.LockLoc(loc.S_CODE, "入库锁", 1);
                            var endLoc = LocationHelper.GetLocOne(task.S_END_LOC);
                            endLoc.N_LOCK_STATE = 0;
@@ -267,11 +335,14 @@
                            db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand();
                            //改一段任务终点
                            task.S_END_LOC = loc.S_CODE;
                            db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
                            task.S_END_AREA = loc.S_AREA_CODE;
                            db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand();
                            //改二段任务起点
                            wcsTask.S_START_LOC = loc.S_CODE;
                            db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC }).ExecuteCommand();
                            wcsTask.S_START_AREA = loc.S_AREA_CODE;
                            db.Updateable(wcsTask).UpdateColumns(it => new { it.S_START_LOC ,it.S_START_AREA}).ExecuteCommand();
                            db.CommitTran();
                            
                            var site = LocationHelper.GetAgvSiteZc(loc.S_CODE);
@@ -279,7 +350,7 @@
                            NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                           
                        }
                        //} else if (workFlow.FLOWNAME.Contains("出库")) {
                        //    var endLoc = LocationHelper.GetLocOne(task.S_START_LOC);
                        //    endLoc.N_LOCK_STATE = 3;
@@ -720,8 +791,8 @@
            try
            {
                var task = TaskHelper.GetTask(model.task_no + "_1");
                var wcsTask = TaskHelper.GetTask(model.task_no + "_2");
                var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv");
                var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs");
                if (task != null && wcsTask != null)
                {
                    if (task.S_B_STATE.Trim() == "未执行")
@@ -785,7 +856,7 @@
                else
                {
                    result.errCode = 1;
                    result.errMsg = "任务不存在";
                    result.errMsg = $"{model.task_no}任务不存在";
                    result.success = false;
                }
            }
@@ -1198,10 +1269,10 @@
                    //查找起点
                    var start = LocationHelper.GetLoc(model.Location_From);
                    LogHelper.Info($"ZCSendTask入库任务下发起点信息"+JsonConvert.SerializeObject(start), "Mes任务下发");
                    LogHelper.Info($"ZCSendTask入库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                    if (start == null || start.S_LOCK_STATE!="无") {
                    if (start == null || start.S_LOCK_STATE != "无") {
                        LogHelper.Info($"ZCSendTask入库任务下发失败,起点:{model.Location_From},没找到或有锁", "Mes任务下发");
                        throw new Exception($"起点:{model.Location_From},没找到或有锁");
                    }
@@ -1209,8 +1280,11 @@
                    //接驳位
                    var connection = "";
                    //接驳位库区名称
                    var connectionArea = "";
                    //如果需要下发wcs立库,则需要寻找可用接驳位
                    if (workFlow.SENDWCS=="Y") {
                    if (workFlow.SENDWCS == "Y") {
                        //测试默认取一个接驳位
                        //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION);
@@ -1234,13 +1308,16 @@
                        var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        if (usableConnectionList != null && usableConnectionList.code == "0")
                        {
                            foreach (var item in usableConnectionList.available)
                            //根据接驳位任务数量获取均衡接驳位集合优先任务数少的接驳位
                            var balanceConnectionList =  LocationHelper.GetBalanceConnectionList(usableConnectionList.available);
                            foreach (var item in balanceConnectionList)
                            {
                                var con = LocationHelper.GetLoc(item);
                                if (con.S_LOCK_STATE == "无" && con.N_CURRENT_NUM < 2)
                                if (item.loc.N_CURRENT_NUM<2)
                                {
                                    connection = con.S_CODE;
                                    connection = item.loc.S_CODE;
                                    connectionArea = item.loc.S_AREA_Name;
                                    LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                    break;
                                }
                            }
                        }
@@ -1250,7 +1327,7 @@
                            throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败");
                        }
                        if (connection=="")
                        if (connection == "")
                        {
                            LogHelper.Info($"ZCSendTask入库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败");
@@ -1271,20 +1348,20 @@
                    else if (workFlow.FLOWCODE == "3")
                    {
                        //空托入 优先入缓存区,没有入立库区
                        var ktHcq = Settings.EmptyPalletBufferArea;
                        //var ktHcq = Settings.EmptyPalletBufferArea;
                        cntrCount = 0;
                        var endList1 = LocationHelper.GetAllLocList1(ktHcq);
                        end = LocationHelper.FindEndcolByLoc(endList1, ktHcq);
                        LogHelper.Info($"ZCSendTask入库任务寻找空托缓存区终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                        if (end == null)
                        {
                        //var endList1 = LocationHelper.GetAllLocList1(ktHcq);
                        //end = LocationHelper.FindEndcolByLoc(endList1, ktHcq);
                        //LogHelper.Info($"ZCSendTask入库任务寻找空托缓存区终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                        //if (end == null)
                        //{
                            LogHelper.Info($"ZCSendTask入库任务没找到空托缓存区终点,寻找立库区空货位", "Mes任务下发");
                            end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                        }
                        else
                        {
                            connection = "";
                        }
                            end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                        //}
                        //else
                        //{
                        //    connection = "";
                        //}
                    }
                    else if (workFlow.FLOWCODE == "2")
                    {
@@ -1310,15 +1387,15 @@
                    }
                        LogHelper.Info($"ZCSendTask任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    LogHelper.Info($"ZCSendTask入库任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    if (end == null) {
                        LogHelper.Info($"ZCSendTask任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Mes任务下发");
                        LogHelper.Info($"ZCSendTask入库任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Mes任务下发");
                        throw new Exception($"终点库区{workFlow.ENDAREA},没找到终点");
                    }
                    //添加托盘物料关联表
                    if (cntrCount!=0)
                    if (cntrCount != 0)
                    {
                        CntrItemRel rel = new CntrItemRel();
                        rel.S_ITEM_CODE = model.PROD_NO;
@@ -1360,7 +1437,7 @@
                        rel.itemFeature = model.PROD_TECH;
                        ContainerHelper.CreateCntrItem(rel);
                    }
                    //添加托盘
@@ -1370,13 +1447,13 @@
                    cntr1.N_DETAIL_COUNT = cntrCount;
                    cntr1.S_TYPE = "";
                    LogHelper.Info($"添加容器信息"+JsonConvert.SerializeObject(cntr1), "Mes任务下发");
                    LogHelper.Info($"添加容器信息" + JsonConvert.SerializeObject(cntr1), "Mes任务下发");
                    if (ContainerHelper.CreateCntr(cntr1))
                    {
                        LogHelper.Info($"添加容器信息成功" , "Mes任务下发");
                        LogHelper.Info($"添加容器信息成功", "Mes任务下发");
                    }
                    else {
                        LogHelper.Info($"添加容器信息失败" , "Mes任务下发");
                        LogHelper.Info($"添加容器信息失败", "Mes任务下发");
                    }
@@ -1411,17 +1488,27 @@
                        //优先级
                        N_PRIORITY = model.Priority,
                        //工装类型
                        TOOLSTYPE = TOOLSTYPE
                        TOOLSTYPE = TOOLSTYPE,
                        //起点库区名称
                        S_START_AREA_NAME = start.S_AREA_Name,
                        //起点库区名称
                        S_END_AREA_NAME = end.S_AREA_Name,
                        //起点库区名称
                        CONNECTION_AREA = connectionArea,
                    };
                    //创建作业
                    if (WMSHelper.CreateWmsWork(operation)) {
                    if (WMSHelper.CreateWmsWork(operation))
                    {
                        LogHelper.Info($"ZCSendTask入库作业创建成功{operation.S_CODE}", "Mes任务下发");
                        result.errMsg = "入库作业创建成功";
                        result.errCode = 0;
                        result.success = true;
                        return result;
                    }
                    else {
                        LogHelper.Info($"ZCSendTask入库任务下发创建作业失败", "Mes任务下发");
                        throw new Exception($"ZCSendTask入库任务下发创建作业失败");
                    }
@@ -1432,6 +1519,10 @@
                    //接驳位
                    var connection = "";
                    //接驳位库区
                    var connectionArea = "";
                    //查找给定终点
                    var end = LocationHelper.GetLoc(model.Location_To);
@@ -1458,23 +1549,86 @@
                        else {
                            //根据制品编号寻找立库区对应物料托盘
                            start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY);
                            if (start==null)
                            {
                                strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                                var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA);
                                LogHelper.Info($"ZCSendTask满托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                                if (itemFlag)
                                {
                                    result.errMsg = "满托出库作业有库存但设备报警";
                                    result.errCode = 2001;
                                    result.success = true;
                                    return result;
                                }
                            }
                        }
                    }
                    else if (workFlow.FLOWCODE == "7") {
                        //寻找立库区空托
                        start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                        if (start == null)
                        {
                            strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                            var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
                            LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发");
                            if (itemFlag)
                            {
                                result.errMsg = "空托出库作业有库存但设备报警";
                                result.errCode = 2001;
                                result.success = true;
                                return result;
                            }
                        }
                    }
                    LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                    if (start == null)
                    if (workFlow.FLOWCODE == "7" && start == null)
                    {
                        LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发");
                        throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                        //空托出没找到起点,先缓存到空托表
                        MesKtTask req = new MesKtTask()
                        {
                            Location_From_Area = workFlow.STARTAREA,
                            Location_To = end.S_CODE,
                            Priority = model.Priority,
                            CreateDate = DateTime.Now,
                            BUSI_TYPE = model.BUSI_TYPE,
                            TOOLS_TPYE = model.TOOLS_TPYE,
                            Status = "N"
                        };
                        if (TaskHelper.CreateMesKtTask(req))
                        {
                            LogHelper.Info($"ZCSendTask空托出创建成功", "Mes任务下发");
                            result.errMsg = "空托出库缓存成功";
                            result.errCode = 0;
                            result.success = true;
                            return result;
                        }
                        else
                        {
                            LogHelper.Info($"ZCSendTask空托出缓存失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask空托出缓存失败");
                        }
                    }
                    else {
                        if (start == null)
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发");
                            throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                        }
                    }
                    //获取托盘码
                    var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE);
@@ -1501,29 +1655,43 @@
                        //正式代码,调用接口寻找可用接驳位
                        var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
                        var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        if (usableConnectionList != null && usableConnectionList.code == "0")
                        //var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
                        //if (usableConnectionList != null && usableConnectionList.code == "0")
                        //{
                        //    foreach (var item in usableConnectionList.available)
                        //    {
                        //        var con = LocationHelper.GetLoc(item);
                        //        if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
                        //        {
                        //            connection = con.S_CODE;
                        //            connectionArea = con.S_AREA_Name;
                        //            LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                        //        }
                        //    }
                        //}
                        //else
                        //{
                        //    LogHelper.Info($"ZCSendTask出库任务下发寻找接驳位失败", "Mes任务下发");
                        //    throw new Exception($"ZCSendTask出库任务下发寻找接驳位失败");
                        //}
                        //根据接驳位任务数量获取均衡接驳位集合优先任务数少的接驳位
                        var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
                        foreach (var item in balanceConnectionList)
                        {
                            foreach (var item in usableConnectionList.available)
                            if (item.loc.N_CURRENT_NUM < 2)
                            {
                                var con = LocationHelper.GetLoc(item);
                                if (con.S_LOCK_STATE == "无" && con.N_CURRENT_NUM < 2)
                                {
                                    connection = con.S_CODE;
                                    LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                }
                                connection = item.loc.S_CODE;
                                connectionArea = item.loc.S_AREA_Name;
                                LogHelper.Info($"ZCSendTask出库任务下发寻找到可用接驳位{connection}", "Mes任务下发");
                                break;
                            }
                        }
                        else
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask出库任务下发寻找接驳位失败");
                        }
                        if (connection == "")
                        {
                            LogHelper.Info($"ZCSendTask入库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败");
                            LogHelper.Info($"ZCSendTask出库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask出库任务下发寻找接驳位失败");
                        }
                    }
@@ -1557,7 +1725,13 @@
                        //优先级
                        N_PRIORITY = model.Priority,
                        //工装类型
                        TOOLSTYPE = TOOLSTYPE
                        TOOLSTYPE = TOOLSTYPE,
                        //起点库区名称
                        S_START_AREA_NAME = start.S_AREA_Name,
                        //起点库区名称
                        S_END_AREA_NAME = end.S_AREA_Name,
                        //起点库区名称
                        CONNECTION_AREA = connectionArea
                    };
                    //创建作业
@@ -1568,6 +1742,10 @@
                        result.errCode = 0;
                        result.success = true;
                        return result;
                    }
                    else {
                        LogHelper.Info($"ZCSendTask出库任务下发创建作业失败", "Mes任务下发");
                        throw new Exception($"ZCSendTask出库任务下发创建作业失败");
                    }
                }
@@ -1618,9 +1796,6 @@
                result.success = false;
                return result;
            }
            return result;
        }