/// <summary> /// 递归查找前工序,直到找到没有跳序的前工序 /// </summary> /// <param name="process"></param> /// <returns></returns> private async Task<List<string>> HasReportedWorkAsync(List<WorkOrderProcedureEntity> proceduList) {if (proceduList.Count <= 0) return new List<string>();//前工序IDvar pId = proceduList.Select(x => x.PreNid).ToList();//查询前工序任务var preWOProList = await BaseDal.Db.Queryable<WorkOrderProcedureEntity>().Where(p => p.WorkorderId == proceduList[0].WorkorderId && p.IsDelete == 0 && pId.Contains(p.OperationNo)).ToListAsync();if (preWOProList.Count <= 0) return new List<string>();//查询未跳序的工序var isFlagSkip = preWOProList.Where(x => x.SkipOperation == 0).ToList();//没有未跳序并且有前序时if (isFlagSkip.Count <= 0 && preWOProList.Count > 0){//没有未跳序的工序,则继续往上工序找return await HasReportedWorkAsync(preWOProList);}else{//存在没有跳序的工序,则直接返回return preWOProList.Select(x => x.Nid).ToList();} }