package cn.ksource.web.facade.customerconfig.incident; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; @Service("incidentflowFacade") public class IncidentflowFacadeImpl implements IncidentflowFacade { @Autowired private BaseDao baseDao; /** * 查询事件管理流转策略 */ @Override public Map queryIncidentNodeDealConfig(String customerId) { String selectSql = "SELECT * FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE PROJECT_ID = :customerId"; List list = baseDao.queryForList(selectSql,new SqlParameter("customerId",customerId)); if(null!=list && list.size()>0) { Map lcMap = list.get(0); lcMap.put("isSelf", 1); return lcMap; }else{ String sql = "SELECT * FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE (PROJECT_ID = '' OR PROJECT_ID IS NULL)"; List gslist = baseDao.queryForList(sql); if(null!=gslist && gslist.size()>0) { Map lcMap = gslist.get(0); lcMap.put("isSelf", 2); return lcMap; } } return null; } /** * 保存事件管理流转策略 */ @Override public void saveIncidentNodeDealConfig(Map param) { List listKfry = new ArrayList(); if(!StringUtil.isEmpty(param.get("kfry"))){ String[] kfry= param.get("kfry").split(","); if(null!=kfry && kfry.length>0) { for(String nodeId : kfry) { String nodeName = Constants.incidentNode.get(nodeId); Map map = new HashMap(); map.put("nodeId", nodeId); map.put("nodeName", nodeName); listKfry.add(map); } } } List listYcjszc = new ArrayList(); if(!StringUtil.isEmpty(param.get("ycjszc"))){ String[] ycjszc= param.get("ycjszc").split(","); if(null!=ycjszc && ycjszc.length>0) { for(String nodeId : ycjszc) { String nodeName = Constants.incidentNode.get(nodeId); Map map = new HashMap(); map.put("nodeId", nodeId); map.put("nodeName", nodeName); listYcjszc.add(map); } } } List listYxgcs = new ArrayList(); if(!StringUtil.isEmpty(param.get("yxgcs"))){ String[] yxgcs= param.get("yxgcs").split(","); if(null!=yxgcs && yxgcs.length>0) { for(String nodeId : yxgcs) { String nodeName = Constants.incidentNode.get(nodeId); Map map = new HashMap(); map.put("nodeId", nodeId); map.put("nodeName", nodeName); listYxgcs.add(map); } } } List listExgcs = new ArrayList(); if(!StringUtil.isEmpty(param.get("exgcs"))){ String[] exgcs= param.get("exgcs").split(","); if(null!=exgcs && exgcs.length>0) { for(String nodeId : exgcs) { String nodeName = Constants.incidentNode.get(nodeId); Map map = new HashMap(); map.put("nodeId", nodeId); map.put("nodeName", nodeName); listExgcs.add(map); } } } List listSxgcs = new ArrayList(); if(!StringUtil.isEmpty(param.get("sxgcs"))){ String[] sxgcs= param.get("sxgcs").split(","); if(null!=sxgcs && sxgcs.length>0) { for(String nodeId : sxgcs) { String nodeName = Constants.incidentNode.get(nodeId); Map map = new HashMap(); map.put("nodeId", nodeId); map.put("nodeName", nodeName); listSxgcs.add(map); } } } //客户编号 String proId = param.get("customerId"); String id = param.get("id"); String isSelf = param.get("isSelf"); param.put("kfry", JsonUtil.list2Json(listKfry)); param.put("ycjszc", JsonUtil.list2Json(listYcjszc)); param.put("yxgcs", JsonUtil.list2Json(listYxgcs)); param.put("exgcs", JsonUtil.list2Json(listExgcs)); param.put("sxgcs", JsonUtil.list2Json(listSxgcs)); param.put("project_id", proId); String updateSql = new String(); if(!StringUtil.isEmpty(isSelf)){ if(ConvertUtil.obj2Integer(isSelf) == 2) { param.put("id", StringUtil.getUUID()); updateSql = "INSERT INTO SC_WORKFLOW_INCIDENT_FLOWRULE (ID,KFRY,YCJSZC,YXGCS,EXGCS,SXGCS,PROJECT_ID) VALUES (:id,:kfry,:ycjszc,:yxgcs,:exgcs,:sxgcs,:project_id)"; } else { param.put("id", id); updateSql = "UPDATE SC_WORKFLOW_INCIDENT_FLOWRULE SET KFRY = :kfry,YCJSZC=:ycjszc,YXGCS=:yxgcs,EXGCS=:exgcs,SXGCS=:sxgcs WHERE ID = :id AND PROJECT_ID = :project_id"; } }else{ param.put("id", StringUtil.getUUID()); updateSql = "INSERT INTO SC_WORKFLOW_INCIDENT_FLOWRULE (ID,KFRY,YCJSZC,YXGCS,EXGCS,SXGCS,PROJECT_ID) VALUES (:id,:kfry,:ycjszc,:yxgcs,:exgcs,:sxgcs,:project_id)"; } baseDao.execute(updateSql, param); } /** * 得到登录用户事件配置的总数 判断是否显示公司默认选项 */ @Override public Integer getIncidentNodeDealCount(String customerId) { String selectSql = "SELECT COUNT(*) FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE PROJECT_ID = :customerId "; Map param = new HashMap(); param.put("customerId", customerId); int count = baseDao.queryForInteger(selectSql.toString(),param); return count; } /** * 查询 事件管理流程节点配置 除去ID值 */ @Override public Map queryIncidentNodeDealNotId(Map param) { String selectSql = "SELECT KFRY,YCJSZC,YXGCS,EXGCS,SXGCS FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE PROJECT_ID IS NULL "; Map map = baseDao.queryForMap(selectSql,new SqlParameter()); return map; } @Override public void updatelc(Map params) { String delsql = "DELETE FROM SC_WORKFLOW_INCIDENT_FLOWRULE WHERE PROJECT_ID = :customerId "; baseDao.execute(delsql, params); } }