杨张扬
2025-06-18 b32cf3fbbd4f981d9a218dc3601962395c2a0d70
双钱-取消任务修改库存信息,点对点也要对应库存
4个文件已修改
82 ■■■■■ 已修改文件
api/ApiHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
core/WCSCore.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
process/TaskProcess.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/LocationHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/ApiHelper.cs
@@ -1924,7 +1924,7 @@
                        var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == startLocCnt.S_CNTR_CODE);
                        Task task27 = Task.Run(() =>
                        {
                            if (endLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null) //插入WMS库存明细
                            if (endLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null) //插入WMS库存明细
                            {
                                var target = new TN_InventoryM()
                                {
@@ -1942,7 +1942,7 @@
                        });
                        Task task26 = Task.Run(() =>
                        {
                            if (startLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null)
                            if (startLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null)
                            {
                                SpecHelper.DeleteInventoryM(cginfo.S_ID);
                            }
core/WCSCore.cs
@@ -162,72 +162,52 @@
                                case 7:
                                    Task task10 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库" || TN_Task.S_TYPE == "PDA满托下线入库")
                                        if (TN_Task.S_TYPE.Contains("满托下线入库") || TN_Task.S_TYPE.Contains("PDA满托下线入库") || TN_Task.S_END_AREA == Settings.Areas[1])
                                        {
                                            TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                        }
                                        else
                                        {
                                            WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//未取货完成
                                            {
                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                            }
                                                WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            var db = new SqlHelper<object>().GetInstance();
                                            var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == TN_Task.S_CNTR_CODE);
                                            if (cginfo != null)
                                            {
                                                SpecHelper.DeleteInventoryM(cginfo.S_ID);
                                                    db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
                                                }
                                                else
                                                {
                                                    db.Deleteable<TN_InventoryM>().Where(it => it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
                                            }
                                        }
                                            else
                                            {
                                                WCSHelper.End(TN_Task);//任务状态改成结束
                                                LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());
                                            }
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                            LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//解锁起点终点
                                        }
                                        
                                    });
                                    break;
                                case 8:
                                    
                                    Task task11 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库" || TN_Task.S_TYPE == "PDA满托下线入库")
                                        {
                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                            if (res != null && (res.err_code ==50002 || res.err_code == 0))
                                            {
                                                TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                            }
                                            else
                                            {
                                                LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                            }
                                        }
                                        else
                                        {
                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                            if (res != null && (res.err_code == 50002 || res.err_code == 0))
                                            {
                                                WCSHelper.Fail(TN_Task);//任务状态改成错误
                                                LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                                if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                                {
                                                    LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                                }
                                                var db = new SqlHelper<object>().GetInstance();
                                                var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == TN_Task.S_CNTR_CODE);
                                                if (cginfo != null)
                                                {
                                                    SpecHelper.DeleteInventoryM(cginfo.S_ID);
                                                }
                                        LogHelper.Info($"异常和取消操作 请求结果成功{res}");
                                            }
                                            else
                                            {
                                                LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                            }
                                           
                                        }
                                    });
                                    break;
                            }
                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
process/TaskProcess.cs
@@ -12,6 +12,7 @@
using static HH.WCS.Mobox3.DoubleCoin.api.ApiModel;
using Org.BouncyCastle.Crypto;
using HH.WCS.Mobox3.DoubleCoin.device;
using HH.WCS.Mobox3.DoubleCoin.models;
namespace HH.WCS.Mobox3.DoubleCoin.process {
    internal class TaskProcess {
@@ -51,18 +52,22 @@
                WCSHelper.End(mst);//任务状态改成结束
            }
            else {
                //起点解锁
                LocationHelper.ErrorLocCntReset(new ErrorLocCntResetInfo() { locID = mst.S_START_LOC,reqCode =1});
                WCSHelper.Fail(mst);//任务状态改成错误
                var db = new SqlHelper<object>().GetInstance();
                var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == mst.S_CNTR_CODE);
                if (cginfo!= null)
                {
                    SpecHelper.DeleteInventoryM(cginfo.S_ID);
                    db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == mst.S_CNTR_CODE).ExecuteCommand();
                }
                else
                {
                    db.Deleteable<TN_InventoryM>().Where(it => it.RFID == mst.S_CNTR_CODE).ExecuteCommand();
            }
            LocationHelper.UnLockLoc(mst.S_END_LOC);
                LocationHelper.ErrorLocCntReset(new ErrorLocCntResetInfo() { locID = mst.S_START_LOC, reqCode = 1 });
            }
            LocationHelper.UnLockLoc(mst.S_START_LOC);//解锁起点
            LocationHelper.UnLockLoc(mst.S_END_LOC);//解锁终点
        }
        
wms/LocationHelper.cs
@@ -307,6 +307,11 @@
                    bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item });
                }
                if (bindLocCntList.Count == 0)
                {
                    LogHelper.Info($"已绑定,没有要绑定的新容器,{logs}");
                    return $"已绑定,没有要绑定的新容器,{logs}";
                }
                var log = JsonConvert.SerializeObject(bindLocCntList);