1
Zhang-Hong-Lin
2025-04-16 5f0b4758bed03060fd70b282d7fe56fa02d2f6d0
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs
@@ -78,38 +78,39 @@
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine("1");
            //return Task.CompletedTask;
            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
            if (flag && value != null)
            {
                OtherDevice device = (OtherDevice)value;
                try
                {
                    #region ç”Ÿæˆå‰”除货位入库任务
                    //判断整形机信号
                    if (!OHTJob.oHTReadData.R_ZXJ_TC_isready && !OHTJob.oHTReadData.R_TCMode_TC)
                    {
                        throw new Exception($"整形机投入使用信号为false");
                    }
                    Dt_Task task = new Dt_Task();
                    var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "剔除架");
                    task.SourceAddress = station.Row + "-" + station.Column + "-1";
                    var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                    if (oldhtytask == null)
                    {
                        task.TargetAddress = _locationInfoService.GetInLocation(6).LocationCode;
                        task.Grade = 1;
                        task.Remark = (int)MateTypeEnum.ZiChan;
                        task.NextAddress = "text";
                        task.Roadway = "TC01";
                        task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                        task.TaskState = (int)TaskInStatusEnum.InNew;
                        task.PalletCode = "text";
                        task.CurrentAddress = "text";
                        task.WMSId = 2;
                        _dt_taskRepositiry.AddData(task);
                    }
                    //if (!OHTJob.oHTReadData.R_ZXJ_TC_isready && !OHTJob.oHTReadData.R_TCMode_TC)
                    //{
                    //    throw new Exception($"整形机投入使用信号为false");
                    //}
                    //Dt_Task task = new Dt_Task();
                    //var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "剔除架");
                    //task.SourceAddress = station.Row + "-" + station.Column + "-1";
                    //var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                    //if (oldhtytask == null)
                    //{
                    //    task.TargetAddress = _locationInfoService.GetInLocation(6).LocationCode;
                    //    task.Grade = 1;
                    //    task.Remark = (int)MateTypeEnum.ZiChan;
                    //    task.NextAddress = "text";
                    //    task.Roadway = "TC01";
                    //    task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                    //    task.TaskState = (int)TaskInStatusEnum.InNew;
                    //    task.PalletCode = "text";
                    //    task.CurrentAddress = "text";
                    //    task.WMSId = 2;
                    //    _dt_taskRepositiry.AddData(task);
                    //}
                    #endregion
                }
@@ -121,50 +122,50 @@
                try
                {
                    #region ç”Ÿæˆå‰”除货位出库任务
                    if (!OHTJob.oHTReadData.R_TCMode && !OHTJob.oHTReadData.R_TC_isready)
                    {
                        throw new Exception($"规整机剔除架子可放板或剔除上料模式信号为false");
                    }
                    //查询当前任务池中是否存在出库任务,出库任务只能存在一条
                    var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound);
                    if (oldtask != null)
                    {
                        throw new Exception($"当前任务池中已存在一条出库任务");
                    }
                    //查询当前需要出库的批次号,以及出库物料类型
                    var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
                    //查询库存物料库存信息
                    var stocks = _StockInfoRepository.QueryData(v => v.Remark == 3 && v.BatchNo == batch.OutBatch && v.StockStatus == 0)
                            .OrderBy(v => v.CreateDate).ToList();
                    if (stocks.Count <= 0)
                    {
                        throw new Exception($"当前库存中没有【{batch.materType}】(0自产 1外购)且批次为【{batch.OutBatch}】的物料");
                    }
                    //查询货位
                    var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode);
                    locaOne.LocationStatus = (int)LocationStatusEnum.Lock;
                    stocks[0].StockStatus = 1;
                    //查询终点站台信息
                    var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                    //开始创建任务
                    Dt_Task outtask = new Dt_Task();
                    outtask.Roadway = "TC01";
                    outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                    outtask.TaskState = (int)TaskOutStatusEnum.OutNew;
                    outtask.SourceAddress = stocks[0].LocationCode;
                    outtask.TargetAddress = station.Row + "-" + station.Column + "-1";
                    outtask.NextAddress = "text";
                    outtask.Grade = 1;
                    outtask.WMSId = 2;
                    outtask.Remark = 3;
                    outtask.PalletCode = "text";
                    outtask.CurrentAddress = "text";
                    //if (!OHTJob.oHTReadData.R_TCMode && !OHTJob.oHTReadData.R_TC_isready)
                    //{
                    //    throw new Exception($"规整机剔除架子可放板或剔除上料模式信号为false");
                    //}
                    ////查询当前任务池中是否存在出库任务,出库任务只能存在一条
                    //var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound);
                    //if (oldtask != null)
                    //{
                    //    throw new Exception($"当前任务池中已存在一条出库任务");
                    //}
                    ////查询当前需要出库的批次号,以及出库物料类型
                    //var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
                    ////查询库存物料库存信息
                    //var stocks = _StockInfoRepository.QueryData(v => v.Remark == 3 && v.BatchNo == batch.OutBatch && v.StockStatus == 0)
                    //        .OrderBy(v => v.CreateDate).ToList();
                    //if (stocks.Count <= 0)
                    //{
                    //    throw new Exception($"当前库存中没有【{batch.materType}】(0自产 1外购)且批次为【{batch.OutBatch}】的物料");
                    //}
                    ////查询货位
                    //var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode);
                    //locaOne.LocationStatus = (int)LocationStatusEnum.Lock;
                    //stocks[0].StockStatus = 1;
                    ////查询终点站台信息
                    //var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                    ////开始创建任务
                    //Dt_Task outtask = new Dt_Task();
                    //outtask.Roadway = "TC01";
                    //outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                    //outtask.TaskState = (int)TaskOutStatusEnum.OutNew;
                    //outtask.SourceAddress = stocks[0].LocationCode;
                    //outtask.TargetAddress = station.Row + "-" + station.Column + "-1";
                    //outtask.NextAddress = "text";
                    //outtask.Grade = 1;
                    //outtask.WMSId = 2;
                    //outtask.Remark = 3;
                    //outtask.PalletCode = "text";
                    //outtask.CurrentAddress = "text";
                    _unitOfWorkManage.BeginTran();
                    _LocationInfoRepository.UpdateData(locaOne);
                    _dt_taskRepositiry.AddData(outtask);
                    _StockInfoRepository.UpdateData(stocks[0]);
                    _unitOfWorkManage.CommitTran();
                    //_unitOfWorkManage.BeginTran();
                    //_LocationInfoRepository.UpdateData(locaOne);
                    //_dt_taskRepositiry.AddData(outtask);
                    //_StockInfoRepository.UpdateData(stocks[0]);
                    //_unitOfWorkManage.CommitTran();
                    #endregion
                }
                catch (Exception ex)
@@ -178,10 +179,10 @@
                    #region ç”Ÿæˆå…¥åº“任务
                    if (!OHTJob.oHTReadData.R_GZJ_isWork)
                    {
                        throw new Exception($"规整机投入使用信号为false");
                    }
                    //if (!OHTJob.oHTReadData.R_GZJ_isWork)
                    //{
                    //    throw new Exception($"规整机投入使用信号为false");
                    //}
                    var Inisout = _outStockRepository.QueryFirst(v => v.Id == 1);
                    //入库
                    if (Inisout.InOut==1)
@@ -412,7 +413,7 @@
                    var isout = _outStockRepository.QueryFirst(v => v.Id == 1);
                    if (isout.isout == 1)
                    {
                        if (!OHTJob.oHTReadData.R_ZXJ_TCMode )
                        if (!OHTJob.oHTReadData.R_ZXJ_TCMode)
                        {
                            throw new Exception($"整形机不属于天车上料模式或天车放板信号为false");
                        }