package com.engine.kq.wfset.action; import com.engine.kq.biz.KQFlowActiontBiz; import com.engine.kq.log.KQLog; import java.io.PrintWriter; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.RequestInfo; import weaver.workflow.workflow.WorkflowComInfo; /** * 考勤流程数据拆分action */ public class KqSplitAction extends BaseBean implements Action { private KQLog kqLog = new KQLog(); @Override public String execute(RequestInfo request) { this.writeLog("KqSplitAction", "do action on request:" + request.getRequestid()); String requestid = request.getRequestid(); kqLog.info("do KqSplitAction on requestid:"+requestid); int requestidInt = Util.getIntValue(requestid, 0); String workflowid = request.getWorkflowid(); String formid = new WorkflowComInfo().getFormId(workflowid); try { KQFlowActiontBiz kqFlowActiontBiz = new KQFlowActiontBiz(); RecordSet rs = new RecordSet(); String proc_set_sql = "select * from kq_att_proc_set where field001 = ? and field002 = ? "; rs.executeQuery(proc_set_sql, workflowid,formid); if(rs.next()){ String proc_set_id = rs.getString("id"); //得到这个考勤流程设置是否使用明细 String usedetails = rs.getString("usedetail"); int kqtype = Util.getIntValue(rs.getString("field006")); kqLog.info("do action on kqtype:" + kqtype+":requestidInt:"+requestidInt); Map map = new HashMap(); if(requestidInt > 0){ map.put("requestId", "and t.requestId = " + requestidInt); } Map result = kqFlowActiontBiz.handleKQFlowAction(proc_set_id, usedetails, requestidInt, kqtype, Util.getIntValue(workflowid), false,false,map); if(!result.isEmpty()){ String error = Util.null2String(result.get("message")); request.getRequestManager().setMessageid("666" + request.getRequestid() + "999"); request.getRequestManager().setMessagecontent(error); return Action.FAILURE_AND_CONTINUE; } } } catch (Exception e) { kqLog.info("流程数据报错:KqSplitAction:"); StringWriter errorsWriter = new StringWriter(); e.printStackTrace(new PrintWriter(errorsWriter)); kqLog.info(errorsWriter.toString()); request.getRequestManager().setMessageid("11111" + request.getRequestid() + "22222"); request.getRequestManager().setMessagecontent("【考勤报表统计action】报错,请联系管理员!"); return Action.FAILURE_AND_CONTINUE; } return Action.SUCCESS; } }