| | |
| | | vOrderBycl.CurrentCjNum = 0; |
| | | } |
| | | |
| | | // 查询报工记录,获取最后一次报工时间 |
| | | // 查询报工记录,获取最后一条报工记录(按报工时间降序排列,取第一条) |
| | | var lastReport = Db.Queryable<MesReporting>() |
| | | .Where(r => r.BillNo != null && r.BillNo.Contains(query.orderNo)) |
| | | .OrderBy(r => r.BgDate, OrderByType.Desc) |
| | | .First(); |
| | | |
| | | if (lastReport == null) |
| | | if (lastReport == null || !lastReport.BgDate.HasValue) |
| | | { |
| | | // 没有报工记录,初始采集数为开工采数 |
| | | // 没有报工记录或报工时间无效,初始采集数为开工采数 |
| | | vOrderBycl.InitCjNum = vOrderBycl.StartCjNum; |
| | | } |
| | | else |
| | | { |
| | | // 有报工记录,初始采集数为上一次报工时间后最近一条齿轮数采表的采集数量 |
| | | var afterReportNum = numericalList |
| | | .Where(x => |
| | | DateTime.TryParse(x.CjTiem, out var cjTiemDt) && |
| | | lastReport.BgDate.HasValue && |
| | | cjTiemDt > lastReport.BgDate.Value) |
| | | .OrderBy(x => DateTime.Parse(x.CjTiem)) |
| | | .Select(x => new { Item = x, ParsedTime = DateTime.TryParse(x.CjTiem, out var dt) ? dt : (DateTime?)null }) |
| | | .Where(x => x.ParsedTime.HasValue && x.ParsedTime.Value > lastReport.BgDate.Value) |
| | | .OrderBy(x => x.ParsedTime) |
| | | .Select(x => x.Item) |
| | | .FirstOrDefault(); |
| | | |
| | | vOrderBycl.InitCjNum = afterReportNum?.CjNum ?? vOrderBycl.StartCjNum; |