海波 张
2025-05-27 747cfc84c88ad9f0cdf1732196019e34e867a77e
process/TaskProcess.cs
@@ -114,7 +114,7 @@
                    LogHelper.Info($"没找到任务{no},交互请求失败", "安全交互");
                }
            }
            else if (state == 1105)
            else if (state == 1003)
            {
                var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE);
@@ -138,11 +138,14 @@
                //开关关门申请
                DeviceProcess.Door(mst, forkliftNo, state);
            }
            else if (state == 1002) {
            else if (state == 1004) {
                LogHelper.Info($"等待交互,任务号={mst.S_CODE}", "安全交互");
                var wcsCode = mst.S_CODE.Replace(@"_1", "_2");
                LogHelper.Info($"等待交互,查询校验任务号={wcsCode}", "安全交互");
                //等待rfid校验
                var rfidFlag = TaskHelper.GetRfid(mst.S_CODE);
                var rfidFlag = TaskHelper.GetRfid(wcsCode);
                LogHelper.Info($"等待交互,任务号={mst.S_CODE},RFID校验信息"+JsonConvert.SerializeObject(rfidFlag), "安全交互");
                if (rfidFlag!=null)
@@ -241,9 +244,10 @@
                        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", "改道安全交互");
                        LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为0", "改道安全交互");
                        NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                        NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                        return;
                    }
                }
@@ -293,8 +297,9 @@
                            {
                                flag = false;
                                LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1", "改道安全交互");
                                LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1,4为0", "改道安全交互");
                                NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                                NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                                break;
                            }
                        }
@@ -346,11 +351,11 @@
                            db.CommitTran();
                            
                            var site = LocationHelper.GetAgvSiteZc(loc.S_CODE);
                            LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互");
                            LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为1024", "改道安全交互");
                            NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                            NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024");
                        //} else if (workFlow.FLOWNAME.Contains("出库")) {
                        //    var endLoc = LocationHelper.GetLocOne(task.S_START_LOC);
                        //    endLoc.N_LOCK_STATE = 3;
@@ -440,6 +445,10 @@
                var ndcParme = new List<param>();
                ndcParme.Add(new param() { name = "From", value = start.ToString() });
                ndcParme.Add(new param() { name = "To", value = end.ToString() });
                ndcParme.Add(new param() { name = "FUNC", value = "0" });
                ndcParme.Add(new param() { name = "DATA", value = "0" });
                ndcParme.Add(new param() { name = "Ctype", value = "0" });
                var res =  NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, ndcParme);
@@ -1179,7 +1188,36 @@
            /// </summary>
            internal static Result addMesTask(ZcInWorkAreaParme model) { 
            var result = new Result();
            //保存到mes任务记录
            MesTask mesRes = new MesTask()
            {
                task_no = model.task_no,
                Task_type = model.Task_type,
                TurnCardNum = model.TurnCardNum,
                PROD_NO = model.PROD_NO,
                PROD_TECH = model.PROD_TECH,
                PROD_SPEC = model.PROD_SPEC,
                PROD_BOM = model.PROD_BOM,
                PROD_Feature = model.PROD_Feature,
                TOOLS_NO = model.TOOLS_NO,
                ST_AMOUNT = model.ST_AMOUNT,
                CURRENT_AMOUNT = model.CURRENT_AMOUNT,
                Location_From = model.Location_From,
                Location_To = model.Location_To,
                PRODUCE_TIME = model.PRODUCE_TIME,
                SHELF_LIFE_TIME = model.SHELF_LIFE_TIME,
                EXPIRED_TIME = model.EXPIRED_TIME,
                SHELF_REP = model.SHELF_REP,
                EXPIRED_REP = model.EXPIRED_REP,
                CHECK_CODE = model.CHECK_CODE,
                CHECK_INFO = model.CHECK_INFO,
                Priority = model.Priority,
                Data_status = model.Data_status,
                CreateDate = DateTime.Now,
                standardWeight = model.standardWeight,
                BUSI_TYPE = model.BUSI_TYPE,
                TOOLS_TPYE = model.TOOLS_TPYE,
            };
            try
            {
@@ -1223,6 +1261,9 @@
                        throw new Exception($"托盘{model.TOOLS_NO}已经创建作业,请勿重复申请");
                    }
                }
                //托盘明细数量
@@ -1511,6 +1552,10 @@
                        result.errMsg = "入库作业创建成功";
                        result.errCode = 0;
                        result.success = true;
                        mesRes.errCode = result.errCode;
                        mesRes.errMsg = result.errMsg;
                        //保存mes记录
                        CreatMesRes(mesRes);
                        return result;
                    }
                    else {
@@ -1544,8 +1589,22 @@
                    //查找起点
                    var strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                    List<Location> strrtList;
                    Location start = null;
                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
                    {
                        strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
                    }
                    else
                    {
                        strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                    }
                    if (workFlow.FLOWCODE == "9")
                    {
                        if (TOOLSTYPE == "85" || TOOLSTYPE == "95")
@@ -1598,6 +1657,13 @@
                    if (workFlow.FLOWCODE == "7" && start == null)
                    {
                        //空托出没找到起点,先缓存到空托表
                        //先查询有没有同终点未缓存的记录
                        var ktTask = TaskHelper.GetMesKtTask(end.S_CODE);
                        if (ktTask != null) {
                            throw new Exception($"ZCSendTask空托出缓存失败,终点{end.S_CODE}已有缓存");
                        }
                        MesKtTask req = new MesKtTask()
                        {
@@ -1748,6 +1814,10 @@
                        result.errMsg = "出库作业创建成功";
                        result.errCode = 0;
                        result.success = true;
                        mesRes.errCode = result.errCode;
                        mesRes.errMsg = result.errMsg;
                        //保存mes记录
                        CreatMesRes(mesRes);
                        return result;
                    }
                    else {
@@ -1762,37 +1832,6 @@
                }
                //参数校验完成保存到mes任务记录
                //MesTask req = new MesTask()
                //{
                //    task_no = model.task_no,
                //    Task_type = model.Task_type,
                //    TurnCardNum = model.TurnCardNum,
                //    PROD_NO = model.PROD_NO,
                //    PROD_TECH = model.PROD_TECH,
                //    PROD_SPEC = model.PROD_SPEC,
                //    PROD_BOM = model.PROD_BOM,
                //    PROD_Feature = model.PROD_Feature,
                //    TOOLS_NO = model.TOOLS_NO,
                //    ST_AMOUNT = model.ST_AMOUNT,
                //    CURRENT_AMOUNT = model.CURRENT_AMOUNT,
                //    Location_From = model.Location_From,
                //    Location_To = model.Location_To,
                //    PRODUCE_TIME = model.PRODUCE_TIME,
                //    SHELF_LIFE_TIME = model.SHELF_LIFE_TIME,
                //    EXPIRED_TIME = model.EXPIRED_TIME,
                //    SHELF_REP = model.SHELF_REP,
                //    EXPIRED_REP = model.EXPIRED_REP,
                //    CHECK_CODE = model.CHECK_CODE,
                //    CHECK_INFO = model.CHECK_INFO,
                //    Priority = model.Priority,
                //    Data_status = model.Data_status,
                //    CreateDate = DateTime.Now,
                //    standardWeight = model.standardWeight,
                //    BUSI_TYPE = model.BUSI_TYPE,
                //    TOOLS_TPYE = model.TOOLS_TPYE,
                //};
            }
            catch (Exception ex)
@@ -1801,6 +1840,10 @@
                result.errMsg = "ZCSendTask任务下发异常"+ex.Message;
                result.errCode = 1;
                result.success = false;
                mesRes.errCode = result.errCode;
                mesRes.errMsg = result.errMsg;
                //保存mes记录
                CreatMesRes(mesRes);
                return result;
            }
        }
@@ -1827,7 +1870,12 @@
        internal static bool CreatMesRes(MesTask model)
        {
            var newDb = new SqlHelper<object>().GetInstance();
            return newDb.Insertable(model).ExecuteCommand()>0;
        }