using Mapster; using Masuit.Tools; using Microsoft.EntityFrameworkCore.Metadata.Internal; using System.ComponentModel.DataAnnotations; using WIDESEA_Core; using WIDESEA_DTO; using WIDESEA_IStoragIntegrationServices; using WIDESEA_StorageBasicRepository; namespace WIDESEA_StorageBasicService; public class Dt_CZInfo_mesService : ServiceBase, IDt_CZInfo_mesService { private readonly IDt_WheelsStockRepository _WheelsStockRepository; private readonly IDt_InWheels_mes_htyRepository _InWheels_Mes_HtyRepository; private readonly IDt_CZInfo_mes_htyRepository _CZInfo_mes_HtyRepository; public Dt_CZInfo_mesService(IDt_WheelsStockRepository wheelsStockRepository, IDt_InWheels_mes_htyRepository inWheels_Mes_HtyRepository, IDt_CZInfo_mes_htyRepository cZInfo_Mes_HtyRepository, IDt_CZInfo_mesRepository BaseDal) : base(BaseDal) { _WheelsStockRepository = wheelsStockRepository; _InWheels_Mes_HtyRepository = inWheels_Mes_HtyRepository; _CZInfo_mes_HtyRepository = cZInfo_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["neworold"].ToString(); // ////轮对号 // //string ldh = saveModel.MainData["ldh"].ToString(); // ////轮对型号 // //string ldxh = saveModel.MainData["ldxh"].ToString(); // ////毂孔等级 // //string gkdj = saveModel.MainData["gkdj"].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(); // ////毂孔均值 // string gkcc = saveModel.MainData["gkcc"].ToString(); // //创建人 // //string user = saveModel.MainData["user"].ToString(); // Dt_InWheels_mes wheels_Mes = new Dt_InWheels_mes // { // Wheels_code = clCode, // Wheels_Type = "1", // Wheels_Num = "20240829-0010 /" + clCode, // CreateDate = DateTime.Now, // Creater = App.User.UserName == null ? "admin" : App.User.UserName, // WheelsProps = "WheelsProps", // Wheels_CarNo = "lcch", // Wheels_CarType = Cartype, // Wheels_ldxh = "ldxh", // Wheels_CurrentStatue = "0", // Wheels_ldtm = "ldtm", // Wheels_InDate = "rksj", // Wheels_level = "gkdj", // Wheels_NewOrOld = "newOrOld", // Wheels_psj = "psj", // Wheels_gkcc = "gkcc", // Wheels_gkzja = "520.120",//gkzja // Wheels_gkzjb = "519.321",//gkzjb // Wheels_gkzjc = "520.014",// gkzjc // Wheels_ldh = "ldh", // Wheels_ljz = "ljz", // Wheels_mttype = mttype, // //Wheels_SequenceNum = "", // Wheels_ygljz = "yglj", // }; // 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.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.OperateType = (int)OperateTypeEnum.人工删除; _CZInfo_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.ID == key.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.OperateType = (int)OperateTypeEnum.人工删除; _InWheels_Mes_HtyRepository.AddData(wheels_Mes_Hty); return base.DeleteData(key); } 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; } public WebResponseContent RequestAxleloading(RequestTaskDto input) { WebResponseContent content = new WebResponseContent(); try { Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.CurrentStatue == "1" || x.CurrentStatue == "11"); if (CZInfot != null) { CZInfot.CurrentStatue = CZInfot.CurrentStatue=="1"?"2":"12"; BaseDal.UpdateData(CZInfot); return content.OK(data: CZInfot.CZTM); } else { return content.Error("未找到需要上架的车轴条码"); } } catch (Exception ex) { return content.Error(ex.Message); } } public WebResponseContent UpdateAxleCurrentStatue(RequestTaskDto input) { WebResponseContent content = new WebResponseContent(); try { Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.CZTM == input.PalletCode); if (CZInfot != null) { if (CZInfot.CurrentStatue == "2") { CZInfot.CurrentStatue = "3"; } else if (CZInfot.CurrentStatue == "12") { CZInfot.CurrentStatue = "13"; } else { return content.Error($"未找到申请车轴条码信息,状态不为输送线运行中,申请条码:{input.PalletCode}"); } BaseDal.UpdateData(CZInfot); //先修改了状态 return content.OK(); } else { return content.Error($"未找到申请车轴条码信息,申请条码:{input.PalletCode}"); } } catch (Exception ex) { return content.Error($"更新车轴信息状态出错,申请条码:{input.PalletCode},错误信息:{ex.Message}"); } } public override WebResponseContent UpdateData(SaveModel saveModel) { WebResponseContent webResponse = new WebResponseContent(); try { int id = int.Parse(saveModel.MainData["id"]?.ToString()); string cztm = saveModel.MainData["cztm"]?.ToString(); if (string.IsNullOrEmpty(cztm)) throw new Exception($"车轴号为空"); string currentStatue = saveModel.MainData["currentStatue"]?.ToString(); if (string.IsNullOrEmpty(currentStatue)) throw new Exception($"车轴状态为空"); Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.ID == id); if (CZInfot != null) { CZInfot.CZTM = cztm; CZInfot.CurrentStatue = currentStatue; BaseDal.UpdateData(CZInfot); //先修改了状态 return webResponse.OK($"修改成功"); } else { return webResponse.Error($"修改失败,未找到车轴信息"); } } catch (Exception ex) { return webResponse.Error($"修改失败,错误信息:{ex.Message}"); throw; } } }