|
|
|
@ -0,0 +1,331 @@
|
|
|
|
|
package com.engine.dito.reqremark.cmd;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.customization.dito.sendtodo.HttpRequestUtil;
|
|
|
|
|
import com.customization.dito.sendtodo.SendPortalErrorUtil;
|
|
|
|
|
import com.engine.common.biz.AbstractCommonCommand;
|
|
|
|
|
import com.engine.common.entity.BizLogContext;
|
|
|
|
|
import com.engine.core.interceptor.CommandContext;
|
|
|
|
|
import com.time.util.DateUtil;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
import weaver.general.BaseBean;
|
|
|
|
|
import weaver.general.TimeUtil;
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
import weaver.interfaces.dito.comInfo.PropBean;
|
|
|
|
|
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class RequestRemarkOverTimeCmd extends AbstractCommonCommand<Map<String,Object>> {
|
|
|
|
|
@Override
|
|
|
|
|
public BizLogContext getLogContext() {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public RequestRemarkOverTimeCmd(Map<String,Object> params, User user) {
|
|
|
|
|
this.params = params;
|
|
|
|
|
this.user = user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, Object> execute(CommandContext commandContext) {
|
|
|
|
|
String currentUserId = user.getUID()+"";
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
|
|
|
|
|
String requestid = Util.null2String(params.get("requestid"));
|
|
|
|
|
bb.writeLog("RequestRemarkArchivedCmd-requestid:"+requestid);
|
|
|
|
|
|
|
|
|
|
String nodeid = Util.null2String(params.get("nodeid"));
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String resultCode = sendRemarkArchivedPortalDoneData(requestid,nodeid,currentUserId);
|
|
|
|
|
bb.writeLog("RequestRemarkArchivedCmd-resultCode:"+resultCode);
|
|
|
|
|
if("0".equals(resultCode) || "DONE-FAIL-001".equals(resultCode)){
|
|
|
|
|
bb.writeLog("RequestRemarkArchivedCmd-resultCode22:"+resultCode);
|
|
|
|
|
resultCode = completeRemarkArchivedPortalReadData(requestid, nodeid,currentUserId);
|
|
|
|
|
}
|
|
|
|
|
map.put("resultcode",resultCode);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*
|
|
|
|
|
* @param requestid
|
|
|
|
|
* @param nodeid
|
|
|
|
|
* @param currentUserId
|
|
|
|
|
*/
|
|
|
|
|
public String completeRemarkArchivedPortalReadData(String requestid, String nodeid,String currentUserId){
|
|
|
|
|
|
|
|
|
|
String resultCode = "" ;
|
|
|
|
|
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
|
|
|
|
|
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
|
|
|
|
|
|
|
|
|
|
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
|
|
|
|
|
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
|
|
|
|
|
String portal_todourl = PropBean.getUfPropValue("portal_todourl");
|
|
|
|
|
String username = PropBean.getUfPropValue("username");
|
|
|
|
|
String passwd = PropBean.getUfPropValue("passwd");
|
|
|
|
|
String center = PropBean.getUfPropValue("center");
|
|
|
|
|
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
|
|
|
|
|
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
|
|
|
|
|
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
|
|
bb.writeLog("completeRemarkArchivedPortalReadData");
|
|
|
|
|
String actionType = "3" ;
|
|
|
|
|
String terminal = "1" ;
|
|
|
|
|
String taskType = "1"; //0 – 待办 1 –待阅
|
|
|
|
|
|
|
|
|
|
String objectAction = "0" ;
|
|
|
|
|
String objectType = "0";
|
|
|
|
|
String objectId = "" ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
String workcode = "";
|
|
|
|
|
String sql = " select * from (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) w where w.id = '" + currentUserId + "'";
|
|
|
|
|
rs.executeQuery(sql);
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
workcode = Util.null2String(rs.getString("loginid"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bb.writeLog("completeRemarkArchivedPortalReadData-workcode:"+workcode);
|
|
|
|
|
|
|
|
|
|
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
|
|
|
|
|
String replace = bpm_app_workflowurl.replace("/bpm", "");
|
|
|
|
|
String urlDing = replace+bpm_app_requesturl+requestid;
|
|
|
|
|
String urlApp = replace+bpm_app_requesturl+requestid;
|
|
|
|
|
if(StringUtils.isNotEmpty(mobileJumpUrl)){
|
|
|
|
|
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
|
|
|
|
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String requestname = "";
|
|
|
|
|
String workflowname = "" ;
|
|
|
|
|
|
|
|
|
|
sql = " select t1.requestname,t3.workflowname\n" +
|
|
|
|
|
" from workflow_requestbase t1\n" +
|
|
|
|
|
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
|
|
|
|
|
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
|
|
|
|
" and t1.requestid = " + requestid;
|
|
|
|
|
bb.writeLog("completeRemarkArchivedPortalReadData-sql:"+sql);
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
workflowname = Util.null2String(rs.getString("workflowname")) ;
|
|
|
|
|
requestname = Util.null2String(rs.getString("requestname")) ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String createdate = TimeUtil.getCurrentDateString();
|
|
|
|
|
String createtime = TimeUtil.getCurrentTimeString();
|
|
|
|
|
String nodename = getNodeName(nodeid);
|
|
|
|
|
|
|
|
|
|
JSONObject requestObject = new JSONObject();
|
|
|
|
|
requestObject.put("center",center);
|
|
|
|
|
requestObject.put("title",requestname);
|
|
|
|
|
requestObject.put("creator",workcode);
|
|
|
|
|
requestObject.put("taskCode", requestid+"_cs_"+currentUserId);
|
|
|
|
|
requestObject.put("nodeId",nodeid);
|
|
|
|
|
requestObject.put("taskType",taskType);
|
|
|
|
|
requestObject.put("actionType",actionType);
|
|
|
|
|
requestObject.put("createDate",createdate+" "+createtime);
|
|
|
|
|
requestObject.put("messageTitle",requestname);
|
|
|
|
|
requestObject.put("messageContent",requestname);
|
|
|
|
|
requestObject.put("terminal",terminal);
|
|
|
|
|
requestObject.put("urlPc",urlPc);
|
|
|
|
|
requestObject.put("urlApp",urlApp);
|
|
|
|
|
requestObject.put("urlDing",urlDing);
|
|
|
|
|
requestObject.put("nodeName",getNodeName(nodeid));
|
|
|
|
|
requestObject.put("ticketType",workflowname);
|
|
|
|
|
|
|
|
|
|
// JSONArray taskObjectList = new JSONArray();
|
|
|
|
|
// JSONObject taskObject = new JSONObject();
|
|
|
|
|
// String objectCode = workcode ;
|
|
|
|
|
// String operatorCode = workcode ;
|
|
|
|
|
// taskObject.put("objectAction",objectAction);
|
|
|
|
|
// taskObject.put("objectType",objectType);
|
|
|
|
|
// taskObject.put("objectCode",objectCode);
|
|
|
|
|
// taskObject.put("objectId",objectId);
|
|
|
|
|
// taskObject.put("operatorCode",operatorCode);
|
|
|
|
|
// taskObjectList.add(taskObject);
|
|
|
|
|
// requestObject.put("taskObjectList",taskObjectList);
|
|
|
|
|
|
|
|
|
|
bb.writeLog("completeRemarkArchivedPortalReadData-requestObject:"+requestObject.toJSONString());
|
|
|
|
|
|
|
|
|
|
String auth = username + ":" + passwd;
|
|
|
|
|
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
|
|
|
|
|
bb.writeLog("completeRemarkArchivedPortalReadData-msgdata:"+msgdata);
|
|
|
|
|
if(StringUtils.isNotEmpty(msgdata)){
|
|
|
|
|
JSONObject msgObject = JSONObject.parseObject(msgdata);
|
|
|
|
|
//{"resultCode":"1","resultMsg":"No Result"}
|
|
|
|
|
if(msgObject.containsKey("resultCode")){
|
|
|
|
|
resultCode = msgObject.getString("resultCode");
|
|
|
|
|
if(!"0".equals(resultCode)){
|
|
|
|
|
String resultmsg = msgObject.getString("resultMsg");
|
|
|
|
|
sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,currentUserId,requestObject.toJSONString(),resultCode,resultmsg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*
|
|
|
|
|
* @param requestid
|
|
|
|
|
* @param nodeid
|
|
|
|
|
* @param userid
|
|
|
|
|
*/
|
|
|
|
|
public String sendRemarkArchivedPortalDoneData(String requestid, String nodeid,String userid) {
|
|
|
|
|
|
|
|
|
|
String resultCode = "" ;
|
|
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
bb.writeLog("RequestRemarkArchivedCmd--sendRemarkArchivedPortalDoneData");
|
|
|
|
|
|
|
|
|
|
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
|
|
|
|
|
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
|
|
|
|
|
|
|
|
|
|
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
|
|
|
|
|
String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
|
|
|
|
|
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
|
|
|
|
|
String username = PropBean.getUfPropValue("username");
|
|
|
|
|
String passwd = PropBean.getUfPropValue("passwd");
|
|
|
|
|
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
|
|
|
|
|
String center = PropBean.getUfPropValue("center");
|
|
|
|
|
String mobileJumpUrl = PropBean.getUfPropValue("mobileJumpUrl");
|
|
|
|
|
|
|
|
|
|
String isRecall = "1";
|
|
|
|
|
String actionType = "0";
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
String workcode = "";
|
|
|
|
|
String sql = "select loginid from hrmresource where id = '" + userid + "'";
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
workcode = Util.null2String(rs.getString("loginid"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
|
|
|
|
|
String replace = bpm_app_workflowurl.replace("/bpm", "");
|
|
|
|
|
String urlDing = replace+bpm_app_requesturl+requestid;
|
|
|
|
|
String urlApp = replace+bpm_app_requesturl+requestid;
|
|
|
|
|
if(StringUtils.isNotEmpty(mobileJumpUrl)){
|
|
|
|
|
urlDing += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
|
|
|
|
urlApp += "&returnUrl="+URLEncoder.encode(mobileJumpUrl,"UTF-8");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
|
sql = " select t2.userid\n" +
|
|
|
|
|
" from workflow_requestbase t1\n" +
|
|
|
|
|
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
|
|
|
|
|
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
|
|
|
|
" and t2.isremark in ('4')\n" +
|
|
|
|
|
" and t2.preisremark in ('4')\n" +
|
|
|
|
|
" and t2.requestid = "+requestid +" and t2.userid in ("+userid+")";
|
|
|
|
|
bb.writeLog("sendRemarkArchivedPortalDoneData--sql:"+sql);
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
count++;
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("sendRemarkArchivedPortalDoneData--count:"+count);
|
|
|
|
|
if(count > 0)
|
|
|
|
|
{
|
|
|
|
|
String requestname = "" ;
|
|
|
|
|
String workflowname = "" ;
|
|
|
|
|
sql = " select t1.workflowid,t1.requestname,t1.requestmark,t3.workflowname\n" +
|
|
|
|
|
" from workflow_requestbase t1\n" +
|
|
|
|
|
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
|
|
|
|
|
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
|
|
|
|
|
" and t1.requestid = " + requestid;
|
|
|
|
|
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
requestname = Util.null2String(rs.getString("requestname"));
|
|
|
|
|
workflowname = Util.null2String(rs.getString("workflowname"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String nodename = getNodeName(nodeid);
|
|
|
|
|
|
|
|
|
|
JSONObject requestObject = new JSONObject();
|
|
|
|
|
requestObject.put("center", center);
|
|
|
|
|
requestObject.put("taskCode", requestid+"_cs_"+userid);
|
|
|
|
|
requestObject.put("nodeId", nodeid);
|
|
|
|
|
requestObject.put("title", getShortMessageTitle(requestname));
|
|
|
|
|
requestObject.put("creator", workcode);
|
|
|
|
|
requestObject.put("processStaff", workcode);
|
|
|
|
|
requestObject.put("processTime", processTime);
|
|
|
|
|
requestObject.put("isRecall", isRecall);
|
|
|
|
|
requestObject.put("actionType", actionType);
|
|
|
|
|
requestObject.put("urlPC", urlPc);
|
|
|
|
|
requestObject.put("urlApp", urlApp);
|
|
|
|
|
requestObject.put("urlDing",urlDing);
|
|
|
|
|
requestObject.put("ticketType",workflowname);
|
|
|
|
|
|
|
|
|
|
String auth = username + ":" + passwd;
|
|
|
|
|
bb.writeLog("sendRemarkArchivedPortalDoneData-requestObject:"+requestObject.toJSONString());
|
|
|
|
|
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
|
|
|
|
|
bb.writeLog("sendRemarkArchivedPortalDoneData-msgdata:" + msgdata);
|
|
|
|
|
if(StringUtils.isNotEmpty(msgdata)){
|
|
|
|
|
JSONObject msgObject = JSONObject.parseObject(msgdata);
|
|
|
|
|
//{"resultCode":"1","resultMsg":"No Result"}
|
|
|
|
|
if(msgObject.containsKey("resultCode")){
|
|
|
|
|
resultCode = msgObject.getString("resultCode");
|
|
|
|
|
if(!"0".equals(resultCode)){
|
|
|
|
|
String resultmsg = msgObject.getString("resultMsg");
|
|
|
|
|
sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,resultmsg);
|
|
|
|
|
}else{
|
|
|
|
|
sendPortalErrorUtil.doRecordPortalErrorInfo(requestid,nodeid,nodename,userid,requestObject.toJSONString(),resultCode,"");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
bb.writeLog("sendRemarkArchivedPortalDoneData-e:"+e);
|
|
|
|
|
}
|
|
|
|
|
return resultCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*
|
|
|
|
|
* @param messageTitle
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private String getShortMessageTitle(String messageTitle) {
|
|
|
|
|
if (messageTitle.length() > 20) {
|
|
|
|
|
messageTitle = messageTitle.substring(0, 17) + "...";
|
|
|
|
|
}
|
|
|
|
|
return messageTitle;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*
|
|
|
|
|
* @param id
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private String getNodeName(String id){
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
String name = "";
|
|
|
|
|
rs.executeQuery(" select nodename from workflow_nodebase where id = ?",id);
|
|
|
|
|
while (rs.next()){
|
|
|
|
|
name = Util.null2String(rs.getString("nodename"));
|
|
|
|
|
}
|
|
|
|
|
return name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|