222 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			222 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using APT.Infrastructure.Core;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.ApiModel;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Entities.FM;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices.FM;
							 | 
						|||
| 
								 | 
							
								using APT.Utility;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Linq.Expressions;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Immutable;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Entities;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.Infrastructure.Api;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.PF;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Dtos;
							 | 
						|||
| 
								 | 
							
								using Castle.Core.Internal;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.BaseData.Services.Services.FM
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class FMSyncLogDetailService : CommonService, IFMSyncLogDetailService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public FMSyncLogDetailService(IRepository repository)
							 | 
						|||
| 
								 | 
							
								            : base(repository)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取日志单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public T_FM_SYNC_LOG GetSyncLog(IDictionary<object, object?> Items, Guid? ORG_ID, string API_NAME, string SYNC_PARAM, SyncLogType? SyncLogType, int DATA_COUNT = 0)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Guid SNC_LOG_ID = (Guid)Items["syncID"];
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG model = new T_FM_SYNC_LOG();
							 | 
						|||
| 
								 | 
							
								            model.ID = SNC_LOG_ID;
							 | 
						|||
| 
								 | 
							
								            model.START_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            model.LOGTYPE = SyncLogType;
							 | 
						|||
| 
								 | 
							
								            model.API_NAME = API_NAME;
							 | 
						|||
| 
								 | 
							
								            model.DATA_COUNT = DATA_COUNT;
							 | 
						|||
| 
								 | 
							
								            model.IS_DELETED = false;
							 | 
						|||
| 
								 | 
							
								            model.ORG_ID = ORG_ID;
							 | 
						|||
| 
								 | 
							
								            model.SYNC_PARAM = SYNC_PARAM;
							 | 
						|||
| 
								 | 
							
								            model.CREATE_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            model.MODIFY_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            return model;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取日志明细
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public T_FM_SYNC_LOG_DETAIL GetSyncLogDetail(IDictionary<object, object?> Items, string TRACEIDENTIFIER, Guid? ORG_ID, int Count, string REMARK, SyncLogType? SyncLogType = null, Guid? SNC_LOG_ID = null)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (SNC_LOG_ID == null && Items != null && Items.ContainsKey("syncID"))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                try
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    SNC_LOG_ID = (Guid)Items["syncID"];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                catch { }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (SNC_LOG_ID == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                SNC_LOG_ID = Guid.Empty;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG_DETAIL model = new T_FM_SYNC_LOG_DETAIL();
							 | 
						|||
| 
								 | 
							
								            model.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								            model.SNC_LOG_ID = SNC_LOG_ID.Value;
							 | 
						|||
| 
								 | 
							
								            model.LOGTYPE = SyncLogType;
							 | 
						|||
| 
								 | 
							
								            model.COUNT = Count;
							 | 
						|||
| 
								 | 
							
								            model.REMARK = REMARK;
							 | 
						|||
| 
								 | 
							
								            model.IS_DELETED = false;
							 | 
						|||
| 
								 | 
							
								            model.ORG_ID = ORG_ID;
							 | 
						|||
| 
								 | 
							
								            model.CREATE_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            model.MODIFY_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            model.TRACEIDENTIFIER = TRACEIDENTIFIER;
							 | 
						|||
| 
								 | 
							
								            return model;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入跑批日志
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ORG_ID"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="API_NAME"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="SYNC_PARAM"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="DATA_COUNT"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public bool InsertSyncLog(IDictionary<object, object?> Items, Guid? ORG_ID, string API_NAME, string SYNC_PARAM, SyncLogType? SyncLogType, int DATA_COUNT = 0)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG model = GetSyncLog(Items, ORG_ID, API_NAME, SYNC_PARAM, SyncLogType, DATA_COUNT);
							 | 
						|||
| 
								 | 
							
								            this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UpdateEntityNoCommit(model);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="model"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public bool InsertSyncLog(T_FM_SYNC_LOG model)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            model.END_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								            this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UpdateEntityNoCommit(model);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入跑批日志明细
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="SNC_LOG_ID"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ORG_ID"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="Count"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="REMARK"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public bool InsertSyncLogDetail(IDictionary<object, object?> Items, string TRACEIDENTIFIER, Guid? ORG_ID, int Count, string REMARK, SyncLogType? SyncLogType = null, Guid? SNC_LOG_ID = null)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG_DETAIL model = GetSyncLogDetail(Items, TRACEIDENTIFIER, ORG_ID, Count, REMARK, SyncLogType, SNC_LOG_ID);
							 | 
						|||
| 
								 | 
							
								            this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UpdateEntityNoCommit(model);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入跑批日志信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="API_NAME"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="TRACEIDENTIFIER"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="LogID"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ORG_ID"></param>
							 | 
						|||
| 
								 | 
							
								        public T_FM_SYNC_LOG InsertSyncLog(string API_NAME, string TRACEIDENTIFIER, Guid LogID, Guid? ORG_ID, string SYNC_PARAM)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ID = LogID,
							 | 
						|||
| 
								 | 
							
								                START_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                END_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                API_NAME = API_NAME,
							 | 
						|||
| 
								 | 
							
								                DATA_COUNT = 0,
							 | 
						|||
| 
								 | 
							
								                IS_SUCCESS = true,
							 | 
						|||
| 
								 | 
							
								                IS_DELETED = false,
							 | 
						|||
| 
								 | 
							
								                ORG_ID = ORG_ID,
							 | 
						|||
| 
								 | 
							
								                ENTITY_ORG_TPYE = 0,
							 | 
						|||
| 
								 | 
							
								                FLOW_STATUS = 0,
							 | 
						|||
| 
								 | 
							
								                FLOW_SEND_STATUS = 0,
							 | 
						|||
| 
								 | 
							
								                CREATE_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                MODIFY_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                TRACEIDENTIFIER = TRACEIDENTIFIER,
							 | 
						|||
| 
								 | 
							
								                ISINSERT = false,
							 | 
						|||
| 
								 | 
							
								                //FLOW_ID = ID,
							 | 
						|||
| 
								 | 
							
								                //FORM_ID = ID,
							 | 
						|||
| 
								 | 
							
								                //CREATER_ID = ID,
							 | 
						|||
| 
								 | 
							
								                //MODIFIER_ID = ID,
							 | 
						|||
| 
								 | 
							
								                SYNC_PARAM = SYNC_PARAM,
							 | 
						|||
| 
								 | 
							
								                //LOGTYPE = ID,
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								            this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UpdateEntityNoCommit(log);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            return log;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 插入 API 耗时
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="API_NAME"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="TRACEIDENTIFIER"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="TRACEIDENTIFIERED"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ORG_ID"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="START_TIME"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="END_TIME"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public T_FM_SYNC_LOG InsertAPISyncLog(string API_NAME, string TRACEIDENTIFIER, string TRACEIDENTIFIERED, Guid? ORG_ID, DateTime START_TIME, DateTime END_TIME)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ID = Guid.NewGuid(),
							 | 
						|||
| 
								 | 
							
								                START_TIME = START_TIME,
							 | 
						|||
| 
								 | 
							
								                END_TIME = END_TIME,
							 | 
						|||
| 
								 | 
							
								                API_NAME = API_NAME,
							 | 
						|||
| 
								 | 
							
								                DATA_COUNT = 0,
							 | 
						|||
| 
								 | 
							
								                IS_SUCCESS = true,
							 | 
						|||
| 
								 | 
							
								                IS_DELETED = false,
							 | 
						|||
| 
								 | 
							
								                ORG_ID = ORG_ID,
							 | 
						|||
| 
								 | 
							
								                ENTITY_ORG_TPYE = 0,
							 | 
						|||
| 
								 | 
							
								                FLOW_STATUS = 0,
							 | 
						|||
| 
								 | 
							
								                FLOW_SEND_STATUS = 0,
							 | 
						|||
| 
								 | 
							
								                CREATE_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                //MODIFY_TIME = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                TRACEIDENTIFIER = TRACEIDENTIFIER,
							 | 
						|||
| 
								 | 
							
								                TRACEIDENTIFIERED = TRACEIDENTIFIERED,
							 | 
						|||
| 
								 | 
							
								                ISINSERT = false,
							 | 
						|||
| 
								 | 
							
								                LOGTYPE = SyncLogType.APITimeResponsen,
							 | 
						|||
| 
								 | 
							
								                //FLOW_ID = ID,
							 | 
						|||
| 
								 | 
							
								                //FORM_ID = ID,
							 | 
						|||
| 
								 | 
							
								                CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
							 | 
						|||
| 
								 | 
							
								                //MODIFIER_ID = ID,
							 | 
						|||
| 
								 | 
							
								                //SYNC_PARAM = SYNC_PARAM,
							 | 
						|||
| 
								 | 
							
								                //LOGTYPE = ID,
							 | 
						|||
| 
								 | 
							
								                SYNC_PARAM = (END_TIME - START_TIME).TotalSeconds.ToString()
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                UpdateEntityNoCommit(log);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								            return log;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |