diff --git a/com/api/login/util/LoginUtil.java b/com/api/login/util/LoginUtil.java index a1f03fe..84b6785 100644 --- a/com/api/login/util/LoginUtil.java +++ b/com/api/login/util/LoginUtil.java @@ -250,7 +250,7 @@ public class LoginUtil extends BaseBean { if("1".equals(isrsaopen)){ decriptList.add(login_id) ; decriptList.add(user_password) ; - List resultList = rsa.decryptList(request,decriptList) ; + List resultList = rsa.decryptList(request,decriptList,true) ; login_id = resultList.get(0) ; user_password = resultList.get(1) ; @@ -2022,7 +2022,7 @@ public class LoginUtil extends BaseBean { if ("1".equals(isrsaopen)) { decriptList.add(login_id); decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); + List resultList = rsa.decryptList(request, decriptList,true); login_id = resultList.get(0); user_password = resultList.get(1); @@ -2244,7 +2244,8 @@ public class LoginUtil extends BaseBean { if (imsgid == 184) { errorMsg[2] = SystemEnv.getErrorMsgName(imsgid, languageid); } else { - errorMsg[2] = (String) resObj.get("msg"); + // errorMsg[2] = (String) resObj.get("msg"); + errorMsg[2] = "账号或密码错误"; } } bb.writeLog("最后返回的msg"+errorMsg); diff --git a/com/api/nsyh/opinion/WfOpinion.java b/com/api/nsyh/opinion/WfOpinion.java new file mode 100644 index 0000000..79416ed --- /dev/null +++ b/com/api/nsyh/opinion/WfOpinion.java @@ -0,0 +1,14 @@ +package com.api.nsyh.opinion; + +import com.weavernorth.nsyh.opinion.web.WfOpinionAction; + +import javax.ws.rs.Path; + +/** + * @Author : 孙浩 + * @Date : 2022/3/1 9:39 + * @Version 1.0 + */ +@Path("/nsyh/opinion") +public class WfOpinion extends WfOpinionAction { +} diff --git a/com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java b/com/customization/doReadItProxy/ProxyRequestFormService/ProxyRequestFormServiceImpl.java similarity index 87% rename from com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java rename to com/customization/doReadItProxy/ProxyRequestFormService/ProxyRequestFormServiceImpl.java index e4da263..e4d9e33 100644 --- a/com/customization/ProxyRequestForm/ProxyRequestFormServiceImpl.java +++ b/com/customization/doReadItProxy/ProxyRequestFormService/ProxyRequestFormServiceImpl.java @@ -1,43 +1,26 @@ -package com.customization.ProxyRequestForm; +package com.customization.doReadItProxy.ProxyRequestFormService; -import com.alibaba.fastjson.JSONObject; -import com.engine.core.cfg.annotation.CommandDynamicProxy; import com.engine.core.cfg.annotation.ServiceDynamicProxy; import com.engine.core.cfg.annotation.ServiceMethodDynamicProxy; import com.engine.core.impl.aop.AbstractServiceProxy; -import com.engine.core.interceptor.AbstractCommandProxy; -import com.engine.core.interceptor.Command; -import com.engine.workflow.cmd.requestForm.GetRightMenuCmd; -import com.engine.workflow.constant.menu.SystemMenuType; -import com.engine.workflow.constant.requestForm.RequestMenuType; import com.engine.workflow.entity.requestForm.AutoApproveEntity; -import com.engine.workflow.entity.requestForm.RightMenu; import com.engine.workflow.service.RequestFormService; -import com.engine.workflow.service.RequestService; import com.engine.workflow.service.impl.RequestFormServiceImpl; import com.wbi.util.ParamUtil; -import lombok.extern.log4j.Log4j; -import lombok.extern.log4j.Log4j2; import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; import weaver.general.Util; -import weaver.hrm.User; -import weaver.systeminfo.SystemEnv; import weaver.workflow.request.RequestManager; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; import java.util.Map; /** - *
- * @author han.mengyu
- * @version 1.0
- * @createDate 2021/12/29
+ * */ @ServiceDynamicProxy(target = RequestFormServiceImpl.class, desc = "移动端小号拦截小红点") @Slf4j @@ -45,20 +28,32 @@ public class ProxyRequestFormServiceImpl extends AbstractServiceProxy implements @Override - @ServiceMethodDynamicProxy(desc="移动端小号拦截小红点") + @ServiceMethodDynamicProxy(desc="移动端小号拦截未读标记,OA系统流程") public Map updateReqInfo(HttpServletRequest httpServletRequest) { - - String loginidweaver = getCookie(httpServletRequest, "loginidweaver"); - log.info("loginidweaver==>{}",loginidweaver); - Map paramMap = ParamUtil.request2Map(httpServletRequest); - log.info("paramMap==>{}",paramMap); - //此id为小号//不请求已读接口 - if(loginidweaver.length() == 8 && "1".equals(paramMap.get("ismobile"))){ - return null; - }else { - executeMethod(httpServletRequest); + RecordSet rs = new RecordSet(); + String isOpen = rs.getPropValue("updateUnread", "isOpen"); + //为空默认不开启,1开启,0不开启 + try { + if (StringUtil.isEmpty(isOpen) || "0".equals(isOpen)){ + return (Map)executeMethod(httpServletRequest); + }else if ("1".equals(isOpen)) { + String loginidweaver = getCookie(httpServletRequest, "loginidweaver"); + log.info("loginidweaver==>{}",loginidweaver); + Map paramMap = ParamUtil.request2Map(httpServletRequest); + log.info("paramMap==>{}",paramMap); + //此id为小号//不请求已读接口 + if(loginidweaver.length() == 8 && "1".equals(paramMap.get("ismobile"))){ + return new HashMap<>(); + }else { + return (Map)executeMethod(httpServletRequest); + } + } + }catch (Exception e){ + e.printStackTrace(); + log.error(e.getMessage()); + return (Map) executeMethod(httpServletRequest); } - return null; + return new HashMap<>(); } private String getCookie(HttpServletRequest request,String name){ diff --git a/com/customization/doReadItProxy/proxyRequestListService/ProxyRequestListServiceImpl.java b/com/customization/doReadItProxy/proxyRequestListService/ProxyRequestListServiceImpl.java new file mode 100644 index 0000000..4f4304b --- /dev/null +++ b/com/customization/doReadItProxy/proxyRequestListService/ProxyRequestListServiceImpl.java @@ -0,0 +1,142 @@ +package com.customization.doReadItProxy.proxyRequestListService; + + +import com.engine.core.cfg.annotation.ServiceDynamicProxy; +import com.engine.core.cfg.annotation.ServiceMethodDynamicProxy; +import com.engine.core.impl.aop.AbstractServiceProxy; +import com.engine.workflow.service.RequestListService; +import com.engine.workflow.service.impl.RequestListServiceImpl; +import com.wbi.util.ParamUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@ServiceDynamicProxy(target = RequestListServiceImpl.class, desc = "移动端小号拦截小红点") +@Slf4j +public class ProxyRequestListServiceImpl extends AbstractServiceProxy implements RequestListService { + + + @Override + @ServiceMethodDynamicProxy(desc="移动端小号拦截未读标记,异构系统待办") + public Map doReadIt(HttpServletRequest httpServletRequest) { + RecordSet rs = new RecordSet(); + String isOpen = rs.getPropValue("updateUnread", "isOpen"); + if (StringUtil.isEmpty(isOpen) || "0".equals(isOpen)){ + return (Map)executeMethod(httpServletRequest); + }else if ("1".equals(isOpen)) { + String loginidweaver = getCookie(httpServletRequest, "loginidweaver"); + log.info("loginidweaver==>{}",loginidweaver); + Map paramMap = ParamUtil.request2Map(httpServletRequest); + log.info("paramMap==>{}",paramMap); + String ua = Util.null2String(paramMap.get("request_header_user_agent")); + //此id为小号//不请求已读接口 + if(loginidweaver.length() == 8 && ua.contains("E-Mobile7")){ + return new HashMap(); + }else { + return (Map)executeMethod(httpServletRequest); + } + } + return new HashMap(); + } + + private String getCookie(HttpServletRequest request,String name){ + try { + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if(name.equals(cookie.getName())){ + return Util.null2String(cookie.getValue()); + } + } + } + }catch (Exception e){ + log.error("getCookieError:{}",e.getMessage()); + e.printStackTrace(); + } + return ""; + } + + + @Override + public Map doingBaseInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map doingCountInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map doneBaseInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map doneCountInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map mineBaseInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map mineCountInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map splitPageKey(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getDoingNewCount(HttpServletRequest httpServletRequest) { + return null; + } + + + + @Override + public Map doSaveData(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getDefaultList(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getUnoperators(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getWfListParams(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map getHendledReqIds(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map continnuationProcessInfo(HttpServletRequest httpServletRequest) { + return null; + } + + @Override + public Map judgeReloadList(HttpServletRequest httpServletRequest) { + return null; + } +} diff --git a/com/engine/custom/archives/action/WorkflowToDocCus.java b/com/engine/custom/archives/action/WorkflowToDocCus.java new file mode 100644 index 0000000..6b3d2b2 --- /dev/null +++ b/com/engine/custom/archives/action/WorkflowToDocCus.java @@ -0,0 +1,1434 @@ +package com.engine.custom.archives.action; + +import com.alibaba.fastjson.JSON; +import com.api.doc.detail.service.DocSaveService; +import com.api.doc.detail.util.SendMsgForNewDocThread; +import com.api.workflow.util.ServiceUtil; +import com.engine.custom.archives.workflow.biz.requestForm.RequestDocPropManagerCus; +import com.engine.custom.archives.workflow.biz.requestForm.SaveDocDetailBizCus; +import com.engine.custom.archives.workflow.biz.requestForm.WfToDocBizCus; + + +import com.engine.workflow.biz.requestForm.WfWaterMark4WfToDocBiz; +import com.engine.workflow.entity.WorkflowToDocSettingInfoEntity; +import org.apache.commons.httpclient.*; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.params.HttpMethodParams; +import weaver.alioss.AliOSSObjectManager; +import weaver.conn.RecordSet; +import weaver.docs.category.SecCategoryComInfo; +import weaver.docs.docs.*; +import weaver.file.FileUpload; +import weaver.file.ImageFileManager; +import weaver.general.*; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.integration.logging.Logger; +import weaver.integration.logging.LoggerFactory; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; +import weaver.system.SystemComInfo; +import weaver.weaversso.CreateTokenUtil; +import weaver.workflow.msg.PoppupRemindInfoUtil; +import weaver.workflow.request.RequestManager; +import weaver.workflow.workflow.WorkflowConfigComInfo; + +import java.io.*; +import java.lang.reflect.InvocationTargetException; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +/** + * + * 用来将流程存为文档,步骤为先将流程保存为html文件, 然后新建一个html文档,保存的html文件作为html文档的附件 + * + * Date: 2008-12-18 + * @author cwj + * @version 1.0 + */ + +public class WorkflowToDocCus { + String SUCCESS = "1"; + String FAILURE_AND_CONTINUE = "0"; + + private static final Logger log = LoggerFactory.getLogger(WorkflowToDocCus.class); + + private final static int THREAD_NUM = 10;//10个固定线程池 + private final static ExecutorService expPool = Executors.newFixedThreadPool(THREAD_NUM);//使用线程池进行线程管理 + + private static ImageFileIdUpdate imageFileIdUpdate = new ImageFileIdUpdate(); + + private static VersionIdUpdate versionIdUpdate = new VersionIdUpdate(); + + private static Pattern port_pattern = Pattern.compile("^\\w*[\\s\\S]+(:\\d+)", Pattern.CASE_INSENSITIVE); + + private String isaesencrypt=""; + private String aescode=""; + + //底部签字意见列表显示数量 + private int pageSize =100; + + public static Class class_MultiLangFilter; + static { + try { + class_MultiLangFilter = Class.forName("weaver.filter.MultiLangFilter"); + } catch (ClassNotFoundException e) { + log.info("class MultiLangFilter doesn't exist"); + } + } + + /** + * + * @param request + * @param reqType 流程类型 0-主流程 1-子流程 + * @return + */ + public List execute(RequestInfo request ,int reqType ) { + log.info("流程转文档开始……workflowToDoc start"); + String cookie = null; + if (class_MultiLangFilter!=null) { + try { + cookie = (String)class_MultiLangFilter.getMethod("getThreadlocalCookies").invoke(class_MultiLangFilter); + } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + e.printStackTrace(); + } + } + + RequestManager requestManager = request.getRequestManager(); + String requestid = Util.null2String(request.getRequestid()); + String userid = Util.null2String(request.getLastoperator()); + String requestname = Util.null2String(request.getDescription()); + String workflowid = Util.null2String(request.getWorkflowid()); + List docids = Start(requestid, userid, requestname, workflowid, cookie, requestManager, reqType); + log.info("流程转文档结束……workflowToDoc end"); + return docids; + } + + //接口存文档 + public List Start(String requestid, String userid, String requestname, String workflowid, String cookie,RequestManager requestManager,int reqType) { + return Start(requestid, userid, requestname, workflowid, cookie,requestManager,true ,reqType); + } + + //批量存文档用 + public List Start(String requestid, String userid, String requestname, String workflowid, String cookie ,int reqType) { + RequestManager requestManager = null; + requestManager = getRequestManager(requestManager,requestid); + return Start(requestid, userid, requestname, workflowid, cookie,requestManager,false,reqType); + } + /** + * start + * @param requestid + * 流程id + * @param userid + * 用户id + * @param requestname + * 流程名 流程名作为文档的文档名 + * @param workflowid + * @return + */ + public List Start(String requestid, String userid, String requestname, String workflowid, String cookie, RequestManager requestManager, boolean isfromaction , int reqType) { + String src = requestManager.getSrc(); //用于判断是否流程监控干预 + User user = new User(Util.getIntValue(userid)); + //String wfdocpath = Util.null2String(getWfDocPath(workflowid)); + WfToDocBizCus wfbiz = new WfToDocBizCus(); + String wfdocpath = Util.null2String(wfbiz.getWfDocPath(workflowid,requestid)); + + + if (wfdocpath.equals("")) { + log.error("流程保存为文档失败,因为未设置流程保存文档的目录"); + return null; + } + String docfiles = getDocFiles(workflowid); + if ("".equals(docfiles)){ + log.error("流程保存为文档失败,因为未勾选文档附件复选框"); + return null; + } + //在这里先获取到modeid 线程中获取时流程可能已经到了下个节点导致模板获取的不对 + int nodeid = requestManager.getNodeid(); + com.api.workflow.util.ServiceUtil serviceUtil = new ServiceUtil(); + if (!isfromaction) + nodeid = serviceUtil.getCurrentNode(requestid,user); + String modeid = wfbiz.getModeid(Util.getIntValue(workflowid),Util.getIntValue(requestid),nodeid); + + int keepsign = getKeepSign(workflowid); + //增加配置文件 是否异步生成 + // String isSync = Util.null2String(new WorkflowConfigComInfo().getValue("workflowtodoc_issync")); + String isSync = "1"; + if (isSync.equals("1")){ + String filename = UUID.randomUUID().toString(); //防止高并发文件名重复 + String temppath = getFileSavePath(); + LinkedHashMap fileids = new LinkedHashMap (); + //是否开启水印 + boolean isOpenWaterMark = WfWaterMark4WfToDocBiz.isOpenWaterMark(Util.getIntValue(workflowid)); + String onlineHtmlMethod = Util.null2String(new WorkflowConfigComInfo().getValue("onlineHtmlMethod")); + + if (docfiles.contains("1")) { //在线html + if (!onlineHtmlMethod.equals("1")){ //走离线的方法 + generateOnLineHtml(requestid,userid, requestname, workflowid,wfdocpath, cookie,fileids,isOpenWaterMark); + } + } + //离线html/pdf + WfToDocBizCus wfToDocBiz = new WfToDocBizCus(user,pageSize,keepsign,docfiles,modeid,isOpenWaterMark); + wfToDocBiz.setOnlineHtmlMethod(onlineHtmlMethod); + wfToDocBiz.generatepdfandhtml(requestid,filename,temppath,src,reqType); + fileids.putAll(wfToDocBiz.getfileids(requestname,filename,temppath)); + //保存 + List docids = saveDocDetail(requestname, workflowid, requestid, wfdocpath, userid, fileids, requestManager, wfbiz); + return docids; + }else { + //线程池执行 + expPool.execute(new Runnable() { + @Override + public void run() { + + String filename = UUID.randomUUID().toString(); //防止高并发文件名重复 + String temppath = getFileSavePath(); + LinkedHashMap fileids = new LinkedHashMap (); + //是否开启水印 + boolean isOpenWaterMark = WfWaterMark4WfToDocBiz.isOpenWaterMark(Util.getIntValue(workflowid)); + String onlineHtmlMethod = Util.null2String(new WorkflowConfigComInfo().getValue("onlineHtmlMethod")); + + if (docfiles.contains("1")) { //在线html + if (!onlineHtmlMethod.equals("1")){ //走离线的方法 + generateOnLineHtml(requestid,userid, requestname, workflowid,wfdocpath, cookie,fileids,isOpenWaterMark); + } + } + //离线html/pdf + WfToDocBizCus wfToDocBiz = new WfToDocBizCus(user,pageSize,keepsign,docfiles,modeid,isOpenWaterMark); + wfToDocBiz.setOnlineHtmlMethod(onlineHtmlMethod); + wfToDocBiz.generatepdfandhtml(requestid,filename,temppath,src, reqType); + fileids.putAll(wfToDocBiz.getfileids(requestname,filename,temppath)); + //保存 + saveDocDetail(requestname, workflowid,requestid, wfdocpath,userid,fileids,requestManager,wfbiz); + } + }); + } + return new ArrayList<>(); + } + + + private void generateOnLineHtml(String requestid, String userid, String requestname, String workflowid,String wfdocpath, String cookie,LinkedHashMap fileids,boolean isOpenWaterMark){ + String url[] = getUrl(requestid, userid); + + if(url!=null && url.length==5){//避免url为空时,出现异常 + boolean hasNull = false;//检查5个值是不是有空,如果有,就不导为文档了 + /* + * QC271940解决AD域用户使用流程存为文档功能 + */ + /*for(int cx=0; cx 0){ //次账号,查询主账号,用主账号登录 + f_weaver_belongto_userid = userid; + sql = "select * from hrmresource where id = " + belongto; + rs.executeSql(sql); + if(rs.next()){ + isADaccount = rs.getString("isadaccount"); + loginid = rs.getString("loginid"); + password = rs.getString("password"); + } + } + + if ((!loginid.equals("") && !password.equals(""))||(!loginid.equals("")&&isADaccount.equals("1"))) {//QC271940[80][90]Ldap集成-解决AD用户无法使用流程存为文档功能 + para = "/workflow/request/ViewRequest.jsp?haveVerifyForward=true&requestid=" + requestid + + "¶2=" + loginid + "¶3=" + password; + } else { + log.error("流程保存为文档失败,因为用户名和密码为空,requestid=" + requestid); + return params; + } + + tempurl = oaaddress + + "/login/VerifyRtxLogin.jsp?urlfrom=workflowtodoc¶1=" + + para; + + Map result = CreateTokenUtil.createToken("ecology", loginid); + String token = ""; + if ("success".equals(result.get("state"))){ + token = result.get("data"); //tokenֵ + } else { + String msg = result.get("data"); + } + +// params[0] = oaaddress+"/login/VerifyRtxLogin.jsp"; + params[0] = oaaddress+"/wui/index.html?ssoToken="+token+"#/main"; + params[1] = "workflowtodoc"; + String pageurl = "/workflow/request/ViewRequest.jsp?haveVerifyForward=true&isworkflowhtmldoc=1&requestid=" + requestid; + if(accounttype > 0 && belongto > 0){ + pageurl += "&f_weaver_belongto_userid=" + f_weaver_belongto_userid + "&f_weaver_belongto_usertype=" + f_weaver_belongto_usertype; + } + params[2] = pageurl; + /*try { + params[3] = new String(loginid.getBytes(), "8859_1"); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }*/ + params[3] = PoppupRemindInfoUtil.encrypt(loginid);//解决中文账号问题 + params[4] = password; + + + return params; + } + + /** + * 根据url读取html文件,并生成文档,放到指定的目录下 + * + * @param url + * 流程页面的url + * + * @param requestid + * 流程id + * @param requestname + * 流程名称 + * @param workflowid + * 流程类型id + * @param wfdocpath + * 文档存放的目录 + */ + public void getWorkflowHtml(String url[], String requestid, + String requestname, String workflowid, String wfdocpath,String userid, String cookie,LinkedHashMap fileids) { + + HttpClient client = FWHttpConnectionManager.getHttpClient(); + + PostMethod method = new PostMethod(url[0]);//oa地址 + method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, + new DefaultHttpMethodRetryHandler(3, false)); + try { + NameValuePair[] params = { + new NameValuePair("urlfrom", url[1]),//urlfrom + new NameValuePair("para1",url[2]),//requesturl + new NameValuePair("para2",url[3] ),//loginid + new NameValuePair("para3",url[4])};//url4密码 + method.setRequestBody(params); + //log.info("----workflowtodoc----"+url[0] + "?urlfrom="+url[1]+"¶1="+url[2]+"¶2="+url[3]+"¶3="+url[4]); + + + int statusCode = client.executeMethod(method); + new BaseBean().writeLog("WorkflowToDoc statusCode :"+statusCode); + String temppath = getFileSavePath(); + String filename = System.currentTimeMillis() + ""; + String htmlname = temppath + filename; + File _temppath = new File(temppath); + if(!_temppath.exists()){ + _temppath.mkdirs(); + } + + if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY + || statusCode == HttpStatus.SC_MOVED_TEMPORARILY || statusCode == HttpStatus.SC_OK) { + Header locationHeader = method.getResponseHeader("location"); + if (locationHeader != null) { + String tempurl = locationHeader.getValue(); + if(!tempurl.startsWith("http://") && !tempurl.startsWith("https://")) { + //GET PORT + String port_string = ""; + Matcher matcher = port_pattern.matcher(url[0]); + if (matcher.find()) { + port_string = matcher.group(1); + } + tempurl = "http://" +// + (port_string.isEmpty()? "" : "localhost"+port_string) + + (port_string.isEmpty()? "" : "127.0.0.1"+port_string) + + tempurl; + + } + new BaseBean().writeLog("WorkflowToDoc cookie :"+cookie); + tempurl = getFinallyUrl(client, tempurl,cookie); + tempurl = tempurl.replaceFirst(".jsp", "Iframe.jsp"); + tempurl = tempurl+"&urlfrom=workflowtodoc"; + + new BaseBean().writeLog("WorkflowToDoc client.executeMethod(g) start :"+System.currentTimeMillis()); + new BaseBean().writeLog("WorkflowToDoc tempurl :"+tempurl); + GetMethod g = new GetMethod(tempurl); + g.setRequestHeader("cookie", cookie); + client.executeMethod(g); + OutputStream os=new FileOutputStream(htmlname); + + new BaseBean().writeLog("WorkflowToDoc client.executeMethod(g) end :"+System.currentTimeMillis()); +// SystemComInfo syscominfo=new SystemComInfo() ; +// this.isaesencrypt = syscominfo.getIsaesencrypt(); +// this.aescode = Util.getRandomString(13); +// if("1".equals(this.isaesencrypt)){ +// try{ +// os=AESCoder.encrypt(os, this.aescode); +// } catch(Exception e){ +// +// } +// } + OutputStreamWriter output = new OutputStreamWriter(os, "UTF-8"); + BufferedWriter bw = new BufferedWriter(output); + + BufferedReader in = new BufferedReader(new InputStreamReader(g.getResponseBodyAsStream(), "UTF-8")); + StringBuffer sb=new StringBuffer(); + String line = in.readLine(); + while (line != null) { + line = line.trim(); + if(line.indexOf("")>=0&&line.indexOf("openSignPrint()")>=0&&line.indexOf("onclick")>=0){ + //去掉转发按钮 + }else if(line.indexOf("=0&&line.indexOf("class=\"transto\"")>=0&&line.indexOf("onclick")>=0&&line.indexOf("transtoClick(this)")>=0){ + + }else if(line.indexOf("var")>=0&&line.indexOf("bar")>=0&&line.indexOf("eval")>=0&&line.indexOf("handler")>=0&&line.indexOf("text")>=0){ + sb.append("var bar=eval(\"[]\");\n"); + }else{ + sb.append(line + "\n"); + } + line = in.readLine(); + } + + //添加水印 + if(WfWaterMark4WfToDocBiz.isOpenWaterMark(Util.getIntValue(workflowid))){ + WfWaterMark4WfToDocBiz wfWaterMark4WfToDocBizCus = new WfWaterMark4WfToDocBiz(new User(Util.getIntValue(userid))); + wfWaterMark4WfToDocBizCus.generateFormData(requestid); + String watetmarkhtml = wfWaterMark4WfToDocBizCus.getWaterMarkHtml(false,Util.getIntValue(workflowid),Util.getIntValue(requestid),true); + int begIndex = sb.lastIndexOf(""); + String frontcontent = sb.substring(0, begIndex); + String behindcontent = sb.substring(begIndex); + sb.setLength(0); + sb.append(frontcontent) + .append("\n").append(watetmarkhtml) + .append(behindcontent); + } + + //去掉ext的button, + sb.append(""); + + String sdata=sb.toString(); + bw.write(sdata,0,sdata.length()); + +// long size = 0l; +// File f = new File(htmlname); +// if (f.exists()) { +// size = f.length(); +// } + + bw.flush(); + bw.close(); + in.close(); + + InputStream inputStream = null; + byte[] buffer = null; + File file = new File(htmlname); + if (file.exists()){ + try { + inputStream = new FileInputStream(file); + buffer = new byte[(int) file.length()]; + inputStream.read(buffer); + inputStream.close(); + }catch (Exception e){ + e.printStackTrace(); + } + } + +// +// if("1".equals(this.isaesencrypt)){ +// String sm4 = Util.null2String(new weaver.general.BaseBean().getPropValue("weaver_security_type","reversible_enc_type")); +// if("sm4".equalsIgnoreCase(sm4)&&aescode.startsWith("sm4start")&&aescode.endsWith("sm4end")){ +// InputStream is = null; +// String _htmlname = temppath + java.util.UUID.randomUUID(); +// try{ +// is = new FileInputStream(f); +// is = AESCoder.encrypt(is, aescode); +// +// OutputStream ops = new FileOutputStream(_htmlname); +// int n = 0; +// byte []b = new byte[2048]; +// while((n=is.read(b)) != -1){ +// ops.write(b,0,n); +// } +// ops.flush(); +// ops.close(); +// is.close(); +// //f.delete(); +// FileSecurityUtil.deleteFile(f); +// htmlname = _htmlname; +// }catch(Exception e){ +// new weaver.general.BaseBean().writeLog(e); +// } +// } +// } + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.setComefrom("WorkflowToDoc"); + imageFileManager.setData(buffer); + imageFileManager.setImagFileName(requestname+".html"); + int imagefileid = imageFileManager.saveImageFile(); +// System.out.println("-在线-imagefileid----"+imagefileid); + // 保存imagefile + //int imagefileid = saveImageFile(requestname, htmlname, size,false); + if (imagefileid <= 0) { + log.error("保存在线HTML文件失败"); + return ; + } + //把fileid存入fileidsmap中最后一起保存文档-附件关联关系 + fileids.put("online_html",imagefileid+""); + //saveDocDetail(requestname, htmlname, size, workflowid,requestid, wfdocpath,userid); + + if(g!=null){ + g.releaseConnection(); + } + if(method!=null){ + method.releaseConnection(); + } + } + } + + } catch (HttpException e) { + log.error("Fatal protocol violation: " + e.getMessage()); + e.printStackTrace(); + } catch (IOException e) { + log.error("Fatal transport error: " + e.getMessage()); + e.printStackTrace(); + }catch (Exception e) { + e.printStackTrace(); + new BaseBean().writeLog(e); + }finally { + method.releaseConnection(); + } + + } + + /** + * 获得最后的url,因为response之后的值,post方法不能直接获取 + * @param client + * @param url + * @return + */ + public String getFinallyUrl(HttpClient client, String url,String cookie) { + PostMethod g = new PostMethod(url); + try { + if(!"".equals(cookie) && cookie != null){ + g.setRequestHeader("cookie", cookie); + } + client.executeMethod(g); + } catch (Exception e) { + e.printStackTrace(); + return url; + } + Header locationHeader = g.getResponseHeader("location"); + if (locationHeader != null) { + url = locationHeader.getValue(); + url = getFinallyUrl(client, url); + } + if (g != null) { + g.releaseConnection(); + } + return url; + } + + public String getFinallyUrl(HttpClient client, String url) { + return getFinallyUrl(client,url,null); + } + + //重载下 以防有其他地方调用 + public Object saveDocDetail(String imagefilename, String workflowid, String requestid, String allwfdocpath, String userid, LinkedHashMap fileids, RequestManager requestManager) { + WfToDocBizCus wfbiz = new WfToDocBizCus(); + wfbiz.getWfDocPath( workflowid, requestid); + return this.saveDocDetail(imagefilename,workflowid,requestid,allwfdocpath,userid,fileids,requestManager,wfbiz); + } + /** + * 保存文档信息 + * + * @param imagefilename + * 文档名称 + * @param workflowid + * 流程类型id + * @param allwfdocpath + * 文档目录 + * @return 保存是否成功 + */ + public List saveDocDetail(String imagefilename, String workflowid, String requestid, String allwfdocpath, String userid, LinkedHashMap fileids, RequestManager requestManager, WfToDocBizCus wfbiz) { + RecordSet rs = new RecordSet(); + if (allwfdocpath.equals("")) { + log.error("流程保存为文档失败,因为未设置流程保存文档的目录"); + return new ArrayList<>(); + } + String wfdocpath[] = Util.TokenizerString2(allwfdocpath, ","); + int maincategory = 0; + int subcategory = 0; + int seccategory = 0; + + if(wfdocpath.length==1){//如果目录就传了一层,默认只给到seccategory + seccategory = Util.getIntValue(wfdocpath[0],0); + }else{ + if(wfdocpath.length > 0 ) maincategory = Util.getIntValue(wfdocpath[0],0); + if(wfdocpath.length > 1 ) subcategory = Util.getIntValue(wfdocpath[1],0); + if(wfdocpath.length > 2 ) seccategory = Util.getIntValue(wfdocpath[2],0); + } + + // 保存docdetail + ResourceComInfo ResourceComInfo = null; + try { + ResourceComInfo = new ResourceComInfo(); + } catch (Exception e) { + log.error(e); + } + String sql = ""; + int doclangurage = 7; + int docowner = Util.getIntValue(getWfDocOwner(workflowid,requestid), 0); + int docdepartmentid = Util.getIntValue(ResourceComInfo + .getDepartmentID("" + docowner), 0); + String docsubject = imagefilename; + + Calendar today = Calendar.getInstance(); + String formatdate = Util.add0(today.get(Calendar.YEAR), 4) + "-" + + Util.add0(today.get(Calendar.MONTH) + 1, 2) + "-" + + Util.add0(today.get(Calendar.DAY_OF_MONTH), 2); + String formattime = Util.add0(today.get(Calendar.HOUR_OF_DAY), 2) + ":" + + Util.add0(today.get(Calendar.MINUTE), 2) + ":" + + Util.add0(today.get(Calendar.SECOND), 2); + String doccreatedate = formatdate; + String doccreatetime = formattime; + String doclastmoddate = formatdate; + String doclastmodtime = formattime; + String docValidDate = formatdate; + String docValidTime = formattime; + String parentids = ""; + String docCreaterType = "1"; + String docextendname = "html"; + String docCode = ""; + String doccontent = ""; + String clientIp = ""; + + rs.executeSql("select clientAddress from SysMaintenanceLog, SystemLogItem where operateitem='60' AND SysMaintenanceLog.operateItem = SystemLogItem.itemId and operateuserid = '" + userid + "' order by id desc"); + rs.next(); + clientIp = rs.getString("clientAddress"); + + if("0:0:0:0:0:0:0:1".equals(clientIp)){ + clientIp = "127.0.0.1"; + } + + rs.executeProc("Doc_SecCategory_SelectByID",seccategory+""); + rs.next(); + + String docapprovable = ""; + String docreplyable = rs.getString("replyable"); + String isreply = ""; + int replydocid = 0; + String docpublishtype = ""; + + int itemid = 0; + int itemmaincategoryid = 0; + int hrmresid = 0; + int crmid = 0; + int projectid = 0; + int financeid = 0; + + int doccreaterid = docowner; + int doclastmoduserid = docowner; + int docapproveuserid = 0; + String docapprovedate = ""; + String docapprovetime = ""; + + int docarchiveuserid = 0; + String docarchivedate = ""; + String docarchivetime = ""; + + String docstatus = "1"; + int assetid = 0; + int ownerid = docowner; + + String keyword = ""; + int accessorycount = 0; + String docfiles = getDocFiles(workflowid); + if (docfiles.contains("1")) { + accessorycount++; + } + if (docfiles.contains("2")) { + accessorycount++; + } + if (docfiles.contains("3")){ + accessorycount++; + } + + int replaydoccount = 0; + int docType = 1;//html + String canCopy = "1"; + String canRemind = "1"; + String orderable = rs.getString("orderable"); + + int docEdition = -1; + int docSmallEdition = -1; + int docEditionId = -1; + SecCategoryComInfo scc =null; + + try { + scc = new SecCategoryComInfo(); + if(scc.isEditionOpen(seccategory)) {//如果版本管理开启 + + docEdition=1; + docEditionId=this.getNextEditionId(); + if(scc.isOpenSizeVersion(seccategory)){ + docSmallEdition = 1; + } + + } + } catch (Exception e) { + log.error(e); + } + int isHistory = 0; + int approveType = 0; + int mainDoc = 0; + int readOpterCanPrint = rs.getInt("readoptercanprint"); + + + int docValidUserId = docowner; + String invalidationDate = ""; + String docLastModUserType = docCreaterType; + String docApproveUserType = ""; + String docValidUserType = docCreaterType; + String docInvalUserType = ""; + String docArchiveUserType = ""; + String docCancelUserType = ""; + String docPubUserType = ""; + String docReopenUserType = ""; + String ownerType = docCreaterType; + int canPrintedNum = 0; + + int docid = 0; + List docids = new ArrayList (); + WorkflowToDocSettingInfoEntity workflowToDocSettingInfoEntity = this.getSettingInfo(workflowid); + if (isAnnex(workflowToDocSettingInfoEntity)&&fileids.size()>1){ //勾选了关联到表单且为附件字段并且选择的附件种类大于1 则每个附件生成一个文档 + for(Map.Entry entry: fileids.entrySet()) { + try { + docid = new DocManager().getNextDocId(rs); + } catch (Exception e) { + log.error("读取文档id号异常:" + e); + } + parentids = docid+""; + mainDoc = docid; + if ("offline_pdf".equals(entry.getKey())){ + docsubject = imagefilename+"(PDF)"; + accessorycount = 1; + }else if ("offline_html".equals(entry.getKey())){ + docsubject = imagefilename+"(OfflineHTML)"; + accessorycount = 1; + }else if ("online_html".equals(entry.getKey())){ + docsubject = imagefilename+"(OnlineHTML)"; + accessorycount = 1; + } + SaveDocDetailBizCus saveDocDetailBiz = new SaveDocDetailBizCus(); + saveDocDetailBiz.setDocid( docid); + saveDocDetailBiz.setMaincategory( maincategory); + saveDocDetailBiz.setSubcategory( subcategory); + saveDocDetailBiz.setSeccategory( seccategory); + saveDocDetailBiz.setDoclangurage( doclangurage); + saveDocDetailBiz.setDocapprovable( docapprovable); + saveDocDetailBiz.setDocreplyable( docreplyable); + saveDocDetailBiz.setIsreply( isreply); + saveDocDetailBiz.setReplydocid( replydocid); + saveDocDetailBiz.setDocsubject( docsubject); + saveDocDetailBiz.setDocpublishtype( docpublishtype); + saveDocDetailBiz.setItemid( itemid); + saveDocDetailBiz.setItemmaincategoryid( itemmaincategoryid); + saveDocDetailBiz.setHrmresid( hrmresid); + saveDocDetailBiz.setCrmid( crmid); + saveDocDetailBiz.setProjectid( projectid); + saveDocDetailBiz.setFinanceid( financeid); + saveDocDetailBiz.setDoccreaterid( doccreaterid); + saveDocDetailBiz.setDocdepartmentid( docdepartmentid); + saveDocDetailBiz.setDoccreatedate( doccreatedate); + saveDocDetailBiz.setDoccreatetime( doccreatetime); + saveDocDetailBiz.setDoclastmoduserid( doclastmoduserid); + saveDocDetailBiz.setDoclastmoddate( doclastmoddate); + saveDocDetailBiz.setDoclastmodtime( doclastmodtime); + saveDocDetailBiz.setDocapproveuserid( docapproveuserid); + saveDocDetailBiz.setDocapprovedate( docapprovedate); + saveDocDetailBiz.setDocapprovetime( docapprovetime); + saveDocDetailBiz.setDocarchiveuserid( docarchiveuserid); + saveDocDetailBiz.setDocarchivedate( docarchivedate); + saveDocDetailBiz.setDocarchivetime( docarchivetime); + saveDocDetailBiz.setDocstatus( docstatus); + saveDocDetailBiz.setParentids( parentids); + saveDocDetailBiz.setAssetid( assetid); + saveDocDetailBiz.setOwnerid( ownerid); + saveDocDetailBiz.setKeyword( keyword); + saveDocDetailBiz.setAccessorycount( accessorycount); + saveDocDetailBiz.setReplaydoccount( replaydoccount); + saveDocDetailBiz.setUsertype( docCreaterType); + saveDocDetailBiz.setDoctype(docType); + saveDocDetailBiz.setCancopy( canCopy); + saveDocDetailBiz.setCanremind( canRemind); + saveDocDetailBiz.setOrderable( orderable); + saveDocDetailBiz.setDocextendname( docextendname); + saveDocDetailBiz.setDoccode( docCode); + saveDocDetailBiz.setDocedition( docEdition); + saveDocDetailBiz.setDocsmalledition( docSmallEdition); + saveDocDetailBiz.setDoceditionid( docEditionId); + saveDocDetailBiz.setIshistory( isHistory); + saveDocDetailBiz.setApproveType( approveType); + saveDocDetailBiz.setMaindoc( mainDoc); + saveDocDetailBiz.setReadoptercanprint( readOpterCanPrint); + saveDocDetailBiz.setDocvaliduserid( docValidUserId); + saveDocDetailBiz.setDocvaliddate( docValidDate); + saveDocDetailBiz.setDocvalidtime( docValidTime); + saveDocDetailBiz.setInvalidationdate( invalidationDate); + saveDocDetailBiz.setDocCreaterType( docCreaterType); + saveDocDetailBiz.setDocLastModUserType( docLastModUserType); + saveDocDetailBiz.setDocApproveUserType( docApproveUserType); + saveDocDetailBiz.setDocValidUserType( docValidUserType); + saveDocDetailBiz.setDocInvalUserType( docInvalUserType); + saveDocDetailBiz.setDocArchiveUserType( docArchiveUserType); + saveDocDetailBiz.setDocCancelUserType( docCancelUserType); + saveDocDetailBiz.setDocPubUserType( docPubUserType); + saveDocDetailBiz.setDocReopenUserType( docReopenUserType); + saveDocDetailBiz.setOwnerType( ownerType); + saveDocDetailBiz.setCanPrintedNum( canPrintedNum); + saveDocDetailBiz.setFromworkflow( requestid); + saveDocDetailBiz.setDoccontent( doccontent); + saveDocDetailBiz.setDocowner( docowner); + saveDocDetailBiz.setClientIp( clientIp); + saveDocDetailBiz.saveDoc(requestid,requestManager,wfbiz,userid); + + // 最后保存 docimagefile + if ("offline_pdf".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,3); + }else if ("offline_html".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,2); + }else if ("online_html".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,1); + } + DocSaveService.copyDocFile(seccategory,docid); + + //解决流程存文档不推动文档消息 + SendMsgForNewDocThread sendThread = new SendMsgForNewDocThread(new User(Util.getIntValue(userid)),docid,null);sendThread.start(); + docids.add(docid+""); + } + }else{ //只生成一篇文档 + try { + docid = new DocManager().getNextDocId(rs); + } catch (Exception e) { + log.error("读取文档id号异常:" + e); + return null; + } + parentids = docid+""; + mainDoc = docid; + SaveDocDetailBizCus saveDocDetailBiz = new SaveDocDetailBizCus(); + saveDocDetailBiz.setDocid( docid); + saveDocDetailBiz.setMaincategory( maincategory); + saveDocDetailBiz.setSubcategory( subcategory); + saveDocDetailBiz.setSeccategory( seccategory); + saveDocDetailBiz.setDoclangurage( doclangurage); + saveDocDetailBiz.setDocapprovable( docapprovable); + saveDocDetailBiz.setDocreplyable( docreplyable); + saveDocDetailBiz.setIsreply( isreply); + saveDocDetailBiz.setReplydocid( replydocid); + saveDocDetailBiz.setDocsubject( docsubject); + saveDocDetailBiz.setDocpublishtype( docpublishtype); + saveDocDetailBiz.setItemid( itemid); + saveDocDetailBiz.setItemmaincategoryid( itemmaincategoryid); + saveDocDetailBiz.setHrmresid( hrmresid); + saveDocDetailBiz.setCrmid( crmid); + saveDocDetailBiz.setProjectid( projectid); + saveDocDetailBiz.setFinanceid( financeid); + saveDocDetailBiz.setDoccreaterid( doccreaterid); + saveDocDetailBiz.setDocdepartmentid( docdepartmentid); + saveDocDetailBiz.setDoccreatedate( doccreatedate); + saveDocDetailBiz.setDoccreatetime( doccreatetime); + saveDocDetailBiz.setDoclastmoduserid( doclastmoduserid); + saveDocDetailBiz.setDoclastmoddate( doclastmoddate); + saveDocDetailBiz.setDoclastmodtime( doclastmodtime); + saveDocDetailBiz.setDocapproveuserid( docapproveuserid); + saveDocDetailBiz.setDocapprovedate( docapprovedate); + saveDocDetailBiz.setDocapprovetime( docapprovetime); + saveDocDetailBiz.setDocarchiveuserid( docarchiveuserid); + saveDocDetailBiz.setDocarchivedate( docarchivedate); + saveDocDetailBiz.setDocarchivetime( docarchivetime); + saveDocDetailBiz.setDocstatus( docstatus); + saveDocDetailBiz.setParentids( parentids); + saveDocDetailBiz.setAssetid( assetid); + saveDocDetailBiz.setOwnerid( ownerid); + saveDocDetailBiz.setKeyword( keyword); + saveDocDetailBiz.setAccessorycount( accessorycount); + saveDocDetailBiz.setReplaydoccount( replaydoccount); + saveDocDetailBiz.setUsertype( docCreaterType); + saveDocDetailBiz.setDoctype(docType); + saveDocDetailBiz.setCancopy( canCopy); + saveDocDetailBiz.setCanremind( canRemind); + saveDocDetailBiz.setOrderable( orderable); + saveDocDetailBiz.setDocextendname( docextendname); + saveDocDetailBiz.setDoccode( docCode); + saveDocDetailBiz.setDocedition( docEdition); + saveDocDetailBiz.setDocsmalledition( docSmallEdition); + saveDocDetailBiz.setDoceditionid( docEditionId); + saveDocDetailBiz.setIshistory( isHistory); + saveDocDetailBiz.setApproveType( approveType); + saveDocDetailBiz.setMaindoc( mainDoc); + saveDocDetailBiz.setReadoptercanprint( readOpterCanPrint); + saveDocDetailBiz.setDocvaliduserid( docValidUserId); + saveDocDetailBiz.setDocvaliddate( docValidDate); + saveDocDetailBiz.setDocvalidtime( docValidTime); + saveDocDetailBiz.setInvalidationdate( invalidationDate); + saveDocDetailBiz.setDocCreaterType( docCreaterType); + saveDocDetailBiz.setDocLastModUserType( docLastModUserType); + saveDocDetailBiz.setDocApproveUserType( docApproveUserType); + saveDocDetailBiz.setDocValidUserType( docValidUserType); + saveDocDetailBiz.setDocInvalUserType( docInvalUserType); + saveDocDetailBiz.setDocArchiveUserType( docArchiveUserType); + saveDocDetailBiz.setDocCancelUserType( docCancelUserType); + saveDocDetailBiz.setDocPubUserType( docPubUserType); + saveDocDetailBiz.setDocReopenUserType( docReopenUserType); + saveDocDetailBiz.setOwnerType( ownerType); + saveDocDetailBiz.setCanPrintedNum( canPrintedNum); + saveDocDetailBiz.setFromworkflow( requestid); + saveDocDetailBiz.setDoccontent( doccontent); + saveDocDetailBiz.setDocowner( docowner); + saveDocDetailBiz.setClientIp( clientIp); + saveDocDetailBiz.saveDoc(requestid,requestManager,wfbiz,userid); + + // 最后保存 docimagefile + for(Map.Entry entry: fileids.entrySet()) { + if ("offline_pdf".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,3); + }else if ("offline_html".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,2); + }else if ("online_html".equals(entry.getKey())){ + saveDocImageFile(docid, Util.getIntValue(entry.getValue()), imagefilename,1); + } + } + DocSaveService.copyDocFile(seccategory,docid); + //解决流程存文档不推动文档消息 + SendMsgForNewDocThread sendThread = new SendMsgForNewDocThread(new User(Util.getIntValue(userid)),docid,null);sendThread.start(); + docids.add(docid+""); + } + + //文档保存到表单字段 + saveDocToForm(rs,String.join(",",docids),docowner,requestid,workflowid); + return docids; + } + + /* + * 文档关联到表单字段 支持多个文档更新到表单字段 + */ + public boolean saveDocToForm(RecordSet rs,String docids,int docowner,String requestid,String workflowid){ + String sql = ""; + String[] docidarr = docids.split(","); + + String tablename = " workflow_form "; + String fieldname = ""; + String fieldhtmltype =""; + String type =""; + rs.executeQuery("select formid,isbill,wfdocrelatedformdisplay,wfdocrelatefieldid from workflow_base where id = ?",workflowid); + RecordSet rs1 = new RecordSet(); + if (rs.next()){ + String wfdocrelatedformdisplay = Util.null2String(rs.getString("wfdocrelatedformdisplay")); + String wfdocrelatefieldid = Util.null2String(rs.getString("wfdocrelatefieldid")); + int isbill = Util.getIntValue(rs.getString("isbill"), 0); + int formid = Util.getIntValue(rs.getString("formid"), 0); + if(wfdocrelatedformdisplay.equals("1")&&!wfdocrelatefieldid.equals("")){ + if(isbill == 1){ + sql = "select tablename from workflow_bill where id="+formid; + rs1.executeQuery(sql); + if(rs1.next()){ + tablename = Util.null2String(rs1.getString(1)); + } + sql = "select fieldname,fieldhtmltype,type from workflow_billfield where billid="+formid+" and id="+wfdocrelatefieldid; + }else{ + sql = "select fieldname,fieldhtmltype,type from workflow_formdictdetail where id="+wfdocrelatefieldid; + } + rs1.executeQuery(sql); + if(rs1.next()){ + fieldname = Util.null2String(rs1.getString(1)); + fieldhtmltype =Util.null2String(rs1.getString(2)); + type =Util.null2String(rs1.getString(3)); + } + if(!"".equals(tablename) && !"".equals(fieldname)){ + String fieldvalue =""; //先获取数据库原有值 + sql = "select "+fieldname+" from "+tablename+" where requestid="+requestid; + rs1.executeQuery(sql); + if(rs1.next()){ + fieldvalue = Util.null2String(rs1.getString(1)); + } + if (!fieldvalue.equals("")){ + if ((fieldhtmltype.equals("6")&&type.equals("1"))||(fieldhtmltype.equals("3")&&type.equals("37"))){ //附件和多文档字段 追加 + String updateDocids = fieldvalue+","+docids; + rs1.executeUpdate(" update "+tablename+" set "+fieldname+" = '"+updateDocids+"' where requestid = ?",requestid); + }else if (fieldhtmltype.equals("3")&&type.equals("9")){ //单文档 会清除原文档再添加 + rs1.executeUpdate(" update "+tablename+" set "+fieldname+" = '"+docids+"' where requestid = ?",requestid); + new BaseBean().writeLog("流程存文档关联到表单字段,单文档字段原先值==>"+fieldvalue+",更新后docid ==>"+docids); + } + }else { + rs1.executeUpdate(" update "+tablename+" set "+fieldname+" = '"+docids+"' where requestid = ?",requestid); + } + } + } + + /* 更新完成后给流程所有操作者赋权*****/ + WfToDocBizCus.docShare(docids,requestid,docowner); + + } + return true; + } + + + /** + * 判断requestmanager是否为空 + * @param rmanager + */ + public RequestManager getRequestManager(RequestManager rmanager,String requestid){ + if(rmanager==null){ + rmanager = new RequestManager(); + RecordSet rs = new RecordSet(); + String sql = "select * from workflow_requestbase where requestid = " + requestid; + rs.executeSql(sql); + while(rs.next()){ + int _requestId=rs.getInt("requestid"); + int workflowId=rs.getInt("workflowid"); + int creater=rs.getInt("creater"); + String requestname = rs.getString("requestname"); + String requestlevel = rs.getString("requestlevel"); + String messagetype = rs.getString("messagetype"); + rmanager.setRequestid(_requestId); + rmanager.setWorkflowid(workflowId); + rmanager.setCreater(creater); + rmanager.setRequestname(requestname); + rmanager.setRequestlevel(requestlevel); + rmanager.setMessageType(messagetype); + rmanager.setNodeid(Util.getIntValue(rs.getString("currentNodeID"))); + } + } + + return rmanager; + } + + //重载下 以防方法在其他地方有调用 + public boolean saveDocProp(int docid,String requestid,RequestManager requestManager){ + return saveDocProp( docid, requestid, requestManager,new WfToDocBizCus()); + } + /** + * 保存文档属性 + * @param docid + * @return + */ + public boolean saveDocProp(int docid,String requestid,RequestManager requestManager,WfToDocBizCus wfbiz){ + boolean success = true; + String docids = docid+""; + requestManager = getRequestManager(requestManager,requestid); + try{ + log.error("saveDocProp:" + docid +" "+requestid); + RequestDocPropManagerCus requestDocPropManager=new RequestDocPropManagerCus(wfbiz); + requestDocPropManager.changeDocProp(requestManager,docids); + }catch (Exception e) { + success = false; + log.error("RequestDocPropManagerCus Error:requestid="+requestid+"###docids="+docids); + log.error(e); + } + log.error("success:"+success); + return success; + + } + + /** + * 保存docimagefile + * + * @param docid + * 文档id + * @param imagefileid + * imagefileid + * @param filename + * 文件名 + */ + public boolean saveDocImageFile(int docid, int imagefileid, String filename,int filetype) { + RecordSet rs = new RecordSet(); + + int id = 0; + int versionId = 0; + String imagefilename = ""; + if (filetype==1){ + imagefilename = filename + ".html"; + }else if (filetype ==2){ + imagefilename = filename + ".zip"; + }else if (filetype==3){ + imagefilename = filename+".pdf"; + } + String imagefiledesc = ""; + String imagefilewidth = "0"; + String imagefileheight = "0"; + String imagefielsize = "0"; + String docfiletype = "2"; + String versionDetail = ""; + + try { + id = new DocImageManager().getNextDocImageFileId(); + } catch (Exception e) { + log.error("读取docimagefileid异常:" + e); + return false; + } + +// rs.executeProc("SequenceIndex_SelectVersionId", ""); +// if (rs.next()) { +// versionId = Util.getIntValue(rs.getString(1)); +// } + versionId=versionIdUpdate.getVersionNewId(); + + String tmpsqlstr = "INSERT INTO DocImageFile(docid, imagefileid, imagefilename, imagefiledesc, imagefilewidth, imagefileheight, imagefielsize, docfiletype,versionId,versionDetail,id)" + + "VALUES (" + + "" + + docid + + "" + + "," + + "" + + imagefileid + + "" + + "," + + "'" + + imagefilename + + "'" + + "," + + "'" + + imagefiledesc + + "'" + + "," + + "'" + + imagefilewidth + + "'" + + "," + + "'" + + imagefileheight + + "'" + + "," + + "" + + imagefielsize + + "" + + "," + + "'" + + docfiletype + + "'" + + "," + + "" + + versionId + + "" + + "," + + "'" + versionDetail + "'" + "," + id + ")"; + rs.executeSql(tmpsqlstr); + //log.error("保存到docimagefile: " + tmpsqlstr); + return true; + } + + /** + * 保存imagefile 返回文件的id + * + * @param filename + * 文件名 + * @param filerealpath + * 文件绝对路径 + * @param filesize + * 文件大小 + * @return imagefileid 文件id + */ + public int saveImageFile(String filename, String filerealpath, long filesize,boolean ispdf) { + int imageid = 0; + String originalfilename = filename + ".html"; + if(ispdf) originalfilename = filename+".pdf"; + String contenttype = ""; + + String imagefileused = "1"; + String iszip = "0"; + String isencrypt = "0"; + + RecordSet rs = new RecordSet(); + char separator = Util.getSeparator(); + + //rs.executeProc("SequenceIndex_SelectFileid", ""); + //if (rs.next()) + // imageid = Util.getIntValue(rs.getString(1)); + imageid=imageFileIdUpdate.getImageFileNewId(); + + String para = "" + imageid + separator + originalfilename + separator + + contenttype + separator + imagefileused + separator + + filerealpath + separator + iszip + separator + isencrypt + + separator + filesize; + + rs.executeProc("ImageFile_Insert", para); + + AliOSSObjectManager aliOSSObjectManager=new AliOSSObjectManager(); + String tokenKey=aliOSSObjectManager.getTokenKeyByFileRealPath(filerealpath); + + //log.error("保存到imagefile: " + para); + + //comefrom='WorkflowToDoc' 表示该条附件数据来自于流程存为文档 + rs.executeSql("update imagefile set isaesencrypt='"+this.isaesencrypt+"', aescode='"+this.aescode+"',TokenKey='"+tokenKey+"',comefrom='WorkflowToDoc' where imagefileid="+imageid); + + aliOSSObjectManager.uploadFile(filerealpath,originalfilename, iszip,isaesencrypt,aescode); + + return imageid; + } + + /** + * 获取系统的路径 + * + * @return + */ + public String getSystemPath() { + String path = GCONST.getPropertyPath(); + path = path.substring(0, path.indexOf("WEB-INF")); + path = Util.StringReplace(path, "\\", "/"); + return path; + } + + //判断是否开启了文档关联到表单并选择了附件字段 + public boolean isAnnex(WorkflowToDocSettingInfoEntity workflowToDocSettingInfoEntity) { + RecordSet rs = new RecordSet(); + if (workflowToDocSettingInfoEntity.getWfdocrelatedformdisplay().equals("1")){ + String sql = ""; + if(workflowToDocSettingInfoEntity.getIsbill()==0) + sql = "select fieldhtmltype from workflow_formdict where id = ? "; + else + sql = "select fieldhtmltype as name from workflow_billfield where id =? "; + rs.executeQuery(sql,workflowToDocSettingInfoEntity.getWfdocrelatefieldid()); + if (rs.next()&&Util.null2String(rs.getString(1)).equals("6")){ + return true; + } + } + return false; + } + + /** + * 获取设置信息 + * @return + */ + private WorkflowToDocSettingInfoEntity getSettingInfo(String workflowId){ + int isbill = 1; + String wfdocpath = ""; + String wfdocownertype = ""; + String wfdocownerfieldid = ""; + String wfdocowner=""; + int keepsign = 0; + String docfiles = ""; + String wfdocpathtype = ""; //文档存储路径类型 固定目录1 选择目录2 + String wfdocpathfieldid = ""; //文档存储路径字段 + String wfdocsource = ""; //附件来源 + String wfdocrelatedformdisplay = ""; //文档关联到表单显示 + String wfdocrelatefieldid = ""; //关联字段 + String wfdocdiaplaywatermark = ""; //展示流程水印 + RecordSet rs = new RecordSet(); + rs.executeQuery("select isbill,wfdocowner,wfdocownertype,wfdocownerfieldid,keepsign,wfdocpath,docfiles,wfdocpathtype,wfdocpathfieldid,wfdocsource,wfdocrelatedformdisplay,wfdocrelatefieldid,wfdocdiaplaywatermark from workflow_base where id = ?" , workflowId); + if(rs.next()) { + wfdocowner = rs.getString("wfdocowner"); + wfdocownertype = rs.getString("wfdocownertype"); + wfdocownerfieldid = rs.getString("wfdocownerfieldid"); + keepsign = rs.getInt("keepsign"); + wfdocpath = rs.getString("wfdocpath"); + docfiles = rs.getString("docfiles"); + wfdocpathtype = rs.getString("wfdocpathtype"); + wfdocpathfieldid = rs.getString("wfdocpathfieldid"); + wfdocsource = rs.getString("wfdocsource"); + wfdocrelatedformdisplay = rs.getString("wfdocrelatedformdisplay"); + wfdocrelatefieldid = rs.getString("wfdocrelatefieldid"); + wfdocdiaplaywatermark = rs.getString("wfdocdiaplaywatermark"); + isbill = Util.getIntValue(rs.getString("isbill")); + } + + return new WorkflowToDocSettingInfoEntity(wfdocpath,wfdocownertype,wfdocownerfieldid,wfdocowner,keepsign,docfiles,wfdocpathtype,wfdocpathfieldid,wfdocsource,wfdocrelatedformdisplay,wfdocrelatefieldid,wfdocdiaplaywatermark,isbill); + } + /* + *得到keepsign 是否保留签字意见 + */ + public int getKeepSign(String workflowid){ + RecordSet rs = new RecordSet(); + int keepsign = 0; + rs.executeQuery("select keepsign from workflow_base where id = ?",workflowid); + if (rs.next()){ + keepsign = rs.getInt("keepsign"); + } + return keepsign; + } + /* + * 得到docfiles 文档附件 在线表单/离线表单(HTML)/离线表单(PDF) + */ + public String getDocFiles(String workflowid){ + RecordSet rs = new RecordSet(); + String docfiles = ""; + String wfdocpath = ""; + rs.executeQuery("select docfiles,wfdocpath from workflow_base where id = ?",workflowid); + if (rs.next()){ + docfiles = Util.null2String(rs.getString("docfiles")); + wfdocpath = Util.null2String(rs.getString("wfdocpath")); + } + if ("".equals(docfiles)&&!"".equals(wfdocpath)){ + docfiles="1"; + rs.executeUpdate("update workflow_base set docfiles ='1' where id = ?",workflowid); + } + return docfiles; + } + /** + * 获得文档存放的目录 + * + * @param workflowid + * @return 主目录,分目录,子目录 + */ + public String getWfDocPath(String workflowid) { + String wfdocpath = ""; + RecordSet rs = new RecordSet(); + String sql = "select * from workflow_base where id = '" + workflowid + + "'"; + rs.executeSql(sql); + rs.next(); + wfdocpath = Util.null2String(rs.getString("wfdocpath")); + return wfdocpath; + } + + /** + * 获得文档的所有者 + * + * @param workflowid + * @return resourceid + */ + public String getWfDocOwner(String workflowid,String requestid) { + int wfdocowner = 0; + try{ + String sql = ""; + int wfid = Util.getIntValue(workflowid, 0); + int rid = Util.getIntValue(requestid, 0); + if(wfid<=0 || rid<=0){ + return "0"; + } + RecordSet rs = new RecordSet(); + sql = "select * from workflow_base where id="+wfid; + rs.executeSql(sql); + if(rs.next()){ + int wfdocowner_tmp = Util.getIntValue(rs.getString("wfdocowner"), 0); + int wfdocownertype_tmp = Util.getIntValue(rs.getString("wfdocownertype"), 0); + int wfdocownerfieldid_tmp = Util.getIntValue(rs.getString("wfdocownerfieldid"), 0); + int isbill = Util.getIntValue(rs.getString("isbill"), 0); + int formid = Util.getIntValue(rs.getString("formid"), 0); + if(wfdocownertype_tmp == 1){ + wfdocowner = wfdocowner_tmp; + }else if(wfdocownertype_tmp == 2){ + String tablename = " workflow_form "; + String fieldname = ""; + if(isbill == 1){ + sql = "select tablename from workflow_bill where id="+formid; + rs.execute(sql); + if(rs.next()){ + tablename = Util.null2String(rs.getString(1)); + } + sql = "select fieldname from workflow_billfield where billid="+formid+" and id="+wfdocownerfieldid_tmp; + }else{ + sql = "select fieldname from workflow_formdict where id="+wfdocownerfieldid_tmp; + } + rs.execute(sql); + if(rs.next()){ + fieldname = Util.null2String(rs.getString(1)); + if(!"".equals(tablename) && !"".equals(fieldname)){ + sql = "select "+fieldname+" from "+tablename+" where requestid="+rid; + rs.execute(sql); + if(rs.next()){ + String fieldvalue = Util.null2String(rs.getString(1)); + if(!"".equals(fieldvalue)){ + int index = fieldvalue.indexOf(","); + if(index > -1){ + fieldvalue = fieldvalue.substring(0, index); + } + wfdocowner = Util.getIntValue(fieldvalue); + } + } + } + } + } + String status = Util.null2String(new ResourceComInfo().getStatus(""+wfdocowner)); + if(status.equals("0") || status.equals("1") || status.equals("2") || status.equals("3")){ + //do nothing + }else{ + wfdocowner = 0; + } + } + }catch(Exception e){ + + } + if(wfdocowner <= 0){ + wfdocowner = 1; + } + return ""+wfdocowner; + } + + /** + * 获得文件保存目录 + * + * @return + */ + public String getFileSavePath() { + SystemComInfo syscominfo = new SystemComInfo(); + String createdir = FileUpload.getCreateDir(syscominfo.getFilesystem()); + return createdir; + } + + public synchronized int getNextEditionId() throws Exception { + int docindex = 0; + RecordSet rs = new RecordSet(); + rs.executeProc("SequenceIndex_SelectNextID", "doceditionid"); + if (rs.next()) + docindex = rs.getInt(1); + return docindex; + } + +} diff --git a/com/engine/custom/archives/corn/PushArchivesCorn.java b/com/engine/custom/archives/corn/PushArchivesCorn.java new file mode 100644 index 0000000..9e2fb57 --- /dev/null +++ b/com/engine/custom/archives/corn/PushArchivesCorn.java @@ -0,0 +1,31 @@ +package com.engine.custom.archives.corn; + +import com.engine.custom.archives.service.PushArchivesCornService; +import lombok.extern.slf4j.Slf4j; +import weaver.interfaces.schedule.BaseCronJob; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; + +@Slf4j +public class PushArchivesCorn extends BaseCronJob { + public String filePath = "/opt/weaver/filesys/test"; + public String Url = "http://14.1.206.240:18080/fcscloud/composite/upload"; + public String templatePath = "/opt/weaver/filesys/template.docx"; + public String reqid = ""; + + PushArchivesCornService service = new PushArchivesCornService(); + + @Override + public void execute() { + log.info("PushArchivesCorn====Begin========"); + HashMap param = new HashMap<>(); + param.put("filePath",filePath); + param.put("Url",Url); + param.put("requestid",reqid); + param.put("templatePath",templatePath); + service.setProp(param); + service.pushArchives(param); + } +} diff --git a/com/engine/custom/archives/entity/Dept.java b/com/engine/custom/archives/entity/Dept.java new file mode 100644 index 0000000..012c53b --- /dev/null +++ b/com/engine/custom/archives/entity/Dept.java @@ -0,0 +1,84 @@ +package com.engine.custom.archives.entity; + +import cn.afterturn.easypoi.excel.annotation.Excel; + +public class Dept { + + + @Excel(name = "组织id") + private String id; + @Excel(name = "组织名称") + private String name; + @Excel(name = "组织类型") + private String type; + @Excel(name = "父组织id") + private String parentId; + @Excel(name = "组织全路径") + private String allName; + + + + public Dept() { + } + + public Dept(String id, String name, String type, String parentId, String allName) { + this.id = id; + this.name = name; + this.type = type; + this.parentId = parentId; + this.allName = allName; + } + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getAllName() { + return allName; + } + + public void setAllName(String allName) { + this.allName = allName; + } + + @Override + public String toString() { + return "Dept{" + + "id='" + id + '\'' + + ", name='" + name + '\'' + + ", type='" + type + '\'' + + ", parentId='" + parentId + '\'' + + ", allName='" + allName + '\'' + + '}'; + } +} + diff --git a/com/engine/custom/archives/service/HtmlToPdfServiceCus.java b/com/engine/custom/archives/service/HtmlToPdfServiceCus.java new file mode 100644 index 0000000..0dd1e3d --- /dev/null +++ b/com/engine/custom/archives/service/HtmlToPdfServiceCus.java @@ -0,0 +1,19 @@ +package com.engine.custom.archives.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface HtmlToPdfServiceCus { + public Map getHtml(Map params, User user); + + /* + * 转html和pdf + */ + public Map getFormDatas(Map params); + + /* + * 在线html获取表单信息用于生成水印 + */ + public Map getFormInfoForWM(Map params); +} diff --git a/com/engine/custom/archives/service/PushArchivesCornService.java b/com/engine/custom/archives/service/PushArchivesCornService.java new file mode 100644 index 0000000..4074656 --- /dev/null +++ b/com/engine/custom/archives/service/PushArchivesCornService.java @@ -0,0 +1,1717 @@ +package com.engine.custom.archives.service; + + +import com.dcfs.fts.common.error.FtpException; +import com.engine.custom.hg.util.HgUtils; +import com.icbc.api.internal.apache.http.impl.cookie.S; +import lombok.extern.slf4j.Slf4j; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; +import java.util.Date; +import java.nio.charset.StandardCharsets; +import java.io.*; +import java.util.*; + +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; +import com.alibaba.fastjson.JSONObject; +import weaver.file.ImageFileManager; + +import java.net.URL; + +import org.apache.commons.io.FileUtils; +import okhttp3.*; + +import java.net.URLEncoder; + +import weaver.soa.workflow.request.RequestService; +import weaver.soa.workflow.request.RequestInfo; +import com.engine.custom.archives.action.WorkflowToDocCus; +import weaver.docs.docs.DocRecycleManager; +import weaver.hrm.User; +import com.api.workflow.service.RequestAuthenticationService; +import weaver.workflow.workflow.WorkflowConfigComInfo; +import weaver.hrm.resource.ResourceComInfo; +import weaver.crm.Maint.CustomerInfoComInfo; +import com.alibaba.fastjson.JSON; +import weaver.workflow.monitor.Monitor; +import com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz; +import com.api.workflow.util.ServiceUtil; +import com.engine.workflow.biz.RobotNode.RobotNodeBiz; +import weaver.general.TimeUtil; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.util.ZipUtil; +import freemarker.template.Configuration; +import freemarker.template.TemplateExceptionHandler; +import freemarker.template.Template; +import java.nio.charset.StandardCharsets; + + +@Slf4j +public class PushArchivesCornService { + private static String filePath; + private static String Url; + private static String templatePath; // 模板文件路径 + private static final String zwdir = "正文"; + private static final String fjdir = "附件"; + private static final String cbddir = "承办单"; + private static final String zlcdir = "承办单" + File.separator + "子流程"; + private static final String lzxxdir = "流转信息"; + private static final String fjFile = "附件"; + + + public void setProp(Map param) { + filePath = Util.null2String(param.get("filePath")); + Url = Util.null2String(param.get("Url")); + templatePath = Util.null2String(param.get("templatePath")); + } + + + public void pushArchives(Map param) { + log.info("PushArchivesCorn====Begin========{}", param); + try { + ZipUtil zipUtil = new ZipUtil(); + Date date = getDate(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); + String format = dateFormat.format(date); + SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 获取当前时间的第一秒 + String firstSecond = yyyyMMddHHmmss.format(getFirstSecondOfDate(date)); + // 获取当前时间的最后一秒 + String lastSecond = yyyyMMddHHmmss.format(getLastSecondOfDate(date)); + String requestid = Util.null2String(param.get("requestid")); + log.error("requestid:{}", requestid); + String context = extracted(requestid); + log.error("context:{}", context); + File file = crFile(filePath + "/togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date)); + log.error("textfile:{}", file.getAbsolutePath()); + writeToTxt(file.getPath(), file.getName(), context, true); + File txtzip = new File(filePath + File.separator + "togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date) + ".zip"); + log.error("textZipFile:{}", txtzip.getAbsolutePath()); + OutputStream outputStream = new FileOutputStream(txtzip); + File writename = new File(file.getPath() + "/" + file.getName() + ".txt"); + com.engine.custom.hg.util.ZipUtil.filesToZip(writename, outputStream, writename.getName()); + log.error("writename:{}",writename.getName()); + String s = HgUtils.putFile(txtzip.getAbsolutePath(), txtzip.getName()); + updateRecord(requestid, s); + log.error("textZip:{}", s); + + // HgUtils.putFile(""); + } catch (Exception e) { + log.info("PushArchivesCorn====Exception========{}", e.getMessage()); + e.printStackTrace(); + } + + } + + private void updateRecord(String requestids, String s) { + String sql = "update uf_pushArchivesLog set esbtxtml = ? where request in ( " + requestids + " )"; + RecordSet recordSet = new RecordSet(); + recordSet.executeUpdate(sql, s); + } + + private String extracted(String requestid) throws FtpException, IOException { + Map requesData = getRequestByid(requestid); + log.info("requesData:{}", requesData); + String fj = Util.null2String(requesData.get("fj")); + String zwkbj = Util.null2String(requesData.get("zwkbj")); + //增加签字意见中的附件到附件文件夹中 + Map signFiles = getSignFiles(requestid); + + + List docids = new ArrayList<>(); + // docids.addAll(Arrays.asList(fj.split(","))); + // docids.addAll(Arrays.asList(zwkbj.split(","))); + Map fjMap = getFileIdByDocId(fj); + Map zwkbjMap = getFileIdByDocId(zwkbj); + List zwFileName = new ArrayList<>(); + List fjFileName = new ArrayList<>(); + final int[] i = {1}; + //附件 + fjMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + fjdir + File.separator + imageFileManager.getImageFileName(); + fjFileName.add(imageFileManager.getImageFileName()); + log.info("生成附件路径:{}", imageFileName); + imageFileName = codeUtf8(imageFileName); + try { + File file = saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = callApi(Url, file); + log.error("永中接口返回数据:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + fjdir + File.separator + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + + //签字意见附件 + signFiles.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + fjdir + File.separator + imageFileManager.getImageFileName(); + fjFileName.add(imageFileManager.getImageFileName()); + log.info("生成签字意见附件路径:{}", imageFileName); + imageFileName = codeUtf8(imageFileName); + try { + File file = saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = callApi(Url, file); + log.error("永中接口返回数据:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + fjdir + File.separator + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + + //正文 + zwkbjMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + zwFileName.add(imageFileManager.getImageFileName()); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + imageFileManager.getImageFileName(); + log.info("生成正文路径:{}", imageFileName); + imageFileName = codeUtf8(imageFileName); + try { + File file = saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + zwdir + File.separator + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + //开始承办单 先获取主流程的承办单 + List requestDocid = generaRequestFormPdf(requestid); + List subRequestDocid = generaSubRequestFormPdf(requestid); + Map reqDocMap = getFileIdByDocId(String.join(",", requestDocid)); + Map subReqDocMap = getFileIdByDocId(String.join(",", subRequestDocid)); + log.error("reqDocMap:{}", JSONObject.toJSONString(reqDocMap)); + log.error("subReqDocMap:{}", JSONObject.toJSONString(subReqDocMap)); + docids.addAll(requestDocid); + docids.addAll(subRequestDocid); + //附件 + reqDocMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + imageFileManager.getImageFileName(); + log.info("主流程承办单路径:{}", imageFileName); + imageFileName = codeUtf8(imageFileName); + try { + File file = saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + imageFileManager.getImageFileName() + ".pdf"); + } + i[0]++; + } catch (IOException e) { + e.printStackTrace(); + } + }); +//正文 + i[0] = 1; + subReqDocMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + zlcdir + File.separator + fjFile + i[0] + "_" + (imageFileManager.getImageFileName().contains("-")?imageFileManager.getImageFileName().split("\\-")[1]:imageFileManager.getImageFileName()); + imageFileName = codeUtf8(imageFileName); + log.info("子流程承办单路径:{}", imageFileName); + try { + File file = saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + zlcdir + File.separator + fjFile + i[0] + "_" + (imageFileManager.getImageFileName().contains("-")?imageFileManager.getImageFileName().split("\\-")[1]:imageFileManager.getImageFileName() )+ ".pdf"); + } + i[0]++; + } catch (IOException e) { + e.printStackTrace(); + } + }); + log.error(JSONObject.toJSONString(requestDocid)); + log.error(JSONObject.toJSONString(subRequestDocid)); + for (String docid : docids) { + log.error("删除了" + docid); + deleteDocByid(docid); + } + //-------------------------------------------------------------------- + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + + String logFile = getSignLog(requestid, cbddir+File.separator+lzxxdir, requestInfo.getCreatorid() + requestInfo.getDescription()); + String s = callApi(Url, new File(logFile)); + log.error(s); + JSONObject result = JSONObject.parseObject(s); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, logFile + ".pdf"); + } + String zipName = filePath + File.separator + requestid + ".zip"; + ZipUtil.zip(filePath + File.separator + requestid, zipName); + log.error("zipName:{}", zipName); + String ftpFilePath = HgUtils.putFile(zipName, requestid + ".zip"); + log.error("ftpFilePath:{}", ftpFilePath); + String ftpFilePathNew = HgUtils.putFile(zipName, "test" + File.separator + requestid + ".zip"); + log.error("ftpFilePathNew:{}", ftpFilePathNew); + String context = getContext(requestid, requesData, requestid + ".zip", zwFileName, fjFileName); + insertRecord(requestid, context, ftpFilePath); + log.error("context:{}", context); + return context; + } + + private Map getSignFiles(String requestid) { + RecordSet recordSet = new RecordSet(); + ArrayList docids = new ArrayList<>(); + List subRequest = getSubRequestIds(requestid); + String sql = "select * from WORKFLOW_REQUESTLOG where REQUESTID in ( " + + String.join(",",subRequest) + " )" + + " and (annexdocids is not null or annexdocids <> '')"; + recordSet.executeQuery(sql); + while (recordSet.next()){ + String annexdocids = Util.null2String(recordSet.getString("annexdocids")) ; + if (annexdocids.length()>0){ + if (annexdocids.contains(",")){ + // annexdocids.split(",") + docids.addAll(Arrays.asList(annexdocids.split(","))); + }else { + docids.add(annexdocids); + } + } + } + return getFileIdByDocId(String.join(",",docids)) ; + } + + private void insertRecord(String requestid, String context, String ftpFilePath) { + String sql = "insert into uf_pushArchivesLog (request ,content,esbwjml) VALUES (?,?,?)"; + RecordSet recordSet = new RecordSet(); + recordSet.executeUpdate(sql, requestid, context, ftpFilePath); + } + + + // 获取指定日期的第一秒 + public static Date getFirstSecondOfDate(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTime(); + } + + // 获取指定日期的最后一秒 + public static Date getLastSecondOfDate(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTime(); + } + + /** + * 生成子流程承办单 + * + * @param requestid 主流程id + */ + private List generaSubRequestFormPdf(String requestid) { + log.error("generaSubRequestFormPdf,requestid:{}",requestid); + Map subRequest = getSubRequest(requestid); + for (String s : subRequest.keySet()) { + requestid = subRequest.get(s); + break; + } + List docids = new ArrayList<>(); + // for (String wfid : subRequest.keySet()) { + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid) , 100); + WorkflowToDocCus workflowToDoc = new WorkflowToDocCus(); + requestInfo.setLastoperator("1"); + requestInfo.setDescription(getWfNameByid(requestInfo.getWorkflowid()) + "-" + requestInfo.getDescription()); + log.error("generaSubRequestFormPdf,requestInfo:{}",JSON.toJSONString(requestInfo)); + + List subDocids = workflowToDoc.execute(requestInfo, 1); + docids.addAll(subDocids); + log.error("generaSubRequestFormPdf,requestInfo:{}",JSON.toJSONString(subDocids)); + + // } + return docids; + } + + /** + * 生成主流程承办单 + * + * @param requestid + */ + private static List generaRequestFormPdf(String requestid) { + log.error("generaRequestFormPdf,requestid:{}",requestid); + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + WorkflowToDocCus workflowToDoc = new WorkflowToDocCus(); + requestInfo.setLastoperator("1"); + requestInfo.setDescription(getWfNameByid(requestInfo.getWorkflowid()) + "-" + requestInfo.getDescription()); + log.error("generaRequestFormPdf,requestInfo:{}",JSON.toJSONString(requestInfo)); + return workflowToDoc.execute(requestInfo, 0); + } + + /*** + * 封装数据 + * @param requestid + * @return + */ + public Map getRequestByid(String requestid) { + HashMap record = new HashMap<>(); + String sql = "select * from formtable_main_30 where requestid = ?"; + String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, requestid); + if (rs.next()) { + String fj = Util.null2String(rs.getString("fj")); + String zwkbj = Util.null2String(rs.getString("zwkbj")); // 正文可编辑字段 + record.put("fj", fj); + record.put("zwkbj", zwkbj); + record.put("zwyyglgwmk", Util.null2String(rs.getString("zwyyglgwmk"))); + record.put("lwh", Util.null2String(rs.getString("lwh"))); + record.put("mj", Util.null2String(rs.getString("mj"))); + record.put("lwrq", Util.null2String(rs.getString("lwrq"))); + record.put("swrq", Util.null2String(rs.getString("swrq"))); + record.put("blqx", Util.null2String(rs.getString("blqx"))); + record.put("sfdb", Util.null2String(rs.getString("sfdb"))); + record.put("wjlx", Util.null2String(rs.getString("wjlx"))); + record.put("fssj", Util.null2String(rs.getString("fssj"))); + record.put("gdh", Util.null2String(rs.getString("gdh"))); + record.put("swh", Util.null2String(rs.getString("swh"))); + record.put("ngbm", Util.null2String(rs.getString("ngbm"))); + record.put("ngr", Util.null2String(rs.getString("ngr"))); + record.put("ngrq", Util.null2String(rs.getString("ngrq"))); + record.put("swlx", Util.null2String(rs.getString("swlx"))); + record.put("jghwt", Util.null2String(rs.getString("jghwt"))); + record.put("lwdwmc", Util.null2String(rs.getString("lwdwmc"))); + record.put("bgqx", Util.null2String(rs.getString("bgqx"))); + record.put("ys", Util.null2String(rs.getString("ys"))); + record.put("wz", Util.null2String(rs.getString("wz"))); + record.put("lb", Util.null2String(rs.getString("lb"))); + record.put("bz", Util.null2String(rs.getString("bz"))); + record.put("yffbm", Util.null2String(rs.getString("yffbm"))); + record.put("ffbmb", Util.null2String(rs.getString("ffbmb"))); + record.put("yffbm", Util.null2String(rs.getString("yffbm"))); + } + rs.executeQuery(reqsql, requestid); + if (rs.next()) { + record.put("REQUESTNAME", Util.null2String(rs.getString("REQUESTNAME"))); + } + return record; + } + + + private String getContext(String requestid, Map requesData, String zipName, List zwFileName, List fjFileName) { + StringBuilder context = new StringBuilder(); + try { + + String swrq = Util.null2String(requesData.get("swrq")); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate date = LocalDate.parse(swrq, formatter); + int year = date.getYear(); + context.append(year).append("|"); + String jghwt = Util.null2String(requesData.get("jghwt")); + context.append(jghwt).append("|"); + String swh = Util.null2String(requesData.get("swh")); + context.append(swh).append("|"); + String requestname = Util.null2String(requesData.get("REQUESTNAME")); + context.append(requestname).append("|"); + String lwdwmc = Util.null2String(requesData.get("lwdwmc")); //5 责任者 -> 来文单位 + context.append(lwdwmc).append("|"); + String bgqx = Util.null2String(requesData.get("bgqx")); //6 保管期限 -> 保管期限 + context.append(bgqx).append("|"); + String lwrq = Util.null2String(requesData.get("bgqx")); //7 日期 -> 原发文日期 + context.append(lwrq).append("|"); + String ys = Util.null2String(requesData.get("ys")); //8 页数 -> 页数 + context.append(ys).append("|"); + String wz = Util.null2String(requesData.get("wz")); //9 文种 -> 文种 + context.append(wz).append("|"); + String ngbm = Util.null2String(requesData.get("ngbm")); + String[] deptData = getDeptNameAndCode(ngbm); + context.append(deptData[0]).append("|"); //10 行编号 -> 拟稿部门 + context.append(deptData[1]).append("|"); //11 行名称 + context.append("").append("|"); // 12 保管期限编号 + context.append("").append("|"); // 13 保管期限及编号 + context.append("").append("|"); // 14 是否开放 + context.append("").append("|"); // 15 互见号 + String lb = Util.null2String(requesData.get("lb")); + context.append(lb).append("|"); //16 类别 -> 类别 + //TODO + String xgbm = Util.null2String(getAssociatedDepts(requesData)); + context.append(xgbm).append("|"); //17 相关部门 -> 流经部门 + String lwh = Util.null2String(requesData.get("lwh"));// 18 收文号 -> 来文文号 + context.append(lwh).append("|"); + String fs = ""; + context.append(fs).append("|"); // 19 份数 -> 份数 + String bz = Util.null2String(requesData.get("bz")); + context.append(bz).append("|"); // 20 备注 -> 备注 + String yywh = Util.null2String(requesData.get("yywh")); + context.append(yywh).append("|"); // 21 引用文号 -> 引用文号 + String wjlx = Util.null2String(requesData.get("wjlx")); + context.append(wjlx).append("|"); // 22 文件类型 -> 空 + String fwlx = Util.null2String(requesData.get("fwlx")); + context.append(fwlx).append("|"); // 23 文件类型 -> 空 + String f = Util.null2String(requesData.get("f")); + context.append(f).append("|"); // 24 发 -> 空 + String ngr = Util.null2String(requesData.get("ngr")); + context.append(new User(Util.getIntValue(ngr)).getLoginid()).append("|"); // 25 拟稿人 -> 拟稿人 + context.append(deptData[1]).append("|"); // 26 拟稿部门 -> 拟稿部门名称 + context.append("收文").append("|"); // 27 公文类型 -> "收文" + //TODO + context.append(getAssociatedPersons(requestid)).append("|"); // 28 相关人员 -> 参与人员 + context.append("智慧OA").append("|"); // 29 数据来源 -> 数据来源 + context.append(year).append("|"); // 30 形成年度 -> 年份 + context.append(String.join("&&", zwFileName)).append("|"); // 31 正文名称 + context.append(String.join("&&", fjFileName)).append("|"); // 32 附件名称 + context.append(requestid).append("|"); // 33 主键 + context.append("").append("|"); // 34 关联主键 + context.append("").append("|"); // 35 被关联主键 + context.append(zipName);// 36 压缩包名称 + } catch (Exception e) { + e.printStackTrace(); + log.error("getContextError:{}", e.getMessage()); + } + + return context.toString(); + } + + private String getAssociatedDepts(Map requesData) { + HashSet records = new HashSet<>(); + records.addAll(Arrays.asList(Util.null2String(requesData.get("ngbm")).split(","))); + records.addAll(Arrays.asList(Util.null2String(requesData.get("ffbm")).split(","))); + records.addAll(Arrays.asList(Util.null2String(requesData.get("yffbm")).split(","))); + records.addAll(Arrays.asList(Util.null2String(requesData.get("ffbmb")).split(","))); + records.addAll(Arrays.asList(Util.null2String(requesData.get("zfbm")).split(","))); + return String.join("&&", records); + } + + private String getAssociatedPersons(String requestid) { + List subRequest = getSubRequestIds(requestid); + String sql = "select distinct b.LOGINID loginid from WORKFLOW_REQUESTLOG a left join HRMRESOURCE b " + + " on a.OPERATOR = b.ID " + + " where a.OPERATOR is not null and a.OPERATOR != 1 and a.REQUESTID in ( " + String.join(",", subRequest) + " )"; + RecordSet recordSet = new RecordSet(); + HashSet set = new HashSet<>(); + recordSet.executeQuery(sql); + while (recordSet.next()) { + String loginid = Util.null2String(recordSet.getString("loginid")); + if (StringUtil.isEmpty(loginid)) { + continue; + } + //处理下子账号 + if (loginid.length() > 8) { + loginid = loginid.substring(0, 8); + } + set.add(loginid); + } + return String.join("&&", set); + } + + private String[] getFileName(String docids) { + return new String[0]; + } + + private String[] getDeptNameAndCode(String ngbm) { + String sql = "select DEPARTMENTNAME , DAPYBH from hrmdepartment a left join hrmdepartmentdefined b " + + " on a.ID = b.DEPTID " + + " where a.ID = ? "; + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery(sql, ngbm); + recordSet.next(); + return new String[]{recordSet.getString("DAPYBH"), recordSet.getString("DEPARTMENTNAME")}; + } + + /** + * 将gbk转为UTF-8,创建ISO-8859-1编码的字符串, + * ISO-8859-1编码是一个字节对应一个字符,因此不会使最后一个字节错误。 + * + * @param text + * @return + */ + public static String codeUtf8(String text) { + String ISOtext = null; + ISOtext = new String(text.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); + return new String(ISOtext.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + + } + + /** + * 获取当前流程下的所有子流程(最大5层) + * + * @param requestid + * @return + */ + public static Map getSubRequest(String requestid) { + HashMap records = new HashMap<>(); + RecordSet rs = new RecordSet(); + String ids = requestid; + for (int i = 0; i < 5; i++) { + ArrayList idList = new ArrayList<>(); + String sql = "select requestid , workflowid from workflow_requestbase where mainrequestid in ( " + ids + " )"; + rs.executeQuery(sql); + while (rs.next()) { + String subrequestid = Util.null2String(rs.getString("requestid")); + String workflowid = Util.null2String(rs.getString("workflowid")); + idList.add(subrequestid); + // 使用map自动去重,一种流程类型只取一个requestid + records.put(workflowid, subrequestid); + } + ids = String.join(",", idList); + } + + + // String sql = "select requestid from workflow_requestbase where mainrequestid = ?"; + // RecordSet rs = new RecordSet(); + // rs.executeQuery(sql, requestid); + // if (rs.next()) { + // String subrequestid = Util.null2String(rs.getString("requestid")); + // records.add(subrequestid); + // } + return records; + } + + public static List getSubRequestIds(String requestid) { + List reqids = new ArrayList<>(); + RecordSet rs = new RecordSet(); + String ids = requestid; + reqids.add(requestid); + for (int i = 0; i < 5; i++) { + ArrayList idList = new ArrayList<>(); + String sql = "select requestid , workflowid from workflow_requestbase where mainrequestid in ( " + ids + " )"; + log.error("subrequestSql:{}", sql); + rs.executeQuery(sql); + while (rs.next()) { + String subrequestid = Util.null2String(rs.getString("requestid")); + // String workflowid = Util.null2String(rs.getString("workflowid")); + idList.add(subrequestid); + reqids.add(subrequestid); + // 使用map自动去重,一种流程类型只取一个requestid + + } + ids = String.join(",", idList); + if (ids.length() == 0) { + break; + } + } + + + // String sql = "select requestid from workflow_requestbase where mainrequestid = ?"; + // RecordSet rs = new RecordSet(); + // rs.executeQuery(sql, requestid); + // if (rs.next()) { + // String subrequestid = Util.null2String(rs.getString("requestid")); + // records.add(subrequestid); + // } + return reqids; + } + + + /** + * 获取imageid Map + * + * @param ids + * @return + */ + public static Map getFileIdByDocId(String ids) { + HashMap records = new HashMap<>(); + + String sql = "select docid,df.imagefileid imgid from docimagefile df left join imagefile imf on df.imagefileid = imf.imagefileid where DOCID in (" + ids + ")"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(sql); + while (recordSet.next()) { + String docid = Util.null2String(recordSet.getString("docid")); + String imgid = Util.null2String(recordSet.getString("imgid")); + records.put(docid, imgid); + } + return records; + } + + /** + * 将InputStream写入本地文件 + * + * @param inputStream 输入流 + * @param localFilePath 本地文件路径 + * @return + * @throws IOException 如果发生输入输出异常 + */ + public static File saveInputStreamToFile(InputStream inputStream, String localFilePath) throws IOException { + File targetFile = new File(localFilePath); + + // 确保目标文件的父目录存在 + File parentDir = targetFile.getParentFile(); + if (parentDir != null && !parentDir.exists()) { + parentDir.mkdirs(); + } + + + // 使用try-with-resources语句确保流的正确关闭 + try (InputStream in = inputStream; + OutputStream outputStream = new FileOutputStream(targetFile)) { + int read; + byte[] bytes = new byte[1024]; + while ((read = in.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + } // 自动关闭 in 和 outputStream + return targetFile; + } + + + /** + * 根据链接下载文件 + * + * @param fileURL + * @param saveDir + */ + public static void downloadFile(String fileURL, String saveDir) { + log.info("文件下载地址:{}", fileURL); + log.info("文件保存地址:{}", saveDir); + + try { + saveDir = codeUtf8(saveDir); + URL url = new URL(fileURL); + File file = new File(saveDir); + FileUtils.copyURLToFile(url, file); + log.error("Download completed successfully."); + } catch (IOException e) { + e.printStackTrace(); + log.error("Download failed."); + } + } + + + /** + * 调用永中接口 + * + * @param BASE_URL + * @param file + * @return + * @throws IOException + */ + public static String callApi(String BASE_URL, File file) { + OkHttpClient client = new OkHttpClient(); + // Debugging: Check if the file exists and can be read + if (file.exists() && file.canRead()) { + log.error("File exists and is readable. File path: " + file.getAbsolutePath()); + } else { + log.error("File does not exist or cannot be read. File path: " + file.getAbsolutePath()); + } + RequestBody requestBody = null; + String code = getCodeByFileType(file.getName()); + String fileName = null; + try { + fileName = URLEncoder.encode(file.getName(), StandardCharsets.UTF_8.toString()); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + try { + requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("convertType", code) + .addFormDataPart("file", fileName, RequestBody.create(MediaType.parse("application/zip"), file)) + .build(); + } catch (Exception e) { + log.error(e.getMessage()); + e.printStackTrace(); + } + + Request request = new Request.Builder() + .url(BASE_URL) + .post(requestBody) + .build(); + + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + /** + * 根据文件类型获取转为pdf的编码 + * + * @param FileName + * @return + */ + + public static String getCodeByFileType(String FileName) { + String extName = FileName.substring(FileName.lastIndexOf(".") + 1); + String convertType = ""; + if (extName.matches("(doc|dot|dtd|docx|docm|dotx|ppt|pptx|ppsx|potx|xlsx|xlsm|wps|dps|et|wpt|xls|xlc|xlt|xlm|xlw|DOC|DOT|DTD|DOCX|DOCM|DOTX|PPT|PPTX|PPSX|POTX|XLSX|XLSM|WPS|DPS|ET|WPT|XLS|XLC|XLT|XLM|XLW)")) { + convertType = "3"; + } else if (extName.matches("(ofd|OFD)")) { + convertType = "57"; + } else if (extName.matches("(GIF|JPEG|JPG|BMP|PNG|gif|jpeg|jpg|bmp|png)")) { + convertType = "44"; + } else if (extName.matches("(PDF|pdf)")) { + convertType = "34"; + } + return convertType; + } + + + /*** + * 获取关键词 + * @param id + * @return + */ + public static String getKeyword(String id) { + String sql = "select * from uf_test where id = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, id); + rs.next(); + return Util.null2String(rs.getString("label")); + } + + /** + * 删除文档及附件,调用移到回收站,再从回收站删除 + * + * @param docid + */ + public static void deleteDocByid(String docid) { + DocRecycleManager docRecycleManager = new DocRecycleManager(); + User user = new User(1); + docRecycleManager.moveDocToRecycle(user.getUID(), user.getLogintype(), Util.getIntValue(docid), "127.0.0.1"); + docRecycleManager.deleteDocFromRecycle(user.getUID(), user.getLogintype(), weaver.general.Util.getIntValue(docid), "127.0.0.1"); + } + + /** + * 获取流程类型名称 + * + * @param wfid + * @return + */ + + public static String getWfNameByid(String wfid) { + String sql = "select WORKFLOWNAME from WORKFLOW_BASE where id = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, wfid); + rs.next(); + return Util.null2String(rs.getString("WORKFLOWNAME")); + } + + + /** + * 生成流转意见 意见 + * + * @param requestid + * @param dirName + * @param requestName + * @return + */ + public static String getSignLog(String requestid, String dirName, String requestName) { + List subRequestIds = getSubRequestIds(requestid); + ArrayList> lists = new ArrayList<>(); + for (String reqid : subRequestIds) { + HashMap params = new HashMap<>(); + params.put("requestid", reqid); + params.put("desremark", "all"); + params.put("pageSize", "50"); + params.put("isfirst", "true"); + // params.put("request", request); + Map data = getSignLogCmd(params, new User(1)); + log.info("流转信息:{}", data); + log.error(JSONObject.toJSONString(data)); + Map datas = (Map) data.get("datas"); + List> entries = new ArrayList<>(datas.entrySet()); + entries.sort(new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + Integer key1 = Util.getIntValue((Util.null2String(o1.getKey())).replace("key", "")); + Integer key2 = Util.getIntValue((Util.null2String(o2.getKey())).replace("key", "")); + return key1 - key2; + } + }); // 自然顺序 + + ArrayList> results = new ArrayList<>(); + // log.error(JSONObject.toJSONString(entries)); + for (Map.Entry entry : entries) { + + Map value = (Map) entry.getValue(); + List> list = (List) value.get("list"); + for (Map item : list) { + String operator = (String) item.get("operator"); + String operatorid = (String) item.get("operatorid"); + String operatortype = (String) item.get("operatortype"); + String operatedate = (String) item.get("operatedate"); + String nodename = (String) value.get("nodename"); + HashMap itemMap = new HashMap<>(); + itemMap.put("operator", operator); + itemMap.put("operatorid", operatorid); + itemMap.put("operatortype", operatortype); + itemMap.put("operatedate", operatedate); + itemMap.put("nodename", nodename); + itemMap.put("requestName", (String) value.get("requestName")); + + results.add(itemMap); + } + } + log.error("排序结果:{}", JSONObject.toJSONString(results)); + HashMap records = new HashMap<>(); + records.put("results",results); + String requestName1 = (String) data.get("requestName"); + records.put("requestName",requestName1); + log.error("requestName1:{}", requestName1); + log.error("records:{}", JSONObject.toJSONString(records)); + lists.add(records); + } + + try { + Map dataMap = new HashMap<>(); + dataMap.put("lists", lists); // 将用户列表添加到数据映射中 + log.error("dataMap:{}", JSONObject.toJSONString(dataMap)); + String TemplatePath = "/opt/weaver/filesys/"; + //String TemplateName = "html模版.ftl"; + String TemplateName = "temp.ftl"; + // 加载模板并填充数据 + log.error("模板路径:{}", templatePath); + // 导出Word文档 + String outputPath = filePath + File.separator + requestid + File.separator + dirName + File.separator + requestName + ".docx"; // 输出文件路径 + log.error("生成文件路径:{}", templatePath); + + return generate(TemplatePath, TemplateName, dataMap, outputPath); + } catch (Exception e) { + log.error("errorerrorerror"); + log.error(e.getMessage()); + e.printStackTrace(); + } + return requestid; + } + + + public static Map getSignLogCmd(Map params, User user) { + Map result = new HashMap(); + RequestAuthenticationService authService = new RequestAuthenticationService(); + authService.setUser(user); + + long date1 = new Date().getTime(); + try { + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + int pageSize = Util.getIntValue(Util.null2String(params.get("pageSize")), 30); + int desrequestid = Util.getIntValue(Util.null2String(params.get("desrequestid")), 0); + String isfirst = Util.null2String(params.get("isfirst")); + String isurger = Util.null2String(params.get("isurger")); + String desremark = Util.null2String(params.get("desremark")); + int desremarkIndex = desremark.indexOf("_"); + boolean isAdSearch = false;//是否有过滤条件 + if (desremarkIndex > -1) { + isAdSearch = true; + desremark = desremark.substring(0, desremarkIndex); + } + String parameter = Util.null2String(params.get("parameter")); + int selectedNode = Util.getIntValue(Util.null2String(params.get("selectedNode")), -1);//选中的节点 + String selectedOperator = Util.null2String(params.get("selectedOperator"));//选中的操作者 + int requestid = Util.getIntValue(Util.null2String(params.get("requestid")), 0); + int workflowid = -1; + String requestName = ""; + rs.executeQuery("select workflowid , REQUESTNAMENEW from workflow_requestbase where requestid=" + requestid); + if (rs.next()) { + workflowid = Util.getIntValue(rs.getString("workflowid")); + requestName = Util.null2String(rs.getString("REQUESTNAMENEW")); + } + // 将json字符串转换成jsonObject + int currentMaxId = 0; + int currentMinId = 0; + int currentId = 0; + int currentId2 = 0; + int lastNodeId = 0; + String viewlogids = ""; + int index = 0; + try { + if (!"true".equals(isfirst)) { + Map parameterMap = JSON.parseObject(parameter, Map.class);//Weibo类在下边定义 + currentMaxId = Util.getIntValue(parameterMap.get("currentMaxId"), 0); + currentMinId = Util.getIntValue(parameterMap.get("currentMinId"), 0); + String currentId12 = Util.null2String(parameterMap.get("currentId")); + if (currentId12.contains("_")) { + String[] currentId12Arr = currentId12.split("_"); + currentId = Util.getIntValue(currentId12Arr[0]); + currentId2 = Util.getIntValue(currentId12Arr[1]); + } else { + currentId = Util.getIntValue(currentId12); + } + viewlogids = Util.null2String(parameterMap.get("viewlogids")); + index = Util.getIntValue(parameterMap.get("nodeindex"), 0); + lastNodeId = Util.getIntValue(parameterMap.get("lastNodeId"), 0); + } + } catch (Exception e) { + e.printStackTrace(); + } + Map putpara = new HashMap(); + + Monitor monitor = new Monitor(); +// String joinStr = ("oracle".equalsIgnoreCase(rs.getDBType()) || "mysql".equalsIgnoreCase(rs.getDBType())) ? " left join " : " left hash join "; + String joinStr = " left join "; +// if (isurger.equals("true") || monitor.hasMonitor(requestid+"", user.getUID() + "")) { +// StringBuffer sqlsb = new StringBuffer(); +// sqlsb.append(" select a.id,a.nodeid, "); +// sqlsb.append(" b.nodename, "); +// sqlsb.append(" a.userid, "); +// sqlsb.append(" a.isremark, "); +// sqlsb.append(" a.lastisremark, "); +// sqlsb.append(" a.usertype, "); +// sqlsb.append(" a.agentorbyagentid, "); +// sqlsb.append(" a.agenttype, "); +// sqlsb.append(" a.receivedate, "); +// sqlsb.append(" a.receivetime, "); +// sqlsb.append(" a.operatedate, "); +// sqlsb.append(" a.operatetime, "); +// sqlsb.append(" a.viewtype, "); +// sqlsb.append(" a.nodetype "); +// sqlsb.append(" ,a.operator "); +// sqlsb.append(" from (SELECT distinct top ").append(pageSize); +// sqlsb.append(" o.id, " ); +// sqlsb.append(" o.requestid, " ); +// sqlsb.append(" o.userid, "); +// sqlsb.append(" o.workflowid, "); +// sqlsb.append(" o.workflowtype, "); +// sqlsb.append(" o.isremark, "); +// sqlsb.append(" o.lastisremark, "); +// sqlsb.append(" o.usertype, "); +// sqlsb.append(" o.nodeid, "); +// sqlsb.append(" o.agentorbyagentid, "); +// sqlsb.append(" o.agenttype, "); +// sqlsb.append(" o.receivedate, "); +// sqlsb.append(" o.receivetime, "); +// sqlsb.append(" o.viewtype, "); +// sqlsb.append(" o.iscomplete, "); +// sqlsb.append(" o.operatedate, "); +// sqlsb.append(" o.operatetime, "); +// sqlsb.append(" nodetype "); +// sqlsb.append(" ,wr.operator "); +// sqlsb.append(" FROM workflow_currentoperator o "); +// +// sqlsb.append(" left join workflow_requestlog wr"); +// sqlsb.append(" on wr.requestid=o.requestid"); +// sqlsb.append(" and wr.nodeid=o.nodeid"); +// sqlsb.append(" and wr.operator = o.userid"); +// sqlsb.append(" and wr.logtype <> '1'"); +// +// sqlsb.append(" , workflow_flownode "); +// +// sqlsb.append(" where o.nodeid = "); +// sqlsb.append(" workflow_flownode.nodeid "); +// if(desremark ==1){//1:已提交 +// sqlsb.append(" AND o.isremark='2' AND wr.operator IS NOT null "); +// }else if(desremark == 2){//2:未提交 +// sqlsb.append(" and ((o.isremark = '0' and (o.takisremark is null or o.takisremark=0)) or o.isremark in ('1','5','7','8','9') )"); +// }else if(desremark == 3){//3:已查看 +// sqlsb.append(" and (((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','4','5','7','8','9')) AND o.viewtype IN (-1,-2)) "); +// }else if(desremark == 4){//4:未查看 +// sqlsb.append(" AND o.viewtype = 0 "); +// } +// sqlsb.append(" and o.id > ").append(currentId); +// sqlsb.append(" and o.requestid = " + requestid + ") a, "); +// sqlsb.append(" workflow_nodebase b "); +// sqlsb.append(" where a.nodeid = b.id "); +// sqlsb.append(" and a.requestid = " + requestid + " "); +// sqlsb.append(" and a.agenttype <> 1 "); +// sqlsb.append(" order by a.id "); +// //log.error("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); +// rs.executeSql(sqlsb.toString()); +// +// } else { + // 处理相关流程的查看权限 +// if ("".equals(viewlogids)) { +// viewlogids = this.getViewLogids(); +// } + StringBuffer sqlsb = new StringBuffer(); + if ("sqlserver".equalsIgnoreCase(rs.getDBType())) { // sqlserver 排序提到这里 + sqlsb.append(" select top ").append(pageSize).append(" a.id,a.nodeid, "); + } else { + sqlsb.append(" select a.id,a.nodeid, "); + } + sqlsb.append("(CASE WHEN a.nodeid < -1 THEN (SELECT nodename FROM workflow_freenode t WHERE t.id = a.nodeid) ELSE (SELECT nodename FROM workflow_nodebase t1 WHERE t1.id = a.nodeid) END) AS nodename,"); + sqlsb.append(" a.userid, "); + sqlsb.append(" a.isremark, "); + sqlsb.append(" a.preisremark, "); + sqlsb.append(" a.lastisremark, "); + sqlsb.append(" a.usertype, "); + sqlsb.append(" a.agentorbyagentid, "); + sqlsb.append(" a.agenttype, "); + sqlsb.append(" a.receivedate, "); + sqlsb.append(" a.receivetime, "); + sqlsb.append(" a.operatedate, "); + sqlsb.append(" a.operatetime, "); + sqlsb.append(" a.processuser, "); + sqlsb.append(" a.viewtype, "); + sqlsb.append(" a.nodetype "); + sqlsb.append(" ,a.operator "); + sqlsb.append(" ,a.tab "); + //if("true".equals(isfirst)){ + /*if("oracle".equals(rs.getDBType()) || "mysql".equals(rs.getDBType())){ + sqlsb.append(" from (SELECT distinct "); + }else{ + sqlsb.append(" from (SELECT distinct top ").append(pageSize); // sqlserver排序提到外层查询 + }*/ + sqlsb.append(" from (SELECT distinct "); +// }else{ +// sqlsb.append(" from (SELECT distinct "); +// } + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" o.workflowtype, "); + //workflow_otheroperator表中isremark为字符型,这里转下字符 + if (rs.getDBType().toLowerCase().equals("oracle") || rs.getDBType().toLowerCase().equals("postgresql")) { + sqlsb.append(" to_char(o.isremark) as isremark, "); + sqlsb.append(" to_char(o.preisremark) AS preisremark, "); + sqlsb.append(" to_char(o.lastisremark) AS lastisremark, "); + } else if (rs.getDBType().toLowerCase().equals("mysql")) { + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.preisremark, "); + sqlsb.append(" o.lastisremark, "); + } else { + sqlsb.append(" cast(o.isremark as varchar) as isremark, "); + sqlsb.append(" cast(o.preisremark as varchar) as preisremark, "); + sqlsb.append(" cast(o.lastisremark as varchar) as lastisremark, "); + } + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" o.agentorbyagentid, "); + sqlsb.append(" o.agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" o.iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" o.processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype "); + sqlsb.append(" ,wr.operator "); + sqlsb.append(" ,1 as tab "); + sqlsb.append(" FROM workflow_currentoperator o "); + sqlsb.append(" " + joinStr + " workflow_requestlog wr"); + sqlsb.append(" on wr.requestid=o.requestid"); + sqlsb.append(" and wr.nodeid=o.nodeid"); + sqlsb.append(" and wr.operator = o.userid"); + sqlsb.append(" and wr.logtype <> '1'"); + sqlsb.append(" and o.operatedate = wr.operatedate"); + sqlsb.append(" and o.operatetime = wr.operatetime");//再通过时间关联一下,防止流程状态操作状态显示错误 + sqlsb.append(" where o.id > ").append(currentId); + if ("submit".equals(desremark)) {//1:已提交----isremark等于4,preisremark=11实际对应已提交数据 + sqlsb.append(" AND (o.isremark='2' or (o.isremark=4 and o.preisremark=11)) AND (wr.operator IS NOT null or o.userid = o.processuser)"); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + sqlsb.append(" AND( (o.isremark != '2' AND o.isremark != '4') OR (o.isremark = '4' AND o.viewtype = 0 and o.preisremark != 11) ) "); + } else if ("view".equals(desremark)) {//3:已查看 + sqlsb.append(" and ((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','5','7','8','9','11') or (o.isremark=4 and o.preisremark!=11)) AND o.viewtype IN (-1,-2) "); + } else if ("noview".equals(desremark)) {//4:未查看 + sqlsb.append(" AND o.viewtype=0 AND (o.isremark IN ('0','1','5','7','8','9','11') or (o.isremark = '2' AND wr.operator IS NULL) or (o.isremark=4 and o.preisremark!=11)) "); + } + sqlsb.append(" and o.requestid = " + requestid); + sqlsb.append(" union "); + sqlsb.append(" SELECT DISTINCT "); + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" 0 as workflowtype, "); + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.isremark as preisremark, "); + sqlsb.append(" o.isremark as lastisremark, "); + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" 0 as agentorbyagentid, "); + sqlsb.append(" '0' as agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" 1 as iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" wr.operator as processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype, "); + sqlsb.append(" wr.operator "); + sqlsb.append(" ,2 as tab "); + sqlsb.append(" FROM workflow_otheroperator o LEFT JOIN workflow_requestlog wr ON wr.requestid = o.requestid "); + sqlsb.append(" AND wr.nodeid = o.nodeid "); + sqlsb.append(" AND wr.operator = o.userid "); + sqlsb.append(" AND wr.logtype <> '1' "); + sqlsb.append(" WHERE o.requestid = " + requestid + " "); + sqlsb.append(" and o.id > ").append(currentId2); + sqlsb.append(" ) a "); + sqlsb.append(" where a.requestid = " + requestid + " "); + sqlsb.append(" and a.agenttype <> 1 "); + if (!"".equals(viewlogids)) { + sqlsb.append(" and a.nodeid in (" + viewlogids + ") "); + } + if (selectedNode != -1) { + sqlsb.append(" AND a.nodeid = " + selectedNode + " "); + } + if (!"".equals(selectedOperator)) { + sqlsb.append(" AND a.userid = " + selectedOperator + " "); + } + + WorkflowConfigComInfo configComInfo = new WorkflowConfigComInfo(); + boolean showdelFreeNodeInfo = "1".equals(configComInfo.getValue("showdelete_freenode_info")); + + sqlsb.append(" and (a.nodeid > -1 or (a.nodeid < -1 and exists (select id from workflow_freenode where id = a.nodeid and requestid = " + requestid + (showdelFreeNodeInfo ? "" : " and groupid > 0 ") + " ))) "); + + //搜索时返回状态 + if (isAdSearch && "true".equals(isfirst)) { + rs.executeQuery("select count(id) as count from (" + sqlsb.toString().replace("top " + pageSize, "") + ") t"); + result.put("countTime", new Date().getTime() - date1); + if (rs.next()) { + result.put("count", Util.null2String(rs.getString("count"))); + } + } + + sqlsb.append(" order by a.receivedate, a.receivetime,a.id , a.nodetype"); + + //log.error("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); + if ("oracle".equals(rs.getDBType())) { //必须排序后再限制rownum + String sql_oracle = sqlsb.toString(); + sqlsb.setLength(0); + sqlsb.append("select * from (" + sql_oracle + ") where rownum < ").append(pageSize); + } else if ("mysql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } else if ("postgresql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } + if (requestid > 0) { + rs.executeSql(sqlsb.toString()); + } + result.put("dataTime", new Date().getTime() - date1); +// } + List> statuslist = new ArrayList>(); + int tmpnodeid = 0; + while (rs.next()) { + int tab = rs.getInt("tab"); + if (tab == 1) { + currentId = rs.getInt("id"); + } else { + currentId2 = rs.getInt("id"); + } + tmpnodeid = rs.getInt("nodeid"); + String tmpnodename = rs.getString("nodename"); + Map nodekv = null; + if (statuslist.size() == 0) { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } else { + Map temmap = statuslist.get(statuslist.size() - 1); + int tnodeid = Util.getIntValue(temmap.get("nodeid"), 0); + if (tnodeid == tmpnodeid) { + nodekv = temmap; + } else { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } + } + nodekv.put("nodeid", tmpnodeid + ""); + nodekv.put("nodename", tmpnodename + ""); + } + int nextlistcount = 0; + int nextsubmitCount = 0; + int nextviewCount = 0; + int nextnoviewCount = 0; + if ("all".equals(desremark) && !isAdSearch) { + currentMaxId = currentId; + String maxsql = " select a.id,a.nodeid from workflow_currentoperator a where a.id > " + currentId + " and a.requestid=" + requestid + " order by a.id ,a.receivedate, a.receivetime"; + rs1.executeSql(maxsql); + while (rs1.next()) { + int currentid = rs1.getInt("id"); + int currentnodeid = rs1.getInt("nodeid"); + if (currentnodeid == tmpnodeid) { + currentMaxId = currentid; + } else { + break; + } + } + String listcountsql = " select count(id) num from workflow_currentoperator where id > " + currentId + " and id <= " + currentMaxId + " and requestid=" + requestid + " and nodeid=" + tmpnodeid + " and agenttype <> 1 and usertype <> 1 "; + //String submitCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid +" and agenttype <> 1 and usertype <> 1 and isremark = 2 and exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and workflow_requestlog.operator=workflow_currentoperator.userid )"; + //String viewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 and (viewtype = -1 or viewtype=-2) and ((isremark = '0' and (takisremark is null or takisremark=0)) or isremark in ('1','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + //String noviewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 AND viewtype=0 AND (isremark IN ('0','1','4','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + String submitCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.isremark = 2 and wr.operator is NOT null "; + String viewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype IN (-1,-2) and ((wc.isremark = '2' AND wr.operator IS NULL) or wc.isremark in ('0','1','4','5','7','8','9')) "; + String noviewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype=0 AND (wc.isremark IN ('0','1','4','5','7','8','9','11') or (wc.isremark = '2' and wr.operator is null )) "; + rs1.executeSql(listcountsql); + while (rs1.next()) { + nextlistcount = rs1.getInt("num"); + } + rs1.executeSql(submitCountsql); + while (rs1.next()) { + nextsubmitCount = rs1.getInt("num"); + } + rs1.executeSql(viewCountsql); + while (rs1.next()) { + nextviewCount = rs1.getInt("num"); + } + rs1.executeSql(noviewCountsql); + while (rs1.next()) { + nextnoviewCount = rs1.getInt("num"); + } + } + + Map allstatusmap = new HashMap(); + Map submitstatusmap = new HashMap(); + Map nosubmitstatusmap = new HashMap(); + Map viewstatusmap = new HashMap(); + Map noviewstatusmap = new HashMap(); + //提交节点信息--滚动加载到当前currentoperator对应最大id + + //数字统计转到新接口count中 + ResourceComInfo resourceComInfo = new ResourceComInfo(); + CustomerInfoComInfo customerInfoComInfo = new CustomerInfoComInfo(); + Map all_nodemap = new HashMap(); + Map submit_nodemap = new HashMap(); + Map nosubmit_nodemap = new HashMap(); + Map view_nodemap = new HashMap(); + Map noview_nodemap = new HashMap(); + + rs.beforFirst(); + int currentnum = 0; + for (Iterator> it = statuslist.iterator(); it.hasNext(); index++) { + + Map nodekv = it.next(); + int fnodeid = Util.getIntValue(nodekv.get("nodeid")); + String namename = nodekv.get("nodename"); + int submitCount = 0; + int viewCount = 0; + int noviewCount = 0; + int listcount = 0; + if ("false".equals(isfirst) && currentnum == 0 && lastNodeId == fnodeid) { + index -= 1; + } + if (tmpnodeid == fnodeid && currentnum == (statuslist.size() - 1)) { + submitCount = nextsubmitCount; + viewCount = nextviewCount; + noviewCount = nextnoviewCount; + listcount = nextlistcount; + } + currentnum++; + Map all_nodemap_in = new HashMap(); + all_nodemap_in.put("nodeid", fnodeid); + all_nodemap_in.put("nodename", namename); + Map submit_nodemap_in = new HashMap(); + Map nosubmit_nodemap_in = new HashMap(); + Map view_nodemap_in = new HashMap(); + Map noview_nodemap_in = new HashMap(); + + List> nodeallstatuslist = new ArrayList>(); + List> nodesubmitstatuslist = new ArrayList>(); + List> nodenosubmitstatuslist = new ArrayList>(); + List> nodeviewstatuslist = new ArrayList>(); + List> nodenoviewstatuslist = new ArrayList>(); + + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.putAll(all_nodemap_in); + submitstatusmap.put("datas", submit_nodemap); + submit_nodemap.put("key" + index, submit_nodemap_in); + submit_nodemap_in.put("list", nodesubmitstatuslist); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.putAll(all_nodemap_in); + nosubmitstatusmap.put("datas", nosubmit_nodemap); + nosubmit_nodemap.put("key" + index, nosubmit_nodemap_in); + nosubmit_nodemap_in.put("list", nodenosubmitstatuslist); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.putAll(all_nodemap_in); + viewstatusmap.put("datas", view_nodemap); + view_nodemap.put("key" + index, view_nodemap_in); + view_nodemap_in.put("list", nodeviewstatuslist); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.putAll(all_nodemap_in); + noviewstatusmap.put("datas", noview_nodemap); + noview_nodemap.put("key" + index, noview_nodemap_in); + noview_nodemap_in.put("list", nodenoviewstatuslist); + } else { + //所有节点信息 + allstatusmap.put("datas", all_nodemap); + all_nodemap.put("key" + index, all_nodemap_in); + all_nodemap_in.put("list", nodeallstatuslist); + } + + boolean islight = false; + RobotNodeServiceBiz robotNodeServiceBiz = new RobotNodeServiceBiz(); + while (rs.next()) { + int tmpnodeid1 = rs.getInt("nodeid"); + + if (tmpnodeid1 != fnodeid) { + rs.previous(); + break; + } + + //String tmpnodename = rs.getString("nodename"); + int tmpcurrid = rs.getInt("id"); + String tmpuserid = rs.getString("userid"); + String tmpisremark = Util.null2String(rs.getString("isremark")); + if (tmpisremark.equals("")) { + tmpisremark = Util.null2String(rs.getString("lastisremark")); + } + int tmpusertype = rs.getInt("usertype"); + String tmpagentorbyagentid = rs.getString("agentorbyagentid"); + int tmpagenttype = rs.getInt("agenttype"); + String tmpreceivedate = rs.getString("receivedate"); + String tmpreceivetime = rs.getString("receivetime"); + String tmpoperatedate = rs.getString("operatedate"); + String tmpoperatetime = rs.getString("operatetime"); + String viewtype = rs.getString("viewtype"); + String nodetype = rs.getString("nodetype"); + int preisremark = rs.getInt("preisremark"); + String processuser = rs.getString("processuser"); + boolean flags = false; + String tmpIntervel = ""; + // 如果tmpisremark=2 判断时候在日志表里有该人(确定是否是由非会签得到的isremark=2) + + String operator = rs.getString("operator"); + if (operator != null && !"".equals(operator)) { + flags = true; + } + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && tmpoperatedate != null && !tmpoperatedate.equals("")) { + tmpIntervel = TimeUtil.timeInterval2(tmpreceivedate + " " + tmpreceivetime, tmpoperatedate + " " + tmpoperatetime, user.getLanguage()); + } + islight = !islight; + Map _statusmap = new HashMap(); + // 操作人 + String _statususername = ""; + String _operatorid = ""; + String _beagentid = ""; + String _beagentname = ""; + String _operatortype = "0"; + if (tmpusertype == 0) { + _operatorid = tmpuserid; + _statususername = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpuserid)); + if (tmpagenttype == 2) { //代理情况 + _beagentid = tmpagentorbyagentid; + _beagentname = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpagentorbyagentid)); + } + _statusmap.put("operatorImg", resourceComInfo.getMessagerUrls(tmpuserid)); + _statusmap.put("operatorImgDefName", _statususername); + } else if (RobotNodeBiz.operatortype.equals(tmpusertype + "")) { + _statususername = Util.formatMultiLang(robotNodeServiceBiz.getRobotNodeSet(tmpnodeid1).getOperatorName()); + _operatorid = tmpuserid; + _operatortype = "2"; + } else { + _operatorid = tmpuserid; + _operatortype = "1"; + _statususername = ServiceUtil.convertChar(customerInfoComInfo.getCustomerInfoname(tmpuserid)); + } + + // 查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 8:退回 9:被撤回 + int _statusCode = 0; + + if (preisremark != 8 && (tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + _statusCode = 3; + submitCount++; + if ("4".equals(nodetype) && preisremark == 0) { + _statusCode = 7; + } + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + _statusCode = 2; + viewCount++; + } else { + _statusCode = 1; + noviewCount++; + } + } else if ("s".equals(tmpisremark)) { + _statusCode = 4; + } else if ("r".equals(tmpisremark)) { + _statusCode = 6; + } else if ("c".equals(tmpisremark)) { + _statusCode = 5; + } else if (preisremark == 8 && viewtype.equals("-2") && tmpisremark.equals("2")) { + _statusCode = 2; + viewCount++; + } + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select operatetype from workflow_currentoperator where id=?", tmpcurrid); + if (recordSet.next()) { + int operatetype = recordSet.getInt(1); + if (operatetype == 3) {//退回 + _statusCode = 8; + } else if (operatetype == 4) {//被撤回 + _statusCode = 9; + } + } + + + listcount++; + if ("view".equals(desremark)) {//3:已查看 + if (processuser.equals(tmpuserid) && ("2".equals(tmpisremark) || "4".equals(tmpisremark))) { + listcount--; + } + } + String _receivedate = ""; + String _operatedate = ""; + String _intervel = ""; + + if (!tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + _receivedate = Util.toScreen(tmpreceivedate, user.getLanguage()) + " " + Util.toScreen(tmpreceivetime, user.getLanguage()); + } + _operatedate = Util.toScreen(tmpreceivedate, user.getLanguage()) + " " + Util.toScreen(tmpreceivetime, user.getLanguage()); + + _intervel = Util.toScreen(tmpIntervel, user.getLanguage()); + + _statusmap.put("statuscode", String.valueOf(_statusCode)); + _statusmap.put("operator", _statususername); + _statusmap.put("receivedate", _receivedate); + _statusmap.put("operatedate", _operatedate); + _statusmap.put("intervel", _intervel); + _statusmap.put("operatorid", _operatorid); + _statusmap.put("operatortype", _operatortype); + _statusmap.put("beagentid", _beagentid); + _statusmap.put("beagentname", _beagentname); + _statusmap.put("nodetype", nodetype); + + //所有节点 + nodeallstatuslist.add(_statusmap); + //查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + nodesubmitstatuslist.add(_statusmap); + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + nodeviewstatuslist.add(_statusmap); + } else if (viewtype.equals("0")) { + nodenoviewstatuslist.add(_statusmap); + } + } + + if ((!tmpisremark.equals("2") && !tmpisremark.equals("4")) || (tmpisremark.equals("4") && viewtype.equals("0"))) { + if (!tmpisremark.equals("s") && !tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + nodenosubmitstatuslist.add(_statusmap); + } + } + } + //--已提交、已查看、未查看 + all_nodemap_in.put("submitCount", submitCount);//--已提交 + all_nodemap_in.put("viewCount", viewCount);//--已查看 + all_nodemap_in.put("noviewCount", noviewCount);//--未查看 + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.put("listcount", listcount); + result.putAll(submitstatusmap); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.put("listcount", listcount); + result.putAll(nosubmitstatusmap); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.put("listcount", listcount); + result.putAll(viewstatusmap); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.put("listcount", listcount); + result.putAll(noviewstatusmap); + } else { + //所有节点信息 + all_nodemap_in.put("listcount", listcount); + result.putAll(allstatusmap); + } + lastNodeId = fnodeid; + } +// if(maxid == currentMaxId){ +// isfinish = 1; +// } + putpara.put("nodeindex", index + ""); + putpara.put("currentMaxId", currentMaxId + ""); + putpara.put("currentMinId", currentMinId + ""); + putpara.put("currentId", currentId + "_" + currentId2); + putpara.put("lastNodeId", lastNodeId + ""); + putpara.put("viewlogids", viewlogids + ""); + putpara.put("requestName", requestName); + result.put("parameter", putpara); + result.put("otherTime", new Date().getTime() - date1); + result.put("requestName", requestName); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + //创建文件夹 + public File crFile(String pathName) { + // bean.writeLog("创建文件夹==="+pathName); + File file = new File(pathName); + try { + // bean.writeLog("创建文件夹==="+file.exists()); + if (!file.exists()) { + file.mkdir(); + } + } catch (Exception E) { + // bean.writeLog("Exception"+E.getMessage()); + } + return file; + } + + public void writeToTxt(String path, String title, String content, Boolean append) { + try { + /* 写入Txt文件 */ + File mkdirsName = new File(path); + // 相对路径 + if (!mkdirsName.exists()) { + mkdirsName.mkdirs(); + } + File writename = new File(path + "/" + title + ".txt"); + // 存在即根据操作系统添加换行符 + if (!writename.exists() && append == true) { + // 创建新文件 + writename.createNewFile(); + } else if ("del".equals(content) && append == false) { + writename.delete(); + return; + } else if (!writename.exists() && append == false) { + writename.createNewFile(); + } else { + String osName = System.getProperties().getProperty("os.name"); + System.out.println(osName); + if ("Linux".equals(osName)) { + content = "\r" + content; + } else { + content = "\r\n" + content; + } + } + // 如果是在原有基础上写入则append属性为true,默认为false + BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(writename, append), StandardCharsets.UTF_8)); + // 写入TXT + out.write(content); + // 把缓存区内容压入文件 + out.flush(); + // 最后记得关闭文件 + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + private Date getDate() { + Date date = new Date(); + // if (day != null) { + // try { + // date = new SimpleDateFormat("yyyyMMdd").parse(day); + // } catch (ParseException e) { + // // writeLog("时间格式错误,重新发送指定日期失败"); + // e.printStackTrace(); + // } + // } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + //把日期往后增加一天.整数往后推,负数往前移动(1:表示明天、-1:表示昨天,0:表示今天) + calendar.add(Calendar.DATE, -1); + date = calendar.getTime(); + return date; + } + + /** + * @param TemplatePath 模版存放目录 + * @param TemplateName 模版名 + * @param root 填充的数据 + * @param GenerateFilename 生成文件名 + * @throws Exception + */ + public static String generate(String TemplatePath, String TemplateName, Map root, String GenerateFilename) throws Exception { + Configuration cfg = new Configuration(); + //指定模板文件的来源目录 + cfg.setDirectoryForTemplateLoading(new File(TemplatePath)); + cfg.setDefaultEncoding("UTF-8"); + //设置错误的显示方式(日志) + //在生产系统中:TemplateExceptionHandler.RETHROW_HANDLER 默认值 + //在开发HTML模板期间:TemplateExceptionHandler.HTML_DEBUG_HANDLER + //在开发非HTML模板期间:TemplateExceptionHandler.DEBUG_HANDLER + cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + + + //获取模板文件 + Template temp = cfg.getTemplate(TemplateName); + //合并模板和数据模型 + // File file = new File(TemplatePath + "new-built"); + //如果文件夹不存在,则创建文件夹 + // if (!file.exists()) { + // //file.mkdirs();//多级目录 + // file.mkdir();//只创建一级目录 + // } + //Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(TemplatePath + "new-built/" + GenerateFilename)));//输出文件 + // FileWriter out = new FileWriter(TemplatePath + "new-built/" + GenerateFilename); + //Writer out = new OutputStreamWriter(System.out);//输出控制台 + //StringWriter out = new StringWriter();//输出为字符串,可作为接口动态返回 + File file = new File(GenerateFilename); + File parentDir = file.getParentFile(); + + // 检查父目录是否存在 + if (!parentDir.exists()) { + // 父目录不存在,创建所有必需的父目录 + boolean dirsCreated = parentDir.mkdirs(); + if (dirsCreated) { + System.out.println("所有必需的父目录已创建."); + } else { + System.out.println("无法创建目录,请检查权限或路径是否正确."); + } + } else { + System.out.println("父目录已存在,无需创建."); + } + + FileOutputStream fos = new FileOutputStream(GenerateFilename); + Writer out = new OutputStreamWriter(fos, StandardCharsets.UTF_8); + temp.process(root, out); + out.flush();//可不手动调用 + return GenerateFilename; + } + + public static void main(String[] args) { + String s = "25441,45465,545"; + System.out.println(); + String[] ss = s.split(","); + for (String s1 : ss) { + System.out.println(s1); + } + } +} diff --git a/com/engine/custom/archives/service/impl/HtmlToPdfServiceCusImpl.java b/com/engine/custom/archives/service/impl/HtmlToPdfServiceCusImpl.java new file mode 100644 index 0000000..364ad5d --- /dev/null +++ b/com/engine/custom/archives/service/impl/HtmlToPdfServiceCusImpl.java @@ -0,0 +1,226 @@ +package com.engine.custom.archives.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.engine.core.impl.Service; +import com.engine.custom.archives.service.HtmlToPdfServiceCus; +import com.engine.custom.archives.workflow.cmd.requestLog.LoadRequestLogDataCusCmd; +import com.engine.workflow.biz.RequestLogBiz; +import com.engine.workflow.biz.requestForm.LayoutInfoBiz; +import com.engine.workflow.cmd.requestForm.*; +import com.engine.workflow.entity.requestForm.TableInfo; + +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.workflow.request.RequestManagerForTipsinfo; +import weaver.workflow.request.WFLinkInfo; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HtmlToPdfServiceCusImpl extends Service implements HtmlToPdfServiceCus { + @Override + public Map getHtml(Map reqpParams, User user) { + return null; + } + + @Override + public Map getFormDatas(Map reqpParams) { + Map apidatas = new HashMap(); + Map result =new HashMap(); + String requestid = Util.null2String(reqpParams.get("requestid")); + String modeid = Util.null2String(reqpParams.get("modeid")); + //只需要转换html + int onlyHtml = Util.getIntValue(Util.null2String(reqpParams.get("onlyHtml")),0); + //用wktohtml转换 + int useWk = Util.getIntValue(Util.null2String(reqpParams.get("useWk")),0); + int useItext7 = Util.getIntValue(Util.null2String(reqpParams.get("useItext7")),0); + //底部签字意见列表显示的数量 + int pageSize = Util.getIntValue(Util.null2String(reqpParams.get("pageSize")),100); + //pdf或html目录 + String path = Util.null2String(reqpParams.get("path")); + String filename = Util.null2String(reqpParams.get("filename")); + int isTest = Util.getIntValue(Util.null2String(reqpParams.get("isTest"))); + int keepsign = Util.getIntValue(Util.null2String(reqpParams.get("keepsign"))); + boolean onlinehtml = reqpParams.containsKey("onlinehtml") && (boolean) reqpParams.get("onlinehtml"); + + Map requestMap = new HashMap<>(); + requestMap.put("requestid",requestid); + requestMap.put("modeid",modeid); + requestMap.put("limitauth",Util.null2String(reqpParams.get("limitauth"))); + requestMap.put("forceNoPaging",1); //明细强制不分页 + new BaseBean().writeLog("HtmltoPdfServiceimpl ---requestid:"+requestid+"-----modeid:"+modeid); + + long start2 = System.currentTimeMillis(); + //第一步:获取基础信息参数 + Map params = commandExecutor.execute(new GetPdfParamsCmd(requestMap,user)); + apidatas.put("params",params); + params.put("onlyHtml",onlyHtml); + params.put("useWk",useWk); + params.put("useItext7",useItext7); + params.put("path",path); + params.put("filename",filename); + params.put("isTest",isTest); + params.put("keepsign",keepsign); + params.put("onlinehtml",onlinehtml); + + + int ismode = Util.getIntValue(Util.null2String(params.get("ismode")), 0); + int layoutversion = Util.getIntValue(Util.null2String(params.get("layoutversion")), 0); + + //生成普通模式模板布局信息 + Map commonLayout = new HashMap(); + if (ismode == 0) { + commonLayout = commandExecutor.execute(new GenerateCommonLayoutCmd(params, user)); + } + + //加载表单信息,包括字段信息、明细信息等 + Map forminfo = commandExecutor.execute(new FormInfoCmd(requestMap, user, params, commonLayout)); + apidatas.putAll(forminfo); + //联动配置 + apidatas.put("linkageCfg", commandExecutor.execute(new LinkageCfgCmd(params,user))); + //加载主表数据 + Map maindata = commandExecutor.execute(new FormDataCmd(requestMap, user, params, (Map) forminfo.get("tableInfo"))); + apidatas.put("maindata", maindata.get("datas")); + + //明细表数据 + Map tableinfomap = (Map)forminfo.get("tableInfo"); + List detailmark = new ArrayList (); + for (String key:tableinfomap.keySet()){ + if (key.contains("detail_")){ + detailmark.add(key); + } + } + if (detailmark.size()>0){ + String isprint = Util.null2String(params.get("isprint")); + requestMap.put("reqParams",JSON.toJSONString(params)); + requestMap.put("ismode",ismode); + requestMap.put("ismonitor","0"); + requestMap.put("isprint",isprint); + requestMap.put("modeid",modeid); + requestMap.put("detailmark", StringUtils.join(detailmark.toArray(), ",")); + Map detaildata = commandExecutor.execute(new FormDataCmd(requestMap, user)); + apidatas.put("detaildata", detaildata); + } + + + + //第五步:模板布局 + if (ismode == 0 || (ismode == 2 && layoutversion == 2)) { + String layoutStr = ""; + if (ismode == 0) { //普通模式 + layoutStr = Util.null2String(commonLayout.get("layoutStr")); + } else if (ismode == 2) { //html模式 + int layoutid = Util.getIntValue(Util.null2String(params.get("modeid")), 0); + layoutStr = new LayoutInfoBiz().getLayoutStr(layoutid); + } + apidatas.put("datajson",layoutStr); + }else { + result.put("unsupported",""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005682,weaver.general.ThreadVarLanguage.getLang())+""); + return result; + } + RecordSet recordSet = new RecordSet(); + + //获取签字意见可查看的nodeid + String viewLogIdstr = RequestLogBiz.getViewLogIds(Util.getIntValue(requestid),user.getUID(),(int)params.get("workflowid")); + String src = Util.null2String(reqpParams.get("src")); + if ("intervenor".equals(src) ) { + List canViewIds = new ArrayList (); + String tempNodeId = "-1"; + recordSet.executeSql("select nodeid from workflow_flownode where workflowid= " + params.get("workflowid") + " and exists(select 1 from workflow_nodebase where id=workflow_flownode.nodeid and (requestid is null or requestid=" + requestid + "))"); + while (recordSet.next()) { + tempNodeId = recordSet.getString("nodeid"); + if (!canViewIds.contains(tempNodeId)) { + canViewIds.add(tempNodeId); + } + } + viewLogIdstr = String.join(",", canViewIds); + } + //获取签字意见 + HttpServletRequest request = null; + int workflowid = (int) params.get("workflowid"); + int nodeid =(int) params.get("nodeid"); + String isFormSignature = ""; + recordSet.executeSql("select isFormSignature from workflow_flownode where workflowId=" + workflowid + " and nodeId=" + nodeid); + if (recordSet.next()) { + isFormSignature = Util.null2String(recordSet.getString("isFormSignature")); + } + boolean isOldWf =false; + RequestManagerForTipsinfo requestManagerForTipsinfo = new RequestManagerForTipsinfo(); + isOldWf = requestManagerForTipsinfo.isOldOrNewFlag(Util.getIntValue(requestid)); + String maxrequestlogid = ""; + params.put("requestid",requestid); + params.put("viewLogIds",viewLogIdstr); + params.put("creatorNodeId",WFLinkInfo.getCreatNodeId(workflowid+"")); + params.put("isHideInput","1"); + params.put("isFormSignature",isFormSignature); + params.put("pgnumber",1); + params.put("wfsignlddtcnt",pageSize); //底部签字意见一页的数量 + params.put("orderbytype","desc"); + params.put("isOldWf",isOldWf); + params.put("maxrequestlogid",maxrequestlogid); + params.put("isSubrequest",reqpParams.get("isSubrequest")); + Map requestlog =commandExecutor.execute(new LoadRequestLogDataCusCmd(request, user, params,"topdf")); + apidatas.put("requestLog",requestlog); + new BaseBean().writeLog(JSONObject.toJSONString(apidatas)); + long end2 = System.currentTimeMillis()-start2; + BaseBean baseBean = new BaseBean(); + baseBean.writeLog("loadform接口+底部签字意见+detail耗时:"+end2); + + //是否开启水印 + apidatas.put("isOpenWaterMark",reqpParams.get("isOpenWaterMark")); + + //转html/pdf + Map html = commandExecutor.execute(new HtmlToPdfCmd(apidatas,user)); + + result.putAll(html); + long end = System.currentTimeMillis()-start2; + baseBean.writeLog("【pdf】 总耗时:"+end); + return html; + + } + + @Override + public Map getFormInfoForWM(Map reqpParams) { + Map apidatas = new HashMap(); + Map result =new HashMap(); + String requestid = Util.null2String(reqpParams.get("requestid")); + String modeid = Util.null2String(reqpParams.get("modeid")); + + Map requestMap = new HashMap<>(); + requestMap.put("requestid",requestid); + requestMap.put("modeid",modeid); + requestMap.put("limitauth",Util.null2String(reqpParams.get("limitauth"))); + requestMap.put("forceNoPaging",1); //明细强制不分页 + + long start2 = System.currentTimeMillis(); + //第一步:获取基础信息参数 + Map params = commandExecutor.execute(new GetPdfParamsCmd(requestMap,user)); + apidatas.put("params",params); + + int ismode = Util.getIntValue(Util.null2String(params.get("ismode")), 0); + int layoutversion = Util.getIntValue(Util.null2String(params.get("layoutversion")), 0); + + //生成普通模式模板布局信息 + Map commonLayout = new HashMap(); + if (ismode == 0) { + commonLayout = commandExecutor.execute(new GenerateCommonLayoutCmd(params, user)); + } + + //加载表单信息,包括字段信息、明细信息等 + Map forminfo = commandExecutor.execute(new FormInfoCmd(requestMap, user, params, commonLayout)); + apidatas.putAll(forminfo); + + //加载主表数据 + Map maindata = commandExecutor.execute(new FormDataCmd(requestMap, user, params, (Map) forminfo.get("tableInfo"))); + apidatas.put("maindata", maindata.get("datas")); + return apidatas; + } + +} diff --git a/com/engine/custom/archives/workflow/biz/requestForm/RequestDocPropManagerCus.java b/com/engine/custom/archives/workflow/biz/requestForm/RequestDocPropManagerCus.java new file mode 100644 index 0000000..96829d1 --- /dev/null +++ b/com/engine/custom/archives/workflow/biz/requestForm/RequestDocPropManagerCus.java @@ -0,0 +1,571 @@ +/* +* Created on 2008-06-13 +* Copyright (c) 2001-2008 泛微软件 +* 泛微协同商务系统,版权所有。 +* +*/ + +package com.engine.custom.archives.workflow.biz.requestForm; + +import com.engine.workflow.biz.requestForm.WfToDocBiz; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.workflow.request.RequestManager; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.util.HashMap; +import java.util.Map; + +/** + + * Description: 更新文档属性页基本类 + * @author 方观生 + * @date 2008-6-13 + * 备注:该类目前只考虑表单而没有考虑单据。 + */ + +public class RequestDocPropManagerCus extends BaseBean { + + + //private RecordSet rs;//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + //private RecordSet rsTwo;//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + private char flag = Util.getSeparator(); + + private WorkflowComInfo workflowComInfo; + + private WfToDocBizCus wfToDocBiz; + /** + * 构造函数 + */ + public RequestDocPropManagerCus() { + + //rs = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + //rsTwo = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + + try { + workflowComInfo=new WorkflowComInfo(); + } catch (Exception ex) { + } + } + + public RequestDocPropManagerCus(WfToDocBizCus wfToDocBiz) { + + this.wfToDocBiz = wfToDocBiz; + try { + workflowComInfo=new WorkflowComInfo(); + } catch (Exception ex) { + } + } + /** + * 更改文档属性页数据。 + * + * @param requestManager RequestManager对象 + * + * @param docIds 文档id + * + */ + public void changeDocProp(RequestManager requestManager,String docIds) throws Exception{ + RecordSet rs = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + RecordSet rsTwo = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + + int requestId=requestManager.getRequestid(); + int workflowId=requestManager.getWorkflowid(); + int creater=requestManager.getCreater(); + + //创建人分部 + int subCompanyId = 0; + try { + ResourceComInfo resourceComInfo = new ResourceComInfo(); + subCompanyId = Util.getIntValue(resourceComInfo.getSubCompanyID("" + creater), 0); + } catch (Exception ex) { + ex.printStackTrace(); + } + + //安全性检查 + if(requestId<=0 + ||workflowId<=0 + ||docIds==null + ||docIds.trim().equals("") + ){ + return ; + } + + String requestName=Util.null2String(requestManager.getRequestname()); +// //2、根据workflowId获取创建文档字段、确定文件存放目录的字段 +// RequestDoc requestDoc=new RequestDoc(); +// ArrayList flowDoc=requestDoc.getDocFiled(""+workflowId); +// if(flowDoc==null||flowDoc.size()==0){ +// return ; +// } +//writeLog("2"); +// int flowDocField=Util.getIntValue((String)flowDoc.get(1),-1);//创建文档字段 +// int flowDocCatField=Util.getIntValue((String)flowDoc.get(3),-1);// 确定文件存放目录的字段 +// //创建文档字段必须选择 +// if(flowDocField<=0){ +// return ; +// } + + int formId=Util.getIntValue(workflowComInfo.getFormId(""+workflowId),0); + String isBill=Util.null2String(workflowComInfo.getIsBill(""+workflowId)); + if(!isBill.equals("1")){ + isBill="0"; + } + +// //3、由创建文档字段、确定文件存放目录的字段获取文档id,确定文件存放目录的字段值。 +// String flowDocFieldName=null; +// String flowDocCatFieldName=null; +// +// String tableName="workflow_form"; +// String sql=null; +// if(isBill.equals("1")){ +// rs.executeSql("select tablename from workflow_bill where id = " + formId); // 查询工作流单据表的信息 +// if (rs.next()){ +// tableName = Util.null2String(rs.getString("tablename")); // 获得单据的主表 +// } +// sql="select a.fieldname from workflow_billfield a where a.id="+flowDocField ; +// }else{ +// sql="select a.fieldname from workflow_formdict a where a.id="+flowDocField ; +// } +// rs.executeSql(sql); +// if(rs.next()){ +// flowDocFieldName=Util.null2String(rs.getString(1)); +// } +// +// if(isBill.equals("1")){ +// sql="select a.fieldname from workflow_billfield a where a.id="+flowDocCatField ; +// }else{ +// sql="select a.fieldname from workflow_formdict a where a.id="+flowDocCatField ; +// } +// rs.executeSql(sql); +// if(rs.next()){ +// flowDocCatFieldName=Util.null2String(rs.getString(1)); +// } +// +// int docId=0; +// int selectItemId=-1; +// if(flowDocCatFieldName!=null&&!flowDocCatFieldName.trim().equals("")){ +// sql="select "+flowDocFieldName+","+flowDocCatFieldName+" from "+tableName+" where requestId="+requestId; +// }else{ +// sql="select "+flowDocFieldName+",-1 from "+tableName+" where requestId="+requestId; +// } +// rs.executeSql(sql); +// if(rs.next()){ +// docId=Util.getIntValue(rs.getString(1),-1); +// selectItemId=Util.getIntValue(rs.getString(2),-1); +// } +// if(docId<=0||(","+docIds+",").indexOf(","+docId+",")<0){ +// return ; +// } + //存文文档优化-根据选择框值设置存放目录 + String wfdocpathfieldvalue = ""; //表单中存放目录的选择框字段值 + String wfdocpathtype = ""; + String wfdocpathfieldid = ""; + String isAccordToSubCom = ""; + if (wfToDocBiz!=null){ + wfdocpathtype = Util.null2String(wfToDocBiz.getWfdocpathtype()); + if (wfdocpathtype.equals("2")){ + wfdocpathfieldvalue = Util.null2String(wfToDocBiz.getWfdocpathfieldvalue()); + wfdocpathfieldid = Util.null2String(wfToDocBiz.getWfdocpathfieldid()); + isAccordToSubCom = Util.null2String(wfToDocBiz.getIsAccordToSubCom()); + } + } + + //4、根据文档id获取文档所在的子目录 + int docId=Util.getIntValue(docIds,0); + int secCategoryId=-1; + rs.executeSql("select secCategory from DocDetail where id="+docId); + if(rs.next()){ + secCategoryId=Util.getIntValue(rs.getString("secCategory"),-1); + } + if(secCategoryId<=0){ + return ; + } + + //5、根据workflowId、selectItemId、secCategoryId获取docPropId + int docPropId=-1; + if (wfdocpathtype.equals("2")&&!wfdocpathfieldvalue.equals("")){ + String sql = "select id from WorkflowToDocProp where workflowId=? and secCategoryId= ? and selectitemid =? and selectfieldid =? "; + if(isAccordToSubCom.equals("2")) + sql = sql+ " objid="+subCompanyId; + rs.executeQuery(sql,workflowId,secCategoryId,wfdocpathfieldvalue,wfdocpathfieldid); + if(rs.next()){ + docPropId=Util.getIntValue(rs.getString("id"),-1); + } + }else { + rs.executeSql("select id from WorkflowToDocProp where workflowId="+workflowId+" and secCategoryId="+secCategoryId +" and selectitemid is null"); + if(rs.next()){ + docPropId=Util.getIntValue(rs.getString("id"),-1); + } + } + + + + if(docPropId<=0){ + return ; + } + + //6、根据docPropId获取WorkflowToDocPropDetail中数据,workflowFieldId要求大于0 + int docPropFieldId=-1; + int workflowFieldId=-1; + String workflowFieldName=null; + String strDocPropFieldId=""; + String strWorkflowFieldName=""; + + Map workflowFieldIdByDocPropFieldIdMap=new HashMap(); + rs.executeSql("select docPropFieldId,workflowFieldId from WorkflowToDocPropDetail where docPropId="+docPropId+" and (workflowFieldId>=0 or workflowFieldId=-3 or workflowFieldId=-99) order by id asc"); + while(rs.next()){ + docPropFieldId=Util.getIntValue(rs.getString("docPropFieldId"),-1); + workflowFieldId=Util.getIntValue(rs.getString("workflowFieldId"),-1); + workflowFieldIdByDocPropFieldIdMap.put(""+docPropFieldId,""+workflowFieldId); + strDocPropFieldId+=","+docPropFieldId; + } + + if(strDocPropFieldId.equals("")){ + return ; + } + strDocPropFieldId=strDocPropFieldId.substring(1); + + Map mainFieldValueMap=this.getValueOfField(requestManager,workflowId); + String workflowFieldValue=null; + String workflowFieldShowName=null; + + //7、获得DocDetail、cus_fielddata的更新语句。 + boolean isEditCustomData=false; + rs.executeSql("select id from cus_fielddata where scope='DocCustomFieldBySecCategory' and scopeid=" + secCategoryId + + " and id=" + docId); + if (rs.next()) { + isEditCustomData=true; + } + + String docDetailSql="update DocDetail set "; + String docDetailSetStr=""; + + String cusFieldDataSql=null; + if(isEditCustomData){ + cusFieldDataSql="update cus_fielddata set "; + }else{ + cusFieldDataSql="insert into cus_fielddata"; + } + String cusFieldDataSetStr=""; + + String cusFieldDataNameStr=""; + String cusFieldDataValueStr=""; + + int docPropertyId=-1; + int docPropertyType=-1; + int fieldId=-1; + String fieldDbType= null; + + String fieldHtmlType=null; + String type=null; + Map cusFieldValueMap=new HashMap(); + int fieldLength=0; + + rs.executeSql("select id as fieldId,fieldDbType,fieldHtmlType,type from cus_formdict"); + while(rs.next()){ + fieldId=Util.getIntValue(rs.getString("fieldId"),-1); + fieldDbType=Util.null2String(rs.getString("fieldDbType")); + fieldHtmlType=Util.null2String(rs.getString("fieldHtmlType")); + type=Util.null2String(rs.getString("type")); + + cusFieldValueMap.put("fieldDbType"+fieldId,""+fieldDbType); + cusFieldValueMap.put("fieldHtmlType"+fieldId,""+fieldHtmlType); + cusFieldValueMap.put("type"+fieldId,""+type); + } + + StringBuffer sb=new StringBuffer(); + + sb.append(" select id as docPropertyId,type as docPropertyType,fieldId ") + .append(" from DocSecCategoryDocProperty") + .append(" where secCategoryId=").append(secCategoryId) + .append(" and id in(").append(strDocPropFieldId).append(") ") + .append(" order by viewIndex ") + ; + rs.executeSql(sb.toString()); + while(rs.next()){ + docPropertyId=Util.getIntValue(rs.getString("docPropertyId"),-1); + docPropertyType=Util.getIntValue(rs.getString("docPropertyType"),-1); + fieldId=Util.getIntValue(rs.getString("fieldId"),-1); + fieldDbType=Util.null2String((String)cusFieldValueMap.get("fieldDbType"+fieldId)); + fieldHtmlType=Util.null2String((String)cusFieldValueMap.get("fieldHtmlType"+fieldId)); + + workflowFieldId=Util.getIntValue((String)workflowFieldIdByDocPropFieldIdMap.get(""+docPropertyId),0); + if (workflowFieldId==-99)//requestid + workflowFieldValue = requestId+""; + else + workflowFieldValue=Util.null2String((String)mainFieldValueMap.get("field"+workflowFieldId)); + + if(docPropertyType==1&&docDetailSetStr.indexOf(",docSubject=")<0&&!workflowFieldValue.trim().equals("")){//文档标题,docSubject,varchar(200) + docDetailSetStr += ",docSubject='"+interceptString(workflowFieldValue,200)+"'"; + }else if(docPropertyType==2&&docDetailSetStr.indexOf(",docCode=")<0){//文档编号,docCode,varchar(200) + docDetailSetStr += ",docCode='"+interceptString(workflowFieldValue,200)+"'"; + }else if(docPropertyType==3&&docDetailSetStr.indexOf(",docPublishType=")<0){//发布,docPublishType,char(1) + docDetailSetStr += ",docPublishType='"+interceptString(workflowFieldValue,1)+"'"; + }else if(docPropertyType==4&&docDetailSetStr.indexOf(",docedition=")<0){//文档版本,docedition,int + docDetailSetStr += ",docedition="+Util.getIntValue(workflowFieldValue,-1); + }else if(docPropertyType==5&&docDetailSetStr.indexOf(",docStatus=")<0){//文档状态,docStatus,int + docDetailSetStr += ",docStatus="+Util.getIntValue(workflowFieldValue,-1); + }else if(docPropertyType==9&&docDetailSetStr.indexOf(",docDepartmentId=")<0){//部门,docDepartmentId,int + docDetailSetStr += ",docDepartmentId="+Util.getIntValue(workflowFieldValue,-1); + }else if(docPropertyType==12&&docDetailSetStr.indexOf(",keyword=")<0){//关键字,keyword,varchar(255) + docDetailSetStr += ",keyword='"+interceptString(workflowFieldValue,255)+"'"; + }else if(docPropertyType==19&&docDetailSetStr.indexOf(",mainDoc=")<0){//主文档,mainDoc,int + docDetailSetStr += ",mainDoc="+Util.getIntValue(workflowFieldValue,docId); + }else if(docPropertyType==21&&docDetailSetStr.indexOf(",ownerId=")<0){//文档所有者,ownerId,int + docDetailSetStr += ",ownerId="+Util.getIntValue(workflowFieldValue,-1); + }else if(docPropertyType==22&&docDetailSetStr.indexOf(",invalidationDate=")<0){//失效时间,invalidationDate,char(10) + docDetailSetStr += ",invalidationDate='"+interceptString(workflowFieldValue,10)+"'"; + }else if(docPropertyType==25&&docDetailSetStr.indexOf(",canPrintedNum=")<0){//可打印份数,canPrintedNum,int + docDetailSetStr += ",canPrintedNum="+Util.getIntValue(workflowFieldValue,0); + }else if(docPropertyType==0){//自定义字段 + String cusfieldname=""; + rsTwo.executeSql("select fieldname from cus_formdict where id="+fieldId); + if(rsTwo.next()){ + cusfieldname=Util.null2String(rsTwo.getString("fieldname")); + } + if(isEditCustomData&&cusFieldDataSetStr.indexOf(",field" + fieldId + "=")<0){ + cusFieldDataSetStr += ",field" + fieldId + "="; + if (fieldDbType.startsWith("text") || fieldDbType.startsWith("char") + || fieldDbType.startsWith("varchar")|| fieldDbType.startsWith("browser")) { + if(fieldDbType.indexOf("(")>=0&&fieldDbType.indexOf(")")>fieldDbType.indexOf("(")+1){ + fieldLength=Util.getIntValue(fieldDbType.substring(fieldDbType.indexOf("(")+1,fieldDbType.indexOf(")")),0); + } + if(fieldLength>0){ + cusFieldDataSetStr += "'" + interceptString(workflowFieldValue,fieldLength) + "'"; + }else{ + cusFieldDataSetStr += "'" + workflowFieldValue + "'"; + } + } else { + if(fieldHtmlType.equals("5")){ + workflowFieldShowName=(String)mainFieldValueMap.get("fieldShowName"+workflowFieldId); + workflowFieldValue=this.getNewSelectValue(workflowFieldShowName,workflowFieldValue,fieldId); + } + if(fieldHtmlType.equals("1")){ + cusFieldDataSetStr += Util.getDoubleValue(workflowFieldValue,0); + }else{ + cusFieldDataSetStr += Util.getIntValue(workflowFieldValue,0); + } + } + }else if((cusFieldDataNameStr+",").indexOf("," + cusfieldname+",")<0){ + cusFieldDataNameStr += "," + cusfieldname; + if (fieldDbType.startsWith("text") || fieldDbType.startsWith("char") + || fieldDbType.startsWith("varchar")|| fieldDbType.startsWith("browser")) { + if(fieldDbType.indexOf("(")>=0&&fieldDbType.indexOf(")")>fieldDbType.indexOf("(")+1){ + fieldLength=Util.getIntValue(fieldDbType.substring(fieldDbType.indexOf("(")+1,fieldDbType.indexOf(")")),0); + } + if(fieldLength>0){ + cusFieldDataValueStr += ",'" + interceptString(workflowFieldValue,fieldLength) + "'"; + }else{ + cusFieldDataValueStr += ",'" + workflowFieldValue + "'"; + } + } else { + if(fieldHtmlType.equals("5")){ + workflowFieldShowName=(String)mainFieldValueMap.get("fieldShowName"+workflowFieldId); + workflowFieldValue=this.getNewSelectValue(workflowFieldShowName,workflowFieldValue,fieldId); + } + if(fieldHtmlType.equals("1")){ + cusFieldDataValueStr += "," +Util.getDoubleValue(workflowFieldValue,0); + }else{ + cusFieldDataValueStr += "," +Util.getIntValue(workflowFieldValue,0); + } + + } + } + } + } + + if (!docDetailSetStr.equals("")) { + docDetailSetStr = docDetailSetStr.substring(1); + docDetailSql += docDetailSetStr + " where id=" + docId; +//writeLog("docDetailSql:"+docDetailSql); + rs.executeSql(docDetailSql); + } + + if(isEditCustomData){ + if (!cusFieldDataSetStr.equals("")) { + cusFieldDataSetStr = cusFieldDataSetStr.substring(1); + cusFieldDataSql += cusFieldDataSetStr + " where scope='DocCustomFieldBySecCategory' and scopeid=" + secCategoryId + " and id=" + docId; + rs.executeSql(cusFieldDataSql); + } + }else{ + if (!cusFieldDataNameStr.equals("")) { + cusFieldDataNameStr = cusFieldDataNameStr.substring(1); + cusFieldDataValueStr = cusFieldDataValueStr.substring(1); + + cusFieldDataSql += "(scope,scopeid,id," + cusFieldDataNameStr + ") values('DocCustomFieldBySecCategory'," + secCategoryId + "," + docId + + "," + cusFieldDataValueStr + ")"; + rs.executeSql(cusFieldDataSql); + } + } + + } + + /** + * 截取不大于指定字节长度的字符串 + * @param initString 初始字符串 + * @param byteLength 指定字节长度 + * @return String 不大于指定字节长度的字符串 + */ + private static String interceptString(String initString,int byteLength) { + try{ + + int counterOfDoubleByte = 0; + byte[] b = initString.getBytes("UTF-8"); + if(b.length <= byteLength) + return initString; + for(int i = 0; i < byteLength; i++){ + if(b[i] < 0) + counterOfDoubleByte++; + } + + if(counterOfDoubleByte % 2 == 0) + return new String(b, 0, byteLength, "UTF-8"); + else + return new String(b, 0, byteLength - 1, "UTF-8"); + + }catch(Exception ex){ + return ""; + } + } + + /** + * 获得指定工作流程某个请求所有主字段的值。 + * + * @param mainRequest 主请求 + * @param workflowId 工作流id + * + * @return Map 关键字为 field加字段id 值为字段值、 + * 关键字为 fieldHtmlType加字段id 值为表现形式、 + * 关键字为 type加字段id 值为字段类型 + * 关键字为 fieldShowName加字段id 职位字段显示名称 + */ + private Map getValueOfField(RequestManager mainRequest,int workflowId){ + RecordSet rs = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + RecordSet rsTwo = new RecordSet();//277481: [90]集成中心-解决代码质量问题修复--操作数据库的对象不能作为成员变量 + + Map mainFieldValueMap=new HashMap(); + + //获取字段值 + //根据主流程的id获得相关信息 + String formId=""; + String isBill=""; + rs.executeSql(" select formId,isBill from workflow_base where id="+workflowId); + if(rs.next()){ + formId=rs.getString(1); + isBill=rs.getString(2); + } + if(!"1".equals(isBill)){ + isBill="0"; + } + int requestId=mainRequest.getRequestid(); + + mainFieldValueMap.put("field-2",""+requestId); + mainFieldValueMap.put("field-3",mainRequest.getRequestname()); + mainFieldValueMap.put("field-4",mainRequest.getRequestlevel()); + mainFieldValueMap.put("field-5",mainRequest.getMessageType()); + + //获得主流程人力资源相关字段的值和页面类型、详细类型 + String fieldId="";//字段id + String fieldName="";//字段名称 + String fieldValue="";//字段值 + String fieldHtmlType="";//页面类型 + String type="";//详细类型 + //String billId="0"; + String tableName="workflow_form"; + + Map tempmap=new HashMap(); + String fieldnames=""; + int cols=0; + String sql=""; + + if("0".equals(isBill)){//如果不为单据,即为表单 + sql="select b.id,b.fieldName,b.fieldHtmlType,b.type from workflow_formfield a,workflow_formdict b where a.fieldId=b.id and (a.isdetail<>'1' or a.isdetail is null) and a.formId="+formId; + }else{//否则为单据 + //rs.executeSql(" select tableName from workflow_bill where id="+billId); + rs.executeSql(" select tableName from workflow_bill where id="+formId); + if(rs.next()){ + tableName=Util.null2String(rs.getString("tableName")); + } + //sql="select id,fieldName,fieldHtmlType,type from workflow_billfield where (viewtype is null or viewtype<>1) and billId="+fieldId; + sql="select id,fieldName,fieldHtmlType,type from workflow_billfield where (viewtype is null or viewtype<>1) and billId="+formId; + } + rs.executeSql(sql); + while(rs.next()){ + fieldId=Util.null2String(rs.getString("id")); + fieldName=Util.null2String(rs.getString("fieldName")); + fieldHtmlType=Util.null2String(rs.getString("fieldHtmlType")); + type=Util.null2String(rs.getString("type")); + + if(!fieldName.equals("")){ + if(fieldnames.equals("")){ + fieldnames=fieldName; + }else{ + fieldnames+=","+fieldName; + } + tempmap.put("col"+cols,fieldId); + cols++; + } + + mainFieldValueMap.put("fieldHtmlType"+fieldId,fieldHtmlType); + mainFieldValueMap.put("type"+fieldId,type); + } + + if(fieldnames.equals("")||tableName.equals("")){ + return mainFieldValueMap; + } + + String fieldShowName=""; + + sql="select "+fieldnames+" from "+tableName+" where requestid= "+requestId; + rs.executeSql(sql); + while(rs.next()){ + for(int i=0;i 0){ + String importdate= TimeUtil.getCurrentDateString(); + String importtime=TimeUtil.getOnlyCurrentTimeString(); + DocTreeDocFieldComInfo ddfc = new DocTreeDocFieldComInfo(); + if(!ddfc.isHaveSameOne(strDummy,""+docid)) { + strSql="insert into DocDummyDetail(catelogid,docid,importdate,importtime) values ("+strDummy+","+docid+",'"+importdate+"','"+importtime+"')"; + rsDummyDoc.executeSql(strSql); + } + } + } + } + }catch(Exception ex) { + writeLog("添加文档信息至虚拟目录出错:" + ex); + } + + //更新文档密级 + if (HrmClassifiedProtectionBiz.isOpenClassification()) { + Map secInfo = new RequestSecLevelBiz().getSecInfoByRequestId(Util.getIntValue(requestid)); + String secLevel = Util.null2String(secInfo.get("secLevel")); + String secValidity = Util.null2String(secInfo.get("secValidity")); + new DocSecretLevelUtil().modifyDocSecretLevel(docid+"", secLevel, secValidity); + } + + // 添加文档共享信息 + DocManager DocManager = new DocManager(); + DocManager.setIsreply("0"); + DocManager.setId(docid); + DocManager.setSeccategory(seccategory); + DocManager.setUserid(docowner); + DocManager.setUsertype("1"); + try { + DocManager.AddShareInfo(); + } catch (Exception e) { + writeLog("添加文档共享信息出错:" + e); + } + try { + new DocViewer().setDocShareByDoc("" + docid); + } catch (Exception e) { + writeLog("添加文档共享信息出错:" + e); + } + return docid; + } + + /** + * 保存文档属性 + * @param docid + * @return + */ + public boolean saveDocProp(int docid, String requestid, RequestManager requestManager, WfToDocBizCus wfbiz){ + boolean success = true; + String docids = docid+""; + try{ + writeLog("saveDocProp:" + docid +" "+requestid); + RequestDocPropManagerCus requestDocPropManager=new RequestDocPropManagerCus(wfbiz); + requestDocPropManager.changeDocProp(requestManager,docids); + }catch (Exception e) { + success = false; + writeLog("RequestDocPropManagerCus Error:requestid="+requestid+"###docids="+docids); + writeLog(e); + } + writeLog("success:"+success); + return success; + + } +} diff --git a/com/engine/custom/archives/workflow/biz/requestForm/WfToDocBizCus.java b/com/engine/custom/archives/workflow/biz/requestForm/WfToDocBizCus.java new file mode 100644 index 0000000..43c24a4 --- /dev/null +++ b/com/engine/custom/archives/workflow/biz/requestForm/WfToDocBizCus.java @@ -0,0 +1,457 @@ +package com.engine.custom.archives.workflow.biz.requestForm; + + +import com.engine.common.util.ServiceUtil; +import com.engine.custom.archives.service.HtmlToPdfServiceCus; +import com.engine.custom.archives.service.impl.HtmlToPdfServiceCusImpl; +import com.engine.workflow.biz.freeNode.FreeNodeBiz; +import com.engine.workflow.entity.freeNode.FreeNodeEntity; + +import weaver.conn.RecordSet; +import weaver.docs.share.DocShareUtil; +import weaver.file.FileSecurityUtil; +import weaver.file.FileUpload; +import weaver.file.ImageFileManager; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; +import weaver.system.SystemComInfo; +import weaver.workflow.exceldesign.HtmlLayoutOperate; +import weaver.workflow.workflow.WorkflowConfigComInfo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + + +public class WfToDocBizCus extends BaseBean { + + //底部签字意见列表显示数量 + private int pageSize =100; + //是否用wk转换 + private String useWk=""; + private int keepsign; + private User user; + private String docfiles; + Map pathMap; + private LinkedHashMap fileids; + + private boolean isOpenWaterMark; //是否生成水印 + private String useModeid ; + /* ---这些参数给到workflowtodoc获取 避免查多次数据库 -- start*/ + private String wfdocpathtype ="1"; + private String wfdocpath = ""; + private String wfdocpathfieldid = ""; + private String wfdocpathfieldvalue =""; + private String isAccordToSubCom = ""; + /* --- end ----*/ + + String OnlineHtmlMethod; //生成在线文档 + + private Map otherParamsMap; + + public Map getOtherParamsMap() { + return otherParamsMap; + } + + public void setOtherParamsMap(Map otherParamsMap) { + this.otherParamsMap = otherParamsMap; + } + + public void setOnlineHtmlMethod(String onlineHtmlMethod) { + OnlineHtmlMethod = onlineHtmlMethod; + } + + public Map getPathMap() { + return pathMap; + } + + public void setPathMap(Map pathMap) { + this.pathMap = pathMap; + } + + public String getWfdocpathtype() { + return wfdocpathtype; + } + + public void setWfdocpathtype(String wfdocpathtype) { + this.wfdocpathtype = wfdocpathtype; + } + + public String getWfdocpath() { + return wfdocpath; + } + + public void setWfdocpath(String wfdocpath) { + this.wfdocpath = wfdocpath; + } + + public String getWfdocpathfieldid() { + return wfdocpathfieldid; + } + + public void setWfdocpathfieldid(String wfdocpathfieldid) { + this.wfdocpathfieldid = wfdocpathfieldid; + } + + public String getWfdocpathfieldvalue() { + return wfdocpathfieldvalue; + } + + public void setWfdocpathfieldvalue(String wfdocpathfieldvalue) { + this.wfdocpathfieldvalue = wfdocpathfieldvalue; + } + + public String getIsAccordToSubCom() { + return isAccordToSubCom; + } + + public void setIsAccordToSubCom(String isAccordToSubCom) { + this.isAccordToSubCom = isAccordToSubCom; + } + + + + public WfToDocBizCus(User user, int pageSize, int keepsign, String docfiles){ + this.pageSize = pageSize; + this.keepsign = keepsign; + this.user = user; + this.docfiles = docfiles; + this.fileids = new LinkedHashMap<>(); + } + + public WfToDocBizCus(User user, int pageSize, int keepsign, String docfiles, String useModeid){ + this.pageSize = pageSize; + this.keepsign = keepsign; + this.user = user; + this.docfiles = docfiles; + this.fileids = new LinkedHashMap<>(); + this.useModeid=useModeid; + } + + public WfToDocBizCus(User user, int pageSize, int keepsign, String docfiles, String useModeid, boolean isOpenWaterMark){ + this.pageSize = pageSize; + this.keepsign = keepsign; + this.user = user; + this.docfiles = docfiles; + this.fileids = new LinkedHashMap<>(); + this.useModeid=useModeid; + this.isOpenWaterMark = isOpenWaterMark; + } + + + public WfToDocBizCus(){ + } + + + /* + * 生成html和pdf + */ + public void generatepdfandhtml(String requestid, String filename, String temppath, String src, int reqType){ + int onlyHtml =0; + if (docfiles.contains("2")&&!docfiles.contains("3")){ //只选了生成离线html 没选pdf + onlyHtml =1; + }else if (docfiles.contains("3")&&docfiles.contains("2")){ //选了pdf和html + onlyHtml =2; + }else if (docfiles.contains("3")&&!docfiles.contains("2")){ //只选了pdf + onlyHtml =0; + } + Map params = new HashMap<>(); + params.put("requestid",requestid); + params.put("onlyHtml", onlyHtml); + params.put("pageSize", pageSize); + params.put("path", temppath); + params.put("filename", filename); + params.put("keepsign", keepsign); + params.put("limitauth", "0"); + params.put("src",src); + params.put("modeid",useModeid); + params.put("isSubrequest",reqType == 1); + //是否使用wk,在config表中读配置 + WorkflowConfigComInfo configComInfo = new WorkflowConfigComInfo(); + useWk = Util.null2String(configComInfo.getValue("htmltopdf_usewk")); + new BaseBean().writeLog("jymjym……useWk ="+useWk); + //是否使用Itext7 + String useItext7 = Util.null2String(configComInfo.getValue("workflowtodoc_useitext7")); + params.put("useItext7", useItext7); + if (!"".equals(useWk)){ + params.put("useWk", useWk); + } + params.put("isOpenWaterMark",isOpenWaterMark); + + params.put("onlinehtml",OnlineHtmlMethod.equals("1")&&docfiles.contains("1")); //在线htmlE9 + + if (this.otherParamsMap!=null) + params.putAll(this.otherParamsMap); + + HtmlToPdfServiceCus htmlToPdfService = (HtmlToPdfServiceCus) ServiceUtil.getService(HtmlToPdfServiceCusImpl.class,user); + pathMap = (htmlToPdfService != null) ? htmlToPdfService.getFormDatas(params) : new HashMap<>(); + } + + public LinkedHashMap getfileids(String requestname, String filename,String temppath){ + int onlyHtml =0; + if (docfiles.contains("2")&&!docfiles.contains("3")){ //只选了生成离线html 没选pdf + onlyHtml =1; + }else if (docfiles.contains("3")&&docfiles.contains("2")){ //选了pdf和html + onlyHtml =2; + }else if (docfiles.contains("3")&&!docfiles.contains("2")){ //只选了pdf + onlyHtml =0; + } + String htmlname=""; + String truefilename =""; + + if (OnlineHtmlMethod.equals("1")&&docfiles.contains("1")){ //在线html + htmlname = temppath + Util.null2String(pathMap.get("onlinehtmlfilename")); + truefilename = requestname +"_online.html"; + String fileid = saveAsFile(htmlname,truefilename); + if (!"".equals(fileid)){ + fileids.put("online_html",fileid); + } + } + + if (docfiles.contains("2")){ //选了生成离线html + if(onlyHtml ==1){ //只选了生成离线html 没选pdf + htmlname = temppath + Util.null2String(pathMap.get("filename")); + }else if(onlyHtml ==2){ + htmlname = temppath + Util.null2String(pathMap.get("htmlfilename")); + } + truefilename = requestname +"_offline_html.zip"; + String fileid = saveAsFile(htmlname,truefilename); + if (!"".equals(fileid)){ + fileids.put("offline_html",fileid+""); + } + + } + if (docfiles.contains("3")){ //只要选了pdf + if(onlyHtml ==0){ //只选了pdf + htmlname = temppath + Util.null2String(pathMap.get("filename")); + }else if(onlyHtml ==2){ + htmlname = temppath + Util.null2String(pathMap.get("pdffilename")); + } + truefilename = requestname + "_offline_pdf.pdf"; + String fileid = saveAsFile(htmlname,truefilename); + if (!"".equals(fileid)){ + fileids.put("offline_pdf",fileid); + } + } + + + return fileids; + } + + //保存为附件 + public String saveAsFile(String htmlname,String truefilename){ + truefilename = Util.formatMultiLang(truefilename,user.getLanguage()+""); + InputStream in = null; + byte[] buffer = null; + File file = new File(htmlname); + if (file.exists()){ + try { + in = new FileInputStream(file); + buffer = new byte[(int) file.length()]; + in.read(buffer); + in.close(); + }catch (Exception e){ + e.printStackTrace(); + } + } + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.setComefrom("WorkflowToDoc"); + imageFileManager.setData(buffer); + imageFileManager.setImagFileName(truefilename); + + int fileid = imageFileManager.saveImageFile(); + if (fileid <= 0) { + writeLog("保存离线HTML/PDF文件失败"); + return ""; + } + FileSecurityUtil.deleteFile(file); + return fileid+""; + } + + /** + * 获得文件保存目录 + * + * @return + */ + public String getFileSavePath() { + SystemComInfo syscominfo = new SystemComInfo(); + String createdir = FileUpload.getCreateDir(syscominfo.getFilesystem()); + return createdir; + } + + + //获取存文档的路径 + public String getWfDocPath(String workflowid,String requestid){ + String doccategory = ""; + RecordSet rs = new RecordSet(); + rs.executeQuery("select * from workflow_base where id = ?",workflowid); + + if (rs.next()){ + this.wfdocpathtype = Util.null2String(rs.getString("wfdocpathtype")); + this.wfdocpath = Util.null2String(rs.getString("wfdocpath")); + this.wfdocpathfieldid = Util.null2String(rs.getString("wfdocpathfieldid")); + + int isbill = Util.getIntValue(rs.getString("isbill"), 0); + int formid = Util.getIntValue(rs.getString("formid"), 0); + if (wfdocpathtype.equals("1")||wfdocpathtype.equals("")){ //历史数据为空则默认用固定目录 + doccategory = wfdocpath; + }else if (wfdocpathtype.equals("2")){ //选择框字段值对应路径 + //先获取表单字段值 + String fieldvalue = ""; //表单字段值 + String tablename = " workflow_form "; + String fieldname = ""; + String sql = ""; + if(isbill == 1){ + sql = "select tablename from workflow_bill where id="+formid; + rs.executeQuery(sql); + if(rs.next()){ + tablename = Util.null2String(rs.getString(1)); + } + sql = "select fieldname from workflow_billfield where billid="+formid+" and id="+wfdocpathfieldid; + }else{ + sql = "select fieldname from workflow_formdictdetail where id="+wfdocpathfieldid; + } + rs.executeQuery(sql); + if(rs.next()){ + fieldname = Util.null2String(rs.getString(1)); + if(!"".equals(tablename) && !"".equals(fieldname)){ + sql = "select "+fieldname+" from "+tablename+" where requestid="+requestid; + rs.executeQuery(sql); + if(rs.next()){ + fieldvalue = Util.null2String(rs.getString(1)); + } + } + } + this.wfdocpathfieldvalue = fieldvalue; + if (!fieldvalue.equals("")){ + rs.executeQuery("select doccategory,isAccordToSubCom from workflow_selectitem t where fieldid=" + + wfdocpathfieldid + " and selectvalue=" + fieldvalue); + if (rs.next()) { + doccategory = rs.getString("doccategory"); + isAccordToSubCom = Util.null2String(rs.getString("isAccordToSubCom")); + } + if (isAccordToSubCom.equals("1")) { + int creater = 0; + rs.executeQuery("select creater from workflow_requestbase where requestId=" + requestid); + if (rs.next()) { + creater = Util.getIntValue(rs.getString("creater"), 0); + } + + int subCompanyId = 0; + try { + ResourceComInfo resourceComInfo = new ResourceComInfo(); + subCompanyId = Util.getIntValue(resourceComInfo.getSubCompanyID("" + creater), 0); + } catch (Exception ex) { + ex.printStackTrace(); + } + rs.executeQuery("SELECT docCategory FROM Workflow_SelectitemObj where fieldid=" + + wfdocpathfieldid + " and selectvalue=" + fieldvalue + " and isBill=" + isbill + + " and objType='1' and objId= " + subCompanyId); + if (rs.next()) { + doccategory = Util.null2String(rs.getString("docCategory")); + } + } + } + } + } + return doccategory; + } + + /* + *获取模板id + */ + public String getModeid(int workflowid,int requestid,int nodeid){ + RecordSet rs = new RecordSet(); + int modeid = -1; + FreeNodeEntity nodeEntity = FreeNodeBiz.getCurrentFreeNodeEntity(requestid,nodeid); + if(nodeEntity != null) { //如果为自由节点 + nodeid = nodeEntity.getExtendnodeid(); + } + String wfdocsource =""; + rs.executeQuery("select * from workflow_base where id = ?",workflowid); + if (rs.next()){ + wfdocsource = Util.null2String(rs.getString("wfdocsource")); //附件来源 1:显示模板 2:打印模板 + } + HtmlLayoutOperate htmlLayoutOperate = new HtmlLayoutOperate(); + if (wfdocsource.equals("2")) { //打印模板 获取开启的第一个打印模板 如果没有开启的打印模板,则取显示模板,如果没有打印模板 则取显示模板 + rs.executeQuery("select * from workflow_printset where nodeid = ? and type =1 and printenable =1 order by orderid",nodeid); + if (rs.next()){ + modeid = Util.getIntValue(rs.getString("modeid"),-1); + }else { + modeid = htmlLayoutOperate.getActiveHtmlLayout(workflowid, nodeid, 0); //获取当前显示模板的活动模板 + } + }else { //否则就取当前显示模板 + rs.executeQuery("select ismode from workflow_flownode where workflowid=? and nodeid=?",workflowid,nodeid); + if (rs.next()){ + String ismode = Util.null2String(rs.getString("ismode")); + if (ismode.equals("2")){ //如果不是 + modeid = htmlLayoutOperate.getActiveHtmlLayout(workflowid, nodeid, 0); //获取当前显示模板的活动模板 + }else{ + modeid = -1; + } + } + + } + return modeid+""; + } + + /* + * 文档赋权 + * docid 赋权的文档id + * requestid 请求id + * docowner 文档所有者 + * 给流程所有操作者赋权 + */ + public static void docShare(String docids,String requestid,int docowner){ + RecordSet rs = new RecordSet(); + //选择流程的所有操作人 + String sql = "select distinct userid,usertype,isremark,agentorbyagentid,agenttype from workflow_currentoperator where requestid ="+requestid; + rs.executeQuery(sql); + String userids = ""; + String usertypes = ""; + String agentids = ""; + String agenttypes = ""; + while (rs.next()){ + int opertor = rs.getInt("userid"); + int beagentorid=rs.getInt("agentorbyagentid"); + int usertype = rs.getInt("usertype"); + int isremark=Util.getIntValue(rs.getString("isremark"),-1); + int agenttype=Util.getIntValue(rs.getString("agenttype"),-1); + //用户相关客户一次性共享 + userids += "," + opertor; + usertypes += "," + usertype; + + if (beagentorid > 0) { + agentids += "," + beagentorid; + agenttypes += ",0"; + } + } + //修正数据 + if (userids.length() > 0) { + userids = userids.substring(1); + usertypes = usertypes.substring(1); + } + if (agentids.length() > 0) { + agentids = agentids.substring(1); + agenttypes = agenttypes.substring(1); + } + new BaseBean().writeLog("docShare------userids="+userids+"-------agentids="+agentids+"-----docid="+docids); + User user = new User(docowner); + //文档共享 + DocShareUtil dsu = new DocShareUtil(); + //共享 + dsu.addDocShare(user, docids, usertypes, userids, 1); + + if (agentids.length() > 0) { + //共享 + dsu.addDocShare(user, docids, agenttypes, agentids, 1); + } + } + + +} diff --git a/com/engine/custom/archives/workflow/biz/requestLog/RequestLogCusBiz.java b/com/engine/custom/archives/workflow/biz/requestLog/RequestLogCusBiz.java new file mode 100644 index 0000000..31b8921 --- /dev/null +++ b/com/engine/custom/archives/workflow/biz/requestLog/RequestLogCusBiz.java @@ -0,0 +1,799 @@ +package com.engine.custom.archives.workflow.biz.requestLog; + +import com.alibaba.fastjson.JSONObject; +import com.api.doc.detail.util.DocDownloadCheckUtil; +import com.engine.workflow.biz.RobotNode.RobotNodeBiz; +import com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz; +import com.engine.workflow.biz.freeNode.FreeNodeBiz; +import com.engine.workflow.biz.workflowCore.WorkflowBaseBiz; +import com.engine.workflow.constant.RequestLogType; +import com.engine.workflow.constant.SignSource; +import com.engine.workflow.constant.node.NodeType; +import com.engine.workflow.entity.core.NodeInfoEntity; +import com.engine.workflow.entity.requestLog.RequestLogEntity; +import com.engine.workflow.util.CollectionUtil; +import org.apache.commons.lang.StringUtils; +import weaver.conn.ConnStatement; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.workflow.logging.Logger; +import weaver.workflow.logging.LoggerFactory; +import weaver.workflow.request.RequestOperationMsgManager; +import weaver.workflow.request.RequestSignRelevanceWithMe; +import weaver.workflow.request.WFLinkInfo; +import weaver.workflow.request.WorkflowSpeechAppend; +import weaver.workflow.workflow.WorkflowVersion; + +import java.util.*; + +/** + * 获取签字意见 + * Created by jhy on 2018/11/7. + */ +public class RequestLogCusBiz { + + private final static Logger log = LoggerFactory.getLogger(RequestLogCusBiz.class); + + /** + * 获得流程流转日志总记录数 + * + * @param requestid + * @param workflowid + * @param viewLogIds + * @return + */ + public static int getRequestLogTotalCount(int requestid, int workflowid, String viewLogIds, String sqlwhere) { + RecordSet rs = new RecordSet(); + String thisviewLogIds = getViewLogIds(viewLogIds, requestid, workflowid); + //需要排除不留痕的机器人节点的id + String robotNodeid = getRobotNodeid(thisviewLogIds); + + String sql = "select count(t1.logid) from workflow_requestlog t1 " + + " where t1.requestid=" + requestid + " and t1.logtype != '1' " + + " and " + Util.getSubINClause(thisviewLogIds, "t1.nodeid", "in") + " " + sqlwhere; + ArrayList unshowlogids = forkStartLogids(requestid, workflowid); + if (unshowlogids.size() > 0) { + sql += " and " + Util.getSubINClause(StringUtils.join(unshowlogids, ","), "t1.logid", "not in"); + } + + if(!"".equals(robotNodeid)){ + sql += " and logid not in (select logid from workflow_requestlog where "+Util.getSubINClause(robotNodeid, "t1.nodeid", "in")+" and operator = '0' and isRobotNode='1')"; + } + rs.executeSql(sql); + int logcount = 0; + if (rs.next()) logcount = rs.getInt(1); + return logcount; + } + + //得到不留痕的机器人节点的id + public static String getRobotNodeid(String thisviewLogIds){ + //需要排除不留痕的机器人节点的id + String robotNodeid = ""; + String[] thisviewLogIdsArr = thisviewLogIds.split(","); + for (String viewLogId : thisviewLogIdsArr) { + int viewnodeid = Util.getIntValue(viewLogId,-1); + NodeInfoEntity nodeInfoEntity = WorkflowBaseBiz.getNodeInfo(viewnodeid); + if(NodeType.WAIT.getValue().equals(nodeInfoEntity.getNodetype()+"") || NodeType.AUTOPROCESS.getValue().equals(nodeInfoEntity.getNodetype()+"")){ + String remarkOperation = new RobotNodeServiceBiz().getRobotNodeSet(viewnodeid).getRemarkOperation(); + if("0".equals(remarkOperation)){ + robotNodeid += "," + viewLogId; + } + } + } + if(robotNodeid.startsWith(",")){ + robotNodeid = robotNodeid.substring(1); + } + return robotNodeid; + } + + /** + * 获得流程流转日志 + * + * @param requestid + * @param workflowid + * @param viewLogIds + * @return + */ + public static ArrayList getRequestLog(int requestid, int workflowid, String viewLogIds, String orderby, int pageSize, int pagenumber, String sqlwhere , boolean isSubrequest) { + ArrayList logs = new ArrayList(); + RecordSet rs = new RecordSet(); + + int min = (pagenumber - 1) * pageSize; + int max = pagenumber * pageSize; + + String sql = getLogSql(requestid, workflowid, viewLogIds, orderby, sqlwhere ,isSubrequest); + System.out.println("requestlogsql==>"+ sql); + StringBuffer splitinertSql = new StringBuffer(); + if ("sqlserver".equals(rs.getDBType())) { + splitinertSql.append(" select * from ( select"); + splitinertSql.append(" row_number() over(order by tbl.operatedate ").append(orderby).append(",tbl.operatetime ").append(orderby).append(", tbl.logid ").append(orderby).append(") as rn,* from ("); + splitinertSql.append(sql).append(" ) tbl "); + splitinertSql.append(") t where rn > ").append(min).append(" and rn <= ").append(max); + } else if ("mysql".equals(rs.getDBType())) { + splitinertSql.append(sql).append(" limit ").append(min).append(",").append(pageSize); + } + else if ("postgresql".equals(rs.getDBType())) { + splitinertSql.append(sql).append(" limit ").append(pageSize).append(" offset ").append(min); + } + else { + splitinertSql.append(" select t1.* from ("); + splitinertSql.append(" select t.*,rownum rn from (" + sql + ") t "); + splitinertSql.append(" ) t1 where rn >").append(min).append(" and rn <=").append(max); + } + rs.execute(splitinertSql.toString()); + while (rs.next()) { + Hashtable hashtable = addLogItem(rs); + if(hashtable != null) logs.add(hashtable); + } + //对log中的重复数据进行清除 + logs = uniqLogs(logs); + return logs; + } + + public static String getLogSql(int requestid, int workflowid, String viewLogIds, String orderby, String sqlwhere, boolean isSubrequest) { + RecordSet rs = new RecordSet(); + String mainAndSubRequestId = getMainOrSubRequest(requestid,isSubrequest); + if (orderby == null || orderby.trim().equals("")) orderby = "desc"; + String mssqlTopflg = ""; + if ("sqlserver".equals((rs.getDBType()))) { + mssqlTopflg = " top 100 percent "; + } + String thisviewLogIds = getViewLogIds(viewLogIds, requestid, workflowid); + String robotNodeid = getRobotNodeid(thisviewLogIds); + String selectfields = " nodeid,destnodeid,operatedate,operatetime,logtype,remark,isMobile,logid,operatortype,operator," + + "agenttype,agentorbyagentid,receivedPersonids,requestLogId,annexdocids,operatorDept,signdocids," + + "signworkflowids,fulltextannotation,HandWrittenSign,SpeechAttachment,speechAttachmente9,remarkLocation,isRobotNode"; + if ("sqlserver".equals(rs.getDBType())) { + selectfields += ",left(substring(receivedPersons,0,2000),240) as receivedPersons "; + } else if ("oracle".equalsIgnoreCase(rs.getDBType())) { + selectfields += ",substr(receivedPersons,0,240) as receivedPersons "; + } else if ("mysql".equalsIgnoreCase(rs.getDBType())) { + selectfields += ",left(receivedPersons,240) as receivedPersons "; + } else { + selectfields += ",receivedPersons"; + } + + String sql = "select " + mssqlTopflg + selectfields + " from workflow_requestlog t1 " + + " where t1.requestid in ( " + mainAndSubRequestId + ") and t1.logtype != '1' " ; + // " and " + Util.getSubINClause(thisviewLogIds, "t1.nodeid", "in"); + if (sqlwhere != null && !sqlwhere.equals("")) { + sql = sql + sqlwhere; + } + + ArrayList unshowlogids = forkStartLogids(requestid, workflowid); + if (unshowlogids.size() > 0) { + sql += " and " + Util.getSubINClause(StringUtils.join(unshowlogids, ","), "t1.logid", "not in"); + } + if(!"".equals(robotNodeid)){ + sql += " and logid not in (select logid from workflow_requestlog where "+Util.getSubINClause(robotNodeid, "t1.nodeid", "in")+" and operator = '0' and isRobotNode='1')"; + } + sql = sql + " order by t1.operatedate " + orderby + ",t1.operatetime " + orderby + ",t1.logtype " + orderby + ",t1.logid " + orderby; + return sql; + } + + private static String getMainOrSubRequest(int requestid, boolean isSubrequest) { + if (isSubrequest){ + // RecordSet rs = new RecordSet(); + // ArrayList results = new ArrayList<>(); + // String mainSql = "select mainrequestid from workflow_requestbase where requestid = ? "; + // String mainRequestId = ""; + // rs.executeQuery(mainSql,requestid); + // if (rs.next()){ + // mainRequestId = Util.null2String(rs.getString("mainrequestid")); + // }else { + // return Util.null2String(requestid); + // } + // // results.add(requestid+""); + // String subSql = "select requestid from workflow_requestbase where mainrequestid = ? "; + // rs.executeQuery(subSql , mainRequestId); + // while (rs.next()){ + // results.add(rs.getString("requestid")); + // } + + List reqids = new ArrayList<>(); + RecordSet rs = new RecordSet(); + String ids = requestid+""; + // reqids.add(requestid); + for (int i = 0; i < 5; i++) { + ArrayList idList = new ArrayList<>(); + String sql = "select requestid , workflowid from workflow_requestbase where mainrequestid in ( " + ids + " )"; + log.error("subrequestSql:{}" + sql); + rs.executeQuery(sql); + while (rs.next()) { + String subrequestid = Util.null2String(rs.getString("requestid")); + // String workflowid = Util.null2String(rs.getString("workflowid")); + idList.add(subrequestid); + reqids.add(subrequestid); + // 使用map自动去重,一种流程类型只取一个requestid + + } + ids = String.join(",", idList); + if (ids.length() == 0) { + break; + } + } + log.error("子流程的id:"+String.join(",", reqids)); + return String.join(",", reqids); + }else { + List reqids = new ArrayList<>(); + RecordSet rs = new RecordSet(); + String ids = requestid+""; + reqids.add(requestid+""); + for (int i = 0; i < 5; i++) { + ArrayList idList = new ArrayList<>(); + String sql = "select requestid , workflowid from workflow_requestbase where mainrequestid in ( " + ids + " )"; + log.error("subrequestSql:{}" + sql); + rs.executeQuery(sql); + while (rs.next()) { + String subrequestid = Util.null2String(rs.getString("requestid")); + // String workflowid = Util.null2String(rs.getString("workflowid")); + idList.add(subrequestid); + reqids.add(subrequestid); + // 使用map自动去重,一种流程类型只取一个requestid + + } + ids = String.join(",", idList); + if (ids.length() == 0) { + break; + } + } + log.error("子流程的id:"+String.join(",", reqids)); + return String.join(",", reqids); + } + + } + + public static String getLogCountSql(int requestid, int workflowid, String viewLogIds, String orderby, String sqlwhere){ + String thisviewLogIds = getViewLogIds(viewLogIds, requestid, workflowid); + + String sql = "select count(*) as count from workflow_requestlog t1 " + + " where t1.requestid=" + requestid + " and t1.logtype != '1' " + + " and " + Util.getSubINClause(thisviewLogIds, "t1.nodeid", "in"); + if (sqlwhere != null && !sqlwhere.equals("")) { + sql = sql + sqlwhere; + } + + ArrayList unshowlogids = forkStartLogids(requestid, workflowid); + if (unshowlogids.size() > 0) { + sql += " and " + Util.getSubINClause(StringUtils.join(unshowlogids, ","), "t1.logid", "not in"); + } + return sql; + } + + /** + * 判断签字意见是否加载完毕 + * + */ + public static boolean isEndLog(int requestid, int workflowid, String viewLogIds, String orderby, int pageSize, int pagenumber, String sqlwhere) { + RecordSet rs = new RecordSet(); + int max = pagenumber * pageSize; + String sql =getLogCountSql(requestid, workflowid, viewLogIds, orderby, sqlwhere); + rs.executeQuery(sql); + int count = 0; + if(rs.next()){ + count = rs.getInt("count"); + } + if(count<=max){ + return true; + }else{ + return false; + } + } + + private static Hashtable addLogItem(RecordSet rs) { + int log_nodeid = rs.getInt("nodeid"); + int log_destnodeid = rs.getInt("destnodeid"); + String operatedate = Util.null2String(rs.getString("operatedate")); + String operatetime = Util.null2String(rs.getString("operatetime")); + String log_logtype = Util.null2String(rs.getString("logtype")); + String isRobotNode = Util.null2String(rs.getString("isRobotNode")); + Hashtable htlog = new Hashtable(); + String remarkHtml = rs.getString("remark"); + String isMobile = Util.null2String(rs.getString("isMobile")); + htlog.put("nodeid", "" + log_nodeid); + htlog.put("isRobotNode", "" + isRobotNode); + + NodeInfoEntity nodeInfoEntity = WorkflowBaseBiz.getNodeInfo(log_nodeid); + String operator = rs.getString("operator"); + if(operator.equals(RobotNodeBiz.operatorid) && (NodeType.WAIT.getValue().equals(nodeInfoEntity.getNodetype()+"") || NodeType.AUTOPROCESS.getValue().equals(nodeInfoEntity.getNodetype()+""))){ + //机器人节点 + String remarkOperation = new RobotNodeServiceBiz().getRobotNodeSet(log_nodeid).getRemarkOperation(); + if("0".equals(remarkOperation) && "1".equals(isRobotNode)){ + return null; + } + } + htlog.put("nodeattribute", nodeInfoEntity.getNodeAttribute()); + htlog.put("nodename", nodeInfoEntity.getNodename()); + htlog.put("destnodeid", "" + log_destnodeid); + htlog.put("iframeId", "FCKsigniframe" + rs.getInt("logid")); + htlog.put("operatortype", rs.getString("operatortype")); + htlog.put("operator", rs.getString("operator")); + htlog.put("agenttype", rs.getString("agenttype")); + htlog.put("agentorbyagentid", rs.getString("agentorbyagentid")); + htlog.put("operatedate", operatedate); + htlog.put("operatetime", operatetime); + htlog.put("logtype", log_logtype); + htlog.put("receivedPersons", rs.getString("receivedPersons")); + htlog.put("receivedPersonids", rs.getString("receivedPersonids")); + htlog.put("logid", rs.getString("requestLogId")); + htlog.put("tmpLogId", rs.getString("logid")); + htlog.put("annexdocids", rs.getString("annexdocids")); + htlog.put("operatorDept", rs.getString("operatorDept")); + htlog.put("signdocids", rs.getString("signdocids")); + htlog.put("signworkflowids", rs.getString("signworkflowids")); + htlog.put("fulltextannotation", rs.getString("fulltextannotation")); + htlog.put("isMobile", isMobile); + + htlog.put("handwrittensignid", Util.null2String(rs.getString("HandWrittenSign"), "")); + htlog.put("speechattachmentid", Util.getIntValue(rs.getString("SpeechAttachment"), 0)); + htlog.put("speechAttachmente9", rs.getString("speechAttachmente9")); + + htlog.put("remarkLocation", rs.getString("remarkLocation")); + htlog.put("id", rs.getString("logid")); + + //处理手机版中所添加的来源的后缀。 + String mobileSuffix = null; + //处理历史数据 + SignSource signSource = SignSource.getSignSource(isMobile); + if (signSource != null) { + mobileSuffix = WorkflowSpeechAppend.getMobileSuffix(remarkHtml); + if (mobileSuffix != null) { + remarkHtml = remarkHtml.substring(0, remarkHtml.lastIndexOf(mobileSuffix)); + } + } + + //获取签字意见中的电子签章部分。 + String eletriSignature = WorkflowSpeechAppend.getElectrSignatrue(remarkHtml); + if (eletriSignature != null) { + remarkHtml = remarkHtml.substring(0, remarkHtml.lastIndexOf(eletriSignature)); + } + + //获取并设置手写签批和语音附件内容 + String attachmentID = Util.null2String(rs.getString("HandWrittenSign"), ""); + if (!"".equals(attachmentID)) { + String[] attachmentids = attachmentID.split(","); + for (int i = 0; i < attachmentids.length; i++) { + int attachmentid = Util.getIntValue(attachmentids[i]); + if (attachmentid > 0) { + String attachmentidAes = DocDownloadCheckUtil.checkPermission(String.valueOf(attachmentid), null); + remarkHtml += "
"; + } + } + } + //全文批注 + String fulltextannotation = Util.null2String(rs.getString("fulltextannotation")).trim(); + if (!"".equals(fulltextannotation)) { + String[] fulltextannotationIds = Util.splitString(fulltextannotation, ","); + for (String fulltextannotationId : fulltextannotationIds) { + int __fulltextannoationid = Util.getIntValue(fulltextannotationId); + if (__fulltextannoationid <= 0) continue; + remarkHtml += "
"; + } + } + int attachmentID1 = Util.getIntValue(rs.getString("SpeechAttachment"), 0); + if (attachmentID1 > 0) { + remarkHtml += "
"; + } + + //再加上电子签章和来源信息。 + if (eletriSignature != null) { + remarkHtml += eletriSignature; + } + if (mobileSuffix != null) { + remarkHtml += mobileSuffix; + } + htlog.put("remarkHtml", remarkHtml); + htlog.put("isbranche", "1".equals(nodeInfoEntity.getNodeAttribute()) ? "1" : "0"); + return htlog; + } + + private static String getViewLogIds(String viewLogIds, int requestid, int workflowid) { + if ("".equals(viewLogIds)) { + viewLogIds = "-1"; + } + + if (viewLogIds.lastIndexOf(",") == viewLogIds.length() - 1) { + viewLogIds = viewLogIds.substring(0, viewLogIds.length() - 1); + } + //查找可查看节点发起的自由节点 + String _freenodeids = getFreeNodeidsByNodeids(requestid + "", viewLogIds); + if (!"".equals(viewLogIds) && !"".equals(_freenodeids)) { + viewLogIds += "," + _freenodeids; + } + + String thisrequestnodeid = getAllNodeids4Request(requestid, workflowid); + return checkNodeids(thisrequestnodeid, viewLogIds); + } + + public static String getFreeNodeidsByNodeids(String requestid, String nodeids) { + String result = ""; + if (nodeids == null || "".equals(nodeids)) return result; + if (nodeids.endsWith(",")) { + nodeids = nodeids.substring(0, nodeids.lastIndexOf(",")); + } + String sql = "select id from workflow_nodebase where isfreenode=1 and requestid=" + requestid + " and " + Util.getSubINClause(nodeids, "startnodeid", "in"); + RecordSet rs = new RecordSet(); + rs.executeSql(sql); + while (rs.next()) { + result += "," + Util.null2String(rs.getString(1)); + } + if (result.length() > 1) { + result = result.substring(1); + } + return result; + } + + /** + * 查找到当前请求有关的所有节点的ID,包括路径设置里设置的和自由流程的节点 + * + * @param requestid + * @param workflowid + * @return + */ + public static String getAllNodeids4Request(int requestid, int workflowid) { + StringBuffer sb = new StringBuffer(); + try { + String allWfId = WorkflowVersion.getAllVersionStringByWFIDs(String.valueOf(workflowid)); + RecordSet recordSet = new RecordSet(); + recordSet.execute("select nb.id from workflow_nodebase nb left join workflow_flownode fn on nb.id=fn.nodeid where (nb.IsFreeNode is null or nb.IsFreeNode!='1' or (nb.IsFreeNode='1' and nb.requestid=" + requestid + ")) and " + Util.getSubINClause(allWfId, "fn.workflowid"," in")); + while (recordSet.next()) { + int id_tmp = Util.getIntValue(recordSet.getString(1)); + sb.append("," + id_tmp); + } + sb.append(","); + } catch (Exception e) { + // + } + return sb.toString(); + } + + /** + * 筛选节点ID,只留下和当前请求有关的,主要是去掉同workflowid下的其他请求的自由流程节点 + * + * @param thisnodeids:这个requestid对应的workflowid的所有节点和requestid下的所有自由流程节点 + * @param nodeids:待筛选的节点,一般是当前操作用户有权限查看签字意见的所有节点 + * @return + */ + public static String checkNodeids(String thisnodeids, String nodeids) { + StringBuffer sb = new StringBuffer(); + nodeids = Util.null2String(nodeids); + thisnodeids = Util.null2String(thisnodeids); + if (!"".equals(nodeids) && !"".equals(thisnodeids)) { + try { + String[] nodeid_sz = nodeids.split(","); + for (int cx = 0; cx < nodeid_sz.length; cx++) { + int nodeid_tmp = Util.getIntValue(Util.null2String(nodeid_sz[cx]).trim()); + //E9新版自由流程 + if (nodeid_tmp < -1) { + sb.append(nodeid_tmp + ","); + } else { + if (("," + thisnodeids + ",").indexOf("," + nodeid_tmp + ",") > -1) { + sb.append(nodeid_tmp + ","); + } + } + } + if (sb.length() > 0) { + sb.delete(sb.length() - 1, sb.length()); + } + } catch (Exception e) { + // + } + } + if (sb.length() == 0) { + sb.append("-1"); + } + return sb.toString(); + } + + /** + * 查询需要过滤的分叉起始节点的签字意见,排除最后一个 + * + * @param requestid + * @param workflowid + * @return + */ + public static ArrayList forkStartLogids(int requestid, int workflowid) { + ArrayList logids = new ArrayList(); + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + String c_sql = ""; + rs.executeSql("select 1 from workflow_flownode f ,workflow_nodebase n where f.workflowid=" + workflowid + " and f.nodeid=n.id and n.nodeattribute=1");//通过分叉起始节点判断是否为分叉流程 + if (rs.next()) { + //rs.executeSql("select nodeid,nodename from workflow_flownode f,workflow_nodebase n WHERE workflowid="+workflowid+" AND n.id=f.nodeid and (n.IsFreeNode is null or n.IsFreeNode!='1') "); + rs.executeSql("select nodeid,nodename from workflow_flownode f,workflow_nodebase n WHERE workflowid=" + workflowid + " AND n.id=f.nodeid and (n.IsFreeNode is null or n.IsFreeNode!='1') and n.nodeattribute not in ('2') and exists (select 1 from workflow_requestlog l where l.requestid=" + requestid + " and l.nodeid=f.nodeid and l.logtype in ('0','2','3') group by l.logid having(l.logid)>1) "); + while (rs.next()) { + String nodeid = rs.getString("nodeid"); + String nodename = rs.getString("nodename"); + c_sql = "SELECT a.LOGID FROM workflow_requestLog a WHERE requestid=" + requestid + " and a.logtype in ('0','2','3','t') and a.nodeid=" + nodeid + " AND a.logid NOT IN (SELECT MAX(b.logid) FROM workflow_requestlog b WHERE a.requestid=b.requestid AND a.workflowid=b.workflowid AND a.nodeid=b.nodeid AND a.operatedate=b.operatedate AND a.operatetime=b.operatetime AND a.operator=b.operator AND a.logtype=b.logtype)"; + rs1.executeSql(c_sql); + while (rs1.next()) { + logids.add(Util.getIntValue(rs1.getString(1))); + } + } + } + + return logids; + } + + public static ArrayList uniqLogs(ArrayList logs) { + ArrayList tmpLogs = new ArrayList(); + ArrayList logIds = new ArrayList(); + for (int i = 0; i < logs.size(); i++) { + Hashtable ht = (Hashtable) logs.get(i); + int logid = -1; + try { +// System.out.println(ht.get("tmpLogId")); + logid = Integer.parseInt((String) ht.get("tmpLogId")); + } catch (Exception e) { + e.printStackTrace(); + } + if (logIds.indexOf(logid) < 0) { + tmpLogs.add(ht); + logIds.add(logid); + } + } + return tmpLogs; + } + + /** + * 删除签字意见中的来源 + */ + public static String removeRemarkSource(String remark) { + if (remark != null) { + remark = remark.replaceAll("来自[a-zA-Z]{3,10}客户端|来自[a-zA-Z]{3,10}手机版|来自企业微信|来自微信企业号", ""); + remark = remark.replaceAll("

", ""); + } else + remark = ""; + return remark; + } + + public static void loadNodeCanViewNodeIds(int viewNodeId, int workflowid, List canViewIds, int requestid) { + loadNodeCanViewNodeIds(viewNodeId, workflowid, canViewIds, requestid, false); + } + + /** + * 获取节点设置可查看意见范围 + * + * @param viewNodeId + * @param workflowid + * @param canViewIds + */ + public static void loadNodeCanViewNodeIds(int viewNodeId, int workflowid, List canViewIds, int requestid, boolean isViewAllNodeLog) { + RecordSet rs = new RecordSet(); + String singleViewLogIds = ""; + if (isViewAllNodeLog) { + singleViewLogIds = "-1"; + } else { + rs.executeQuery("select viewnodeids from workflow_flownode where workflowid= ? and nodeid= ? ",workflowid,viewNodeId); + if (rs.next()) { + singleViewLogIds = rs.getString("viewnodeids"); + } + } + if ("-1".equals(singleViewLogIds)) {// 全部查看 + rs.executeSql("select nodeid from workflow_flownode where workflowid= " + workflowid + " and exists(select 1 from workflow_nodebase where id=workflow_flownode.nodeid and (requestid is null or requestid = " + requestid + "))"); + while (rs.next()) { + String tempNodeId = rs.getString("nodeid"); + if (!canViewIds.contains(tempNodeId)) { + canViewIds.add(tempNodeId); + } + } + } else if (singleViewLogIds == null || "".equals(singleViewLogIds)) {// 全部不能查看 + } else {// 查看部分 + String tempidstrs[] = Util.TokenizerString2(singleViewLogIds, ","); + for (int i = 0; i < tempidstrs.length; i++) { + if (!canViewIds.contains(tempidstrs[i])) { + canViewIds.add(tempidstrs[i]); + } + } + } + } + + /** + * 得到可查看的节点id + * + * @param requestid + * @param workflowid + * @return + */ + public static String getViewLogIds(int requestid, int userid, int workflowid) { + List canViewIds = new ArrayList(); + RecordSet recordSet = new RecordSet(); + //节点操作者 + recordSet.executeSql("select nodeid from workflow_currentoperator where requestid=" + requestid + " and userid=" + userid + " order by receivedate desc ,receivetime desc"); + if (recordSet.next()) { + int viewnodeid = FreeNodeBiz.getExtendNodeId(requestid, Util.getIntValue(recordSet.getString("nodeid"))); + RequestLogCusBiz.loadNodeCanViewNodeIds(viewnodeid, workflowid, canViewIds, requestid); + } + //加载自由节点 + FreeNodeBiz.loadViewLogFreeNodeIds(requestid, canViewIds); + return CollectionUtil.list2String(canViewIds, ","); + } + + + /** + * 意见保存,返回requestlogId + * + * @param logEntity + * @param user + * @return + */ + public static int saveRequestLog(RequestLogEntity logEntity, User user, boolean istest) { + int logid = -1; + if (logEntity == null) return logid; + int operatorDept1 = user.getUserDepartment(); + int operatorSub = user.getUserSubCompany1(); + int operatorJob = Util.getIntValue(user.getJobtitle(), 0); + String seclevel = Util.getIntValue(user.getSeclevel(), 0) + ""; + ConnStatement logstatement = null; + String remarknew = logEntity.getRemark(); + RequestLogType logType = logEntity.getLogType(); + if (logType == RequestLogType.SAVE && !"".equals(Util.null2String(logEntity.getRemarkquote()))) { + remarknew = logEntity.getRemarkquote(); + } + logEntity.setRemarkquote(""); + logEntity.setOperator(user.getUID()); + logEntity.setOperatortype("1".equals(user.getLogintype()) ? 0 : 1); + try { + RecordSet rs = new RecordSet(); + boolean insertLog = true; + if (logType == RequestLogType.SAVE) { + String logsql = " SELECT logid FROM workflow_requestlog WHERE requestid= ? AND nodeid= ? AND logtype=? AND OPERATOR = ? AND operatortype = ?"; + rs.executeQuery(logsql, logEntity.getRequestid(), logEntity.getNodeid(), logType.getKey(), user.getUID(), logEntity.getOperatortype()); + if (rs.next()) { + logid = rs.getInt("logid"); + insertLog = false; + String updatelogsql = " UPDATE workflow_requestlog SET operatedate= ?,operatetime= ?," + + " remark= ?, clientip= ?, destnodeid= ?, annexdocids= ?, " + + " requestLogId= ?, signdocids= ?, signworkflowids= ?, isMobile= ?," + + " SpeechAttachment= ?, HandWrittenSign= ?, remarkLocation=?,remarkquote=?,fulltextannotation = ?,speechAttachmente9 = ? where requestid=" + logEntity.getRequestid() + + " AND nodeid=" + logEntity.getNodeid() + " AND logtype='" + logType.getKey() + "' AND OPERATOR = " + user.getUID() + + " AND operatortype = " + logEntity.getOperatortype(); + logstatement = new ConnStatement(); + logstatement.setStatementSql(updatelogsql); + logstatement.setString(1, logEntity.getOperatedate()); + logstatement.setString(2, logEntity.getOperatetime()); + logstatement.setString(3, logEntity.getRemark()); + logstatement.setString(4, logEntity.getClientip()); + logstatement.setInt(5, logEntity.getDestnodeid()); + logstatement.setString(6, logEntity.getAnnexdocids()); + logstatement.setInt(7, logEntity.getRequestLogId()); + logstatement.setString(8, logEntity.getSigndocids()); + logstatement.setString(9, logEntity.getSignworkflowids()); + logstatement.setString(10, logEntity.getIsMobile()); + logstatement.setInt(11, logEntity.getSpeechAttachment()); + logstatement.setString(12, String.valueOf(logEntity.getHandWrittenSign())); + logstatement.setString(13, logEntity.getRemarkLocation()); + logstatement.setString(14, logEntity.getRemarkquote()); + logstatement.setString(15, logEntity.getFulltextannotation()); + logstatement.setString(16, logEntity.getSpeechAttachmente9()); + logstatement.executeUpdate(); + } + } else { + String deletelogsql = " DELETE from workflow_requestlog WHERE requestid= ? AND nodeid= ? AND (logtype='1') AND OPERATOR = ? AND operatortype = ?"; + rs.executeUpdate(deletelogsql, logEntity.getRequestid(), logEntity.getNodeid(), user.getUID(), logEntity.getOperatortype()); + } + //插入意見 + if (insertLog) { + String uuid = UUID.randomUUID().toString(); + String insertlogsql = " INSERT INTO workflow_requestlog (requestid,workflowid,nodeid,logtype, operatedate, " + + " operatetime,OPERATOR, remark,clientip,operatortype,destnodeid,receivedPersons, " + + " agentorbyagentid,agenttype,showorder,annexdocids,requestLogId,operatorDept, " + + " signdocids,signworkflowids,isMobile,HandWrittenSign,SpeechAttachment,receivedPersonids,remarkLocation,remarkquote,fulltextannotation,speechAttachmente9,uuid,operatorSub, operatorJob, seclevel) " + + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; + logstatement = new ConnStatement(); + logstatement.setStatementSql(insertlogsql); + logstatement.setInt(1, logEntity.getRequestid()); + logstatement.setInt(2, logEntity.getWorkflowid()); + logstatement.setInt(3, logEntity.getNodeid()); + logstatement.setString(4, logType.getKey()); + logstatement.setString(5, logEntity.getOperatedate()); + logstatement.setString(6, logEntity.getOperatetime()); + logstatement.setInt(7, user.getUID()); + logstatement.setString(8, remarknew); + logstatement.setString(9, logEntity.getClientip()); + logstatement.setInt(10, logEntity.getOperatortype()); + logstatement.setInt(11, logEntity.getDestnodeid()); + logstatement.setString(12, logEntity.getReceivedPersons()); + logstatement.setInt(13, logEntity.getAgentorbyagentid()); + logstatement.setString(14, logEntity.getAgenttype()); + logstatement.setInt(15, logEntity.getShoworder()); + logstatement.setString(16, logEntity.getAnnexdocids()); + logstatement.setInt(17, logEntity.getRequestLogId()); + logstatement.setString(18, String.valueOf(operatorDept1)); + logstatement.setString(19, logEntity.getSigndocids()); + logstatement.setString(20, logEntity.getSignworkflowids()); + logstatement.setString(21, logEntity.getSignSource().getType()); + logstatement.setString(22, String.valueOf(logEntity.getHandWrittenSign())); + logstatement.setInt(23, Util.getIntValue(logEntity.getSpeechAttachment(), 0)); + logstatement.setString(24, logEntity.getReceivedpersonids()); + logstatement.setString(25, logEntity.getRemarkLocation()); + logstatement.setString(26, logEntity.getRemarkquote()); + logstatement.setString(27, logEntity.getFulltextannotation()); + logstatement.setString(28, logEntity.getSpeechAttachmente9()); + logstatement.setString(29, uuid); + logstatement.setInt(30, operatorSub); + logstatement.setInt(31, operatorJob); + logstatement.setString(32, seclevel); + logstatement.executeUpdate(); + logstatement.close(); + + rs.executeQuery("select logid from workflow_requestlog where requestid = ? and uuid = ?", logEntity.getRequestid(), uuid); + if (rs.next()) { + logid = rs.getInt("logid"); + } + } + + /** + * 处理签字意见的权限,督办(s)所有人都有权限,其他的都只给日志的操作人赋予权限 + * 处理日志查看权限 + */ + if (logType != RequestLogType.SAVE) { + rs.executeQuery("select currentnodeid,currentnodetype from workflow_requestbase where requestid = ?", logEntity.getRequestid()); + int curnodeid = 0; + int curnodetype = -1; + if (rs.next()) { + curnodeid = rs.getInt("currentnodeid"); + curnodetype = rs.getInt("currentnodetype"); + } + NodeInfoEntity nodeInfoEntity = WorkflowBaseBiz.getNodeInfo(curnodeid); + Set branchNodeSet = new HashSet(); + if ("2".equals(nodeInfoEntity.getNodeAttribute())) { //分支中间节点 + WFLinkInfo wflinkinfo = new WFLinkInfo(); + String branchnodes = wflinkinfo.getNowNodeids(logEntity.getRequestid()); + if (!"".equals(branchnodes)) { + String[] strs = branchnodes.split(","); + for (int k = 0; k < strs.length; k++) { + String nodestr = strs[k]; + if (!"-1".equals(nodestr)) { + branchNodeSet.add(nodestr); + } + } + } + } + + //流程的非归档节点,且插入日志的节点仍然是流程的当前节点,则需要日志权限控制 + if (!"3".equals(curnodetype) && (curnodeid == logEntity.getNodeid() || branchNodeSet.contains(String.valueOf(logEntity.getNodeid())))) { + int loguserid = user.getUID(); + if (logType == RequestLogType.SUPERVISE) { // 督办所有人有权限 + loguserid = -1; + } + String rightSql = "insert into workflow_logviewusers (logid,userid) values (? , ?)"; + rs.executeUpdate(rightSql, logid, loguserid); + } + + RequestSignRelevanceWithMe reqsignwm = new RequestSignRelevanceWithMe(); + reqsignwm.inertRelevanceInfo(String.valueOf(logEntity.getWorkflowid()), String.valueOf(logEntity.getRequestid()), String.valueOf(logEntity.getNodeid()), + logType.getKey(), logEntity.getOperatedate(), logEntity.getOperatetime(), String.valueOf(user.getUID()), remarknew); + + //提醒 + List atResourceids = reqsignwm.parseRemark(remarknew); + if (atResourceids.size() > 0) { + RequestOperationMsgManager romm = new RequestOperationMsgManager(); + romm.remarkAtMsg(String.valueOf(logEntity.getRequestid()), String.valueOf(user.getUID()), atResourceids); + } + } + } catch (Exception e) { + log.info(new StringBuilder().append("~requestlog~rstlogpara:").append(JSONObject.toJSONString(logEntity)).append(",remark:").append(remarknew).toString()); + e.printStackTrace(); + } finally { + if (logstatement != null) logstatement.close(); + } + return logid; + } + + + /** + * 根据来源获取需要自定义拼接的条件 + * @return + */ + public static String getCustomSourceCondition(String source,Map params){ + String result = ""; + if("wfCenter".equals(source)){ + if(!"".equals(Util.null2String(params.get("logids")))){ + result += " and logid in(" + Util.null2String(params.get("logids")) + ") "; + } + } + return result; + } +} diff --git a/com/engine/custom/archives/workflow/cmd/requestLog/LoadRequestLogDataCusCmd.java b/com/engine/custom/archives/workflow/cmd/requestLog/LoadRequestLogDataCusCmd.java new file mode 100644 index 0000000..5a6eadf --- /dev/null +++ b/com/engine/custom/archives/workflow/cmd/requestLog/LoadRequestLogDataCusCmd.java @@ -0,0 +1,1072 @@ +package com.engine.custom.archives.workflow.cmd.requestLog; + +import com.api.doc.detail.service.DocViewPermission; +import com.api.doc.detail.util.DocDownloadCheckUtil; +import com.api.odoc.util.OdocFileUtil; +import com.api.workflow.constant.RequestAuthenticationConstant; +import com.api.workflow.service.RequestAuthenticationService; +import com.api.workflow.util.ServiceUtil; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.constant.ParamConstant; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.AttrSignatureUtil; +import com.engine.core.interceptor.CommandContext; +import com.engine.custom.archives.workflow.biz.requestLog.RequestLogCusBiz; +import com.engine.hrm.biz.OrganizationShowSetBiz; +import com.engine.workflow.biz.QysSignatureCominfo; + +import com.engine.workflow.biz.RobotNode.RobotNodeBiz; +import com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz; +import com.engine.workflow.biz.SecondAuthBiz; +import com.engine.workflow.biz.WorkflowCommunicationBiz; +import com.engine.workflow.biz.freeNode.FreeNodeBiz; +import com.engine.workflow.biz.requestForm.RequestFormBiz; +import com.engine.workflow.constant.SecondAuthType; +import com.engine.workflow.constant.SignSource; +import com.engine.workflow.constant.menu.SystemMenuType; +import com.engine.workflow.constant.requestForm.RequestConstant; +import com.engine.workflow.entity.requestForm.RightMenu; +import com.engine.workflow.service.RequestSecondAuthService; +import com.engine.workflow.service.impl.RequestSecondAuthServiceImpl; +import com.engine.workflow.util.MenuOrderSetUtil; +import com.google.common.base.Strings; +import weaver.conn.RecordSet; +import weaver.crm.Maint.CustomerInfoComInfo; +import weaver.dateformat.DateTransformer; +import weaver.dateformat.UnifiedConversionInterface; +import weaver.docs.category.SecCategoryComInfo; +import weaver.docs.docs.DocImageManager; +import weaver.docs.webservices.DocAttachment; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; +import weaver.systeminfo.SystemEnv; +import weaver.workflow.request.RequestLogOperateName; +import weaver.workflow.request.RequestRemarkRight; +import weaver.workflow.request.WFLinkInfo; +import weaver.workflow.request.WorkflowSpeechAppend; +import weaver.workflow.workflow.WorkflowAllComInfo; +import weaver.workflow.workflow.WorkflowConfigComInfo; +import weaver.workflow.workflow.WorkflowRequestComInfo; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 获取签字意见列表数据 + * Created by jhy on 2018/4/10. + */ +public class LoadRequestLogDataCusCmd extends AbstractCommonCommand> { + + /***方便使用参数***/ + private int requestid; + private int workflowid; + private int nodeid; + private int desrequestid; + private int isrequest; + private boolean isprint; + private boolean isworkflowhtmldoc; + private String f_weaver_belongto_userid; + private String f_weaver_belongto_usertype; + private String source=""; //添加参数,用于转pdf复用此cmd + + private AttrSignatureUtil attrSignatureUtil; + private String authSignatureInfo; + private String authStr; + private String authSignatureStr; + + private ResourceComInfo ResourceComInfo; + private DepartmentComInfo DepartmentComInfo; + private CustomerInfoComInfo CustomerInfoComInfo; + + private HttpServletRequest request; + + public LoadRequestLogDataCusCmd(HttpServletRequest request, User user, Map params) { + this.request = request; + this.user = user; + this.params = params; + } + public LoadRequestLogDataCusCmd(HttpServletRequest request, User user, Map params, String source) { + this.request = request; + this.user = user; + this.params = params; + this.source =source; + } + + public LoadRequestLogDataCusCmd(User user, Map params, String source) { + this.user = user; + this.params = params; + this.source =source; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + return executeTransfer(); + } + + public Map executeTransfer(){ + requestid = Util.getIntValue(Util.null2String(params.get("requestid"))); + f_weaver_belongto_userid = Util.null2String(params.get("f_weaver_belongto_userid")); + f_weaver_belongto_usertype = Util.null2String(params.get("f_weaver_belongto_usertype")); + attrSignatureUtil = new AttrSignatureUtil(user.getUID(), Util.null2String(params.get(ParamConstant.REQUEST_HEADER_USER_AGENT))); + String _attributesString = Util.null2String(params.get(RequestConstant.SIGNATURE_ATTRIBUTES_STR)); + String _attributesSignature = Util.null2String(params.get(RequestConstant.SIGNATURE_SECRET_KEY)); + Map apidatas = new HashMap(); + if ("".equals(source)){ + attrSignatureUtil.verifySignature(_attributesString, _attributesSignature); + //校验本次请求的requestid是否是当前用户打开的流程 + RequestAuthenticationService authService = new RequestAuthenticationService(); + authService.setUser(user); + if (!authService.verify(request, requestid)) { + new BaseBean().writeLog("被拦截:LoadRequestLogDataCusCmd;requestid:" + requestid); + apidatas.put(Util.null2String(requestid),"被拦截:LoadRequestLogDataCusCmd"); + return apidatas; + } + authStr = authService.getAuthString(); + authSignatureStr= authService.getAuthSignatureString(); + authSignatureInfo = "&authStr=" + authService.getAuthString()+ "&authSignatureStr=" + authService.getAuthSignatureString(); + } else { + authStr = Util.null2String(params.get(RequestAuthenticationConstant.AUTHORITY_STRING)); + authSignatureStr= Util.null2String(params.get(RequestAuthenticationConstant.AUTHORITY_SIGNATURESTRING)); + authSignatureInfo = "&authStr=" + Util.null2String(params.get(RequestAuthenticationConstant.AUTHORITY_STRING)) + "&authSignatureStr=" + Util.null2String(params.get(RequestAuthenticationConstant.AUTHORITY_SIGNATURESTRING)); + } + + workflowid = Util.getIntValue(Util.null2String(params.get("workflowid")), 0); + nodeid = Util.getIntValue(Util.null2String(params.get("nodeid")), 0); + isworkflowhtmldoc = "1".equals(Util.null2String(attrSignatureUtil.getAttribute("isworkflowhtmldoc" + requestid))); + desrequestid = Util.getIntValue(Util.null2String(attrSignatureUtil.getAttribute("desrequestid"))); + isrequest = Util.getIntValue(Util.null2String(attrSignatureUtil.getAttribute("isrequest"))); + isprint = "1".equals(Util.null2String(params.get("isprint"))); + try { + ResourceComInfo = new ResourceComInfo(); + DepartmentComInfo = new DepartmentComInfo(); + CustomerInfoComInfo = new CustomerInfoComInfo(); + apidatas = getRequestLogData(); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("error", "1"); + } + return apidatas; + } + + public Map getRequestLogData() throws Exception { + RecordSet recordSet = new RecordSet(); + WorkflowAllComInfo wfComInfo = new WorkflowAllComInfo(); + boolean isFromWfForm = "1".equals(params.get("isFromWfForm")); + long start = System.currentTimeMillis(); + int userid = user.getUID(); + boolean isdebug = (userid == 8 || userid == 80 || userid == 1215 || userid == 1348 || userid == 3724 || userid == 4548); + if (isdebug) { + System.out.println("requestlog-121-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + start = System.currentTimeMillis(); + Map resultDatas = new HashMap(); + + boolean issplitload = Util.null2String(params.get("loadmethod")).equals("split"); //是否分页加载 + + if (isdebug) { + System.out.println("requestlog-122-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + start = System.currentTimeMillis(); + boolean loadbyuser = Boolean.parseBoolean(Util.null2String(params.get("loadbyuser"))); + String viewLogIds = Util.null2String(params.get("viewLogIds")); + int creatorNodeId = Util.getIntValue(Util.null2String(params.get("creatorNodeId"))); + String isHideInput = Util.null2String(params.get("isHideInput")); + + // 是否流程督办 + int urger = Util.getIntValue(Util.null2String(attrSignatureUtil.getAttribute("urger"))); + // 是否流程干预 + int isintervenor = Util.getIntValue(Util.null2String(attrSignatureUtil.getAttribute("isintervenor"))); + + // 转发引用权限 + int forward = Util.getIntValue(Util.null2String(params.get("forward")), 0); + int submit = Util.getIntValue(Util.null2String(params.get("submit")), 0); + + // 页面是否有表单签章,有的话,取消引用按钮 + String isFormSignature = Util.null2String(params.get("isFormSignature")); + boolean isFromMobile = "1".equals(Util.null2String(params.get("isFromMobile"))); + + String pgflag = Util.null2String(params.get("pgnumber")); + String maxrequestlogid = Util.null2String(params.get("maxrequestlogid")); + int wfsignlddtcnt = Util.getIntValue(Util.null2String(params.get("wfsignlddtcnt")), 0); + String orderbytype = Util.null2String(params.get("orderbytype")); + boolean isOldWf = "true".equals(Util.null2String(params.get("isOldWf"))); + boolean isshowsrc = "1".equals(Util.null2String(wfComInfo.getShowSrc(String.valueOf(workflowid)))); + boolean isOpenCommunication = false; + + recordSet.executeQuery("select orderbytype, isOpenCommunication from workflow_base where id = ?",workflowid); + if(recordSet.next()){ + orderbytype = Util.null2String(recordSet.getString(1)); + isOpenCommunication = recordSet.getInt(2) == 1; + } + if (loadbyuser) { + recordSet.executeSql("SELECT nodeid FROM workflow_currentoperator WHERE requestid=" + requestid + " AND userid=" + user.getUID() + " ORDER BY receivedate desc,receivetime DESC"); + if (recordSet.next()) { + String viewNodeId = recordSet.getString("nodeid"); + recordSet.executeSql("SELECT viewnodeids FROM workflow_flownode WHERE workflowid=" + workflowid + " AND nodeid=" + viewNodeId); + String viewnodeids = "-1"; + if (recordSet.next()) { + viewnodeids = recordSet.getString("viewnodeids"); + } + if ("-1".equals(viewnodeids)) {// 全部查看 + recordSet.executeSql("SELECT nodeid FROM workflow_flownode WHERE workflowid= " + workflowid + " AND EXISTS(SELECT 1 FROM workflow_nodebase WHERE id=workflow_flownode.nodeid AND (requestid IS NULL OR requestid=" + requestid + "))"); + while (recordSet.next()) { + viewLogIds += "," + recordSet.getString("nodeid"); + } + } else if (viewnodeids == null || "".equals(viewnodeids)) {// 全部不能查看 + } else {// 查看部分 + viewLogIds += "," + viewnodeids; + } + } + } + + int pgnumber = Util.getIntValue(pgflag); + String orderby = "desc"; + if ("2".equals(orderbytype)) { + orderby = "asc"; + } + + WFLinkInfo wfLinkInfo = new WFLinkInfo(); + wfLinkInfo.setRequest(request); + wfLinkInfo.setIsprint(isprint); + ArrayList log_loglist = null; + // 获取高级查询的条件 + + String sqlwhere = Util.null2String(params.get("sqlWhere")); + if(!"".equals(sqlwhere)) writeLog("requestid:"+requestid+",userid:"+userid+",sqlwhere:"+sqlwhere); + if ("".equals(source)){ + sqlwhere += wfLinkInfo.getRequestLogSearchConditionStr(); + } + + if (isdebug) { + System.out.println("requestlog-123-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + // 节点签字意见权限控制 + RequestRemarkRight remarkRight = new RequestRemarkRight(); + String sqlcondition = remarkRight.getRightCondition(requestid, workflowid, user.getUID()); + sqlcondition += RequestLogCusBiz.getCustomSourceCondition(source,params);//添加source自定义条件 + sqlwhere += sqlcondition; + + if (isdebug) { + System.out.println("requestlog-124-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + + StringBuffer sbfmaxrequestlogid = new StringBuffer(maxrequestlogid); + //分页加载重新计算当前页最大logid + if (issplitload) { + //sbfmaxrequestlogid = wfLinkInfo.getMaxLogid(requestid, workflowid, viewLogIds, orderby, wfsignlddtcnt, pgnumber, sqlwhere); + } + + if (isdebug) { + System.out.println("requestlog-125-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + if (pgflag == null || pgflag.equals("")) { + log_loglist = wfLinkInfo.getRequestLog(requestid, workflowid, viewLogIds, orderby, sqlcondition); + } else { + //log_loglist = wfLinkInfo.getRequestLog(requestid, workflowid, viewLogIds, orderby, wfsignlddtcnt, sbfmaxrequestlogid, sqlwhere); + boolean isSubrequest = (boolean)params.get("isSubrequest"); + log_loglist = RequestLogCusBiz.getRequestLog(requestid,workflowid,viewLogIds,orderby,wfsignlddtcnt,pgnumber,sqlwhere,isSubrequest); + if(RequestLogCusBiz.isEndLog(requestid,workflowid,viewLogIds,orderby,wfsignlddtcnt,pgnumber,sqlwhere)){///判断此次加载是否是最后一页 + resultDatas.put("isEnd", true); + } + } + + resultDatas.put("maxrequestlogid", sbfmaxrequestlogid.toString()); + + if (isdebug) { + System.out.println("requestlog-126-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + + int tempRequestLogId = 0; + int tempImageFileId = 0; + + int languageidfromrequest = user.getLanguage(); + RecordSet recordSetlog3 = new RecordSet(); + WorkflowRequestComInfo wfrequestcominfo = new WorkflowRequestComInfo(); + DocImageManager DocImageManager = new DocImageManager(); + SecCategoryComInfo SecCategoryComInfo1 = new SecCategoryComInfo(); + RequestLogOperateName RequestLogOperateName = new RequestLogOperateName(); + String initUser = ""; + List> loglistnew = new ArrayList>(); + + //签字意见相关流程 + String signrequestids = ""; + if (isdebug) { + System.out.println("requestlog-127-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + start = System.currentTimeMillis(); + + //二次认证,数据保护的验证 + Map checkMap = SecondAuthBiz.getProtectedLogs(requestid); + Map logIdMap = (HashMap) checkMap.get("logIdMap"); + int checkLogId = Util.getIntValue(Util.null2String(checkMap.get("logId")), -1); + checkMap.remove("logIdMap"); + RequestSecondAuthService requestSecondAuthService = com.engine.common.util.ServiceUtil.getService(RequestSecondAuthServiceImpl.class, user); + //批量获取契约锁认证的信息 + Map qysSignInfoMap = SecondAuthBiz.getMultiQYSSignInfo(requestid); + + DateTransformer dft = new DateTransformer(); + UnifiedConversionInterface uci = new UnifiedConversionInterface(); + QysSignatureCominfo signatureCominfo = new QysSignatureCominfo(); + + int tempnodeid = FreeNodeBiz.getExtendNodeId(requestid,nodeid); + Map operateNameMap = getOperateMenuName(tempnodeid, user.getLanguage()); + String forwardMenuName = operateNameMap.get("forwardName"); + + for (int i = 0; i < log_loglist.size(); i++) { + Hashtable htlog = (Hashtable) log_loglist.get(i); + Map logmap = new HashMap(); + int log_nodeid = Util.getIntValue((String) htlog.get("nodeid"), 0); + int log_destnodeid = Util.getIntValue((String) htlog.get("destnodeid"), 0); + int log_nodeattribute = Util.getIntValue((String) htlog.get("nodeattribute"), 0); + String log_nodename = Util.null2String((String) htlog.get("nodename")); + String log_remark = RequestFormBiz.manageCssPollute(Util.null2String((String) htlog.get("remark"))); + String log_operator = Util.null2String((String) htlog.get("operator")); + String log_operatedate = Util.null2String((String) htlog.get("operatedate")); + String log_operatetime = Util.null2String((String) htlog.get("operatetime")); + String isRobotNode = Util.null2String((String) htlog.get("isRobotNode")); + if(uci.getTimeZoneStatus()) { + //开启多时区 + String[] tempoperatetime = dft.getLocaleDateAndTime(log_operatedate,log_operatetime); + log_operatedate = tempoperatetime[0]; + log_operatetime = tempoperatetime[1]; + } + + String log_logtype = Util.null2String((String) htlog.get("logtype")); + String log_receivedPersons = Util.null2String((String) htlog.get("receivedPersons")); + String log_receivedPersonIds = Util.null2String((String) htlog.get("receivedPersonids")); + tempRequestLogId = Util.getIntValue((String) htlog.get("logid"), 0); + String log_annexdocids = Util.null2String((String) htlog.get("annexdocids")); + String log_signdocids = Util.null2String((String) htlog.get("signdocids")); + String log_signworkflowids = Util.null2String((String) htlog.get("signworkflowids")); + String tmpLogId = Util.null2String(htlog.get("tmpLogId")); + String remarkLocation = Util.null2String(htlog.get("remarkLocation")); + String ismobile = Util.null2String(htlog.get("isMobile")); + + String remarkHtml = Util.null2String((String) htlog.get("remarkHtml")); + SignSource signSource = "t".equals(log_logtype) ? null : SignSource.getSignSource(ismobile); + String mobileSuffix = ""; + if(signSource != null && (isshowsrc || signSource == SignSource.AUTO_APPROVE || signSource == SignSource.AUTO_SUBMIT)) { + remarkHtml += SignSource.getSignSourceHtml(signSource,user.getLanguage()); + //不显示意见来源,处理历史数据 + } else if (!isshowsrc) { + remarkHtml = RequestLogCusBiz.removeRemarkSource(remarkHtml); + }else if(isshowsrc){ + String remarktemp = remarkHtml; + remarkHtml = RequestLogCusBiz.removeRemarkSource(remarktemp); + int index = remarktemp.indexOf("来自微信企业号"); + if (index > 0) { + int index2 = remarktemp.indexOf("", index); + remarkHtml += "
" + remarktemp.substring(index, index2); + } + } + + logmap.put("forwardMenuName", forwardMenuName); + + logmap.put("remarkLocation",remarkLocation); + + String log_remarkHtml = RequestFormBiz.manageCssPollute(remarkHtml); + + String log_iframeId = Util.null2String((String) htlog.get("iframeId")); + + int requestLogId = Util.getIntValue(Util.null2String(htlog.get("id")), 0); + + String log_operatortype = Util.null2String((String) htlog.get("operatortype")); + + //验证数据 + //if (!isprint) { + logmap.put("isProtected", "0"); + logmap.put("checkSuccess", "-1"); + if (requestLogId > 0) { + if (logIdMap.containsKey(String.valueOf(tmpLogId))) { //有契约锁数据保护 + int protectType = Util.getIntValue(Util.null2String(logIdMap.get(tmpLogId)), 0); + logmap.put("isProtected", "1"); + logmap.put("protectType", protectType); + + if (protectType == SecondAuthType.QYS.getId()) { //契约锁数据保护 + //add by fmj 2019-08-27 因为契约锁数据保护,也会先进行契约锁认证,因此此处先取认证时选择的印章, + //String qysSignatureId = SecondAuthBiz.getQYSSignatureId(Util.getIntValue(tmpLogId, 0)); + String qysSignatureId = ""; + Map certDetails = new HashMap(); + if (qysSignInfoMap.containsKey(tmpLogId)) { + Map signInfoMap = (Map) qysSignInfoMap.get(tmpLogId); + if (signInfoMap != null) { + qysSignatureId = Util.null2String(signInfoMap.get("signatureId")); + certDetails = (Map) signInfoMap.get("certDetails"); + } + } + int signatureId = Util.getIntValue(qysSignatureId, 0); + + //没有认证时选择的印章,再取从契约锁同步过来的个人签名 + if (signatureId <= 0) { + qysSignatureId = signatureCominfo.getSignatureid(log_operator); + signatureId = Util.getIntValue(qysSignatureId, 0); + } + if (signatureId > 0) { + String signIdCode = DocDownloadCheckUtil.EncodeFileid(signatureId + "",user); + logmap.put("qys_signature_id", signIdCode); + + //添加印章的尺寸 +// Map certDetails = SecondAuthBiz.getCertDetails(Util.getIntValue(tmpLogId, 0)); + int qyswidth = (int)Util.getDoubleValue(Util.null2String(certDetails.get("qyswidth")),0); + int qysheight = (int)Util.getDoubleValue(Util.null2String(certDetails.get("qysheight")),0); + logmap.put("qyswidth",qyswidth); + logmap.put("qysheight",qysheight); + } + } + + //数据保护默认所有的都是验证通过的,只对最后一条签字意见做特殊处理,需要验证数据有效性 + logmap.put("checkSuccess", 1); + logmap.put("clickCheck", 0); + } else { //没有契约锁数据保护 + //String qysSignatureId = SecondAuthBiz.getQYSSignatureId(Util.getIntValue(tmpLogId, 0)); + String qysSignatureId = ""; + Map certDetails = new HashMap(); + if (qysSignInfoMap.containsKey(tmpLogId)) { + Map signInfoMap = (Map) qysSignInfoMap.get(tmpLogId); + if (signInfoMap != null) { + qysSignatureId = Util.null2String(signInfoMap.get("signatureId")); + certDetails = (Map) signInfoMap.get("certDetails"); + } + } + + int signatureId = Util.getIntValue(qysSignatureId, 0); + if (signatureId > 0) { + String signIdCode = DocDownloadCheckUtil.EncodeFileid(signatureId + "",user); + logmap.put("qys_signature_id", signIdCode); + //添加印章的尺寸 + //Map certDetails = SecondAuthBiz.getCertDetails(Util.getIntValue(tmpLogId, 0)); + int qyswidth = (int)Util.getDoubleValue(Util.null2String(certDetails.get("qyswidth")),0); + int qysheight = (int)Util.getDoubleValue(Util.null2String(certDetails.get("qysheight")),0); + logmap.put("qyswidth",qyswidth); + logmap.put("qysheight",qysheight); + } + } + + if (requestLogId == checkLogId) { //最后一条签字意见,验证数据保护 + Map checkResult = requestSecondAuthService.checkProtectDatas(checkMap); + String checkSuccess = Util.null2String(checkResult.get("success")); + logmap.put("checkSuccess", checkSuccess); + logmap.put("clickCheck", 1); + } + } + // } + + if (pgflag == null || pgflag.equals("")) { + if (log_loglist.size() > 10) { + if (i < 10) { + continue; + } + } + } + + tempImageFileId = 0; + if (tempRequestLogId > 0) { + recordSet.executeSql("select imageFileId from Workflow_FormSignRemark where requestLogId=" + tempRequestLogId); + if (recordSet.next()) { + tempImageFileId = Util.getIntValue(recordSet.getString("imageFileId"), 0); + } + } + logmap.put("logid", Util.null2String((String) htlog.get("id"))); + + //是否有相关交流引用 + if (isOpenCommunication) { + logmap.put("hasCommunicationQuote", WorkflowCommunicationBiz.requestLogQuoteCheck(Util.getIntValue(Util.null2String(logmap.get("logid"))))); + } + + String img_path = "0".equals(log_operatortype) ? ResourceComInfo.getMessagerUrls(log_operator) : "/messager/images/icon_m_wev8.jpg"; + img_path = RobotNodeBiz.operatortype.equals(log_operatortype) ? "/messager/images/robot.png" : img_path; + // 人员头像 + logmap.put("img_path", img_path); + + int showimg = Util.getIntValue(recordSet.getPropValue("WFSignatureImg", "showimg"), 0); + int signnaturImgHeight = Util.getIntValue(recordSet.getPropValue("WFSignatureImg", "imgheight")); + recordSet.execute("select * from DocSignature where hrmresid=" + log_operator + " and sealtype = 1 order by markid"); + String userimg = ""; + // 表单签章 + if (showimg == 1 && recordSet.next() && true && "0".equals(log_operatortype)) { + String markpath = Util.null2String(recordSet.getString("markpath")); + if (!markpath.equals("")) { + OdocFileUtil odocfileutil = new OdocFileUtil(); + String useridrandom = odocfileutil.changeParamToBase64Str(Util.getIntValue(log_operator,-1)+""); + userimg = "/weaver/weaver.file.ImgFileDownload?userid=" + useridrandom+"&sealType=1"; + } + } + logmap.put("userimg", userimg); + logmap.put("signnaturImgHeight", signnaturImgHeight); + + + + + this.loadOperatorInfo(isOldWf, htlog, creatorNodeId, recordSetlog3, logmap); + + // 签字意见内容 + if (!log_logtype.equals("t")) { + // 表单签章 + if (tempRequestLogId > 0 && tempImageFileId > 0) { + log_remarkHtml += ""; + } else { + Pattern pattern0 = Pattern.compile("(\\/workflow\\/request\\/ViewRequest(ForwardSPA)?\\.jsp\\?)"); + Matcher m0 = pattern0.matcher(log_remarkHtml); + if(m0.find()) { + log_remarkHtml = m0.replaceAll("/workflow/request/ViewRequestForwardSPA.jsp?f_weaver_belongto_userid=" + f_weaver_belongto_userid + authSignatureInfo + "&desrequestid=" + requestid + "&"); + } + Pattern pattern1 = Pattern.compile("(\\/docs\\/docs\\/DocDsp.jsp\\?)"); + Matcher m1 = pattern1.matcher(log_remarkHtml); + if (m1.find()) { + log_remarkHtml = m1.replaceAll(ServiceUtil.docViewUrl + "?f_weaver_belongto_userid=" + f_weaver_belongto_userid + authSignatureInfo + "&desrequestid=" + requestid + "&"); + } + // 流程签字意见内容中附件 + if(log_remarkHtml.indexOf("desrequestid=0")>-1) + log_remarkHtml = log_remarkHtml.replace("desrequestid=0", "desrequestid=" + desrequestid); + if(log_remarkHtml.indexOf("requestid=-1")>-1) + log_remarkHtml = log_remarkHtml.replace("requestid=-1", "requestid=" + requestid); + +// if (log_remarkHtml.indexOf(" -1 && !isFromMobile) { +// String begin_logRemark = ""; +// String new_logRemark = ""; +// String end_logRemark = ""; +// String cycleString = log_remarkHtml; +// int f = 0; +// while (cycleString.indexOf(" -1) { +// f++; +// int b = cycleString.indexOf(""); +// imgString = cycleString.substring(0, e); +// if (isworkflowhtmldoc) { +// new_logRemark += "" + imgString + " onload=\"image_resize(this,'" + log_iframeId + "');\" onresize=\"image_resize(this,'" + log_iframeId + "');\" /> "; +// } else { +// new_logRemark += "
" + imgString + " style=\"max-width:100%;\" class=\"maxImg\" />
"; +// } +// cycleString = cycleString.substring(e + 2); +// end_logRemark = cycleString; +// } +// new_logRemark += end_logRemark; +// log_remarkHtml = new_logRemark; +// } + + if(!isprint && isFromWfForm) + log_remarkHtml= RequestFormBiz.manageImgLazyLoad(log_remarkHtml); //图片懒加载处理 + + if (isprint && log_remark.indexOf(" -1) { // 打印使用的是log_remark,也需要处理img + // ///////// + String begin_logRemark = ""; + String new_logRemark = ""; + String end_logRemark = ""; + String cycleString = log_remark; + int f = 0; + while (cycleString.indexOf(" -1) { + f++; + int b = cycleString.indexOf(""); + imgString = cycleString.substring(0, e); + new_logRemark += "
" + imgString + " onload=\"image_resize(this,'" + log_iframeId + "');\" onresize=\"image_resize(this,'" + log_iframeId + "');\" />
" + imgString + + " class=\"maxImg\" />
"; + cycleString = cycleString.substring(e + 2); + end_logRemark = cycleString; + } + new_logRemark += end_logRemark; + log_remark = new_logRemark; + } + + String tempremark = log_remark; + tempremark = Util.StringReplace(tempremark, "<br>", "
"); + if (!"".equals(tempremark) && isprint) { + tempremark += "
"; + } + logmap.put("tempremark", tempremark); + logmap.put("pgflag", Util.null2String(pgflag)); + + } + } + try { + String appendData = log_remarkHtml; + if(appendData.indexOf("handwritten_xzl")>-1){ + int start1 = appendData.indexOf("handwritten_xzl")+21; + String tempStr = appendData.substring(start1); + int end = tempStr.indexOf("src")-2; + String fileId= tempStr.substring(0,end); + + String new_img=""; + String attachmentidAes = DocDownloadCheckUtil.checkPermission(String.valueOf(fileId), null); + new_img += "
"; + + String begin_logRemark = ""; + String new_logRemark = ""; + String end_logRemark = ""; + String cycleString = appendData; + if (cycleString.indexOf(" -1) { + int b = cycleString.indexOf(""); + new_logRemark += new_img; + cycleString = cycleString.substring(e + 2); + end_logRemark = cycleString; + } + new_logRemark += end_logRemark; + log_remarkHtml = new_logRemark; + } + }catch(Exception e){ + e.printStackTrace(); + } + logmap.put("log_remarkHtml", ServiceUtil.convertChar(log_remarkHtml)); + + if(isrequest==-1){ + isrequest = Util.getIntValue(Util.null2String(params.get("isrequest")))==-1?1:Util.getIntValue(Util.null2String(params.get("isrequest"))); + } + + // 相关文件 + if (!log_annexdocids.equals("") || !log_signdocids.equals("") || !log_signworkflowids.equals("")) { + // 相关文档 + if (!log_signdocids.equals("")) { + recordSetlog3.executeSql("select id,docsubject,accessorycount,SecCategory from docdetail where id in(" + log_signdocids + ") order by id asc"); + List> signdocs = new ArrayList>(); + while (recordSetlog3.next()) { + Map map = new HashMap(); + String showid = Util.null2String(recordSetlog3.getString(1)); + String tempshowname = Util.toScreen(recordSetlog3.getString(2), languageidfromrequest); + + map.put("showid", showid); + map.put("authStr", authStr); + map.put("authSignatureStr", authSignatureStr); + map.put("tempshowname", tempshowname); + map.put("filelink", ServiceUtil.docViewUrl + "?f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=" + f_weaver_belongto_usertype + "&id=" + showid + "&isrequest="+isrequest+"&requestid=" + requestid + authSignatureInfo); + + signdocs.add(map); + } + + logmap.put("signdocs", signdocs); + } + + int tempnum = Util.getIntValue(String.valueOf(attrSignatureUtil.getAttribute("slinkwfnum"))); +// if(tempnum <= 0){ +// tempnum = Util.getIntValue(String.valueOf(session.getAttribute("slinkwfnum"))); +// } + // 相关流程 + if (!log_signworkflowids.equals("")) { + List> signwfs = new ArrayList>(); + ArrayList tempwflists = Util.TokenizerString(log_signworkflowids, ","); + for (int k = 0; k < tempwflists.size(); k++) { + tempnum++; + //session.setAttribute("resrequestid" + tempnum, "" + tempwflists.get(k)); + Map map = new HashMap(); + map.put("isrequest", "1"); + map.put("requestid", tempwflists.get(k)); + //map.put("wflinkno", tempnum + ""); + map.put("desrequestid", requestid); + map.put("authSignatureInfo",authSignatureInfo); + map.put("authStr",authStr); + map.put("authSignatureStr",authSignatureStr); + map.put("f_weaver_belongto_userid", f_weaver_belongto_userid); + map.put("f_weaver_belongto_usertype", f_weaver_belongto_usertype); + map.put("title", wfrequestcominfo.getRequestName((String) tempwflists.get(k))); + signwfs.add(map); + signrequestids += tempwflists.get(k) + ","; + } + + logmap.put("signwfs", signwfs); + } + + //session.setAttribute("slinkwfnum", "" + tempnum); + //session.setAttribute("haslinkworkflow", "1"); + attrSignatureUtil.setAttribute("haslinkworkflow", "1"); + + // 相关附件 + if (!log_annexdocids.equals("")) { + recordSetlog3.executeSql("select id,docsubject,accessorycount,SecCategory from docdetail where id in(" + log_annexdocids + ") order by id asc"); + List> annexdocs = new ArrayList>(); + while (recordSetlog3.next()) { + + String showid = Util.null2String(recordSetlog3.getString(1)); + String tempshowname = Util.toScreen(recordSetlog3.getString(2), languageidfromrequest); + int accessoryCount = recordSetlog3.getInt(3); + String SecCategory = Util.null2String(recordSetlog3.getString(4)); + DocImageManager.resetParameter(); + DocImageManager.setDocid(Util.getIntValue(showid)); + DocImageManager.selectDocImageInfo(); + + String docImagefilename = ""; + String fileExtendName = ""; + String docImagefileid = ""; + int versionId = 0; + long docImagefileSize = 0; + if (DocImageManager.next()) { + // DocImageManager会得到doc第一个附件的最新版本 + + docImagefilename = DocImageManager.getImagefilename(); + fileExtendName = docImagefilename.substring(docImagefilename.lastIndexOf(".") + 1).toLowerCase(); + docImagefileid = DocImageManager.getImagefileid(); + docImagefileSize = DocImageManager.getImageFileSize(Util.getIntValue(docImagefileid)); + versionId = DocImageManager.getVersionId(); + } + if (accessoryCount > 1) { + fileExtendName = "htm"; + } + //String imgSrc = AttachFileUtil.getImgStrbyExtendName(fileExtendName, 16); + boolean nodownload = SecCategoryComInfo1.getNoDownload(SecCategory).equals("1") ? true : false; + String filelink = ""; + + //打开文档判断是否在线预览,文档处已经做了全部的处理。所以这边直接走else逻辑 + if (false && accessoryCount == 1 && (fileExtendName.equalsIgnoreCase("xls") || fileExtendName.equalsIgnoreCase("doc") || fileExtendName.equalsIgnoreCase("xlsx") || fileExtendName.equalsIgnoreCase("docx") || fileExtendName.equalsIgnoreCase("pdf"))) { + filelink = ServiceUtil.docViewUrl + "?f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=" + f_weaver_belongto_usertype + "&id=" + showid + "&imagefileId=" + docImagefileid + "&isFromAccessory=true&isrequest="+isrequest+"&requestid=" + requestid + "&desrequestid=" + desrequestid + authSignatureInfo; + } else { + filelink = ServiceUtil.docViewUrl + "?f_weaver_belongto_userid=" + user.getUID() + "&f_weaver_belongto_usertype=" + f_weaver_belongto_usertype + "&id=" + showid + "&isrequest="+isrequest+"&requestid=" + requestid + "&desrequestid=" + desrequestid + authSignatureInfo; + } + String downloadlink = ""; + if (accessoryCount == 1 && !isprint && ((!fileExtendName.equalsIgnoreCase("xls") && !fileExtendName.equalsIgnoreCase("doc")) || !nodownload)) { + downloadlink = weaver.general.GCONST.getContextPath()+"/weaver/weaver.file.FileDownload?fileid=" + docImagefileid + "&download=1&requestid=" + requestid + "&desrequestid=" + desrequestid + authSignatureInfo; + } + Map map = new HashMap(); + map.put("showid", showid); //附件ID + map.put("docImagefilename", docImagefilename); //附件名称 + map.put("fileExtendName", fileExtendName); //附件后缀名 + map.put("docImagefileid", docImagefileid); + map.put("versionId", versionId); + map.put("docImagefileSize", docImagefileSize); + map.put("nodownload", nodownload); + map.put("tempshowname", tempshowname); + map.put("filelink", filelink); + map.put("downloadlink", downloadlink); + map.put("authStr",authStr); + map.put("authSignatureStr",authSignatureStr); + boolean docright = true; + if("1".equals(new WorkflowConfigComInfo().getValue("file_download_use_docright"))){ + DocViewPermission docViewPermission = new DocViewPermission(); + docright = docViewPermission.getShareLevel(Util.getIntValue(showid), user, false).get(DocViewPermission.DOWNLOAD); + new BaseBean().writeLog("流程附件下载权限走知识组权限:docright:"+docright+";showid:"+showid); + } + map.put("showdownload", docright && (!Strings.isNullOrEmpty(downloadlink)) ); + annexdocs.add(map); + } + //需要按照存放顺序显示,存放顺序即log_annexdocids的顺序 + String [] idssort = log_annexdocids.split(","); + List> annexdocssort = new ArrayList>(); + for(String sort: idssort) { + for(int si = 0;si 0 && log_receivedPersons.trim().endsWith(",")) { + log_receivedPersons = log_receivedPersons.substring(0, log_receivedPersons.length() - 1); + } + + initUsers = log_receivedPersons.split(","); + initUser = ""; + if (initUsers.length > showCount) { + for (int j = 0; j < showCount; j++) { + initUser += "," + initUsers[j]; + } + if (initUser.length() > 1) { + initUser = initUser.substring(1); + } + } else { + initUser = log_receivedPersons; + } + + loadMobileInfo(htlog,logmap); + // 如果是打印页面,则不隐藏接收人 + + logmap.put("receiveUser", ServiceUtil.convertChar(initUser)); + logmap.put("receiveUserCount", Util.splitString2List(log_receivedPersonIds,",").size()); + + //判断是否需要显示意见接收人栏的加载更多按钮 + boolean showMoreReceiveBtn = log_receivedPersonIds.split(",").length > log_receivedPersons.split(",").length ? true : false; + logmap.put("showMoreReceiveBtn", showMoreReceiveBtn); + + // 操作时间 + logmap.put("log_operatedate", Util.toScreen(log_operatedate, languageidfromrequest)); + logmap.put("log_operatetime", Util.toScreen(log_operatetime, languageidfromrequest)); + + + // 节点信息 + logmap.put("log_nodename", Util.toScreen(log_nodename, languageidfromrequest)); + String logtype = log_logtype; + String operationname = ""; + if("1".equals(isRobotNode)){ + operationname = Util.formatMultiLang(new RobotNodeServiceBiz().getRobotNodeSet(Util.getIntValue(log_nodeid)).getOperateTypeName(), languageidfromrequest + ""); + } + if("".equals(operationname)){ + operationname = RequestLogOperateName.getOperateName("" + workflowid, "" + requestid, "" + log_nodeid, logtype, log_operator, languageidfromrequest,log_operatedate,log_operatetime); + } + + logmap.put("operationname", operationname); + + // 引用按钮 + boolean isReference = (!isHideInput.equals("1") && ((isintervenor == 1 || urger == 1 || submit == 1) && !isFormSignature.equals("1")) && !log_logtype.equals("t") && (log_remarkHtml != null && !"".equals(log_remarkHtml.trim()))); + + logmap.put("isReference", isReference); + + logmap.put("displaytype", log_operatortype); + + // 转发 + logmap.put("forward", forward); + logmap.put("logtype",log_logtype); + + loglistnew.add(logmap); + } + if (isdebug) { + System.out.println("requestlog-128-requestid-" + requestid + "-userid-" + userid + "-" + (System.currentTimeMillis() - start)); + start = System.currentTimeMillis(); + } + resultDatas.put("totalCount", RequestLogCusBiz.getRequestLogTotalCount(requestid, workflowid, viewLogIds, sqlwhere)); + + //相关请求增加session信息 + //ServiceUtil.addRelatedWfSession(request, this.requestid, signrequestids); + + resultDatas.put("loglist", loglistnew); + return resultDatas; + } + + //支持手机端 + private void loadMobileInfo(Hashtable htlog,Map logmap){ + //设置手写签批 + String attenchmentID = Util.null2String(htlog.get("handwrittensignid")); + new BaseBean().writeLog("handwrittensignid123:"+attenchmentID); + List docAttachments = new ArrayList<>(); + String[] attenchmentids = attenchmentID.split(","); + if(!"".equals(attenchmentID)) { + for (int i = 0; i < attenchmentids.length; i++) { + int attenchmentid = Util.getIntValue(attenchmentids[i]); + if (attenchmentid > 0) { + String strData = WorkflowSpeechAppend.getAppend(attenchmentid); + logmap.put("handWrittenSign", "data:image/png;base64," + strData); + //获取手写签章详细信息 + DocAttachment docAttObj = WorkflowSpeechAppend.getAttachment(attenchmentid); + docAttachments.add(docAttObj); + } + } + } + logmap.put("handWrittenSignDoc", docAttachments); + //设置语音附件 + int attenchmentID1 = Util.getIntValue(Util.null2String(htlog.get("speechattachmentid"))); + String speechAttachmente9 = Util.null2String(htlog.get("speechAttachmente9")); + if(attenchmentID1 > 0){ + if(!"".equals(speechAttachmente9)) { + speechAttachmente9 += "," + attenchmentID1; + } else { + speechAttachmente9 = attenchmentID1 + ""; + } + } + List speechAttachmetnDatas = new ArrayList <>(); + if(!"".equals(speechAttachmente9)) { + String[] speechIds = Util.splitString(speechAttachmente9,","); + for(String speechid : speechIds) { + int _speechid = Util.getIntValue(speechid); + if(_speechid > 0) { + DocAttachment attenchmentDoc = WorkflowSpeechAppend.getAttachment(_speechid); + String fileType = attenchmentDoc.getFiletype(); + if(fileType.indexOf("/") >=0){ + fileType = fileType.substring(fileType.indexOf("/") + 1); + } + speechAttachmetnDatas.add("data:audio/" + fileType + ";base64," + WorkflowSpeechAppend.getAppend(_speechid)); + } + } + } + logmap.put("speechAttachmetnDatas",speechAttachmetnDatas); + + //电子签章 + String remark = Util.null2String(logmap.get("log_remarkHtml")); + String eletriSignature = WorkflowSpeechAppend.getElectrSignatrue(remark); + if (eletriSignature != null && !"".equals(eletriSignature)){ + Pattern pattern = Pattern.compile("/weaver/weaver\\.file\\.SignatureDownLoad\\?markId=\\d+"); + Matcher matcher = pattern.matcher(eletriSignature); + if(matcher.find()){ + String tempurl = matcher.group(); + logmap.put("eletriSignature", tempurl); + }else{ + writeLog(String.format("The eletriSignature URL of '%1$s' is null.", eletriSignature)); + } + } + } + + /** + * 加载节点操作者信息 + * + * @param isOldWf + * @param htlog + * @param creatorNodeId + * @param recordSetlog3 + */ + private void loadOperatorInfo(boolean isOldWf, Hashtable htlog, int creatorNodeId, RecordSet recordSetlog3, Map logmap) { + int languageidfromrequest = user.getLanguage(); + + boolean isexsAgent = false; + boolean isinneruser = true; + String displayid = ""; + String displayname = ""; + String displaydepid = ""; + String displaydepname = ""; + String displaybyagentid = ""; + String displaybyagentname = ""; + + String log_operatortype = Util.null2String((String) htlog.get("operatortype")); + String log_operatorDept = Util.null2String((String) htlog.get("operatorDept")); + String log_operator = Util.null2String((String) htlog.get("operator")); + String log_agenttype = Util.null2String((String) htlog.get("agenttype")); + String log_agentorbyagentid = Util.null2String((String) htlog.get("agentorbyagentid")); + int log_nodeid = Util.getIntValue((String) htlog.get("nodeid"), 0); + if (log_operatortype.equals("0") && !"0".equals(Util.null2String(log_operatorDept)) && !"".equals(Util.null2String(log_operatorDept))) { + displaydepid = Util.toScreen(log_operatorDept, languageidfromrequest); + OrganizationShowSetBiz orgShowBiz = new OrganizationShowSetBiz(); + displaydepname = Util.toScreen(orgShowBiz.getDepartmentShow("workflow", log_operatorDept), languageidfromrequest); + } + + String robotNodeName = new RobotNodeServiceBiz().getRobotNodeSet(log_nodeid).getOperatorName(); + if (isOldWf) { + if (log_operatortype.equals("0")) { + if (isprint == false) { + displayid = log_operator; + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } else { + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } + } else if (log_operatortype.equals("1")) { + isinneruser = false; + if (isprint == false) { + displayid = log_operator; + displayname = Util.toScreen(CustomerInfoComInfo.getCustomerInfoname(log_operator), languageidfromrequest); + } else { + displayname = Util.toScreen(CustomerInfoComInfo.getCustomerInfoname(log_operator), languageidfromrequest); + } + } else if (log_operatortype.equals(RobotNodeBiz.operatortype)){ + if (isprint == false) { + displayid = log_operator; + displayname = Util.toScreen(robotNodeName, languageidfromrequest); + } else { + displayname = Util.toScreen(robotNodeName, languageidfromrequest); + } + }else { + displayname = SystemEnv.getHtmlLabelName(468, languageidfromrequest); + } + } else { + if (log_operatortype.equals("0")) { + if (isprint == false) { + if (!log_agenttype.equals("2")) { + displayid = log_operator; + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } else if (log_agenttype.equals("2") || log_agenttype.equals("1")) { + isexsAgent = true; + displaybyagentid = log_agentorbyagentid; + displaybyagentname = Util.toScreen(ResourceComInfo.getLastname(log_agentorbyagentid), languageidfromrequest); + displayid = log_operator; + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } else { + } + } else { + if (!log_agenttype.equals("2")) { + displayid = log_operator; + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } else if (log_agenttype.equals("2")) { + isexsAgent = true; + displayid = log_operator; + displaybyagentname = Util.toScreen(ResourceComInfo.getLastname(log_agentorbyagentid), languageidfromrequest); + displayname = Util.toScreen(ResourceComInfo.getLastname(log_operator), languageidfromrequest); + } else { + } + } + } else if (log_operatortype.equals("1")) { + isinneruser = false; + if (isprint == false) { + displayid = log_operator; + displayname = Util.toScreen(CustomerInfoComInfo.getCustomerInfoname(log_operator), languageidfromrequest); + } else { + displayname = Util.toScreen(CustomerInfoComInfo.getCustomerInfoname(log_operator), languageidfromrequest); + } + } else if (log_operatortype.equals(RobotNodeBiz.operatortype)){ + if (isprint == false) { + displayid = log_operator; + displayname = Util.toScreen(robotNodeName, languageidfromrequest); + } else { + displayname = Util.toScreen(robotNodeName, languageidfromrequest); + } + } else { + displayname = SystemEnv.getHtmlLabelName(468, languageidfromrequest); + } + } + + // 节点操作者有代理 显示的格式为 bagenter->agenter + logmap.put("isexsAgent", isexsAgent); + logmap.put("log_agentorbyagentid", log_agentorbyagentid); + logmap.put("displaybyagentname", displaybyagentname); + + // 节点操作者 + logmap.put("isinneruser", isinneruser); + logmap.put("displayid", displayid); + logmap.put("displayname", displayname); + + // 操作者部门 + logmap.put("displaydepid", displaydepid); + logmap.put("displaydepname", displaydepname); + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public Map getOperateMenuName(int tempnodeid, int language){ + Map operateNmae = new HashMap<>(); + + RightMenu rightMenu = new RightMenu(); + rightMenu.setSystemMenuType(SystemMenuType.FORWARD); + rightMenu.setSystemSmallType(2); + String forwardName = MenuOrderSetUtil.getLogName(Util.getIntValue(workflowid),tempnodeid,language,rightMenu); + operateNmae.put("forwardName",forwardName); + return operateNmae; + } + + public static void main(String[] args){ + String value = "2020-10-11 11:22:0.00"; + value = value.substring(0,10); + System.out.println("value2222:"+value); + } +} diff --git a/com/engine/custom/yunxuetang/Test.java b/com/engine/custom/yunxuetang/Test.java index 1eb367b..58396f7 100644 --- a/com/engine/custom/yunxuetang/Test.java +++ b/com/engine/custom/yunxuetang/Test.java @@ -258,6 +258,8 @@ public class Test { if (matcher.find()) { return matcher.group(1); // 返回匹配的第一个分组,即中文内容 } + + //birthdayReminders return input; } } diff --git a/com/engine/tjbankSocket/SocketExecute.java b/com/engine/tjbankSocket/SocketExecute.java index a589217..a76bf6c 100644 --- a/com/engine/tjbankSocket/SocketExecute.java +++ b/com/engine/tjbankSocket/SocketExecute.java @@ -1,5 +1,7 @@ package com.engine.tjbankSocket; +import java.util.Map; + public interface SocketExecute { - public String execute(String param); + public String execute(Map param); } diff --git a/com/engine/tjbankSocket/impl/CWGLSocketExecute.java b/com/engine/tjbankSocket/impl/CWGLSocketExecute.java index aed7667..130ae3a 100644 --- a/com/engine/tjbankSocket/impl/CWGLSocketExecute.java +++ b/com/engine/tjbankSocket/impl/CWGLSocketExecute.java @@ -20,8 +20,8 @@ import java.util.*; */ public class CWGLSocketExecute extends BaseBean implements SocketExecute { @Override - public String execute(String param) { - Map paramMap = XMLUtils.parseXMLToMap(param); + public String execute(Map param) { + Map paramMap = param; writeLog("paramMap==="+paramMap); String oaTrvlBnsExpnsAcctNo = Util.null2String(paramMap.get("oaTrvlBnsExpnsAcctNo")); String apprvrNo = Util.null2String(paramMap.get("apprvrNo")); diff --git a/com/engine/tjbankSocket/impl/GetToCountSocketExecute.java b/com/engine/tjbankSocket/impl/GetToCountSocketExecute.java index 06f18c5..065d5a8 100644 --- a/com/engine/tjbankSocket/impl/GetToCountSocketExecute.java +++ b/com/engine/tjbankSocket/impl/GetToCountSocketExecute.java @@ -3,10 +3,12 @@ package com.engine.tjbankSocket.impl; import com.engine.tjbankSocket.SocketExecute; import com.engine.web.tjbk.TJBKWorkFlow; +import java.util.Map; + public class GetToCountSocketExecute implements SocketExecute { TJBKWorkFlow tjbkWorkFlow = new TJBKWorkFlow(); @Override - public String execute(String param) { - return tjbkWorkFlow.getToDoCount(param.toString()); + public String execute(Map param) { + return tjbkWorkFlow.getToDoCount(param); } } diff --git a/com/engine/util/SocketClientUtil.java b/com/engine/util/SocketClientUtil.java new file mode 100644 index 0000000..ad2a0ba --- /dev/null +++ b/com/engine/util/SocketClientUtil.java @@ -0,0 +1,116 @@ +package com.engine.util; + +import weaver.general.BaseBean; +import weaver.general.StringUtil; + +import java.io.*; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +//发送SocketUtil +public class SocketClientUtil { + private int port = 8090; + private String host = "14.1.209.146"; + // private BaseBean bs = new BaseBean(); + + + public SocketClientUtil(String host ,int port) { + this.port = port; + this.host = host; + } + + public String send(String request) throws Exception { + // bs.writeLog("Client Start..."); + Socket socket = null; + try { + //创建一个流套接字并将其连接到指定主机上的指定端口号 + socket = new Socket(host,port); + // String str = "000006121010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币"; + // System.out.println(str); + //读取服务器端数据 + BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); + //向服务器端发送数据 + // PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8)); + PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true); + out.println(request); + char[] datalen=new char[8];//报文前八位为报文体总长度 + input.read(datalen,0,8); + String lendata=new String (datalen); + System.out.println(lendata); + int length=Integer.parseInt(lendata); + // new BaseBean().writeLog("报文长度"+length); + char[] data=new char[length]; + int datalength = input.read(data,0,length); + String requestData = new String(data); + // new BaseBean().writeLog("requestData",requestData); + // String ret = input.readLine(); + System.out.println("服务器端返回过来的是: " + requestData); + // bs.writeLog("服务器端返回过来的是: " + requestData); + // 如接收到 "OK" 则断开连接 + if (!StringUtil.isEmpty(requestData)) { + // bs.writeLog("客户端将关闭连接"); + // System.out.println("客户端将关闭连接: " + requestData); + Thread.sleep(500); + } + out.close(); + input.close(); + return requestData; + } catch (Exception e) { + System.out.println("客户端异常:" + e.getMessage()); + throw e; + } finally { + if (socket != null) { + try { + socket.close(); + } catch (IOException e) { + socket = null; + // bs.writeLog("客户端 finally 异常:" + e.getMessage()); + } + } + } + // return "-1"; + } + + static class UpdateLogThread extends Thread { + @Override + public void run() { + try { + Thread.sleep(3000); + System.out.println("33333333"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + } + + } + + public static void main(String[] args) throws Exception { + for (int i = 0; i < 5000; i++) { + new Thread(){ + @Override + public void run(){ + SocketClientUtil socket = new SocketClientUtil("14.1.209.146", 8090); + try { + socket.send("000005971010157060000065445025801570102311000120240315092648true500130004120157202403150600000654450todogetCount2userNum10110047"); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } + + + + } + + + public static String cece(){ + System.out.println("1111"); + UpdateLogThread updateLogThread = new UpdateLogThread(); + updateLogThread.start(); + return "222"; + } + + +} diff --git a/com/engine/util/XMLUtils.java b/com/engine/util/XMLUtils.java new file mode 100644 index 0000000..d75bb61 --- /dev/null +++ b/com/engine/util/XMLUtils.java @@ -0,0 +1,379 @@ +package com.engine.util; + +import com.alibaba.druid.util.StringUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; + +import org.xml.sax.Attributes; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; +import weaver.general.BaseBean; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +public class XMLUtils { + //构建返回值 + public static String count2XML(Map headerParam,Integer todocount , Integer toreadcount ) { + try { + // 创建文档对象 + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + Document doc = docBuilder.newDocument(); + +// 创建根节点 + Element rootElement = doc.createElement("Service"); + doc.appendChild(rootElement); + + addServiceHeader(doc,rootElement,headerParam); + + // 创建Service_Body节点 + Element serviceBodyElement = doc.createElement("Service_Body"); + rootElement.appendChild(serviceBodyElement); + + // 创建response节点 + Element responseElement = doc.createElement("response"); + serviceBodyElement.appendChild(responseElement); + + // 创建todo节点 + Element todoElement = doc.createElement("todo"); + responseElement.appendChild(todoElement); + + // 创建count节点并设置值 + if(todocount != null) { + Element countElement = doc.createElement("count"); + countElement.setTextContent(todocount + ""); + todoElement.appendChild(countElement); + } + if(toreadcount != null){ + Element countOneElement = doc.createElement("countOne"); + countOneElement.setTextContent(toreadcount+""); + todoElement.appendChild(countOneElement); + } + + + // 将文档对象转换为XML字符串 + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); // 设置不包含XML声明 + DOMSource source = new DOMSource(doc); + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(outputStream); + + transformer.transform(source, result); + + // 将XML结果转换为字符串 + String xmlString = outputStream.toString("UTF-8"); + //System.out.println(xmlString); + return xmlString; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + private static void addServiceHeader(Document doc, Element rootElement, Map headerParam) { + + // 创建Service_Body节点 + Element serviceHeaderElement = doc.createElement("Service_Header"); + rootElement.appendChild(serviceHeaderElement); + //service_sn ESB服务流水号 + if (!StringUtils.isEmpty(headerParam.get("service_sn"))){ + Element serviceSnElement = doc.createElement("service_sn"); + serviceSnElement.setTextContent(headerParam.get("service_sn")); + serviceHeaderElement.appendChild(serviceSnElement); + } + if (!StringUtils.isEmpty(headerParam.get("service_id"))){ + Element serviceIdElement = doc.createElement("service_id"); + serviceIdElement.setTextContent(headerParam.get("service_id")); + serviceHeaderElement.appendChild(serviceIdElement); + } + if (!StringUtils.isEmpty(headerParam.get("system_id"))){ + Element systemIdElement = doc.createElement("system_id"); + systemIdElement.setTextContent(headerParam.get("system_id")); + serviceHeaderElement.appendChild(systemIdElement); + } + if (!StringUtils.isEmpty(headerParam.get("requester_id"))){ + Element requesterIdElement = doc.createElement("requester_id"); + requesterIdElement.setTextContent(headerParam.get("requester_id")); + serviceHeaderElement.appendChild(requesterIdElement); + } + if (!StringUtils.isEmpty(headerParam.get("branch_id"))){ + Element branchIdElement = doc.createElement("branch_id"); + branchIdElement.setTextContent(headerParam.get("branch_id")); + serviceHeaderElement.appendChild(branchIdElement); + } + if (!StringUtils.isEmpty(headerParam.get("channel_id"))){ + Element channelIdElement = doc.createElement("channel_id"); + channelIdElement.setTextContent(headerParam.get("channel_id")); + serviceHeaderElement.appendChild(channelIdElement); + } + if (!StringUtils.isEmpty(headerParam.get("service_time"))){ + Element serviceTimeElement = doc.createElement("requester_id"); + serviceTimeElement.setTextContent(headerParam.get("service_time")); + serviceHeaderElement.appendChild(serviceTimeElement); + } + if (!StringUtils.isEmpty(headerParam.get("BnkSrlNo"))){ + Element BnkSrlNoElement = doc.createElement("BnkSrlNo"); + BnkSrlNoElement.setTextContent(headerParam.get("BnkSrlNo")); + serviceHeaderElement.appendChild(BnkSrlNoElement); + } +// if (!StringUtils.isEmpty(headerParam.get("FileFlg"))){ + Element FileFlgElement = doc.createElement("FileFlg"); + FileFlgElement.setTextContent("0"); + serviceHeaderElement.appendChild(FileFlgElement); +// } + if (!StringUtils.isEmpty(headerParam.get("SvcCd"))){ + Element SvcCdElement = doc.createElement("SvcCd"); + SvcCdElement.setTextContent(headerParam.get("SvcCd")); + serviceHeaderElement.appendChild(SvcCdElement); + } + if (!StringUtils.isEmpty(headerParam.get("SvcScn"))){ + Element SvcScnElement = doc.createElement("SvcScn"); + SvcScnElement.setTextContent(headerParam.get("SvcScn")); + serviceHeaderElement.appendChild(SvcScnElement); + } +// 响应码 + Element service_responseElement = doc.createElement("service_response"); + serviceHeaderElement.appendChild(service_responseElement); + if (!StringUtils.isEmpty(headerParam.get("status"))){ + Element statusElement = doc.createElement("status"); + statusElement.setTextContent(headerParam.get("status")); + service_responseElement.appendChild(statusElement); + } + if (!StringUtils.isEmpty(headerParam.get("code"))){ + Element codeElement = doc.createElement("code"); + codeElement.setTextContent(headerParam.get("code")); + service_responseElement.appendChild(codeElement); + } + if (!StringUtils.isEmpty(headerParam.get("desc"))){ + Element descElement = doc.createElement("desc"); + descElement.setTextContent(headerParam.get("desc")); + service_responseElement.appendChild(descElement); + } + + } + + + public static Map parseXMLToMap2(String xmlString) { + Map resultMap = new HashMap<>(); + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.parse(new ByteArrayInputStream(xmlString.getBytes())); + + Element rootElement = document.getDocumentElement(); + extractValues(rootElement, resultMap); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + private static void extractValues(Element element, Map resultMap) { + NodeList childNodes = element.getChildNodes(); + for (int i = 0; i < childNodes.getLength(); i++) { + if (childNodes.item(i) instanceof Element) { + Element childElement = (Element) childNodes.item(i); + String nodeName = childElement.getNodeName(); + String nodeValue = childElement.getTextContent(); + resultMap.put(nodeName, nodeValue); + extractValues(childElement, resultMap); + } + } + } + public static String CW2XML(Map headerParam, String retCd, String errorMessage) { + try { + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + Document doc = docBuilder.newDocument(); + Element rootElement = doc.createElement("Service"); + doc.appendChild(rootElement); + addServiceHeader(doc, rootElement, headerParam); + Element serviceBodyElement = doc.createElement("Service_Body"); + rootElement.appendChild(serviceBodyElement); + Element responseElement = doc.createElement("response"); + serviceBodyElement.appendChild(responseElement); + Element countOneElement; + if (retCd != null) { + countOneElement = doc.createElement("retCd"); + countOneElement.setTextContent(retCd + ""); + responseElement.appendChild(countOneElement); + } + + if (errorMessage != null) { + countOneElement = doc.createElement("errorMessage"); + countOneElement.setTextContent(errorMessage + ""); + responseElement.appendChild(countOneElement); + } + + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty("omit-xml-declaration", "no"); + DOMSource source = new DOMSource(doc); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(outputStream); + transformer.transform(source, result); + String xmlString = outputStream.toString("UTF-8"); + String length = String.format("%08d", xmlString.length()); + return length + xmlString; + } catch (Exception var16) { + var16.printStackTrace(); + return ""; + } + } + + + // public static Map parseXMLToMap(String xmlString) { + // Map resultMap = new HashMap<>(); + // try { + // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + // DocumentBuilder builder = factory.newDocumentBuilder(); + // Document document = builder.parse(new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8))); + // + // Element rootElement = document.getDocumentElement(); + // // 直接从根元素开始处理 + // NodeList children = rootElement.getChildNodes(); + // for (int i = 0; i < children.getLength(); i++) { + // if (children.item(i).getNodeType() == Node.ELEMENT_NODE) { + // Element child = (Element) children.item(i); + // extractValues(child, resultMap); + // } + // } + // } catch (Exception e) { + // e.printStackTrace(); + // } + // return resultMap; + // } + // + // private static void extractValues(Element element, Map resultMap) { + // // 检查是否有子元素 + // boolean hasChildElement = false; + // NodeList childNodes = element.getChildNodes(); + // for (int i = 0; i < childNodes.getLength(); i++) { + // if (childNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + // hasChildElement = true; + // break; + // } + // } + // + // // 如果有子元素,只处理子元素 + // if (hasChildElement) { + // for (int i = 0; i < childNodes.getLength(); i++) { + // Node node = childNodes.item(i); + // if (node.getNodeType() == Node.ELEMENT_NODE) { + // Element childElement = (Element) node; + // String nodeName = childElement.getNodeName(); + // // 去除前后空白字符 + // String nodeValue = childElement.getTextContent().trim(); + // resultMap.put(nodeName, nodeValue); + // // 不再递归调用以避免重复添加 + // } + // } + // } + // } + + public static void main(String[] args) { + System.out.println(new Date()); + String xml = "1010157060000065445025801570102311000120240315092648true500130004120157202403150600000654450todogetCount2userNum10110707"; + for (int i = 0; i < 2000; i++) { + new Thread() { + @Override + public void run() { + // System.out.println(parseXMLToMap2(xml)); + parseXMLToMap(xml); + parseXMLToMap(xml); + parseXMLToMap(xml); + parseXMLToMap(xml); + printMemoryUsage(); + + } + }.start(); + printMemoryUsage(); + } + System.out.println(new Date()); + } + + + public static Map parseXMLToMap(String xmlString) { + new BaseBean().writeLog("XMLUtils:xmlString==>"+xmlString); + Map resultMap = new HashMap<>(); + try { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + + InputStream xmlInput = new ByteArrayInputStream(xmlString.getBytes("UTF-8")); + saxParser.parse(xmlInput, new SAXHandler(resultMap)); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + private static class SAXHandler extends DefaultHandler { + private Map resultMap; + private Stack elementStack = new Stack<>(); + private StringBuilder elementValue = new StringBuilder(); + + public SAXHandler(Map resultMap) { + this.resultMap = resultMap; + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + elementStack.push(qName); + elementValue.setLength(0); // 清空字符缓存 + } + + @Override + public void endElement(String uri, String localName, String qName) throws SAXException { + String value = elementValue.toString().trim(); + if (!value.isEmpty()) { + // 如果当前元素有值且没有子元素,则将其添加到结果Map中 + if (elementStack.size() > 1) { + resultMap.put(elementStack.peek(), value); + } + } + elementStack.pop(); + } + + @Override + public void characters(char[] ch, int start, int length) throws SAXException { + elementValue.append(ch, start, length); + } + } + + public static void printMemoryUsage() { + Runtime runtime = Runtime.getRuntime(); + + long totalMemory = runtime.totalMemory(); // JVM总内存 + long freeMemory = runtime.freeMemory(); // JVM空闲内存 + long usedMemory = totalMemory - freeMemory; // 已使用内存 + + // System.out.println("Total Memory: " + totalMemory + " bytes"); + // System.out.println("Free Memory: " + freeMemory + " bytes"); + System.out.println("Used Memory: " + usedMemory + " bytes"); + } + +} \ No newline at end of file diff --git a/com/engine/web/tjbk/TJBKWorkFlow.java b/com/engine/web/tjbk/TJBKWorkFlow.java index 3c2e5fa..cc15a56 100644 --- a/com/engine/web/tjbk/TJBKWorkFlow.java +++ b/com/engine/web/tjbk/TJBKWorkFlow.java @@ -68,7 +68,7 @@ public class TJBKWorkFlow { } } - public String getToDoCount(String param) { + public String getToDoCount(Map param) { // new BaseBean().writeLog("请求参数为" + param); // if (StringUtil.isEmpty(requestBody)) { @@ -80,7 +80,8 @@ public class TJBKWorkFlow { try { // String substring = param.substring(8, param.length()); // new BaseBean().writeLog("xml报文"+substring); - paramMap = XMLUtils.parseXMLToMap(param); + // paramMap = XMLUtils.parseXMLToMap(param); + paramMap = param; String path = paramMap.get("path"); String method = paramMap.get("method"); diff --git a/com/engine/web/tjbk/TjbkServerSocket.java b/com/engine/web/tjbk/TjbkServerSocket.java index 68a2095..b585cde 100644 --- a/com/engine/web/tjbk/TjbkServerSocket.java +++ b/com/engine/web/tjbk/TjbkServerSocket.java @@ -16,6 +16,8 @@ import java.net.ServerSocket; import java.net.Socket; import java.nio.charset.StandardCharsets; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class TjbkServerSocket implements ServletContextListener { private SocketThread socketThread; @@ -47,6 +49,7 @@ class SocketThread extends Thread { private ServletContext servletContext; private ServerSocket serverSocket; + private ExecutorService executorService; // 线程池 public SocketThread(ServerSocket serverSocket, ServletContext servletContext) { this.servletContext = servletContext; @@ -55,6 +58,9 @@ class SocketThread extends Thread { if (serverSocket == null) { try { this.serverSocket = new ServerSocket(Integer.parseInt(port)); + // 创建固定大小的线程池 + this.executorService = Executors.newFixedThreadPool(10); + } catch (IOException e) { e.printStackTrace(); } @@ -69,7 +75,8 @@ class SocketThread extends Thread { new BaseBean().writeLog("SocketThread线程启动"); Socket socket = serverSocket.accept(); if (socket != null) { - new ProcessSocketData(socket, this.servletContext).start(); + // new ProcessSocketData(socket, this.servletContext).start(); + executorService.submit(new ProcessSocketData(socket, servletContext)); } } catch (IOException e) { e.printStackTrace(); @@ -81,6 +88,7 @@ class SocketThread extends Thread { try { if (serverSocket != null && !serverSocket.isClosed()) { serverSocket.close(); + executorService.shutdown(); } } catch (IOException e) { e.printStackTrace(); @@ -88,7 +96,7 @@ class SocketThread extends Thread { } } -class ProcessSocketData extends Thread { +class ProcessSocketData implements Runnable { private Socket socket; private ServletContext servletContext; @@ -106,7 +114,7 @@ class ProcessSocketData extends Thread { public void run() { try { // BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); - new BaseBean().writeLog("ServerSocket线程启动"); + new BaseBean().writeLog("ServerSocket线程启动"+Thread.currentThread().getName()); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8); PrintWriter pw = new PrintWriter(outputStreamWriter); @@ -160,7 +168,9 @@ class ProcessSocketData extends Thread { socketExecute = new CWGLSocketExecute(); new BaseBean().writeLog(this.getClass().getName()+":CWGLSocketExecute"); } - String execute = socketExecute.execute(XMLparam); + String execute = socketExecute.execute(paramMap); return execute; } } + + diff --git a/com/weavernorth/nsyh/opinion/cmd/GetNodesCmd.java b/com/weavernorth/nsyh/opinion/cmd/GetNodesCmd.java new file mode 100644 index 0000000..0e8e6d0 --- /dev/null +++ b/com/weavernorth/nsyh/opinion/cmd/GetNodesCmd.java @@ -0,0 +1,65 @@ +package com.weavernorth.nsyh.opinion.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.*; + +/** + * @Author : 孙浩 + * @Date : 2022/3/1 9:58 + * @Version 1.0 + */ +public class GetNodesCmd extends AbstractCommonCommand> { + + public GetNodesCmd(User user, Map params) { + this.user = user; + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + Map apidatas = new HashMap(); + if (null == user){ + apidatas.put("hasRight", false); + apidatas.put("msg", "用户信息不存在"); + return apidatas; + } + try { +// int workflowid = Util.getIntValue(Util.null2String(params.get("workflowid")),0); +// if(workflowid==0){ +// apidatas.put("hasRight", false); +// apidatas.put("msg", "参数不足"); +// return apidatas; +// } + RecordSet rs = new RecordSet(); + List> nodeList = new ArrayList<>(); + rs.executeQuery("select workflowid,nodename from uf_ycqzyjxx where zt = 0 "); + while (rs.next()){ + String workflowid = Util.null2String(rs.getString("workflowid")); + String nodeid = Util.null2String(rs.getString("nodename")); + if(!"".equals(workflowid)&&!"".equals(nodeid)){ + Map nodemap = new HashMap<>(); + nodemap.put("workflowid",workflowid); + nodemap.put("nodeid",nodeid); + nodeList.add(nodemap); + } + } + apidatas.put("nodelist",nodeList); + apidatas.put("hasRight", true); + } catch (Exception e) { + apidatas.put("hasRight", false); + apidatas.put("msg", "Exception WorkflowTodoCmd"+e); + } + return apidatas; + } +} diff --git a/com/weavernorth/nsyh/opinion/service/WfOpinionService.java b/com/weavernorth/nsyh/opinion/service/WfOpinionService.java new file mode 100644 index 0000000..c395a4c --- /dev/null +++ b/com/weavernorth/nsyh/opinion/service/WfOpinionService.java @@ -0,0 +1,15 @@ +package com.weavernorth.nsyh.opinion.service; + +import java.util.Map; + +/** + * @Author : 孙浩 + * @Date : 2022/3/1 9:47 + * @Version 1.0 + */ +public interface WfOpinionService { + + //根据流程id获取需要隐藏签字意见相关信息的节点id + Map getNodes(Map params); + +} diff --git a/com/weavernorth/nsyh/opinion/service/impl/WfOpinionServiceImpl.java b/com/weavernorth/nsyh/opinion/service/impl/WfOpinionServiceImpl.java new file mode 100644 index 0000000..c40ba77 --- /dev/null +++ b/com/weavernorth/nsyh/opinion/service/impl/WfOpinionServiceImpl.java @@ -0,0 +1,19 @@ +package com.weavernorth.nsyh.opinion.service.impl; + +import com.weavernorth.nsyh.opinion.cmd.GetNodesCmd; +import com.weavernorth.nsyh.opinion.service.WfOpinionService; + +import com.engine.core.impl.Service; +import java.util.Map; + +/** + * @Author : 孙浩 + * @Date : 2022/3/1 9:49 + * @Version 1.0 + */ +public class WfOpinionServiceImpl extends Service implements WfOpinionService { + @Override + public Map getNodes(Map params) { + return commandExecutor.execute(new GetNodesCmd(user,params)); + } +} diff --git a/com/weavernorth/nsyh/opinion/web/WfOpinionAction.java b/com/weavernorth/nsyh/opinion/web/WfOpinionAction.java new file mode 100644 index 0000000..c7963cd --- /dev/null +++ b/com/weavernorth/nsyh/opinion/web/WfOpinionAction.java @@ -0,0 +1,55 @@ +package com.weavernorth.nsyh.opinion.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.weavernorth.nsyh.opinion.service.WfOpinionService; +import com.weavernorth.nsyh.opinion.service.impl.WfOpinionServiceImpl; +import weaver.general.BaseBean; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +/** + * @Author : 孙浩 + * @Date : 2022/3/1 9:40 + * @Version 1.0 + */ +public class WfOpinionAction extends BaseBean { + + private WfOpinionService getService(User user) { + return (WfOpinionServiceImpl) ServiceUtil.getService(WfOpinionServiceImpl.class, user); + } + + /** + * 根据流程id获取需要隐藏签字意见相关信息的节点id + * @param request + * @param response + * @return + */ + @GET + @Path("/getNodes") + @Produces({MediaType.TEXT_PLAIN}) + public String getNodes(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas.putAll(getService(user).getNodes(ParamUtil.request2Map(request))); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} \ No newline at end of file diff --git a/interface/transfer/testDemo.jsp b/interface/transfer/testDemo.jsp new file mode 100644 index 0000000..442b232 --- /dev/null +++ b/interface/transfer/testDemo.jsp @@ -0,0 +1,1188 @@ +<%@ page import="java.nio.charset.StandardCharsets" %> +<%@ page import="java.io.*" %> +<%@ page import="java.util.*" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="weaver.file.ImageFileManager" %> +<%@ page import="java.net.URL" %> +<%@ page import="org.apache.commons.io.FileUtils" %> +<%@ page import="okhttp3.*" %> +<%@ page import="java.net.URLEncoder" %> +<%@ page import="weaver.soa.workflow.request.RequestService" %> +<%@ page import="weaver.soa.workflow.request.RequestInfo" %> +<%@ page import="com.engine.custom.archives.action.WorkflowToDocCus" %> +<%@ page import="weaver.docs.docs.DocRecycleManager" %> +<%@ page import="weaver.hrm.User" %> +<%@ page import="com.api.workflow.service.RequestAuthenticationService" %> +<%@ page import="weaver.workflow.workflow.WorkflowConfigComInfo" %> +<%@ page import="weaver.hrm.resource.ResourceComInfo" %> +<%@ page import="weaver.crm.Maint.CustomerInfoComInfo" %> +<%@ page import="com.alibaba.fastjson.JSON" %> +<%@ page import="weaver.workflow.monitor.Monitor" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz" %> +<%@ page import="com.api.workflow.util.ServiceUtil" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeBiz" %> +<%@ page import="weaver.general.TimeUtil" %> +<%@ page import="org.apache.poi.xwpf.usermodel.XWPFDocument" %> +<%@ page import="cn.afterturn.easypoi.word.WordExportUtil" %> +<%@ page import="com.icbc.api.internal.apache.http.impl.cookie.F" %> +<%@ page import="cn.hutool.core.util.ZipUtil" %> + + +<% + String requestid = "607615"; + String filePath = "/opt/weaver/filesys/test"; + String zwdir = getKeyword("7"); + String fjdir = getKeyword("8"); + String cbddir = getKeyword("9"); + String zlcdir = getKeyword("9") + File.separator + getKeyword("10"); + String lzxxdir = getKeyword("11"); + String Url = "http://14.1.206.240:18080/fcscloud/composite/upload"; + String fjFile = fjdir; + + Map subRequest = getSubRequest(requestid); + + Map requesData = getRequestByid(requestid); + String fj = Util.null2String(requesData.get("fj")); + String zwkbj = Util.null2String(requesData.get("zwkbj")); + List docids = new ArrayList<>(); + docids.addAll(Arrays.asList(fj.split(","))); + docids.addAll(Arrays.asList(zwkbj.split(","))); + Map fjMap = getFileIdByDocId(fj); + Map zwkbjMap = getFileIdByDocId(zwkbj); + final int[] i = {1}; +// //--------------------------------------------------------------------------- +// //附件 +// fjMap.forEach((docid, imageid) -> { +// ImageFileManager imageFileManager = new ImageFileManager(); +// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); +// InputStream inputStream = imageFileManager.getInputStream(); +// //中文路径/中文文件名 +// String imageFileName = filePath + File.separator + fjdir + File.separator + imageFileManager.getImageFileName(); +// imageFileName = codeUtf8(imageFileName); +// try { +// File file = saveInputStreamToFile(inputStream, imageFileName); +// String s = callApi(Url, file); +// System.out.println(s); +// JSONObject result = JSONObject.parseObject(s); +// String errorcode = result.getString("errorcode"); +// if ("0".equals(errorcode)) { +// JSONObject data = result.getJSONObject("data"); +// String destFileName = data.getString("destFileName"); +// String viewUrl = data.getString("viewUrl"); +// downloadFile(viewUrl, filePath + File.separator + fjdir + File.separator + imageFileManager.getImageFileName() + ".pdf"); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// } +// }); +// //正文 +// zwkbjMap.forEach((docid, imageid) -> { +// ImageFileManager imageFileManager = new ImageFileManager(); +// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); +// InputStream inputStream = imageFileManager.getInputStream(); +// //中文路径/中文文件名 +// String imageFileName = filePath + File.separator + zwdir + File.separator + imageFileManager.getImageFileName(); +// imageFileName = codeUtf8(imageFileName); +// try { +// File file = saveInputStreamToFile(inputStream, imageFileName); +// String s = callApi(Url, file); +// System.out.println(s); +// JSONObject result = JSONObject.parseObject(s); +// String errorcode = result.getString("errorcode"); +// if ("0".equals(errorcode)) { +// JSONObject data = result.getJSONObject("data"); +// String destFileName = data.getString("destFileName"); +// String viewUrl = data.getString("viewUrl"); +// downloadFile(viewUrl, filePath + File.separator + zwdir + File.separator + imageFileManager.getImageFileName() + ".pdf"); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// } +// }); +// //开始承办单 先获取主流程的承办单 +// +// List requestDocid = generaRequestFormPdf(requestid); +// List requestDocid1 = generaSubRequestFormPdf(requestid); +// Map map1 = getFileIdByDocId(String.join(",",requestDocid)); +// Map map2 = getFileIdByDocId(String.join(",",requestDocid1)); +// out.print("
"); +// out.print("map1:"+JSONObject.toJSONString(map1)); +// out.print("
"); +// out.print("map2:"+JSONObject.toJSONString(map2)); +// out.print("
"); +// +// docids.addAll(requestDocid); +// docids.addAll(requestDocid1); +// +// //附件 +// map1.forEach((docid, imageid) -> { +// ImageFileManager imageFileManager = new ImageFileManager(); +// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); +// InputStream inputStream = imageFileManager.getInputStream(); +// //中文路径/中文文件名 +// String imageFileName = filePath + File.separator + cbddir + File.separator + fjFile + i[0] +"_"+ imageFileManager.getImageFileName(); +// imageFileName = codeUtf8(imageFileName); +// try { +// File file = saveInputStreamToFile(inputStream, imageFileName); +// String s = callApi(Url, file); +// System.out.println(s); +// JSONObject result = JSONObject.parseObject(s); +// String errorcode = result.getString("errorcode"); +// if ("0".equals(errorcode)) { +// JSONObject data = result.getJSONObject("data"); +// String destFileName = data.getString("destFileName"); +// String viewUrl = data.getString("viewUrl"); +// downloadFile(viewUrl, filePath + File.separator + cbddir + File.separator +fjFile + i[0] +"_"+ imageFileManager.getImageFileName() + ".pdf"); +// } +// i[0]++; +// } catch (IOException e) { +// e.printStackTrace(); +// } +// }); +// //正文 +// i[0] = 1; +// map2.forEach((docid, imageid) -> { +// ImageFileManager imageFileManager = new ImageFileManager(); +// imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); +// InputStream inputStream = imageFileManager.getInputStream(); +// //中文路径/中文文件名 +// String imageFileName = filePath + File.separator + zlcdir + File.separator + fjFile + i[0] +"_"+ imageFileManager.getImageFileName(); +// imageFileName = codeUtf8(imageFileName); +// try { +// File file = saveInputStreamToFile(inputStream, imageFileName); +// String s = callApi(Url, file); +// System.out.println(s); +// JSONObject result = JSONObject.parseObject(s); +// String errorcode = result.getString("errorcode"); +// if ("0".equals(errorcode)) { +// JSONObject data = result.getJSONObject("data"); +// String destFileName = data.getString("destFileName"); +// String viewUrl = data.getString("viewUrl"); +// downloadFile(viewUrl, filePath + File.separator + zlcdir + File.separator + fjFile + i[0] +"_"+ imageFileManager.getImageFileName() + ".pdf"); +// } +// i[0]++; +// } catch (IOException e) { +// e.printStackTrace(); +// } +// }); +// // +// out.print(JSONObject.toJSONString(requestDocid)); +// out.print(JSONObject.toJSONString(requestDocid1)); +// for (String docid : docids) { +// out.print("删除了"+docids); +// out.print("
"); +// deleteDocByid(docid); +// } +// //-------------------------------------------------------------------- + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + String logFile = getSignLog(requestid, lzxxdir, requestInfo.getCreatorid() + requestInfo.getDescription()); + String s = callApi(Url, new File(logFile)); + System.out.println(s); + JSONObject result = JSONObject.parseObject(s); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + downloadFile(viewUrl, logFile + ".pdf"); + } + ZipUtil.zip(filePath,filePath+"test.zip"); +%> + +<%! + /** + * 生成子流程承办单 + * @param requestid 主流程id + */ + private List generaSubRequestFormPdf(String requestid) { + Map subRequest = getSubRequest(requestid); + List docids = new ArrayList<>(); + for (String wfid : subRequest.keySet()) { + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(subRequest.get(wfid)), 100); + WorkflowToDocCus workflowToDoc = new WorkflowToDocCus(); + requestInfo.setLastoperator("1"); + requestInfo.setDescription(getWfNameByid(requestInfo.getWorkflowid()) + "-" + requestInfo.getDescription()); + List subDocids = workflowToDoc.execute(requestInfo, 1); + docids.addAll(subDocids); + } + return docids; + } + + /** + * 生成主流程承办单 + * @param requestid + */ + private static List generaRequestFormPdf(String requestid) { + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + WorkflowToDocCus workflowToDoc = new WorkflowToDocCus(); + requestInfo.setLastoperator("1"); + requestInfo.setDescription(getWfNameByid(requestInfo.getWorkflowid()) + "-" + requestInfo.getDescription()); + + return workflowToDoc.execute(requestInfo, 0); + } + + /*** + * 封装数据 + * @param requestid + * @return + */ + public Map getRequestByid(String requestid) { + HashMap record = new HashMap<>(); + String sql = "select * from formtable_main_30 where requestid = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, requestid); + if (rs.next()) { + String fj = Util.null2String(rs.getString("fj")); + String zwkbj = Util.null2String(rs.getString("zwkbj")); // 正文可编辑字段 + record.put("fj", fj); + record.put("zwkbj", zwkbj); + } + return record; + } + + + /** + * 将gbk转为UTF-8,创建ISO-8859-1编码的字符串, + * ISO-8859-1编码是一个字节对应一个字符,因此不会使最后一个字节错误。 + * @param text + * @return + */ + public static String codeUtf8(String text) { + String ISOtext = null; + ISOtext = new String(text.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); + return new String(ISOtext.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + + } + + /** + * 获取当前流程下的所有子流程(最大5层) + * @param requestid + * @return + */ + public static Map getSubRequest(String requestid) { + HashMap records = new HashMap<>(); + RecordSet rs = new RecordSet(); + String ids = requestid; + for (int i = 0; i < 5; i++) { + ArrayList idList = new ArrayList<>(); + String sql = "select requestid , workflowid from workflow_requestbase where mainrequestid in ( " + ids + " )"; + rs.executeQuery(sql); + while (rs.next()) { + String subrequestid = Util.null2String(rs.getString("requestid")); + String workflowid = Util.null2String(rs.getString("workflowid")); + idList.add(subrequestid); + // 使用map自动去重,一种流程类型只取一个requestid + records.put(workflowid, subrequestid); + } + ids = String.join(",", idList); + } + + + // String sql = "select requestid from workflow_requestbase where mainrequestid = ?"; + // RecordSet rs = new RecordSet(); + // rs.executeQuery(sql, requestid); + // if (rs.next()) { + // String subrequestid = Util.null2String(rs.getString("requestid")); + // records.add(subrequestid); + // } + return records; + } + + /** + * 获取imageid Map + * @param ids + * @return + */ + public static Map getFileIdByDocId(String ids) { + HashMap records = new HashMap<>(); + + String sql = "select docid,df.imagefileid imgid from docimagefile df left join imagefile imf on df.imagefileid = imf.imagefileid where DOCID in (" + ids + ")"; + RecordSet recordSet = new RecordSet(); + recordSet.execute(sql); + while (recordSet.next()) { + String docid = Util.null2String(recordSet.getString("docid")); + String imgid = Util.null2String(recordSet.getString("imgid")); + records.put(docid, imgid); + } + return records; + } + + /** + * 将InputStream写入本地文件 + * @param inputStream 输入流 + * @param localFilePath 本地文件路径 + * @throws IOException 如果发生输入输出异常 + * @return + */ + public static File saveInputStreamToFile(InputStream inputStream, String localFilePath) throws IOException { + File targetFile = new File(localFilePath); + + // 确保目标文件的父目录存在 + File parentDir = targetFile.getParentFile(); + if (parentDir != null && !parentDir.exists()) { + parentDir.mkdirs(); + } + + + // 使用try-with-resources语句确保流的正确关闭 + try (InputStream in = inputStream; + OutputStream outputStream = new FileOutputStream(targetFile)) { + int read; + byte[] bytes = new byte[1024]; + while ((read = in.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + } // 自动关闭 in 和 outputStream + return targetFile; + } + + + /** + * 根据链接下载文件 + * @param fileURL + * @param saveDir + */ + public static void downloadFile(String fileURL, String saveDir) { + + try { + saveDir = codeUtf8(saveDir); + URL url = new URL(fileURL); + File file = new File(saveDir); + FileUtils.copyURLToFile(url, file); + System.out.println("Download completed successfully."); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("Download failed."); + } + } + + + /** + * 调用永中接口 + * @param BASE_URL + * @param file + * @return + * @throws IOException + */ + public static String callApi(String BASE_URL, File file) throws IOException { + OkHttpClient client = new OkHttpClient(); + // Debugging: Check if the file exists and can be read + if (file.exists() && file.canRead()) { + System.out.println("File exists and is readable. File path: " + file.getAbsolutePath()); + } else { + System.out.println("File does not exist or cannot be read. File path: " + file.getAbsolutePath()); + } + RequestBody requestBody = null; + String code = getCodeByFileType(file.getName()); + String fileName = URLEncoder.encode(file.getName(), StandardCharsets.UTF_8.toString()); + try { + requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("convertType", code) + .addFormDataPart("file", fileName, RequestBody.create(MediaType.parse("application/zip"), file)) + .build(); + } catch (Exception e) { + System.out.println(e); + e.printStackTrace(); + } + + Request request = new Request.Builder() + .url(BASE_URL) + .post(requestBody) + .build(); + + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } + } + + /** + * 根据文件类型获取转为pdf的编码 + * @param FileName + * @return + */ + + public static String getCodeByFileType(String FileName) { + String extName = FileName.substring(FileName.lastIndexOf(".") + 1); + String convertType = ""; + if (extName.matches("(doc|dot|dtd|docx|docm|dotx|ppt|pptx|ppsx|potx|xlsx|xlsm|wps|dps|et|wpt|xls|xlc|xlt|xlm|xlw|DOC|DOT|DTD|DOCX|DOCM|DOTX|PPT|PPTX|PPSX|POTX|XLSX|XLSM|WPS|DPS|ET|WPT|XLS|XLC|XLT|XLM|XLW)")) { + convertType = "3"; + } else if (extName.matches("(ofd|OFD)")) { + convertType = "57"; + } else if (extName.matches("(GIF|JPEG|JPG|BMP|PNG|gif|jpeg|jpg|bmp|png)")) { + convertType = "44"; + } else if (extName.matches("(PDF|pdf)")) { + convertType = "34"; + } + return convertType; + } + + + /*** + * 获取关键词 + * @param id + * @return + */ + public static String getKeyword(String id) { + String sql = "select * from uf_test where id = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, id); + rs.next(); + return Util.null2String(rs.getString("label")); + } + + /** + * 删除文档及附件,调用移到回收站,再从回收站删除 + * @param docid + */ + public static void deleteDocByid(String docid) { + DocRecycleManager docRecycleManager = new DocRecycleManager(); + User user = new User(1); + docRecycleManager.moveDocToRecycle(user.getUID(), user.getLogintype(), Util.getIntValue(docid), "127.0.0.1"); + docRecycleManager.deleteDocFromRecycle(user.getUID(), user.getLogintype(), weaver.general.Util.getIntValue(docid), "127.0.0.1"); + } + + /** + * 获取流程类型名称 + * @param wfid + * @return + */ + + public static String getWfNameByid(String wfid) { + String sql = "select WORKFLOWNAME from WORKFLOW_BASE where id = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, wfid); + rs.next(); + return Util.null2String(rs.getString("WORKFLOWNAME")); + } + + /** + * 生成流转意见 意见 + * @param params + * @param user + * @return + */ + public static String getSignLog(String requestid, String dirName, String requestName) { + HashMap params = new HashMap<>(); + params.put("requestid", requestid); + params.put("desremark", "all"); + params.put("pageSize", "50"); + params.put("isfirst", "true"); + // params.put("request", request); + Map data = getSignLogCmd(params, new User(1)); + System.out.println("data===>"); + System.out.println(JSONObject.toJSONString(data)); + Map datas = (Map) data.get("datas"); + List> entries = new ArrayList<>(datas.entrySet()); + entries.sort(new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + Integer key1 = Util.getIntValue((Util.null2String(o1.getKey())).replace("key", "")); + Integer key2 = Util.getIntValue((Util.null2String(o2.getKey())).replace("key", "")); + return key1 - key2; + } + }); // 自然顺序 + + ArrayList> results = new ArrayList<>(); + // out.print(JSONObject.toJSONString(entries)); + for (Map.Entry entry : entries) { + Map value = (Map) entry.getValue(); + List> list = (List) value.get("list"); + for (Map item : list) { + String operator = (String) item.get("operator"); + String operatorid = (String) item.get("operatorid"); + String operatortype = (String) item.get("operatortype"); + String operatedate = (String) item.get("operatedate"); + String nodename = (String) value.get("nodename"); + HashMap itemMap = new HashMap<>(); + itemMap.put("operator", operator); + itemMap.put("operatorid", operatorid); + itemMap.put("operatortype", operatortype); + itemMap.put("operatedate", operatedate); + itemMap.put("nodename", nodename); + results.add(itemMap); + } + } + + System.out.println("results===>"); + System.out.println(JSONObject.toJSONString(results)); + try { + Map dataMap = new HashMap<>(); + dataMap.put("results", results); // 将用户列表添加到数据映射中 + dataMap.put("name", requestName); // 将用户列表添加到数据映射中 + + // 加载模板并填充数据 + String templatePath = "/opt/weaver/filesys/template.docx"; // 模板文件路径 + System.out.println(dataMap); + XWPFDocument doc = WordExportUtil.exportWord07(templatePath, dataMap); + // 导出Word文档 + String outputPath = "/opt/weaver/filesys/test" + File.separator + dirName + File.separator + requestName + ".docx"; // 输出文件路径 + outputPath = codeUtf8(outputPath); + + File targetFile = new File(outputPath); + + // 确保目标文件的父目录存在 + File parentDir = targetFile.getParentFile(); + if (parentDir != null && !parentDir.exists()) { + parentDir.mkdirs(); + } + FileOutputStream fos = new FileOutputStream(outputPath); + doc.write(fos); + fos.close(); + return outputPath; + } catch (Exception e) { + System.out.println("errorerrorerror"); + System.out.println(e.getMessage()); + e.printStackTrace(); + } + return requestid; + } + + + public static Map getSignLogCmd(Map params, User user) { + Map result = new HashMap(); + RequestAuthenticationService authService = new RequestAuthenticationService(); + authService.setUser(user); + + long date1 = new Date().getTime(); + try { + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + int pageSize = Util.getIntValue(Util.null2String(params.get("pageSize")), 30); + int desrequestid = Util.getIntValue(Util.null2String(params.get("desrequestid")), 0); + String isfirst = Util.null2String(params.get("isfirst")); + String isurger = Util.null2String(params.get("isurger")); + String desremark = Util.null2String(params.get("desremark")); + int desremarkIndex = desremark.indexOf("_"); + boolean isAdSearch = false;//是否有过滤条件 + if (desremarkIndex > -1) { + isAdSearch = true; + desremark = desremark.substring(0, desremarkIndex); + } + String parameter = Util.null2String(params.get("parameter")); + int selectedNode = Util.getIntValue(Util.null2String(params.get("selectedNode")), -1);//选中的节点 + String selectedOperator = Util.null2String(params.get("selectedOperator"));//选中的操作者 + int requestid = Util.getIntValue(Util.null2String(params.get("requestid")), 0); + int workflowid = -1; + rs.executeQuery("select workflowid from workflow_requestbase where requestid=" + requestid); + if (rs.next()) + workflowid = Util.getIntValue(rs.getString("workflowid")); + + // 将json字符串转换成jsonObject + int currentMaxId = 0; + int currentMinId = 0; + int currentId = 0; + int currentId2 = 0; + int lastNodeId = 0; + String viewlogids = ""; + int index = 0; + try { + if (!"true".equals(isfirst)) { + Map parameterMap = JSON.parseObject(parameter, Map.class);//Weibo类在下边定义 + currentMaxId = Util.getIntValue(parameterMap.get("currentMaxId"), 0); + currentMinId = Util.getIntValue(parameterMap.get("currentMinId"), 0); + String currentId12 = Util.null2String(parameterMap.get("currentId")); + if (currentId12.contains("_")) { + String[] currentId12Arr = currentId12.split("_"); + currentId = Util.getIntValue(currentId12Arr[0]); + currentId2 = Util.getIntValue(currentId12Arr[1]); + } else { + currentId = Util.getIntValue(currentId12); + } + viewlogids = Util.null2String(parameterMap.get("viewlogids")); + index = Util.getIntValue(parameterMap.get("nodeindex"), 0); + lastNodeId = Util.getIntValue(parameterMap.get("lastNodeId"), 0); + } + } catch (Exception e) { + e.printStackTrace(); + } + Map putpara = new HashMap(); + + Monitor monitor = new Monitor(); +// String joinStr = ("oracle".equalsIgnoreCase(rs.getDBType()) || "mysql".equalsIgnoreCase(rs.getDBType())) ? " left join " : " left hash join "; + String joinStr = " left join "; +// if (isurger.equals("true") || monitor.hasMonitor(requestid+"", user.getUID() + "")) { +// StringBuffer sqlsb = new StringBuffer(); +// sqlsb.append(" select a.id,a.nodeid, "); +// sqlsb.append(" b.nodename, "); +// sqlsb.append(" a.userid, "); +// sqlsb.append(" a.isremark, "); +// sqlsb.append(" a.lastisremark, "); +// sqlsb.append(" a.usertype, "); +// sqlsb.append(" a.agentorbyagentid, "); +// sqlsb.append(" a.agenttype, "); +// sqlsb.append(" a.receivedate, "); +// sqlsb.append(" a.receivetime, "); +// sqlsb.append(" a.operatedate, "); +// sqlsb.append(" a.operatetime, "); +// sqlsb.append(" a.viewtype, "); +// sqlsb.append(" a.nodetype "); +// sqlsb.append(" ,a.operator "); +// sqlsb.append(" from (SELECT distinct top ").append(pageSize); +// sqlsb.append(" o.id, " ); +// sqlsb.append(" o.requestid, " ); +// sqlsb.append(" o.userid, "); +// sqlsb.append(" o.workflowid, "); +// sqlsb.append(" o.workflowtype, "); +// sqlsb.append(" o.isremark, "); +// sqlsb.append(" o.lastisremark, "); +// sqlsb.append(" o.usertype, "); +// sqlsb.append(" o.nodeid, "); +// sqlsb.append(" o.agentorbyagentid, "); +// sqlsb.append(" o.agenttype, "); +// sqlsb.append(" o.receivedate, "); +// sqlsb.append(" o.receivetime, "); +// sqlsb.append(" o.viewtype, "); +// sqlsb.append(" o.iscomplete, "); +// sqlsb.append(" o.operatedate, "); +// sqlsb.append(" o.operatetime, "); +// sqlsb.append(" nodetype "); +// sqlsb.append(" ,wr.operator "); +// sqlsb.append(" FROM workflow_currentoperator o "); +// +// sqlsb.append(" left join workflow_requestlog wr"); +// sqlsb.append(" on wr.requestid=o.requestid"); +// sqlsb.append(" and wr.nodeid=o.nodeid"); +// sqlsb.append(" and wr.operator = o.userid"); +// sqlsb.append(" and wr.logtype <> '1'"); +// +// sqlsb.append(" , workflow_flownode "); +// +// sqlsb.append(" where o.nodeid = "); +// sqlsb.append(" workflow_flownode.nodeid "); +// if(desremark ==1){//1:已提交 +// sqlsb.append(" AND o.isremark='2' AND wr.operator IS NOT null "); +// }else if(desremark == 2){//2:未提交 +// sqlsb.append(" and ((o.isremark = '0' and (o.takisremark is null or o.takisremark=0)) or o.isremark in ('1','5','7','8','9') )"); +// }else if(desremark == 3){//3:已查看 +// sqlsb.append(" and (((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','4','5','7','8','9')) AND o.viewtype IN (-1,-2)) "); +// }else if(desremark == 4){//4:未查看 +// sqlsb.append(" AND o.viewtype = 0 "); +// } +// sqlsb.append(" and o.id > ").append(currentId); +// sqlsb.append(" and o.requestid = " + requestid + ") a, "); +// sqlsb.append(" workflow_nodebase b "); +// sqlsb.append(" where a.nodeid = b.id "); +// sqlsb.append(" and a.requestid = " + requestid + " "); +// sqlsb.append(" and a.agenttype <> 1 "); +// sqlsb.append(" order by a.id "); +// //System.out.println("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); +// rs.executeSql(sqlsb.toString()); +// +// } else { + // 处理相关流程的查看权限 +// if ("".equals(viewlogids)) { +// viewlogids = this.getViewLogids(); +// } + StringBuffer sqlsb = new StringBuffer(); + if ("sqlserver".equalsIgnoreCase(rs.getDBType())) { // sqlserver 排序提到这里 + sqlsb.append(" select top ").append(pageSize).append(" a.id,a.nodeid, "); + } else { + sqlsb.append(" select a.id,a.nodeid, "); + } + sqlsb.append("(CASE WHEN a.nodeid < -1 THEN (SELECT nodename FROM workflow_freenode t WHERE t.id = a.nodeid) ELSE (SELECT nodename FROM workflow_nodebase t1 WHERE t1.id = a.nodeid) END) AS nodename,"); + sqlsb.append(" a.userid, "); + sqlsb.append(" a.isremark, "); + sqlsb.append(" a.preisremark, "); + sqlsb.append(" a.lastisremark, "); + sqlsb.append(" a.usertype, "); + sqlsb.append(" a.agentorbyagentid, "); + sqlsb.append(" a.agenttype, "); + sqlsb.append(" a.receivedate, "); + sqlsb.append(" a.receivetime, "); + sqlsb.append(" a.operatedate, "); + sqlsb.append(" a.operatetime, "); + sqlsb.append(" a.processuser, "); + sqlsb.append(" a.viewtype, "); + sqlsb.append(" a.nodetype "); + sqlsb.append(" ,a.operator "); + sqlsb.append(" ,a.tab "); + //if("true".equals(isfirst)){ + /*if("oracle".equals(rs.getDBType()) || "mysql".equals(rs.getDBType())){ + sqlsb.append(" from (SELECT distinct "); + }else{ + sqlsb.append(" from (SELECT distinct top ").append(pageSize); // sqlserver排序提到外层查询 + }*/ + sqlsb.append(" from (SELECT distinct "); +// }else{ +// sqlsb.append(" from (SELECT distinct "); +// } + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" o.workflowtype, "); + //workflow_otheroperator表中isremark为字符型,这里转下字符 + if (rs.getDBType().toLowerCase().equals("oracle") || rs.getDBType().toLowerCase().equals("postgresql")) { + sqlsb.append(" to_char(o.isremark) as isremark, "); + sqlsb.append(" to_char(o.preisremark) AS preisremark, "); + sqlsb.append(" to_char(o.lastisremark) AS lastisremark, "); + } else if (rs.getDBType().toLowerCase().equals("mysql")) { + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.preisremark, "); + sqlsb.append(" o.lastisremark, "); + } else { + sqlsb.append(" cast(o.isremark as varchar) as isremark, "); + sqlsb.append(" cast(o.preisremark as varchar) as preisremark, "); + sqlsb.append(" cast(o.lastisremark as varchar) as lastisremark, "); + } + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" o.agentorbyagentid, "); + sqlsb.append(" o.agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" o.iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" o.processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype "); + sqlsb.append(" ,wr.operator "); + sqlsb.append(" ,1 as tab "); + sqlsb.append(" FROM workflow_currentoperator o "); + sqlsb.append(" " + joinStr + " workflow_requestlog wr"); + sqlsb.append(" on wr.requestid=o.requestid"); + sqlsb.append(" and wr.nodeid=o.nodeid"); + sqlsb.append(" and wr.operator = o.userid"); + sqlsb.append(" and wr.logtype <> '1'"); + sqlsb.append(" and o.operatedate = wr.operatedate"); + sqlsb.append(" and o.operatetime = wr.operatetime");//再通过时间关联一下,防止流程状态操作状态显示错误 + sqlsb.append(" where o.id > ").append(currentId); + if ("submit".equals(desremark)) {//1:已提交----isremark等于4,preisremark=11实际对应已提交数据 + sqlsb.append(" AND (o.isremark='2' or (o.isremark=4 and o.preisremark=11)) AND (wr.operator IS NOT null or o.userid = o.processuser)"); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + sqlsb.append(" AND( (o.isremark != '2' AND o.isremark != '4') OR (o.isremark = '4' AND o.viewtype = 0 and o.preisremark != 11) ) "); + } else if ("view".equals(desremark)) {//3:已查看 + sqlsb.append(" and ((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','5','7','8','9','11') or (o.isremark=4 and o.preisremark!=11)) AND o.viewtype IN (-1,-2) "); + } else if ("noview".equals(desremark)) {//4:未查看 + sqlsb.append(" AND o.viewtype=0 AND (o.isremark IN ('0','1','5','7','8','9','11') or (o.isremark = '2' AND wr.operator IS NULL) or (o.isremark=4 and o.preisremark!=11)) "); + } + sqlsb.append(" and o.requestid = " + requestid); + sqlsb.append(" union "); + sqlsb.append(" SELECT DISTINCT "); + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" 0 as workflowtype, "); + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.isremark as preisremark, "); + sqlsb.append(" o.isremark as lastisremark, "); + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" 0 as agentorbyagentid, "); + sqlsb.append(" '0' as agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" 1 as iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" wr.operator as processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype, "); + sqlsb.append(" wr.operator "); + sqlsb.append(" ,2 as tab "); + sqlsb.append(" FROM workflow_otheroperator o LEFT JOIN workflow_requestlog wr ON wr.requestid = o.requestid "); + sqlsb.append(" AND wr.nodeid = o.nodeid "); + sqlsb.append(" AND wr.operator = o.userid "); + sqlsb.append(" AND wr.logtype <> '1' "); + sqlsb.append(" WHERE o.requestid = " + requestid + " "); + sqlsb.append(" and o.id > ").append(currentId2); + sqlsb.append(" ) a "); + sqlsb.append(" where a.requestid = " + requestid + " "); + sqlsb.append(" and a.agenttype <> 1 "); + if (!"".equals(viewlogids)) { + sqlsb.append(" and a.nodeid in (" + viewlogids + ") "); + } + if (selectedNode != -1) { + sqlsb.append(" AND a.nodeid = " + selectedNode + " "); + } + if (!"".equals(selectedOperator)) { + sqlsb.append(" AND a.userid = " + selectedOperator + " "); + } + + WorkflowConfigComInfo configComInfo = new WorkflowConfigComInfo(); + boolean showdelFreeNodeInfo = "1".equals(configComInfo.getValue("showdelete_freenode_info")); + + sqlsb.append(" and (a.nodeid > -1 or (a.nodeid < -1 and exists (select id from workflow_freenode where id = a.nodeid and requestid = " + requestid + (showdelFreeNodeInfo ? "" : " and groupid > 0 ") + " ))) "); + + //搜索时返回状态 + if (isAdSearch && "true".equals(isfirst)) { + rs.executeQuery("select count(id) as count from (" + sqlsb.toString().replace("top " + pageSize, "") + ") t"); + result.put("countTime", new Date().getTime() - date1); + if (rs.next()) { + result.put("count", Util.null2String(rs.getString("count"))); + } + } + + sqlsb.append(" order by a.receivedate, a.receivetime,a.id , a.nodetype"); + + //System.out.println("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); + if ("oracle".equals(rs.getDBType())) { //必须排序后再限制rownum + String sql_oracle = sqlsb.toString(); + sqlsb.setLength(0); + sqlsb.append("select * from (" + sql_oracle + ") where rownum < ").append(pageSize); + } else if ("mysql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } else if ("postgresql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } + if (requestid > 0) { + rs.executeSql(sqlsb.toString()); + } + result.put("dataTime", new Date().getTime() - date1); +// } + List> statuslist = new ArrayList>(); + int tmpnodeid = 0; + while (rs.next()) { + int tab = rs.getInt("tab"); + if (tab == 1) { + currentId = rs.getInt("id"); + } else { + currentId2 = rs.getInt("id"); + } + tmpnodeid = rs.getInt("nodeid"); + String tmpnodename = rs.getString("nodename"); + Map nodekv = null; + if (statuslist.size() == 0) { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } else { + Map temmap = statuslist.get(statuslist.size() - 1); + int tnodeid = Util.getIntValue(temmap.get("nodeid"), 0); + if (tnodeid == tmpnodeid) { + nodekv = temmap; + } else { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } + } + nodekv.put("nodeid", tmpnodeid + ""); + nodekv.put("nodename", tmpnodename + ""); + } + int nextlistcount = 0; + int nextsubmitCount = 0; + int nextviewCount = 0; + int nextnoviewCount = 0; + if ("all".equals(desremark) && !isAdSearch) { + currentMaxId = currentId; + String maxsql = " select a.id,a.nodeid from workflow_currentoperator a where a.id > " + currentId + " and a.requestid=" + requestid + " order by a.id ,a.receivedate, a.receivetime"; + rs1.executeSql(maxsql); + while (rs1.next()) { + int currentid = rs1.getInt("id"); + int currentnodeid = rs1.getInt("nodeid"); + if (currentnodeid == tmpnodeid) { + currentMaxId = currentid; + } else { + break; + } + } + String listcountsql = " select count(id) num from workflow_currentoperator where id > " + currentId + " and id <= " + currentMaxId + " and requestid=" + requestid + " and nodeid=" + tmpnodeid + " and agenttype <> 1 and usertype <> 1 "; + //String submitCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid +" and agenttype <> 1 and usertype <> 1 and isremark = 2 and exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and workflow_requestlog.operator=workflow_currentoperator.userid )"; + //String viewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 and (viewtype = -1 or viewtype=-2) and ((isremark = '0' and (takisremark is null or takisremark=0)) or isremark in ('1','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + //String noviewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 AND viewtype=0 AND (isremark IN ('0','1','4','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + String submitCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.isremark = 2 and wr.operator is NOT null "; + String viewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype IN (-1,-2) and ((wc.isremark = '2' AND wr.operator IS NULL) or wc.isremark in ('0','1','4','5','7','8','9')) "; + String noviewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype=0 AND (wc.isremark IN ('0','1','4','5','7','8','9','11') or (wc.isremark = '2' and wr.operator is null )) "; + rs1.executeSql(listcountsql); + while (rs1.next()) { + nextlistcount = rs1.getInt("num"); + } + rs1.executeSql(submitCountsql); + while (rs1.next()) { + nextsubmitCount = rs1.getInt("num"); + } + rs1.executeSql(viewCountsql); + while (rs1.next()) { + nextviewCount = rs1.getInt("num"); + } + rs1.executeSql(noviewCountsql); + while (rs1.next()) { + nextnoviewCount = rs1.getInt("num"); + } + } + + Map allstatusmap = new HashMap(); + Map submitstatusmap = new HashMap(); + Map nosubmitstatusmap = new HashMap(); + Map viewstatusmap = new HashMap(); + Map noviewstatusmap = new HashMap(); + //提交节点信息--滚动加载到当前currentoperator对应最大id + + //数字统计转到新接口count中 + ResourceComInfo resourceComInfo = new ResourceComInfo(); + CustomerInfoComInfo customerInfoComInfo = new CustomerInfoComInfo(); + Map all_nodemap = new HashMap(); + Map submit_nodemap = new HashMap(); + Map nosubmit_nodemap = new HashMap(); + Map view_nodemap = new HashMap(); + Map noview_nodemap = new HashMap(); + + rs.beforFirst(); + int currentnum = 0; + for (Iterator> it = statuslist.iterator(); it.hasNext(); index++) { + + Map nodekv = it.next(); + int fnodeid = Util.getIntValue(nodekv.get("nodeid")); + String namename = nodekv.get("nodename"); + int submitCount = 0; + int viewCount = 0; + int noviewCount = 0; + int listcount = 0; + if ("false".equals(isfirst) && currentnum == 0 && lastNodeId == fnodeid) { + index -= 1; + } + if (tmpnodeid == fnodeid && currentnum == (statuslist.size() - 1)) { + submitCount = nextsubmitCount; + viewCount = nextviewCount; + noviewCount = nextnoviewCount; + listcount = nextlistcount; + } + currentnum++; + Map all_nodemap_in = new HashMap(); + all_nodemap_in.put("nodeid", fnodeid); + all_nodemap_in.put("nodename", namename); + Map submit_nodemap_in = new HashMap(); + Map nosubmit_nodemap_in = new HashMap(); + Map view_nodemap_in = new HashMap(); + Map noview_nodemap_in = new HashMap(); + + List> nodeallstatuslist = new ArrayList>(); + List> nodesubmitstatuslist = new ArrayList>(); + List> nodenosubmitstatuslist = new ArrayList>(); + List> nodeviewstatuslist = new ArrayList>(); + List> nodenoviewstatuslist = new ArrayList>(); + + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.putAll(all_nodemap_in); + submitstatusmap.put("datas", submit_nodemap); + submit_nodemap.put("key" + index, submit_nodemap_in); + submit_nodemap_in.put("list", nodesubmitstatuslist); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.putAll(all_nodemap_in); + nosubmitstatusmap.put("datas", nosubmit_nodemap); + nosubmit_nodemap.put("key" + index, nosubmit_nodemap_in); + nosubmit_nodemap_in.put("list", nodenosubmitstatuslist); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.putAll(all_nodemap_in); + viewstatusmap.put("datas", view_nodemap); + view_nodemap.put("key" + index, view_nodemap_in); + view_nodemap_in.put("list", nodeviewstatuslist); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.putAll(all_nodemap_in); + noviewstatusmap.put("datas", noview_nodemap); + noview_nodemap.put("key" + index, noview_nodemap_in); + noview_nodemap_in.put("list", nodenoviewstatuslist); + } else { + //所有节点信息 + allstatusmap.put("datas", all_nodemap); + all_nodemap.put("key" + index, all_nodemap_in); + all_nodemap_in.put("list", nodeallstatuslist); + } + + boolean islight = false; + RobotNodeServiceBiz robotNodeServiceBiz = new RobotNodeServiceBiz(); + while (rs.next()) { + int tmpnodeid1 = rs.getInt("nodeid"); + + if (tmpnodeid1 != fnodeid) { + rs.previous(); + break; + } + + //String tmpnodename = rs.getString("nodename"); + int tmpcurrid = rs.getInt("id"); + String tmpuserid = rs.getString("userid"); + String tmpisremark = Util.null2String(rs.getString("isremark")); + if (tmpisremark.equals("")) { + tmpisremark = Util.null2String(rs.getString("lastisremark")); + } + int tmpusertype = rs.getInt("usertype"); + String tmpagentorbyagentid = rs.getString("agentorbyagentid"); + int tmpagenttype = rs.getInt("agenttype"); + String tmpreceivedate = rs.getString("receivedate"); + String tmpreceivetime = rs.getString("receivetime"); + String tmpoperatedate = rs.getString("operatedate"); + String tmpoperatetime = rs.getString("operatetime"); + String viewtype = rs.getString("viewtype"); + String nodetype = rs.getString("nodetype"); + int preisremark = rs.getInt("preisremark"); + String processuser = rs.getString("processuser"); + boolean flags = false; + String tmpIntervel = ""; + // 如果tmpisremark=2 判断时候在日志表里有该人(确定是否是由非会签得到的isremark=2) + + String operator = rs.getString("operator"); + if (operator != null && !"".equals(operator)) { + flags = true; + } + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && tmpoperatedate != null && !tmpoperatedate.equals("")) { + tmpIntervel = TimeUtil.timeInterval2(tmpreceivedate + " " + tmpreceivetime, tmpoperatedate + " " + tmpoperatetime, user.getLanguage()); + } + islight = !islight; + Map _statusmap = new HashMap(); + // 操作人 + String _statususername = ""; + String _operatorid = ""; + String _beagentid = ""; + String _beagentname = ""; + String _operatortype = "0"; + if (tmpusertype == 0) { + _operatorid = tmpuserid; + _statususername = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpuserid)); + if (tmpagenttype == 2) { //代理情况 + _beagentid = tmpagentorbyagentid; + _beagentname = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpagentorbyagentid)); + } + _statusmap.put("operatorImg", resourceComInfo.getMessagerUrls(tmpuserid)); + _statusmap.put("operatorImgDefName", _statususername); + } else if (RobotNodeBiz.operatortype.equals(tmpusertype + "")) { + _statususername = Util.formatMultiLang(robotNodeServiceBiz.getRobotNodeSet(tmpnodeid1).getOperatorName()); + _operatorid = tmpuserid; + _operatortype = "2"; + } else { + _operatorid = tmpuserid; + _operatortype = "1"; + _statususername = ServiceUtil.convertChar(customerInfoComInfo.getCustomerInfoname(tmpuserid)); + } + + // 查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 8:退回 9:被撤回 + int _statusCode = 0; + + if (preisremark != 8 && (tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + _statusCode = 3; + submitCount++; + if ("4".equals(nodetype) && preisremark == 0) { + _statusCode = 7; + } + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + _statusCode = 2; + viewCount++; + } else { + _statusCode = 1; + noviewCount++; + } + } else if ("s".equals(tmpisremark)) { + _statusCode = 4; + } else if ("r".equals(tmpisremark)) { + _statusCode = 6; + } else if ("c".equals(tmpisremark)) { + _statusCode = 5; + } else if (preisremark == 8 && viewtype.equals("-2") && tmpisremark.equals("2")) { + _statusCode = 2; + viewCount++; + } + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select operatetype from workflow_currentoperator where id=?", tmpcurrid); + if (recordSet.next()) { + int operatetype = recordSet.getInt(1); + if (operatetype == 3) {//退回 + _statusCode = 8; + } else if (operatetype == 4) {//被撤回 + _statusCode = 9; + } + } + + + listcount++; + if ("view".equals(desremark)) {//3:已查看 + if (processuser.equals(tmpuserid) && ("2".equals(tmpisremark) || "4".equals(tmpisremark))) { + listcount--; + } + } + String _receivedate = ""; + String _operatedate = ""; + String _intervel = ""; + + if (!tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + _receivedate = Util.toScreen(tmpreceivedate, user.getLanguage()) + " " + Util.toScreen(tmpreceivetime, user.getLanguage()); + } + _operatedate = Util.toScreen(tmpoperatedate, user.getLanguage()) + " " + Util.toScreen(tmpoperatetime, user.getLanguage()); + + _intervel = Util.toScreen(tmpIntervel, user.getLanguage()); + + _statusmap.put("statuscode", String.valueOf(_statusCode)); + _statusmap.put("operator", _statususername); + _statusmap.put("receivedate", _receivedate); + _statusmap.put("operatedate", _operatedate); + _statusmap.put("intervel", _intervel); + _statusmap.put("operatorid", _operatorid); + _statusmap.put("operatortype", _operatortype); + _statusmap.put("beagentid", _beagentid); + _statusmap.put("beagentname", _beagentname); + _statusmap.put("nodetype", nodetype); + + //所有节点 + nodeallstatuslist.add(_statusmap); + //查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + nodesubmitstatuslist.add(_statusmap); + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + nodeviewstatuslist.add(_statusmap); + } else if (viewtype.equals("0")) { + nodenoviewstatuslist.add(_statusmap); + } + } + + if ((!tmpisremark.equals("2") && !tmpisremark.equals("4")) || (tmpisremark.equals("4") && viewtype.equals("0"))) { + if (!tmpisremark.equals("s") && !tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + nodenosubmitstatuslist.add(_statusmap); + } + } + } + //--已提交、已查看、未查看 + all_nodemap_in.put("submitCount", submitCount);//--已提交 + all_nodemap_in.put("viewCount", viewCount);//--已查看 + all_nodemap_in.put("noviewCount", noviewCount);//--未查看 + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.put("listcount", listcount); + result.putAll(submitstatusmap); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.put("listcount", listcount); + result.putAll(nosubmitstatusmap); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.put("listcount", listcount); + result.putAll(viewstatusmap); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.put("listcount", listcount); + result.putAll(noviewstatusmap); + } else { + //所有节点信息 + all_nodemap_in.put("listcount", listcount); + result.putAll(allstatusmap); + } + lastNodeId = fnodeid; + } +// if(maxid == currentMaxId){ +// isfinish = 1; +// } + putpara.put("nodeindex", index + ""); + putpara.put("currentMaxId", currentMaxId + ""); + putpara.put("currentMinId", currentMinId + ""); + putpara.put("currentId", currentId + "_" + currentId2); + putpara.put("lastNodeId", lastNodeId + ""); + putpara.put("viewlogids", viewlogids + ""); + result.put("parameter", putpara); + result.put("otherTime", new Date().getTime() - date1); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + +%> + + diff --git a/interface/transfer/testDemo2.jsp b/interface/transfer/testDemo2.jsp new file mode 100644 index 0000000..23b5ce5 --- /dev/null +++ b/interface/transfer/testDemo2.jsp @@ -0,0 +1,80 @@ +<%@ page import="java.util.List" %> +<%@ page import="java.util.ArrayList" %> +<%@ page import="java.io.FileInputStream" %> +<%@ page import="java.io.File" %> +<%@ page import="org.apache.poi.ss.usermodel.Workbook" %> +<%@ page import="org.apache.poi.xssf.usermodel.XSSFWorkbook" %> +<%@ page import="org.apache.poi.ss.usermodel.Sheet" %> +<%@ page import="org.apache.poi.ss.usermodel.Row" %> +<%@ page import="java.util.Iterator" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="com.engine.custom.archives.entity.Dept" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> + + +<% + List depts = readExcelFile("/opt/weaver/filesys/zzxx.xlsx"); + // 输出或处理dept列表 + out.println(depts.size()); + out.println(JSONObject.toJSONString(depts)); + RecordSet recordSet = new RecordSet(); + String comSql = "update hrmsubcompanydefined set DAPYBH = ? where SUBCOMID = (select id from hrmsubcompany where SUBCOMPANYNAME = ? )"; + // String deptByDeptSql = "update hrmdepartmentdefined set DAPYBH = ? where SUBCOMPANYNAME = ? and SUPDEPID = (select * from hrmdepartmentdefined where DAPYBH = ? )"; + // String deptByComSql = "update hrmdepartmentdefined set DAPYBH = ? where SUBCOMPANYNAME = ? and SUPDEPID = (select * from SUBCOMPANYID1 where DAPYBH = ? )"; + String deptSql = "update hrmdepartmentdefined set DAPYBH = ? where deptid in (select id from hrmdepartment where DEPARTMENTNAME = ? ) and deptid in (select id from hrmdepartment where SUBCOMPANYID1 = (select SUBCOMID from hrmsubcompanydefined where DAPYBH = ? ) or SUPDEPID = (select DEPTID from hrmdepartmentdefined where DAPYBH = ? ) )"; + + for (Dept dept : depts) { + if ("zgs".equals(dept.getType())) { + continue; + } + if ("zonghang".equals(dept.getType())) { + recordSet.executeUpdate(comSql, dept.getId(), dept.getName()); + } + if ("zhih".equals(dept.getType()) || "fh".equals(dept.getType())) { + if ("10".equals(dept.getParentId())) { + recordSet.executeUpdate(comSql, dept.getId(), dept.getName()); + } else { + recordSet.executeUpdate(deptSql, dept.getId(), dept.getName(), dept.getParentId(), dept.getParentId()); + } + } + if ("ld".equals(dept.getType()) || "bm".equals(dept.getType())) { + recordSet.executeUpdate(deptSql, dept.getId(), dept.getName(), dept.getParentId(), dept.getParentId()); + } + } + + +%> + +<%! + public static List readExcelFile(String filePath) { + List dept = new ArrayList<>(); + try (FileInputStream fis = new FileInputStream(new File(filePath)); + Workbook workbook = new XSSFWorkbook(fis)) { + + Sheet sheet = workbook.getSheetAt(0); + Iterator rowIterator = sheet.iterator(); + + if (rowIterator.hasNext()) { + rowIterator.next(); // 跳过标题行 + } + + while (rowIterator.hasNext()) { + Row row = rowIterator.next(); + Dept Dept = new Dept(); + Dept.setId(row.getCell(0).getStringCellValue()); + Dept.setName(row.getCell(1).getStringCellValue()); + Dept.setType(row.getCell(2).getStringCellValue()); + Dept.setParentId(row.getCell(3).getStringCellValue()); + Dept.setAllName(row.getCell(4).getStringCellValue()); + // 假设第一列是姓名,第二列是年龄 + dept.add(Dept); + } + } catch (Exception e) { + e.printStackTrace(); + } + return dept; + } + +%> + + diff --git a/interface/transfer/testError.jsp b/interface/transfer/testError.jsp index 1d7250f..d863b26 100644 --- a/interface/transfer/testError.jsp +++ b/interface/transfer/testError.jsp @@ -1,64 +1,811 @@ -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> +<%@ page import="org.apache.poi.xwpf.usermodel.XWPFDocument" %> +<%@ page import="cn.afterturn.easypoi.word.WordExportUtil" %> +<%@ page import="java.nio.charset.StandardCharsets" %> <%@ page import="java.io.*" %> <%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> +<%@ page import="com.engine.workflow.cmd.requestForm.StatusDataCmd" %> +<%@ page import="com.engine.core.interceptor.CommandContext" %> +<%@ page import="com.api.workflow.service.RequestAuthenticationService" %> <%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="weaver.general.Util" %> <%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%@ page import="com.engine.common.util.ParamUtil" %> -<%@ page import="com.wbi.util.StringUtil" %> -<%@ page import="org.json.JSONException" %> -<%@ page language="java" contentType="text/html; charset=UTF-8" %> +<%@ page import="weaver.workflow.monitor.Monitor" %> +<%@ page import="weaver.workflow.workflow.WorkflowConfigComInfo" %> +<%@ page import="weaver.hrm.resource.ResourceComInfo" %> +<%@ page import="weaver.crm.Maint.CustomerInfoComInfo" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz" %> +<%@ page import="weaver.general.TimeUtil" %> +<%@ page import="com.api.workflow.util.ServiceUtil" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeBiz" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="java.nio.charset.Charset" %> +<%@ page import="weaver.rtx.ChangeCharset" %> + <% - Cookie[] cookies = request.getCookies(); - if (cookies != null) { - for (Cookie cookie : cookies) { - if ("loginidweaver".equals(cookie.getName())) { - String cookieValue = cookie.getValue(); - // 使用cookieValue - out.print(cookieValue); - out.print(""); - } + response.setCharacterEncoding("utf-8"); + HashMap params = new HashMap<>(); + params.put("requestid", "727734"); + params.put("desremark", "all"); + params.put("pageSize", "50"); + params.put("isfirst", "true"); + params.put("request", request); + Map data = execute(params, new User(23)); + Map datas = (Map) data.get("datas"); + List> entries = new ArrayList<>(datas.entrySet()); + entries.sort(new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + Integer key1 = Util.getIntValue((Util.null2String(o1.getKey())).replace("key", "")); + Integer key2 = Util.getIntValue((Util.null2String(o2.getKey())).replace("key", "")); + return key1 - key2; + } + }); // 自然顺序 + ArrayList> results = new ArrayList<>(); + // out.print(JSONObject.toJSONString(entries)); + for (Map.Entry entry : entries) { + Map value = (Map)entry.getValue(); + List> list = (List)value.get("list"); + for (Map item : list) { + String operator = (String)item.get("operator"); + String operatorid = (String)item.get("operatorid"); + String operatortype = (String)item.get("operatortype"); + String operatedate = (String)item.get("operatedate"); + String nodename = (String)value.get("nodename"); + HashMap itemMap = new HashMap<>(); + itemMap.put("operator",operator); + itemMap.put("operatorid",operatorid); + itemMap.put("operatortype",operatortype); + itemMap.put("operatedate",operatedate); + itemMap.put("nodename",nodename); + results.add(itemMap); } + + } + + String encoding = System.getProperty("file.encoding"); + out.print(encoding); + + + try { + + + Map dataMap = new HashMap<>(); + dataMap.put("users", results); // 将用户列表添加到数据映射中 + // dataMap.put("name", results); // 将用户列表添加到数据映射中 + + // 加载模板并填充数据 + String templatePath = "/opt/weaver/filesys/template.docx"; // 模板文件路径 + String templatePath2 = "/opt/weaver/filesys/xinxi2.docx"; // 模板文件路径 + File file = new File(templatePath); + File file2 = new File(templatePath2); + // out.print(file.exists()); + // out.print(file2.exists()); + System.out.println(dataMap); + XWPFDocument doc = WordExportUtil.exportWord07(templatePath, dataMap); + + // 导出Word文档 + String lastname = new User(6473).getLastname(); + String outputPath = "/opt/weaver/filesys/"+lastname+".docx"; // 输出文件路径 + + // byte[] gbks = outputPath.getBytes("gbk"); + System.out.print(outputPath); + String outputPath1 = new String( outputPath.getBytes("UTF-8"),"ISO-8859-1"); + String outputPath2 = new String( outputPath1.getBytes("ISO-8859-1"),"UTF-8"); + + // ChangeCharset changeCharset = new ChangeCharset(); + // String outputPath1 = changeCharset.toUTF_8(outputPath); + System.out.print(outputPath1); + System.out.print(outputPath2); + + outputPath = new String(outputPath.getBytes("ISO8859_1"), "UTF-8"); + File file11 = new File(outputPath1); + File file22 = new File(outputPath2); + // if(!file1.exists()){ + file11.createNewFile(); + file22.createNewFile(); + // } + + + FileOutputStream fos = new FileOutputStream(outputPath) ; + doc.write(fos); + fos.close(); + } catch (Exception e) { + System.out.println("errorerrorerror"); + + System.out.println(e.getMessage()); + out.print(e.getMessage()+"123"); + e.printStackTrace(); } + + + + + + %> <%! + private void test1(ArrayList> results) { + try { + Map dataMap = new HashMap<>(); + dataMap.put("users", results); // 将用户列表添加到数据映射中 + // 加载模板并填充数据 + String templatePath = "/opt/weaver/filesys/xinxi.docx"; // 模板文件路径 + String templatePath2 = "/opt/weaver/filesys/xinxi2.docx"; // 模板文件路径 + File file = new File(templatePath); + File file2 = new File(templatePath2); + // out.print(file.exists()); + // out.print(file2.exists()); + System.out.println(dataMap); + XWPFDocument doc = WordExportUtil.exportWord07(templatePath, dataMap); + + // 导出Word文档 + String lastname = new User(22).getLastname(); + String outputPath = "/opt/weaver/filesys/"+lastname+".docx"; // 输出文件路径 + + // byte[] gbks = outputPath.getBytes("gbk"); + String outputPath1 = new String( outputPath.getBytes("UTF-8")); + // outputPath = new String(outputPath.getBytes("ISO8859_1"), "UTF-8"); + File file1 = new File(outputPath1); + if(!file1.exists()){ + file1.createNewFile(); + } + + + // FileOutputStream fos = new FileOutputStream(outputPath) ; + // doc.write(fos); + // fos.close(); + } catch (Exception e) { + System.out.println("errorerrorerror"); + + System.out.println(e.getMessage()); + // out.print(e.getMessage()+"123"); + e.printStackTrace(); + } + } + + + public Map execute(Map params, User user) { + Map result = new HashMap(); + RequestAuthenticationService authService = new RequestAuthenticationService(); + authService.setUser(user); + + long date1 = new Date().getTime(); + try { + RecordSet rs = new RecordSet(); + RecordSet rs1 = new RecordSet(); + int pageSize = Util.getIntValue(Util.null2String(params.get("pageSize")), 30); + int desrequestid = Util.getIntValue(Util.null2String(params.get("desrequestid")), 0); + String isfirst = Util.null2String(params.get("isfirst")); + String isurger = Util.null2String(params.get("isurger")); + String desremark = Util.null2String(params.get("desremark")); + int desremarkIndex = desremark.indexOf("_"); + boolean isAdSearch = false;//是否有过滤条件 + if (desremarkIndex > -1) { + isAdSearch = true; + desremark = desremark.substring(0, desremarkIndex); + } + String parameter = Util.null2String(params.get("parameter")); + int selectedNode = Util.getIntValue(Util.null2String(params.get("selectedNode")), -1);//选中的节点 + String selectedOperator = Util.null2String(params.get("selectedOperator"));//选中的操作者 + int requestid = Util.getIntValue(Util.null2String(params.get("requestid")), 0); + int workflowid = -1; + rs.executeQuery("select workflowid from workflow_requestbase where requestid=" + requestid); + if (rs.next()) + workflowid = Util.getIntValue(rs.getString("workflowid")); + + // 将json字符串转换成jsonObject + int currentMaxId = 0; + int currentMinId = 0; + int currentId = 0; + int currentId2 = 0; + int lastNodeId = 0; + String viewlogids = ""; + int index = 0; + try { + if (!"true".equals(isfirst)) { + Map parameterMap = JSON.parseObject(parameter, Map.class);//Weibo类在下边定义 + currentMaxId = Util.getIntValue(parameterMap.get("currentMaxId"), 0); + currentMinId = Util.getIntValue(parameterMap.get("currentMinId"), 0); + String currentId12 = Util.null2String(parameterMap.get("currentId")); + if (currentId12.contains("_")) { + String[] currentId12Arr = currentId12.split("_"); + currentId = Util.getIntValue(currentId12Arr[0]); + currentId2 = Util.getIntValue(currentId12Arr[1]); + } else { + currentId = Util.getIntValue(currentId12); + } + viewlogids = Util.null2String(parameterMap.get("viewlogids")); + index = Util.getIntValue(parameterMap.get("nodeindex"), 0); + lastNodeId = Util.getIntValue(parameterMap.get("lastNodeId"), 0); + } + } catch (Exception e) { + e.printStackTrace(); + } + Map putpara = new HashMap(); + + Monitor monitor = new Monitor(); +// String joinStr = ("oracle".equalsIgnoreCase(rs.getDBType()) || "mysql".equalsIgnoreCase(rs.getDBType())) ? " left join " : " left hash join "; + String joinStr = " left join "; +// if (isurger.equals("true") || monitor.hasMonitor(requestid+"", user.getUID() + "")) { +// StringBuffer sqlsb = new StringBuffer(); +// sqlsb.append(" select a.id,a.nodeid, "); +// sqlsb.append(" b.nodename, "); +// sqlsb.append(" a.userid, "); +// sqlsb.append(" a.isremark, "); +// sqlsb.append(" a.lastisremark, "); +// sqlsb.append(" a.usertype, "); +// sqlsb.append(" a.agentorbyagentid, "); +// sqlsb.append(" a.agenttype, "); +// sqlsb.append(" a.receivedate, "); +// sqlsb.append(" a.receivetime, "); +// sqlsb.append(" a.operatedate, "); +// sqlsb.append(" a.operatetime, "); +// sqlsb.append(" a.viewtype, "); +// sqlsb.append(" a.nodetype "); +// sqlsb.append(" ,a.operator "); +// sqlsb.append(" from (SELECT distinct top ").append(pageSize); +// sqlsb.append(" o.id, " ); +// sqlsb.append(" o.requestid, " ); +// sqlsb.append(" o.userid, "); +// sqlsb.append(" o.workflowid, "); +// sqlsb.append(" o.workflowtype, "); +// sqlsb.append(" o.isremark, "); +// sqlsb.append(" o.lastisremark, "); +// sqlsb.append(" o.usertype, "); +// sqlsb.append(" o.nodeid, "); +// sqlsb.append(" o.agentorbyagentid, "); +// sqlsb.append(" o.agenttype, "); +// sqlsb.append(" o.receivedate, "); +// sqlsb.append(" o.receivetime, "); +// sqlsb.append(" o.viewtype, "); +// sqlsb.append(" o.iscomplete, "); +// sqlsb.append(" o.operatedate, "); +// sqlsb.append(" o.operatetime, "); +// sqlsb.append(" nodetype "); +// sqlsb.append(" ,wr.operator "); +// sqlsb.append(" FROM workflow_currentoperator o "); +// +// sqlsb.append(" left join workflow_requestlog wr"); +// sqlsb.append(" on wr.requestid=o.requestid"); +// sqlsb.append(" and wr.nodeid=o.nodeid"); +// sqlsb.append(" and wr.operator = o.userid"); +// sqlsb.append(" and wr.logtype <> '1'"); +// +// sqlsb.append(" , workflow_flownode "); +// +// sqlsb.append(" where o.nodeid = "); +// sqlsb.append(" workflow_flownode.nodeid "); +// if(desremark ==1){//1:已提交 +// sqlsb.append(" AND o.isremark='2' AND wr.operator IS NOT null "); +// }else if(desremark == 2){//2:未提交 +// sqlsb.append(" and ((o.isremark = '0' and (o.takisremark is null or o.takisremark=0)) or o.isremark in ('1','5','7','8','9') )"); +// }else if(desremark == 3){//3:已查看 +// sqlsb.append(" and (((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','4','5','7','8','9')) AND o.viewtype IN (-1,-2)) "); +// }else if(desremark == 4){//4:未查看 +// sqlsb.append(" AND o.viewtype = 0 "); +// } +// sqlsb.append(" and o.id > ").append(currentId); +// sqlsb.append(" and o.requestid = " + requestid + ") a, "); +// sqlsb.append(" workflow_nodebase b "); +// sqlsb.append(" where a.nodeid = b.id "); +// sqlsb.append(" and a.requestid = " + requestid + " "); +// sqlsb.append(" and a.agenttype <> 1 "); +// sqlsb.append(" order by a.id "); +// //System.out.println("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); +// rs.executeSql(sqlsb.toString()); +// +// } else { + // 处理相关流程的查看权限 +// if ("".equals(viewlogids)) { +// viewlogids = this.getViewLogids(); +// } + StringBuffer sqlsb = new StringBuffer(); + if ("sqlserver".equalsIgnoreCase(rs.getDBType())) { // sqlserver 排序提到这里 + sqlsb.append(" select top ").append(pageSize).append(" a.id,a.nodeid, "); + } else { + sqlsb.append(" select a.id,a.nodeid, "); + } + sqlsb.append("(CASE WHEN a.nodeid < -1 THEN (SELECT nodename FROM workflow_freenode t WHERE t.id = a.nodeid) ELSE (SELECT nodename FROM workflow_nodebase t1 WHERE t1.id = a.nodeid) END) AS nodename,"); + sqlsb.append(" a.userid, "); + sqlsb.append(" a.isremark, "); + sqlsb.append(" a.preisremark, "); + sqlsb.append(" a.lastisremark, "); + sqlsb.append(" a.usertype, "); + sqlsb.append(" a.agentorbyagentid, "); + sqlsb.append(" a.agenttype, "); + sqlsb.append(" a.receivedate, "); + sqlsb.append(" a.receivetime, "); + sqlsb.append(" a.operatedate, "); + sqlsb.append(" a.operatetime, "); + sqlsb.append(" a.processuser, "); + sqlsb.append(" a.viewtype, "); + sqlsb.append(" a.nodetype "); + sqlsb.append(" ,a.operator "); + sqlsb.append(" ,a.tab "); + //if("true".equals(isfirst)){ + /*if("oracle".equals(rs.getDBType()) || "mysql".equals(rs.getDBType())){ + sqlsb.append(" from (SELECT distinct "); + }else{ + sqlsb.append(" from (SELECT distinct top ").append(pageSize); // sqlserver排序提到外层查询 + }*/ + sqlsb.append(" from (SELECT distinct "); +// }else{ +// sqlsb.append(" from (SELECT distinct "); +// } + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" o.workflowtype, "); + //workflow_otheroperator表中isremark为字符型,这里转下字符 + if (rs.getDBType().toLowerCase().equals("oracle") || rs.getDBType().toLowerCase().equals("postgresql")) { + sqlsb.append(" to_char(o.isremark) as isremark, "); + sqlsb.append(" to_char(o.preisremark) AS preisremark, "); + sqlsb.append(" to_char(o.lastisremark) AS lastisremark, "); + } else if (rs.getDBType().toLowerCase().equals("mysql")) { + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.preisremark, "); + sqlsb.append(" o.lastisremark, "); + } else { + sqlsb.append(" cast(o.isremark as varchar) as isremark, "); + sqlsb.append(" cast(o.preisremark as varchar) as preisremark, "); + sqlsb.append(" cast(o.lastisremark as varchar) as lastisremark, "); + } + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" o.agentorbyagentid, "); + sqlsb.append(" o.agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" o.iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" o.processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype "); + sqlsb.append(" ,wr.operator "); + sqlsb.append(" ,1 as tab "); + sqlsb.append(" FROM workflow_currentoperator o "); + sqlsb.append(" " + joinStr + " workflow_requestlog wr"); + sqlsb.append(" on wr.requestid=o.requestid"); + sqlsb.append(" and wr.nodeid=o.nodeid"); + sqlsb.append(" and wr.operator = o.userid"); + sqlsb.append(" and wr.logtype <> '1'"); + sqlsb.append(" and o.operatedate = wr.operatedate"); + sqlsb.append(" and o.operatetime = wr.operatetime");//再通过时间关联一下,防止流程状态操作状态显示错误 + sqlsb.append(" where o.id > ").append(currentId); + if ("submit".equals(desremark)) {//1:已提交----isremark等于4,preisremark=11实际对应已提交数据 + sqlsb.append(" AND (o.isremark='2' or (o.isremark=4 and o.preisremark=11)) AND (wr.operator IS NOT null or o.userid = o.processuser)"); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + sqlsb.append(" AND( (o.isremark != '2' AND o.isremark != '4') OR (o.isremark = '4' AND o.viewtype = 0 and o.preisremark != 11) ) "); + } else if ("view".equals(desremark)) {//3:已查看 + sqlsb.append(" and ((o.isremark = '2' AND wr.operator IS NULL) or o.isremark in ('0','1','5','7','8','9','11') or (o.isremark=4 and o.preisremark!=11)) AND o.viewtype IN (-1,-2) "); + } else if ("noview".equals(desremark)) {//4:未查看 + sqlsb.append(" AND o.viewtype=0 AND (o.isremark IN ('0','1','5','7','8','9','11') or (o.isremark = '2' AND wr.operator IS NULL) or (o.isremark=4 and o.preisremark!=11)) "); + } + sqlsb.append(" and o.requestid = " + requestid); + sqlsb.append(" union "); + sqlsb.append(" SELECT DISTINCT "); + sqlsb.append(" o.id, "); + sqlsb.append(" o.requestid, "); + sqlsb.append(" o.userid, "); + sqlsb.append(" o.workflowid, "); + sqlsb.append(" 0 as workflowtype, "); + sqlsb.append(" o.isremark, "); + sqlsb.append(" o.isremark as preisremark, "); + sqlsb.append(" o.isremark as lastisremark, "); + sqlsb.append(" o.usertype, "); + sqlsb.append(" o.nodeid, "); + sqlsb.append(" 0 as agentorbyagentid, "); + sqlsb.append(" '0' as agenttype, "); + sqlsb.append(" o.receivedate, "); + sqlsb.append(" o.receivetime, "); + sqlsb.append(" o.viewtype, "); + sqlsb.append(" 1 as iscomplete, "); + sqlsb.append(" o.operatedate, "); + sqlsb.append(" o.operatetime, "); + sqlsb.append(" wr.operator as processuser, "); + sqlsb.append("(case when o.nodeid < -1 then (select nodetype from workflow_freenode t where t.id = o.nodeid) else (select nodetype from workflow_flownode t1 where t1.nodeid = o.nodeid) end) as nodetype, "); + sqlsb.append(" wr.operator "); + sqlsb.append(" ,2 as tab "); + sqlsb.append(" FROM workflow_otheroperator o LEFT JOIN workflow_requestlog wr ON wr.requestid = o.requestid "); + sqlsb.append(" AND wr.nodeid = o.nodeid "); + sqlsb.append(" AND wr.operator = o.userid "); + sqlsb.append(" AND wr.logtype <> '1' "); + sqlsb.append(" WHERE o.requestid = " + requestid + " "); + sqlsb.append(" and o.id > ").append(currentId2); + sqlsb.append(" ) a "); + sqlsb.append(" where a.requestid = " + requestid + " "); + sqlsb.append(" and a.agenttype <> 1 "); + if (!"".equals(viewlogids)) { + sqlsb.append(" and a.nodeid in (" + viewlogids + ") "); + } + if (selectedNode != -1) { + sqlsb.append(" AND a.nodeid = " + selectedNode + " "); + } + if (!"".equals(selectedOperator)) { + sqlsb.append(" AND a.userid = " + selectedOperator + " "); + } + + WorkflowConfigComInfo configComInfo = new WorkflowConfigComInfo(); + boolean showdelFreeNodeInfo = "1".equals(configComInfo.getValue("showdelete_freenode_info")); + + sqlsb.append(" and (a.nodeid > -1 or (a.nodeid < -1 and exists (select id from workflow_freenode where id = a.nodeid and requestid = " + requestid + (showdelFreeNodeInfo ? "" : " and groupid > 0 ") + " ))) "); + + //搜索时返回状态 + if (isAdSearch && "true".equals(isfirst)) { + rs.executeQuery("select count(id) as count from (" + sqlsb.toString().replace("top " + pageSize, "") + ") t"); + result.put("countTime", new Date().getTime() - date1); + if (rs.next()) { + result.put("count", Util.null2String(rs.getString("count"))); + } + } + + sqlsb.append(" order by a.receivedate, a.receivetime,a.id , a.nodetype"); + + //System.out.println("20170309 =====> sqlsb.toString() = "+sqlsb.toString()); + if ("oracle".equals(rs.getDBType())) { //必须排序后再限制rownum + String sql_oracle = sqlsb.toString(); + sqlsb.setLength(0); + sqlsb.append("select * from (" + sql_oracle + ") where rownum < ").append(pageSize); + } else if ("mysql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } else if ("postgresql".equals(rs.getDBType())) { + sqlsb.append(" LIMIT " + pageSize); + } + if (requestid > 0) { + rs.executeSql(sqlsb.toString()); + } + result.put("dataTime", new Date().getTime() - date1); +// } + List> statuslist = new ArrayList>(); + int tmpnodeid = 0; + while (rs.next()) { + int tab = rs.getInt("tab"); + if (tab == 1) { + currentId = rs.getInt("id"); + } else { + currentId2 = rs.getInt("id"); + } + tmpnodeid = rs.getInt("nodeid"); + String tmpnodename = rs.getString("nodename"); + Map nodekv = null; + if (statuslist.size() == 0) { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } else { + Map temmap = statuslist.get(statuslist.size() - 1); + int tnodeid = Util.getIntValue(temmap.get("nodeid"), 0); + if (tnodeid == tmpnodeid) { + nodekv = temmap; + } else { + currentMinId = currentId; + nodekv = new HashMap(); + statuslist.add(nodekv); + } + } + nodekv.put("nodeid", tmpnodeid + ""); + nodekv.put("nodename", tmpnodename + ""); + } + int nextlistcount = 0; + int nextsubmitCount = 0; + int nextviewCount = 0; + int nextnoviewCount = 0; + if ("all".equals(desremark) && !isAdSearch) { + currentMaxId = currentId; + String maxsql = " select a.id,a.nodeid from workflow_currentoperator a where a.id > " + currentId + " and a.requestid=" + requestid + " order by a.id ,a.receivedate, a.receivetime"; + rs1.executeSql(maxsql); + while (rs1.next()) { + int currentid = rs1.getInt("id"); + int currentnodeid = rs1.getInt("nodeid"); + if (currentnodeid == tmpnodeid) { + currentMaxId = currentid; + } else { + break; + } + } + String listcountsql = " select count(id) num from workflow_currentoperator where id > " + currentId + " and id <= " + currentMaxId + " and requestid=" + requestid + " and nodeid=" + tmpnodeid + " and agenttype <> 1 and usertype <> 1 "; + //String submitCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid +" and agenttype <> 1 and usertype <> 1 and isremark = 2 and exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and workflow_requestlog.operator=workflow_currentoperator.userid )"; + //String viewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 and (viewtype = -1 or viewtype=-2) and ((isremark = '0' and (takisremark is null or takisremark=0)) or isremark in ('1','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + //String noviewCountsql = " select count(id) num from workflow_currentoperator where id > "+currentId +" and id <= "+currentMaxId+" and requestid="+requestid +" and nodeid="+tmpnodeid + " and agenttype <> 1 and usertype <> 1 AND viewtype=0 AND (isremark IN ('0','1','4','5','7','8','9') or (isremark = '2' and not exists (select 1 from workflow_requestlog where workflow_requestlog.requestid = workflow_currentoperator.requestid and workflow_currentoperator.nodeid=workflow_requestlog.nodeid and (workflow_requestlog.operator is null or workflow_requestlog.operator ='' )))) "; + String submitCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.isremark = 2 and wr.operator is NOT null "; + String viewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype IN (-1,-2) and ((wc.isremark = '2' AND wr.operator IS NULL) or wc.isremark in ('0','1','4','5','7','8','9')) "; + String noviewCountsql = " SELECT Count(distinct wc.id) num FROM workflow_currentoperator wc " + joinStr + " workflow_requestlog wr ON wr.requestid = wc.requestid AND wc.nodeid = wr.nodeid AND wr.operator = wc.userid WHERE wc.id > " + currentId + " AND wc.id <= " + currentMaxId + " AND wc.requestid = " + requestid + " AND wc.nodeid = " + tmpnodeid + " AND wc.agenttype <> 1 AND wc.usertype <> 1 AND wc.viewtype=0 AND (wc.isremark IN ('0','1','4','5','7','8','9','11') or (wc.isremark = '2' and wr.operator is null )) "; + rs1.executeSql(listcountsql); + while (rs1.next()) { + nextlistcount = rs1.getInt("num"); + } + rs1.executeSql(submitCountsql); + while (rs1.next()) { + nextsubmitCount = rs1.getInt("num"); + } + rs1.executeSql(viewCountsql); + while (rs1.next()) { + nextviewCount = rs1.getInt("num"); + } + rs1.executeSql(noviewCountsql); + while (rs1.next()) { + nextnoviewCount = rs1.getInt("num"); + } + } + + Map allstatusmap = new HashMap(); + Map submitstatusmap = new HashMap(); + Map nosubmitstatusmap = new HashMap(); + Map viewstatusmap = new HashMap(); + Map noviewstatusmap = new HashMap(); + //提交节点信息--滚动加载到当前currentoperator对应最大id + + //数字统计转到新接口count中 + ResourceComInfo resourceComInfo = new ResourceComInfo(); + CustomerInfoComInfo customerInfoComInfo = new CustomerInfoComInfo(); + Map all_nodemap = new HashMap(); + Map submit_nodemap = new HashMap(); + Map nosubmit_nodemap = new HashMap(); + Map view_nodemap = new HashMap(); + Map noview_nodemap = new HashMap(); + + rs.beforFirst(); + int currentnum = 0; + for (Iterator> it = statuslist.iterator(); it.hasNext(); index++) { + + Map nodekv = it.next(); + int fnodeid = Util.getIntValue(nodekv.get("nodeid")); + String namename = nodekv.get("nodename"); + int submitCount = 0; + int viewCount = 0; + int noviewCount = 0; + int listcount = 0; + if ("false".equals(isfirst) && currentnum == 0 && lastNodeId == fnodeid) { + index -= 1; + } + if (tmpnodeid == fnodeid && currentnum == (statuslist.size() - 1)) { + submitCount = nextsubmitCount; + viewCount = nextviewCount; + noviewCount = nextnoviewCount; + listcount = nextlistcount; + } + currentnum++; + Map all_nodemap_in = new HashMap(); + all_nodemap_in.put("nodeid", fnodeid); + all_nodemap_in.put("nodename", namename); + Map submit_nodemap_in = new HashMap(); + Map nosubmit_nodemap_in = new HashMap(); + Map view_nodemap_in = new HashMap(); + Map noview_nodemap_in = new HashMap(); + + List> nodeallstatuslist = new ArrayList>(); + List> nodesubmitstatuslist = new ArrayList>(); + List> nodenosubmitstatuslist = new ArrayList>(); + List> nodeviewstatuslist = new ArrayList>(); + List> nodenoviewstatuslist = new ArrayList>(); + + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.putAll(all_nodemap_in); + submitstatusmap.put("datas", submit_nodemap); + submit_nodemap.put("key" + index, submit_nodemap_in); + submit_nodemap_in.put("list", nodesubmitstatuslist); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.putAll(all_nodemap_in); + nosubmitstatusmap.put("datas", nosubmit_nodemap); + nosubmit_nodemap.put("key" + index, nosubmit_nodemap_in); + nosubmit_nodemap_in.put("list", nodenosubmitstatuslist); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.putAll(all_nodemap_in); + viewstatusmap.put("datas", view_nodemap); + view_nodemap.put("key" + index, view_nodemap_in); + view_nodemap_in.put("list", nodeviewstatuslist); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.putAll(all_nodemap_in); + noviewstatusmap.put("datas", noview_nodemap); + noview_nodemap.put("key" + index, noview_nodemap_in); + noview_nodemap_in.put("list", nodenoviewstatuslist); + } else { + //所有节点信息 + allstatusmap.put("datas", all_nodemap); + all_nodemap.put("key" + index, all_nodemap_in); + all_nodemap_in.put("list", nodeallstatuslist); + } + + boolean islight = false; + RobotNodeServiceBiz robotNodeServiceBiz = new RobotNodeServiceBiz(); + while (rs.next()) { + int tmpnodeid1 = rs.getInt("nodeid"); + + if (tmpnodeid1 != fnodeid) { + rs.previous(); + break; + } + + //String tmpnodename = rs.getString("nodename"); + int tmpcurrid = rs.getInt("id"); + String tmpuserid = rs.getString("userid"); + String tmpisremark = Util.null2String(rs.getString("isremark")); + if (tmpisremark.equals("")) { + tmpisremark = Util.null2String(rs.getString("lastisremark")); + } + int tmpusertype = rs.getInt("usertype"); + String tmpagentorbyagentid = rs.getString("agentorbyagentid"); + int tmpagenttype = rs.getInt("agenttype"); + String tmpreceivedate = rs.getString("receivedate"); + String tmpreceivetime = rs.getString("receivetime"); + String tmpoperatedate = rs.getString("operatedate"); + String tmpoperatetime = rs.getString("operatetime"); + String viewtype = rs.getString("viewtype"); + String nodetype = rs.getString("nodetype"); + int preisremark = rs.getInt("preisremark"); + String processuser = rs.getString("processuser"); + boolean flags = false; + String tmpIntervel = ""; + // 如果tmpisremark=2 判断时候在日志表里有该人(确定是否是由非会签得到的isremark=2) + + String operator = rs.getString("operator"); + if (operator != null && !"".equals(operator)) { + flags = true; + } + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && tmpoperatedate != null && !tmpoperatedate.equals("")) { + tmpIntervel = TimeUtil.timeInterval2(tmpreceivedate + " " + tmpreceivetime, tmpoperatedate + " " + tmpoperatetime, user.getLanguage()); + } + islight = !islight; + Map _statusmap = new HashMap(); + // 操作人 + String _statususername = ""; + String _operatorid = ""; + String _beagentid = ""; + String _beagentname = ""; + String _operatortype = "0"; + if (tmpusertype == 0) { + _operatorid = tmpuserid; + _statususername = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpuserid)); + if (tmpagenttype == 2) { //代理情况 + _beagentid = tmpagentorbyagentid; + _beagentname = ServiceUtil.convertChar(resourceComInfo.getResourcename(tmpagentorbyagentid)); + } + _statusmap.put("operatorImg", resourceComInfo.getMessagerUrls(tmpuserid)); + _statusmap.put("operatorImgDefName", _statususername); + } else if (RobotNodeBiz.operatortype.equals(tmpusertype + "")) { + _statususername = Util.formatMultiLang(robotNodeServiceBiz.getRobotNodeSet(tmpnodeid1).getOperatorName()); + _operatorid = tmpuserid; + _operatortype = "2"; + } else { + _operatorid = tmpuserid; + _operatortype = "1"; + _statususername = ServiceUtil.convertChar(customerInfoComInfo.getCustomerInfoname(tmpuserid)); + } + + // 查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 8:退回 9:被撤回 + int _statusCode = 0; + + if (preisremark != 8 && (tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + _statusCode = 3; + submitCount++; + if ("4".equals(nodetype) && preisremark == 0) { + _statusCode = 7; + } + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + _statusCode = 2; + viewCount++; + } else { + _statusCode = 1; + noviewCount++; + } + } else if ("s".equals(tmpisremark)) { + _statusCode = 4; + } else if ("r".equals(tmpisremark)) { + _statusCode = 6; + } else if ("c".equals(tmpisremark)) { + _statusCode = 5; + } else if (preisremark == 8 && viewtype.equals("-2") && tmpisremark.equals("2")) { + _statusCode = 2; + viewCount++; + } + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select operatetype from workflow_currentoperator where id=?", tmpcurrid); + if (recordSet.next()) { + int operatetype = recordSet.getInt(1); + if (operatetype == 3) {//退回 + _statusCode = 8; + } else if (operatetype == 4) {//被撤回 + _statusCode = 9; + } + } + + + listcount++; + if ("view".equals(desremark)) {//3:已查看 + if (processuser.equals(tmpuserid) && ("2".equals(tmpisremark) || "4".equals(tmpisremark))) { + listcount--; + } + } + String _receivedate = ""; + String _operatedate = ""; + String _intervel = ""; + + if (!tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + _receivedate = Util.toScreen(tmpreceivedate, user.getLanguage()) + " " + Util.toScreen(tmpreceivetime, user.getLanguage()); + } + _operatedate = Util.toScreen(tmpoperatedate, user.getLanguage()) + " " + Util.toScreen(tmpoperatetime, user.getLanguage()); + + _intervel = Util.toScreen(tmpIntervel, user.getLanguage()); + + _statusmap.put("statuscode", String.valueOf(_statusCode)); + _statusmap.put("operator", _statususername); + _statusmap.put("receivedate", _receivedate); + _statusmap.put("operatedate", _operatedate); + _statusmap.put("intervel", _intervel); + _statusmap.put("operatorid", _operatorid); + _statusmap.put("operatortype", _operatortype); + _statusmap.put("beagentid", _beagentid); + _statusmap.put("beagentname", _beagentname); + _statusmap.put("nodetype", nodetype); + + //所有节点 + nodeallstatuslist.add(_statusmap); + //查看状态 1:未查看, 2::以查看, 3:已提交, 4:暂停, 5:撤销, 6:启用 7:已查阅 + if ((tmpisremark.equals("2") || (tmpisremark.equals("4") && preisremark == 11)) && (flags || tmpuserid.equals(processuser))) { + nodesubmitstatuslist.add(_statusmap); + } else if (tmpisremark.equals("0") || tmpisremark.equals("1") || tmpisremark.equals("5") || tmpisremark.equals("4") || tmpisremark.equals("8") || tmpisremark.equals("9") || tmpisremark.equals("7") || tmpisremark.equals("11") || (tmpisremark.equals("2") && !flags)) { + if (viewtype.equals("-2") || (viewtype.equals("-1") && !tmpoperatedate.equals(""))) { + nodeviewstatuslist.add(_statusmap); + } else if (viewtype.equals("0")) { + nodenoviewstatuslist.add(_statusmap); + } + } + + if ((!tmpisremark.equals("2") && !tmpisremark.equals("4")) || (tmpisremark.equals("4") && viewtype.equals("0"))) { + if (!tmpisremark.equals("s") && !tmpisremark.equals("s") && !tmpisremark.equals("c") && !tmpisremark.equals("r")) { + nodenosubmitstatuslist.add(_statusmap); + } + } + } + //--已提交、已查看、未查看 + all_nodemap_in.put("submitCount", submitCount);//--已提交 + all_nodemap_in.put("viewCount", viewCount);//--已查看 + all_nodemap_in.put("noviewCount", noviewCount);//--未查看 + if ("submit".equals(desremark)) {//1:已提交 + //提交节点信息 + submit_nodemap_in.put("listcount", listcount); + result.putAll(submitstatusmap); + } else if ("nosubmit".equals(desremark)) {//2:未提交 + nosubmit_nodemap_in.put("listcount", listcount); + result.putAll(nosubmitstatusmap); + } else if ("view".equals(desremark)) {//3:已查看 + view_nodemap_in.put("listcount", listcount); + result.putAll(viewstatusmap); + } else if ("noview".equals(desremark)) {//4:未查看 + noview_nodemap_in.put("listcount", listcount); + result.putAll(noviewstatusmap); + } else { + //所有节点信息 + all_nodemap_in.put("listcount", listcount); + result.putAll(allstatusmap); + } + lastNodeId = fnodeid; + } +// if(maxid == currentMaxId){ +// isfinish = 1; +// } + putpara.put("nodeindex", index + ""); + putpara.put("currentMaxId", currentMaxId + ""); + putpara.put("currentMinId", currentMinId + ""); + putpara.put("currentId", currentId + "_" + currentId2); + putpara.put("lastNodeId", lastNodeId + ""); + putpara.put("viewlogids", viewlogids + ""); + result.put("parameter", putpara); + result.put("otherTime", new Date().getTime() - date1); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + %> diff --git a/interface/transfer/testError2.jsp b/interface/transfer/testError2.jsp new file mode 100644 index 0000000..6e1be93 --- /dev/null +++ b/interface/transfer/testError2.jsp @@ -0,0 +1,99 @@ + +<%@ page import="java.io.*" %> +<%@ page import="weaver.hrm.User" %> +<%@ page import="java.util.*" %> +<%@ page import="freemarker.template.Configuration" %> +<%@ page import="freemarker.template.TemplateExceptionHandler" %> +<%@ page import="freemarker.template.Template" %> +<%@ page import="java.nio.charset.StandardCharsets" %> + + +<% + String TemplatePath = "/opt/weaver/filesys/"; + //String TemplateName = "html模版.ftl"; + String TemplateName = "qwer.ftl"; + Map root = new HashMap<>(); + // root.put("title", "期末成绩表"); + + ArrayList list = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("lastname",new User(22).getLastname() ); + map.put("subject", new User(22).getLastname() ); + map.put("achievement", "98"); + list.add(map); + Map map2 = new HashMap<>(); + map2.put("lastname", new User(22).getLastname() ); + map2.put("subject", new User(22).getLastname()); + map2.put("achievement", "97"); + list.add(map2); + list.add(map2); + list.add(map2); + list.add(map2); + list.add(map2); + + ArrayList lists = new ArrayList(); + root.put("achievementList", list); + lists.add(root); + lists.add(root); + lists.add(root); + + Map roots = new HashMap(); + System.out.println(lists.size()); + roots.put("testlist",lists); + //generate(TemplatePath, TemplateName, root, "shengcheng.html"); + generate(TemplatePath, TemplateName, roots, "shengcheng1.docx"); + +%> + +<%! + /** + * @param TemplatePath 模版存放目录 + * @param TemplateName 模版名 + * @param root 填充的数据 + * @param GenerateFilename 生成文件名 + * @throws Exception + */ + public static void generate(String TemplatePath, String TemplateName, Map root, String GenerateFilename) throws Exception { + Configuration cfg = new Configuration(); + //指定模板文件的来源目录 + cfg.setDirectoryForTemplateLoading(new File(TemplatePath)); + cfg.setDefaultEncoding("UTF-8"); + //设置错误的显示方式(日志) + //在生产系统中:TemplateExceptionHandler.RETHROW_HANDLER 默认值 + //在开发HTML模板期间:TemplateExceptionHandler.HTML_DEBUG_HANDLER + //在开发非HTML模板期间:TemplateExceptionHandler.DEBUG_HANDLER + cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + + + //获取模板文件 + Template temp = cfg.getTemplate(TemplateName); + //合并模板和数据模型 + File file = new File(TemplatePath + "new-built"); + //如果文件夹不存在,则创建文件夹 + if (!file.exists()) { + //file.mkdirs();//多级目录 + file.mkdir();//只创建一级目录 + } + //Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(TemplatePath + "new-built/" + GenerateFilename)));//输出文件 + // FileWriter out = new FileWriter(TemplatePath + "new-built/" + GenerateFilename); + //Writer out = new OutputStreamWriter(System.out);//输出控制台 + //StringWriter out = new StringWriter();//输出为字符串,可作为接口动态返回 + + + FileOutputStream fos = new FileOutputStream(TemplatePath + "new-built/" + GenerateFilename); + Writer out = new OutputStreamWriter(fos, StandardCharsets.UTF_8); + temp.process(root, out); + out.flush();//可不手动调用 + } + + public static String codeUtf8(String text) { + String ISOtext = null; + ISOtext = new String(text.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); + return new String(ISOtext.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + + } + +%> + + diff --git a/interface/transfer/testError3.jsp b/interface/transfer/testError3.jsp new file mode 100644 index 0000000..70e1043 --- /dev/null +++ b/interface/transfer/testError3.jsp @@ -0,0 +1,52 @@ +<%@ page import="org.apache.poi.xwpf.usermodel.XWPFDocument" %> +<%@ page import="cn.afterturn.easypoi.word.WordExportUtil" %> +<%@ page import="java.nio.charset.StandardCharsets" %> +<%@ page import="java.io.*" %> +<%@ page import="weaver.hrm.User" %> +<%@ page import="com.engine.workflow.cmd.requestForm.StatusDataCmd" %> +<%@ page import="com.engine.core.interceptor.CommandContext" %> +<%@ page import="com.api.workflow.service.RequestAuthenticationService" %> +<%@ page import="java.util.*" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="com.alibaba.fastjson.JSON" %> +<%@ page import="weaver.workflow.monitor.Monitor" %> +<%@ page import="weaver.workflow.workflow.WorkflowConfigComInfo" %> +<%@ page import="weaver.hrm.resource.ResourceComInfo" %> +<%@ page import="weaver.crm.Maint.CustomerInfoComInfo" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeServiceBiz" %> +<%@ page import="weaver.general.TimeUtil" %> +<%@ page import="com.api.workflow.util.ServiceUtil" %> +<%@ page import="com.engine.workflow.biz.RobotNode.RobotNodeBiz" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="java.nio.charset.Charset" %> +<%@ page import="weaver.rtx.ChangeCharset" %> +<%@ page import="weaver.soa.workflow.request.RequestService" %> +<%@ page import="weaver.soa.workflow.request.RequestInfo" %> +<%@ page import="weaver.interfaces.workflow.action.WorkflowToDoc" %> +<%@ page import="weaver.workflow.request.RequestManager" %> +<%@ page import="com.engine.custom.archives.action.WorkflowToDocCus" %> +<%@ page import="okhttp3.*" %> +<%@ page import="weaver.docs.docs.DocRecycleManager" %> + + +<% + response.setCharacterEncoding("utf-8"); + String requestid = "607615"; + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + out.print(JSONObject.toJSONString(requestInfo)); +%> + +<%! + + public static void deleteDocByid(String docid){ + DocRecycleManager docRecycleManager=new DocRecycleManager(); + User user = new User(1); + docRecycleManager.moveDocToRecycle(user.getUID(), user.getLogintype(), Util.getIntValue(docid), "127.0.0.1"); + docRecycleManager.deleteDocFromRecycle(user.getUID(), user.getLogintype(), weaver.general.Util.getIntValue(docid), "127.0.0.1"); + } + +%> + + diff --git a/interface/transfer/testPost.jsp b/interface/transfer/testPost.jsp new file mode 100644 index 0000000..7c13c35 --- /dev/null +++ b/interface/transfer/testPost.jsp @@ -0,0 +1,99 @@ +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="java.util.*" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="com.alibaba.fastjson.JSONArray" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="java.sql.Array" %> +<%@ page import="com.wbi.util.Util" %> +<%@ page import="java.math.BigDecimal" %> +<%@ page import="tebie.applib.api.O" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + Map param = ParamUtil.request2Map(request); + String[] yffieldArr = {"y4","y5","y6","y7","y8","y9","y10","y11","y12","y1","y2","y3"}; + + List yffieldList = new ArrayList<>(Arrays.asList(yffieldArr)); + + // out.print(JSONObject.toJSONString(param)); + String sql = "select zx. *,kyb.ky ,jz.syry from " + + "uf_axyssjzx zx " + + "left join (select a.budget,ISNULL(nky,0)-ISNULL(am,0) as ky from " + + "(select sum(budgetAmount) nky, depart,subject,budget,year ,departMemberId,subjectMemberId,budgetMemberId,yearMemberId " + + "from FnaMultiBudgetAX_3 " + + "group by depart,subject,budget,year ,departMemberId,subjectMemberId,budgetMemberId,yearMemberId) a " + + "left join (select sum(amount) am,budgetMember_1, budgetMember_2 , budgetMember_3 ,budgetMember_4 from FnaExpenseInfo_3_2 " + + "where expenseStaus= 1 or expenseStaus= 0 group by budgetMember_1, budgetMember_2 , budgetMember_3 ,budgetMember_4 ) b " + + "on a.budget = b.budgetMember_3 where a.budget is not null and a.budget != 'null') kyb " + + "on zx.id = kyb.budget " + + "left join matrixtable_33 jz " + + "on zx.YSBMYSBS = jz.ysbm " + + "WHERE zx.zt = 0"; + String data = (String) param.get("data"); + String sxyf = "y"+(String) param.get("sxyf"); + + int index = yffieldList.indexOf(sxyf); + // out.print("sxyf=====>"+sxyf); + // out.print("
"); + // out.print("index=====>"+index); + // out.print("
"); + List subList = new ArrayList<>(); + if (index != -1) { + subList = yffieldList.subList(index , yffieldList.size()); + System.out.println(subList); // 打印剩余元素 + } + // out.print("subList=====>"+subList); + // out.print("
"); + RecordSet recordSet = new RecordSet(); + JSONArray objects = JSONObject.parseArray(data); + ArrayList ids = new ArrayList<>(); + for (int i = 0; i ysMap = new HashMap<>(); + while (recordSet.next()){ + // out.print(recordSet.getString("YSBHYSFH")); + // out.print("----------"); + // out.print(recordSet.getString("YSKMBH")); + // out.print("
"); + ysMap.put(Util.null2String(recordSet.getString("id")),Util.null2String(recordSet.getString("ky"))); + } + ArrayList errorList = new ArrayList<>(); + String errorTxt = ""; + for (int i = 0; i >>>>>"+sum.toString()); + + BigDecimal kyys = new BigDecimal(ysMap.get(bh)); + // out.print(">>>>>>"+kyys.toString()); + // out.print("
"); + if (sum.compareTo(kyys)>0){ + errorList.add(bh); + String bhName = (String)map.get("bhName"); + errorTxt = errorTxt + " " + bhName; + } + } + HashMap result = new HashMap<>(); + result.put("errList",errorList); + result.put("errTxt",errorTxt); + out.print(JSONObject.toJSONString(result)); + +%> +<%! + +%> \ No newline at end of file diff --git a/interface/transfer/testXML.jsp b/interface/transfer/testXML.jsp new file mode 100644 index 0000000..4a087c6 --- /dev/null +++ b/interface/transfer/testXML.jsp @@ -0,0 +1,75 @@ +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="java.util.*" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="com.alibaba.fastjson.JSONArray" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="java.sql.Array" %> +<%@ page import="com.wbi.util.Util" %> +<%@ page import="java.math.BigDecimal" %> +<%@ page import="tebie.applib.api.O" %> +<%@ page import="weaver.general.BaseBean" %> +<%@ page import="javax.xml.parsers.SAXParserFactory" %> +<%@ page import="javax.xml.parsers.SAXParser" %> +<%@ page import="java.io.InputStream" %> +<%@ page import="java.io.ByteArrayInputStream" %> +<%@ page import="com.engine.util.XMLUtils" %> +<%@ page import="org.xml.sax.helpers.DefaultHandler" %> +<%@ page import="org.xml.sax.Attributes" %> +<%@ page import="org.xml.sax.SAXException" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + + +%> +<%! + public static Map parseXMLToMap(String xmlString) { + new BaseBean().writeLog("XMLUtils:xmlString==>"+xmlString); + Map resultMap = new HashMap<>(); + try { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + + InputStream xmlInput = new ByteArrayInputStream(xmlString.getBytes("UTF-8")); + saxParser.parse(xmlInput, new XMLUtils.SAXHandler(resultMap)); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + + private static class SAXHandler extends DefaultHandler { + private Map resultMap; + private Stack elementStack = new Stack<>(); + private StringBuilder elementValue = new StringBuilder(); + + public SAXHandler(Map resultMap) { + this.resultMap = resultMap; + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + elementStack.push(qName); + elementValue.setLength(0); // 清空字符缓存 + } + + @Override + public void endElement(String uri, String localName, String qName) throws SAXException { + String value = elementValue.toString().trim(); + if (!value.isEmpty()) { + // 如果当前元素有值且没有子元素,则将其添加到结果Map中 + if (elementStack.size() > 1) { + resultMap.put(elementStack.peek(), value); + } + } + elementStack.pop(); + } + + @Override + public void characters(char[] ch, int start, int length) throws SAXException { + elementValue.append(ch, start, length); + } + } +%> \ No newline at end of file diff --git a/interface/transfer/最终测试一下1106.html b/interface/transfer/最终测试一下1106.html new file mode 100644 index 0000000..2ef0ce8 --- /dev/null +++ b/interface/transfer/最终测试一下1106.html @@ -0,0 +1,2580 @@ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + 天津银行总行 
收文阅办单
+ +
+
+ +
+ + + 标题 + +
+
+ +
+ + + 最终测试一下1106 + +
+
+ +
+ + + 来文单位 + +
+
+ +
+ + + +市委组织部 + + + + + + + +
+
+ +
+ + + 收文号 + +
+
+ +
+ + + 2023-S139号 + +
+
+ +
+ + + 来文号 + +
+
+ +
+ + + + +
+
+ +
+ + + 反馈时限 + +
+
+ +
+ + + + +
+
+ +
+ + + 分发意见 + +
+
+ +
+ + + + + + + + + +
+
+ 办公室/ + 测试-杨芳_10110033[ + 2023-11-06  + 14:16:33]: + 测试_10110013、个人金融部、信用卡部、测试_10110223、信息技术部  + +
23
+
+
+ +
+ + + 行外收文 + +
+
+ +
+ + + 正文 + +
+
+ +
+ + + + +
+
+ +
+ + + 正文 + +
+
+ +
+ + + + +
+
+ +
+ + + 附件 + +
+
+ +
+ + + +
+ +
+
+ +
+ + + 备注 + +
+
+ +
+ + + + +
+
+ +
+ + + 行领导意见 + +
+
+ +
+ + + + + + + + + + + +
+
+ 行领导/ + 测试_10110013[ + 2023-11-06  + 14:18:30]: + 行领导阅批  + +
22
+ + + + + + + + + + +
+
+ 行领导/ + 测试_10110223[ + 2023-11-06  + 14:18:01]: + 行领导阅知  + +
22
+ + +
+
+ +
+ + + 主办部门办理意见 + +
+
+ +
+ + + + + + + + + + + +
+
+ 个人金融部/ + 测试_10110141[ + 2023-11-06  + 15:13:31]: + 阅办——部门领导2  + +
30
+
+ 信用卡部/ + 测试_10110152[ + 2023-11-06  + 14:21:08]: + 阅办——部门领导1  + +
31
+ + + + + + + + + + + + + + +
+
+ 个人金融部/ + 测试_10111252[ + 2023-11-07  + 11:15:40]: + 阅办——员工6  + +
30
+
+ 个人金融部/ + 测试_10110145[ + 2023-11-07  + 10:50:31]: + 阅办——员工3  + +
30
+
+ 信用卡部/ + 测试_10110160[ + 2023-11-06  + 15:04:50]: + 阅办——又回到员工2  + +
31
+
+ 信用卡部/ + 测试_10110155[ + 2023-11-06  + 14:48:50]: + 阅办——又回到员工1  + +
31
+ + +
+
+ +
+ + + 协办部门办理意见 + +
+
+ +
+ + + + + + + + + + + +
+
+ 安全保卫部(人民武装部)/ + 测试_10111050[ + 2023-11-07  + 10:58:21]: + 部门协办——领导6  + +
50
+
+ 综合管理团队/ + 测试_10110772[ + 2023-11-07  + 10:56:04]: + 部门协办——领导5  + +
3490
+
+ 授信管理部/ + 测试_10110277[ + 2023-11-06  + 14:56:41]: + 部门协办——领导4
 
+ +
36
+
+ 资产保全部/ + 测试_10110308[ + 2023-11-06  + 14:54:13]: + 部门协办——领导3  + +
37
+
+ 法律事务部/ + 测试_10110349[ + 2023-11-06  + 14:46:03]: + 部门协办——领导2  + +
38
+
+ 运营管理部/ + 测试_10110396[ + 2023-11-06  + 14:43:47]: + 部门协办——领导1  + +
42
+ + + + + + + + + + + + + + +
+
+ 安全保卫部(人民武装部)/ + 测试_10111050[ + 2023-11-07  + 10:59:00]: + 部门协办——员工6  + +
50
+
+ 综合管理团队/ + 测试_10110772[ + 2023-11-07  + 10:56:46]: + 部门协办——员工5  + +
3490
+
+ 授信管理部/ + 测试_10110277[ + 2023-11-06  + 14:58:08]: + 部门协办——员工4  + +
36
+
+ 资产保全部/ + 测试_10110308[ + 2023-11-06  + 14:54:56]: + 部门协办——员工3  + +
37
+
+ 法律事务部/ + 测试_10110349[ + 2023-11-06  + 14:46:31]: + 部门协办-员工办理2  + +
38
+
+ 运营管理部/ + 测试_10110396[ + 2023-11-06  + 14:44:25]: + 部门协办-员工办理1  + +
42
+ + +
+
+ +
+ + + 阅件部门办理意见 + +
+
+ +
+ + + + + + + + + + + +
+
+ 信息技术部/ + 测试_10110632[ + 2023-11-06  + 14:19:16]: + 阅知——部门领导  + +
48
+ + + + + + + + + + + + + + +
+
+ 信息技术部/ + 测试_10110632[ + 2023-11-06  + 14:19:47]: + 阅知——员工办理  + +
48
+ + +
+
+ +
+ + + 矩阵 + +
+
+ +
+ + + + +
+
+ +
+ + + 阅办负责人 + +
+
+ +
+ + + 魏来 + +
+
+ +
+ + + 抄送人员 + +
+
+ + +
+ +
+ + + 当前部门 + +
+
+ +
+ + + + +
+
+ +
+ + + 测试_10110223 + +
+
+ +
+ + + 是否屏蔽移动端 + +
+
+ +
+ + + + +
+
+ +
+ + + 办理期限 + +
+
+ +
+ + + 2023-12-11 + +
+
+
+ +
+ +
+
+
+ +
+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110141

+

2023-11-07 11:29:53[综合文员 / 提交]

+
+
+
+ + + + + + + +
+
+ + +
+
+
+ 自动流转至下一操作者 +
+
+
+
+

接收人 : 测试_10110141

+

2023-11-07 11:15:41[员工办理 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_fenfa

+

2023-11-06 15:13:51[综合文员 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 阅办——部门领导2 +
+
+
+
+

接收人 : 测试_10110141

+

2023-11-06 15:13:31[部门领导批示 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110141

+

2023-11-06 15:13:07[部门文员办理 / 提交]

+
+
+
+ + + + + + + +
+
+ + +
+
+
+ 自动流转至下一操作者 +
+
+
+
+

接收人 : 测试_10110152

+

2023-11-06 15:04:50[员工办理 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_fenfa

+

2023-11-06 14:31:06[综合文员 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 阅办——部门领导1 +
+
+
+
+

接收人 : 测试_10110152

+

2023-11-06 14:21:08[部门领导批示 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110152

+

2023-11-06 14:20:46[部门文员办理 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:20:06[综合文员 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 阅知——员工办理 +
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:19:47[员工办理 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:19:32[综合文员 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 阅知——部门领导 +
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:19:16[部门领导批示 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:19:00[部门文员办理 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 行领导阅批 +
+
+
+
+

接收人 : 测试_10110013

+

2023-11-06 14:18:30[行领导 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+ 行领导阅知 +
+
+
+
+

接收人 : 测试_10110223

+

2023-11-06 14:18:01[行领导 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110223

+

2023-11-06 14:16:35[自动发起 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110632

+

2023-11-06 14:16:35[自动发起 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110013

+

2023-11-06 14:16:34[自动发起 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110152

+

2023-11-06 14:16:34[自动发起 / 提交]

+
+
+
+ + + + + + + +
+ +
+
+
+
+
+
+

接收人 : 测试_10110141

+

2023-11-06 14:16:33[自动发起 / 提交]

+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/produce/23/transfer.zip b/produce/23/transfer.zip deleted file mode 100644 index d91af08..0000000 Binary files a/produce/23/transfer.zip and /dev/null differ diff --git a/produce/23/transfer/EntranceQQEmail.jsp b/produce/23/transfer/EntranceQQEmail.jsp new file mode 100644 index 0000000..58f5ff8 --- /dev/null +++ b/produce/23/transfer/EntranceQQEmail.jsp @@ -0,0 +1,33 @@ +<%@ page import="weaver.integration.entrance.bean.OutterLoginBean" %> +<%@ page import="weaver.integration.entrance.service.EntranceService" %> +<%@ page import="weaver.integration.entrance.service.IEntranceService" %> +<%@ page import="weaver.integration.entrance.service.IOutterSysServer" %> +<%@ page import="weaver.integration.entrance.service.impl.QQMailServer" %> +<%@ page import="weaver.integration.entrance.service.permission.IPermissionService" %> +<%@ page import="weaver.integration.entrance.service.permission.PermissionService" %> +<%@ page language="java" contentType="text/html; charset=GBK" %> +<%--<%@ include file="/systeminfo/init.jsp"%>--%> +<%@ page import="weaver.general.Util" %> +<%@ page import="java.util.Objects" %> +<%@ page import="java.util.Map" %> + + + + +<% + IPermissionService permissionService=new PermissionService(); + String operationType = permissionService.getOperationType(request); + String sysid = Util.null2String(request.getParameter("id"));// ϵͳʶ + + IEntranceService entranceService = new EntranceService(); + IOutterSysServer qqMailServer = new QQMailServer(); + OutterLoginBean loginBean = entranceService.getLoginBean(qqMailServer, sysid, operationType, request, response); + + Map qqMap = entranceService.getUrl(qqMailServer, loginBean, operationType, request, response); + + if (Objects.nonNull(qqMap)){ + if (Objects.nonNull(qqMap.get("isRedirect")) && "true".equals(qqMap.get("isRedirect"))){ + response.sendRedirect(qqMap.get("redirectUrl").toString()); + } + } +%> \ No newline at end of file diff --git a/produce/23/transfer/integration.log b/produce/23/transfer/integration.log new file mode 100644 index 0000000..f22c361 --- /dev/null +++ b/produce/23/transfer/integration.log @@ -0,0 +1,1324 @@ +2024-02-04 16:55:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 16:55:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 16:55:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 16:55:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,024 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 16:55:00,025 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 16:55:00,030 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:00,034 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 16:55:08,274 WARN [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=11012&isremark=0&sysId=-2&flowId=7713ea7bde8f09a9747a211be719748b&workflowId=-149×tamp=1707036884908 +2024-02-04 16:55:08,275 INFO [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110610 +2024-02-04 16:55:08,275 INFO [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-2, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=7713ea7bde8f09a9747a211be719748b, workflowId=-149, timestamp=1707036884908} +2024-02-04 16:55:08,275 INFO [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110610 +2024-02-04 16:55:08,684 ERROR [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=11012 +2024-02-04 16:55:08,685 ERROR [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 16:55:08,688 INFO [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:GnpkTY7lvu4wxMoy4PBqPsqoqeyHHDQwK5osgcpZOuI= +2024-02-04 16:55:08,688 INFO [Thread:WeaverHttp&10110610&16:55:08&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=kdFVFv3yuOIIRBBhpr%2FSt5ukBWpudYEN0PpekT670IsFd3ZWq2hhY800qJs3e64vTo7AKmzU4duf9KrqoV1JQZredgfWnEC6pii9pM%2BpipalCiE28VnsmkE8CCP%2FXCE%2F3faoEkWUyTbg01iXzQHFbPH3O7WMUsHXA7%2FG%2BiZk85uuDCoxNs%2FPGh52oI1FYsNtfiLgaO2A2JyMvjJppx9pfh4m5sdLcAAdgqX4JmZw18uz0KPX8GlWfKnCTzU%2BfKWs2UQK9vE3GmL8swcB3RWqV%2BNvQzxAPzXT7LqilWyXWopo0acwrZKc%2Fh5OFAYMoPIumxR2w0vfA1hKBG8rCbIdwiPImNJn0MI7MeoeUXZ20VwKW%2FFpBLY6gU%2BahP9ID9YI3rkMDWLHDgoNB6ZB%2BgsL0PWvWv18NQN4Q5gcwQ5L3Pw2QAEwfvVGAGYrdeE%2Bwsqp4mZeRvch1CReLcAvFYPxsnQwSYSlM4QvGEZteSPmGiGVuCp1KG8vyyWE3P3CZVHTynkaZ6Rlzaatvgr4BYZuNDfoyRP6v8PB8fojbnnZg8R8PpG39OW9NOWCp6Rom1cHxxOiMDURx2DilohfNQBrx4JuYidjxtf9q6v%2FjCfzz%2FKqdKTcAUZVbmosyRvCCVE%2Ffu0ylOXPytMKHCa5A3Mm0IgotkQTXckM4gEkCloNMYs%3D&loginid=10110610&stamp=1707036908687&token=GnpkTY7lvu4wxMoy4PBqPsqoqeyHHDQwK5osgcpZOuI%3D +2024-02-04 16:55:12,765 WARN [Thread:WeaverHttp&10110610&16:55:12&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=8846&isremark=0&sysId=-2&flowId=d21b37c990de898bcf6c1d6cea28c2fc&workflowId=-149×tamp=1707036889383 +2024-02-04 16:55:12,766 INFO [Thread:WeaverHttp&10110610&16:55:12&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110610 +2024-02-04 16:55:12,766 INFO [Thread:WeaverHttp&10110610&16:55:12&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-2, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=d21b37c990de898bcf6c1d6cea28c2fc, workflowId=-149, timestamp=1707036889383} +2024-02-04 16:55:12,766 INFO [Thread:WeaverHttp&10110610&16:55:12&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110610 +2024-02-04 16:55:13,130 ERROR [Thread:WeaverHttp&10110610&16:55:13&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=8846 +2024-02-04 16:55:13,130 ERROR [Thread:WeaverHttp&10110610&16:55:13&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 16:55:13,133 INFO [Thread:WeaverHttp&10110610&16:55:13&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:GnpkTY7lvu4wxMoy4PBqPp8uflib7zDpU9fIrI4gquc= +2024-02-04 16:55:13,133 INFO [Thread:WeaverHttp&10110610&16:55:13&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=kdFVFv3yuOIIRBBhpr%2FSt5ukBWpudYEN0PpekT670IsFd3ZWq2hhY800qJs3e64vTo7AKmzU4duf9KrqoV1JQZredgfWnEC6pii9pM%2BpipalCiE28VnsmkE8CCP%2FXCE%2F3faoEkWUyTbg01iXzQHFbPH3O7WMUsHXA7%2FG%2BiZk85uuDCoxNs%2FPGh52oI1FYsNtfiLgaO2A2JyMvjJppx9pfh4m5sdLcAAdgqX4JmZw18uz0KPX8GlWfKnCTzU%2BfKWs2UQK9vE3GmL8swcB3RWqV%2BNvQzxAPzXT7LqilWyXWopo0acwrZKc%2Fh5OFAYMoPIumxR2w0vfA1hKBG8rCbIdwk7SLLCep23s1DYPqedsx4cKW%2FFpBLY6gU%2BahP9ID9YI3rkMDWLHDgoNB6ZB%2BgsL0PWvWv18NQN4Q5gcwQ5L3PyldDtc8etKaAa9%2BN2AlLaI7rFyMcmaTFzQ%2FVysq0sBEWSkUyv%2F0PDsiYc5gnPAOOKoStSDJp7%2FatQiStS3K51ADYf1CJ0LObK0OwJ7%2FouLD5igCJY9ZtzPfMBHYRqrEa%2BR1FPl0fMDBni%2FYD9njVm8wBbvQEFAwp7d9ZoBXRLDnmFRolPkVB%2BjVBqp5MnoeV8EJH5D379z1LvOJorMLHIU%2FN1cv7eIVNQaQCc%2FknR%2F7ZrsD75wXUI3AkE%2B%2FtA8SP4%3D&loginid=10110610&stamp=1707036913132&token=GnpkTY7lvu4wxMoy4PBqPp8uflib7zDpU9fIrI4gquc%3D +2024-02-04 16:55:18,581 WARN [Thread:WeaverHttp&10110610&16:55:18&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=8074&isremark=0&sysId=-2&flowId=3e173d77033570b6a8de00a9a4b707e1&workflowId=-149×tamp=1707036895205 +2024-02-04 16:55:18,581 INFO [Thread:WeaverHttp&10110610&16:55:18&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110610 +2024-02-04 16:55:18,582 INFO [Thread:WeaverHttp&10110610&16:55:18&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-2, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=3e173d77033570b6a8de00a9a4b707e1, workflowId=-149, timestamp=1707036895205} +2024-02-04 16:55:18,582 INFO [Thread:WeaverHttp&10110610&16:55:18&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110610 +2024-02-04 16:55:19,024 ERROR [Thread:WeaverHttp&10110610&16:55:19&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=8074 +2024-02-04 16:55:19,024 ERROR [Thread:WeaverHttp&10110610&16:55:19&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 16:55:19,027 INFO [Thread:WeaverHttp&10110610&16:55:19&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:GnpkTY7lvu4wxMoy4PBqPjiEhIa0W7XGAp6E/KOK4Z8= +2024-02-04 16:55:19,027 INFO [Thread:WeaverHttp&10110610&16:55:19&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=kdFVFv3yuOIIRBBhpr%2FSt5ukBWpudYEN0PpekT670IsFd3ZWq2hhY800qJs3e64vTo7AKmzU4duf9KrqoV1JQZredgfWnEC6pii9pM%2BpipalCiE28VnsmkE8CCP%2FXCE%2F3faoEkWUyTbg01iXzQHFbPH3O7WMUsHXA7%2FG%2BiZk85uuDCoxNs%2FPGh52oI1FYsNtfiLgaO2A2JyMvjJppx9pfh4m5sdLcAAdgqX4JmZw18uz0KPX8GlWfKnCTzU%2BfKWs2UQK9vE3GmL8swcB3RWqV%2BNvQzxAPzXT7LqilWyXWopo0acwrZKc%2Fh5OFAYMoPIumxR2w0vfA1hKBG8rCbIdws2PKEMPbfY2YYKdfM%2FtWlsKW%2FFpBLY6gU%2BahP9ID9YI3rkMDWLHDgoNB6ZB%2BgsL0PWvWv18NQN4Q5gcwQ5L3PyldDtc8etKaAa9%2BN2AlLaI7rFyMcmaTFzQ%2FVysq0sBEWSkUyv%2F0PDsiYc5gnPAOOKoStSDJp7%2FatQiStS3K51ADYf1CJ0LObK0OwJ7%2FouLD5igCJY9ZtzPfMBHYRqrEa%2BR1FPl0fMDBni%2FYD9njVm8YSODMyUYh9AU8BZd0NOsoMRLLMCvO2LsQhiOwZNqA%2FwOFaaX6qQ01rn4fmLDDOtA%2FN1cv7eIVNQaQCc%2FknR%2F7ZrsD75wXUI3AkE%2B%2FtA8SP4%3D&loginid=10110610&stamp=1707036919026&token=GnpkTY7lvu4wxMoy4PBqPjiEhIa0W7XGAp6E%2FKOK4Z8%3D +2024-02-04 16:55:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:30,002 INFO [Thread:DefaultQuartzScheduler_Worker-28] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 16:55:30,012 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:55:30,018 INFO [Thread:DefaultQuartzScheduler_Worker-28] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 16:56:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:56:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 16:56:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 16:56:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 16:56:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 16:56:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 16:56:00,028 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 16:56:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 16:56:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ9 +2024-02-04 16:56:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:56:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 16:56:09,186 INFO [Thread:WeaverHttp&&16:56:09&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 16:56:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:56:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-30] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 16:56:30,011 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:56:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-30] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 16:57:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-31] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 16:57:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-31] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 16:57:56,526 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,529 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,532 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,533 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,533 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,536 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:56,536 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:57:58,789 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:58:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:58:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 16:58:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 16:58:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 16:58:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 16:58:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 16:58:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 16:58:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 16:58:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 16:58:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:58:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 16:58:30,000 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:58:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 16:58:30,009 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:58:30,012 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 16:59:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:59:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 16:59:30,013 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 16:59:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:00:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-39] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-39] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:00:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-43] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-43] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-40] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-40] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.GoalRemindJob)ʼִ +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-44] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-44] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.OA2HGorn)ʼִ +2024-02-04 17:00:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-46] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-46] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PerformanceRemindJob)ʼִ +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-45] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PLDRZBTX)ʼִ +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-42] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmUpdateOrganizationShowOrderJob)ʼִ +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-48] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-48] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PushCorn)ʼִ +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-50] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:00:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-49] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-49] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.TaskRemindJob)ʼִ +2024-02-04 17:00:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-47] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-47] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PlanRemindJob)ʼִ +2024-02-04 17:00:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-41] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-41] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:00:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-39] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-43] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:00:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:00:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:00:00,023 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:00:00,030 INFO [Thread:DefaultQuartzScheduler_Worker-45] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,032 INFO [Thread:DefaultQuartzScheduler_Worker-39] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:00:00,034 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PLDRZBTX)ִС +2024-02-04 17:00:00,035 INFO [Thread:DefaultQuartzScheduler_Worker-41] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,038 INFO [Thread:DefaultQuartzScheduler_Worker-43] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:00:00,040 INFO [Thread:DefaultQuartzScheduler_Worker-44] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,042 INFO [Thread:DefaultQuartzScheduler_Worker-46] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:00:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:00:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-41] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:00:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ23 +2024-02-04 17:00:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-50] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,047 INFO [Thread:DefaultQuartzScheduler_Worker-44] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.OA2HGorn)ִС +2024-02-04 17:00:00,048 INFO [Thread:DefaultQuartzScheduler_Worker-46] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PerformanceRemindJob)ִС +2024-02-04 17:00:00,051 INFO [Thread:DefaultQuartzScheduler_Worker-50] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:00:00,053 INFO [Thread:DefaultQuartzScheduler_Worker-49] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,059 INFO [Thread:DefaultQuartzScheduler_Worker-49] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.TaskRemindJob)ִС +2024-02-04 17:00:00,065 INFO [Thread:DefaultQuartzScheduler_Worker-47] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,068 INFO [Thread:DefaultQuartzScheduler_Worker-47] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PlanRemindJob)ִС +2024-02-04 17:00:00,080 INFO [Thread:DefaultQuartzScheduler_Worker-40] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,087 INFO [Thread:DefaultQuartzScheduler_Worker-40] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.GoalRemindJob)ִС +2024-02-04 17:00:00,673 INFO [Thread:DefaultQuartzScheduler_Worker-42] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:00,677 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmUpdateOrganizationShowOrderJob)ִС +2024-02-04 17:00:09,241 INFO [Thread:DefaultQuartzScheduler_Worker-48] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:09,247 INFO [Thread:DefaultQuartzScheduler_Worker-48] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PushCorn)ִС +2024-02-04 17:00:30,002 INFO [Thread:DefaultQuartzScheduler_Worker-51] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:30,002 INFO [Thread:DefaultQuartzScheduler_Worker-51] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:00:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-51] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:00:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-51] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:01:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-52] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:01:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-52] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:01:30,011 INFO [Thread:DefaultQuartzScheduler_Worker-52] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:01:30,018 INFO [Thread:DefaultQuartzScheduler_Worker-52] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:02:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-53] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:02:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:02:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:02:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:02:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:02:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:02:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:02:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:02:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ6 +2024-02-04 17:02:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-53] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@41444ad6]" +2024-02-04 17:02:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:03:38,506 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.checkEndUpgrade() - ,sleep... +2024-02-04 17:03:38,512 INFO [Thread:Thread-58] weaver.general.InitServerHrmDBThread.checkEndUpgrade() - ,sleep... +2024-02-04 17:03:38,516 INFO [Thread:Thread-59] weaver.general.InitServerWorkflowDBThread.checkEndUpgrade() - ,sleep... +2024-02-04 17:03:38,516 INFO [Thread:Thread-60] weaver.general.InitServerHrmDBThread.checkEndUpgrade() - ,sleep... +2024-02-04 17:03:39,507 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - SQLɣִ InitServiceXMLtoDB ... +2024-02-04 17:03:39,515 INFO [Thread:Thread-58] weaver.general.InitServerHrmDBThread.run() - ɣִ InitServerHrmDBThread ... +2024-02-04 17:03:39,516 INFO [Thread:Thread-59] weaver.general.InitServerWorkflowDBThread.run() - ɣִ InitServerWorkflowDBThread ... +2024-02-04 17:03:39,523 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initAllService start... +2024-02-04 17:03:39,555 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistTable() - table(INITSERVICEXMLSTATE) exist +2024-02-04 17:03:39,590 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistTable() - table(INITSERVICEXMLSTATE) exist +2024-02-04 17:03:39,615 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistField() - filed (INITSERVICEXMLSTATE.E8CLEAR) exist +2024-02-04 17:03:39,646 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistTable() - table(INITSERVICEXMLSTATE) exist +2024-02-04 17:03:39,656 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistField() - filed (INITSERVICEXMLSTATE.SMS) exist +2024-02-04 17:03:39,688 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistTable() - table(INITSERVICEXMLSTATE) exist +2024-02-04 17:03:39,699 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistField() - filed (INITSERVICEXMLSTATE.CHECKERRORDATA) exist +2024-02-04 17:03:39,731 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistTable() - table(INITSERVICEXMLSTATE) exist +2024-02-04 17:03:39,744 INFO [Thread:Thread-56] weaver.general.init.InitManager.notExistField() - filed (INITSERVICEXMLSTATE.XMLINITTODB) exist +2024-02-04 17:03:39,744 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initDBState:0,ʼ״̬ñ +2024-02-04 17:03:39,821 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initServicePlugin:1,ʼservicePlugin +2024-02-04 17:03:39,821 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initServiceXML:2,ʼWEB-INF/service/initļ +2024-02-04 17:03:39,827 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initOther:3,ʼ +2024-02-04 17:03:39,827 INFO [Thread:Thread-56] weaver.general.init.InitManager.initAllService() - =================initAllService end... +2024-02-04 17:03:39,827 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼл濪ʼ... +2024-02-04 17:03:39,829 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4DataSource ʼ... +2024-02-04 17:03:39,834 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.loadCache() - ʼԴ ...... +2024-02-04 17:03:39,868 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4DataSource ... +2024-02-04 17:03:39,868 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Action ʼ... +2024-02-04 17:03:39,871 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Action.loadCache() - ʼAction ...... +2024-02-04 17:03:45,817 INFO [Thread:DeploymentService-deployment-on-startup] com.weaver.esb.server.EsbServer.init() - Esb MQ init start.... +2024-02-04 17:03:45,837 INFO [Thread:DeploymentService-deployment-on-startup] com.weaver.esb.server.EsbServer.init() - Esb MQ init end.... +2024-02-04 17:03:45,847 INFO [Thread:DeploymentService-deployment-on-startup] weaver.integration.syncExpData.util.ExpSyncUtil.initSyncCron() - ʼ̹鵵XMLͬƵʿʼ +2024-02-04 17:03:45,847 INFO [Thread:DeploymentService-deployment-on-startup] weaver.integration.syncExpData.util.ExpSyncUtil.initSyncCron() - ʼ̹鵵XMLͬƵʽ +2024-02-04 17:03:45,850 INFO [Thread:DeploymentService-deployment-on-startup] weaver.integration.syncExpData.util.ExpSyncUtil.initSyncCron() - ʼ̹鵵DBͬƵʿʼ +2024-02-04 17:03:45,850 INFO [Thread:DeploymentService-deployment-on-startup] weaver.integration.syncExpData.util.ExpSyncUtil.initSyncCron() - ʼ̹鵵DBͬƵʽ +2024-02-04 17:03:46,135 INFO [Thread:Thread-154] com.engine.odoc.util.signSetting.InitSignModuleThread.doThreadWork() - SQLɣִ InitSignModuleThread ... +2024-02-04 17:03:46,157 INFO [Thread:Thread-154] com.engine.odoc.util.signSetting.InitSignModuleThread.doThreadWork() - ===========InitSignModuleThread end.... +2024-02-04 17:03:46,157 INFO [Thread:Thread-154] com.engine.odoc.util.signSetting.InitSignModuleThread.doThreadWork() - ==========================InitSignModuleThread end... +2024-02-04 17:04:22,338 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Action ... +2024-02-04 17:04:22,338 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Schedule ʼ... +2024-02-04 17:04:22,347 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Schedule.loadCache() - ʼƻ񻺴Start ...... +2024-02-04 17:04:22,596 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Schedule.loadCache() - scheduleԼ뻺쳣(usersids)java.lang.NoSuchFieldException: usersids +2024-02-04 17:04:22,656 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Schedule.loadCache() - scheduleԼ뻺쳣(userIds)java.lang.NoSuchFieldException: userIds +2024-02-04 17:04:22,682 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Schedule ... +2024-02-04 17:04:22,683 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Browser ʼ... +2024-02-04 17:04:22,689 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 ...... +2024-02-04 17:04:22,708 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,715 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:2 +2024-02-04 17:04:22,747 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,747 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:3 +2024-02-04 17:04:22,771 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,771 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:4 +2024-02-04 17:04:22,798 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ false| dbtype : | id:5 +2024-02-04 17:04:22,799 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,799 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:6 +2024-02-04 17:04:22,823 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,823 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:7 +2024-02-04 17:04:22,849 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,849 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:8 +2024-02-04 17:04:22,875 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,875 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:9 +2024-02-04 17:04:22,897 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,897 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:10 +2024-02-04 17:04:22,932 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,932 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:11 +2024-02-04 17:04:22,955 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,956 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:12 +2024-02-04 17:04:22,979 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:22,979 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:13 +2024-02-04 17:04:23,003 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,004 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:14 +2024-02-04 17:04:23,030 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,031 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:15 +2024-02-04 17:04:23,055 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,056 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:16 +2024-02-04 17:04:23,080 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,080 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:17 +2024-02-04 17:04:23,102 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,102 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:18 +2024-02-04 17:04:23,126 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,127 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:19 +2024-02-04 17:04:23,151 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,151 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:20 +2024-02-04 17:04:23,175 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,175 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:21 +2024-02-04 17:04:23,200 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,200 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:22 +2024-02-04 17:04:23,223 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,223 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:23 +2024-02-04 17:04:23,247 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,247 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:24 +2024-02-04 17:04:23,271 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,271 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:25 +2024-02-04 17:04:23,295 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,296 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:26 +2024-02-04 17:04:23,320 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,320 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:27 +2024-02-04 17:04:23,345 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,345 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:28 +2024-02-04 17:04:23,369 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,369 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:30 +2024-02-04 17:04:23,393 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,394 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:31 +2024-02-04 17:04:23,416 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,417 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:32 +2024-02-04 17:04:23,439 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,439 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:33 +2024-02-04 17:04:23,463 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,463 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:34 +2024-02-04 17:04:23,492 ERROR [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4DataSource.getCacheByKey() - ===========ʶ:datasource. +2024-02-04 17:04:23,492 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Browser.loadCache() - ʼ򻺴 Ƿַ֧ҳ true| dbtype :oracle | id:35 +2024-02-04 17:04:23,516 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Browser ... +2024-02-04 17:04:23,516 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4SMS ʼ... +2024-02-04 17:04:23,522 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4SMS ... +2024-02-04 17:04:23,522 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Hrsyn ʼ... +2024-02-04 17:04:23,524 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Hrsyn.loadCache() - ʼHR ...... +2024-02-04 17:04:23,527 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4Hrsyn.loadCache() - ͬ ...... +2024-02-04 17:04:23,528 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4Hrsyn ... +2024-02-04 17:04:23,529 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4WFTrigger ʼ... +2024-02-04 17:04:23,531 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4WFTrigger.loadCache() - ʼʷ ...... +2024-02-04 17:04:23,532 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4WFTrigger.loadCache() - ʼת ...... +2024-02-04 17:04:23,536 INFO [Thread:Thread-56] weaver.interfaces.cache.impl.IntegrationCache4WFTrigger.loadCache() - ʼ ...... +2024-02-04 17:04:23,541 INFO [Thread:Thread-56] weaver.interfaces.cache.CacheManager.loadAllCache() - ==============ʼweaver.interfaces.cache.impl.IntegrationCache4WFTrigger ... +2024-02-04 17:04:23,541 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - ===========InitServiceXMLtoDB end.... +2024-02-04 17:04:23,548 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.isInit() - LC list:177 +2024-02-04 17:04:23,548 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.isInit() - LC res:false +2024-02-04 17:04:23,566 INFO [Thread:Thread-56] org.quartz.impl.StdSchedulerFactory.initialize() - -----------requestedFile : null +2024-02-04 17:04:23,567 INFO [Thread:Thread-56] org.quartz.impl.StdSchedulerFactory.initialize() - -----------ʼƻ 3 ----------- +2024-02-04 17:04:23,694 INFO [Thread:Thread-56] org.quartz.core.QuartzScheduler.addInternalJobListener() - -----------org.quartz.core.ExecutingJobsManager) ! +2024-02-04 17:04:23,704 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - LC started:false +2024-02-04 17:04:23,708 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.getLocalIp() - ====ȡǰڵ IP +2024-02-04 17:04:23,711 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.AuditLogAutoExport +2024-02-04 17:04:23,711 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.systeminfo.timer.LogAuditArchivingJob +2024-02-04 17:04:23,711 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.AuditLogAutoRemind +2024-02-04 17:04:23,711 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.systeminfo.timer.LogAuditDiskSpaceAlertJob +2024-02-04 17:04:23,739 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.AuditLogAutoRemindɹ +2024-02-04 17:04:23,799 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.AutoCountApplyNumTask +2024-02-04 17:04:23,799 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.formmode.quartz.AutoCountApplyNumTask +2024-02-04 17:04:23,800 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.AutoCountApplyNumTaskɹ +2024-02-04 17:04:23,803 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.Birthday +2024-02-04 17:04:23,803 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.Reminder.BirthdayPlanningtask +2024-02-04 17:04:23,803 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.Birthdayɹ +2024-02-04 17:04:23,806 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.BirthdayReminderEmployer +2024-02-04 17:04:23,806 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.Reminder.BirthdayEmployerPlanningtask +2024-02-04 17:04:23,807 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.BirthdayReminderEmployerɹ +2024-02-04 17:04:23,809 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.BlogTiming +2024-02-04 17:04:23,809 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.blog.biz.message.DoSendMessage +2024-02-04 17:04:23,809 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.BlogTimingɹ +2024-02-04 17:04:23,811 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.ChgPasswd +2024-02-04 17:04:23,811 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.Reminder.ChgPasswdPlanningtask +2024-02-04 17:04:23,811 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.ChgPasswdɹ +2024-02-04 17:04:23,814 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.ClearScheduleRunLogJob +2024-02-04 17:04:23,814 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.interfaces.schedule.ClearScheduleRunLogJob +2024-02-04 17:04:23,814 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.ClearScheduleRunLogJobɹ +2024-02-04 17:04:23,817 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.Contract +2024-02-04 17:04:23,817 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.Reminder.ContractPlanningtask +2024-02-04 17:04:23,818 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.Contractɹ +2024-02-04 17:04:23,820 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.CoworkInfluenceJob +2024-02-04 17:04:23,820 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.cowork.biz.cornJob.CoworkInfluenceJob +2024-02-04 17:04:23,820 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.CoworkInfluenceJobɹ +2024-02-04 17:04:23,822 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.CrmContactRemindJob +2024-02-04 17:04:23,822 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.crm.job.CrmContactRemindJob +2024-02-04 17:04:23,823 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.CrmContactRemindJobɹ +2024-02-04 17:04:23,825 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.CrmTimedRemindJob +2024-02-04 17:04:23,825 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.crm.job.CrmTimedRemindJob +2024-02-04 17:04:23,825 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.CrmTimedRemindJobɹ +2024-02-04 17:04:23,827 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.EcodeAuthCheckJob +2024-02-04 17:04:23,827 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.cloudstore.dev.timer.EcodeAuthCheckJob +2024-02-04 17:04:23,827 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.EcodeAuthCheckJobɹ +2024-02-04 17:04:23,829 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.EcologyLogSignatureJob +2024-02-04 17:04:23,830 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.common.biz.EcologyLogSignatureJob +2024-02-04 17:04:23,830 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.EdcAutoCreateTaskJob +2024-02-04 17:04:23,830 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.edc.job.EdcAutoCreateTaskJob +2024-02-04 17:04:23,830 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.EdcAutoCreateTaskJobɹ +2024-02-04 17:04:23,832 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.GoalRemindJob +2024-02-04 17:04:23,832 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.goal.cronjob.GoalRemindJob +2024-02-04 17:04:23,832 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.GoalRemindJobɹ +2024-02-04 17:04:23,834 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.HrmOnLineLogJob +2024-02-04 17:04:23,834 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.online.schedule.HrmOnLineLogJob +2024-02-04 17:04:23,835 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.HrmOnLineLogJobɹ +2024-02-04 17:04:23,837 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.HrmUpdateOrganizationShowOrderJob +2024-02-04 17:04:23,837 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.hrm.biz.HrmUpdateOrganizationShowOrderJob +2024-02-04 17:04:23,838 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.HrmUpdateOrganizationShowOrderJobɹ +2024-02-04 17:04:23,839 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.InitPersonDutyRecordRemindJob +2024-02-04 17:04:23,839 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.api.arrangework.scheduledTasks.InitPersonDutyRecordRemindJob +2024-02-04 17:04:23,840 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.InitPersonDutyRecordRemindJobɹ +2024-02-04 17:04:23,843 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQAutoCardTask +2024-02-04 17:04:23,843 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.hrm.Reminder.KQAutoCardTask +2024-02-04 17:04:23,843 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQAutoCardTaskɹ +2024-02-04 17:04:23,846 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQClearCardLogJob +2024-02-04 17:04:23,846 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.kq.biz.KQClearCardLogJob +2024-02-04 17:04:23,846 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQClearCardLogJobɹ +2024-02-04 17:04:23,849 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQFormatDateChangeJob +2024-02-04 17:04:23,849 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.kq.biz.KQFormatDateChangeJob +2024-02-04 17:04:23,849 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQFormatDateChangeJobɹ +2024-02-04 17:04:23,851 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQSignRemindJob +2024-02-04 17:04:23,852 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.kq.biz.KQSignRemindJob +2024-02-04 17:04:23,852 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQSignRemindJobɹ +2024-02-04 17:04:23,854 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQTodayFormatJob +2024-02-04 17:04:23,854 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.kq.biz.KQTodayFormatJob +2024-02-04 17:04:23,855 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQTodayFormatJobɹ +2024-02-04 17:04:23,857 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.KQYesterdayFormatJob +2024-02-04 17:04:23,857 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.kq.biz.KQYesterdayFormatJob +2024-02-04 17:04:23,858 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.KQYesterdayFormatJobɹ +2024-02-04 17:04:23,860 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.MeetingInfluenceJob +2024-02-04 17:04:23,860 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.meeting.organization.MeetingOrgTrigger +2024-02-04 17:04:23,860 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.MeetingInfluenceJobɹ +2024-02-04 17:04:23,872 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.MenuDupDataClearCronJob +2024-02-04 17:04:23,872 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.portal.job.MenuDupDataClearCronJob +2024-02-04 17:04:23,872 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.MenuDupDataClearCronJobɹ +2024-02-04 17:04:23,880 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.OA2HGorn +2024-02-04 17:04:23,880 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.custom.hg.corn.OA2HGorn +2024-02-04 17:04:23,881 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.OA2HGornɹ +2024-02-04 17:04:23,883 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PLDRZBTX +2024-02-04 17:04:23,883 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.formmode.customjavacode.modeexpand.OnDutyJob +2024-02-04 17:04:23,884 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PLDRZBTXɹ +2024-02-04 17:04:23,886 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PerformanceRemindJob +2024-02-04 17:04:23,886 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.performance.cronjob.PerformanceRemindJob +2024-02-04 17:04:23,887 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PerformanceRemindJobɹ +2024-02-04 17:04:23,889 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PlanRemindJob +2024-02-04 17:04:23,889 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.plan.cronjob.PlanRemindJob +2024-02-04 17:04:23,889 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PlanRemindJobɹ +2024-02-04 17:04:23,891 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PortraitIndividualItemJob +2024-02-04 17:04:23,891 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.portrait.cmd.cronjob.IndividualItemJob +2024-02-04 17:04:23,891 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PortraitTeamTotalItemJob +2024-02-04 17:04:23,891 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.portrait.cmd.cronjob.TeamTotalItemJob +2024-02-04 17:04:23,891 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PrjOrCptUpdateDepartmentJob +2024-02-04 17:04:23,891 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.prj.util.PrjOrCptUpdateDepartmentJob +2024-02-04 17:04:23,892 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PrjOrCptUpdateDepartmentJobɹ +2024-02-04 17:04:23,894 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PushCorn +2024-02-04 17:04:23,894 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.custom.push.corn.PushCornTest +2024-02-04 17:04:23,894 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PushCornɹ +2024-02-04 17:04:23,896 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.PushUser2YeaLinkJob +2024-02-04 17:04:23,896 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.api.meeting.cusvideo.task.PushUser2YeaLinkJob +2024-02-04 17:04:23,896 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.PushUser2YeaLinkJobɹ +2024-02-04 17:04:23,898 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.SynHrmToCtrip +2024-02-04 17:04:23,898 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.ctrip.ecology.SynHrmToCtrip +2024-02-04 17:04:23,899 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.SynHrmToCtripɹ +2024-02-04 17:04:23,901 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.TaskCycleJob +2024-02-04 17:04:23,901 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.task.cronjob.TaskCycleJob +2024-02-04 17:04:23,903 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.TaskCycleJobɹ +2024-02-04 17:04:23,905 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.TaskRemindJob +2024-02-04 17:04:23,905 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.task.cronjob.TaskRemindJob +2024-02-04 17:04:23,906 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.TaskRemindJobɹ +2024-02-04 17:04:23,908 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.WeekReportCorn +2024-02-04 17:04:23,908 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.custom.corn.WeekReportCorn +2024-02-04 17:04:23,909 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.WeekReportCornɹ +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.WrIndividualInfluenceJob +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.portrait.cronjob.IndividualInfluenceJob +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.WrIndividualRiskJob +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.portrait.cronjob.IndividualRiskJob +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.WrTeamRiskJob +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.portrait.cronjob.TeamRiskJob +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.YearInventoryJob +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.portrait.yearinventory.cronjob.YearInventoryAutoGenerateJob +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.YearInventoryMonthJob +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.workrelate.cmd.portrait.yearinventory.cronjob.YearInventoryMonthJob +2024-02-04 17:04:23,911 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.YearReportCorn +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.engine.custom.corn.YearReportCorn +2024-02-04 17:04:23,911 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.YearReportCornɹ +2024-02-04 17:04:23,914 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.deleteEML +2024-02-04 17:04:23,914 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.system.DeleteEML +2024-02-04 17:04:23,914 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.deleteEMLɹ +2024-02-04 17:04:23,916 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.subMessageCronJob +2024-02-04 17:04:23,916 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjcom.cloudstore.dev.api.message.task.SubMessageCronJob +2024-02-04 17:04:23,916 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.subMessageCronJobɹ +2024-02-04 17:04:23,918 ERROR [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - Schedule Cron Job 棨schedule.weaver_trigger_24 +2024-02-04 17:04:23,918 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - JobObjweaver.interfaces.schedule.TriggerJob +2024-02-04 17:04:23,918 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - schedule.weaver_trigger_24ɹ +2024-02-04 17:04:23,920 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - ʼģƻ... +2024-02-04 17:04:23,965 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - ƻɹ +2024-02-04 17:04:23,965 INFO [Thread:Thread-56] weaver.interfaces.schedule.ScheduleManage.start() - LC started:true +2024-02-04 17:04:23,965 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - ===========ScheduleManage end.... +2024-02-04 17:04:23,965 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - ==========================initFormmodeBrowser start... +2024-02-04 17:04:24,015 INFO [Thread:DefaultQuartzScheduler_Worker-4] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,016 INFO [Thread:DefaultQuartzScheduler_Worker-2] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,017 INFO [Thread:DefaultQuartzScheduler_Worker-5] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,018 INFO [Thread:DefaultQuartzScheduler_Worker-3] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,018 INFO [Thread:DefaultQuartzScheduler_Worker-1] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,020 INFO [Thread:DefaultQuartzScheduler_Worker-5] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,021 INFO [Thread:DefaultQuartzScheduler_Worker-2] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,022 INFO [Thread:DefaultQuartzScheduler_Worker-4] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,022 INFO [Thread:DefaultQuartzScheduler_Worker-1] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:24,063 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - ==========================initFormmodeBrowser end... +2024-02-04 17:04:24,064 INFO [Thread:Thread-56] weaver.general.InitServerXMLtoDBThread.run() - ==========================InitServiceXMLtoDB end... +2024-02-04 17:04:26,991 INFO [Thread:DefaultQuartzScheduler_Worker-3] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:30,014 INFO [Thread:DefaultQuartzScheduler_Worker-6] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:30,027 INFO [Thread:DefaultQuartzScheduler_Worker-6] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:04:30,058 INFO [Thread:DefaultQuartzScheduler_Worker-6] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:04:30,062 INFO [Thread:DefaultQuartzScheduler_Worker-6] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:05:00,954 INFO [Thread:DefaultQuartzScheduler_Worker-8] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:00,957 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:05:00,957 INFO [Thread:DefaultQuartzScheduler_Worker-7] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:00,958 INFO [Thread:DefaultQuartzScheduler_Worker-7] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:05:00,958 INFO [Thread:DefaultQuartzScheduler_Worker-9] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:00,958 INFO [Thread:DefaultQuartzScheduler_Worker-9] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:05:00,990 INFO [Thread:DefaultQuartzScheduler_Worker-8] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:01,000 INFO [Thread:DefaultQuartzScheduler_Worker-9] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:01,003 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:05:01,010 INFO [Thread:DefaultQuartzScheduler_Worker-9] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:05:01,052 INFO [Thread:DefaultQuartzScheduler_Worker-7] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:01,059 INFO [Thread:DefaultQuartzScheduler_Worker-7] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:05:09,109 INFO [Thread:WeaverHttp&&17:05:09&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:05:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-10] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:05:30,069 INFO [Thread:DefaultQuartzScheduler_Worker-10] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:05:30,073 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:06:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-12] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:06:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-11] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.Birthday)ʼִ +2024-02-04 17:06:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.hrm.Reminder.BirthdayPlanningtask.execute() - ƻBirthdayPlanningtaskʼִ +2024-02-04 17:06:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:06:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.hrm.Reminder.BirthdayPlanningtask.execute() - ƻBirthdayPlanningtaskִнʱ5 +2024-02-04 17:06:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-11] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:00,036 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.Birthday)ִС +2024-02-04 17:06:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {} +2024-02-04 17:06:00,044 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:06:00,185 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildMainSql() - Դdbtype dm +2024-02-04 17:06:00,473 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - =1=================sql2SELECT * FROM Workflow_billdetailtable where billid=? order by id formid:-281 +2024-02-04 17:06:00,475 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - =======1===========SourceTableNameformtable_main_281_dt1 +2024-02-04 17:06:00,475 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - =======1===========SourceTableNameformtable_main_281_dt2 +2024-02-04 17:06:00,475 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - =======1===========SourceTableNameformtable_main_281_dt3 +2024-02-04 17:06:00,481 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - =====search sql:SELECT * FROM ( +select t1.id as id,0 AS detailtable_id,t1.fieldname as name,t1.fieldlabel as label,t1.fieldhtmltype as htmltype,t1.type as type,t1.fielddbtype,t1.detailtable +from workflow_billfield t1 WHERE billid=-281 AND ( detailtable='' or detailtable is null ) +UNION all +select t1.id,t2.id AS detailtable_id,t1.fieldname as name,t1.fieldlabel as label,t1.fieldhtmltype as htmltype,t1.type as type,t1.fielddbtype,t1.detailtable +from workflow_billfield t1,Workflow_billdetailtable t2 WHERE t1.billid=t2.billid AND t1.detailtable=t2.tablename AND t1.billid =-281 + ) tt ORDER BY tt.detailtable_id +2024-02-04 17:06:00,487 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.biz.WorkflowTriggerInitializer.buildGeneralMappingDefine() - ==================tables{0=weaver.integration.framework.mappingdefine.impl.TableMappingDefine@5466046, 1=weaver.integration.framework.mappingdefine.impl.TableMappingDefine@11b953e, 2=weaver.integration.framework.mappingdefine.impl.TableMappingDefine@24c45486, 3=weaver.integration.framework.mappingdefine.impl.TableMappingDefine@5fc1639c} +2024-02-04 17:06:00,505 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:06:00,510 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:06:00,511 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:06:00,511 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ484 +2024-02-04 17:06:00,512 INFO [Thread:DefaultQuartzScheduler_Worker-12] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:00,516 INFO [Thread:DefaultQuartzScheduler_Worker-12] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:06:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-13] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-13] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:06:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-13] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:06:30,024 INFO [Thread:DefaultQuartzScheduler_Worker-13] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:07:24,753 INFO [Thread:WeaverHttp&sysadmin&17:07:24&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵѱȡϵֵԱ","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037644674","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"13Oq704j","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:07:24","title":"ֵ","userCodeList":["101115401"],"userId":0,"userList":["872"],"userLoginIdList":["10111540"]}] +2024-02-04 17:07:24,837 INFO [Thread:WeaverHttp&sysadmin&17:07:24&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵ࣬밴ʱֵ๤ϵֵԱ!","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037644832","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"h6PlL495","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:07:24","title":"ֵ","userCodeList":["10110001"],"userId":0,"userList":["22"],"userLoginIdList":["10110001"]}] +2024-02-04 17:07:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-14] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:07:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-14] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:07:30,051 INFO [Thread:DefaultQuartzScheduler_Worker-14] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:07:30,057 INFO [Thread:DefaultQuartzScheduler_Worker-14] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:07:44,144 INFO [Thread:WeaverHttp&&17:07:44&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:08:00,000 INFO [Thread:DefaultQuartzScheduler_Worker-15] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:08:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:08:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:08:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:08:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:08:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:08:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:08:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:08:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ11 +2024-02-04 17:08:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-15] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:08:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-15] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:08:02,218 INFO [Thread:WeaverHttp&10111540&17:08:02&http://14.1.209.146:8080/api/hrm/login/checkLogout] com.engine.integration.biz.CASLogoutUtil.checkLogout() - =======================CASLogoutUtil weaver_login_type:OALogin +2024-02-04 17:08:04,817 INFO [Thread:WeaverHttp&&17:08:04&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:08:27,659 INFO [Thread:WeaverHttp&sysadmin&17:08:27&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵѱȡϵֵԱ","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037707654","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"O789QXec","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:08:27","title":"ֵ","userCodeList":["101115401"],"userId":0,"userList":["872"],"userLoginIdList":["10111540"]}] +2024-02-04 17:08:27,667 INFO [Thread:WeaverHttp&sysadmin&17:08:27&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵ࣬밴ʱֵ๤ϵֵԱ!","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037707662","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"mBrwcMVv","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:08:27","title":"ֵ","userCodeList":["10110610"],"userId":0,"userList":["758"],"userLoginIdList":["10110610"]}] +2024-02-04 17:08:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-16] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:08:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-16] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:08:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-16] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:08:30,026 INFO [Thread:DefaultQuartzScheduler_Worker-16] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:08:30,973 INFO [Thread:WeaverHttp&10110001&17:08:30&http://14.1.209.146:8080/api/hrm/login/checkLogout] com.engine.integration.biz.CASLogoutUtil.checkLogout() - =======================CASLogoutUtil weaver_login_type:OALogin +2024-02-04 17:08:38,644 INFO [Thread:WeaverHttp&&17:08:38&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:08:49,944 INFO [Thread:WeaverHttp&10111540&17:08:49&http://14.1.209.146:8080/api/hrm/login/checkLogout] com.engine.integration.biz.CASLogoutUtil.checkLogout() - =======================CASLogoutUtil weaver_login_type:OALogin +2024-02-04 17:08:56,708 INFO [Thread:WeaverHttp&&17:08:56&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:09:20,243 INFO [Thread:WeaverHttp&10110610&17:09:20&http://14.1.209.146:8080/api/hrm/login/checkLogout] com.engine.integration.biz.CASLogoutUtil.checkLogout() - =======================CASLogoutUtil weaver_login_type:OALogin +2024-02-04 17:09:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-17] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-18] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,956 INFO [Thread:DefaultQuartzScheduler_Worker-18] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,956 INFO [Thread:DefaultQuartzScheduler_Worker-17] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-19] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,962 INFO [Thread:DefaultQuartzScheduler_Worker-20] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:23,962 INFO [Thread:DefaultQuartzScheduler_Worker-20] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:26,342 INFO [Thread:DefaultQuartzScheduler_Worker-19] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:26,543 INFO [Thread:WeaverHttp&&17:09:26&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:09:28,298 INFO [Thread:WeaverHttp&sysadmin&17:09:28&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵѱȡϵֵԱ","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037768293","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"i50ORqI9","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:09:28","title":"ֵ","userCodeList":["11210170"],"userId":0,"userList":["54"],"userLoginIdList":["11210170"]}] +2024-02-04 17:09:28,305 INFO [Thread:WeaverHttp&sysadmin&17:09:28&http://14.1.209.146:8080/api/cube/new/card/doSubmit] com.engine.integration.biz.message.TodoClientTodoMessageDispatcher.onMessage() - =====================message:[{"agentId":"106","belongId":"lGw3G2j4","change":true,"context":"2024-03-01ռֵ࣬밴ʱֵ๤ϵֵԱ!","creater":1,"createrCode":"","customMessageType":0,"date":"2024-02-04","detailTitleParams":{},"emParams":{},"enable":"y","enableEM":"y","enablePC":"y","imgUrl":"/cloudstore/images/icon/app/app032.png","isDefault":"n","isTab":"","linkMobileUrl":"","linkUrl":"","messageCurrectTime":"1707037768302","messageGroupType":"lGw3G2j4","messageGroupTypeName":"ֵ","messageId":"wO360534","messageType":{"code":1745,"labelId":1745,"lableId":1745,"parentCode":0},"moduleId":"18","params":{},"sendMobile":"y","state":0,"time":"17:09:28","title":"ֵ","userCodeList":["101115401"],"userId":0,"userList":["872"],"userLoginIdList":["10111540"]}] +2024-02-04 17:09:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-21] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:09:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-21] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:09:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:09:40,832 INFO [Thread:WeaverHttp&11210170&17:09:40&http://14.1.209.146:8080/api/hrm/login/checkLogout] com.engine.integration.biz.CASLogoutUtil.checkLogout() - =======================CASLogoutUtil weaver_login_type:OALogin +2024-02-04 17:09:43,729 INFO [Thread:WeaverHttp&&17:09:43&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:10:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-22] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-22] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:10:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-23] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-23] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:10:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-24] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-24] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:10:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PLDRZBTX)ʼִ +2024-02-04 17:10:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:10:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-24] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:10:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:10:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:10:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:10:00,025 INFO [Thread:DefaultQuartzScheduler_Worker-22] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,030 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-24] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ13 +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-22] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:10:00,031 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PLDRZBTX)ִС +2024-02-04 17:10:00,034 INFO [Thread:DefaultQuartzScheduler_Worker-23] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:00,034 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:10:00,038 INFO [Thread:DefaultQuartzScheduler_Worker-23] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:10:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:30,007 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:10:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:10:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:11:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:11:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-28] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:11:30,023 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:11:30,027 INFO [Thread:DefaultQuartzScheduler_Worker-28] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:12:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:12:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:12:00,072 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:12:00,072 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:12:00,072 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:12:00,073 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:12:00,076 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:12:00,076 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:12:00,077 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ5 +2024-02-04 17:12:00,077 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:12:00,080 INFO [Thread:DefaultQuartzScheduler_Worker-29] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:12:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:12:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-30] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:12:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:12:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-30] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:13:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:13:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-31] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:13:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:13:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-31] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:14:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:14:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:14:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:14:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:14:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:14:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:14:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:14:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:14:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:00,023 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:14:23,956 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,956 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:23,960 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:26,250 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:30,002 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:14:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:14:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:15:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:15:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-40] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-40] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:15:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-39] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-39] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:15:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-40] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:15:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-40] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:15:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-39] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-39] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:15:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-41] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-41] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:15:30,017 INFO [Thread:DefaultQuartzScheduler_Worker-41] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:15:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-41] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:16:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-42] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:16:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:16:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:16:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:16:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:16:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:16:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:16:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:16:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:16:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-42] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:16:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-42] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:16:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-43] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:16:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-43] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:16:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-43] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:16:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-43] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:17:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-44] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:17:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-44] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:17:30,023 INFO [Thread:DefaultQuartzScheduler_Worker-44] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:17:30,028 INFO [Thread:DefaultQuartzScheduler_Worker-44] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:18:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-45] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:18:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:18:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:18:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:18:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:18:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:18:00,049 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:18:00,049 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:18:00,049 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ5 +2024-02-04 17:18:00,050 INFO [Thread:DefaultQuartzScheduler_Worker-45] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:18:00,053 INFO [Thread:DefaultQuartzScheduler_Worker-45] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:18:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-46] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:18:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-46] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:18:30,052 INFO [Thread:DefaultQuartzScheduler_Worker-46] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:18:30,056 INFO [Thread:DefaultQuartzScheduler_Worker-46] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:19:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-47] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-48] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-48] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-49] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-47] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,964 INFO [Thread:DefaultQuartzScheduler_Worker-50] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:23,965 INFO [Thread:DefaultQuartzScheduler_Worker-50] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:26,370 INFO [Thread:DefaultQuartzScheduler_Worker-49] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-51] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:30,018 INFO [Thread:DefaultQuartzScheduler_Worker-51] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:19:30,029 INFO [Thread:DefaultQuartzScheduler_Worker-51] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:19:30,033 INFO [Thread:DefaultQuartzScheduler_Worker-51] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:20:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-53] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-52] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-52] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-56] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-55] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-55] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PLDRZBTX)ʼִ +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-54] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-54] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:20:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:20:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:20:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:20:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-54] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-52] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-55] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:20:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-54] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:20:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-53] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-52] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:20:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:20:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-55] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PLDRZBTX)ִС +2024-02-04 17:20:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:20:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ8 +2024-02-04 17:20:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-56] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-53] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:20:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-56] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:20:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-57] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-57] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:20:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-57] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:20:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-57] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:21:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-58] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:21:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-58] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:21:30,014 INFO [Thread:DefaultQuartzScheduler_Worker-58] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:21:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-58] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:22:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-59] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:22:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:22:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:22:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:22:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:22:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:22:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:22:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:22:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:22:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-59] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:22:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-59] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:22:30,002 INFO [Thread:DefaultQuartzScheduler_Worker-60] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:22:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-60] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:22:30,018 INFO [Thread:DefaultQuartzScheduler_Worker-60] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:22:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-60] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:23:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-61] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:23:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-61] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:23:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-61] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:23:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-61] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:24:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-62] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:24:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:24:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:24:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:24:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:24:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:24:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:24:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ13 +2024-02-04 17:24:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-62] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-62] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:24:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-63] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-64] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-64] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-63] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-65] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,960 INFO [Thread:DefaultQuartzScheduler_Worker-66] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:23,961 INFO [Thread:DefaultQuartzScheduler_Worker-66] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:26,641 INFO [Thread:DefaultQuartzScheduler_Worker-65] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-67] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-67] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:24:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-67] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:24:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-67] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:25:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-68] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-68] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:25:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-70] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-70] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:25:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-69] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-69] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:25:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-68] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-70] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-69] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-68] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:25:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-70] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:25:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-69] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:25:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-71] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-71] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:25:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-71] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:25:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-71] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:26:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-72] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:26:00,004 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:26:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:26:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:26:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:26:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:26:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:26:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:26:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:26:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-72] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:26:00,047 INFO [Thread:DefaultQuartzScheduler_Worker-72] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:26:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-73] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:26:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-73] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:26:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-73] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:26:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-73] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:27:29,368 INFO [Thread:WeaverHttp&&17:27:29&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:27:30,000 INFO [Thread:DefaultQuartzScheduler_Worker-74] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:27:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-74] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:27:30,013 INFO [Thread:DefaultQuartzScheduler_Worker-74] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:27:30,017 INFO [Thread:DefaultQuartzScheduler_Worker-74] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:28:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-75] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:28:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:28:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:28:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:28:00,026 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:28:00,027 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:28:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:28:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:28:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:28:00,033 INFO [Thread:DefaultQuartzScheduler_Worker-75] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:28:00,037 INFO [Thread:DefaultQuartzScheduler_Worker-75] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:28:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-76] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:28:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-76] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:28:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-76] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:28:30,023 INFO [Thread:DefaultQuartzScheduler_Worker-76] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:29:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-77] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-78] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-80] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-77] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-79] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,963 INFO [Thread:DefaultQuartzScheduler_Worker-80] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:23,964 INFO [Thread:DefaultQuartzScheduler_Worker-78] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:26,547 INFO [Thread:DefaultQuartzScheduler_Worker-79] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-81] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-81] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:29:30,023 INFO [Thread:DefaultQuartzScheduler_Worker-81] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:29:30,027 INFO [Thread:DefaultQuartzScheduler_Worker-81] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:30:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-84] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-91] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-84] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-90] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-90] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.TaskRemindJob)ʼִ +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-85] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-85] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmUpdateOrganizationShowOrderJob)ʼִ +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-87] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-87] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PLDRZBTX)ʼִ +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-88] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-88] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PerformanceRemindJob)ʼִ +2024-02-04 17:30:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-86] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-86] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:30:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-89] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-89] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PlanRemindJob)ʼִ +2024-02-04 17:30:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-83] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-83] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.GoalRemindJob)ʼִ +2024-02-04 17:30:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-82] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,008 INFO [Thread:DefaultQuartzScheduler_Worker-82] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:30:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:30:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:30:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:30:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:30:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-86] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-87] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-82] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-87] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PLDRZBTX)ִС +2024-02-04 17:30:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:30:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:30:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ9 +2024-02-04 17:30:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-91] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-88] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-86] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:30:00,023 INFO [Thread:DefaultQuartzScheduler_Worker-88] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PerformanceRemindJob)ִС +2024-02-04 17:30:00,024 INFO [Thread:DefaultQuartzScheduler_Worker-91] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:30:00,029 INFO [Thread:DefaultQuartzScheduler_Worker-84] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,032 INFO [Thread:DefaultQuartzScheduler_Worker-82] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:30:00,034 INFO [Thread:DefaultQuartzScheduler_Worker-84] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:30:00,038 INFO [Thread:DefaultQuartzScheduler_Worker-89] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,041 INFO [Thread:DefaultQuartzScheduler_Worker-90] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,042 INFO [Thread:DefaultQuartzScheduler_Worker-89] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PlanRemindJob)ִС +2024-02-04 17:30:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-90] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.TaskRemindJob)ִС +2024-02-04 17:30:00,067 INFO [Thread:DefaultQuartzScheduler_Worker-83] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,070 INFO [Thread:DefaultQuartzScheduler_Worker-83] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.GoalRemindJob)ִС +2024-02-04 17:30:00,624 INFO [Thread:DefaultQuartzScheduler_Worker-85] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:00,627 INFO [Thread:DefaultQuartzScheduler_Worker-85] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmUpdateOrganizationShowOrderJob)ִС +2024-02-04 17:30:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-92] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-92] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:30:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-92] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:30:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-92] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:31:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-93] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:31:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-93] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:31:30,014 INFO [Thread:DefaultQuartzScheduler_Worker-93] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:31:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-93] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:32:00,000 INFO [Thread:DefaultQuartzScheduler_Worker-94] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:32:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:32:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:32:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:32:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:32:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:32:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:32:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:32:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ11 +2024-02-04 17:32:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-94] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:32:00,025 INFO [Thread:DefaultQuartzScheduler_Worker-94] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:32:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-95] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:32:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-95] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:32:30,012 INFO [Thread:DefaultQuartzScheduler_Worker-95] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:32:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-95] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:33:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-96] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:33:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-96] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:33:30,074 INFO [Thread:DefaultQuartzScheduler_Worker-96] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:33:30,077 INFO [Thread:DefaultQuartzScheduler_Worker-96] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:34:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-97] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:34:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:34:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:34:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:34:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:34:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:34:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:34:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ7 +2024-02-04 17:34:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-97] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-97] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:34:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-98] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-99] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,957 INFO [Thread:DefaultQuartzScheduler_Worker-98] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,957 INFO [Thread:DefaultQuartzScheduler_Worker-99] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-100] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-1] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:23,960 INFO [Thread:DefaultQuartzScheduler_Worker-1] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:26,219 INFO [Thread:DefaultQuartzScheduler_Worker-100] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-5] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-5] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:34:30,018 INFO [Thread:DefaultQuartzScheduler_Worker-5] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:34:30,024 INFO [Thread:DefaultQuartzScheduler_Worker-5] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:35:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-4] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-4] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:35:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-2] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-2] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:35:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-3] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-3] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:35:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-3] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-4] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,014 INFO [Thread:DefaultQuartzScheduler_Worker-2] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-3] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:35:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-4] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:35:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-2] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:35:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-6] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:30,008 INFO [Thread:DefaultQuartzScheduler_Worker-6] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:35:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-6] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:35:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-6] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:36:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-8] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:36:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:36:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:36:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:36:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:36:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:36:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:36:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:36:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ5 +2024-02-04 17:36:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-8] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:36:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-8] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:36:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-9] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:36:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-9] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:36:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-9] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:36:30,024 INFO [Thread:DefaultQuartzScheduler_Worker-9] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:37:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-7] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:37:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-7] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:37:30,024 INFO [Thread:DefaultQuartzScheduler_Worker-7] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:37:30,028 INFO [Thread:DefaultQuartzScheduler_Worker-7] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:38:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-10] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:38:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:38:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:38:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:38:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:38:00,013 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:38:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:38:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:38:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ9 +2024-02-04 17:38:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-10] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:38:00,025 INFO [Thread:DefaultQuartzScheduler_Worker-10] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:38:20,758 INFO [Thread:WeaverHttp&&17:38:20&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:38:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-11] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:38:30,007 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:38:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-11] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:38:30,023 INFO [Thread:DefaultQuartzScheduler_Worker-11] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:39:00,439 INFO [Thread:WeaverHttp&&17:39:00&http://14.1.209.146:8080/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:39:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-12] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,956 INFO [Thread:DefaultQuartzScheduler_Worker-13] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,957 INFO [Thread:DefaultQuartzScheduler_Worker-12] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-13] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-14] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,959 INFO [Thread:DefaultQuartzScheduler_Worker-15] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:23,961 INFO [Thread:DefaultQuartzScheduler_Worker-15] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:26,570 INFO [Thread:DefaultQuartzScheduler_Worker-14] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-16] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-16] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:39:30,011 INFO [Thread:DefaultQuartzScheduler_Worker-16] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:39:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-16] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:39:49,755 INFO [Thread:WeaverHttp&sysadmin&17:39:49&http://14.1.209.146:8080/api/hrm/systeminfo/save] weaver.integration.thirdsdk.ldap.biz.HrmResourceSubscriber4Ldap.synData() - յϢΪ[{"fieldName":"id","fieldLabel":"32011","fieldType":"int","fieldValue":"6938"}, {"fieldName":"password","fieldLabel":"409","fieldType":"varchar","fieldValue":"null"}] +2024-02-04 17:39:49,757 INFO [Thread:WeaverHttp&sysadmin&17:39:49&http://14.1.209.146:8080/api/hrm/systeminfo/save] weaver.integration.thirdsdk.ldap.biz.HrmResourceSubscriber4Ldap.synData() - յĶΪupdate +2024-02-04 17:39:49,795 ERROR [Thread:WeaverHttp&sysadmin&17:39:49&http://14.1.209.146:8080/api/hrm/systeminfo/save] com.weaver.integration.ldap.util.AuthenticUtil.checkType() - δҵӦLDAP(10110047_test) +2024-02-04 17:39:52,317 INFO [Thread:WeaverHttp&&17:39:52&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.isomericSource.IsomericSourceUtil.isIsomericAuth() - ===========isIsomericAuth search result: {"executeClass":"","isIsomericAuth":false} +2024-02-04 17:39:52,357 INFO [Thread:WeaverHttp&&17:39:52&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.cas.CASLoginUtil.isOpenSSOAPPIntegration() - ============isuse:true +2024-02-04 17:39:52,358 INFO [Thread:WeaverHttp&&17:39:52&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.cas.CASLoginUtil.isOpenSSOAPPIntegration() - ============appAuth:false +2024-02-04 17:39:52,358 INFO [Thread:WeaverHttp&&17:39:52&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.cas.CASLoginUtil.isOpenSSOAPPIntegration() - =======casisopen:1,oauth2isopen:false +2024-02-04 17:39:52,358 INFO [Thread:WeaverHttp&&17:39:52&http://123.151.115.199:8999/api/hrm/login/checkLogin] weaver.interfaces.sso.cas.CASLoginUtil.isOpenSSOAPPIntegration() - =======isOpenAPPSSOLogin false +2024-02-04 17:40:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-19] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-19] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.PLDRZBTX)ʼִ +2024-02-04 17:40:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-20] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-20] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-17] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-17] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-18] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-18] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-21] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,003 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:40:00,040 INFO [Thread:DefaultQuartzScheduler_Worker-18] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,041 INFO [Thread:DefaultQuartzScheduler_Worker-20] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,041 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:40:00,041 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:40:00,041 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:40:00,042 INFO [Thread:DefaultQuartzScheduler_Worker-19] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,043 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:40:00,045 INFO [Thread:DefaultQuartzScheduler_Worker-20] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:40:00,046 INFO [Thread:DefaultQuartzScheduler_Worker-19] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.PLDRZBTX)ִС +2024-02-04 17:40:00,046 INFO [Thread:DefaultQuartzScheduler_Worker-17] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,046 INFO [Thread:DefaultQuartzScheduler_Worker-18] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:40:00,049 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:40:00,050 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:40:00,050 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ9 +2024-02-04 17:40:00,050 INFO [Thread:DefaultQuartzScheduler_Worker-21] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:00,050 INFO [Thread:DefaultQuartzScheduler_Worker-17] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:40:00,053 INFO [Thread:DefaultQuartzScheduler_Worker-21] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:40:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-24] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-24] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:40:30,026 INFO [Thread:DefaultQuartzScheduler_Worker-24] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:40:30,031 INFO [Thread:DefaultQuartzScheduler_Worker-24] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:40:52,596 WARN [Thread:WeaverHttp&10110047&17:40:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16168&isremark=0&sysId=-22&flowId=815507117245988864&workflowId=-158×tamp=1707039626323 +2024-02-04 17:40:52,599 INFO [Thread:WeaverHttp&10110047&17:40:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:40:52,600 INFO [Thread:WeaverHttp&10110047&17:40:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507117245988864, workflowId=-158, timestamp=1707039626323} +2024-02-04 17:40:52,600 INFO [Thread:WeaverHttp&10110047&17:40:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update viewtype=1 ==>10110047 +2024-02-04 17:40:53,720 ERROR [Thread:WeaverHttp&10110047&17:40:53&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16168 +2024-02-04 17:40:53,720 ERROR [Thread:WeaverHttp&10110047&17:40:53&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:40:53,741 INFO [Thread:WeaverHttp&10110047&17:40:53&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:0XU3B8UpGXahFK9+PnVbHY7GDOxvqvj1Oe6dreL80rg= +2024-02-04 17:40:53,741 INFO [Thread:WeaverHttp&10110047&17:40:53&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4E%2BFfupERJ39syDACqz1YHzC4lu22%2Fg%2BUhvMYh4xcLxW14ItLLbTGCEDB%2F0BXH1UkNG%2B4T2hmLinOkbYriwrSSa%2FMzouqWF11SZCw%2FkuU4Wl55y0%2BWZG2l%2B8%2FOY3BBEe9nNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZtbmypSc3o2CT5bXhjd9xdnpRA4g3cL06REf%2BMVRDS6l0bcSMQ7VpDM5mAQFQ7VyMeqGk2PG7bEkTeKN9pmYZqB2FfIMcLvj5XWwrM5W5QQiVysZbaKYrmDTC5g57eqUe%2FP44RI97HI7c2OQ5NLIQKSmFTNveceTeQ3TMpo9YWC9Qk1J8YMeKr%2BbQKXdZNiMnoBsXzTE01xDSo4lyvTXIOOnl1ZBaiDdk%2Fg3hBfER8wZzVWc9W%2Bdz%2BM0C1z9LRyDbFooxzokxKLEufcJ3C1qZmPXQzMBEF52FS0gXhaFSekKnKLNAZqVGzKpCruW9p9KeIYyhdf0XGgcophhuHSOcUZigCJY9ZtzPfMBHYRqrEa9IhvRgbBko4D%2FG%2B8OTOqs9PaYvAwLH6iNRI1JhDycZhoTjIGyQLD6WNiazk%2Fu8vpk9JUU0tgRcNgz0bIuAIhi6XCwMaGSIqXeUCCxR69pF9G42f7aKKDPsgk%2FuRaL2W%2FzkcG68v%2B%2Bkenzmk36InEd4p%2FpHjjpB2r0o5H71Rm%2FSycc7f4U%2B924k9c1%2FYJhIAU%2FgPneyC9tOIdB9z4YuD%2FBw%2FSCyuCNWj3t19%2BDDdM9hxQ%3D%3D&loginid=10110047&stamp=1707039653735&token=0XU3B8UpGXahFK9%2BPnVbHY7GDOxvqvj1Oe6dreL80rg%3D +2024-02-04 17:41:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-22] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:41:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-22] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:41:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-22] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:41:30,021 INFO [Thread:DefaultQuartzScheduler_Worker-22] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:42:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:42:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:42:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:42:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:42:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:42:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:42:00,018 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:42:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:42:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ8 +2024-02-04 17:42:00,019 INFO [Thread:DefaultQuartzScheduler_Worker-25] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:42:00,024 INFO [Thread:DefaultQuartzScheduler_Worker-25] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:42:24,559 WARN [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16165&isremark=0&sysId=-22&flowId=815507693534969856&workflowId=-157×tamp=1707039721048 +2024-02-04 17:42:24,560 INFO [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:42:24,561 INFO [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507693534969856, workflowId=-157, timestamp=1707039721048} +2024-02-04 17:42:24,561 INFO [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update viewtype=1 ==>10110047 +2024-02-04 17:42:24,952 ERROR [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16165 +2024-02-04 17:42:24,952 ERROR [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:42:24,956 INFO [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:9rZFrEGwAgLHCxzIqKcQZ721ocJERyc8GWQK1s9PjwA= +2024-02-04 17:42:24,956 INFO [Thread:WeaverHttp&10110047&17:42:24&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wRzybaPPTL8sN4EhphAifH%2F6%2BIEimSjdELaR3Ya8Q0dFPqajCVMLA9qeinVq%2FgmPp1WrWKXQ0hes5yNVIFWe5BDOa%2FMzouqWF11SZCw%2FkuU4WMZClJsDCF8KcssN%2FKp%2FUb5glSR55LsSc%2Bsb%2BlFQ4qYPGLgr18M3JSfvPQ2wizX2xgLFwIQKQS7Y6HS710pgBFfZSTfsR7TVpjesKSDHlsDT1RzwYhyGS20HiIMZvkMcjinzq%2FpSsYgaUhvEn%2FZVttBLTflbbxzkxLHMJZpAReHsg%2BZOLtVEoUpaUMeY3m%2BC3SSYQwZfPuImJ2NIipPwkXb80mkj6aPJWYlDc0s4bUbHmFkR8TrSZ1ola6dHi79rp9yxwqsz644A8dfs9NuvkwasnJRo1h4y1KMhpqWy%2FIXLdvTSCfz5JbBncvqtvf1avvDkHRB1%2FB8Z7t1OynN0dA%2FOiivNWbhyHJ7KxpS%2FWdjwyPOMoA28%2FcuzvDTLKuVeqiDUVs5FV04MB077sOqYl%2FpwTR%2FeaDO%2BId185NXLaUYrn7FDumrTSZMl8o3Y9kU11B6qDdXkN17ploRkdrOM3OhLC2GE1IP39F8cQklLRDtyTnLUOYs3f7DWkdVbHX8sB1VrVHPCB%2BXDijdbOLgJBca9N8SRqWIYRbkm5dd%2BNvXvsP7RSQjlHyhV8JETVQyyOlK%2BaTrS3rjII3YhK3dcOrOdMSknY1oPSbcPwLd4dJCpPWtFDfM87tJxhabpe6epA59H9%2Fl891a1Q06P3dRs46ODeX3SGXzYXy9Em7tB535s%3D&loginid=10110047&stamp=1707039744955&token=9rZFrEGwAgLHCxzIqKcQZ721ocJERyc8GWQK1s9PjwA%3D +2024-02-04 17:42:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:42:30,006 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:42:30,064 INFO [Thread:DefaultQuartzScheduler_Worker-26] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:42:30,067 INFO [Thread:DefaultQuartzScheduler_Worker-26] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:43:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-23] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:43:30,003 INFO [Thread:DefaultQuartzScheduler_Worker-23] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:43:30,016 INFO [Thread:DefaultQuartzScheduler_Worker-23] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:43:30,020 INFO [Thread:DefaultQuartzScheduler_Worker-23] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:43:53,860 WARN [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16168&isremark=0&sysId=-22&flowId=815507117245988864&workflowId=-158×tamp=1707039810132 +2024-02-04 17:43:53,862 INFO [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:43:53,863 INFO [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507117245988864, workflowId=-158, timestamp=1707039810132} +2024-02-04 17:43:53,864 INFO [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver.length()=={}true +2024-02-04 17:43:53,864 INFO [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}false +2024-02-04 17:43:53,864 INFO [Thread:WeaverHttp&10110047&17:43:53&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update viewtype=1 ==>10110047 +2024-02-04 17:43:54,313 ERROR [Thread:WeaverHttp&10110047&17:43:54&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16168 +2024-02-04 17:43:54,314 ERROR [Thread:WeaverHttp&10110047&17:43:54&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:43:54,318 INFO [Thread:WeaverHttp&10110047&17:43:54&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:qQGqMJcPihAD6Yi4hw+ruE93GZDCxBW3IQh/MAhL+6E= +2024-02-04 17:43:54,318 INFO [Thread:WeaverHttp&10110047&17:43:54&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4E%2BFfupERJ39syDACqz1YHzC4lu22%2Fg%2BUhvMYh4xcLxW14ItLLbTGCEDB%2F0BXH1UkNG%2B4T2hmLinOkbYriwrSSa%2FMzouqWF11SZCw%2FkuU4Wl55y0%2BWZG2l%2B8%2FOY3BBEe9nNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZtbmypSc3o2CT5bXhjd9xdnpRA4g3cL06REf%2BMVRDS6l0bcSMQ7VpDM5mAQFQ7VyMeqGk2PG7bEkTeKN9pmYZqB2FfIMcLvj5XWwrM5W5QQiVysZbaKYrmDTC5g57eqUe%2FP44RI97HI7c2OQ5NLIQKSmFTNveceTeQ3TMpo9YWC9Qk1J8YMeKr%2BbQKXdZNiMnoBsXzTE01xDSo4lyvTXIOOnl1ZBaiDdk%2Fg3hBfER8wZzVWc9W%2Bdz%2BM0C1z9LRyDbFooxzokxKLEufcJ3C1qZmPXQzMBEF52FS0gXhaFSekKnKLNAZqVGzKpCruW9p9KeIYyhdf0XGgcophhuHSOcUZigCJY9ZtzPfMBHYRqrEa9IhvRgbBko4D%2FG%2B8OTOqs9PaYvAwLH6iNRI1JhDycZhoTjIGyQLD6WNiazk%2Fu8vpk9JUU0tgRcNgz0bIuAIhi6XCwMaGSIqXeUCCxR69pF9G42f7aKKDPsgk%2FuRaL2W%2FzkcG68v%2B%2Bkenzmk36InEd4p%2FpHjjpB2r0o5H71Rm%2FSycc7f4U%2B924k9c1%2FYJhIAU%2FgPneyC9tOIdB9z4YuD%2FBw%2FSCyuCNWj3t19%2BDDdM9hxQ%3D%3D&loginid=10110047&stamp=1707039834317&token=qQGqMJcPihAD6Yi4hw%2BruE93GZDCxBW3IQh%2FMAhL%2B6E%3D +2024-02-04 17:43:56,221 WARN [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16167&isremark=0&sysId=-22&flowId=815507368962949120&workflowId=-159×tamp=1707039812798 +2024-02-04 17:43:56,221 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:43:56,221 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507368962949120, workflowId=-159, timestamp=1707039812798} +2024-02-04 17:43:56,222 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver.length()=={}true +2024-02-04 17:43:56,222 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}false +2024-02-04 17:43:56,222 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update viewtype=1 ==>10110047 +2024-02-04 17:43:56,608 ERROR [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16167 +2024-02-04 17:43:56,609 ERROR [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:43:56,611 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:qQGqMJcPihAD6Yi4hw+ruMrKZUUQdT/1in+0uMEtVjM= +2024-02-04 17:43:56,611 INFO [Thread:WeaverHttp&10110047&17:43:56&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4tS6aQFjMe27rn5UAR4MXyXmbMcZUcZ24veUSeGtAnPtso4bCzf1LVknliE%2BXnrBpr77TUIGsDq%2FxvtdggKX9Wa%2FMzouqWF11SZCw%2FkuU4WbDwz4q%2FThhG8QZjBNL6kStnNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZrq9OlNRNrqsJkMoZYMMrOFMtCulb%2BadzRXCLU2RH5g0xBbiU9%2B6nCsui3StdFA9D%2BAR6q4jbjXcCJ0w%2BvxDc4O4knIg1ievsofo8xyBTIRxa5nu62fvICfI9vahzh1nmHaeKTDbB%2B%2FmAOOjISikVqa3ptdEDcqNxLwt3ryNg%2Bf6CnbbjtiYnIdgYHqaw0gkK0jA2vamlERtoAcLnZ004w4yARz2lAL%2FrhYsdPO8Bd6VKqqXVlMgtm0MspVYiAAQ3FB8K%2BPdpH5KBEqrry%2BZTMC8WbQArEYh00i1VjdF%2FbVxrObzX4zx6lGp%2FU0UhsjskvPqxsEumShqQHEBeeDGX5fJRSY0nOQMeOEtE3dYg2dncmznP5JRvOpxMvf0FdMWsQnd54nAazHB%2FV2YWlYiw8RUiVQ%2BOgmPIfhaDNLWp%2BxYYm9wopBw3iNCACOvFpQxNyQaj7lgJmhOn0MDv%2F8Fxrh889zlPOzbIdwEeXmrDzTN%2FEvuSoOK7cQWw7LDWOfPqdquYeQshcZnYo1ynksnvJ4THfOXzGaGo4LvcGLly534kIwu%2FHElP0F%2FVtlH6BKfzKzM%2BXusmpjtGcySF2XGZqRZxmog89dgKQjeMFYiLA%2FQ%3D&loginid=10110047&stamp=1707039836611&token=qQGqMJcPihAD6Yi4hw%2BruMrKZUUQdT%2F1in%2B0uMEtVjM%3D +2024-02-04 17:44:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:44:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:44:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:44:00,009 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:44:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:44:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:44:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:44:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ14 +2024-02-04 17:44:00,022 INFO [Thread:DefaultQuartzScheduler_Worker-27] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:00,027 INFO [Thread:DefaultQuartzScheduler_Worker-27] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:44:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,955 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-28] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,958 INFO [Thread:DefaultQuartzScheduler_Worker-29] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,961 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:23,962 INFO [Thread:DefaultQuartzScheduler_Worker-31] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:26,189 INFO [Thread:DefaultQuartzScheduler_Worker-30] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:30,008 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:44:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-32] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:44:30,025 INFO [Thread:DefaultQuartzScheduler_Worker-32] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:45:00,002 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,006 INFO [Thread:DefaultQuartzScheduler_Worker-33] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ʼִ +2024-02-04 17:45:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,007 INFO [Thread:DefaultQuartzScheduler_Worker-34] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.HrmOnLineLogJob)ʼִ +2024-02-04 17:45:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ʼִ +2024-02-04 17:45:00,012 INFO [Thread:DefaultQuartzScheduler_Worker-33] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,016 INFO [Thread:DefaultQuartzScheduler_Worker-33] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.EdcAutoCreateTaskJob)ִС +2024-02-04 17:45:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-36] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,017 INFO [Thread:DefaultQuartzScheduler_Worker-34] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-34] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.HrmOnLineLogJob)ִС +2024-02-04 17:45:00,021 INFO [Thread:DefaultQuartzScheduler_Worker-36] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.InitPersonDutyRecordRemindJob)ִС +2024-02-04 17:45:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:30,005 INFO [Thread:DefaultQuartzScheduler_Worker-35] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:45:30,015 INFO [Thread:DefaultQuartzScheduler_Worker-35] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:45:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-35] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:46:00,001 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:46:00,005 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.weaver_trigger_24)ʼִ +2024-02-04 17:46:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) strat +2024-02-04 17:46:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.integration.workflowtrigger.WorkflowTriggerManager.() - before {24=true} +2024-02-04 17:46:00,010 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡ24 true +2024-02-04 17:46:00,011 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿsql SELECT COUNT(*) +FROM uf_CCSPDTZ +WHERE xcdzt = 0 + AND xcbxzt = 0 + AND sqsjzt = 0 + AND TO_DATE(hgsj, 'YYYY-MM-DD HH24:MI:SS') + 3 < SYSDATE + AND xmdh = 'CLSQDP-202312070054' +2024-02-04 17:46:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - ȡⲿ 0 +2024-02-04 17:46:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.integration.workflowtrigger.WorkflowTriggerManager.execute() - Ƿ֧ҳ true +2024-02-04 17:46:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.BaseCronJob.execute() - ̴>>>>>>>>(24) end ʱ5 +2024-02-04 17:46:00,015 INFO [Thread:DefaultQuartzScheduler_Worker-37] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:46:00,020 INFO [Thread:DefaultQuartzScheduler_Worker-37] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.weaver_trigger_24)ִС +2024-02-04 17:46:30,001 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:46:30,004 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobToBeExecuted() - Schedule (schedule.CrmTimedRemindJob)ʼִ +2024-02-04 17:46:30,019 INFO [Thread:DefaultQuartzScheduler_Worker-38] org.quartz.core.QuartzScheduler.getInternalJobListeners() - "-------job [org.quartz.core.ExecutingJobsManager@509591de]" +2024-02-04 17:46:30,022 INFO [Thread:DefaultQuartzScheduler_Worker-38] weaver.interfaces.schedule.ScheduleManage.jobWasExecuted() - Schedule (schedule.CrmTimedRemindJob)ִС +2024-02-04 17:46:43,637 WARN [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16168&isremark=0&sysId=-22&flowId=815507117245988864&workflowId=-158×tamp=1707039979842 +2024-02-04 17:46:43,641 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:46:43,642 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507117245988864, workflowId=-158, timestamp=1707039979842} +2024-02-04 17:46:43,642 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver.length()=={}true +2024-02-04 17:46:43,643 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK +2024-02-04 17:46:43,643 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}true +2024-02-04 17:46:43,643 INFO [Thread:WeaverHttp&10110047&17:46:43&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110047 +2024-02-04 17:46:44,072 ERROR [Thread:WeaverHttp&10110047&17:46:44&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16168 +2024-02-04 17:46:44,073 ERROR [Thread:WeaverHttp&10110047&17:46:44&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:46:44,077 INFO [Thread:WeaverHttp&10110047&17:46:44&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:S/o049M1qbXuKeqPglFcj7FrEasE6Hnwcj58XuE3l2A= +2024-02-04 17:46:44,078 INFO [Thread:WeaverHttp&10110047&17:46:44&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4E%2BFfupERJ39syDACqz1YHzC4lu22%2Fg%2BUhvMYh4xcLxW14ItLLbTGCEDB%2F0BXH1UkNG%2B4T2hmLinOkbYriwrSSa%2FMzouqWF11SZCw%2FkuU4Wl55y0%2BWZG2l%2B8%2FOY3BBEe9nNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZtbmypSc3o2CT5bXhjd9xdnpRA4g3cL06REf%2BMVRDS6l0bcSMQ7VpDM5mAQFQ7VyMeqGk2PG7bEkTeKN9pmYZqB2FfIMcLvj5XWwrM5W5QQiVysZbaKYrmDTC5g57eqUe%2FP44RI97HI7c2OQ5NLIQKSmFTNveceTeQ3TMpo9YWC9Qk1J8YMeKr%2BbQKXdZNiMnoBsXzTE01xDSo4lyvTXIOOnl1ZBaiDdk%2Fg3hBfER8wZzVWc9W%2Bdz%2BM0C1z9LRyDbFooxzokxKLEufcJ3C1qZmPXQzMBEF52FS0gXhaFSekKnKLNAZqVGzKpCruW9p9KeIYyhdf0XGgcophhuHSOcUZigCJY9ZtzPfMBHYRqrEa9IhvRgbBko4D%2FG%2B8OTOqs9PaYvAwLH6iNRI1JhDycZhoTjIGyQLD6WNiazk%2Fu8vpk9JUU0tgRcNgz0bIuAIhi6XCwMaGSIqXeUCCxR69pF9G42f7aKKDPsgk%2FuRaL2W%2FzkcG68v%2B%2Bkenzmk36InEd4p%2FpHjjpB2r0o5H71Rm%2FSycc7f4U%2B924k9c1%2FYJhIAU%2FgPneyC9tOIdB9z4YuD%2FBw%2FSCyuCNWj3t19%2BDDdM9hxQ%3D%3D&loginid=10110047&stamp=1707040004076&token=S%2Fo049M1qbXuKeqPglFcj7FrEasE6Hnwcj58XuE3l2A%3D +2024-02-04 17:46:46,000 WARN [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16167&isremark=0&sysId=-22&flowId=815507368962949120&workflowId=-159×tamp=1707039982537 +2024-02-04 17:46:46,000 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:46:46,001 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507368962949120, workflowId=-159, timestamp=1707039982537} +2024-02-04 17:46:46,002 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver.length()=={}true +2024-02-04 17:46:46,002 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK +2024-02-04 17:46:46,002 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}true +2024-02-04 17:46:46,002 INFO [Thread:WeaverHttp&10110047&17:46:45&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110047 +2024-02-04 17:46:46,344 ERROR [Thread:WeaverHttp&10110047&17:46:46&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16167 +2024-02-04 17:46:46,345 ERROR [Thread:WeaverHttp&10110047&17:46:46&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:46:46,348 INFO [Thread:WeaverHttp&10110047&17:46:46&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:S/o049M1qbXuKeqPglFcj4JdTdJtbx0ngqXQPWyR9kQ= +2024-02-04 17:46:46,348 INFO [Thread:WeaverHttp&10110047&17:46:46&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4tS6aQFjMe27rn5UAR4MXyXmbMcZUcZ24veUSeGtAnPtso4bCzf1LVknliE%2BXnrBpr77TUIGsDq%2FxvtdggKX9Wa%2FMzouqWF11SZCw%2FkuU4WbDwz4q%2FThhG8QZjBNL6kStnNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZrq9OlNRNrqsJkMoZYMMrOFMtCulb%2BadzRXCLU2RH5g0xBbiU9%2B6nCsui3StdFA9D%2BAR6q4jbjXcCJ0w%2BvxDc4O4knIg1ievsofo8xyBTIRxa5nu62fvICfI9vahzh1nmHaeKTDbB%2B%2FmAOOjISikVqa3ptdEDcqNxLwt3ryNg%2Bf6CnbbjtiYnIdgYHqaw0gkK0jA2vamlERtoAcLnZ004w4yARz2lAL%2FrhYsdPO8Bd6VKqqXVlMgtm0MspVYiAAQ3FB8K%2BPdpH5KBEqrry%2BZTMC8WbQArEYh00i1VjdF%2FbVxrObzX4zx6lGp%2FU0UhsjskvPqxsEumShqQHEBeeDGX5fJRSY0nOQMeOEtE3dYg2dncmznP5JRvOpxMvf0FdMWsQnd54nAazHB%2FV2YWlYiw8RUiVQ%2BOgmPIfhaDNLWp%2BxYYm9wopBw3iNCACOvFpQxNyQaj7lgJmhOn0MDv%2F8Fxrh889zlPOzbIdwEeXmrDzTN%2FEvuSoOK7cQWw7LDWOfPqdquYeQshcZnYo1ynksnvJ4THfOXzGaGo4LvcGLly534kIwu%2FHElP0F%2FVtlH6BKfzKzM%2BXusmpjtGcySF2XGZqRZxmog89dgKQjeMFYiLA%2FQ%3D&loginid=10110047&stamp=1707040006347&token=S%2Fo049M1qbXuKeqPglFcj4JdTdJtbx0ngqXQPWyR9kQ%3D +2024-02-04 17:46:49,258 WARN [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - תURL:/interface/transfer/mobile/apptransferfor3rd.jsp?tododataid=16168&isremark=0&sysId=-22&flowId=815507117245988864&workflowId=-158×tamp=1707039985726 +2024-02-04 17:46:49,258 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver==>10110047 +2024-02-04 17:46:49,259 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - paramMap==>{}{sysId=-22, request_header_user_agent=Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK, param_ip=39.144.82.33, type=app, flowId=815507117245988864, workflowId=-158, timestamp=1707039985726} +2024-02-04 17:46:49,259 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - loginidweaver.length()=={}true +2024-02-04 17:46:49,260 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}Mozilla/5.0 (Linux; Android 13; M2011K2C Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.211 Mobile Safari/537.36 E-Mobile7/7.0.52.20231110 Language/zh Qiyuesuo/physicalSDK +2024-02-04 17:46:49,260 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - ua.contains(E-Mobile7) == [}true +2024-02-04 17:46:49,260 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/ofsTrance.jsp] org.apache.jsp.interface_.transfer.ofsTrance_jsp._jspService() - update no eceute ==>10110047 +2024-02-04 17:46:49,733 ERROR [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - todoDataId=16168 +2024-02-04 17:46:49,733 ERROR [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - isRemark=0 +2024-02-04 17:46:49,736 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp.getToken() - =============apptransferforee9_token:S/o049M1qbXuKeqPglFcj9kjF+DiID/xtrwIS5LNtZ4= +2024-02-04 17:46:49,736 INFO [Thread:WeaverHttp&10110047&17:46:49&http://123.151.115.199:8999/interface/transfer/mobile/apptransferfor3rd.jsp] org.apache.jsp.interface_.transfer.mobile.apptransferfor3rd_jsp._jspService() - ==============APP˷칹ϵͳַhttps://hndtest.bankoftianjin.com/tydb/?param=rJ3yNo2x53XCQtbzIy1wR4E%2BFfupERJ39syDACqz1YHzC4lu22%2Fg%2BUhvMYh4xcLxW14ItLLbTGCEDB%2F0BXH1UkNG%2B4T2hmLinOkbYriwrSSa%2FMzouqWF11SZCw%2FkuU4Wl55y0%2BWZG2l%2B8%2FOY3BBEe9nNl6Z6GMt%2FxSGQu2acSA3LO3FSrchkWaC0eMeAUcCZtbmypSc3o2CT5bXhjd9xdnpRA4g3cL06REf%2BMVRDS6l0bcSMQ7VpDM5mAQFQ7VyMeqGk2PG7bEkTeKN9pmYZqB2FfIMcLvj5XWwrM5W5QQiVysZbaKYrmDTC5g57eqUe%2FP44RI97HI7c2OQ5NLIQKSmFTNveceTeQ3TMpo9YWC9Qk1J8YMeKr%2BbQKXdZNiMnoBsXzTE01xDSo4lyvTXIOOnl1ZBaiDdk%2Fg3hBfER8wZzVWc9W%2Bdz%2BM0C1z9LRyDbFooxzokxKLEufcJ3C1qZmPXQzMBEF52FS0gXhaFSekKnKLNAZqVGzKpCruW9p9KeIYyhdf0XGgcophhuHSOcUZigCJY9ZtzPfMBHYRqrEa9IhvRgbBko4D%2FG%2B8OTOqs9PaYvAwLH6iNRI1JhDycZhoTjIGyQLD6WNiazk%2Fu8vpk9JUU0tgRcNgz0bIuAIhi6XCwMaGSIqXeUCCxR69pF9G42f7aKKDPsgk%2FuRaL2W%2FzkcG68v%2B%2Bkenzmk36InEd4p%2FpHjjpB2r0o5H71Rm%2FSycc7f4U%2B924k9c1%2FYJhIAU%2FgPneyC9tOIdB9z4YuD%2FBw%2FSCyuCNWj3t19%2BDDdM9hxQ%3D%3D&loginid=10110047&stamp=1707040009735&token=S%2Fo049M1qbXuKeqPglFcj9kjF%2BDiID%2FxtrwIS5LNtZ4%3D diff --git a/produce/23/transfer/mobile/MHXX.jsp b/produce/23/transfer/mobile/MHXX.jsp index d009c52..8065e4c 100644 --- a/produce/23/transfer/mobile/MHXX.jsp +++ b/produce/23/transfer/mobile/MHXX.jsp @@ -1,38 +1,31 @@ -<%@ page import="weaver.integration.entrance.bean.OutterLoginBean" %> -<%@ page import="weaver.integration.entrance.service.EntranceService" %> -<%@ page import="weaver.integration.entrance.service.IEntranceService" %> -<%@ page import="weaver.integration.entrance.service.IOutterSysServer" %> -<%@ page import="weaver.integration.entrance.service.impl.NcServer" %> -<%@ page import="weaver.integration.entrance.service.permission.IPermissionService" %> -<%@ page import="weaver.integration.entrance.service.permission.PermissionService" %> <%@ page contentType="text/html;charset=UTF-8" language="java"%> <%--<%@ include file="/systeminfo/init_wev8.jsp" %>--%> -<%@ page import="weaver.integration.logging.LoggerFactory" %> -<%@ page import="weaver.integration.logging.Logger" %> + <%@ page import="weaver.general.Util" %> <%@ page import="java.util.Map" %> -<%@ page import="java.util.Objects" %> + <%@ page import="weaver.general.BaseBean" %> <%@ page import="weaver.hrm.User" %> <%@ page import="weaver.hrm.HrmUserVarify" %> <%@ page import="weaver.interfaces.encode.AES_IV" %> <%@ page import="com.engine.common.util.ParamUtil" %> -<%@ page import="com.icbc.api.internal.apache.http.impl.cookie.S" %> +<%@ page import="weaver.conn.RecordSet" %> +<%@ page import="com.wbi.util.StringUtil" %> <% - Logger integration_logger = LoggerFactory.getLogger(); BaseBean bb = new BaseBean(); + String mhurlId = ""; String mhurl = ""; String encodeResultStr = ""; try { User user = HrmUserVarify.getUser(request,response); String loginid = user.getLoginid(); Map paramMap = ParamUtil.request2Map(request); - mhurl = (String) paramMap.get("mhurl"); - + mhurlId = (String) paramMap.get("mhurlId"); + mhurl = getSysUrl(mhurlId); AES_IV aesIV = new AES_IV(); // AES的密钥长度最好是16位(不是必须) String password = "ecology_nsh_2021"; @@ -43,10 +36,39 @@ // 加密 encodeResultStr = aesIV.encode(loginid); // out.println(mhurl); - response.sendRedirect(mhurl+"?loginid="+encodeResultStr); + response.sendRedirect(mhurl+"loginid="+encodeResultStr); }catch (Exception E){ bb.writeLog("mhxxerror====>"+E.getMessage()); - response.sendRedirect(mhurl); + if (StringUtil.isBlank(mhurl)){ + out.print("跳转失败:未查询到系统ID对应的跳转链接(02002)"); + }else { + response.sendRedirect(mhurl); + } + + } + %> + +<%! + public static String getSysUrl(String sysid){ + RecordSet rs = new RecordSet(); + String url = "-1"; + //查询建模 + rs.executeQuery("select * from uf_otherSysInfo where id = ?" ,sysid); + if (rs.next()){ + url = Util.null2String(rs.getString("xtdz")); + }else { + return "-1"; + } + url = url.trim(); + if (!StringUtil.isBlank(url)){ + //判断是否带?号 + if (url.indexOf("?") == -1){ + url = url+"?"; + }else{ + url = url+"&"; + } + }; + return url; } - %> \ No newline at end of file +%> \ No newline at end of file diff --git a/produce/23/transfer/ofsTrance.jsp b/produce/23/transfer/ofsTrance.jsp index b8861b0..76f3c70 100644 --- a/produce/23/transfer/ofsTrance.jsp +++ b/produce/23/transfer/ofsTrance.jsp @@ -13,6 +13,7 @@ <%@ page import="org.apache.commons.lang3.StringUtils" %> <%@ page import="com.alibaba.fastjson.JSONObject" %> <%@ page import="weaver.interfaces.sso.cas.CASLoginUtil" %> +<%@ page import="com.wbi.util.ParamUtil" %> <%@ include file="/systeminfo/init_wev8.jsp" %> <% @@ -58,12 +59,29 @@ String toURL = todoDataUtils.getURL("app".equalsIgnoreCase(type)? "1":"0" , ofsSysInfo , todoData , request , paramMap) ; log.warn("跳转URL:" + toURL); - rs.executeUpdate("update ofs_todo_data set viewtype=1 where requestid=? and userid=? and islasttimes=1" , requestId , userId); + //添加判断,是否为小号,为小号则不更新未读标记 + String loginidweaver = getCookie(request, "loginidweaver"); + log.info("loginidweaver==>"+loginidweaver); - rs.executeUpdate("update ofs_done_data set viewtype=1 where requestid=? and userid=? " , requestId , userId); + log.info("paramMap==>{}"+ParamUtil.request2Map(request)); + String ua = Util.null2String(ParamUtil.request2Map(request).get("request_header_user_agent")); + log.info("loginidweaver.length()=={}"+(loginidweaver.length() == 8)); + log.info(" ua.contains(E-Mobile7) == [}"+ua); + log.info(" ua.contains(E-Mobile7) == [}"+ua.contains("E-Mobile7") ); + if(loginidweaver.length() == 8 && ua.contains("E-Mobile7") ){ + log.info("update no eceute ==>"+loginidweaver); - rs.executeUpdate("delete from SysPoppupRemindInfoNew where userid = ? and requestid = ?", userId, requestId); + }else { + log.info("update viewtype=1 ==>"+loginidweaver); + + rs.executeUpdate("update ofs_todo_data set viewtype=1 where requestid=? and userid=? and islasttimes=1" , requestId , userId); + + rs.executeUpdate("update ofs_done_data set viewtype=1 where requestid=? and userid=? " , requestId , userId); + + rs.executeUpdate("delete from SysPoppupRemindInfoNew where userid = ? and requestid = ?", userId, requestId); + + } %>