zhaowc
2024-06-25 8feab79c926831f1cbfec16d4a9deca89548e001
任务下发修改
1个文件已修改
42 ■■■■ 已修改文件
Wms/WMS.BLL/BllTransServer/RcsServer.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -35,7 +35,7 @@
            {
                var house = "W01";//叫桶位置,后续根据位置关联或定义,来判断叫桶位置所属车间
                var url = "";//回传MES的接口地址
                var noticeno = "";//出入库单据明细ID
                var noticeno = "0";//出入库单据明细ID
                var sql = "select PalletNo,LocatNo from DataStockDetail where Status = '0'";
                switch (pallnetmsg.Type)
                {
@@ -82,6 +82,18 @@
                                    CreateLotTask(ztask);
                                    return;
                                }
                                //下发小车任务
                                var task2 = new TaskDetial
                                {
                                    Startport = item.LocatNo,
                                    Endport = pallnetmsg.Location,
                                    Pallno = item.PalletNo,
                                    Type = pallnetmsg.Type,
                                    Crtype = "1",
                                    Noticedetailno = int.Parse(noticeno),
                                };
                                CreateLotTask(task2);
                                return;
                            }
                            else
                            {
@@ -152,8 +164,8 @@
                //下发小车任务
                var task = new TaskDetial
                {
                    Startport = pallnetmsg.Location,
                    Endport = pallet.LocatNo,
                    Startport = pallet.LocatNo,
                    Endport = pallnetmsg.Location,
                    Pallno = pallet.PackagNo,
                    Type = pallnetmsg.Type,
                    Crtype = "1",
@@ -358,13 +370,22 @@
                var na = taskDetial.Crtype == "0"?"入库":"出库";
                var sql = "";
                var sql2 = "";
                var ordertype = "3";
                if (taskDetial.Type == "2" && taskDetial.Crtype =="1")
                {
                    ordertype = "1";
                }
                else if(taskDetial.Type =="2" && taskDetial.Crtype == "0")
                {
                    ordertype = "0";
                }
                //开启事务
                Db.BeginTran();
                //判断任务是否为新任务
                if (string.IsNullOrWhiteSpace(taskDetial.Taskno))
                {
                    taskDetial.Taskno = new Common().GetMaxNo("T");
                }
                    var logTaskEntry = new LogTask    
                    {
                        TaskNo = taskDetial.Taskno,
@@ -380,12 +401,11 @@
                        IsCancel = 1,//是否可取消
                        IsFinish = 1,//是否可完成
                        Type = taskDetial.Crtype,//任务类型 0 入库任务 1 出库任务  2 移库任务
                    OrderType = ordertype,//单据类型 0 入库 1 出库 3其他
                        Status = "0",//任务状态0:等待执行1正在执行2执行完成
                        NoticeDetailNo = int.Parse(taskDetial.Noticedetailno.ToString()),
                        Msg = $"{taskDetial.Endport}的{na}任务", //关键信息
                    };
                    Db.Insertable(logTaskEntry).ExecuteCommand();
                }
                var Agv = new AgvTask
                {
                    taskCode = taskDetial.Taskno,
@@ -398,13 +418,14 @@
                genAgvSchedulingTaskRep chrep =genAgvSchedulingTask(Agv, "url");
                if (chrep.code != "0")
                {
                    sql = $"UPDATE LogTask SET IsSuccess = '0' WHERE TaskNo = {taskDetial.Taskno}";
                    Db.Ado.ExecuteCommand(sql);
                    logTaskEntry.IsSuccess = 0;
                    Db.Insertable(logTaskEntry).ExecuteCommand();
                    Db.CommitTran();
                    throw new Exception("RCS任务下发错误,RCS返回消息:"+chrep.message);
                }
                sql = $"UPDATE LogTask SET IsSuccess = 1,BackDate = {DateTime.Now},Status = '1' WHERE TaskNo = {taskDetial.Taskno}";
                Db.Ado.ExecuteCommand(sql);
                logTaskEntry.IsSuccess = 1;
                logTaskEntry.BackDate = DateTime.Now;
                logTaskEntry.Status = "1";
                if (taskDetial.Crtype == "0")
                {
                    sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'";
@@ -415,6 +436,7 @@
                {
                    sql = $"UPDATE SysStorageLocat SET Status = '3' where LocatNo = '{taskDetial.Startport}' ";
                }
                Db.Insertable(logTaskEntry).ExecuteCommand();
                Db.Ado.ExecuteCommand(sql);
                //提交事务
                Db.CommitTran();