1
pulg
2025-06-11 4e2242741688e1da1399166b1ada9874f472b819
HH.WCS.QingXiNongfu/wms/TaskHelper.cs
@@ -1,5 +1,4 @@
using HH.WCS.QingXigongchang.dispatch;
using HH.WCS.QingXigongchang.process;
using HH.WCS.QingXigongchang.process;
using HH.WCS.QingXigongchang.util;
using Newtonsoft.Json;
using SqlSugar;
@@ -7,10 +6,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.QingXigongchang.dispatch.NDC;
namespace HH.WCS.QingXigongchang.wms
{
@@ -91,6 +86,17 @@
        {
            var fromLoc = LocationHelper.GetLoc(from);
            var endLoc = LocationHelper.GetLoc(to);
            if (fromLoc.S_AREA_CODE == "YWLRGDD")
            {
                //查询任务表  要求是只能生成两个任务 起点库区为YWLRGDD  hh_plg  2025年6月9日
                List<string> TaskState = new List<string>() { "完成", "取消" };
                var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_START_LAREA == "YWLRGDD" && !TaskState.Contains(x.S_B_STATE));
                if (TaskListNum.Count() >= 2)
                {
                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"起点库区为YWLRGDD 则最多只能生成两个任务");
                    return false;
                }
            }
            if (!taskType.Contains("清溪纸箱"))
            {
                if (fromLoc == null || endLoc == null)
@@ -98,10 +104,13 @@
                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"起点或终点货位数据null");
                    return false;
                }
                if (fromLoc.S_LOCK_STATE.Trim() != "无" || endLoc.S_LOCK_STATE.Trim() != "无")
                if (fromLoc.S_AREA_CODE != "YWLWJJB")
                {
                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"起点 {fromLoc.S_LOCK_STATE}或终点{endLoc.S_LOCK_STATE}状态不为 无 ");
                    return false;
                    if (fromLoc.S_LOCK_STATE.Trim() != "无" || endLoc.S_LOCK_STATE.Trim() != "无")
                    {
                        LogHelper.Info($"CreateTransport-  CreateTask Error" + $"起点 {fromLoc.S_LOCK_STATE}或终点{endLoc.S_LOCK_STATE}状态不为 无 ");
                        return false;
                    }
                }
            }
            WMSTask wmsTask = new WMSTask()
@@ -212,6 +221,10 @@
                task.T_END_TIME = DateTime.Now;
                db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand();
            }
            if (task.S_END_LAREA == "YWLWJJB")
            {
                var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_NOTE, "原物料搬运-纸箱", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY);
            }
        }
        internal static void Fail(WMSTask task)
        {
@@ -259,10 +272,12 @@
                    LogHelper.Info(wmsTask.S_START_LOC + "LockLoc:锁结果" + res);
                    model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == wmsTask.S_END_LOC).First();
                    model.S_LOCK_STATE = "入库锁";
                    res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
                    LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:锁结果" + res);
                    if (wmsTask.S_START_LAREA != "YWLWJJB")
                    {
                        model.S_LOCK_STATE = "入库锁";
                        res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
                        LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:锁结果" + res);
                    }
                }
                db.Insertable(wmsTask).ExecuteCommand();
                db.Ado.CommitTran();