137 lines
5.6 KiB
C#
137 lines
5.6 KiB
C#
|
|
using APT.BaseData.Domain.Entities;
|
|||
|
|
using APT.BaseData.Domain.IServices;
|
|||
|
|
using APT.Infrastructure.Core;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using APT.Utility;
|
|||
|
|
using APT.Infrastructure.Api;
|
|||
|
|
using APT.Migrations;
|
|||
|
|
using APT.BaseData.Domain.Entities.OP;
|
|||
|
|
using APT.BaseData.Domain.Enums.OP;
|
|||
|
|
using APT.BaseData.Domain.Entities.FM;
|
|||
|
|
using APT.BaseData.Domain.IServices.OP;
|
|||
|
|
using APT.BaseData.Domain.Enums.PF;
|
|||
|
|
|
|||
|
|
namespace APT.PF.WebApiControllers.Api.PF
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 通知
|
|||
|
|
/// </summary>
|
|||
|
|
[Route("api/PF/PFNotice")]
|
|||
|
|
public class PFNoticeController : AuthorizeApiController<T_PF_NOTICE>
|
|||
|
|
{
|
|||
|
|
IOPTenantDBConnService ConnService { get; set; }
|
|||
|
|
/// <summary>
|
|||
|
|
///
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="connService"></param>
|
|||
|
|
public PFNoticeController(IOPTenantDBConnService connService)
|
|||
|
|
{
|
|||
|
|
ConnService = connService;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新或新增数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="entity">对象实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdate")]
|
|||
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_PF_NOTICE entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
//如果是总部 同步修改 子公司
|
|||
|
|
var Files = entity.Nav_Files;
|
|||
|
|
entity.Nav_Files = null;
|
|||
|
|
entity.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
|
|||
|
|
if (entity.CREATER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
var userLogin = GetEntity<T_FM_USER>(entity.CREATER_ID.Value, "Nav_Department");
|
|||
|
|
entity.CREATE_NAME = userLogin.NAME;//冗余赋值 给查看
|
|||
|
|
entity.DEPARTMENT_ID = userLogin.DEPARTMENT_ID;
|
|||
|
|
entity.CREATE_DEPARTMENT = userLogin.Nav_Department?.NAME;//冗余赋值 给子公司查看
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (Files != null && Files.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Files);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (entity.ISTOCHILE && entity.STATUS == PFStandardStatus.Archived)
|
|||
|
|
{
|
|||
|
|
IEnumerable<T_PF_IMG_FILE> IlistImgs = null;
|
|||
|
|
List<T_PF_FILE> listFile = null;
|
|||
|
|
if (Files != null && Files.Count() > 0)
|
|||
|
|
{
|
|||
|
|
var listIMGIDS = Files.Select(e => e.IMG_FILE_ID);
|
|||
|
|
IlistImgs = GetEntities<T_PF_IMG_FILE>(e => listIMGIDS.Contains(e.ID), null, "Nav_File");
|
|||
|
|
listFile = new List<T_PF_FILE>();
|
|||
|
|
foreach (var item in IlistImgs)
|
|||
|
|
{
|
|||
|
|
listFile.Add(item.Nav_File);
|
|||
|
|
item.Nav_File = null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Dictionary<Guid, string> dicORGCONN = ConnService.GetConnDictionary(entity.ORG_ID);
|
|||
|
|
entity.DEPARTMENT_ID = null; //组织清空 子公司不会有对应的ID 或者改为公司ID?
|
|||
|
|
foreach (var itemConn in dicORGCONN)
|
|||
|
|
{
|
|||
|
|
using (var context = new MigrationContext(itemConn.Value))
|
|||
|
|
{
|
|||
|
|
entity.ISHEAD = true;
|
|||
|
|
entity.ORG_ID = itemConn.Key;
|
|||
|
|
if (Files != null && Files.Any())
|
|||
|
|
{
|
|||
|
|
foreach (var item in Files)
|
|||
|
|
{
|
|||
|
|
item.ORG_ID = itemConn.Key;
|
|||
|
|
}
|
|||
|
|
foreach (var item in IlistImgs)
|
|||
|
|
{
|
|||
|
|
item.ORG_ID = itemConn.Key;
|
|||
|
|
}
|
|||
|
|
foreach (var item in listFile)
|
|||
|
|
{
|
|||
|
|
item.ORG_ID = itemConn.Key;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
context.AddEntity(entity);
|
|||
|
|
if (Files != null && Files.Any())
|
|||
|
|
{
|
|||
|
|
context.AddEntities(Files);
|
|||
|
|
context.AddEntities(IlistImgs);
|
|||
|
|
context.AddEntities(listFile);
|
|||
|
|
}
|
|||
|
|
context.SaveChanges();
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
context.Update(entity);
|
|||
|
|
if (Files != null && Files.Any())
|
|||
|
|
{
|
|||
|
|
context.UpdateEntities(Files);
|
|||
|
|
context.UpdateEntities(IlistImgs);
|
|||
|
|
context.UpdateEntities(listFile);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch { }
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|