package com.engine.tjbankSocket.impl; import com.engine.tjbankSocket.SocketExecute; import com.engine.util.XMLUtils; import com.icbc.api.internal.apache.http.impl.cookie.S; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; import weaver.soa.workflow.request.RequestService; import java.util.HashMap; import java.util.Map; public class CWGLSocketExecute implements SocketExecute { @Override public String execute(String param) { Map paramMap = XMLUtils.parseXMLToMap(param); String oaTrvlBnsExpnsAcctNo = paramMap.get("oaTrvlBnsExpnsAcctNo"); String apprvrNo = paramMap.get("apprvrNo"); String flowStatus = paramMap.get("flowStatus"); String sgntrOpn = paramMap.get("sgntrOpn"); Map resultMap = null; int userid = 0; try { resultMap = getBeanByOAnum(oaTrvlBnsExpnsAcctNo,"formtable_main_281"); } catch (Exception e) { e.printStackTrace(); } try { userid = getHrmidByWorkCode(apprvrNo); } catch (Exception e) { e.printStackTrace(); } String id = resultMap.get("id"); int requestid = Util.getIntValue(resultMap.get("requestid")); if (requestid == 0){ return XMLUtils.CW2XML(paramMap, "1", "流程未找到"); } if (userid == 0){ return XMLUtils.CW2XML(paramMap, "1", "人员未找到"); } RequestService requestService = new RequestService(); boolean istrue = false; if ("0".equals(flowStatus)){ istrue = requestService.nextNodeBySubmit(null, requestid, userid, sgntrOpn); }else { istrue = requestService.nextNodeByReject(requestid, userid, sgntrOpn); } if (istrue){ return XMLUtils.CW2XML(paramMap, "0", ""); }else { return XMLUtils.CW2XML(paramMap,"1","流程提交失败"); } } public Map getBeanByOAnum(String oaTrvlBnsExpnsAcctNo ,String tableName) throws Exception { RecordSet recordSet = new RecordSet(); HashMap resultMap = new HashMap<>(); String sql = "select * from "+tableName + " where djbh = ?"; recordSet.executeQuery(sql,oaTrvlBnsExpnsAcctNo); if (recordSet.next()){ resultMap.put("id", Util.null2String(recordSet.getString("id"))); resultMap.put("requestid", Util.null2String(recordSet.getString("requestid"))); return resultMap; }else{ throw new Exception("编号对应单据不存在"); } } public int getHrmidByWorkCode(String workcode) throws Exception { RecordSet recordSet = new RecordSet(); String sql = "select id from HRMRESOURCE where workcode = ?"; recordSet.executeQuery(sql,workcode); if (recordSet.next()){ return Util.getIntValue(recordSet.getString("id")); }else { throw new Exception("审批人不存在"); } } }