コード例 #1
0
 private void ShowInfoString(InfoString info)
 {
     if (info == null)
     {
         ClearConfigs();
         return;
     }
     AddrBasedOnMoudule.Text = info.AddrBasedOnMoudule;
     Drifts.Text             = info.Drifts;
     ExtraParam.Text         = info.ExtraParam;
     NewContent.Text         = info.NewContent;
     OriginalContent.Text    = info.OriginalContent;
     Prototype.SelectedIndex = info.Prototype;
     ConfigName.Text         = info.ConfigName;
 }
コード例 #2
0
        public override CLIENTDB GetExistDataPC(Client dataIPSP)
        {
            if (string.IsNullOrWhiteSpace(dataIPSP.s_ClientCode))
            {
                SyncResultInfoSet.AddWarning($"{dataIPSP.n_ClientID}未填写客户代码,跳过导入。");
                IsExistDataPC = null;
                return(null);
            }
            var existClient = new PC.BLL.CLIENTDB().GetModel(dataIPSP.s_ClientCode);

            IsExistDataPC = existClient != null;
            SyncResultInfoSet.AddInfo(InfoString.ToSyncInfo("客户", IsExistDataPC.Value, dataIPSP.n_ClientID, dataIPSP.s_ClientCode),
                                      dataIPSP.ClassInfo.TableName, typeof(CLIENTDB).Name);
            return(existClient);
        }
コード例 #3
0
        public override PATENTCASE GetExistDataPC(ExtendedPatent dataIPSP)
        {
            if (string.IsNullOrWhiteSpace(dataIPSP.s_CaseSerial))
            {
                SyncResultInfoSet.AddWarning($"{dataIPSP.n_CaseID}未填写我方卷号,跳过导入。");
                IsExistDataPC = null;
                return(null);
            }
            var existPatent = new PC.BLL.PATENTCASE().GetModel(dataIPSP.s_CaseSerial);

            IsExistDataPC = existPatent != null;
            SyncResultInfoSet.AddInfo(
                InfoString.ToSyncInfo("国内专利", IsExistDataPC.Value, dataIPSP.n_CaseID, dataIPSP.s_CaseSerial),
                dataIPSP.ClassInfo.TableName, typeof(PATENTCASE).Name);
            return(existPatent);
        }
コード例 #4
0
        public override GENERAL_INSTRUCTION GetExistDataPC(Demand dataIPSP)
        {
            var sCode      = GetCode(dataIPSP);
            var sCondition = $"CONTENT_CN =:p AND CLIENT_NO = '{sCode}'";
            var pid        = new PC.BLL.GENERAL_INSTRUCTION().GetSingle(sCondition, dataIPSP.s_Description ?? string.Empty);

            if (pid == null)
            {
                return(null);
            }
            IsExistDataPC = true;
            var instruction = new PC.BLL.GENERAL_INSTRUCTION().GetModel(pid.ToString());

            SyncResultInfoSet.AddInfo(InfoString.ToSyncInfo("要求", IsExistDataPC.Value, dataIPSP.n_ID, sCode + " " + dataIPSP.s_Description),
                                      dataIPSP.ClassInfo.TableName, typeof(GENERAL_INSTRUCTION).Name);
            return(instruction);
        }
コード例 #5
0
        public override CASEOTHERINFO GetExistDataPC(CustomField dataIPSP)
        {
            if (CommonFunction.GetIdTextFieldType(dataIPSP.sFieldName) == string.Empty)
            {
                SyncResultInfoSet.AddInfo(
                    InfoString.ToSkipInfo("自定义属性", dataIPSP.BasicCase?.s_CaseSerial, dataIPSP.sFieldName),
                    dataIPSP.ClassInfo.TableName, typeof(CASEOTHERINFO).Name);
                return(null);
            }
            var sCondition =
                $"CASENO = '{dataIPSP.BasicCase?.s_CaseSerial}' AND INFOTYPE = '{CommonFunction.GetIdTextFieldType(dataIPSP.sFieldName)}'";
            var existCaseOtherInfo = new PC.BLL.CASEOTHERINFO().GetModelList(sCondition);

            IsExistDataPC = existCaseOtherInfo.Count > 0;
            SyncResultInfoSet.AddInfo(
                InfoString.ToSyncInfo("自定义属性", IsExistDataPC.Value, dataIPSP.BasicCase?.s_CaseSerial,
                                      dataIPSP.sFieldName),
                dataIPSP.ClassInfo.TableName, typeof(CASEOTHERINFO).Name);
            return(existCaseOtherInfo.Count > 0 ? existCaseOtherInfo[0] : null);
        }
コード例 #6
0
ファイル: SyncOAData.cs プロジェクト: hostxia/DataSyncTool
        public override GENERALALERT GetExistDataPC(TFTaskChain dataIPSP)
        {
            var sOAType = GetOATypeByTaskChainCode(dataIPSP.GetTheCodeTaskChain().s_Code);

            if (string.IsNullOrWhiteSpace(sOAType) || !dataIPSP.dt_CreateTime.HasValue)
            {
                SyncResultInfoSet.AddInfo(
                    InfoString.ToSkipInfo("OA", dataIPSP.g_ID, dataIPSP.n_Num + " " + dataIPSP.s_Name),
                    dataIPSP.ClassInfo.TableName, typeof(GENERALALERT).Name);
                return(null);
            }
            var sCondition =
                $"OATYPE = '{GetOATypeByTaskChainCode(dataIPSP.GetTheCodeTaskChain().s_Code)}' and OURNO = '{dataIPSP.GetRelatedCase()?.s_CaseSerial}' and TRIGERDATE1 =TO_DATE('{dataIPSP.dt_CreateTime.Value:yyyy/MM/dd}','yyyy/mm/dd')";
            var existOA = new PC.BLL.GENERALALERT().GetModelList(sCondition);

            IsExistDataPC = existOA.Count > 0;
            SyncResultInfoSet.AddInfo(
                InfoString.ToSyncInfo("OA", IsExistDataPC.Value, dataIPSP.g_ID, dataIPSP.n_Num + " " + dataIPSP.s_Name),
                dataIPSP.ClassInfo.TableName, typeof(GENERALALERT).Name);
            return(existOA.Count > 0 ? existOA[0] : null);
        }
コード例 #7
0
 private void Button2_Click(object sender, EventArgs e)
 {
     openFileDialog1.Filter = "JSON配置文件(*.json)|*.json";
     openFileDialog1.Title  = "请选择配置文件";
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         ConfigFileProcessor.FileName = openFileDialog1.FileName;
         try
         {
             ConfigFileProcessor.Open();
             int count = ConfigFileProcessor.GameInfo.Configs.Count;
             DataGrid.Rows.Clear();
             for (int i = 0; i < count; i++)
             {
                 InfoString infoString = TransferToInfoString(ConfigFileProcessor.GameInfo.Configs[i]);
                 infos.Add(infoString);
                 int index = DataGrid.Rows.Add();
                 DataGrid.Rows[index].Cells[0].Value = infoString.ConfigName;
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
         finally
         {
             ConfigFileProcessor.CloseStream();
         }
         if (!ConfigFileProcessor.IsOpen)
         {
             return;
         }
         currentConfigIndex = DataGrid.CurrentRow.Index;
         GameName.Text      = ConfigFileProcessor.GameInfo.GameName;
         currentConfig      = infos[0];
         ShowInfoString(currentConfig);
     }
 }
コード例 #8
0
        /// <summary>Renders a BasicBall on the console</summary>
        /// <param name="Ball"></param>
        /// <param name="ShowInfo"></param>
        /// <param name="FPS"></param>
        /// <param name="StopOnZero"></param>
        public static void BallRenderer(BasicBall Ball, bool ShowInfo, int FPS, bool StopOnZero)
        {
            bool Cont = true;

            //Draw for first time
            Ball.BallGraphic.Draw(Convert.ToInt32(Ball.X), Convert.ToInt32(Ball.Y));

            string InfoString;
            string DrawnInfoString = "";

            while (Cont)
            {
                //Prepare infostring
                InfoString = Ball.BallGraphic.Name + " (" + Ball.Width + "x" + Ball.Height + ")\n\n"
                             + "Position  : " + Ball.X.ToString("0.00") + ", " + Ball.Y.ToString("0.00") + "\n"
                             + "Speed     : " + Ball.XSpeed.ToString("0.00") + ", " + Ball.YSpeed.ToString("0.00") + "\n\n"
                             + "Gravity   : " + Ball.Gravity.ToString("0.00") + "\n"
                             + "Bounciness: " + Ball.Bounciness.ToString("0.00");

                //Redraw the infostring if it is different.
                if (!InfoString.Equals(DrawnInfoString) && ShowInfo)
                {
                    RenderUtils.SetPos(0, 0);
                    RenderUtils.Echo(InfoString);
                    DrawnInfoString = InfoString;
                }

                //Just in case in a try-catch just in case because if the console shrinks while drawing it could cause an error
                try { Ball.Render(); } catch (Exception) { }

                //Wait
                RenderUtils.Sleep(1000 / FPS);

                //If the console has been resized, resize the ball's x and y limit
                if (Ball.XLimit != Console.WindowWidth || Ball.YLimit != Console.WindowHeight)
                {
                    Ball.XLimit = Console.WindowWidth;
                    Ball.YLimit = Console.WindowHeight;

                    Console.Clear(); //Clear just to clean up any graphical glitches from the resize
                }

                //Read the console key
                if (Console.KeyAvailable)
                {
                    switch (Console.ReadKey(true).Key)
                    {
                    case ConsoleKey.UpArrow:
                        //Kick up.
                        Ball.YSpeed -= 5;
                        break;

                    case ConsoleKey.DownArrow:
                        //kick down
                        Ball.YSpeed += 5;
                        break;

                    case ConsoleKey.LeftArrow:
                        //Kick left
                        Ball.XSpeed -= 5;
                        break;

                    case ConsoleKey.RightArrow:
                        //Kick right
                        Ball.XSpeed += 5;
                        break;

                    case ConsoleKey.OemPlus:
                    case ConsoleKey.Add:
                        //More gravity
                        Ball.Gravity += .1;
                        break;

                    case ConsoleKey.OemMinus:
                    case ConsoleKey.Subtract:
                        //less gravity
                        Ball.Gravity -= .1;
                        break;

                    case ConsoleKey.Spacebar:
                        //Stop the ball
                        Ball.XSpeed = 0;
                        Ball.YSpeed = 0;
                        break;

                    case ConsoleKey.OemPeriod:
                        //up bounciness
                        Ball.Bounciness = Math.Min(1, Ball.Bounciness + 0.1);
                        break;

                    case ConsoleKey.OemComma:
                        //down bounciness
                        Ball.Bounciness = Math.Max(0, Ball.Bounciness - 0.1);
                        break;

                    case ConsoleKey.Escape:
                        //close
                        return;

                    case ConsoleKey.I:
                        ShowInfo = !ShowInfo;
                        if (!ShowInfo)
                        {
                            Console.Clear();
                        }
                        break;

                    default:
                        break;
                    }
                }

                if (StopOnZero && Convert.ToInt32(Ball.YSpeed) == 0 && Convert.ToInt32(Ball.XSpeed) == 0)
                {
                    return;
                }
            }
        }
コード例 #9
0
        public override void ConvertToDataPC(PATENTCASE dataPC, ExtendedPatent dataIPSP)
        {
            dataPC.OURNO  = dataIPSP.s_CaseSerial;
            dataPC.CLIENT = dataIPSP.TheClient?.s_ClientCode;
            //if (string.IsNullOrWhiteSpace(dataPC.CLIENT))
            //{
            //    SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("客户->委托人", dataIPSP.n_CaseID, dataIPSP.s_CaseSerial));
            //    return;
            //}
            dataPC.RECEIVED = dataIPSP.dt_UndertakeDate;
            //if (dataPC.RECEIVED <= new DateTime(1900, 1, 1))
            //{
            //    SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("承办日->接案日", dataIPSP.n_CaseID, dataIPSP.s_CaseSerial));
            //    return;
            //}
            var caseRoleAgent =
                new XPQuery <CodeCaseRole>(dataIPSP.Session).FirstOrDefault(r => r.s_Name.Contains("对外代理人"))?.n_ID;

            dataPC.AGENT =
                dataIPSP.CaseAttorneys.Cast <CaseAttorney>()
                .FirstOrDefault(a => a.n_CaseRoleID == caseRoleAgent)?.TheAttorney?.s_InternalCode;
            if (string.IsNullOrWhiteSpace(dataPC.AGENT))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("对外代理人->对外代理人", dataIPSP.n_CaseID,
                                                                   dataIPSP.s_CaseSerial));
                return;
            }
            dataPC.CLIENT_NUMBER = dataIPSP.s_ClientSerial;
            if (string.IsNullOrWhiteSpace(dataPC.CLIENT_NUMBER))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("客户文号->对方卷号", dataIPSP.n_CaseID,
                                                                   dataIPSP.s_CaseSerial));
                return;
            }
            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.FILING_DATE = dataIPSP.TheLawInfo.dt_AppDate;
            }
            var earliestPriority = dataIPSP.Priorities.Cast <Priority>().OrderBy(p => p.dt_PDate).FirstOrDefault();

            if (earliestPriority != null)
            {
                dataPC.EARLIEST_PRIORITY = earliestPriority.dt_PDate;
            }
            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.PUBLICATION = dataIPSP.TheLawInfo.dt_PubDate;
            }
            //dataPC.FIRST_HK_DATE//第一次香港登记日
            //dataPC.FIRST_HK_CANCELLED//放弃第一次香港登记

            //dataPC.SE_STATUS//已提实审——判断发文
            var outFile =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("实质审查请求") && c.s_ClientGov == "O" && c.s_IOType == "O");

            if (outFile != null)
            {
                dataPC.SE_STATUS = "Y";
            }

            //dataPC.SE_INITIATED//是否进入实审——判断来文
            var inFile =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("进入实质审查") && c.s_ClientGov == "O" && c.s_IOType == "I");

            if (inFile != null)
            {
                dataPC.SE_INITIATED = "Y";
            }

            //dataPC.OA_RECEIVED//收到OA——判断来文
            var inFileOA =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("审查意见通知") && c.s_ClientGov == "O" && c.s_IOType == "I");

            if (inFileOA != null)
            {
                dataPC.OA_RECEIVED = "Y";
            }

            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.GAZETTE = dataIPSP.TheLawInfo.dt_IssuedPubDate;
            }
            //dataPC.SECOND_HK_CANCELLED//放弃第二次香港注册
            //dataPC.SECOND_HK_DATE//第二次香港注册日

            //dataPC.REJECTED//被驳回——判断驳回决定
            var inFileRejected =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("驳回决定") && c.s_ClientGov == "O" && c.s_IOType == "I");

            if (inFileRejected != null)
            {
                dataPC.REJECTED = "Y";
            }

            switch (dataIPSP.s_CaseStatus)
            {
            case "转出":
                dataPC.WITHDREW = "T";
                break;

            case "放弃":
                dataPC.WITHDREW = "Y";
                break;

            case "届满":
                dataPC.WITHDREW = "E";
                break;

            case "结案":
                dataPC.WITHDREW = "Y";
                break;

            case "失效":
                dataPC.WITHDREW = "L";
                break;

            default:
                dataPC.WITHDREW = "";
                break;
            }
            //dataPC.UNDER_INVALIDATE //正在进行无效程序--苏文静说不用回写
            //dataPC.UNDER_REEXAMINATION //正在进行复审程序--判断是否存在复审通知书、复审决定
            var inFileReexamination =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("复审通知") && c.s_ClientGov == "O" && c.s_IOType == "I");
            var inFileReexaminationDecision =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("复审决定") && c.s_ClientGov == "O" && c.s_IOType == "I");

            if (inFileReexamination != null && inFileReexaminationDecision == null)
            {
                dataPC.UNDER_REEXAMINATION = "Y";
            }

            //dataPC.UNDER_LITIGATION //正在进行诉讼程序--苏文静说不用回写
            //dataPC.INVALIDATED//正被无效--苏文静说不用回写

            for (var i = 0; i < dataIPSP.CaseClients.Count; i++)
            {
                if (i > 3)
                {
                    continue;
                }
                var relateClient = dataIPSP.CaseClients.Cast <CaseClients>().ToList()[i];
                dataPC.GetType().GetProperty($"CLIENT{i + 2}").SetValue(dataPC, relateClient.Client?.s_ClientCode);
            }

            dataPC.APPL_NUM = dataIPSP.Applicants.Count; //申请人总数
            for (var i = 0; i < dataIPSP.Applicants.Count; i++)
            {
                if (i > 4)
                {
                    continue;
                }
                var caseApplicant = dataIPSP.Applicants.Cast <Applicant>().OrderBy(c => c.n_Sequence).ToList()[i];
                dataPC.GetType().GetProperty($"APPLICANT{i + 1}").SetValue(dataPC, caseApplicant.s_NativeName);
                dataPC.GetType().GetProperty($"APPLICANT_CH{i + 1}").SetValue(dataPC, caseApplicant.s_Name);
                var applicant =
                    new XPQuery <DataEntities.Contact.Applicant.Applicant>(dataIPSP.Session).FirstOrDefault(
                        a => a.n_AppID == caseApplicant.n_ApplicantID);
                if (applicant != null)
                {
                    dataPC.GetType().GetProperty($"APPL_CODE{i + 1}").SetValue(dataPC, applicant.s_AppCode);
                }
            }

            dataPC.INVEN_NUM = dataIPSP.Inventors.Count; //发明人总数
            for (var i = 0; i < dataIPSP.Inventors.Count; i++)
            {
                if (i > 20)
                {
                    continue;
                }
                var inventor = dataIPSP.Inventors.Cast <Inventor>().OrderBy(v => v.n_Sequence).ToList()[i];
                dataPC.GetType().GetProperty($"INVENTOR{i + 1}").SetValue(dataPC, inventor.s_NativeName);
                dataPC.GetType().GetProperty($"INVENTOR_CH{i + 1}").SetValue(dataPC, inventor.s_Name);
            }

            dataPC.TOTAL_PRI = dataIPSP.Priorities.Count;
            for (var i = 0; i < dataIPSP.Priorities.Count; i++)
            {
                if (i > 11)
                {
                    continue;
                }
                var priority = dataIPSP.Priorities.Cast <Priority>().OrderBy(v => v.n_Sequence).ToList()[i];
                var country  =
                    new XPQuery <CodeCountry>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == priority.n_PCountry);
                dataPC.GetType()
                .GetProperty($"PRI_COUNTRY{(i == 0 ? string.Empty : (i + 1).ToString())}")
                .SetValue(dataPC, country?.s_CountryCode);
                dataPC.GetType()
                .GetProperty($"PRI_NUMBER{(i == 0 ? string.Empty : (i + 1).ToString())}")
                .SetValue(dataPC, priority.s_PNum);
                dataPC.GetType()
                .GetProperty(i == 0 ? "EARLIEST_PRIORITY" : "PRI_DATE" + (i + 1))
                .SetValue(dataPC, priority.dt_PDate);
            }
            dataPC.TITLE = dataIPSP.s_CaseNativeName;
            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.PCT_APPN_DATE = dataIPSP.TheLawInfo.dt_PCTAppDate;
            }
            dataPC.FILING_DUE = dataIPSP.dt_ShldSbmtDate; //计划日
            if (dataPC.FILING_DUE <= new DateTime(1900, 1, 1))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("要求提交日->计划日", dataIPSP.n_CaseID,
                                                                   dataIPSP.s_CaseSerial));
                return;
            }
            var strComments = new StringBuilder();

            strComments.AppendLine("是否使用宽限期:" + dataIPSP.CustomFields.Cast <CustomField>().FirstOrDefault(c => c.sFieldName == "是否使用宽限期")?.s_Value);
            dataIPSP.Demands.Cast <Demand>().Where(d => d.s_SourceModuleType == "Case").ToList().ForEach(c => strComments.AppendLine(c.s_Description + "\r\n"));
            dataIPSP.Memos.Cast <CaseMemo>().ToList().ForEach(m => strComments.AppendLine(m.s_Memo + "\r\n"));
            dataPC.COMMENTS = strComments.ToString();

            var strAnnualFeeComments = new StringBuilder();

            if (dataIPSP.Demands.Cast <Demand>().Any(d => d.s_SysDemand == "CR17" || d.s_SysDemand == "CR18"))
            {
                strAnnualFeeComments.AppendLine("-*IGNORE ANNUAL FEE*-");
            }
            dataIPSP.Demands.Cast <Demand>()
            .Where(d => string.IsNullOrWhiteSpace(d.s_SourceModuleType) || d.s_SourceModuleType == "Case" && d.s_Title.Contains("年费"))
            .ToList()
            .ForEach(d => strAnnualFeeComments.AppendLine(d.s_Title + "\r\n" + d.s_Description + "\r\n"));
            dataPC.IGNOREANNUALFEE = strAnnualFeeComments.ToString();

            dataPC.CLIENT_NAME = dataIPSP.TheClient?.s_Name;

            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.PCT_PUBDATE = dataIPSP.TheLawInfo.dt_PCTPubDate;
            }
            dataPC.PCT_PUBNUM    = dataIPSP.TheLawInfo?.s_PCTPubNo;
            dataPC.DEADLINE      = dataIPSP.dt_ShldSbmtDate; //客户指定/绝限期——要求提交日
            dataPC.TITLE_CHINESE = dataIPSP.s_CaseName;
            //dataPC.AGENT_ACTUAL //实际代理人——处理人里找对应角色人员
            //var caseRoleActual =
            //    new XPQuery<CodeCaseRole>(dataIPSP.Session).FirstOrDefault(r => r.s_Name == "新申请阶段-办案人")?.n_ID;
            //dataPC.AGENT_ACTUAL =
            //    dataIPSP.CaseAttorneys.Cast<CaseAttorney>()
            //        .FirstOrDefault(a => a.n_CaseRoleID == caseRoleActual)?.TheAttorney?.s_InternalCode;
            //dataPC.APPN_COPY//申请文件份数--苏文静说不用回写
            //dataPC.BILL_COPY//账单份数--苏文静说不用回写


            dataPC.BILLING_CONTACT =
                dataIPSP.TheClient?.ClientAddress.Cast <ClientAddress>()
                .FirstOrDefault(a => a.s_Type != null && a.s_Type.Contains("B"))?.s_Street;
            dataPC.MAILING_ADDR =
                dataIPSP.TheClient?.ClientAddress.Cast <ClientAddress>()
                .FirstOrDefault(a => a.s_Type != null && a.s_Type.Contains("M"))?.s_Street;
            dataPC.MAILING_CONTACT =
                dataIPSP.TheClient?.ClientAddress.Cast <ClientAddress>()
                .FirstOrDefault(a => a.s_Type != null && a.s_Type.Contains("M"))?.s_TitleAddress;
            var nCodeFieldId =
                new XPQuery <CodeCaseCustomField>(dataIPSP.Session).FirstOrDefault(f => f.s_CustomFieldName == "文种")?
                .n_ID;

            if (nCodeFieldId > 0)
            {
                var memoLanguage =
                    dataIPSP.CustomFields.Cast <CustomField>().FirstOrDefault(m => m.n_FieldCodeID == nCodeFieldId);
                if (memoLanguage != null)
                {
                    dataPC.LANGUAGE = memoLanguage.s_Value; //文种->自定义属性
                }
            }
            var nCodeclaimNumId = new XPQuery <CodeCaseCustomField>(dataIPSP.Session).FirstOrDefault(f => f.s_CustomFieldName == "权利要求总个数")?.n_ID;

            if (nCodeclaimNumId > 0)
            {
                var claimNum =
                    dataIPSP.CustomFields.Cast <CustomField>().FirstOrDefault(m => m.n_FieldCodeID == nCodeclaimNumId);
                decimal nclaim;
                if (claimNum != null && decimal.TryParse(claimNum.s_Value, out nclaim))
                {
                    dataPC.CLAIM_NUM = nclaim;  //权项数
                }
            }
            var nCodecharCountId = new XPQuery <CodeCaseCustomField>(dataIPSP.Session).FirstOrDefault(f => f.s_CustomFieldName == "总字数")?.n_ID;

            if (nCodecharCountId > 0)
            {
                var charCount =
                    dataIPSP.CustomFields.Cast <CustomField>().FirstOrDefault(m => m.n_FieldCodeID == nCodecharCountId);
                decimal nCharCount = 0M;
                if (charCount != null && decimal.TryParse(charCount.s_Value, out nCharCount))
                {
                    dataPC.CHARCOUNT = nCharCount;  //总字数
                }
            }


            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.PRE_EXAM_PASSED = dataIPSP.TheLawInfo.dt_FirstCheckDate; //初审合格日
            }
            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.PUBLICATION_NO = dataIPSP.TheLawInfo.s_PubNo;
            }
            if (dataIPSP.TheLawInfo != null)
            {
                dataPC.SE_DATE = dataIPSP.TheLawInfo.dt_SubstantiveExamDate; //进入实审日(发文日)
            }
            var outFileBD =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("办理登记手续通知") && c.s_ClientGov == "O" && c.s_IOType == "I");

            if (outFileBD != null)
            {
                dataPC.GRANTNOTIC_DATE = outFileBD.dt_SendDate;                          //办登发文日——办理登记手续通知书的发文日
                dataPC.REGFEE_DL       = outFileBD.dt_SendDate.AddDays(15).AddMonths(2); //办登绝限——办理登记手续通知书的发文日+15天+2月
            }

            var feeBD =
                dataIPSP.FeeInCases.Cast <FeeInCase>()
                .Select(f => f.TheFee)
                .FirstOrDefault(f => f != null && f.s_OfficialFeeName.Contains("办理登记"));

            if (feeBD != null && feeBD.dt_PayDate > new DateTime(1900, 1, 1))
            {
                dataPC.REGFEE_SUBMIT = feeBD.dt_PayDate; //办登日
            }
            dataPC.ANNO_NO = dataIPSP.TheLawInfo?.s_IssuedPubNo;

            dataPC.STATUS_DATE = dataIPSP.dt_RequestSubmitDate; //已提实审日
            var outFileReexam =
                dataIPSP.FileInCases.Cast <FileInCase>()
                .Select(f => f.TheFile)
                .FirstOrDefault(
                    c => c != null && c.s_Name.Contains("提实审") && c.s_ClientGov == "C" && c.s_IOType == "I");

            if (outFileReexam != null)
            {
                dataPC.CLIENT_STATUS = "Y"; //客户提示提实审——判断是否存在“提实审”名称的客户来文
            }
            //dataPC.YFEE_DATE//
            //dataPC.YFEE1
            //dataPC.YFEE2
            decimal sCertfNo;

            decimal.TryParse(dataIPSP.TheLawInfo?.s_CertfNo, out sCertfNo);
            dataPC.CERTIFICATE_NO = sCertfNo;
            dataPC.OAGENT1        =
                new XPQuery <CodeEmployee>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == dataIPSP.n_FirstAttorney)?
                .s_InternalCode;
            dataPC.OAGENT2 =
                new XPQuery <CodeEmployee>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == dataIPSP.n_SecondAttorney)?
                .s_InternalCode;

            //实审费已交——官费是否存在“实审费”并且状态是已缴
            if (dataIPSP.FeeInCases.Cast <FeeInCase>().Select(i => i.TheFee)
                .Any(f => f != null && f.s_OfficialFeeName.Contains("实审费") && f.s_Status[2] == 'F'))
            {
                dataPC.SEFEE = "Y";
            }

            //申请费已提交——官费是否存在“申请费”并且状态是已缴
            if (dataIPSP.FeeInCases.Cast <FeeInCase>().Select(i => i.TheFee)
                .Any(f => f != null && f.s_OfficialFeeName.Contains("申请费") && f.s_Status[2] == 'F'))
            {
                dataPC.APPFEE = "Y";
            }

            //年费备注——找对应的要求

            //翻译人——案件处理人
            var caseRoleTrans = new XPQuery <CodeCaseRole>(dataIPSP.Session).FirstOrDefault(r => r.s_Name.Contains("翻译"))?.n_ID;

            dataPC.TRANSLATOR =
                dataIPSP.CaseAttorneys.Cast <CaseAttorney>()
                .FirstOrDefault(a => a.n_CaseRoleID == caseRoleTrans)?.TheAttorney?.s_InternalCode;

            //一校——案件处理人
            var caseRoleFirstCheck =
                new XPQuery <CodeCaseRole>(dataIPSP.Session).FirstOrDefault(r => r.s_Name.Contains("一校"))?.n_ID;

            dataPC.CORRECTOR1 =
                dataIPSP.CaseAttorneys.Cast <CaseAttorney>()
                .FirstOrDefault(a => a.n_CaseRoleID == caseRoleFirstCheck)?.TheAttorney?.s_InternalCode;

            //二校——案件处理人
            var caseRoleSecondCheck =
                new XPQuery <CodeCaseRole>(dataIPSP.Session).FirstOrDefault(r => r.s_Name.Contains("二校"))?.n_ID;

            dataPC.CORRECTOR2 =
                dataIPSP.CaseAttorneys.Cast <CaseAttorney>()
                .FirstOrDefault(a => a.n_CaseRoleID == caseRoleSecondCheck)?.TheAttorney?.s_InternalCode;

            //dataPC.URGENT_CO//加急系数

            //第一申请人的卷号
            dataPC.APP_REF =
                dataIPSP.Applicants.Cast <Applicant>()
                .FirstOrDefault(a => !string.IsNullOrWhiteSpace(a.s_AppSerial))?.s_AppSerial; //申请人卷号——
            dataPC.DIV_FILINGDATE  = dataIPSP.dt_DivSubmitDate;                               //分案-申请提交日
            dataPC.DIV_PARENTAPPNO = dataIPSP.s_OrigAppNo;                                    //分案-母案申请号
            //dataPC.STATUS

            FillDefaultValue();
            if (!IsExistDataPC.HasValue)
            {
                return;
            }
            if (IsExistDataPC.Value)
            {
                new PC.BLL.PATENTCASE().Update(dataPC);
            }
            else
            {
                new PC.BLL.PATENTCASE().Add(dataPC);
            }
        }
コード例 #10
0
        public override void ConvertToDataPC(GENERAL_INSTRUCTION dataPC, Demand dataIPSP)
        {
            var sCode = GetCode(dataIPSP);

            dataPC.PID = DateTime.Now.ToString("yyyyMMdd_HHmmss_ffffff");
            if (string.IsNullOrWhiteSpace(sCode))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("代码", dataIPSP.n_ID, sCode + " " + dataIPSP.s_Description));
                return;
            }
            dataPC.CLIENT_NO = sCode;
            if (dataIPSP.dt_ReceiptDate <= new DateTime(1900, 1, 1))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("收到日", dataIPSP.n_ID, sCode + " " + dataIPSP.s_Description));
                return;
            }
            dataPC.RECEIVED = dataIPSP.dt_ReceiptDate;
            if (string.IsNullOrWhiteSpace(dataIPSP.s_ReceiptMethod))
            {
                SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("收到方式", dataIPSP.n_ID, sCode + " " + dataIPSP.s_Description));
                return;
            }
            if (dataIPSP.s_ReceiptMethod.ToLower().Contains("fax") || dataIPSP.s_ReceiptMethod.ToLower().Contains("传真"))
            {
                dataPC.RECEIVED_BY = "fax";
            }
            else if (dataIPSP.s_ReceiptMethod.ToLower().Contains("mail") || dataIPSP.s_ReceiptMethod.ToLower().Contains("信"))
            {
                dataPC.RECEIVED_BY = "mail";
            }
            else if (dataIPSP.s_ReceiptMethod.ToLower().Contains("email") || dataIPSP.s_ReceiptMethod.ToLower().Contains("邮件") || dataIPSP.s_ReceiptMethod.ToLower().Contains("邮箱"))
            {
                dataPC.RECEIVED_BY = "email";
            }
            else
            {
                dataPC.RECEIVED_BY = "other";
            }

            dataPC.RELATES_TO = htDemandType.ContainsKey(dataIPSP.s_Title) ? htDemandType[dataIPSP.s_Title].ToString() : "other";

            dataPC.CONTENT_CN = dataIPSP.s_Description;
            dataPC.INSTRUCTOR = dataIPSP.s_Assignor;
            dataPC.STATUS     = "valid";
            //dataPC.EXPIRE_DATE
            //dataPC.COMMENTS

            FillDefaultValue();
            if (!IsExistDataPC.HasValue)
            {
                return;
            }
            if (IsExistDataPC.Value)
            {
                new PC.BLL.GENERAL_INSTRUCTION().Update(dataPC);
            }
            else
            {
                new PC.BLL.GENERAL_INSTRUCTION().Add(dataPC);
            }
        }
コード例 #11
0
        public override void ConvertToDataPC(FCASE dataPC, ExtendedPatent dataIPSP)
        {
            dataPC.OURNO    = dataIPSP.s_CaseSerial;
            dataPC.TITLE    = dataIPSP.s_CaseNativeName;
            dataPC.CTITLE   = dataIPSP.s_CaseName;
            dataPC.RECEIVED = dataIPSP.dt_UndertakeDate;
            dataPC.APPNO    = dataIPSP.TheLawInfo.s_AppNo;
            dataPC.APPDATE  = dataIPSP.TheLawInfo.dt_AppDate;
            dataPC.COMMENTS = dataIPSP.Memos.Cast <CaseMemo>().Aggregate(string.Empty, (s, m) => s + "\r\n" + m.s_Memo + "\r\n");
            dataPC.STATUS   = CommonFunction.UnActiveCaseStatus.Contains(dataIPSP.s_CaseStatus) ? "Y" : "N";

            var listAppType = new List <string>();
            var patentType  =
                new XPQuery <CodePTCType>(dataIPSP.Session).FirstOrDefault(t => t.n_ID == dataIPSP.n_PatentTypeID);

            if (patentType != null)
            {
                listAppType.Add(patentType.s_Code);
            }

            if (dataIPSP is CasePCTI)
            {
                listAppType.Add("PIP");
            }
            else if (dataIPSP is CasePCTN)
            {
                listAppType.Add("PNE");
            }
            else if (dataIPSP is MacaoApplication)
            {
                listAppType.Add("EXT");
            }
            else
            {
                listAppType.Add("NORM");
            }

            if (dataIPSP.b_DivisionalCaseFlag)
            {
                listAppType.Add("DIV");
            }

            if (dataIPSP.s_IsRegOnline == "A")
            {
                listAppType.Add("CONT");
            }
            else if (dataIPSP.s_IsRegOnline == "P")
            {
                listAppType.Add("CIP");
            }

            dataPC.APPTYPE = string.Join(";", listAppType);
            if (!string.IsNullOrEmpty(dataPC.APPTYPE))
            {
                dataPC.APPTYPE += ";";
            }
            dataPC.DEADLINE = dataIPSP.dt_ShldSbmtDate;


            FillDefaultValue();
            if (!IsExistDataPC.HasValue)
            {
                return;
            }
            if (IsExistDataPC.Value)
            {
                new PC.BLL.FCASE().Update(dataPC);
            }
            else
            {
                new PC.BLL.FCASE().Add(dataPC);
            }

            var bllFCASE_ENT_REL = new FCASE_ENT_REL();

            bllFCASE_ENT_REL.GetModelList($"OURNO = '{dataIPSP.s_CaseSerial}'").ForEach(e => bllFCASE_ENT_REL.Delete(e.PID));
            foreach (var caseApplicant in dataIPSP.Applicants.Cast <Applicant>())
            {
                if (string.IsNullOrWhiteSpace(caseApplicant.s_AppCode))
                {
                    SyncResultInfoSet.AddWarning(InfoString.ToSkipInfo("案件申请人", caseApplicant.n_ID, caseApplicant.s_Name));
                    continue;
                }
                var fcaseent = new PC.Model.FCASE_ENT_REL
                {
                    PID     = DateTime.Now.ToString("yyyyMMddHHmmssffffff"),
                    ROLE    = "APP",
                    OURNO   = dataIPSP.s_CaseSerial,
                    EID     = caseApplicant.s_AppCode,
                    COUNTRY =
                        new XPQuery <CodeCountry>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == caseApplicant.n_Country)
                            ?
                        .s_CountryCode,
                    ADDR      = caseApplicant.s_Street,
                    ENT_REF   = caseApplicant.s_AppSerial,
                    ORIG_NAME = caseApplicant.s_NativeName,
                    TRAN_NAME = caseApplicant.s_Name,
                    ENT_ORDER = caseApplicant.n_Sequence
                };
                FillDefaultValue(fcaseent);
                new FCASE_ENT_REL().Add(fcaseent);
                Thread.Sleep(1);
            }

            var bllFCASE_INVENTORS = new FCASE_INVENTORS();

            bllFCASE_INVENTORS.GetModelList($"OURNO = '{dataIPSP.s_CaseSerial}'")
            .ForEach(e => bllFCASE_INVENTORS.Delete(e.PID));
            foreach (var inventor in dataIPSP.Inventors.Cast <Inventor>())
            {
                var fcaseinventor = new PC.Model.FCASE_INVENTORS
                {
                    PID       = DateTime.Now.ToString("yyyyMMddHHmmssffffff"),
                    OURNO     = dataIPSP.s_CaseSerial,
                    ENT_ORDER = inventor.n_Sequence,
                    COUNTRY   =
                        new XPQuery <CodeCountry>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == inventor.n_Country)
                            ?
                        .s_CountryCode,
                    ADDR      = inventor.s_Address,
                    ORIG_NAME = inventor.s_NativeName,
                    TRAN_NAME = inventor.s_Name
                };
                FillDefaultValue(fcaseinventor);
                new FCASE_INVENTORS().Add(fcaseinventor);
                Thread.Sleep(1);
            }

            var bllFCASE_PRIORITY = new FCASE_PRIORITY();

            bllFCASE_PRIORITY.GetModelList($"OURNO = '{dataIPSP.s_CaseSerial}'")
            .ForEach(e => bllFCASE_PRIORITY.Delete(e.PID));
            foreach (var priority in dataIPSP.Priorities.Cast <Priority>().OrderBy(p => p.dt_PDate))
            {
                var fcasepriority = new PC.Model.FCASE_PRIORITY
                {
                    PID           = DateTime.Now.ToString("yyyyMMddHHmmssffffff"),
                    OURNO         = dataIPSP.s_CaseSerial,
                    PRIOR_NUM     = priority.s_PNum,
                    PRIOR_DATE    = priority.dt_PDate,
                    PRIOR_COUNTRY =
                        new XPQuery <CodeCountry>(dataIPSP.Session).FirstOrDefault(c => c.n_ID == priority.n_PCountry)
                            ?
                        .s_CountryCode
                };
                FillDefaultValue(fcasepriority);
                new FCASE_PRIORITY().Add(fcasepriority);
                Thread.Sleep(1);
            }

            var bllFCASE_LOG  = new PC.BLL.FCASE_LOG();
            var listFCASE_LOG = bllFCASE_LOG.GetModelList($"OURNO = '{dataIPSP.s_CaseSerial}'");

            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pub_date", dataIPSP.TheLawInfo.dt_PubDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pub_num", dataIPSP.TheLawInfo.s_PubNo);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pct_pub_date", dataIPSP.TheLawInfo.dt_PCTPubDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pct_pub_num", dataIPSP.TheLawInfo.s_PCTPubNo);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pct_ent_date", dataIPSP.TheLawInfo.dt_PCTInNationDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pct_app_num", dataIPSP.TheLawInfo.s_PCTAppNo);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_pct_app_date", dataIPSP.TheLawInfo.dt_PCTAppDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_anno_date", dataIPSP.TheLawInfo.dt_IssuedPubDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_anno_num", dataIPSP.TheLawInfo.s_IssuedPubNo);
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_reexam_date", dataIPSP.TheLawInfo.); //复审日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_regfee_sub_date", feeBD.dt_PayDate);//办登日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_reject_date", dataIPSP.TheLawInfo.); //驳回日
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_se_date", dataIPSP.TheLawInfo.dt_SubstantiveExamDate);
            AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_status_date", dataIPSP.dt_RequestSubmitDate); //提实审日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_invalid_date", dataIPSP.TheLawInfo.);//无效日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_litigate_date", dataIPSP.TheLawInfo.);//诉讼日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_ids_date", dataIPSP.TheLawInfo.); //ids日
            //AddOrUpdateCaseLogValue(listFCASE_LOG, dataIPSP.s_CaseSerial, "01_ids_num", dataIPSP.TheLawInfo.); //ids号
        }
コード例 #12
0
 //Draws some info in the debug window, add a prefix and a function that returns a string
 public void addWindowLine(string prefix, InfoString stringFunction)
 {
     linePrefixes.Add(prefix);
     windowLines.Add(stringFunction);
 }
コード例 #13
0
 public TCollection_AsciiString GetString(InfoString theInfo)
 {
     throw new NotImplementedException();
 }