예제 #1
0
        public static void exportHandle2(XmlDBManager xmldb, OracleDBManagerV94 oracledb, string session_id, string ftplj, decimal?ltt_id)
        {
            try
            {
                if (oracledb == null)
                {
                    return;
                }
                if (xmldb == null)
                {
                    return;
                }

                OracleSequenceValueGenerator.Instance.DbManager = oracledb;

                string symboldir = Path.Combine(Assembly.GetExecutingAssembly().GetPhysicalDirectory(), "SymbolConfig.xml");
                SimpleSymbolConfig.Instance = ElectronTransferFramework.Serialize.XmlSerializeUtils.Load <SimpleSymbolConfig>(symboldir, new Type[] { });

                int      i           = 0;
                string[] allowStatus = new string[] { "EDIT", "ADD", "DELETE" };
                int      fnocount    = SimpleSymbolConfig.Instance.Symbols.Count;
                foreach (var symbol in SimpleSymbolConfig.Instance.Symbols)
                {
                    try
                    {
                        if (symbol.Fno == 140 || symbol.Fno == 141 || symbol.Fno == 142 || symbol.Fno == 163)
                        {
                            Type type;
                            if (!string.IsNullOrEmpty(symbol.PtClassName))
                            {
                                type = TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), symbol.PtClassName);
                                var symbolSet = oracledb.GetEntities(type, " where g3e_fid in (select g3e_fid from " + session_id + " where g3e_fno=" + symbol.Fno + ") ").Cast <ElectronBase>().ToList();

                                var ASet_symbol = from item in symbolSet.Where(o => o.GetValue <decimal?>("LTT_ID") == ltt_id &&
                                                                               allowStatus.Contains(o.GetValue <string>("LTT_STATUS")))
                                                  group item by item.G3E_FID into g
                                                  select g.OrderBy(o => o.G3E_ID).Last();

                                var BSet_symbol = from item in symbolSet.Where(o => o.GetValue <decimal?>("LTT_ID") == 0 &&
                                                                               ASet_symbol.Count(a => a.G3E_FID == o.G3E_FID) == 0)
                                                  select item;
                                var UnionSet_symbol = ASet_symbol.Union(BSet_symbol);

                                xmldb.InsertBulk_SetKxType(UnionSet_symbol.Cast <DBEntity>());
                            }
                            i++;
                            PublicMethod.write_state(ftplj, 0.81 + i * 0.15 / 4);
                        }
                    }
                    //}
                    catch (Exception ex)
                    {
                        CYZLog.writeLog(ex.ToString(), "");
                    }
                    finally
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                CYZLog.writeLog(ex.ToString(), "");
            }
        }