diff --git a/WebRoot/upload/405CEA72-F373-477A-B53F-D3816BAB0817.docx b/WebRoot/upload/405CEA72-F373-477A-B53F-D3816BAB0817.docx new file mode 100644 index 00000000..7c09b3e3 Binary files /dev/null and b/WebRoot/upload/405CEA72-F373-477A-B53F-D3816BAB0817.docx differ diff --git a/pom.xml b/pom.xml index 44c13168..bc71c401 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,18 @@ aspose-pdf 22.7.1 + + + org.seleniumhq.selenium + selenium-java + 4.25.0 + + + + io.github.bonigarcia + webdrivermanager + 5.9.2 + diff --git a/src/main/java/Tools/DataEase/TestRead.java b/src/main/java/Tools/DataEase/TestRead.java index b3188c94..e6e200e3 100644 --- a/src/main/java/Tools/DataEase/TestRead.java +++ b/src/main/java/Tools/DataEase/TestRead.java @@ -2,11 +2,47 @@ package Tools.DataEase; +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + import java.io.IOException; +import java.time.Duration; public class TestRead { public static void main(String[] args) throws IOException { - String url = "http://www.wmarkj.com:27080/#/de-link/NtXhclS0"; + String url = "http://10.10.14.203/#/de-link/NtXhclS0"; + // 设置ChromeDriver的路径 + //System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); + + // 初始化Chrome浏览器 + WebDriver driver = new FirefoxDriver(); + // 打开目标URL + driver.get(url); + // 显式等待,等待页面中特定元素加载完成(例如:等待一个特定的div加载完成) + //WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(600)); // 10秒超时时间 + //WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("element-id"))); + + // 等待页面加载完成 + new WebDriverWait(driver, Duration.ofSeconds(600)).until(webDriver -> + ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete") + ); + + // 获取渲染后的HTML内容 + String renderedHtml = driver.getPageSource(); + // 输出渲染后的HTML内容 + renderedHtml= renderedHtml.replace("./assets","http://10.10.14.203/assets"); + renderedHtml= renderedHtml.replace("./js/","http://10.10.14.203/js/"); + renderedHtml= renderedHtml.replace("./dataease.svg","http://10.10.14.203/dataease.svg"); + System.out.println(renderedHtml); + //href="./assets + // 关闭浏览器 + driver.quit(); } } diff --git a/src/main/java/Tools/FillSubject.java b/src/main/java/Tools/FillSubject.java index 0061ede0..50b84a78 100644 --- a/src/main/java/Tools/FillSubject.java +++ b/src/main/java/Tools/FillSubject.java @@ -348,7 +348,7 @@ public class FillSubject { } //是否需要进行专家相关的审核操作 - boolean ZhuanJiaCheck = gm.getZhuanJaiCheckStatus(); + boolean ZhuanJiaCheck = gm.getZhuanJiaCheckStatus(); String subject_ids = ""; //4、修改为已扫描完成 for (Record record : list) { diff --git a/src/main/java/com/dsideal/QingLong/Const/GtzzConst.java b/src/main/java/com/dsideal/QingLong/Const/GtzzConst.java index a21252fd..8957b50f 100644 --- a/src/main/java/com/dsideal/QingLong/Const/GtzzConst.java +++ b/src/main/java/com/dsideal/QingLong/Const/GtzzConst.java @@ -24,10 +24,10 @@ public class GtzzConst { 一、初审专家分配 step_code=0201【初审专家分配】是进入本系统的第一个环节 - 1、全局变量 gm.getZhuanJaiCheckStatus()=1 + 1、全局变量 gm.getZhuanJiaCheckStatus()=1 项目数据进入系统后,董建华老师手工分配初审专家,以便进行step_code=0202【技术方案上报】和step_code=0203【技术方案初审】 - 2、全局变量 gm.getZhuanJaiCheckStatus()=0 + 2、全局变量 gm.getZhuanJiaCheckStatus()=0 项目数据进入系统时,在导数据的过程中(导数据的JAVA代码中实现),全局变量ZhuanJiaCheck=0则: (1)将此项目加到默认的ys_id=1 【初审专家分配系统保留任务】 这个任务中去 gm.saveYsSubject(1, subject_ids); @@ -40,22 +40,24 @@ public class GtzzConst { 二、技术方案上报 【学校的操作动作,为事件的激发动作】 step_code=0202 - 1、全局变量 gm.getZhuanJaiCheckStatus()=1 + 1、全局变量 gm.getZhuanJiaCheckStatus()=1 因为已经分配完初审专家,所以转到step_code=0203,进行技术方案初审 - 2、全局变量 gm.getZhuanJaiCheckStatus()=0 + 2、全局变量 gm.getZhuanJiaCheckStatus()=0 因为前面分配完初审专家,所以转入到step_code=0203,进行技术方案初审 此时,追加:模拟专家对此项目进行初审,通过,并且记录评审的回复为OK! - gm.pass(String org_code='03', int progress_id=?, String message='OK', int radio_id=5) + if(gm.getZhuanJiaCheckStatus()==0){ + gm.pass(String org_code='03', int progress_id=?, String message='OK', int radio_id=5) + } -------------------------------------------------------------------------------- 三、申请市级验收 【学校的操作动作,为事件的激发动作】 step_code=0305 - 1、全局变量 gm.getZhuanJaiCheckStatus()=1 + 1、全局变量 gm.getZhuanJiaCheckStatus()=1 因为还没有分配市级验收专家,所以转到step_code=0306,进行市级验收专家分配 - 2、全局变量 gm.getZhuanJaiCheckStatus()=0 + 2、全局变量 gm.getZhuanJiaCheckStatus()=0 因为还没有分配市级验收专家,所以需要: (1)自动分配市级验收专家为默认专家黄海 gm.saveSubjectExpert(subject_id, GtzzConst.EXPERT_SHIJI, GtzzConst.DEFAULT_EXPERT, GtzzConst.DEFAULT_EXPERT); diff --git a/src/main/java/com/dsideal/QingLong/Gtzz/Controller/GtzzController.java b/src/main/java/com/dsideal/QingLong/Gtzz/Controller/GtzzController.java index 8ee38f6c..250bc44b 100644 --- a/src/main/java/com/dsideal/QingLong/Gtzz/Controller/GtzzController.java +++ b/src/main/java/com/dsideal/QingLong/Gtzz/Controller/GtzzController.java @@ -57,7 +57,7 @@ public class GtzzController extends Controller { return; } String person_id = SessionKit.get(getRequest(), getResponse(), "person_id"); - String org_code =SessionKit.get(getRequest(), getResponse(),"org_code"); + String org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); Page list = gm.getToDoStepList(person_id, org_code, data_type, begin_date, end_date, step_code, is_current, keyword, page, limit); renderJson(CommonUtil.renderJsonForLayUI(list)); } @@ -142,7 +142,7 @@ public class GtzzController extends Controller { //清除统计缓存 gm.delTjCache(); //当前单位代码 - String org_code = SessionKit.get(getRequest(), getResponse(),"org_code"); + String org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); //判断当前步骤是提交状态,还是处于待审核状态 Record r = gm.getProgressInfoById(progress_id); String step_code = r.getStr("step_code"); @@ -186,10 +186,23 @@ public class GtzzController extends Controller { } else { //1:申请步骤 kv = gm.passNext(org_code, progress_id, radio_id, message); renderJson(kv); + + //根据学校上报的进度id,查询出这是哪个项目,然后再次查询出这个项目的最新progress_id,就是上面passNext后新产生的 + r = gm.getProgressInfoById(progress_id); + step_code = r.getStr("step_code"); + if (step_code.equals("0202")) { + //找出最新的progress_id + int subject_id = r.getInt("subject_id"); + int latestProgressId = gm.getLatestProgressIdBySubjectId(subject_id); + if (!gm.getZhuanJiaCheckStatus()) { + gm.pass("03", latestProgressId, "OK", 5); + } + } return; } //是不是0304(项目单位验收结束),准备触发拷贝市级验收条目 if (step_code.equals("0304")) gm.copyYsItem(r.getInt("subject_id"));//复制吧 + //返回 kv.set("success", true); kv.set("message", "保存成功!"); @@ -571,7 +584,8 @@ public class GtzzController extends Controller { //当前步骤是不是专家审核,专家审核还分两个阶段,每个阶段还细分为组长可以显示,组员不能显示 if (step_code.equals("0203") || step_code.equals("0307")) { //判断当前登录人员是不是组长 - if (gm.checkZjMaster(subject_id, step_code, SessionKit.get(getRequest(), getResponse(), "person_id"))) r2.set("show_button", true); + if (gm.checkZjMaster(subject_id, step_code, SessionKit.get(getRequest(), getResponse(), "person_id"))) + r2.set("show_button", true); else r2.set("show_button", false); } else r2.set("show_button", true); } else r2.set("show_button", false); @@ -639,7 +653,7 @@ public class GtzzController extends Controller { renderJson(kv); return; } - String org_code = SessionKit.get(getRequest(), getResponse(),"org_code"); + String org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); Page list = gm.getXmxcList(org_code, step_code, year, subject_type_id, keyword, page, limit); renderJson(CommonUtil.renderJsonForLayUI(list)); } @@ -688,7 +702,7 @@ public class GtzzController extends Controller { //判断文件大小大于20mb则返回错误信息,并终止上传,删除上传文件 long size = picFile.getFile().length(); if (size > 1024 * 1024 * 20) { - Map map = new HashMap<>(); + Map map = new HashMap<>(); map.put("success", false); map.put("message", "xls文件大小大于20MB,请检查是否正确!"); renderJson(map); @@ -826,7 +840,8 @@ public class GtzzController extends Controller { } //org_code=="":全部 //org_code=="1":自己单位 - if (!StrKit.isBlank(org_code) && org_code.equals("1")) org_code = SessionKit.get(getRequest(), getResponse(),"org_code"); + if (!StrKit.isBlank(org_code) && org_code.equals("1")) + org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); Page p = gm.querySubject(keyword, subject_type_ids, begin_date, end_date, data_type, sbnd, step_code, is_current, org_code, page, limit); renderJson(CommonUtil.renderJsonForLayUI(p)); } @@ -845,7 +860,8 @@ public class GtzzController extends Controller { } //org_code=="":全部 //org_code=="1":自己单位 - if (!StrKit.isBlank(org_code) && org_code.equals("1")) org_code = SessionKit.get(getRequest(), getResponse(),"org_code"); + if (!StrKit.isBlank(org_code) && org_code.equals("1")) + org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); Page p = gm.queryFile(keyword, document_type_ids, subject_type_ids, begin_date, end_date, data_type, sbnd, org_code, page, limit); renderJson(CommonUtil.renderJsonForLayUI(p)); } @@ -897,9 +913,9 @@ public class GtzzController extends Controller { int RoleId = gm.getSysRoleByPersonId(person_id);//四种角色中的哪一种? String org_code = null; if (RoleId == RoleConst.ZXX || RoleId == RoleConst.YEY || RoleId == RoleConst.ZY || RoleId == RoleConst.JFDW) { - org_code = SessionKit.get(getRequest(), getResponse(),"org_code"); + org_code = SessionKit.get(getRequest(), getResponse(), "org_code"); //项目进展(学校专用) - List tjxmJz = gm.tjxmJz(SessionKit.get(getRequest(), getResponse(),"org_code")); + List tjxmJz = gm.tjxmJz(SessionKit.get(getRequest(), getResponse(), "org_code")); kv.set("tjxmJz", tjxmJz); } else { //今年项目概览(市专用) @@ -974,7 +990,7 @@ public class GtzzController extends Controller { @Before({GET.class}) @IsLoginInterface({}) public void getJzList(int is_finish_flag, int page, int limit) { - Page p = gm.getJzList(SessionKit.get(getRequest(), getResponse(),"org_code"), is_finish_flag, page, limit); + Page p = gm.getJzList(SessionKit.get(getRequest(), getResponse(), "org_code"), is_finish_flag, page, limit); renderJson(CommonUtil.renderJsonForLayUI(p)); } diff --git a/src/main/java/com/dsideal/QingLong/Gtzz/Model/GtzzModel.java b/src/main/java/com/dsideal/QingLong/Gtzz/Model/GtzzModel.java index 0d3a59d1..b3d8cc5b 100644 --- a/src/main/java/com/dsideal/QingLong/Gtzz/Model/GtzzModel.java +++ b/src/main/java/com/dsideal/QingLong/Gtzz/Model/GtzzModel.java @@ -1911,7 +1911,7 @@ public class GtzzModel { * * @return */ - public boolean getZhuanJaiCheckStatus() { + public boolean getZhuanJiaCheckStatus() { boolean ZhuanJiaCheck = false; String install_area = GtzzConst.CHANGCHUAN;//长春市 //新增加的项目数据,需要根据全局变量ZhuanJiaCheck=1还是ZhuanJiaCheck=0,来决定是不是生成这个项目的评审专家和专家组组长 @@ -2919,5 +2919,15 @@ public class GtzzModel { } + /** + * 功能:获取项目最新进度ID + * @param subject_id + * @return + */ + public int getLatestProgressIdBySubjectId(int subject_id){ + String sql="select max(progress_id) as progress_id from t_gtzz_progress where subject_id=?"; + return Db.findFirst(sql, subject_id).getInt("progress_id"); + } + } \ No newline at end of file