Example #1
0
 public bool AddMesData(MES_StationDataRecord MesInfo)
 {
     try
     {
         //插入数据前判断是否重复--
         //var result = MesDataSyncRepository.GetAll().Where(p => p.Date == MesInfo.Date && p.TimeInterVal == MesInfo.TimeInterVal && p.StartTimeInterval == MesInfo.StartTimeInterval && p.EndTimeInterval == MesInfo.EndTimeInterval && p.PIS_ProcessID == MesInfo.PIS_ProcessID);
         var result = MesDataSyncRepository.Is_MES_Exist(MesInfo);
         //更新
         if (result)
         {
             //result.FirstOrDefault().ProductQuantity = MesInfo.ProductQuantity;
             //MesDataSyncRepository.Update(MesInfo);
             return(MesDataSyncRepository.UpData_MESByID(MesInfo));
             //unitOfWork.Commit();
         }
         else//增加
         {
             //MES_StationDataRecord dto = AutoMapper.Mapper.Map<MES_StationDataRecord>(MesInfo);
             MesDataSyncRepository.Add(MesInfo);
             unitOfWork.Commit();
             return(true);
         }
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Example #2
0
        //添加数据
        public bool AddMES_PIS(int uid, List <MES_StationDataRecordDTO> mesDataList, CurentTimeModel CurrentDate, MesRequestParamModel mesRequest)
        {
            //是否发邮件
            var isSendEMail     = false;
            var isAddFailRecord = false;

            try
            {
                var pisConfigList   = _process_Service.GetSyscProcessConfig();
                var resultModelList = new List <MES_StationDataRecordDTO>();
                var convertModel    = mesDataList.GroupBy(p => p.MES_ProcessName).ToDictionary(p => p.Key, m => m);
                //筛选领料--待商议
                var AllPickIngModel = convertModel.Where(p => pisConfigList.Select(m => m.MES_PickingID).Contains(p.Key));
                var AllNgModel      = convertModel.Where(p => pisConfigList.Select(m => m.MES_NgID).Contains(p.Key));
                var AllReworkModel  = convertModel.Where(p => pisConfigList.Select(m => m.MES_ReworkID).Contains(p.Key));
                foreach (var item in AllNgModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisConfigList.Where(p => p.MES_NgID == item.Key).FirstOrDefault().PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisConfigList.Where(p => p.MES_NgID == item.Key).FirstOrDefault().PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Value.FirstOrDefault().MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Key;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-NG";
                    //resultModelList.Add(AddPisModel);
                    var result = _mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                        //AddMESSyncFailedLog("Failed", "AddPIS", mesRequest);
                    }
                }

                foreach (var item in AllReworkModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisConfigList.Where(p => p.MES_ReworkID == item.Key).FirstOrDefault().PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisConfigList.Where(p => p.MES_ReworkID == item.Key).FirstOrDefault().PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Value.FirstOrDefault().MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Key;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-ReWork";
                    var result = _mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                        //AddLog("Failed", "AddPIS", mesRequest);
                        //AddMESSyncFailedLog("Failed", "AddPIS", mesRequest);
                    }
                }

                foreach (var item in AllPickIngModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisConfigList.Where(p => p.MES_PickingID == item.Key).FirstOrDefault().PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisConfigList.Where(p => p.MES_PickingID == item.Key).FirstOrDefault().PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Value.FirstOrDefault().MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Key;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-PICK";
                    //resultModelList.Add(AddPisModel);
                    var result = _mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                        //AddLog("Failed", "AddPIS", mesRequest);
                        //AddMESSyncFailedLog("Failed", "AddPIS", mesRequest);
                    }
                }

                //手动同步失败更新状态和失败次数
                if (isAddFailRecord)
                {
                    if (isSendEMail)
                    {
                        UpdateSyncFailedLog("MES_PIS", "MES数据手动同步", false, uid, mesRequest);
                    }
                    else
                    {
                        UpdateSyncFailedLog("MES_PIS", "MES数据手动同步", true, uid, mesRequest);
                    }
                }

                //有数据同步成功
                if (isAddFailRecord && !isSendEMail)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                _LogService.AddLog(new LogMessageRecord()
                {
                    LogType    = "手动同步-异常",
                    LogName    = "手动同步异常",
                    LogMessage = ex.Message.ToString(),
                    LogTime    = DateTime.Now,
                    LogRemark  = "添加_MES_StationDataRecord"
                });
                return(false);
            }
        }
Example #3
0
        //添加数据
        public static void AddMES_PIS(MesDataSyncService mes_Service, List <MES_StationDataRecordDTO> mesDataList, List <ProcessIDTransformConfigDTO> pisConfigList, CurentTimeModel CurrentDate, MesRequestParamModel mesRequest)
        {
            var isSendEMail     = false;
            var isAddFailRecord = false;

            try
            {
                var resultModelList          = new List <MES_StationDataRecordDTO>();
                var convertModel             = mesDataList.GroupBy(p => new { p.MES_ProcessID, p.Color }).ToDictionary(p => p.Key, m => m);
                var mesPickIngConfigList     = pisConfigList.Select(m => new { m.PIS_ProcessID, m.PIS_ProcessName, m.MES_PickingID, m.Color }).ToList();
                var mesNgConfigList          = pisConfigList.Select(m => new { m.PIS_ProcessID, m.PIS_ProcessName, m.MES_NgID, m.Color }).ToList();
                var mesReworkConfigList      = pisConfigList.Select(m => new { m.PIS_ProcessID, m.PIS_ProcessName, m.MES_ReworkID, m.Color }).ToList();
                var mesGoodProductConfigList = pisConfigList.Select(m => new { m.PIS_ProcessID, m.PIS_ProcessName, m.MES_GoodProductID, m.Color }).ToList();
                //筛选领料--待商议
                var AllPickIngModel     = convertModel.Where(p => mesPickIngConfigList.Where(m => m.MES_PickingID == p.Key.MES_ProcessID && m.Color == p.Key.Color).Count() > 0);
                var AllGoodProductModel = convertModel.Where(p => mesGoodProductConfigList.Where(m => m.MES_GoodProductID == p.Key.MES_ProcessID && m.Color == p.Key.Color).Count() > 0);
                var AllNgModel          = convertModel.Where(p => mesNgConfigList.Where(m => m.MES_NgID == p.Key.MES_ProcessID && m.Color == p.Key.Color).Count() > 0);
                var AllReworkModel      = convertModel.Where(p => mesReworkConfigList.Where(m => m.MES_ReworkID == p.Key.MES_ProcessID && m.Color == p.Key.Color).Count() > 0);

                //Pick
                foreach (var item in AllPickIngModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    var pisPickConfigModel            = mesPickIngConfigList.Where(p => p.MES_PickingID == item.Key.MES_ProcessID && p.Color == item.Key.Color).FirstOrDefault();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisPickConfigModel.PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisPickConfigModel.PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Key.MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Value.FirstOrDefault().MES_ProcessName;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-PICK";
                    //resultModelList.Add(AddPisModel);
                    var result = mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                    }
                }

                //GoodProduct
                foreach (var item in AllGoodProductModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    var pisPickConfigModel            = mesGoodProductConfigList.Where(p => p.MES_GoodProductID == item.Key.MES_ProcessID && p.Color == item.Key.Color).FirstOrDefault();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisPickConfigModel.PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisPickConfigModel.PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Key.MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Value.FirstOrDefault().MES_ProcessName;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-GP";
                    var result = mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                    }
                }

                //NG
                foreach (var item in AllNgModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    var pisNgConfigModel = mesNgConfigList.Where(p => p.MES_NgID == item.Key.MES_ProcessID && p.Color == item.Key.Color).FirstOrDefault();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisNgConfigModel.PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisNgConfigModel.PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Key.MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Value.FirstOrDefault().MES_ProcessName;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-NG";
                    //resultModelList.Add(AddPisModel);
                    var result = mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                    }
                }

                //Rework
                foreach (var item in AllReworkModel)
                {
                    isAddFailRecord = true;
                    MES_StationDataRecord AddPisModel = new MES_StationDataRecord();
                    var pisReworkConfigModel          = mesReworkConfigList.Where(p => p.MES_ReworkID == item.Key.MES_ProcessID && p.Color == item.Key.Color).FirstOrDefault();
                    AddPisModel.Date              = CurrentDate.CurrentDay;
                    AddPisModel.TimeInterVal      = CurrentDate.CurrentInterval;
                    AddPisModel.StartTimeInterval = CurrentDate.CurrentStartMinute;
                    AddPisModel.EndTimeInterval   = CurrentDate.CurrentEndMinute;
                    AddPisModel.PIS_ProcessID     = pisReworkConfigModel.PIS_ProcessID;
                    AddPisModel.PIS_ProcessName   = pisReworkConfigModel.PIS_ProcessName;
                    AddPisModel.MES_ProcessID     = item.Key.MES_ProcessID;
                    AddPisModel.MES_ProcessName   = item.Value.FirstOrDefault().MES_ProcessName;
                    AddPisModel.ProductQuantity   = item.Value.Count();
                    AddPisModel.ProjectName       = mesRequest.CustomerIDString;
                    AddPisModel.ProcessType       = "PIS-ReWork";
                    var result = mes_Service.AddMesData(AddPisModel);
                    if (!result)
                    {
                        isSendEMail = true;
                    }
                }

                if (isAddFailRecord)
                {
                    //发邮件记日志
                    if (isSendEMail)
                    {
                        AddMESSyncFailedLog("MES_PIS", "MES数据自动同步", mesRequest);
                    }
                }
                else
                {
                    AddLog("无数据", "没有获取到对应配置的数据", mesRequest);
                }
            }
            catch (Exception ex)
            {
                AddLog("Failed", "AddPIS", mesRequest);
            }
        }