yanjinhui
2025-03-12 0a430c14f3e3ceb4ba63462c4f2c92768fc79e87
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/SerialPortService/ProcessServer.cs
@@ -6,6 +6,7 @@
using System.Threading.Tasks;
using SqlSugar;
using WIDESEA_ISerialPortRepository;
using WIDESEA_SerialPortRepository;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
@@ -17,14 +18,24 @@
{
    public class ProcessServer : ServiceBase<Dt_Process, IProcessRepository>, IProcessServer
    { 
        private IPutakeRepository _putakeRepository;
        private IUnitOfWorkManage _unitOfWorkManage;
        public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        private ITorqueOpRepository _torqueOpRepository;
        public ProcessServer(IProcessRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IPutakeRepository putakeRepository, ITorqueOpRepository torqueOpRepository) : base(BaseDal)
        {
            _putakeRepository = putakeRepository;
            _unitOfWorkManage=unitOfWorkManage;
            _torqueOpRepository = torqueOpRepository;
        }
        public override PageGridData<Dt_Process> GetPageData(PageDataOptions options)
        {
            OrderByParameters = new Dictionary<string, OrderByType>
            {
                { nameof(Dt_Process.ArticleOne), OrderByType.Asc },//按什么字段排序
            };
            return base.GetPageData(options);
        }
        public WebResponseContent GetProcess(string gruop)
        {
@@ -125,41 +136,62 @@
            }
        }
        public WebResponseContent Getcircuit(string groups)
        public WebResponseContent Getcircuit(string group, string takeid)
        {
            try
            {
                List<Dt_Process> results = new List<Dt_Process>();
                int step = 1;
                ///如果这个存值表中没有步骤一这么搞?我这么显示给前端看
                while (true)
                // å…ˆæŸ¥åˆ°è¿™æ¡ä»»åŠ¡
                var putake = _putakeRepository.QueryData(x => x.Njtakeid == takeid && x.Grouptype == group).OrderBy(x => x.Dispatchtime).FirstOrDefault();
                if (putake==null)
                {
                    // æŸ¥è¯¢å½“前步骤的数据
                    var circuit = BaseDal.QueryData(x => x.CraftType == groups && x.SetpNum == step)
                                         .FirstOrDefault();
                    return new WebResponseContent { Status = false, Message = "没有找到" };
                }
                //获取到当前完成的步骤
                var nowNum = _torqueOpRepository.QueryData(x => x.GroupOp == group && x.TakeId == takeid).Max(x => x.ProcessSte);
                    // å¦‚果查询结果为空,则停止循环
                    if (circuit == null)
                //根据分组和步骤找到该条数据
                var process = BaseDal.QueryData(x => x.CraftType == group&&x.SetpNum== nowNum).FirstOrDefault();
                //返回当前工艺的最大步骤
                var maxproce = BaseDal.QueryData(x => x.CraftType == group).Max(x => x.SetpNum);
                //一共要有多少条数据(目标数量)
                int TargetCount = process.TorqueOneQuantity + process.TorqueTwoQuantity;
                // æŸ¥è¯¢å½“前步骤的 TorqueOp è®°å½•,匹配 ProcessSte和组,任务号,检查是否达到要求(实际数量)
                int practiceCount = _torqueOpRepository.QueryData(x =>  x.GroupOp == group&&x.TakeId== takeid).Count();
                if (practiceCount < TargetCount)
                    {
                        break;
                    return new WebResponseContent { Status = false, Message = "没有完成当前步骤",Data= process };
                    }
                    // åŠ å…¥ç»“æžœåˆ—è¡¨
                    results.Add(circuit);
                    // é€’增 step,继续查询下一个步骤
                    step++;
                if (maxproce== nowNum)
                {
                    return new WebResponseContent { Status = false, Message = "你完成了当前作业" };
                }
                int num = nowNum + 1;
                return new WebResponseContent { Status = true, Data = results };
                var nex = BaseDal.QueryFirst(x => x.CraftType == group && x.SetpNum == num);
                return new WebResponseContent { Status = true, Data = nex };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = "查询失败:" + ex.Message };
            }
        }
    }
       
    }
}