Связи сущности "Подразделение" в системе EAM (Приемник)
ПроизводственнаяЕдиница
- Полное имя:
PromAktiv.Core.CD.Module.RES.ПроизводственнаяЕдиница
- Отслеживаемые операции:
Не задано
- Major:
True
Сопоставление
Свойство приложения |
Тип свойства приложения |
Свойство модели |
Тип свойства модели |
Не используется |
Код |
Свойство |
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");