czw
2025-06-23 e552f3366723d8a2392ca59e95e5d9589ad7a858
HH.WCS.QingXiNongfu/process/DeviceProcess.cs
@@ -1,28 +1,14 @@
using HH.WCS.QingXigongchang.core;
using HH.WCS.QingXigongchang.device;
using HH.WCS.QingXigongchang.device;
using HH.WCS.QingXigongchang.dispatch;
using HH.WCS.QingXigongchang.util;
using HH.WCS.QingXigongchang.wms;
using Microsoft.SqlServer.Server;
using Newtonsoft.Json;
using NLog.Time;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Web.Http.Results;
using System.Web.Security;
using System.Web.UI.WebControls;
using static HH.WCS.QingXigongchang.dispatch.NDC;
using static HH.WCS.QingXigongchang.util.Settings;
namespace HH.WCS.QingXigongchang.process
@@ -178,6 +164,7 @@
                    {
                        if (od.SQL_Total >= v[0])
                        {
                            LogHelper.Info(plc.deviceName + $"已累计信号量{od.SQL_Total} 待领料数{od.OutNum}--开始转换(信号量>{(od.SQL_Total - v[0])} 领料数>{od.OutNum + v[1]}");
                            od.SQL_Total -= v[0];
                            od.OutNum += v[1];
                            WCSHelper.Do(db =>
@@ -274,6 +261,7 @@
                                S_CNTR_CODE=Settings.GetTimeStamp(),
                                S_ITEM_CODE=od.SQL_ItemCode,
                                S_ITEM_NAME=od.SQL_ItemName,
                                S_CJ_NAME = od.S_CJ_NAME,
                                N_BQ_TRAY_TYPE=v1
                            }
                        };
@@ -284,6 +272,7 @@
                        if (!string.IsNullOrEmpty(od.S_ROW))
                            list.Add(od.S_ROW);
                        ma = string.Join(",", list);
                        List<LocCntrRel> lcrl = new List<LocCntrRel>
                        {
                            new LocCntrRel
@@ -298,6 +287,10 @@
                        {
                            db.Insertable(lirl).ExecuteCommand();
                            db.Insertable(lcrl).ExecuteCommand();
                            db.Insertable(new Container
                            {
                                S_CNTR_CODE = lirl.FirstOrDefault().S_CNTR_CODE,
                            }).ExecuteCommand();
                            db.Updateable(_cl).UpdateColumns(x => new { x.N_CURRENT_NUM }).ExecuteCommand();
                        });
                        goto ballll;
@@ -320,7 +313,7 @@
                    si = "0";
                }
                else if (data.Contains("11") && (ods.Find(x => x.SQL_PLineNo.Contains("纸箱")) != null||plc.deviceName.Contains("T1")))
                else if (data.Contains("11"))// && (ods.Find(x => x.SQL_PLineNo.Contains("纸箱")) != null || plc.deviceName.Contains("T1"))
                {
                    //if (!ods.Any())
                    //    return;
@@ -329,16 +322,21 @@
                    {
                        LogHelper.Info($" time:{_clrel0?.T_CREATE} = s_type:{_clrel0.S_TYPE}");
                        if (_clrel.Any())
                            if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 10 || !string.IsNullOrEmpty(_clrel0.S_TYPE))
                            //if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 10 || !string.IsNullOrEmpty(_clrel0.S_TYPE))
                            //    goto ballll;
                            //plg 2025年6月23日  去除10秒时间限制
                            if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 3 || !string.IsNullOrEmpty(_clrel0.S_TYPE))
                                goto ballll;
                        LocationHelper.DoAction(db =>
                        {
                            db.Deleteable(_clrel).ExecuteCommand();
                            _cl.N_CURRENT_NUM = 0;
                            return db.Updateable(_cl).UpdateColumns(x => new { x.N_CURRENT_NUM }).ExecuteCommand() > 0;
                        });
                            {
                                db.Deleteable(_clrel).ExecuteCommand();
                                _cl.N_CURRENT_NUM = 0;
                                return db.Updateable(_cl).UpdateColumns(x => new { x.N_CURRENT_NUM }).ExecuteCommand() > 0;
                            });
                    }
                    if (!plc.deviceName.Contains("T1"))
                        goto ballll;
                    else if (!plc.deviceName.Contains("水线标签"))
                    {
                        LogHelper.Info(_cl.S_LOC_CODE + $"货位 找起点");
@@ -1808,9 +1806,18 @@
            }
            if (add)
            {
                LogHelper.Info($@"{plc.deviceName}新到位信号。 执行YWL工单信号量增加1");
                var ods = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_State == "执行中" && x.WorkType == 6 && x.SQL_LinkLineNO == plc.deviceName);//.FirstOrDefault();
                if (ods.Any())
                {
                    LogHelper.Info($@"{plc.deviceName}新到位信号,找到工单{JsonConvert.SerializeObject(ods.Select(x => new
                    {
                        x.SQL_PLineNo,
                        x.SQL_LinkLineNO,
                        x.SQL_Total,
                        x.OutNum
                    }))}");
                    foreach (var od in ods)
                    {
                        od.SQL_Total += 1;