记录代码修改1116
parent
f1f1e589aa
commit
eb7abf86da
@ -0,0 +1,160 @@
|
||||
package com.engine.workflow.cmd.agent;
|
||||
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import com.engine.workflow.biz.AgentBiz;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.workflow.agent.AgentBean;
|
||||
import weaver.workflow.agent.AgentDateBean;
|
||||
import weaver.workflow.agent.AgentManager;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class SaveAgentDetailCmd extends AbstractCommonCommand<Map<String,Object>>{
|
||||
|
||||
private HttpServletRequest request;
|
||||
|
||||
public SaveAgentDetailCmd(HttpServletRequest request, User user){
|
||||
this.request = request;
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String,Object> apidatas = new HashMap<String,Object>();
|
||||
try{
|
||||
AgentManager agentManager = new AgentManager(user);
|
||||
String result = "";
|
||||
RecordSet rs = new RecordSet();
|
||||
int agentid = Util.getIntValue(request.getParameter("agentid"), 0);
|
||||
Map<String,Object> agentMap = getAgentInfo(agentid);
|
||||
String workflowid = (String) agentMap.get("workflowid");
|
||||
//代理人
|
||||
int agenterid = (int) agentMap.get("agenterid");
|
||||
//被代理人
|
||||
int beagenterid = (int) agentMap.get("beagenterid");
|
||||
AgentDateBean datebean = new AgentDateBean();
|
||||
datebean.setBegindate(Util.null2String(request.getParameter("beginDate")));
|
||||
datebean.setBegintime(Util.null2String(request.getParameter("beginTime")));
|
||||
datebean.setEnddate(Util.null2String(request.getParameter("endDate")));
|
||||
datebean.setEndtime(Util.null2String(request.getParameter("endTime")));
|
||||
List<AgentBean> datas = AgentBiz.generateAgentBeanList(request);
|
||||
int row_0_isPendThing = Util.getIntValue(request.getParameter("row_0_isPendThing"), 0);
|
||||
int row_0_agentuid = Util.getIntValue(request.getParameter("row_0_agentuid"));
|
||||
//int overlapMethod = Util.getIntValue(request.getParameter("overlapMethod"), 0);
|
||||
int overlapMethod = 2; //默认以新保存代理覆盖被重复代理
|
||||
String symbol = Util.null2String(request.getParameter("symbol"));
|
||||
|
||||
Class<?> clazz = Class.forName("com.customization.dito.sendtodo.SendPortalAgentCmd");
|
||||
|
||||
if("edit".equals(symbol)){
|
||||
//对接门户
|
||||
//代理已有的待办事宜
|
||||
if(row_0_isPendThing == 1){
|
||||
rs.writeLog("=========== SaveAgentDetailCmd agenterid =================="+agenterid);
|
||||
rs.writeLog("=========== SaveAgentDetailCmd beagenterid =================="+beagenterid);
|
||||
rs.writeLog("=========== SaveAgentDetailCmd row_0_agentuid =================="+row_0_agentuid);
|
||||
|
||||
//新的代理人和原有代理人 不一致,需要更新为新的代理人
|
||||
if(agenterid != row_0_agentuid){
|
||||
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
|
||||
}
|
||||
}else {
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,agenterid,beagenterid,workflowid,user);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(agenterid != row_0_agentuid){
|
||||
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
|
||||
// DealPortalTodoAndDone(row_0_agentuid, agenterid, workflowid);
|
||||
}
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
|
||||
}
|
||||
}
|
||||
boolean ismodifyCondition = "true".equals(Util.null2String(request.getParameter("ismodifyCondition")));
|
||||
result = agentManager.changeAgentSet(agentid, datebean, overlapMethod, ismodifyCondition, datas);
|
||||
}else if("saveas".equals(symbol)){ //另存为
|
||||
//对接门户
|
||||
//代理已有的待办事宜
|
||||
if(row_0_isPendThing == 1){
|
||||
//新的代理人和原有代理人 不一致,需要更新为新的代理人
|
||||
if(agenterid != row_0_agentuid){
|
||||
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,row_0_agentuid,beagenterid,workflowid,user);
|
||||
}
|
||||
}else {
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,agenterid,beagenterid,workflowid,user);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(agenterid != row_0_agentuid){
|
||||
rs.executeUpdate("update workflow_agent set agenterid=? where agentid=?",row_0_agentuid,agentid);
|
||||
// DealPortalTodoAndDone(row_0_agentuid, agenterid, workflowid);
|
||||
}
|
||||
if(clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class}) != null) {
|
||||
Method method = clazz.getMethod("DealPortalTodoAndDone",new Class[]{int.class,int.class,String.class,User.class});
|
||||
Object newInstance = clazz.newInstance();
|
||||
method.invoke(newInstance,beagenterid,agenterid,workflowid,user);
|
||||
}
|
||||
}
|
||||
result = agentManager.saveAsNewAgent(agentid, datebean, datas, overlapMethod);
|
||||
}
|
||||
apidatas.put("agentresult", result);
|
||||
}catch(Exception e){
|
||||
apidatas.put("api_status", false);
|
||||
apidatas.put("api_errormsg", e.getMessage());
|
||||
}
|
||||
return apidatas;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流程代理信息
|
||||
* @param agentid
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> getAgentInfo(int agentid){
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeQuery("select * from workflow_agent where agentid=?",agentid);
|
||||
while(rs.next()){
|
||||
String workflowid = Util.null2String(rs.getString("workflowid"));
|
||||
int agenterid = Util.getIntValue(rs.getString("agenterid"));
|
||||
int beagenterid = Util.getIntValue(rs.getString("beagenterid"));
|
||||
|
||||
map.put("workflowid",workflowid);
|
||||
map.put("agenterid",agenterid);
|
||||
map.put("beagenterid",beagenterid);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue