Show / Hide Table of Contents

Связи сущности "Подразделение" в системе EAM (Приемник)

ПроизводственнаяЕдиница

  • Полное имя: PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница
  • Отслеживаемые операции: Не задано
  • Major: True

Сопоставление

Сопоставление свойств dept в EAM_01.ПроизводственнаяЕдиница

Свойство приложения Тип свойства приложения Свойство модели Тип свойства модели Не используется
Код Свойство code Свойство False
Наименование Свойство name Свойство False
Вышестоящий Свойство parent_id Свойство False
ДатаВвода Свойство date_in Свойство False
ДатаСнятия Свойство date_out Свойство False

После сопоставления

  
LogService.Info("После сопоставления (B): dept");

//
ISession Session = context.GetSession(true);
var cache = context.GetEsbCache(true);

// Учет ограничения по длине строки для наименования
if (MainEntity.name != null && MainEntity.name.Length > 300)
  AppEntity.Наименование = MainEntity.name.Substring(0, 300);
else
  AppEntity.Наименование = MainEntity.name;

// Перенесоно в скрипт "Получение объекта"
//// Установка уровня ПЕ
//if (MainEntity.dept_type == 0)
//  AppEntity.УровеньПЕ = PromAktiv.Core.CD.Module.RES.УровеньПЕ.Подразделение;
//else
//  AppEntity.УровеньПЕ = PromAktiv.Core.CD.Module.RES.УровеньПЕ.МестоХранения;

// Перенесоно в скрипт "Получение объекта"
//// Установка статуса объекта
//if ((MainEntity.status != null) && (MainEntity.status != 0))
//  AppEntity.СтатусОбъекта = Xafari.BC.StatusTypes.Archive;
//else
//  AppEntity.СтатусОбъекта = Xafari.BC.StatusTypes.Published;

// Установка графика работы, если не задан
if (AppEntity.График == null)
{
  var график = AppEntity.Session.FindObject<PromAktiv.Core.CD.Module.RES.Calendar.ГрафикРаботы>(
    DevExpress.Data.Filtering.CriteriaOperator.Parse("Наименование = ?", "Стандартный график работы предприятия"));

  AppEntity.График = график;
} 

// Установка/сброс ссылки на объект МВЗ
var мвз = AppEntity.Session.FindObject<PromAktiv.Cost.Module.МВЗ>(
  DevExpress.Data.Filtering.CriteriaOperator.Parse("Код = ?", AppEntity.Код));

if (мвз == null)
{
  if (AppEntity.CostLocation != null)
    AppEntity.CostLocation = null;
}
else
{
  if (мвз.СтатусОбъекта == Xafari.BC.StatusTypes.Archive)
  {
    if (AppEntity.CostLocation != null)
      AppEntity.CostLocation = null;
  }
  else
  {
    if (AppEntity.CostLocation != мвз)
      AppEntity.CostLocation = мвз;
  }
}

// ПИР 102.206326
// Анализ признака "Используется в EAM"
if (MainEntity.eam_used != 1)
  AppEntity.СтатусОбъекта = Xafari.BC.StatusTypes.Archive;
else
  AppEntity.СтатусОбъекта = Xafari.BC.StatusTypes.Published;

//16.07.2019 (B) перенос атрибута "Уровень подразделения"
if (!string.IsNullOrEmpty(MainEntity.level))
{  
   Int16 iEnumValue = 0;

   if (Int16.TryParse(MainEntity.level, out iEnumValue))
   {
     if (iEnumValue == 0  || 
         iEnumValue == 10 ||
         iEnumValue == 20 || 
         iEnumValue == 30 ||
         iEnumValue == 40 ||
         iEnumValue == 50 ||
         iEnumValue == 60 ||
         iEnumValue == 61)
        AppEntity.УровеньПЕ = (PromAktiv.Core.CD.Module.RES.УровеньПЕ)System.Enum.ToObject(typeof(PromAktiv.Core.CD.Module.RES.УровеньПЕ), iEnumValue);
     else
        LogService.Info("После сопоставления (D--1): dept => Недопустимое значение нумератора: {0}", iEnumValue);
   }
   else
   {
      LogService.Info("После сопоставления (D--2): dept => Ошибка конвертации значения нумератора: {0}", MainEntity.level);
   }
}
//16.07.2019 (E) перенос атрибута "Уровень подразделения"

// Заполнение коллекции связанных ОТП
var otps = context.Mapper.Map<List<PromAktiv.Core.CD.Module.RES.OwnershipInManufUnit>>(
  MainEntity.otp_collections,
  options => 
  { 
    options.Items.Add("esbCache", cache);
    options.Items.Add("session", Session); 
  });

LogService.Info("После сопоставления (E): dept");

Получение объекта

  
LogService.Info("Получение объекта (B): dept");

//
Result.CreationHandled = false; // Не финальная обработка
Result.CreatedObject = restier.CreateAppEntity<PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница>(Session);

// Установка уровня ПЕ
if (MainEntity.dept_type == 0)
  ((PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница)Result.CreatedObject).УровеньПЕ = PromAktiv.Core.CD.Module.RES.УровеньПЕ.РабочийЦентр; // В ТН это "Подразделение"
else
  ((PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница)Result.CreatedObject).УровеньПЕ = PromAktiv.Core.CD.Module.RES.УровеньПЕ.МестоХранения;

// ПИР 102.206326 (код ниже неактуален)
//// Установка статуса объекта "Неактивный"
//((PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница)Result.CreatedObject).СтатусОбъекта = Xafari.BC.StatusTypes.Draft;

restier.SaveChanges(Session);

// Запись в таблицу EntityKey    
var oid = restier.GetKey(Session, Result.CreatedObject);

if (!String.IsNullOrEmpty(oid))
{
  var mainEntityTypeId = locator.GetMainEntityTypeId(typeof(#currentModelNS#.dept));
  var appEntityTypeId = locator.GetAppEntityTypeId(parameters.AdapterId, typeof(PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница));

  locator.GetOrAddAppEntityKey(mainEntityTypeId, MainEntity.object_id, appEntityTypeId, oid);
}
    
LogService.Info("Получение объекта (E): dept");
  • Improve this Doc
In This Article
Back to top Все права защищены (C) 1994-2022 ООО Топ Софт.