chengsc
2024-11-04 50f6cb0f96f04f505b9493f7621d8e49ad5add9d
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -20,6 +20,7 @@
namespace WCS.Application;
public static class PLCService
{
    private static readonly object OLock = new object();
    private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
@@ -1705,7 +1706,7 @@
                                    }
                                }
                                // 根据箱内品种号获取码躲绑定工位及对应的分道号
                                var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo);
                                var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo && w.Status == "1");
                                if (checkTaskInfo == null)
                                {
                                    // 绑定信息为null写入剔除通道号
@@ -1868,6 +1869,8 @@
                case "40":
                    // 请求组托,申请入库
                     {
                        lock (OLock)
                        {
                        // 根据工位号,获取托盘号
                        var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false);
                        // 根据工位号获取 托盘线该工位号的配置信息
@@ -1967,7 +1970,7 @@
                        else 
                        {
                            // 根据托盘号,将组托信息插入boxinfolog表 并删除boxinfo表数据
                            var boxInfoList = await _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.PalletNo == palletNo).ToListAsync();
                                var boxInfoList = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.PalletNo == palletNo).ToList();
                            if (boxInfoList.Count <= 0)
                            {
                                Log.Error(string.Format("申请巷道失败,码垛工位{0},箱码信息不存在", modDevice.StationNum));
@@ -2049,6 +2052,7 @@
                            }
                        }
                    }
                    }
                    break;
                default:break;
            }
@@ -2114,7 +2118,7 @@
    }
    /// <summary>
    /// 自动结批
    /// 自动结批 并 解绑分道
    /// </summary>
    /// <param name="lotNo">批次号</param>
    /// <param name="plcConn">Plc连接</param>
@@ -2135,7 +2139,10 @@
            foreach (var item in checkTaskList)
            {
                #region#给PLC写入结批批次号
                // 写入结批信号
                var ret = plcConn.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PosLot, "1");
                // 分道解绑,抓箱品种写入0
                var ret1 = plcConn.SetPlcDBValue(item.PosTypeLot, item.DbNumber, item.PlcPos, "0");
                if (ret.IsSucceed)
                {
                    //写入流程字成功后更新分拣任务    liudl 最后一托盘申请完入库才可清空
@@ -2146,7 +2153,7 @@
                    //item.SkuName = "";
                    //item.BoxType = "";
                    //item.Qty = 0;
                    //item.PZNo = "";
                    item.PZNo = "";
                    item.Status = status;      // 绑定分道 0:解绑  1:绑定 
                    //更新分拣任务