Exemple #1
0
 private void CallBackProc(IntPtr hwo, MM_MSG uMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2)
 {
     if (uMsg == MM_MSG.MM_WOM_DONE)
     {
         lock (_queueIn)
         {
             InItem inItem = _queueIn[0];
             inItem.ReleaseData();
             _queueIn.RemoveAt(0);
             _queueOut.Add(inItem);
             while (_queueIn.Count > 0)
             {
                 inItem = _queueIn[0];
                 if (inItem._waveHeader != null)
                 {
                     break;
                 }
                 if (_asyncDispatch != null && !_aborted)
                 {
                     _asyncDispatch.Post(inItem._userData);
                 }
                 _queueIn.RemoveAt(0);
             }
         }
         if (_queueIn.Count == 0)
         {
             _evt.Set();
         }
     }
 }
Exemple #2
0
        public void ExecuteInDatastore()
        {
            if (Relationship is not null)
            {
                InDatastoreLogic(Relationship);
            }
            else
            {
                /*
                 *       Parent Nullable       0 to Many
                 *  (Account)-[HAS_EXTERNAL_REF]->(ExternalReference)
                 *
                 *       0 to Many      NOT NULL
                 *  (Account)-[HAS_PARENT]-(Account)
                 *
                 * Transaction:
                 *  - Delete Account
                 *  - Delete External References
                 *  - Commit
                 */

                Entity?entity = InItem?.GetEntity();
                if (entity is not null)
                {
                    foreach (var relationship in entity.Parent.Relations)
                    {
                        InDatastoreLogic(relationship);
                    }
                }
            }
        }
Exemple #3
0
        public void ExecuteInMemory(Core.EntityCollectionBase target)
        {
            if (!target.IsLoaded)
            {
                return;
            }

            if (Relationship != null)
            {
                if (Relationship.Name != target.Relationship.Name)
                {
                    return;
                }

                if (ActsOnSpecificParent())
                {
                    if (target.Parent != target.ParentItem(this))
                    {
                        return;
                    }
                }
            }
            else
            {
                Entity entity    = InItem.GetEntity();
                bool   shouldRun = false;
                if (target.ParentEntity == entity)
                {
                    shouldRun = true;
                    if (target.ForeignProperty != null && !target.ForeignProperty.Nullable)
                    {
                        return;
                    }
                }
                if (target.ForeignEntity == entity)
                {
                    shouldRun = true;
                    if (target.ParentProperty != null && !target.ParentProperty.Nullable)
                    {
                        return;
                    }
                }
                if (!shouldRun)
                {
                    return;
                }
            }
            InMemoryLogic(target);
        }
    // ListObject안의 Item 셋팅
    private void AddListInItem()
    {
        InItem itemTemp;

        for (int i = 0; i < PlayerInformation.drumSoundCount; i++)
        {
            itemTemp = new InItem();

            itemTemp.soundName     = PlayerInformation.soundNameList[i];
            itemTemp.soundFileName = PlayerInformation.soundFileNameList[i];
            itemTemp.OnToggleClick = new Toggle.ToggleEvent();
            itemTemp.OnToggleClick.AddListener(delegate { ToggleClick_Result(); });

            // 리스트뷰의 항목인 Item을 만들어서 ItemList에 추가한다.
            toggleItemList.Add(itemTemp);
        }
    }
    // 기존의 리스트뷰에 새로 추가한 노래의 리스트를 넣는다.
    public void AddDrumListViewItem()
    {
        InItem itemTemp = new InItem();

        itemTemp.soundName     = PlayerInformation.soundNameList[PlayerInformation.soundNameList.Count - 1];
        itemTemp.soundFileName = PlayerInformation.soundFileNameList[PlayerInformation.soundFileNameList.Count - 1];
        itemTemp.OnToggleClick = new Toggle.ToggleEvent();
        // 이벤트는 ListViewController에 있는 ItemClick_Result()를 가져와야 한다.
        itemTemp.OnToggleClick.AddListener(delegate { GameObject.Find("Left Drum Sound List Manager").GetComponent <DrumSoundListViewManager>().ToggleClick_Result(); });

        GameObject toggleItemTemp;
        ToggleItem itemobjectTemp;
        int        AddDrumSoundLoop = 2;

        for (int i = 0; i < AddDrumSoundLoop; i++)
        {
            //추가할 오브젝트를 생성한다.
            toggleItemTemp = Instantiate(this.toggleItem) as GameObject;
            //오브젝트가 가지고 있는 'ToggleItem'를 찾는다.
            itemobjectTemp = toggleItemTemp.GetComponent <ToggleItem>();

            //각 속성 입력
            itemobjectTemp.soundsName.text     = itemTemp.soundName;
            itemobjectTemp.soundFileName.text  = itemTemp.soundFileName;
            itemobjectTemp.item.onValueChanged = itemTemp.OnToggleClick;

            if (i % 2 == 0)
            {
                itemobjectTemp.item.group = leftToggleGroup;
                toggleItemTemp.transform.SetParent(this.leftDrumContent);
            }
            else
            {
                itemobjectTemp.item.group = rightToggleGroup;
                toggleItemTemp.transform.SetParent(this.rightDrumContent);
            }

            // 스케일을 1로 지정한다 이것을 추가하지 않으면 프리팹의 스케일이 너무 커짐.
            toggleItemTemp.transform.localScale = Vector3.one;
        }
    }
Exemple #6
0
        public void ExecuteInDatastore()
        {
            if (Relationship != null)
            {
                InDatastoreLogic(Relationship);
            }
            else
            {
                Entity entity = InItem.GetEntity();
                foreach (var relationship in entity.Parent.Relations)
                {
                    bool shouldRun = false;
                    if (entity.IsSelfOrSubclassOf(relationship.InEntity))
                    {
                        shouldRun = true;
                        if (relationship.OutProperty != null && !relationship.OutProperty.Nullable)
                        {
                            continue;
                        }
                    }
                    if (entity.IsSelfOrSubclassOf(relationship.OutEntity))
                    {
                        shouldRun = true;
                        if (relationship.InProperty != null && !relationship.InProperty.Nullable)
                        {
                            continue;
                        }
                    }
                    if (!shouldRun)
                    {
                        continue;
                    }

                    InDatastoreLogic(relationship);
                }
            }
        }
Exemple #7
0
 internal override void Play(byte[] buffer)
 {
     if (_deviceOpen)
     {
         int num = buffer.Length;
         _bytesWritten += num;
         WaveHeader waveHeader = new WaveHeader(buffer);
         GCHandle   wAVEHDR    = waveHeader.WAVEHDR;
         MMSYSERR   mMSYSERR   = SafeNativeMethods.waveOutPrepareHeader(_hwo, wAVEHDR.AddrOfPinnedObject(), waveHeader.SizeHDR);
         if (mMSYSERR != 0)
         {
             throw new AudioException(mMSYSERR);
         }
         lock (_noWriteOutLock)
         {
             if (!_aborted)
             {
                 lock (_queueIn)
                 {
                     InItem item = new InItem(waveHeader);
                     _queueIn.Add(item);
                     _evt.Reset();
                 }
                 mMSYSERR = SafeNativeMethods.waveOutWrite(_hwo, wAVEHDR.AddrOfPinnedObject(), waveHeader.SizeHDR);
                 if (mMSYSERR != 0)
                 {
                     lock (_queueIn)
                     {
                         _queueIn.RemoveAt(_queueIn.Count - 1);
                         throw new AudioException(mMSYSERR);
                     }
                 }
             }
         }
     }
 }
Exemple #8
0
        /// <summary>
        /// 载入配置文件
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static int LoadConfig(ref Config config)
        {
            //载入配置文件
            string result = Utils.LoadResource(Utils.GetPath(configRes));

            if (!Utils.IsNullOrEmpty(result))
            {
                //转成Json
                config = Utils.FromJson <Config>(result);
            }
            if (config == null)
            {
                config            = new Config();
                config.index      = -1;
                config.logEnabled = false;
                config.loglevel   = "warning";
                config.vmess      = new List <VmessItem>();

                //Mux
                config.muxEnabled = true;

                ////默认监听端口
                //config.pacPort = 8888;

                // 默认缓存七天
                config.CacheDays = 7;

                // 默认不开启统计
                config.enableStatistics = false;

                // 默认中等刷新率
                config.statisticsFreshRate = (int)Global.StatisticsFreshRate.medium;
            }

            //本地监听
            if (config.inbound == null)
            {
                config.inbound = new List <InItem>();
                InItem inItem = new InItem();
                inItem.protocol        = "socks";
                inItem.localPort       = 10808;
                inItem.udpEnabled      = true;
                inItem.sniffingEnabled = true;

                config.inbound.Add(inItem);

                //inItem = new InItem();
                //inItem.protocol = "http";
                //inItem.localPort = 1081;
                //inItem.udpEnabled = true;

                //config.inbound.Add(inItem);
            }
            else
            {
                //http协议不由core提供,只保留socks
                if (config.inbound.Count > 0)
                {
                    config.inbound[0].protocol = "socks";
                }
            }
            //路由规则
            if (Utils.IsNullOrEmpty(config.domainStrategy))
            {
                config.domainStrategy = "IPIfNonMatch";
            }
            if (Utils.IsNullOrEmpty(config.routingMode))
            {
                config.routingMode = "0";
            }
            if (config.useragent == null)
            {
                config.useragent = new List <string>();
            }
            if (config.userdirect == null)
            {
                config.userdirect = new List <string>();
            }
            if (config.userblock == null)
            {
                config.userblock = new List <string>();
            }
            //kcp
            if (config.kcpItem == null)
            {
                config.kcpItem                  = new KcpItem();
                config.kcpItem.mtu              = 1350;
                config.kcpItem.tti              = 50;
                config.kcpItem.uplinkCapacity   = 12;
                config.kcpItem.downlinkCapacity = 100;
                config.kcpItem.readBufferSize   = 2;
                config.kcpItem.writeBufferSize  = 2;
                config.kcpItem.congestion       = false;
            }
            if (config.uiItem == null)
            {
                config.uiItem = new UIItem();
            }
            //// 如果是用户升级,首次会有端口号为0的情况,不可用,这里处理
            //if (config.pacPort == 0)
            //{
            //    config.pacPort = 8888;
            //}

            if (config.subItem == null)
            {
                config.subItem = new List <SubItem>();
            }

            if (config == null ||
                config.index < 0 ||
                config.vmess.Count <= 0 ||
                config.index > config.vmess.Count - 1
                )
            {
                Global.reloadV2ray = false;
            }
            else
            {
                Global.reloadV2ray = true;

                //版本升级
                for (int i = 0; i < config.vmess.Count; i++)
                {
                    VmessItem vmessItem = config.vmess[i];
                    UpgradeServerVersion(ref vmessItem);
                }
            }

            return(0);
        }
Exemple #9
0
        /// <summary>
        /// 载入配置文件
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static int LoadConfig(ref Config config)
        {
            //载入配置文件
            string result = Utils.LoadResource(Utils.GetPath(configRes));

            if (!Utils.IsNullOrEmpty(result))
            {
                //转成Json
                config = Utils.FromJson <Config>(result);
            }
            else
            {
                if (File.Exists(Utils.GetPath(configRes)))
                {
                    Utils.SaveLog("LoadConfig Exception");
                    return(-1);
                }
            }

            if (config == null)
            {
                config = new Config
                {
                    logEnabled = false,
                    loglevel   = "warning",
                    vmess      = new List <VmessItem>(),

                    //Mux
                    muxEnabled = false,

                    // 默认不开启统计
                    enableStatistics = false,

                    // 默认中等刷新率
                    statisticsFreshRate = (int)Global.StatisticsFreshRate.medium,

                    enableRoutingAdvanced = true
                };
            }

            //本地监听
            if (config.inbound == null)
            {
                config.inbound = new List <InItem>();
                InItem inItem = new InItem
                {
                    protocol        = Global.InboundSocks,
                    localPort       = 10808,
                    udpEnabled      = true,
                    sniffingEnabled = true
                };

                config.inbound.Add(inItem);

                //inItem = new InItem();
                //inItem.protocol = "http";
                //inItem.localPort = 1081;
                //inItem.udpEnabled = true;

                //config.inbound.Add(inItem);
            }
            else
            {
                if (config.inbound.Count > 0)
                {
                    config.inbound[0].protocol = Global.InboundSocks;
                }
            }
            //路由规则
            if (Utils.IsNullOrEmpty(config.domainStrategy))
            {
                config.domainStrategy = "IPIfNonMatch";
            }
            if (Utils.IsNullOrEmpty(config.domainMatcher))
            {
                config.domainMatcher = "linear";
            }

            //kcp
            if (config.kcpItem == null)
            {
                config.kcpItem = new KcpItem
                {
                    mtu              = 1350,
                    tti              = 50,
                    uplinkCapacity   = 12,
                    downlinkCapacity = 100,
                    readBufferSize   = 2,
                    writeBufferSize  = 2,
                    congestion       = false
                };
            }
            if (config.uiItem == null)
            {
                config.uiItem = new UIItem()
                {
                    enableAutoAdjustMainLvColWidth = true
                };
            }
            if (config.uiItem.mainLvColWidth == null)
            {
                config.uiItem.mainLvColWidth = new Dictionary <string, int>();
            }


            if (config.constItem == null)
            {
                config.constItem = new ConstItem();
            }
            if (Utils.IsNullOrEmpty(config.constItem.speedTestUrl))
            {
                config.constItem.speedTestUrl = Global.SpeedTestUrl;
            }
            if (Utils.IsNullOrEmpty(config.constItem.speedPingTestUrl))
            {
                config.constItem.speedPingTestUrl = Global.SpeedPingTestUrl;
            }
            if (Utils.IsNullOrEmpty(config.constItem.defIEProxyExceptions))
            {
                config.constItem.defIEProxyExceptions = Global.IEProxyExceptions;
            }
            //if (Utils.IsNullOrEmpty(config.remoteDNS))
            //{
            //    config.remoteDNS = "1.1.1.1";
            //}

            if (config.subItem == null)
            {
                config.subItem = new List <SubItem>();
            }
            if (config.groupItem == null)
            {
                config.groupItem = new List <GroupItem>();
            }


            if (config == null ||
                config.vmess.Count <= 0
                )
            {
                Global.reloadV2ray = false;
            }
            else
            {
                Global.reloadV2ray = true;

                //版本升级
                for (int i = 0; i < config.vmess.Count; i++)
                {
                    VmessItem vmessItem = config.vmess[i];
                    UpgradeServerVersion(ref vmessItem);

                    if (Utils.IsNullOrEmpty(vmessItem.indexId))
                    {
                        vmessItem.indexId = Utils.GetGUID(false);
                    }
                }
            }

            LazyConfig.Instance.SetConfig(ref config);
            return(0);
        }
Exemple #10
0
        /// <summary>
        /// 载入配置文件
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static int LoadConfig(ref Config config)
        {
            //载入配置文件
            string result = Utils.LoadResource(Utils.GetPath(configRes));

            if (!Utils.IsNullOrEmpty(result))
            {
                //转成Json
                config = Utils.FromJson <Config>(result);
            }
            if (config == null)
            {
                config = new Config
                {
                    index      = -1,
                    logEnabled = false,
                    loglevel   = "warning",
                    vmess      = new List <VmessItem>(),

                    //Mux
                    muxEnabled = true,

                    ////默认监听端口
                    //config.pacPort = 8888;

                    // 默认不开启统计
                    enableStatistics = false,

                    // 默认中等刷新率
                    statisticsFreshRate = (int)Global.StatisticsFreshRate.medium
                };
            }

            //本地监听
            if (config.inbound == null)
            {
                config.inbound = new List <InItem>();
                InItem inItem = new InItem
                {
                    protocol        = Global.InboundSocks,
                    localPort       = 10808,
                    udpEnabled      = true,
                    sniffingEnabled = true
                };

                config.inbound.Add(inItem);

                //inItem = new InItem();
                //inItem.protocol = "http";
                //inItem.localPort = 1081;
                //inItem.udpEnabled = true;

                //config.inbound.Add(inItem);
            }
            else
            {
                //http协议不由core提供,只保留socks
                if (config.inbound.Count > 0)
                {
                    config.inbound[0].protocol = Global.InboundSocks;
                }
            }
            //路由规则
            if (Utils.IsNullOrEmpty(config.domainStrategy))
            {
                config.domainStrategy = "IPIfNonMatch";
            }
            if (Utils.IsNullOrEmpty(config.routingMode))
            {
                config.routingMode = "0";
            }
            if (config.useragent == null)
            {
                config.useragent = new List <string>();
            }
            if (config.userdirect == null)
            {
                config.userdirect = new List <string>();
            }
            if (config.userblock == null)
            {
                config.userblock = new List <string>();
            }
            //kcp
            if (config.kcpItem == null)
            {
                config.kcpItem = new KcpItem
                {
                    mtu              = 1350,
                    tti              = 50,
                    uplinkCapacity   = 12,
                    downlinkCapacity = 100,
                    readBufferSize   = 2,
                    writeBufferSize  = 2,
                    congestion       = false
                };
            }
            if (config.uiItem == null)
            {
                config.uiItem = new UIItem();
            }
            if (config.uiItem.mainLvColWidth == null)
            {
                config.uiItem.mainLvColWidth = new Dictionary <string, int>();
            }

            //// 如果是用户升级,首次会有端口号为0的情况,不可用,这里处理
            //if (config.pacPort == 0)
            //{
            //    config.pacPort = 8888;
            //}
            if (Utils.IsNullOrEmpty(config.speedTestUrl))
            {
                config.speedTestUrl = Global.SpeedTestUrl;
            }
            if (Utils.IsNullOrEmpty(config.speedPingTestUrl))
            {
                config.speedPingTestUrl = Global.SpeedPingTestUrl;
            }
            if (Utils.IsNullOrEmpty(config.urlGFWList))
            {
                config.urlGFWList = Global.GFWLIST_URL;
            }
            //if (Utils.IsNullOrEmpty(config.remoteDNS))
            //{
            //    config.remoteDNS = "1.1.1.1";
            //}
            if (Utils.IsNullOrEmpty(config.defaultAllowInsecure))
            {
                config.defaultAllowInsecure = "false";
            }

            if (config.subItem == null)
            {
                config.subItem = new List <SubItem>();
            }
            if (config.userPacRule == null)
            {
                config.userPacRule = new List <string>();
            }

            if (config == null ||
                config.index < 0 ||
                config.vmess.Count <= 0 ||
                config.index > config.vmess.Count - 1
                )
            {
                Global.reloadV2ray = false;
            }
            else
            {
                Global.reloadV2ray = true;

                //版本升级
                for (int i = 0; i < config.vmess.Count; i++)
                {
                    VmessItem vmessItem = config.vmess[i];
                    UpgradeServerVersion(ref vmessItem);
                }
            }

            return(0);
        }
Exemple #11
0
        /// <summary>
        /// 载入配置文件
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static int LoadConfig(ref Config config)
        {
            //载入配置文件
            string result = Utils.LoadResource(Utils.GetPath(configRes));

            if (!Utils.IsNullOrEmpty(result))
            {
                //转成Json
                config = Utils.FromJson <Config>(result);
            }
            if (config == null)
            {
                config            = new Config();
                config.index      = -1;
                config.logEnabled = false;
                config.loglevel   = "warning";
                config.vmess      = new List <VmessItem>();

                //路由
                config.chinasites = false;
                config.chinaip    = false;

                //Mux
                config.muxEnabled = true;

                ////默认监听端口
                //config.pacPort = 8888;
            }

            //本地监听
            if (config.inbound == null)
            {
                config.inbound = new List <InItem>();
                InItem inItem = new InItem();
                inItem.protocol   = "socks";
                inItem.localPort  = 1080;
                inItem.udpEnabled = true;

                config.inbound.Add(inItem);

                //inItem = new InItem();
                //inItem.protocol = "http";
                //inItem.localPort = 1081;
                //inItem.udpEnabled = true;

                //config.inbound.Add(inItem);
            }
            else
            {
                //http协议不由core提供,只保留socks
                if (config.inbound.Count > 0)
                {
                    config.inbound[0].protocol = "socks";
                }
            }
            //路由规则
            if (config.useragent == null)
            {
                config.useragent = new List <string>();
            }
            if (config.userdirect == null)
            {
                config.userdirect = new List <string>();
            }
            if (config.userblock == null)
            {
                config.userblock = new List <string>();
            }
            //kcp
            if (config.kcpItem == null)
            {
                config.kcpItem                  = new KcpItem();
                config.kcpItem.mtu              = 1350;
                config.kcpItem.tti              = 50;
                config.kcpItem.uplinkCapacity   = 12;
                config.kcpItem.downlinkCapacity = 100;
                config.kcpItem.readBufferSize   = 2;
                config.kcpItem.writeBufferSize  = 2;
                config.kcpItem.congestion       = false;
            }

            //// 如果是用户升级,首次会有端口号为0的情况,不可用,这里处理
            //if (config.pacPort == 0)
            //{
            //    config.pacPort = 8888;
            //}

            if (config == null ||
                config.index < 0 ||
                config.vmess.Count <= 0 ||
                config.index > config.vmess.Count - 1
                )
            {
                Global.reloadV2ray = false;
            }
            else
            {
                Global.reloadV2ray = true;
            }

            return(0);
        }
        public override List <WorkloadChangeandWeight> Do()
        {
            try
            {
                List <FeeItem> items = null;
                if (flag == "all")
                {
                    items = new AllItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }
                else if (flag == "in")
                {
                    items = new InItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }
                else if (flag == "out")
                {
                    items = new OutItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }
                var sumCurrentCount = items?.Where(r => r?.Age == "当期")?.Sum(r => r?.Count.ToDouble()).ToString();
                var sumCurrentFee   = items?.Where(r => r?.Age == "当期")?.Sum(r => r?.Fee.ToDouble()).ToString();
                var sumPeriodCount  = items?.Where(r => r?.Age == "同期")?.Sum(r => r?.Count.ToDouble()).ToString();
                var sumPeriodFee    = items?.Where(r => r?.Age == "同期")?.Sum(r => r?.Fee.ToDouble()).ToString();

                var list     = new List <WorkloadChangeandWeight>();
                var projects = items.Select(r => r.Project).Distinct().ToList();
                projects.ForEach(r =>
                {
                    list.Add(new WorkloadChangeandWeight(sumCurrentCount, sumCurrentFee, sumPeriodCount, sumPeriodFee)
                    {
                        Project         = r,
                        CurrentFee      = items?.FirstOrDefault(s => s.Project == r && s.Age == "当期")?.Fee,
                        PeriodFee       = items?.FirstOrDefault(s => s.Project == r && s.Age == "同期")?.Fee,
                        CurrentWorkload = items?.FirstOrDefault(s => s.Project == r && s.Age == "当期")?.Count,
                        PeriodWorkload  = items?.FirstOrDefault(s => s.Project == r && s.Age == "同期")?.Count,
                    });
                });
                list.Insert(0, new WorkloadChangeandWeight(sumCurrentCount, sumCurrentFee, sumPeriodCount, sumPeriodFee)
                {
                    Project         = "病理科—总计",
                    CurrentFee      = sumCurrentFee,
                    PeriodFee       = sumPeriodFee,
                    CurrentWorkload = sumCurrentCount,
                    PeriodWorkload  = sumPeriodCount
                });
                return(list);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #13
0
        /// <summary>
        /// 载入配置文件
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static int LoadConfig(ref Config config)
        {
            //载入配置文件
            string result = Utils.LoadResource(Utils.GetPath(configRes));

            if (!Utils.IsNullOrEmpty(result))
            {
                //转成Json
                config = Utils.FromJson <Config>(result);
            }
            if (config == null)
            {
                config            = new Config();
                config.index      = -1;
                config.logEnabled = false;
                config.loglevel   = "warning";
                config.vmess      = new List <VmessItem>();

                //路由
                config.chinasites = false;
                config.chinaip    = false;

                //Mux
                config.muxEnabled = true;
            }

            //本地监听
            if (config.inbound == null)
            {
                config.inbound = new List <InItem>();
                InItem inItem = new InItem();
                inItem.protocol   = "socks";
                inItem.localPort  = 1080;
                inItem.udpEnabled = true;

                config.inbound.Add(inItem);
            }
            //路由规则
            if (config.useragent == null)
            {
                config.useragent = new List <string>();
            }
            if (config.userdirect == null)
            {
                config.userdirect = new List <string>();
            }
            if (config.userblock == null)
            {
                config.userblock = new List <string>();
            }

            if (config == null ||
                config.index < 0 ||
                config.vmess.Count <= 0 ||
                config.index > config.vmess.Count - 1
                )
            {
                Global.reloadV2ray = false;
            }
            else
            {
                Global.reloadV2ray = true;
            }

            return(0);
        }
        public override List <ThirtyEightFee> Do()
        {
            List <FeeItem> items = null;

            if (flag == "all")
            {
                items = new AllItem()
                {
                    CurrentStart = currentStart,
                    CurrentEnd   = currentEnd,
                    PeriodStart  = periodStart,
                    PeriodEnd    = periodEnd,
                }.GetData().Item2;
            }
            else if (flag == "in")
            {
                items = new InItem()
                {
                    CurrentStart = currentStart,
                    CurrentEnd   = currentEnd,
                    PeriodStart  = periodStart,
                    PeriodEnd    = periodEnd,
                }.GetData().Item2;
            }
            else if (flag == "out")
            {
                items = new OutItem()
                {
                    CurrentStart = currentStart,
                    CurrentEnd   = currentEnd,
                    PeriodStart  = periodStart,
                    PeriodEnd    = periodEnd,
                }.GetData().Item2;
            }
            var list = new List <ThirtyEightFee>
            {
                new ThirtyEightFee {
                    Project = "1.诊查费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.EXAMINATION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.EXAMINATION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "2.挂号费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.REGISTRATION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.REGISTRATION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "3.床位费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.BED_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.BED_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "4.一般治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.GENERAL_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.GENERAL_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "5.护理治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.NURSING_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.NURSING_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "6.监护及辅助呼吸设备费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.MONITORING_AND_ASSISTED_BREATHING_EQUIPMENT_FEES && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.MONITORING_AND_ASSISTED_BREATHING_EQUIPMENT_FEES && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "7.输氧费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.OXYGEN_DELIVERY_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.OXYGEN_DELIVERY_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "8.护理费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CARE_COSTS && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CARE_COSTS && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "9.其它费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.OTHER_FEES && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.OTHER_FEES && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "10.病理费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.PATHOLOGY_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.PATHOLOGY_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "11.化验费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.LABORATORY_FEES && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.LABORATORY_FEES && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "12.核素检查费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.RADIONUCLIDE_INSPECTION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.RADIONUCLIDE_INSPECTION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "13.超声费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.ULTRASONIC_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.ULTRASONIC_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },


                new ThirtyEightFee {
                    Project = "14.放射费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.RADIATION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.RADIATION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "15.一般检查费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.GENERAL_INSPECTION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.GENERAL_INSPECTION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "16.临床物理治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CLINICAL_PHYSICAL_THERAPY_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CLINICAL_PHYSICAL_THERAPY_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "17.核素治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.NUCLIDE_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.NUCLIDE_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "18.特殊治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.SPECIAL_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.SPECIAL_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "19.精神治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.PSYCHIATRIC_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.PSYCHIATRIC_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "20.麻醉费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.ANESTHESIA_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.ANESTHESIA_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "21.手术费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.SURGERY_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.SURGERY_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "22.介入治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.INTERVENTION_COSTS && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.INTERVENTION_COSTS && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "23.接生费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.BIRTH_PAYMENT && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.BIRTH_PAYMENT && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "24.康复治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.REHABILITATION_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.REHABILITATION_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "25.中医治疗费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CHINESE_MEDICINE_TREATMENT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CHINESE_MEDICINE_TREATMENT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "26.抗菌药物费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.ANTIBACTERIAL_DRUG_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.ANTIBACTERIAL_DRUG_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "27.西药费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.WESTERN_MEDICINE_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.WESTERN_MEDICINE_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "28.中成药费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CHINESE_MEDICINE_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CHINESE_MEDICINE_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "29.中草药费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "30.输血费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.BLOOD_TRANSFUSION_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.BLOOD_TRANSFUSION_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "31.白蛋白类制品费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.ALBUMIN_PRODUCT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.ALBUMIN_PRODUCT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "32.球蛋白类制品费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.GLOBIN_PRODUCT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.GLOBIN_PRODUCT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "33.凝血因子类制品费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.COAGULATION_FACTOR_PRODUCT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.COAGULATION_FACTOR_PRODUCT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "34.细胞因子类制品费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.CYTOKINE_PRODUCT_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.CYTOKINE_PRODUCT_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "35.检查用一次性医用材料费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.INSPECTION_OF_DISPOSABLE_MEDICAL_MATERIALS_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.INSPECTION_OF_DISPOSABLE_MEDICAL_MATERIALS_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "36.治疗用一次性医用材料费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.DISPOSABLE_MEDICAL_MATERIALS_FOR_TREATMENT && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.DISPOSABLE_MEDICAL_MATERIALS_FOR_TREATMENT && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "37.介入用一次性医用材料费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.INTERVENTIONAL_DISPOSABLE_MEDICAL_MATERIALS_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.INTERVENTIONAL_DISPOSABLE_MEDICAL_MATERIALS_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },

                new ThirtyEightFee {
                    Project = "38.手术用一次性医用材料费",
                    Current = items.Where(r => r?.Project == TE_PROJECT.DISPOSABLE_MEDICAL_MATERIALS_FOR_SURGERY && r?.Age == "当期")?.FirstOrDefault()?.Fee,
                    Period  = items.Where(r => r?.Project == TE_PROJECT.DISPOSABLE_MEDICAL_MATERIALS_FOR_SURGERY && r?.Age == "同期")?.FirstOrDefault()?.Fee,
                },
            };

            return(list);
        }
        public override List <SamePeriodIncomRatio> Do()
        {
            try
            {
                var s = param?.DoExport();
                return(new List <SamePeriodIncomRatio>());

                List <FeeItem> items = null;
                if (flag == "all")
                {
                    items = new AllItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }
                else if (flag == "in")
                {
                    items = new InItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }
                else if (flag == "out")
                {
                    items = new OutItem()
                    {
                        CurrentStart = currentStart,
                        CurrentEnd   = currentEnd,
                        PeriodStart  = periodStart,
                        PeriodEnd    = periodEnd,
                    }.GetData().Item2;
                }

                var sumCurrent     = items?.Where(r => r?.Age == "当期")?.Sum(r => r?.Fee.ToDouble()).ToString().ToDouble().ToString();
                var sumPeriod      = items?.Where(r => r?.Age == "同期")?.Sum(r => r?.Fee.ToDouble()).ToString().ToDouble().ToString();
                var sumCurrentDrug = items?.Where(r =>
                                                  (r?.Project == SPI_PROJECT.CHINESE_PATENT_MEDICINE_FEE ||
                                                   r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE ||
                                                   r?.Project == SPI_PROJECT.WESTERN_MEDICINE_FEE) &&
                                                  r?.Age == "当期").Sum(r => r?.Fee.ToDouble()).ToString().ToDouble().ToString();
                var sumPeriodDrug = items.Where(r =>
                                                (r?.Project == SPI_PROJECT.CHINESE_PATENT_MEDICINE_FEE ||
                                                 r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE ||
                                                 r?.Project == SPI_PROJECT.WESTERN_MEDICINE_FEE) &&
                                                r?.Age == "同期").Sum(r => r?.Fee.ToDouble()).ToString().ToDouble().ToString();

                var a    = items.Where(r => r?.Project == SPI_PROJECT.WESTERN_MEDICINE_FEE && r?.Sugbe == "1" && r?.Age == "当期")?.FirstOrDefault()?.Fee;
                var list = new List <SamePeriodIncomRatio> {
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 0.9,
                        Project = "住院收入",
                        Current = sumCurrent,
                        Period  = sumPeriod,
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 0.91,
                        Project = "医疗收入",
                        Current = (sumCurrent.ToDouble() - sumCurrentDrug.ToDouble()).ToString(),
                        Period  = (sumPeriod.ToDouble() - sumPeriodDrug.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 1,
                        Project = "  床位收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.BED_FEE && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.BED_FEE && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 2,
                        Project = "  医事服务费",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.MEDICAL_FEES && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.MEDICAL_FEES && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 3,
                        Project = "  检查收入",
                        Current = items.Where(r => (r?.Project == SPI_PROJECT.ROUTINE_INSPECTION_FEE ||
                                                    r?.Project == "CT" ||
                                                    r?.Project == SPI_PROJECT.RADIATION ||
                                                    r?.Project == SPI_PROJECT.MAGNETIC_RESONANCE) && r?.Sugbe == "1" && r?.Age == "当期").Sum(r => r?.Fee.ToDouble()).ToString(),
                        Period = items.Where(r => (r?.Project == SPI_PROJECT.ROUTINE_INSPECTION_FEE ||
                                                   r?.Project == "CT" ||
                                                   r?.Project == SPI_PROJECT.RADIATION ||
                                                   r?.Project == SPI_PROJECT.MAGNETIC_RESONANCE) && r?.Sugbe == "1" && r?.Age == "同期").Sum(r => r?.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 4,
                        Project = "    其中:放射",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.RADIATION && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.RADIATION && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 5,
                        Project = "  化验收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.LAB_FEES && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.LAB_FEES && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 6,
                        Project = "  病理收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.PATHOLOGY && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.PATHOLOGY && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 7,
                        Project = "  治疗收入",
                        Current = items.Where(r => (r?.Project == SPI_PROJECT.TREATMENT_COSTS ||
                                                    r?.Project == SPI_PROJECT.HYPERBARIC_OXYGEN_FEE ||
                                                    r?.Project == SPI_PROJECT.HEMODIALYSIS ||
                                                    r?.Project == SPI_PROJECT.BLOOD_TRANSFUSION_FEE ||
                                                    r?.Project == SPI_PROJECT.OXYGEN_DELIVERY_FEE) && r?.Sugbe == "1" && r?.Age == "当期").Sum(r => r?.Fee.ToDouble()).ToString(),
                        Period = items.Where(r => (r?.Project == SPI_PROJECT.TREATMENT_COSTS ||
                                                   r?.Project == SPI_PROJECT.HYPERBARIC_OXYGEN_FEE ||
                                                   r?.Project == SPI_PROJECT.HEMODIALYSIS ||
                                                   r?.Project == SPI_PROJECT.BLOOD_TRANSFUSION_FEE ||
                                                   r?.Project == SPI_PROJECT.OXYGEN_DELIVERY_FEE) && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 8,
                        Project = "  手术收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.SURGERY_FEE && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.SURGERY_FEE && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 9,
                        Project = "  护理收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.NURSING_FEE && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.NURSING_FEE && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 10,
                        Project = "  卫生材料收入",
                        Current = items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 11,
                        Project = "  其他住院收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 12,
                        Project = "药品收入",
                        Current = sumCurrentDrug,
                        Period  = sumPeriodDrug,
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 13,
                        Project = "  其中:西药收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.WESTERN_MEDICINE_FEE && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.WESTERN_MEDICINE_FEE && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 14,
                        Project = "    中草药收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 15,
                        Project = "    中成药收入",
                        Current = items.Where(r => r?.Project == SPI_PROJECT.CHINESE_PATENT_MEDICINE_FEE && r?.Age == "当期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                        Period  = items.Where(r => r?.Project == SPI_PROJECT.CHINESE_PATENT_MEDICINE_FEE && r?.Age == "同期")?.Sum(i => i.Fee.ToDouble()).ToString(),
                    },

                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 17,
                        Project = "    —指标分析—",
                        Current = "——",
                        Period  = "——",
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 17.1,
                        Project = "药占比",
                        Current = (sumCurrentDrug.ToDouble()
                                   / sumCurrent.ToDouble()).ToString(),
                        Period = (sumPeriodDrug.ToDouble()
                                  / sumPeriod.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 18,
                        Project = "药占比(不含饮片)",
                        Current = ((sumCurrentDrug.ToDouble()
                                    - items.Where(r => r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble())
                                   / sumCurrent.ToDouble()).ToString(),
                        Period = ((sumPeriodDrug.ToDouble()
                                   - items.Where(r => r?.Project == SPI_PROJECT.CHINESE_HERBAL_MEDICINE_FEE && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble())
                                  / sumPeriod.ToDouble()).ToString(),
                    },
                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 19,
                        Project = "医务性收入占比",
                        Current = ((
                                       sumCurrent.ToDouble()
                                       - items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble()
                                       - sumCurrentDrug.ToDouble()
                                       - items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble())
                                   / sumCurrent.ToDouble()).ToString(),
                        Period = ((
                                      sumPeriod.ToDouble()
                                      - items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble()
                                      - sumPeriodDrug.ToDouble()
                                      - items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble())
                                  / sumPeriod.ToDouble()).ToString(),
                    },

                    new SamePeriodIncomRatio(sumCurrent, sumPeriod)
                    {
                        OrderNo = 20,
                        Project = "医疗服务收入占比",
                        Current = ((
                                       sumCurrent.ToDouble()
                                       - items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble()
                                       - sumCurrentDrug.ToDouble()
                                       - items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble()
                                       - items.Where(r => (r?.Project == SPI_PROJECT.ROUTINE_INSPECTION_FEE ||
                                                           r?.Project == "CT" ||
                                                           r?.Project == SPI_PROJECT.RADIATION ||
                                                           r?.Project == SPI_PROJECT.MAGNETIC_RESONANCE) && r?.Sugbe == "1" && r?.Age == "当期").Sum(r => r?.Fee.ToDouble()).ToString().ToDouble()
                                       - items.Where(r => r?.Project == SPI_PROJECT.LAB_FEES && r?.Sugbe == "1" && r?.Age == "当期")?.FirstOrDefault()?.Fee.ToDouble())
                                   / sumCurrent.ToDouble()).ToString(),
                        Period = ((
                                      sumPeriod.ToDouble()
                                      - items.Where(r => r.NuValue < 19 && r?.Sugbe == "0" && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble()
                                      - sumPeriodDrug.ToDouble()
                                      - items.Where(r => r?.Project == SPI_PROJECT.OTHER_EXPENSES && r?.Sugbe == "1" && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble()
                                      - items.Where(r => (r?.Project == SPI_PROJECT.ROUTINE_INSPECTION_FEE ||
                                                          r?.Project == "CT" ||
                                                          r?.Project == SPI_PROJECT.RADIATION ||
                                                          r?.Project == SPI_PROJECT.MAGNETIC_RESONANCE) && r?.Sugbe == "1" && r?.Age == "同期").Sum(r => r?.Fee.ToDouble()).ToString().ToDouble()
                                      - items.Where(r => r?.Project == SPI_PROJECT.LAB_FEES && r?.Sugbe == "1" && r?.Age == "同期")?.FirstOrDefault()?.Fee.ToDouble())
                                  / sumPeriod.ToDouble()).ToString(),
                    },
                };
                //list.Sort((a, b) => a.OrderNo.CompareTo(b.OrderNo));
                //var table = ToDataTable(list);


                return(list);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }