diff --git a/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs b/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs index 82e9630..ebdd9ff 100644 --- a/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs +++ b/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs @@ -617,8 +617,13 @@ namespace SlnMesnac.WPF.ViewModel MessageBox.Show("班组长未打卡!"); return; } - if (pLanInfo.CompleteAmount == "0.00") + // 先查一下 detail 里是否已有该 PlanCode 的记录 + var existDetail = _prodPlanDetailService + .GetLastPlanDetailByPlanCode(pLanInfo.PlanCode); + + if (existDetail == null) { + // 如果不存在,则插入新记录 ProdPlanDetail prodPlanDetail = new ProdPlanDetail { PlanCode = pLanInfo.PlanCode, @@ -627,11 +632,21 @@ namespace SlnMesnac.WPF.ViewModel CompleteAmount = pLanInfo.CompleteAmount, BeginTime = theStartTime, CreatedBy = monitor.staffName - //CurrentStaffId = staffInfo.StaffId - //NextStaffId = nextRecord.StaffId, + // CurrentStaffId = staffInfo.StaffId + // NextStaffId = nextRecord.StaffId }; _prodPlanDetailService.Insert(prodPlanDetail); } + else + { + // 如果已经存在,则更新(这里可以更新完成量、开始时间、修改人等) + existDetail.CompleteAmount = pLanInfo.CompleteAmount; + existDetail.BeginTime ??= theStartTime; // 只有为空才赋值 + existDetail.UpdatedBy = monitor.staffName; + existDetail.UpdatedTime = DateTime.Now.ToString(); + + _prodPlanDetailService.Update(existDetail); + } //按钮文字变成执行中并锁定,其他的订单执行按钮也禁用 //pLanInfo.BeginTime = DateTime.Now.ToString(); pLanInfo.PlanStatus = "1";