Bladeren bron

修改OA表单上传逻辑

koul 4 jaren geleden
bovenliggende
commit
28aa78c105

+ 10 - 10
src/main/java/com/uas/service/Impl/ISegHetongServiceImpl.java

@@ -82,9 +82,9 @@ public class ISegHetongServiceImpl implements ISegHetongService {
         try {
             SqlRowList rs;
             if (id==0){
-                rs = baseDao.queryForRowSet("select ct_id,em_code,ct_varchar50_2,ct_recorder,ct_varchar50_3,ct_varchar50_4,ct_varchar50_6,ct_varchar50_5,ct_varchar50_7,ct_varchar50_8,ct_varchar50_9,ct_varchar50_10,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_15,ct_varchar50_16,ct_varchar50_17,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,to_char(ct_date_2,'yyyy-MM-dd HH24:mi:ss') ct_date_2,ct_varchar50_18,ct_varchar50_19,ct_varchar50_20,ct_varchar500_1,ct_varchar500_2,ct_varchar50_30,ct_varchar500_4,ct_varchar500_5 from customtable left join employee on ct_recorder=em_name where ct_caller='HTSP' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1");
+                rs = baseDao.queryForRowSet("select ct_id,em_code,em_mobile,ct_varchar50_2,ct_recorder,ct_varchar50_3,ct_varchar50_4,ct_varchar50_6,ct_varchar50_5,ct_varchar50_7,ct_varchar50_8,ct_varchar50_9,ct_varchar50_10,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_15,ct_varchar50_16,ct_varchar50_17,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,to_char(ct_date_2,'yyyy-MM-dd HH24:mi:ss') ct_date_2,ct_varchar50_18,ct_varchar50_19,ct_varchar50_20,ct_varchar500_1,ct_varchar500_2,ct_varchar50_30,ct_varchar500_4,ct_varchar500_5 from customtable left join employee on ct_recorder=em_name where ct_caller='HTSP' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1");
             }else {
-                rs = baseDao.queryForRowSet("select ct_id,em_code,ct_varchar50_2,ct_recorder,ct_varchar50_3,ct_varchar50_4,ct_varchar50_6,ct_varchar50_5,ct_varchar50_7,ct_varchar50_8,ct_varchar50_9,ct_varchar50_10,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_15,ct_varchar50_16,ct_varchar50_17,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,to_char(ct_date_2,'yyyy-MM-dd HH24:mi:ss') ct_date_2,ct_varchar50_18,ct_varchar50_19,ct_varchar50_20,ct_varchar500_1,ct_varchar500_2,ct_varchar50_30,ct_varchar500_4,ct_varchar500_5 from customtable left join employee on ct_recorder=em_name where ct_caller='HTSP' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1 and ct_id="+id);
+                rs = baseDao.queryForRowSet("select ct_id,em_code,em_mobile,ct_varchar50_2,ct_recorder,ct_varchar50_3,ct_varchar50_4,ct_varchar50_6,ct_varchar50_5,ct_varchar50_7,ct_varchar50_8,ct_varchar50_9,ct_varchar50_10,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_15,ct_varchar50_16,ct_varchar50_17,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,to_char(ct_date_2,'yyyy-MM-dd HH24:mi:ss') ct_date_2,ct_varchar50_18,ct_varchar50_19,ct_varchar50_20,ct_varchar500_1,ct_varchar500_2,ct_varchar50_30,ct_varchar500_4,ct_varchar500_5 from customtable left join employee on ct_recorder=em_name where ct_caller='HTSP' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1 and ct_id="+id);
             }
             while (rs.next()) {
                 SegHetongParamterForm form = new SegHetongParamterForm();
@@ -95,7 +95,7 @@ public class ISegHetongServiceImpl implements ISegHetongService {
                 form.setDocSubject("合同审批");
 
                 // 流程发起人
-                form.setDocCreator("{\"PersonNo\": \""+rs.getString("em_code")+"\"}");
+                form.setDocCreator("{\"LoginName\": \""+rs.getString("em_mobile")+"\"}");
 
                 // 文档关键字
                 form.setFdKeyword("[\""+rs.getString("ct_varchar50_4")+"\"]");
@@ -110,12 +110,12 @@ public class ISegHetongServiceImpl implements ISegHetongService {
                 JSONObject object = new JSONObject();
                 JSONObject person = new JSONObject();
                 if (recorder!=null&&!"".equals(recorder)){
-                    Object[] employees = baseDao.getFieldsDataByCondition("employee", "em_code,em_departmentcode", "em_name" + "='" + recorder + "'");
-                    object.put("DeptNo",employees[1].toString());
-                    person.put("PersonNo",employees[0].toString());
+                    Object[] employees = baseDao.getFieldsDataByCondition("employee left join department on em_departmentcode=dp_code", "em_mobile,dp_landrayid", "em_name" + "='" + recorder + "'");
+                    object.put("Id",employees[1].toString());
+                    person.put("LoginName",employees[0].toString());
                 }else {
-                    object.put("DeptNo","");
-                    person.put("PersonNo","");
+                    object.put("Id","");
+                    person.put("LoginName","");
                 }
                 json.put("fd_3604de30e24a0c",object);
                 json.put("fd_3604de42ba7844",person);
@@ -168,10 +168,10 @@ public class ISegHetongServiceImpl implements ISegHetongService {
                     json.put("fd_3604de4b0fd102","");
                 }else {
                     json.put("fd_3752bcecf663a2",1);
-                    Object data = baseDao.getFieldDataByCondition("employee", "em_code",
+                    Object data = baseDao.getFieldDataByCondition("employee", "em_mobile",
                             "em_name='" + rs.getString("ct_varchar50_30") + "'");
                     JSONObject personNo = new JSONObject();
-                    personNo.put("PersonNo",data.toString());
+                    personNo.put("LoginName",data.toString());
                     json.put("fd_3604de4b0fd102",personNo);
                 }
                 String varchar5004 = rs.getString("ct_varchar500_4");

+ 24 - 19
src/main/java/com/uas/service/Impl/KmReviewWebserviceServiceImpl.java

@@ -82,9 +82,9 @@ public class KmReviewWebserviceServiceImpl implements KmReviewWebserviceService
         try {
             SqlRowList rs;
             if (id==0){
-                rs = baseDao.queryForRowSet("select va_id,em_code,em_departmentcode,va_employee,to_char(va_time,'yyyy-MM-dd HH24:mi:ss') va_time,to_char(va_endtime,'yyyy-MM-dd HH24:mi:ss') va_endtime,va_area,va_othername,va_driver,va_vecard,va_address,va_vecode,va_vetype from Vehicleapply left join employee on va_employee=em_name where va_sendstatus='待上传' and va_status='已审核' and em_islandray=-1");
+                rs = baseDao.queryForRowSet("select va_id,em_code,em_mobile,dp_landrayid,va_employee,to_char(va_time,'yyyy-MM-dd HH24:mi:ss') va_time,to_char(va_endtime,'yyyy-MM-dd HH24:mi:ss') va_endtime,va_area,va_othername,va_driver,va_vecard,va_address,va_vecode,va_vetype from Vehicleapply left join employee on va_employee=em_name left join department on em_departmentcode=dp_code where va_sendstatus='待上传' and va_status='已审核' and em_islandray=-1");
             }else {
-                rs = baseDao.queryForRowSet("select va_id,em_code,em_departmentcode,va_employee,to_char(va_time,'yyyy-MM-dd HH24:mi:ss') va_time,to_char(va_endtime,'yyyy-MM-dd HH24:mi:ss') va_endtime,va_area,va_othername,va_driver,va_vecard,va_address,va_vecode,va_vetype from Vehicleapply left join employee on va_employee=em_name where va_sendstatus='待上传' and va_status='已审核' and em_islandray=-1 and va_id="+id);
+                rs = baseDao.queryForRowSet("select va_id,em_code,em_mobile,dp_landrayid,va_employee,to_char(va_time,'yyyy-MM-dd HH24:mi:ss') va_time,to_char(va_endtime,'yyyy-MM-dd HH24:mi:ss') va_endtime,va_area,va_othername,va_driver,va_vecard,va_address,va_vecode,va_vetype from Vehicleapply left join employee on va_employee=em_name left join department on em_departmentcode=dp_code where va_sendstatus='待上传' and va_status='已审核' and em_islandray=-1 and va_id="+id);
             }
             while (rs.next()) {
                 KmReviewParamterForm form = new KmReviewParamterForm();
@@ -95,20 +95,22 @@ public class KmReviewWebserviceServiceImpl implements KmReviewWebserviceService
                 form.setDocSubject("用车申请");
 
                 // 流程发起人
-                form.setDocCreator("{\"PersonNo\": \""+rs.getString("em_code")+"\"}");
+                form.setDocCreator("{\"LoginName\": \""+rs.getString("em_mobile")+"\"}");
 
                 // 文档关键字
                 form.setFdKeyword("[\""+rs.getString("va_vetype")+"\"]");
+                form.setDocStatus("20");
+                form.setFlowParam(new JSONObject().toString());
 
                 // 流程表单
                 /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH24:mi:ss");*/
                 JSONObject json = new JSONObject();
                 JSONObject object = new JSONObject();
-                object.put("DeptNo",rs.getString("em_departmentcode"));
+                object.put("Id",rs.getString("dp_landrayid"));
                 json.put("fd_3730d421cbfb0a",object);
-                JSONObject personNo = new JSONObject();
-                personNo.put("PersonNo",rs.getString("em_code"));
-                json.put("fd_3730d4225fbd78",personNo);
+                JSONObject LoginName = new JSONObject();
+                LoginName.put("LoginName",rs.getString("em_mobile"));
+                json.put("fd_3730d4225fbd78",LoginName);
                 json.put("fd_3730d4352f148c",rs.getString("va_time"));
                 json.put("fd_3730d441a0c6c8",rs.getString("va_endtime"));
                 json.put("fd_3730d41ece1a68",rs.getString("va_area"));
@@ -116,11 +118,11 @@ public class KmReviewWebserviceServiceImpl implements KmReviewWebserviceService
                 String driver = rs.getString("va_driver");
                 JSONObject person = new JSONObject();
                 if (driver!=null&&!"".equals(driver)){
-                    Object data = baseDao.getFieldDataByCondition("employee", "em_code",
+                    Object data = baseDao.getFieldDataByCondition("employee", "em_mobile",
                             "em_name='" + driver + "'");
-                    person.put("PersonNo",data.toString());
+                    person.put("LoginName",data.toString());
                 }else {
-                    person.put("PersonNo","");
+                    person.put("LoginName","");
                 }
                 json.put("fd_3730d464dd0726",person);
                 json.put("fd_3730d46eca287c",rs.getString("va_vecard"));
@@ -167,23 +169,25 @@ public class KmReviewWebserviceServiceImpl implements KmReviewWebserviceService
         try {
             SqlRowList rs;
             if (id==0){
-                rs = baseDao.queryForRowSet("select ct_id,em_code,ct_varchar50_2,ct_varchar50_3,ct_varchar500_1,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,ct_number_1,ct_number_2,ct_varchar50_5,ct_varchar50_7,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_10,ct_varchar50_11,ct_varchar50_6,ct_varchar50_15 from customtable left join employee on ct_recorder=em_name where ct_caller='JDAPSQB' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1");
+                rs = baseDao.queryForRowSet("select ct_id,em_code,em_mobile,ct_varchar50_2,ct_varchar50_3,ct_varchar500_1,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,ct_number_1,ct_number_2,ct_varchar50_5,ct_varchar50_7,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_10,ct_varchar50_11,ct_varchar50_6,ct_varchar50_15 from customtable left join employee on ct_recorder=em_name where ct_caller='JDAPSQB' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1");
             }else {
-                rs = baseDao.queryForRowSet("select ct_id,em_code,ct_varchar50_2,ct_varchar50_3,ct_varchar500_1,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,ct_number_1,ct_number_2,ct_varchar50_5,ct_varchar50_7,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_10,ct_varchar50_11,ct_varchar50_6,ct_varchar50_15 from customtable left join employee on ct_recorder=em_name where ct_caller='JDAPSQB' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1 and ct_id="+id);
+                rs = baseDao.queryForRowSet("select ct_id,em_code,em_mobile,ct_varchar50_2,ct_varchar50_3,ct_varchar500_1,to_char(ct_date_1,'yyyy-MM-dd HH24:mi:ss') ct_date_1,ct_number_1,ct_number_2,ct_varchar50_5,ct_varchar50_7,ct_varchar50_12,ct_varchar50_13,ct_varchar50_14,ct_varchar50_10,ct_varchar50_11,ct_varchar50_6,ct_varchar50_15 from customtable left join employee on ct_recorder=em_name where ct_caller='JDAPSQB' and ct_status='已审核' and ct_sendstatus='待上传' and em_islandray=-1 and ct_id="+id);
             }
             while (rs.next()) {
                 KmReviewParamterForm form = new KmReviewParamterForm();
                 // 文档模板id
-                form.setFdTemplateId("179828e52e0347da3dc793a47da89769");
+                form.setFdTemplateId("170eb52acb158643c542f8149e68e3a1");
 
                 // 文档标题
                 form.setDocSubject("业务接待安排申请");
 
                 // 流程发起人
-                form.setDocCreator("{\"PersonNo\": \""+rs.getString("em_code")+"\"}");
+                form.setDocCreator("{\"LoginName\": \""+rs.getString("em_mobile")+"\"}");
 
                 // 文档关键字
                 form.setFdKeyword("[\""+rs.getString("CT_VARCHAR500_1")+"\"]");
+                form.setDocStatus("20");
+                form.setFlowParam(new JSONObject().toString());
 
                 // 流程表单
                 JSONObject json = new JSONObject();
@@ -191,12 +195,13 @@ public class KmReviewWebserviceServiceImpl implements KmReviewWebserviceService
                 JSONObject object = new JSONObject();
                 JSONObject person = new JSONObject();
                 if (varchar502!=null&&!"".equals(varchar502)){
-                    Object[] employees = baseDao.getFieldsDataByCondition("employee", "em_code,em_departmentcode", "em_name" + "='" + varchar502 + "'");
-                    object.put("DeptNo",employees[1].toString());
-                    person.put("PersonNo",employees[0].toString());
+                    Object[] employees = baseDao.getFieldsDataByCondition("employee left join department on em_departmentcode=dp_code", "em_mobile,dp_landrayid",
+                            "em_name" + "='" + varchar502 + "'");
+                    object.put("Id",employees[1].toString());
+                    person.put("LoginName",employees[0].toString());
                 }else {
-                    object.put("DeptNo","");
-                    person.put("PersonNo","");
+                    object.put("Id","");
+                    person.put("LoginName","");
 
                 }
                 json.put("fd_36f09e73a165e8",object);

+ 11 - 8
src/main/java/com/uas/service/Impl/SyncOrgElementsBaseInfoServiceImpl.java

@@ -86,7 +86,7 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
     private JSONArray getOrgJsonData(String type){
         JSONArray resultArray = new JSONArray();
         // 《组织》 数据对象
-        SqlRowList orgs = baseDao.queryForRowSet("select row_number() over (order by or_id) rn, or_id,or_code,or_name,or_subof ,or_parentname,or_headmancode,or_headmanname,or_path, (select or_headmanname from hrorg ho where ho.or_id=hr.or_subof) as superleader from hrorg hr order by or_id");
+        SqlRowList orgs = baseDao.queryForRowSet("select row_number() over (order by or_id) rn, case when nvl(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id,or_code,or_name,or_subof ,or_parentname,or_headmancode,or_headmanname,or_path, (select or_headmanname from hrorg ho where ho.or_id=hr.or_subof) as superleader from hrorg hr order by or_id");
         while (orgs.next()) {
             JSONObject orgObj = new JSONObject();
             orgObj.put("id", orgs.getGeneralString("or_id")); // 唯一标识 (不允许为空)
@@ -106,7 +106,7 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
             resultArray.add(orgObj); // 组织机构
         }
         // 《部门》 数据对象
-        SqlRowList depts = baseDao.queryForRowSet("select row_number() over (order by dp_level) rn,dp_id, dp_code, dp_name, dp_status, dp_headmancode, dp_headmanname, dp_subof, dp_isleaf, dp_parentdpname, dp_level,(select dp_headmanname from department dp where dp_statuscode='AUDITED' and dp.dp_id=dept.dp_subof) as superleader from department dept where dp_statuscode='AUDITED' order by dp_level");
+        SqlRowList depts = baseDao.queryForRowSet("select row_number() over (order by dp_level) rn,case when nvl(dp_landrayid,' ')=' ' then to_char(dp_id) else Dp_Landrayid end dp_id, dp_code, dp_name, dp_status, dp_headmancode, dp_headmanname, dp_subof, dp_isleaf, dp_parentdpname, dp_level,(select dp_headmanname from department dp where dp_statuscode='AUDITED' and dp.dp_id=dept.dp_subof) as superleader from department dept where dp_statuscode='AUDITED' order by dp_level");
         while (depts.next()) {
             JSONObject deptObj = new JSONObject();
             deptObj.put("id", depts.getGeneralString("dp_id")); // 唯一标识 (不允许为空)
@@ -129,7 +129,7 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
         }
 
         // 《岗位》 数据对象
-        SqlRowList posts = baseDao.queryForRowSet("select row_number() over (order by jo_level) rn,jo_id, jo_code, jo_name, jo_orgid, jo_orgname, jo_headmancode, jo_headmanname , jo_subof, jo_parentname, jo_level, jo_emptype from job where jo_statuscode='AUDITED' order by jo_level");
+        SqlRowList posts = baseDao.queryForRowSet("select row_number() over (order by jo_level) rn,jo_id joid,case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end jo_id, jo_code, jo_name, jo_orgid, jo_orgname, jo_headmancode, jo_headmanname , jo_subof, jo_parentname, jo_level, jo_emptype from job where jo_statuscode='AUDITED' order by jo_level");
         while (posts.next()) {
             JSONObject postObj = new JSONObject();
             postObj.put("id", posts.getGeneralString("jo_id")); // 唯一标识 (不允许为空)
@@ -145,7 +145,9 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
                 int level = posts.getGeneralInt("jo_level");
                 String memo = posts.getObject("jo_orgname") == null ? "岗位层级" + level : "所属组织" + posts.getGeneralString("jo_orgname") + ",岗位层级" + level;
                 postObj.put("memo", memo); // 岗位架构说明 (可为空)
-                List<String> data = baseDao.query("select em_id from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 and em_defaulthsid=" + posts.getGeneralInt("jo_id"), String.class);
+                List<String> data = baseDao.query("select case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) " +
+                        "else em_landrayemid end em_id from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 " +
+                        "and (em_landrayjoid='" + posts.getString("jo_id")+"' or em_defaulthsid="+posts.getGeneralInt("joid")+")", String.class);
                 String[] persons =new String[]{};
                 if (data != null && data.size() > 0) {
                     persons = data.toArray(new String[data.size()]);
@@ -159,7 +161,7 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
 
 
         // 《人员》 数据对象
-        SqlRowList persons = baseDao.queryForRowSet("select rn,em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode,em_departmentcode,em_depart,em_position,em_defaulthsid from (select row_number() over (order by em_id) rn,em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode,em_departmentcode,em_depart,em_position,em_defaulthsid from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 order by em_id) where rn<=10");
+        SqlRowList persons = baseDao.queryForRowSet("select rn,em_id emid,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode,em_departmentcode,em_depart,em_position,em_defaulthsid from (select row_number() over (order by em_id) rn,em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode,em_departmentcode,em_depart,em_position,em_defaulthsid,em_landrayemid from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 order by em_id) where rn<=10");
         while (persons.next()) {
             JSONObject personObj = new JSONObject();
             // 唯一标识 (不允许为空)
@@ -174,15 +176,16 @@ public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseIn
                 personObj.put("isAvailable", true); // 是否有效,该属性决定该人员是否删除
                 personObj.put("memo", persons.getGeneralString("rn")); // 人员说明 (可为空)
                 personObj.put("parent", persons.getGeneralString("em_depart")); // 所在部门 (可为空)
-                List<String> data = baseDao.query("select job_id from empsjobs where emp_id=" + persons.getGeneralInt("em_id"), String.class);
+                List<String> data =
+                        baseDao.query("select case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end from empsjobs left join job on job_id=jo_id  where emp_id=" + persons.getGeneralInt("emid"), String.class);
                 String[] jobs =new String[]{};
                 if (data != null && data.size() > 0) {
-                    data.add(persons.getGeneralString("em_id"));
+                    data.add(persons.getGeneralString("jo_landrayid"));
                     jobs = data.toArray(new String[data.size()]);
 
                 }
                 personObj.put("posts", jobs); // 所属岗位
-                personObj.put("loginName", persons.getGeneralString("em_code")); //  登录名
+                personObj.put("loginName", persons.getGeneralString("em_mobile")); //  登录名
                 String password = "";
                 if (persons.getObject("em_password") != null) {
                     BASE64Encoder encoder = new BASE64Encoder();

+ 53 - 43
src/main/java/com/uas/service/Impl/SysNotifyTodoWebServiceImpl.java

@@ -102,27 +102,35 @@ public class SysNotifyTodoWebServiceImpl implements SysNotifyTodoWebService {
                 res="蓝凌OA待办下载失败,失败信息:"+result.getMessage();
             }else if (result.getReturnState()==2){
                 String message = result.getMessage();
-                JSONObject jsonObject = JSONObject.fromObject(message);
-                JSONArray docs = jsonObject.getJSONArray("docs");
-                 List<String> sqls = new ArrayList<>();
-                for (int i = 0; i <docs.size() ; i++) {
-                    Object obj = docs.get(i);
-                    JSONObject object = JSONObject.fromObject(obj);
-                    String link = object.get("link") == null ? null : object.getString("link").replace("&", "'||chr(38)||'");
-                    if(baseDao.getCountByCondition("jprocess","jp_landrayid='"+object.getString("id")+"'")==0){
-                        sqls.add("insert into jprocess(jp_id, jp_name, jp_launcherid, jp_launchername, jp_form, " +
-                                "jp_launchtime, jp_table, jp_status, jp_url,jp_landrayid,jp_nodedealman,jp_codevalue," +
-                                "jp_processinstanceid,jp_nodename)" +
-                                " values(process_seq.nextval,'"+ object.getString("subject")+"','"+object.getString("creator")+"','"+
-                                object.getString("creatorName")+"','" +object.getString("key")+"',to_date('"+object.getString("createTime")+"','yyyy-MM-dd HH24:mi:ss'),'"+
-                                object.getString("modelName")+"','待审批','http://oa.seg.com.cn:8081"+link+"','"+object.getString("id")+"','"+cond+"','"+object.getString("moduleName")+"','"+object.getString("id")+"','"+cond+"')");
-                    }
+                List<String> sqls = new ArrayList<>();
+                if (message.indexOf("errorPage")==-1) {
+                    JSONObject jsonObject = JSONObject.fromObject(message);
+                    JSONArray docs = jsonObject.getJSONArray("docs");
+                    for (int i = 0; i < docs.size(); i++) {
+                        Object obj = docs.get(i);
+                        JSONObject object = JSONObject.fromObject(obj);
+                        String link = object.get("link") == null ? null : object.getString("link").replace("&", "'||chr(38)||'");
+                        if (baseDao.getCountByCondition("jprocess", "jp_landrayid='" + object.getString("id") + "'") == 0) {
+                            sqls.add("insert into jprocess(jp_id, jp_name, jp_launcherid, jp_launchername, jp_form, " +
+                                    "jp_launchtime, jp_table, jp_status, jp_url,jp_landrayid,jp_nodedealman,jp_codevalue," +
+                                    "jp_processinstanceid,jp_nodename)" +
+                                    " values(process_seq.nextval,'" + object.getString("subject") + "','" + object.getString("creator") + "','" +
+                                    object.getString("creatorName") + "','" + object.getString("key") + "',to_date('" + object.getString("createTime") + "','yyyy-MM-dd HH24:mi:ss'),'" +
+                                    object.getString("modelName") + "','待审批','http://oa.seg.com.cn:8081" + link + "','" + object.getString("id") + "','" + cond + "','" + object.getString("moduleName") + "','" + object.getString("id") + "','" + cond + "')");
+                        }
 
+                    }
+                }else {
+                    SqlRowList rowSet = baseDao.queryForRowSet("select jp_processinstanceid from jprocess where nvl(jp_landrayid,' ')<>' ' and jp_status='待审批' and jp_nodedealman='" + cond + "'");
+                    while (rowSet.next()) {
+                       sqls.add("update jprocess set jp_status='已审批' where nvl(jp_landrayid,' ')<>' ' and jp_nodedealman='" + cond + "' and jp_processinstanceid='"+rowSet.getString("jp_processinstanceid")+"'");
+                        baseDao.execute("insert into jnode (jn_id,jn_name, jn_dealmanid,jn_processinstanceid,JN_DEALTIME, JN_DEALRESULT) values (jnode_seq.nextval,'" + cond + "','" + cond + "','" + rowSet.getString("jp_processinstanceid") + "',to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'详见蓝凌OA')");
+                    }
                 }
-                if (sqls!=null&&sqls.size()>0){
+                if (sqls != null && sqls.size() > 0) {
                     baseDao.execute(sqls);
                 }
-                res="蓝凌OA待办下载成功";
+                res = "蓝凌OA待办下载成功";
             }
 
         } catch (Exception e) {
@@ -151,35 +159,37 @@ public class SysNotifyTodoWebServiceImpl implements SysNotifyTodoWebService {
                 res="蓝凌OA已办下载失败,失败信息:"+result.getMessage();
             }else if (result.getReturnState()==2){
                 String message = result.getMessage();
-                JSONObject jsonObject = JSONObject.fromObject(message);
-                JSONArray docs = jsonObject.getJSONArray("docs");
-                List<String> sqls = new ArrayList<>();
-                for (int i = 0; i <docs.size() ; i++) {
-                    Object obj = docs.get(i);
-                    JSONObject object = JSONObject.fromObject(obj);
-                    String link = object.get("link") == null ? null : object.getString("link").replace("&", "'||chr(38)||'");
-                    if(baseDao.getCountByCondition("jprocess","jp_landrayid='"+object.getString("id")+"'")==0){
-                        sqls.add("insert into jprocess(jp_id, jp_name, jp_launcherid, jp_launchername, jp_form, " +
-                                "jp_launchtime, jp_table, jp_status, jp_url,jp_landrayid,jp_nodedealman,jp_codevalue," +
-                                "jp_processinstanceid,jp_nodename) values (process_seq.nextval,'"+ object.getString("subject")+"','"+object.getString("creator")+"','"+
-                                object.getString("creatorName")+"','" +object.getString("key")+"',to_date('"+object.getString("createTime")+"','yyyy-MM-dd HH24:mi:ss'),'"+
-                                object.getString("modelName")+"','已审批','http://oa.seg.com.cn:8081"+link+"','"+object.getString("id")+"','"+cond+"','"+object.getString("moduleName")+"','"+object.getString("id")+"','"+cond+"')");
-                        sqls.add("insert into jnode (jn_id,jn_name, jn_dealmanid,jn_processinstanceid,JN_DEALTIME, JN_DEALRESULT) values" +
-                                "(jnode_seq.nextval,'"+cond+"','"+cond+"','"+object.getString("id")+"',sysdate,'详见蓝凌OA')");
-                    }else {
-                        if (baseDao.getCountByCondition("jprocess", "jp_status='待审批' and jp_landrayid='"+object.getString("id")+"'")>0) {
-                            sqls.add("update jprocess set jp_status='已审批' where jp_landrayid='" + object.getString("id") + "'");
-                            sqls.add("insert into jnode (jn_id,jn_name, jn_dealmanid,jn_processinstanceid,JN_DEALTIME, JN_DEALRESULT) values " +
-                                    "(jnode_seq.nextval,'" + cond + "','" + cond + "','" + object.getString("id") +
-                                    "',sysdate,'详见蓝凌OA')");
+                if (message.indexOf("errorPage")==-1) {
+                    JSONObject jsonObject = JSONObject.fromObject(message);
+                    JSONArray docs = jsonObject.getJSONArray("docs");
+                    List<String> sqls = new ArrayList<>();
+                    for (int i = 0; i < docs.size(); i++) {
+                        Object obj = docs.get(i);
+                        JSONObject object = JSONObject.fromObject(obj);
+                        String link = object.get("link") == null ? null : object.getString("link").replace("&", "'||chr(38)||'");
+                        if (baseDao.getCountByCondition("jprocess", "jp_landrayid='" + object.getString("id") + "'") == 0) {
+                            sqls.add("insert into jprocess(jp_id, jp_name, jp_launcherid, jp_launchername, jp_form, " +
+                                    "jp_launchtime, jp_table, jp_status, jp_url,jp_landrayid,jp_nodedealman,jp_codevalue," +
+                                    "jp_processinstanceid,jp_nodename) values (process_seq.nextval,'" + object.getString("subject") + "','" + object.getString("creator") + "','" +
+                                    object.getString("creatorName") + "','" + object.getString("key") + "',to_date('" + object.getString("createTime") + "','yyyy-MM-dd HH24:mi:ss'),'" +
+                                    object.getString("modelName") + "','已审批','http://oa.seg.com.cn:8081" + link + "','" + object.getString("id") + "','" + cond + "','" + object.getString("moduleName") + "','" + object.getString("id") + "','" + cond + "')");
+                            sqls.add("insert into jnode (jn_id,jn_name, jn_dealmanid,jn_processinstanceid,JN_DEALTIME, JN_DEALRESULT) values" +
+                                    "(jnode_seq.nextval,'" + cond + "','" + cond + "','" + object.getString("id") + "',to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'详见蓝凌OA')");
+                        } else {
+                            if (baseDao.getCountByCondition("jprocess", "jp_status='待审批' and jp_landrayid='" + object.getString("id") + "'") > 0) {
+                                sqls.add("update jprocess set jp_status='已审批' where jp_landrayid='" + object.getString("id") + "'");
+                                sqls.add("insert into jnode (jn_id,jn_name, jn_dealmanid,jn_processinstanceid,JN_DEALTIME, JN_DEALRESULT) values " +
+                                        "(jnode_seq.nextval,'" + cond + "','" + cond + "','" + object.getString("id") +
+                                        "',to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'详见蓝凌OA')");
+                            }
                         }
-                    }
 
+                    }
+                    if (sqls != null && sqls.size() > 0) {
+                        baseDao.execute(sqls);
+                    }
+                    res = "蓝凌OA已办下载成功";
                 }
-                if (sqls!=null&&sqls.size()>0){
-                    baseDao.execute(sqls);
-                }
-                res="蓝凌OA已办下载成功";
             }
             System.err.println(res);
 

+ 1 - 1
src/main/resources/application-prod.yml

@@ -47,7 +47,7 @@ logging:
   config: classpath:log/logback-prod.xml
 Task:
   OrgMethod: saveSyncOrgElementsBaseInfo
-  OrgCron: 0 20 02 * * ?
+  OrgCron: 0 0 0/1 * * ?
   NotifyMethod: syncNotifyData
   NotifyCron: 0 0/3 * * * ?
   SENDYCSQMethod: sendYCSQ