|
@@ -9,6 +9,7 @@ using System.Linq;
|
|
|
using System.Threading;
|
|
|
using System.Xml.Linq;
|
|
|
using NPOI.HPSF;
|
|
|
+using NPOI.SS.Formula.Functions;
|
|
|
using OpenQA.Selenium;
|
|
|
using OpenQA.Selenium.Chrome;
|
|
|
using OpenQA.Selenium.Interactions;
|
|
@@ -517,7 +518,7 @@ namespace wispro.sp.utility
|
|
|
wait.Until((d)=>{
|
|
|
return firstTr.FindElement(By.XPath(".//td/a[@title='下载']"));
|
|
|
}).Click();
|
|
|
-
|
|
|
+
|
|
|
var ReportName = $"案件清单({DateTime.Now.ToString("yyyy年MM月dd日")})";
|
|
|
string strFilePath = System.IO.Path.Combine(strFileSavePath, $"{ReportName.Trim()}.xlsx");
|
|
|
WaitForFileDownload(strFileSavePath, $"{ReportName.Trim()}.xlsx", TimeSpan.FromMinutes(5));
|
|
@@ -811,10 +812,10 @@ namespace wispro.sp.utility
|
|
|
Log($"{DateTime.Now}\t输入处理事项完成日期:开始日期");
|
|
|
var startDate = wait.Until((d) => {
|
|
|
return d.FindElement(By.XPath("//input[contains(@id,'dt_s_')]"));
|
|
|
- });
|
|
|
-
|
|
|
+ });
|
|
|
+ driver.ExecuteJavaScript("arguments[0].scrollIntoView();", startDate);
|
|
|
startDate.Click();
|
|
|
-
|
|
|
+ System.Threading.Thread.Sleep(3000);
|
|
|
startDate.SendKeys(new DateTime(DateTime.Now.AddMonths(-1).Year, DateTime.Now.AddMonths(-1).Month, 1).ToString("yyyy-MM-dd"));
|
|
|
|
|
|
Log($"{DateTime.Now}\t输入处理事项完成日期:结束日期");
|
|
@@ -823,6 +824,7 @@ namespace wispro.sp.utility
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+
|
|
|
return d.FindElement(By.XPath("//input[contains(@id,'dt_e_')]"));//.Id("dt_e_4F8FE88D-9040-45F1-9723-45699BCD4CAF"));
|
|
|
}
|
|
|
catch
|
|
@@ -831,7 +833,7 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
});
|
|
|
-
|
|
|
+ System.Threading.Thread.Sleep(3000);
|
|
|
endDate.Click();
|
|
|
endDate.SendKeys(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1).ToString("yyyy-MM-dd"));
|
|
|
|
|
@@ -870,8 +872,9 @@ namespace wispro.sp.utility
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- });
|
|
|
- linkExport.Click();
|
|
|
+ });
|
|
|
+ driver.ExecuteJavaScript("arguments[0].click();",linkExport);
|
|
|
+ //linkExport.Click();
|
|
|
|
|
|
|
|
|
//切换到弹出的导出报表窗口,点击导出按钮
|
|
@@ -887,8 +890,13 @@ namespace wispro.sp.utility
|
|
|
driver.SwitchTo().DefaultContent();
|
|
|
var frameDownload = waitGetElementByName(wait,"DownloadList");
|
|
|
driver.SwitchTo().Frame(frameDownload);
|
|
|
- var firstTr = waitGetElementByTagName(wait,"tr");
|
|
|
- var tdStatus = firstTr.FindElement(By.XPath(".//td")).FindElement(By.XPath("following-sibling::td[4]"));
|
|
|
+ var firstTr = wait.Until((d) => {
|
|
|
+ return d.FindElement(By.CssSelector("table tbody tr"));
|
|
|
+ });
|
|
|
+ var tdStatus = wait.Until((d) => {
|
|
|
+ return firstTr.FindElement(By.XPath(".//td")).FindElement(By.XPath("following-sibling::td[4]"));
|
|
|
+ });
|
|
|
+
|
|
|
string strStatus = tdStatus.Text;
|
|
|
while (strStatus.Trim() != "导出成功!")
|
|
|
{
|
|
@@ -898,13 +906,19 @@ namespace wispro.sp.utility
|
|
|
}
|
|
|
|
|
|
System.Threading.Thread.Sleep(5000);
|
|
|
- firstTr = waitGetElementByTagName(wait, "tr");
|
|
|
- tdStatus = firstTr.FindElement(By.XPath(".//td")).FindElement(By.XPath("following-sibling::td[4]"));
|
|
|
+ firstTr = wait.Until((d) => {
|
|
|
+ return d.FindElement(By.CssSelector("table tbody tr"));
|
|
|
+ });
|
|
|
+ tdStatus = wait.Until((d) => {
|
|
|
+ return firstTr.FindElement(By.XPath(".//td")).FindElement(By.XPath("following-sibling::td[4]"));
|
|
|
+ });
|
|
|
strStatus = tdStatus.Text;
|
|
|
}
|
|
|
|
|
|
Log($"{DateTime.Now}\t点击下载按钮下载文档");
|
|
|
- firstTr = waitGetElementByTagName(wait, "tr");
|
|
|
+ firstTr = wait.Until((d) => {
|
|
|
+ return d.FindElement(By.CssSelector("table tbody tr"));
|
|
|
+ });
|
|
|
firstTr.FindElement(By.XPath(".//td/a[@title='下载']")).Click();
|
|
|
//System.Threading.Thread.Sleep(5000);
|
|
|
//btnDownload.Click();
|
|
@@ -914,8 +928,9 @@ namespace wispro.sp.utility
|
|
|
|
|
|
//删除下载记录
|
|
|
Log($"{DateTime.Now}\t删除下载记录");
|
|
|
- firstTr = waitGetElementByTagName(wait, "tr");// driver.FindElement(By.TagName("tr"));
|
|
|
-
|
|
|
+ firstTr = wait.Until((d) => {
|
|
|
+ return d.FindElement(By.CssSelector("table tbody tr"));
|
|
|
+ });
|
|
|
firstTr.FindElement(By.XPath(".//td/a[@title='删除']")).Click();
|
|
|
|
|
|
//System.IO.FileInfo file = new System.IO.FileInfo(strFilePath.Replace("~", "_"));
|
|
@@ -1001,7 +1016,7 @@ namespace wispro.sp.utility
|
|
|
//driver.FindElement(By.Id("libase")).Click();
|
|
|
|
|
|
retObject.CaseName = driver.FindElement(By.Id("p_case_info__case_name")).GetAttribute("value"); //案件名称
|
|
|
- retObject.CustomerName = driver.FindElement(By.Id("p_case_info__customer_id")).GetAttribute("value"); //客户名称
|
|
|
+ retObject.CustomerName = driver.FindElement(By.Id("p_case_info__customer_id")).GetAttribute("value").Replace("(null)",""); //客户名称
|
|
|
retObject.BusinessType = driver.FindElement(By.Id("p_case_info__business_type_id")).GetAttribute("value"); //业务类型
|
|
|
|
|
|
retObject.CaseState = GetSelectText(driver.FindElement(By.Id("p_case_info__case_status_id")));
|
|
@@ -1090,11 +1105,19 @@ namespace wispro.sp.utility
|
|
|
driver.SwitchTo().ParentFrame().SwitchTo().Frame(2);
|
|
|
IWebElement temDoItemLink = null;
|
|
|
string temFinishedDate = "";
|
|
|
+
|
|
|
+ string xpathQuery = "";
|
|
|
foreach (string doItemName in doItemNames)
|
|
|
{
|
|
|
+ xpathQuery = string.IsNullOrEmpty(xpathQuery) ? $"normalize-space()='{doItemName}'" : $"{xpathQuery} or normalize-space()='{doItemName}'";
|
|
|
+ }
|
|
|
+
|
|
|
+ //foreach (string doItemName in doItemNames)
|
|
|
+ //{
|
|
|
var DoItemLinks = wait.Until((d) =>
|
|
|
{
|
|
|
- return d.FindElements(By.XPath($"//td[@colname='ctrl_proc'][normalize-space()='{doItemName}']"));
|
|
|
+ d.SwitchTo().ParentFrame().SwitchTo().Frame(2);
|
|
|
+ return d.FindElements(By.XPath($"//td[@colname='ctrl_proc' and ({xpathQuery})]"));
|
|
|
});
|
|
|
|
|
|
if (DoItemLinks.Count > 0)
|
|
@@ -1118,7 +1141,7 @@ namespace wispro.sp.utility
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ //}
|
|
|
|
|
|
if(temDoItemLink != null)
|
|
|
{
|
|
@@ -1128,8 +1151,9 @@ namespace wispro.sp.utility
|
|
|
retObject.CustomerLimitDate = temDoItemLink.FindElement(By.XPath("following-sibling::td[5]")).Text; //客户期限
|
|
|
retObject.FinishedDate = temDoItemLink.FindElement(By.XPath("following-sibling::td[7]")).Text; //处理事项完成日
|
|
|
retObject.DoPersons = temDoItemLink.FindElement(By.XPath("following-sibling::td[8]")).Text; //处理人
|
|
|
- retObject.DoItemMemo = temDoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
+ retObject.ExternalHandler = temDoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //对外处理人
|
|
|
retObject.Reviewer = temDoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
+ retObject.DoItemMemo = temDoItemLink.FindElement(By.XPath("following-sibling::td[12]")).Text; //处理事项备注
|
|
|
|
|
|
retObject.DoItem = temDoItemLink.Text;
|
|
|
|
|
@@ -1224,7 +1248,7 @@ namespace wispro.sp.utility
|
|
|
/// <returns></returns>
|
|
|
public static dynamic GetPerformanceRecord(string caseNo,string doItemName,string caseStage=null)
|
|
|
{
|
|
|
- if (caseNo.StartsWith("APCN"))
|
|
|
+ if (caseNo.Contains("APCN"))
|
|
|
{
|
|
|
//商标
|
|
|
return GetAPCNPerformanceRecord(caseNo, doItemName, caseStage);
|
|
@@ -1305,9 +1329,10 @@ namespace wispro.sp.utility
|
|
|
retObject.CustomerLimitDate = DoItemLink.FindElement(By.XPath("following-sibling::td[5]")).Text; //客户期限
|
|
|
retObject.FinishedDate = DoItemLink.FindElement(By.XPath("following-sibling::td[7]")).Text; //处理事项完成日
|
|
|
retObject.DoPersons = DoItemLink.FindElement(By.XPath("following-sibling::td[8]")).Text; //处理人
|
|
|
- retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
+ retObject.ExternalHandler = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //对外处理人
|
|
|
retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
-
|
|
|
+ retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[12]")).Text; //处理事项备注
|
|
|
+
|
|
|
DoItemLink.Click();
|
|
|
break;
|
|
|
}
|
|
@@ -1322,8 +1347,10 @@ namespace wispro.sp.utility
|
|
|
retObject.CustomerLimitDate = DoItemLink.FindElement(By.XPath("following-sibling::td[5]")).Text; //客户期限
|
|
|
retObject.FinishedDate = DoItemLink.FindElement(By.XPath("following-sibling::td[7]")).Text; //处理事项完成日
|
|
|
retObject.DoPersons = DoItemLink.FindElement(By.XPath("following-sibling::td[8]")).Text; //处理人
|
|
|
- retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
+ retObject.ExternalHandler = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //对外处理人
|
|
|
+
|
|
|
retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
+ retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[12]")).Text; //处理事项备注
|
|
|
|
|
|
DoItemLink.Click();
|
|
|
|
|
@@ -1364,7 +1391,7 @@ namespace wispro.sp.utility
|
|
|
|
|
|
});
|
|
|
retObject.CaseName = p_case_info__case_name.GetAttribute("value"); //案件名称
|
|
|
- retObject.CustomerName = driver.FindElement(By.Id("p_case_info__customer_id")).GetAttribute("value"); //客户名称
|
|
|
+ retObject.CustomerName = driver.FindElement(By.Id("p_case_info__customer_id")).GetAttribute("value").Replace("(null)",""); //客户名称
|
|
|
retObject.BusinessType = driver.FindElement(By.Id("p_case_info__business_type_id")).GetAttribute("value"); //业务类型
|
|
|
|
|
|
retObject.CaseState = GetSelectText(driver.FindElement(By.Id("p_case_info__case_status_id")));
|
|
@@ -1476,14 +1503,12 @@ namespace wispro.sp.utility
|
|
|
|
|
|
if (temCaseStage == caseStage)
|
|
|
{
|
|
|
- retObject.CaseStage = DoItemLink.FindElement(By.XPath("following-sibling::td[1]")).Text; //案件阶段
|
|
|
- retObject.DoItemState = DoItemLink.FindElement(By.XPath("following-sibling::td[2]")).Text; //处理事项处理状态
|
|
|
- retObject.InternalDate = DoItemLink.FindElement(By.XPath("following-sibling::td[4]")).Text; //内部期限
|
|
|
- retObject.CustomerLimitDate = DoItemLink.FindElement(By.XPath("following-sibling::td[5]")).Text; //客户期限
|
|
|
- retObject.FinishedDate = DoItemLink.FindElement(By.XPath("following-sibling::td[7]")).Text; //处理事项完成日
|
|
|
- retObject.DoPersons = DoItemLink.FindElement(By.XPath("following-sibling::td[8]")).Text; //处理人
|
|
|
- retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[9]")).Text; //处理事项备注
|
|
|
- retObject.Reviewer = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //核稿人
|
|
|
+ retObject.DoItemState = DoItemLink.FindElement(By.XPath("following-sibling::td[1]")).Text; //处理事项处理状态
|
|
|
+ retObject.InternalDate = DoItemLink.FindElement(By.XPath("following-sibling::td[3]")).Text; //内部期限
|
|
|
+ retObject.CustomerLimitDate = DoItemLink.FindElement(By.XPath("following-sibling::td[4]")).Text; //客户期限
|
|
|
+ retObject.FinishedDate = DoItemLink.FindElement(By.XPath("following-sibling::td[6]")).Text; //处理事项完成日
|
|
|
+ retObject.DoPersons = DoItemLink.FindElement(By.XPath("following-sibling::td[7]")).Text; //处理人
|
|
|
+ retObject.DoItemMemo = DoItemLink.FindElement(By.XPath("following-sibling::td[10]")).Text; //处理事项备注
|
|
|
|
|
|
DoItemLink.Click();
|
|
|
//driver.ExecuteJavaScript("$(arguments[0]).click()", DoItemLink);
|