using Mapster; using Masuit.Tools; using Microsoft.EntityFrameworkCore.Metadata.Internal; using System.ComponentModel.DataAnnotations; using WIDESEA_Core; using WIDESEA_Core.HttpContextUser; using WIDESEA_StorageBasicRepository; namespace WIDESEA_StorageBasicService; public class Dt_InWheels_mesService : ServiceBase, IDt_InWheels_mesService { private readonly IDt_WheelsStockRepository _WheelsStockRepository; private readonly IDt_InWheels_mes_htyRepository _InWheels_Mes_HtyRepository; public Dt_InWheels_mesService(IDt_WheelsStockRepository wheelsStockRepository, IDt_InWheels_mes_htyRepository inWheels_Mes_HtyRepository, IDt_InWheels_mesRepository BaseDal) : base(BaseDal) { _WheelsStockRepository = wheelsStockRepository; _InWheels_Mes_HtyRepository = inWheels_Mes_HtyRepository; } public override PageGridData GetPageData(PageDataOptions options) { return base.GetPageData(options); } public override WebResponseContent AddData(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { //如当前存在未开始入库的车轮或制动盘数据,则禁止保存新数据 以防数据混乱 var waitInbound = BaseDal.QueryFirst(x => x.Wheels_CurrentStatue == "0"); if (waitInbound != null) throw new Exception("当前存在未开始入库的车轮或制动盘,请先入库后再保存信息!"); //车轮码 string clCode = saveModel.MainData["Wheels_code"].ToString(); if (string.IsNullOrEmpty(clCode)) throw new Exception($"车轮条码不能为空"); var clinfo = BaseDal.QueryFirst(x => x.Wheels_code == clCode); if (clinfo != null) throw new Exception("车轮录入信息已存在"); //检测库存是否已存在 var wheelsStock = _WheelsStockRepository.QueryFirst(x => x.Wheels_code == clCode); if (wheelsStock != null) throw new Exception("库内已存在,请检查库存"); //序列号 //string madeUnit = saveModel.MainData["xlh"].ToString(); //车轮号 //string clh = saveModel.MainData["clh"].ToString(); //轮对条码 //string ldtm = saveModel.MainData["ldtm"].ToString(); ////车型 string Cartype = saveModel.MainData["Wheels_ldxh"].ToString(); ////配属局 //string psj = saveModel.MainData["psj"].ToString(); ////车组号 //string lcch = saveModel.MainData["lcch"].ToString(); ////新旧 string newOrOld = saveModel.MainData["wheels_NewOrOld"].ToString(); ////轮对号 //string ldh = saveModel.MainData["ldh"].ToString(); ////轮对型号 //string ldxh = saveModel.MainData["ldxh"].ToString(); ////毂孔等级 string gkdj = saveModel.MainData["wheels_level"].ToString(); ////毂孔a界面均值 //string gkzja = saveModel.MainData["gkzja"].ToString(); ////毂孔b界面均值 //string gkzjb = saveModel.MainData["gkzjb"].ToString(); ////毂孔c界面均值 //string gkzjc = saveModel.MainData["gkzjc"].ToString(); ////轮径值 //string ljz = saveModel.MainData["ljz"].ToString(); ////预估轮径值 //string yglj = saveModel.MainData["yglj"].ToString(); ////入库时间 //string rksj = saveModel.MainData["rksj"].ToString(); ////属性 //string WheelsProps = saveModel.MainData["clsx"].ToString(); ////动拖属性 string mttype = saveModel.MainData["Wheels_mttype"].ToString(); if (mttype != "M" && mttype != "T") throw new Exception("动拖属性仅能为M或T"); //毂孔均值 string gkcc = saveModel.MainData["gkcc"].ToString(); //创建人 //string user = saveModel.MainData["user"].ToString(); Dt_InWheels_mes wheels_Mes = new Dt_InWheels_mes { Wheels_code = DateTime.Now.ToString("yyyyMMddHHmmss") + clCode, Wheels_Type = "1", Wheels_Num = DateTime.Now.ToString("yyyyMMddHHmmss") + clCode, CreateDate = DateTime.Now, Creater = App.User.UserName == null ? "admin" : App.User.UserName, WheelsProps = "", Wheels_CarNo = "", Wheels_CarType = Cartype, Wheels_ldxh = "", Wheels_CurrentStatue = "0", Wheels_ldtm = "", Wheels_InDate = DateTime.Now.ToString(), Wheels_level = gkdj, Wheels_NewOrOld = newOrOld, Wheels_psj = "psj", Wheels_gkcc = gkcc, Wheels_gkzja = "",//gkzja Wheels_gkzjb = "",//gkzjb Wheels_gkzjc = "",// gkzjc Wheels_ldh = "", Wheels_ljz = "", Wheels_mttype = mttype, //Wheels_SequenceNum = "", Wheels_ygljz = "", }; if (BaseDal.AddData(wheels_Mes) > 0) { return content.OK("保存成功"); } else { return content.Error("保存失败"); } } catch (Exception ex) { return content.Error($"保存失败:{ex.Message}"); } } public override WebResponseContent DeleteData(object[] keys) { WebResponseContent content = new WebResponseContent(); try { var wheels_Mes = BaseDal.QueryFirst(x => x.Wheels_ID == keys[0].ObjToInt()); if (wheels_Mes == null) throw new Exception("未找到信息,请重试"); var wheels_Mes_Hty = wheels_Mes.Adapt(); //wheels_Mes_Hty.Wheels_CurrentStatue = "2"; wheels_Mes_Hty.FinishDate = DateTime.Now; wheels_Mes_Hty.Wheels_CurrentStatue = "4"; wheels_Mes_Hty.OperateType = (int)OperateTypeEnum.人工删除; _InWheels_Mes_HtyRepository.AddData(wheels_Mes_Hty); return base.DeleteData(keys[0]); } catch (Exception ex) { return content.Error($"删除失败:{ex.Message}"); } } public override WebResponseContent DeleteData(object key) { WebResponseContent content = new WebResponseContent(); try { var wheels_Mes = BaseDal.QueryFirst(x => x.Wheels_ID == key.ObjToInt()); if (wheels_Mes == null) throw new Exception("未找到信息,请重试"); var wheels_Mes_Hty = wheels_Mes.Adapt(); wheels_Mes_Hty.Wheels_CurrentStatue = "4"; wheels_Mes_Hty.FinishDate = DateTime.Now; wheels_Mes_Hty.OperateType = (int)OperateTypeEnum.人工删除; wheels_Mes_Hty.Modifier = App.User.UserName; _InWheels_Mes_HtyRepository.AddData(wheels_Mes_Hty); if (BaseDal.DeleteData(wheels_Mes)) { return content.OK("删除完成"); } else { return content.Error("删除失败"); } } catch (Exception ex) { return content.Error($"删除失败:{ex.Message}"); } } // 验证模型 public static List ValidateModel(object model) { // 创建一个验证结果列表 var validationResults = new List(); // 创建一个验证上下文 var validationContext = new ValidationContext(model, serviceProvider: null, items: null); // 使用验证器尝试验证模型,并将验证结果添加到验证结果列表中 Validator.TryValidateObject(model, validationContext, validationResults, validateAllProperties: true); // 返回验证结果列表 return validationResults; } }