| | |
| | | { |
| | | // 查询MesOrderSta表获取工单状态记录 |
| | | var mesOrderSta = Db.Queryable<MesOrderSta>() |
| | | // 根据工单ID匹配记录 |
| | | .Where(s => s.OrderId == query.OrderId) |
| | | // 获取第一条记录 |
| | | .First(); |
| | | |
| | | // 如果未找到记录,返回空对象 |
| | |
| | | // 查询Womdaa表获取工单主表信息 |
| | | var womdaa = Db.Queryable<Womdaa>() |
| | | .Where(a => a.Id == query.OrderId).First(); |
| | | // 设置工单状态 |
| | | mesOrderSta.OrderStatus = womdaa.Daa018; |
| | | |
| | | // 判空处理,避免空引用异常 |
| | | mesOrderSta.OrderStatus = womdaa != null ? womdaa.Daa018 : null; |
| | | return mesOrderSta; |
| | | } |
| | | |
| | |
| | | // 如果标记为1,需要处理首检相关逻辑 |
| | | if (entity.Flag == 1) |
| | | { |
| | | // 调用存储过程执行自动首检 |
| | | // Db.Ado.ExecuteCommand( |
| | | // "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;", |
| | | // new SugarParameter("BILL_NO", womdaa.Daa001, |
| | | // DbType.String)); |
| | | //调用存储过程执行自动首检 |
| | | Db.Ado.ExecuteCommand( |
| | | "BEGIN AUTOMATIC_IPQC_FIRST_CHECK(:BILL_NO); END;", |
| | | new SugarParameter("BILL_NO", womdaa.Daa001, System.Data.DbType.String)); |
| | | var automaticIpqcFirstCheck = |
| | | mesQaItemsDetect02Manager |
| | | .AutomaticIpqcFirstCheck(womdaa.Daa001); |
| | | if (!automaticIpqcFirstCheck) throw new Exception("首检生成失败"); |
| | | if (!automaticIpqcFirstCheck) |
| | | { |
| | | Console.WriteLine($"自动首检失败,工单号:{womdaa.Daa001}"); |
| | | throw new Exception("首检生成失败"); |
| | | } |
| | | |
| | | // 获取当前时间 |
| | | var s1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | var editDate = DateTime.Now.ToString("yyyy-MM-dd"); |
| | | |
| | | // 发送HTTP请求到数据刷新接口 |
| | | MesNumerical mesNumerical = null; |
| | | MesNumericalBycl mesNumerical = null; |
| | | try |
| | | { |
| | | using (var httpClient = new HttpClient()) |
| | |
| | | "application/json"); |
| | | |
| | | var response = httpClient |
| | | .PostAsync("http://192.168.0.94:9095/Numerical/RefreshDev", |
| | | .PostAsync("http://192.168.0.94:9095/Numerical/RefreshDevBycl", |
| | | content).GetAwaiter().GetResult(); |
| | | |
| | | if (response.IsSuccessStatusCode) |
| | |
| | | if (responseObj != null && responseObj.code == 200) |
| | | { |
| | | // 请求成功,获取MesNumerical数据 |
| | | mesNumerical = Db.Queryable<MesNumerical>() |
| | | mesNumerical = Db.Queryable<MesNumericalBycl>() |
| | | .Where(s => s.EditDate == editDate |
| | | && s.MachineNo == entity.MachineNo) |
| | | .OrderByDescending(s => s.Id) |
| | |
| | | OrderId = womdaa.Id, |
| | | OrderNo = womdaa.Daa001, |
| | | EditDate = editDate, |
| | | Qty = mesReporting == null ? 0 : Int64.Parse(mesReporting.DyQty), |
| | | Qty = mesReporting == null ? 0 : (long?)(mesReporting.DyQty ?? 0), |
| | | InitialValue = mesNumerical == null ? 0 : mesNumerical.CjNum |
| | | }; |
| | | Db.Insertable<MesAnchors>(eAnchors) |
| | | .ExecuteCommand(); |
| | | |
| | | |
| | | |
| | | // 新增逻辑:送检时间有值时,判断最新首检单是否合格,合格则写入调机完成时间为当前时间 |
| | | if (!string.IsNullOrEmpty(entity.MaShoutTime)) |
| | | { |
| | | //送检呼叫时间必须大于或等于调机开始时间,以此来筛选首检单 |
| | | if (DateTime.TryParse(entity.MaShoutTime, out var sjTime) && DateTime.TryParse(entity.MaStartTime, out var startTime)) |
| | | { |
| | | if (sjTime >= startTime) |
| | | { |
| | | // 查找该工单号下最新的首检单 |
| | | var sjRecord = Db.Queryable<MesQaItemsDetect02>() |
| | | .Where(x => x.Aufnr == womdaa.Daa001 && x.Ftype == "首检") |
| | | .OrderBy(x => x.CreateDate, OrderByType.Desc) |
| | | .First(); |
| | | |
| | | if (sjRecord != null && sjRecord.FcheckResu == "合格") |
| | | { |
| | | // 使用QualifiedInspection方法更新工单状态 |
| | | QualifiedInspection(new OrderMachineDto |
| | | { |
| | | OrderId = entity.OrderId, |
| | | orderNo = entity.OrderNo, |
| | | machineNo = entity.MachineNo |
| | | }); |
| | | //将送检时间写入开工时间 |
| | | entity.StartTime = entity.MaShoutTime; |
| | | entity.MaEndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 更新工单状态表 |
| | | return Db.Updateable<MesOrderSta>() |
| | | // 如果有送检时间则更新 |
| | | .SetColumnsIF(entity.MaShoutTime != null, |
| | | s => s.MaShoutTime == entity.MaShoutTime) |
| | | // 如果有调机开始时间则更新 |
| | | .SetColumnsIF(entity.MaStartTime != null, |
| | | s => s.MaStartTime == entity.MaStartTime) |
| | | // 如果有调机完成时间则更新 |
| | | .SetColumnsIF(entity.MaEndTime != null, |
| | | s => s.MaEndTime == entity.MaEndTime) |
| | | // 如果有开工时间则更新 |
| | | .SetColumnsIF(entity.StartTime != null, |
| | | s => s.StartTime == entity.StartTime) |
| | | // 如果标记为1则更新备注信息 |
| | | .SetColumnsIF(entity.Flag == 1, |
| | | s => s.remark == "于" + entity.MaShoutTime + "时间有一次送检") |
| | |
| | | // var reportingOkQty = |
| | | // Convert.ToDecimal(vOrder.todayOutput) - |
| | | // reporting.OkQty; |
| | | var CjQty = Db.Queryable<MesNumerical>() |
| | | var CjQty = Db.Queryable<MesNumericalBycl>() |
| | | .Where(s => s.MachineNo == entity.MachineNo && s.EditDate == date) |
| | | .OrderByDescending(s=>s.CjTiem) |
| | | .Select<long?>(s=>s.CjNum).First(); |
| | |
| | | MachineNo = womdaa.MachineNo, |
| | | // BfQty = reportingOkQty, |
| | | BfQty = 0, |
| | | BlQty = reportingOkQty.ToString(), |
| | | BlQty = reportingOkQty, |
| | | OkQty = 0, |
| | | ItemNo = womdaa.Daa002, |
| | | BillNo = womdaa.Daa001, |
| | | CjQty = CjQty.ToString(), |
| | | DyQty = reporting.OkQty.ToString() |
| | | CjQty = CjQty, |
| | | DyQty = reporting.OkQty |
| | | }; |
| | | |
| | | // 插入报工记录 |
| | |
| | | public bool StateCheck(OrderMachineDto query) |
| | | { |
| | | // 查询工单视图信息 |
| | | var vOrder = Db.Queryable<VOrder>() |
| | | var vOrder = Db.Queryable<VOrderBycl>() |
| | | .Where(s => s.ID == query.OrderId).First(); |
| | | |
| | | // 根据不同操作标识进行检查 |
| | |
| | | |
| | | if (binding) |
| | | return Db.Updateable<MesOrderSta>() |
| | | .SetColumns(s => s.MaEndTime == endDate) |
| | | .SetColumns(s => s.MaEndTime == endDate) // 自动写入调机完成时间 |
| | | .SetColumns(s => s.StartTime == entity.MaShoutTime) |
| | | .Where(s => s.OrderId == query.OrderId).ExecuteCommand() > 0; |
| | | |