public Result DeleteSpotCheckDevice([FromBody] SpotCheckDeviceBindPlan spotCheckDeviceBindPlan) { ServerConfig.ApiDb.Execute( "UPDATE `spot_check_device_bind` SET `MarkedDateTime`= @MarkedDateTime, `MarkedDelete`= @MarkedDelete WHERE `DeviceId` = @DeviceId AND `PlanId` = @PlanId;", spotCheckDeviceBindPlan.DeviceList.Select(x => new { MarkedDateTime = DateTime.Now, MarkedDelete = true, DeviceId = x, PlanId = spotCheckDeviceBindPlan.PlanId })); ServerConfig.ApiDb.Execute( "UPDATE `spot_check_device` SET `MarkedDateTime`= @MarkedDateTime, `MarkedDelete`= @MarkedDelete WHERE `DeviceId` = @DeviceId AND `PlanId` = @PlanId;", spotCheckDeviceBindPlan.DeviceList.Select(x => new { MarkedDateTime = DateTime.Now, MarkedDelete = true, DeviceId = x, PlanId = spotCheckDeviceBindPlan.PlanId })); return(Result.GenError <Result>(Error.Success)); }
public Result PostSpotCheckDevice([FromBody] SpotCheckDeviceBindPlan spotCheckDeviceBindPlan) { var cnt = ServerConfig.ApiDb.Query <int>("SELECT COUNT(1) FROM `spot_check_plan` WHERE Id = @PlanId AND `MarkedDelete` = 0;", new { spotCheckDeviceBindPlan.PlanId }).FirstOrDefault(); if (cnt == 0) { return(Result.GenError <Result>(Error.SpotCheckPlanNotExist)); } var checkDeviceBinds = ServerConfig.ApiDb.Query <SpotCheckDeviceBind>("SELECT * FROM `spot_check_device_bind` WHERE PlanId = @PlanId AND MarkedDelete = 0;", new { spotCheckDeviceBindPlan.PlanId }); var createUserId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; #region 更新 var oldDevice = spotCheckDeviceBindPlan.DeviceList.Where(x => checkDeviceBinds.Any(y => y.DeviceId == x && y.PlanId == spotCheckDeviceBindPlan.PlanId)); if (oldDevice.Any()) { var data = ServerConfig.ApiDb.Query <SpotCheckDevice>("SELECT * FROM `spot_check_device` WHERE MarkedDelete = 0 AND PlanId = @PlanId AND DeviceId IN @oldDevice;", new { spotCheckDeviceBindPlan.PlanId, oldDevice }); foreach (var spotCheckDevice in spotCheckDeviceBindPlan.SpotCheckDevices) { var a = data.Where(x => x.ItemId == spotCheckDevice.ItemId).ToList(); foreach (var d in a) { if (d != null && d.SurveyorId != spotCheckDevice.SurveyorId) { d.SurveyorId = spotCheckDevice.SurveyorId; d.MarkedDateTime = markedDateTime; } } } ServerConfig.ApiDb.Execute("UPDATE spot_check_device SET `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete, `DeviceId` = @DeviceId, `ItemId` = @ItemId, " + "`PlanId` = @PlanId, `SurveyorId` = @SurveyorId, `PlannedTime` = @PlannedTime WHERE `Id` = @Id;", data); } #endregion #region 添加 var newDevice = spotCheckDeviceBindPlan.DeviceList.Where(x => checkDeviceBinds.All(y => !(y.DeviceId == x && y.PlanId == spotCheckDeviceBindPlan.PlanId))); if (newDevice.Any()) { ServerConfig.ApiDb.Execute("INSERT INTO spot_check_device_bind (`CreateUserId`, `MarkedDateTime`, `DeviceId`, `PlanId`) " + "VALUES (@CreateUserId, @MarkedDateTime, @DeviceId, @PlanId);", newDevice.Select(x => new SpotCheckDeviceBind { CreateUserId = createUserId, MarkedDateTime = markedDateTime, DeviceId = x, PlanId = spotCheckDeviceBindPlan.PlanId })); var items = ServerConfig.ApiDb.Query <SpotCheckItem>( "SELECT * FROM `spot_check_item` WHERE PlanId = @PlanId AND `MarkedDelete` = 0 AND `Enable` = 1;", new { spotCheckDeviceBindPlan.PlanId }); var addList = new List <SpotCheckDevice>(); foreach (var device in newDevice) { foreach (var item in items) { var time = default(DateTime); switch (item.Interval) { case IntervalEnum.Day: time = markedDateTime.Date.AddDays(item.Day).AddMonths(item.Month).AddHours(item.NormalHour); break; case IntervalEnum.Week: time = markedDateTime.Date.AddDays(item.Week * 7).AddHours(item.WeekHour); break; } addList.Add(new SpotCheckDevice { CreateUserId = createUserId, MarkedDateTime = markedDateTime, DeviceId = device, ItemId = item.Id, PlanId = item.PlanId, SurveyorId = spotCheckDeviceBindPlan.SpotCheckDevices.FirstOrDefault(x => x.ItemId == item.Id)?.SurveyorId ?? 0, PlannedTime = time }); } } ServerConfig.ApiDb.Execute("INSERT INTO spot_check_device (`CreateUserId`, `MarkedDateTime`, `DeviceId`, `ItemId`, `PlanId`, `SurveyorId`, `PlannedTime`) " + "VALUES (@CreateUserId, @MarkedDateTime, @DeviceId, @ItemId, @PlanId, @SurveyorId, @PlannedTime);", addList); } #endregion return(Result.GenError <Result>(Error.Success)); }