package cn.ksource.web.facade.ciadd;
|
|
import java.io.FileInputStream;
|
import java.io.FileNotFoundException;
|
import java.io.IOException;
|
import java.util.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.apache.commons.lang.StringUtils;
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
import org.apache.poi.hssf.usermodel.HSSFRow;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.beans.CMDB_CI_BASE;
|
import cn.ksource.beans.CMDB_CI_CATEGORY;
|
import cn.ksource.beans.CMDB_MAINUFACTURER_CONTACTS;
|
import cn.ksource.beans.GG_USER;
|
import cn.ksource.beans.SC_WORKFLOW_CI_ADD;
|
import cn.ksource.beans.WORKFLOW_BASE;
|
import cn.ksource.beans.WORKFLOW_NODE;
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.DateUtil;
|
import cn.ksource.core.util.JsonUtil;
|
import cn.ksource.core.util.PinYinUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.core.web.SysInfoMsg;
|
import cn.ksource.core.web.TreeNode;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.core.workflow.NodeAnswerEntity;
|
import cn.ksource.core.workflow.NodeDealEntity;
|
import cn.ksource.core.workflow.NodeFinishEntity;
|
import cn.ksource.core.workflow.WorkflowBusinessService;
|
import cn.ksource.core.workflow.WorkflowCoreService;
|
import cn.ksource.core.workflow.WorkflowDutyerEntity;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.entity.WorkFlowSupportEntity;
|
import cn.ksource.web.facade.change.ChangeFacade;
|
import cn.ksource.web.facade.dsl.DSLFacade;
|
import cn.ksource.web.facade.incident.IncidentFacade;
|
import cn.ksource.web.facade.servicelist.SlaProjectFacade;
|
import cn.ksource.web.service.WorkOrderCodeService;
|
import cn.ksource.web.service.cmdb.SequenceService;
|
import cn.ksource.web.service.file.FileService;
|
import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
|
@SuppressWarnings("unchecked")
|
@Service("ciAddFacade")
|
public class CiAddFacadeImpl implements CiAddFacade {
|
|
@Autowired
|
private BaseDao baseDao;
|
@Autowired
|
private DSLFacade dslFacade;
|
@Resource
|
private ChangeFacade changeFacade;
|
|
@Autowired
|
private IncidentFacade incidentFacade;
|
|
@Resource
|
private WorkFlowSupportService workFlowSupportService;
|
|
@Resource
|
private SequenceService sequenceService;
|
|
@Autowired
|
private WorkflowBusinessService workflowBusinessService;
|
|
@Autowired
|
private WorkflowCoreService workflowCoreService;
|
|
@Autowired
|
private WorkOrderCodeService workOrderCodeService;
|
@Autowired
|
private SlaProjectFacade slaProjectFacade;
|
@Autowired
|
private FileService fileService;
|
|
@Override
|
public Map queryCiAddBaseMsg(String partnerId,String orderId) {
|
String selectSql = "SELECT A.*,N.ANSWER_TIME AS XY_TIME,B.WFSTATE FROM SC_WORKFLOW_CI_ADD A LEFT JOIN WORKFLOW_BASE B ON A.ID = B.BUSINESS_ID LEFT JOIN WORKFLOW_NODE N ON B.CURRENT_NODE_ID = N.ID WHERE A.ID = :orderId AND B.PARTNER_ID = :partnerId ";
|
Map baseMap = baseDao.queryForMap(selectSql,new SqlParameter("orderId",orderId).addValue("partnerId", partnerId));
|
if(null!=baseMap && baseMap.size()>0) {
|
//查询附件
|
List<Map> files = fileService.getFileList(orderId);
|
baseMap.put("files", files);
|
}
|
return baseMap;
|
}
|
|
public void doFinish(HttpServletRequest request){
|
String orderId = request.getParameter("orderId");
|
String nodeId = request.getParameter("nodeId");
|
String note = request.getParameter("flowNote");
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String flowId = ciAddOrder.getFlow_id();
|
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setFlowId(flowId);
|
support.setNodeId(nodeId);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setNote(note);
|
support.setFlowEndflag(true);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
workFlowSupportService.doOrderFlow(support);
|
//更新设备状态为正常
|
updateCMDB(ciAddOrder.getFlow_id());
|
//保存dsl操作记录
|
dslFacade.saveConfigDslDealRecord(flowId);
|
//更新dsl关系
|
dslFacade.updateConfigDslWhenFinish(flowId);
|
//配置关系保存到记录表
|
changeFacade.saveRelationWhenClose(flowId);
|
//保存配置关系-结束工单
|
changeFacade.updateRelationWhenFinish(flowId);
|
//更新日常巡检设备
|
/*updateDayPatrol(ciAddOrder.getFlow_id());
|
//更新例行巡检项
|
updateDutyPatrol(ciAddOrder.getFlow_id());
|
//更新健康检查
|
updateHealthPatrol(ciAddOrder.getFlow_id());*/
|
}
|
|
|
@Override
|
public Map getCiAddDetail(String orderid, String nodeid, String model,
|
HttpServletRequest request) {
|
Map add = baseDao.queryForMap("select * from SC_WORKFLOW_CI_ADD where id=:id", new SqlParameter("id", orderid));
|
Map workflow = baseDao.queryForMap("select * from WORKFLOW_BASE where id=:id", new SqlParameter("id", add.get("FLOW_ID")));
|
String sql =
|
"SELECT WORKFLOW_TEMPLATE_NODE.DEALFORMURL\n" +
|
" FROM WORKFLOW_NODE,WORKFLOW_TEMPLATE_NODE\n" +
|
" WHERE WORKFLOW_NODE.NODE_TEMPLATE_ID = WORKFLOW_TEMPLATE_NODE.ID\n" +
|
" AND WORKFLOW_NODE.ID = :nodeid";
|
Map node = baseDao.queryForMap(sql, new SqlParameter("nodeid", workflow.get("CURRENT_NODE_ID")));
|
|
if ("edit".equalsIgnoreCase(model)) {
|
Map customerMap = baseDao.queryForMap("select * from CUSTOMER_INFO where id=:id", new SqlParameter("id", add.get("CUSTOMER_ID")));
|
request.getSession().setAttribute("MEMBERR_INFO", customerMap);
|
}
|
add.put("NODEID", nodeid);
|
add.put("WORKFLOW", workflow);
|
add.put("NODE", node);
|
add.put("URGENT_DEGREE", Constants.getmapCOMMON_URGENT_DEGREE_Label(ConvertUtil.obj2Integer(add.get("URGENT_DEGREE"))));
|
return add;
|
}
|
|
@Override
|
public Map getFlowInfo(String wfInstanceId) {
|
Map resultMap = new HashMap();
|
|
//节点详情
|
StringBuilder sql = new StringBuilder();
|
sql.append("select n.NODENAME,n.CURRENT_DEALER_NAME, ");
|
sql.append("n.DEALTIME,n.DEAL_NOTE,n.DEAL_RESULT ");
|
sql.append("from workflow_node n ");
|
sql.append("where n.DEALTIME is not null ");
|
sql.append("and n.FLOWID=:id ");
|
sql.append("order by n.DEALTIME ");
|
|
List<Map> list = baseDao.queryForList(sql.toString(), new SqlParameter().addValue("id", wfInstanceId));
|
|
if (list != null && list.size() > 0) {
|
for (Map map : list) {
|
int dealResult = map.get("DEAL_RESULT") == null ? 0 : ConvertUtil.obj2Integer(map.get("DEAL_RESULT"));
|
map.put("DEAL_RESULT", Constants.getmapWORKFLOW_NODE_DEAL_RESULT_Label(dealResult));
|
map.put("DEALTIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("DEALTIME")));
|
map.put("DEAL_NOTE", StringUtil.str2Html(ConvertUtil.obj2Str(map.get("DEAL_NOTE"))));
|
}
|
}
|
|
resultMap.put("nodeList", list);
|
|
//提交详情
|
String sql2 = "select CUSTOMER_NAME,APPLY_USER_NAME,APPLY_TIME,APPLY_REASON,CI_NOTE from sc_workflow_ci_add where FLOW_ID=:flow_id ";
|
Map map = baseDao.queryForMap(sql2, new SqlParameter().addValue("flow_id", wfInstanceId));
|
map.put("APPLY_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("APPLY_TIME")));
|
|
resultMap.put("start", map);
|
|
return resultMap;
|
}
|
|
|
|
|
@Override
|
public void saveCiAddOrder(SC_WORKFLOW_CI_ADD info,
|
HttpServletRequest request) {
|
|
//保存工单信息
|
info.setCustomer_name(request.getParameter("customer_id_TEXT"));
|
info = info.setFlow_name(info.getCustomer_name() + "的设备采集申请")
|
.setOrder_code(workOrderCodeService.getCiAddOrderCode())
|
.setApply_time(DateUtil.getCurrentDate14())
|
.setApply_user_id(WebUtil.getLoginedUserId(request))
|
.setApply_user_name(ConvertUtil.obj2Str(WebUtil.getLoginUser(request).getLoginUser().get("ZSXM")))
|
.insert();
|
|
//保存设备概况
|
String[] ciNames = request.getParameterValues("ci_name");
|
String[] ciTypes = request.getParameterValues("ci_type");
|
String[] ciNums = request.getParameterValues("ci_num");
|
String[] ciUses = request.getParameterValues("ci_use");
|
|
if (ciNames != null && ciNames.length > 0) {
|
String sql = "insert into sc_workflow_ci_add_general(ID,BUSINESS_ID,CI_NAME,CI_TYPE,CI_NUM,CI_USE) values(:id,:business_id,:ci_name,:ci_type,:ci_num,:ci_use) ";
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
|
for (int i = 0; i < ciNames.length; i++) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", StringUtil.getUUID());
|
param.addValue("business_id", info.getId());
|
param.addValue("ci_name", ciNames[i]);
|
param.addValue("ci_type", ciTypes[i]);
|
param.addValue("ci_num", ciNums[i]);
|
param.addValue("ci_use", ciUses[i]);
|
|
//过滤空行
|
if (!StringUtil.isEmpty(StringUtil.trim(ciNames[i] + ciTypes[i] + ciNums[i] + ciUses[i]))) {
|
paramList.add(param);
|
}
|
|
}
|
|
baseDao.executeBatch(sql, paramList);
|
}
|
|
//启动采集流程
|
workflowBusinessService.startCIAddWorkflow(info.getId());
|
}
|
|
@Override
|
public void ciManagerSubmit(HttpServletRequest request) {
|
String orderId = request.getParameter("order_id");
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
int dealResult = ConvertUtil.obj2Int(request.getParameter("deal_result"));
|
String backNodeTemplateId = request.getParameter("back_node");
|
|
String userId = WebUtil.getLoginedUserId(request);
|
|
//提交流程
|
if (dealResult - Constants.WORKFLOW_NODE_DEAL_RESULT_BACK == 0) {
|
workflowBusinessService.toBack(flowId, nodeId, userId, dealResult, dealNote, backNodeTemplateId);
|
} else {
|
workflowBusinessService.toNext(flowId, nodeId, userId, dealResult, dealNote);
|
}
|
|
//更新审批信息
|
new SC_WORKFLOW_CI_ADD().setId(orderId)
|
.setApprove_note(dealNote)
|
.setApprove_time(DateUtil.getCurrentDate14())
|
.setApprove_user_id(userId)
|
.setApprove_user_name(ConvertUtil.obj2Str(WebUtil.getLoginUser(request).getLoginUser().get("ZSXM")))
|
.update();
|
}
|
|
@Override
|
public void ciDispatcherSubmit(HttpServletRequest request) {
|
String orderId = request.getParameter("order_id");
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
|
String[] dutyer_ids = request.getParameter("dutyer_id").split(",");
|
String admins = request.getParameter("admins");
|
String urgentDegree = request.getParameter("urgent_degree");
|
|
long dispatcherRequireDate = ConvertUtil.obj2Long(request.getParameter("dispatcher_require_date"));
|
|
List<WorkflowDutyerEntity> dutyers = new ArrayList<WorkflowDutyerEntity>();
|
|
GG_USER user = new GG_USER(admins).getInstanceById();
|
String userName = user != null ? user.getZsxm() : "";
|
String dutys = userName + "(主要负责人),";
|
for (String dutyerid : dutyer_ids) {
|
WorkflowDutyerEntity entity = new WorkflowDutyerEntity(Constants.WORKFLOW_TEMPLATE_NODE_DEALER_TYPE_USER,dutyerid,"",
|
admins.equalsIgnoreCase(dutyerid) ? 1 : 0);
|
dutyers.add(entity);
|
|
user = new GG_USER(dutyerid).getInstanceById();
|
String name = user != null ? user.getZsxm() : "";
|
if (!userName.equals(name)) {
|
dutys += name + ",";
|
}
|
|
}
|
|
//更新紧急程度及要求处理时间
|
if (!StringUtil.isEmpty(urgentDegree)) {
|
new SC_WORKFLOW_CI_ADD(orderId)
|
.setUrgent_degree(ConvertUtil.obj2Integer(urgentDegree))
|
.setDispatcher_require_date(dispatcherRequireDate)
|
.update();
|
}
|
|
String note = "安排 " + dutys +"处理,紧急状态为" + Constants.getmapCOMMON_URGENT_DEGREE_Label(ConvertUtil.obj2Integer(urgentDegree)) + "\r" + dealNote;
|
workflowBusinessService.toNext(flowId, nodeId, WebUtil.getLoginedUserId(request), Constants.WORKFLOW_NODE_DEAL_RESULT_PASS, note, dutyers);
|
|
}
|
|
@Override
|
public void ciConfigerSubmit(HttpServletRequest request) {
|
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
String userId = WebUtil.getLoginedUserId(request);
|
|
//提交流程
|
workflowBusinessService.toNext(flowId, nodeId, userId, Constants.WORKFLOW_NODE_DEAL_RESULT_PASS, dealNote);
|
|
//更新设备状态,新增->正常
|
String sql = "update cmdb_ci_base set USINGSTATE=:usingstate where FLOW_ID=:flow_id ";
|
SqlParameter param = new SqlParameter();
|
param.addValue("usingstate", Constants.CMDB_CI_BASE_USINGSTATE_NORMAL);
|
param.addValue("flow_id", flowId);
|
|
baseDao.execute(sql, param);
|
|
|
}
|
|
@Override
|
public void ciManagerConfirmSubmit(HttpServletRequest request) {
|
String orderId = request.getParameter("order_id");
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
int dealResult = ConvertUtil.obj2Int(request.getParameter("deal_result"));
|
String backNodeTemplateId = request.getParameter("back_node");
|
|
String userId = WebUtil.getLoginedUserId(request);
|
|
//提交流程
|
if (dealResult - Constants.WORKFLOW_NODE_DEAL_RESULT_BACK == 0) {
|
workflowBusinessService.toBack(flowId, nodeId, userId, dealResult, dealNote, backNodeTemplateId);
|
|
//回退时,废弃采集的设备信息
|
this.doScrapCi(orderId, flowId);
|
} else {
|
workflowBusinessService.toNext(flowId, nodeId, userId, dealResult, dealNote);
|
}
|
|
}
|
|
/**
|
* 废弃新增的设备信息
|
* @param orderId
|
* @param flowId
|
*/
|
private void doScrapCi(String orderId, String flowId) {
|
baseDao.execute("update cmdb_ci_base set USINGSTATE=2 where FLOW_ID=:flow_id ", new SqlParameter("flow_id", flowId));
|
baseDao.execute("update sc_workflow_ci_add_result set STATE=2 where BUSINESS_ID=:business_id ", new SqlParameter("business_id", orderId));
|
}
|
|
@Override
|
public Map getNodeConfigInfo(String nodeId) {
|
List<Map> goBackList = workflowBusinessService.getBackTemplateNodeList(nodeId);
|
Map map = new HashMap();
|
map.put("IS_BACK", goBackList.size() == 0 ? "0":"1");
|
map.put("BACK_NODE_LIST", goBackList);
|
return map;
|
}
|
|
@Override
|
public void ciAddSpotApproveSubmit(HttpServletRequest request) {
|
String orderId = request.getParameter("order_id");
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
|
String userId = WebUtil.getLoginedUserId(request);
|
|
String[] dutyer_ids = request.getParameter("dutyer_id").split(",");
|
String admins = request.getParameter("admins");
|
|
List<WorkflowDutyerEntity> dutyers = new ArrayList<WorkflowDutyerEntity>();
|
|
GG_USER user = new GG_USER(admins).getInstanceById();
|
String userName = user != null ? user.getZsxm() : "";
|
String dutys = userName + "(主要负责人),";
|
for (String dutyerid : dutyer_ids) {
|
WorkflowDutyerEntity entity = new WorkflowDutyerEntity(Constants.WORKFLOW_TEMPLATE_NODE_DEALER_TYPE_USER,dutyerid,"",
|
admins.equalsIgnoreCase(dutyerid) ? 1 : 0);
|
dutyers.add(entity);
|
|
user = new GG_USER(dutyerid).getInstanceById();
|
String name = user != null ? user.getZsxm() : "";
|
if (!userName.equals(name)) {
|
dutys += name + ",";
|
}
|
|
}
|
|
String note = "请 " + dutys +" 制定维保方案" + "\r" + dealNote;
|
workflowBusinessService.toNext(flowId, nodeId, userId, Constants.WORKFLOW_NODE_DEAL_RESULT_PASS, note, dutyers);
|
|
//写入设备信息到流程中
|
this.insertCiResult(orderId, flowId);
|
}
|
|
@Override
|
public Map getciAddGeneralInfo(String orderId) {
|
//申请信息
|
Map add = baseDao.queryForMap("select * from SC_WORKFLOW_CI_ADD where id=:id", new SqlParameter("id", orderId));
|
|
//设备概况
|
String sql = "select CI_NAME,CI_TYPE,CI_NUM,CI_USE from sc_workflow_ci_add_general where BUSINESS_ID=:business_id ";
|
List<Map> ciList = baseDao.queryForList(sql, new SqlParameter().addValue("business_id", orderId));
|
|
//服务评价信息
|
String evaluationSql = "select A.QUALITY_EVALUE_NAME,A.ATTITUDE_EVALUE_NAME,A.SPECIALTY_EVALUE_NAME,"
|
+"A.SUGGESTION,A.INVEST_TIME,A.SCORE,A.CUSTOMER_CONTACT_NAME from customer_satis_info A,workflow_base B where A.BUSINESS_ID=b.ID and B.BUSINESS_ID = :order_id";
|
Map evalue = baseDao.queryForMap(evaluationSql, new SqlParameter("order_id",orderId));
|
evalue.put("INVEST_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", evalue.get("INVEST_TIME")));
|
|
add.put("evalue", evalue);
|
|
add.put("ciList", ciList);
|
add.put("count", ciList.size());
|
return add;
|
}
|
|
@Override
|
public void ciAddHealthSubmit(HttpServletRequest request) {
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
|
String userId = WebUtil.getLoginedUserId(request);
|
|
//提交流程
|
workflowBusinessService.toNext(flowId, nodeId, userId, Constants.WORKFLOW_NODE_DEAL_RESULT_PASS, dealNote);
|
|
}
|
|
@Override
|
public Map getciAddResultInfo(String orderId) {
|
//申请信息
|
Map map = baseDao.queryForMap("select * from SC_WORKFLOW_CI_ADD where id=:id", new SqlParameter("id", orderId));
|
|
//采集信息
|
String sql = "select * from sc_workflow_ci_add_result where BUSINESS_ID=:business_id and STATE=3 ";
|
List<Map> ciList = baseDao.queryForList(sql, new SqlParameter().addValue("business_id", orderId));
|
|
//采集信息统计
|
String sql2 = "select THIRD_LEVEL_ID,THIRD_LEVEL_NAME,count(1) as COUNT from sc_workflow_ci_add_result where BUSINESS_ID=:business_id and STATE=3 group by THIRD_LEVEL_ID,THIRD_LEVEL_NAME ";
|
List<Map> ciLevel = baseDao.queryForList(sql2, new SqlParameter().addValue("business_id", orderId));
|
|
//采集人处理结果,这里用节点名称判断,会有问题
|
String flowId = ConvertUtil.obj2Str(map.get("FLOW_ID"));
|
String sql3 = "select CURRENT_DEALER_NAME,DEALTIME,DEAL_NOTE from workflow_node where NODENAME like '%采集%' and FLOWID=:flowid order by DEALTIME";
|
List<Map> geterList = baseDao.queryForList(sql3, new SqlParameter().addValue("flowid", flowId));
|
|
map.put("ciList", ciList);
|
map.put("ciLevel", ciLevel);
|
map.put("geterList", geterList);
|
|
return map;
|
}
|
|
public List<Map> getCIAddList(String flowid){
|
|
//查询设备
|
String sql = "SELECT b.*,c.NAME as category_name,c.TABLE_NAME FROM cmdb_ci_base b,cmdb_ci_category c "
|
+ "WHERE b.LEIX=1 and b.THELEVELID=c.ID and b.ID in (select CI_ID from workflow_user_cmdb where WF_ID=:wf_id) "
|
+ "ORDER BY c.ID,b.LASTUPDATETIME ";
|
|
List<Map> list = baseDao.queryForList(sql,new SqlParameter("wf_id",flowid));
|
return list;
|
}
|
|
|
public TreeNode getCiCategoryList(String pid){
|
String sql = "select * from CMDB_CI_CATEGORY where STATE=1 and cate_type=1 ";
|
if (StringUtils.isBlank(pid) || pid.equalsIgnoreCase("1")) {
|
sql += " and JB=1 ";
|
} else {
|
sql+= " and PID=:PID ";
|
}
|
sql += " order by SERIAL asc";
|
|
List<Map> list = baseDao.queryForList(sql,new SqlParameter("PID",pid));
|
TreeNode root = new TreeNode("1","配置分类树");
|
|
for (Map map : list) {
|
TreeNode node = new TreeNode(map.get("ID").toString(),map.get("NAME").toString());
|
if (!map.get("JB").toString().equalsIgnoreCase("3")) {
|
node.setIsOpen(false);
|
}
|
node.setAttributes(map);
|
root.addChild(node);
|
}
|
return root;
|
}
|
|
/**
|
* 向流程中插入设备信息
|
* @param orderId
|
* @param flowId
|
*/
|
private void insertCiResult(String orderId, String flowId) {
|
|
StringBuilder sql = new StringBuilder();
|
sql.append("select cb.Id,cb.CINAME,cb.SEACHCODE,cb.MEMBERCODE,cb.THIRDLEVELID,cb.POSITION,cc.NAME,cb.USINGSTATE ");
|
sql.append("from cmdb_ci_base cb ");
|
sql.append("left join cmdb_ci_category cc on cc.ID=cb.THELEVELID ");
|
sql.append("where cb.FLOW_ID=:flow_id ");
|
sql.append("and cb.USINGSTATE=3 ");
|
sql.append("and cb.LEIX=1 ");
|
|
List<Map> ciList = baseDao.queryForList(sql.toString(), new SqlParameter("flow_id", flowId));
|
if (ciList != null && ciList.size() > 0) {
|
|
//删除之前的设备记录
|
baseDao.execute("delete from SC_WORKFLOW_CI_ADD_RESULT where BUSINESS_ID=:business_id ", new SqlParameter("business_id", orderId));
|
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
for (Map map : ciList) {
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", StringUtil.getUUID());
|
param.addValue("business_id", orderId);
|
param.addValue("ci_id", map.get("Id"));
|
param.addValue("ci_search_code", map.get("SEACHCODE"));
|
param.addValue("ci_name", map.get("CINAME"));
|
param.addValue("ci_customer_code", map.get("MEMBERCODE"));
|
param.addValue("ci_position", map.get("POSITION"));
|
param.addValue("third_level_id", map.get("THIRDLEVELID"));
|
param.addValue("third_level_name", map.get("NAME"));
|
param.addValue("state", map.get("USINGSTATE"));
|
|
paramList.add(param);
|
}
|
|
StringBuilder isql = new StringBuilder();
|
isql.append("insert into SC_WORKFLOW_CI_ADD_RESULT (ID,BUSINESS_ID,CI_ID,CI_SEARCH_CODE,CI_NAME, ");
|
isql.append(" CI_CUSTOMER_CODE,CI_POSITION,THIRD_LEVEL_ID,THIRD_LEVEL_NAME,STATE) ");
|
isql.append(" values (:id,:business_id,:ci_id,:ci_search_code,:ci_name, ");
|
isql.append(" :ci_customer_code,:ci_position,:third_level_id,:third_level_name,:state) ");
|
|
baseDao.executeBatch(isql.toString(), paramList);
|
}
|
|
|
|
}
|
|
@Override
|
public List<Map> getCiList(String orderId) {
|
StringBuilder sql = new StringBuilder();
|
sql.append("select distinct r.CI_ID,r.CI_NAME,r.THIRD_LEVEL_ID,r.THIRD_LEVEL_NAME,r.CI_SEARCH_CODE,r.CI_POSITION, ");
|
sql.append("p.ci_general_id as PATROL_CI_ID,h.CI_ID as HEALTH_CI_ID,rc.CI_ID as REMIND_CI_ID ");
|
sql.append("from sc_workflow_ci_add_result r ");
|
sql.append("left join ci_daily_patrol_customize_detail p on p.ci_general_id=r.CI_ID ");
|
sql.append("left join ci_health_customize_detail h on h.CI_ID=r.CI_ID ");
|
sql.append("left join ci_remind_customize_detail rc on rc.CI_ID=r.CI_ID ");
|
sql.append("where r.BUSINESS_ID=:business_id ");
|
|
List<Map> ciList = baseDao.queryForList(sql.toString(), new SqlParameter().addValue("business_id", orderId));
|
for (Map map : ciList) {
|
String patrol = ConvertUtil.obj2Str(map.get("PATROL_CI_ID"));
|
String health = ConvertUtil.obj2Str(map.get("HEALTH_CI_ID"));
|
String remind = ConvertUtil.obj2Str(map.get("REMIND_CI_ID"));
|
//判断是否已制定维保方案
|
if (StringUtil.isEmpty(patrol) && StringUtil.isEmpty(health) && StringUtil.isEmpty(remind) ) {
|
map.put("WB_STATE", "未制定");
|
} else {
|
map.put("WB_STATE", "已制定");
|
}
|
|
}
|
|
return ciList;
|
}
|
|
@Override
|
public Map getCiWbDetail(String ciId) {
|
//驻场巡检
|
StringBuilder sql = new StringBuilder();
|
sql.append("select i.* ");
|
sql.append("from ci_daily_patrol_customize_detail d , ");
|
sql.append(" ci_daily_patrol_item i ");
|
sql.append("where d.CI_ID=:ci_id and i.ID=d.ITEM_ID and i.STATE =1 ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> patrolList = baseDao.queryForList(sql.toString(), new SqlParameter("ci_id", ciId));
|
|
//智能提醒
|
sql = new StringBuilder();
|
sql.append("select i.* ");
|
sql.append("from ci_remind_customize_detail d, ");
|
sql.append(" ci_remind_item i ");
|
sql.append("where d.CI_ID=:ci_id and i.ID=d.ITEM_ID and i.STATE =1 ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> remindList = baseDao.queryForList(sql.toString(), new SqlParameter("ci_id", ciId));
|
|
//健康检查
|
sql = new StringBuilder();
|
sql.append("select i.* ");
|
sql.append("from ci_health_customize_detail d, ");
|
sql.append(" ci_health_item i ");
|
sql.append("where d.CI_ID=:ci_id and i.ID=d.ITEM_ID and i.STATE =1 ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> healthList = baseDao.queryForList(sql.toString(), new SqlParameter("ci_id", ciId));
|
|
Map map = baseDao.queryForMap("select * from cmdb_ci_base where ID=:id", new SqlParameter("id", ciId));
|
map.put("patrolList", patrolList);
|
map.put("remindList", remindList);
|
map.put("healthList", healthList);
|
|
return map;
|
}
|
|
@Override
|
public Map getCiAddHealthDetail(String orderId) {
|
//驻场巡检
|
StringBuilder sql = new StringBuilder();
|
sql.append("select i.*,d.CI_ID as CIID ");
|
sql.append("from ci_daily_patrol_customize_detail d ");
|
sql.append("left join ci_daily_patrol_item i on i.ID=d.ITEM_ID ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> patrolList = baseDao.queryForList(sql.toString());
|
|
//驻场巡检数量
|
sql = new StringBuilder();
|
sql.append("select r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_CUSTOMER_CODE,r.CI_POSITION,count(d.CI_ID) as COUNT ");
|
sql.append("from ci_daily_patrol_customize_detail d ");
|
sql.append("left join sc_workflow_ci_add_result r on r.CI_ID=d.CI_ID ");
|
sql.append("where r.BUSINESS_ID=:business_id ");
|
sql.append("group by r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_SEARCH_CODE,r.CI_POSITION ");
|
|
List<Map> patrolCountList = baseDao.queryForList(sql.toString(), new SqlParameter("business_id", orderId));
|
|
//智能提醒
|
sql = new StringBuilder();
|
sql.append("select i.*,d.CI_ID as CIID ");
|
sql.append("from ci_remind_customize_detail d ");
|
sql.append("left join ci_remind_item i on i.ID=d.ITEM_ID ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> remindList = baseDao.queryForList(sql.toString());
|
|
//智能提醒数量
|
sql = new StringBuilder();
|
sql.append("select r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_CUSTOMER_CODE,r.CI_POSITION,count(d.CI_ID) as COUNT ");
|
sql.append("from ci_remind_customize_detail d ");
|
sql.append("left join sc_workflow_ci_add_result r on r.CI_ID=d.CI_ID ");
|
sql.append("where r.BUSINESS_ID=:business_id ");
|
sql.append("group by r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_SEARCH_CODE,r.CI_POSITION ");
|
|
List<Map> remindCountList = baseDao.queryForList(sql.toString(), new SqlParameter("business_id", orderId));
|
|
//健康检查
|
sql = new StringBuilder();
|
sql.append("select i.*,d.CI_ID as CIID ");
|
sql.append("from ci_health_customize_detail d ");
|
sql.append("left join ci_health_item i on i.ID=d.ITEM_ID ");
|
sql.append("order by i.ORDER_NUM ");
|
|
List<Map> healthList = baseDao.queryForList(sql.toString());
|
|
//健康检查数量
|
sql = new StringBuilder();
|
sql.append("select r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_CUSTOMER_CODE,r.CI_POSITION,count(d.CI_ID) as COUNT ");
|
sql.append("from ci_health_customize_detail d ");
|
sql.append("left join sc_workflow_ci_add_result r on r.CI_ID=d.CI_ID ");
|
sql.append("where r.BUSINESS_ID=:business_id ");
|
sql.append("group by r.CI_ID,r.CI_SEARCH_CODE,r.CI_NAME,r.CI_SEARCH_CODE,r.CI_POSITION ");
|
|
List<Map> healthCountList = baseDao.queryForList(sql.toString(), new SqlParameter("business_id", orderId));
|
|
|
Map map = new HashMap();
|
map.put("patrolList", patrolList);
|
map.put("remindList", remindList);
|
map.put("healthList", healthList);
|
map.put("patrolCountList", patrolCountList);
|
map.put("remindCountList", remindCountList);
|
map.put("healthCountList", healthCountList);
|
|
return map;
|
}
|
|
@Override
|
public void ciAddSpotSubmit(HttpServletRequest request) {
|
String orderId = request.getParameter("order_id");
|
String dealNote = request.getParameter("deal_note");
|
String flowId = request.getParameter("flow_id");
|
String nodeId = request.getParameter("node_id");
|
|
String userId = WebUtil.getLoginedUserId(request);
|
|
workflowBusinessService.toNext(flowId, nodeId, userId, Constants.WORKFLOW_NODE_DEAL_RESULT_PASS, dealNote);
|
|
//写入设备信息到流程中
|
this.insertCiResult(orderId, flowId);
|
|
}
|
|
@Override
|
public List<Map> getCiCategoryTree(String pid,String partnerId) {
|
String sql = " select id,pid,name,lv jb from CMDB_CI_CATEGORY where state=1 and cate_type=1 ";
|
SqlParameter param = new SqlParameter();
|
param.addValue("partnerId", partnerId);
|
if(StringUtil.isNotBlank(pid)){
|
sql += " and PID=:pid ";
|
param.addValue("pid", pid);
|
}else{
|
sql += " and lv=1 ";
|
}
|
sql += " AND TYPE = 1 order by STATE,lv,SERIAL ";
|
List<Map> list = baseDao.queryForList(sql,param);
|
for(Map map:list){
|
//if(hasCiCategoryChildren(map.get("id").toString()))
|
map.put("isParent", true);
|
}
|
return list;
|
}
|
|
|
public SysInfoMsg doApply(HttpServletRequest request,SC_WORKFLOW_CI_ADD info){
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
List<Map> generalList = new ArrayList();
|
String generalJson = request.getParameter("generalJson");
|
generalList = JsonUtil.json2List(generalJson);
|
String nodeId = request.getParameter("nodeId");
|
String orderId = request.getParameter("orderId");
|
if(StringUtil.isNotBlank(orderId)){
|
info.setId(orderId);
|
}else{
|
info.setApply_user_id(ConvertUtil.obj2StrBlank(user.get("ID")));
|
info.setApply_user_name(ConvertUtil.obj2StrBlank(user.get("ZSXM")));
|
info.setApply_time(DateUtil.getCurrentDate14());
|
String orderCode = workOrderCodeService.getCiAddOrderCode();
|
info.setOrder_code(orderCode);
|
}
|
//保存采集工单数据
|
info.insertOrUpdate();
|
|
//保存采集设备信息
|
if(generalList!=null&&generalList.size()>0){
|
saveCiGeneralInfo(generalList,info.getId());
|
}
|
//发送到审批环节
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
if(StringUtil.isNotBlank(orderId)){
|
String flowId = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById().getFlow_id();
|
support.setFlowId(flowId);
|
}
|
support.setOrderId(info.getId());
|
support.setNodeId(nodeId);
|
support.setNextNodeTemplateId(Constants.CIADD_APPROVE);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
//获取项目经理
|
//List<Map> userList = getProjectManager(info.getProject_id());
|
List<Map> userList = new ArrayList<Map>();
|
Map nodeUser = new HashMap();
|
nodeUser.put("IS_ADMIN", "1");
|
nodeUser.put("USER_ID", request.getParameter("userId"));
|
nodeUser.put("USER_NAME", request.getParameter("userName"));
|
userList.add(nodeUser);
|
support.setNextUserList(userList);
|
SysInfoMsg resMessage = workFlowSupportService.doOrderFlow(support);
|
return resMessage;
|
}
|
|
|
//保存设备概况
|
private void saveCiGeneralInfo(List<Map> generalList,String orderId){
|
//保存采集设备信息
|
SqlParameter param = new SqlParameter();
|
param.addValue("business_id", orderId);
|
baseDao.execute("delete from SC_WORKFLOW_CI_ADD_GENERAL where BUSINESS_ID=:business_id",param);
|
List<SqlParameter> list = new ArrayList<SqlParameter>();
|
StringBuilder sql = new StringBuilder();
|
sql.append("insert into SC_WORKFLOW_CI_ADD_GENERAL (ID,BUSINESS_ID,THIRD_LEVEL_ID,THIRD_LEVEL_NAME,NOTE,CI_NUM) ");
|
sql.append("values (:id,:business_id,:third_level_id,:third_level_name,:note,:ci_num)");
|
|
for(Map general:generalList){
|
SqlParameter generalParam = new SqlParameter();
|
general.put("id",StringUtil.getUUID());
|
general.put("business_id", orderId);
|
generalParam.setSource(general);
|
list.add(generalParam);
|
}
|
baseDao.executeBatch(sql.toString(), list);
|
}
|
|
@Override
|
public SysInfoMsg doApprove (HttpServletRequest request){
|
|
String fzr_id = request.getParameter("fzr_id");
|
String requireDate = request.getParameter("dispatcher_require_date");
|
String nodeId = request.getParameter("nodeId");
|
String note = request.getParameter("note");
|
String orderId = request.getParameter("orderId");
|
String flowId = request.getParameter("flowId");
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
//设定其他执行人
|
List<Map> userList = getExecutor(orderId);
|
if(userList.size()>0){
|
for(Map userMap:userList){
|
if(userMap.get("USER_ID").toString().equals(fzr_id)){
|
userMap.put("IS_ADMIN", "1");
|
}
|
}
|
}
|
|
String sql = " UPDATE SC_WORKFLOW_CI_ADD SET DISPATCHER_REQUIRE_DATE=:requireDate WHERE ID=:orderId ";
|
baseDao.execute(sql, new SqlParameter().addValue("requireDate", requireDate)
|
.addValue("orderId", orderId));
|
//发送到审批环节
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setFlowId(flowId);
|
support.setNodeId(nodeId);
|
|
support.setNote(note);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setNextNodeTemplateId(Constants.CIADD_COLLECTION);
|
support.setNextUserList(userList);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
|
return msg;
|
}
|
|
|
/*
|
* 获取执行人列表
|
*/
|
public List<Map> getExecutor(String orderId){
|
String sql = "select DISTINCT u.ID USER_ID,u.ZSXM USER_NAME,0 as ISADMIN from sc_workflow_ci_add_general g " +
|
"INNER JOIN SC_COLLECTION_PERSON p on g.ID=p.CI_GENERAL_ID " +
|
"inner join gg_user u ON u.ID = p.USER_ID " +
|
"where g.BUSINESS_ID = :orderId ";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("orderId", orderId);
|
return baseDao.queryForList(sql,parameter);
|
|
}
|
|
//设备采集
|
public SysInfoMsg doCollection(HttpServletRequest request){
|
String orderId = ConvertUtil.obj2StrBlank(request.getParameter("orderId"));
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
String dealId = request.getParameter("dealId");
|
String dealName = request.getParameter("dealName");
|
String nodeId = ConvertUtil.obj2StrBlank(request.getParameter("nodeId"));
|
String note = ConvertUtil.obj2StrBlank(request.getParameter("bz"));
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String flowId = ciAddOrder.getFlow_id();
|
|
//获取项目经理
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setFlowId(flowId);
|
support.setNote(note);
|
support.setNodeId(nodeId);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
//List<Map> userList = getProjectManager(ciAddOrder.getProject_id());
|
List<Map> userList = new ArrayList<Map>();
|
Map dealer = new HashMap();
|
dealer.put("USER_ID",dealId);
|
dealer.put("USER_NAME",dealName);
|
dealer.put("IS_ADMIN","1");
|
userList.add(dealer);
|
support.setNextUserList(userList);
|
support.setNextNodeTemplateId(request.getParameter("nextTemplateId"));
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
|
return msg;
|
}
|
|
//获取审批人
|
public Map getApproveUser(String nodeId){
|
String sql = "select CURRENT_DEALER_ID,CURRENT_DEALER_NAME from WORKFLOW_NODE where FLOWID = ("+
|
"select FLOWID from WORKFLOW_NODE where id = :nodeId"+
|
") and NODE_TEMPLATE_ID='" + Constants.CIADD_APPROVE +"'";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("nodeId", nodeId);
|
return baseDao.queryForMap(sql,parameter);
|
}
|
|
@Override
|
public Map getCiAddInfo(Map paramMap) {
|
String orderId = paramMap.get("orderId").toString();
|
SC_WORKFLOW_CI_ADD info = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String applyReason = StringUtil.str2Html(ConvertUtil.obj2StrBlank(info.getApply_reason()));
|
info.setApply_reason(applyReason);
|
List<Map> ciList = getGeneralList(orderId);
|
Map ciParamMap = new HashMap();
|
for(Map generalMap:ciList){
|
ciParamMap.clear();
|
ciParamMap.put("folwId", ConvertUtil.obj2StrBlank(info.getFlow_id()));
|
ciParamMap.put("thirdlevelId", ConvertUtil.obj2StrBlank(generalMap.get("THIRD_LEVEL_ID").toString()));
|
List<Map> ciInfoList = getCiInfoByFlowId(ciParamMap);
|
if(ciInfoList!=null){
|
generalMap.put("ciInfoList", ciInfoList);
|
}
|
}
|
Map map = new HashMap();
|
map.put("info", info);
|
map.put("ciList", ciList);
|
return map;
|
}
|
|
|
|
public List<Map> getCiInfoByFlowId(Map paramMap) {
|
String folwId = paramMap.get("folwId").toString();
|
String thirdlevelId = paramMap.get("thirdlevelId").toString();
|
|
if(StringUtil.isNotBlank(folwId)){
|
StringBuilder sql = new StringBuilder();
|
sql.append("select * from CMDB_CI_BASE where FLOW_ID=:folwId and THIRDLEVELID=:thirdlevelId ORDER BY (MEMBERCODE+0) ");
|
SqlParameter param = new SqlParameter();
|
param.addValue("folwId", folwId);
|
param.addValue("thirdlevelId", thirdlevelId);
|
List<Map> ciList = baseDao.queryForList(sql.toString(),param);
|
return ciList;
|
}else{
|
return null;
|
}
|
|
}
|
|
|
|
@Override
|
public List<Map> getUsers(String projectId) {
|
|
SqlParameter param = new SqlParameter();
|
param.put("projectId", projectId);
|
StringBuilder sql = new StringBuilder();
|
List<Map> cateList = new ArrayList<Map>();
|
List<Map> userList = new ArrayList<Map>();
|
|
sql.setLength(0);
|
sql.append(" select g.GROUP_TYPE,g.GROUP_NAME from ");
|
sql.append(" ( ");
|
sql.append(" select GROUP_ID,USER_ID,USER_NAME from SC_SERVICER_GROUP_USER ");
|
sql.append(" where state=1 group by USER_ID ");
|
sql.append(" ) u inner join SC_SERVICER_GROUP g ");
|
sql.append(" on g.ID = u.GROUP_ID ");
|
sql.append(" where g.state=1 and g.PROJECT_ID =:projectId ");
|
sql.append(" group by group_type order by group_type ");
|
cateList = baseDao.queryForList(sql.toString(),param);
|
|
sql.setLength(0);
|
sql.append(" select g.GROUP_TYPE,u.USER_ID,u.USER_NAME from ");
|
sql.append(" ( ");
|
sql.append(" select GROUP_ID,USER_ID,USER_NAME from SC_SERVICER_GROUP_USER ");
|
sql.append(" where state=1 group by USER_ID ");
|
sql.append(" ) u inner join SC_SERVICER_GROUP g ");
|
sql.append(" on g.ID = u.GROUP_ID ");
|
sql.append(" where g.state=1 and g.PROJECT_ID =:projectId ");
|
userList = baseDao.queryForList(sql.toString(),param);
|
List<Map> resList = new ArrayList<Map>();
|
for(Map cateMap:cateList){
|
List<Map> tempList = new ArrayList<Map>();
|
Map tempMap = new HashMap();
|
tempMap.put("name", cateMap.get("GROUP_NAME"));
|
for(Map userMap:userList){
|
if(cateMap.get("GROUP_TYPE").toString().equals(userMap.get("GROUP_TYPE").toString())){
|
tempList.add(userMap);
|
}
|
}
|
tempMap.put("dataList", tempList);
|
resList.add(tempMap);
|
}
|
//System.out.println("resList --------------- "+ JsonUtil.list2Json(resList));
|
return resList;
|
}
|
|
|
|
@Override
|
public List<Map> getUserTree(String pid) {
|
String sql;
|
if(StringUtil.isBlank(pid)){
|
sql = " select id,rolename name from ac_role";
|
}else{
|
sql = " select u.ID id,u.ZSXM name,0 as pid from gg_user u inner join ac_user_ref_role ref on u.ID = ref.YHBH ";
|
sql += " where ref.JSBH=:roleId";
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("roleId", pid);
|
List<Map> list = baseDao.queryForList(sql,param);
|
for(Map map:list){
|
if(StringUtil.isBlank(pid)){
|
map.put("isParent", true);
|
}else{
|
map.put("isParent", false);
|
}
|
}
|
return list;
|
}
|
|
|
@Override
|
public void saveCollectionPerson(Map map){
|
String generalId = ConvertUtil.obj2StrBlank(map.get("generalId"));
|
String executorIds = ConvertUtil.obj2StrBlank(map.get("executorIds"));
|
StringBuilder sql = new StringBuilder();
|
sql.append("delete from SC_COLLECTION_PERSON where CI_GENERAL_ID=:generalId");
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("generalId", generalId);
|
baseDao.execute(sql.toString(), parameter);
|
if(StringUtil.isNotBlank(executorIds)){
|
List<SqlParameter> list = new ArrayList<SqlParameter>();
|
sql.setLength(0);
|
sql.append("insert into SC_COLLECTION_PERSON (id,ci_general_id,user_id) values (:id,:ci_general_id,:user_id)");
|
String[] executorAry = executorIds.split(",");
|
for(String user_id:executorAry){
|
SqlParameter param = new SqlParameter();
|
param.addValue("id", StringUtil.getUUID());
|
param.addValue("ci_general_id", generalId);
|
param.addValue("user_id", user_id);
|
list.add(param);
|
}
|
baseDao.executeBatch(sql.toString(), list);
|
}
|
}
|
@Override
|
public List<Map> getUserByIds(String ids){
|
StringBuilder sql = new StringBuilder();
|
if(StringUtil.isNotBlank(ids)){
|
ids = ids.replace(",", "','");
|
ids = "'" + ids + "'";
|
sql.append("select * from gg_user where id in ("+ids+")");
|
SqlParameter parameter = new SqlParameter();
|
//parameter.addValue("ids", idArr);
|
List<Map> userList = baseDao.queryForList(sql.toString(), parameter);
|
return userList;
|
}else{
|
return null;
|
}
|
}
|
|
@Override
|
public void saveCiInfo(CMDB_CI_BASE ciInfo){
|
ciInfo.setState(1);
|
ciInfo.insertOrUpdate();
|
}
|
|
@Override
|
public Map getCustomerById(String id){
|
StringBuilder sql = new StringBuilder();
|
if(StringUtil.isNotBlank(id)){
|
sql.append("select * from SC_PARTNER_CUSTOMER_INFO where id = :id");
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("id", id);
|
Map customer = baseDao.queryForMap(sql.toString(), parameter);
|
return customer;
|
}else{
|
return null;
|
}
|
}
|
|
@Override
|
public void deleteCiInfo(String ciId) {
|
new CMDB_CI_BASE(ciId).deleteById();
|
}
|
|
@Override
|
public List<Map> getmanufacturerList(Map queryMap) {
|
String partnerId = ConvertUtil.obj2StrBlank(queryMap.get("partnerId"));
|
String type = ConvertUtil.obj2StrBlank(queryMap.get("type"));
|
String projectId = ConvertUtil.obj2StrBlank(queryMap.get("projectId"));
|
StringBuilder sql = new StringBuilder();
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("partnerId", partnerId);
|
parameter.addValue("type", type);
|
parameter.addValue("projectId", projectId);
|
//查询厂商
|
sql.append(" select ID,MANUFACTURERNAME from CMDB_MAINUFACTURER ");
|
sql.append(" where state=1 and PARTNER_ID = :partnerId and type=:type ");
|
List<Map> typeList = baseDao.queryForList(sql.toString(),parameter);
|
//查询联系人
|
sql.setLength(0);
|
sql.append(" select c.MAINUFACTUREERID,c.CONTACTS,c.TELPHONE,c.MOBILE,c.JOB from CMDB_MAINUFACTURER_CONTACTS c ");
|
sql.append(" inner join CMDB_MAINUFACTURER m on c.MAINUFACTUREERID = m.ID ");
|
sql.append(" where m.state=1 and m.PARTNER_ID = :partnerId and m.type=:type and c.PROJECT_ID = :projectId ");
|
List<Map> contactList = baseDao.queryForList(sql.toString(),parameter);
|
|
if(typeList!=null&&typeList.size()>0){
|
for(Map typeMap:typeList){
|
List<Map> tempList = new ArrayList<Map>();
|
String typeId = typeMap.get("Id").toString();
|
if(contactList!=null&&contactList.size()>0){
|
for(Map contactMap:contactList){
|
if(typeId.equals(contactMap.get("MAINUFACTUREERID").toString())){
|
tempList.add(contactMap);
|
}
|
}
|
}
|
typeMap.put("contactList", tempList);
|
}
|
}
|
return typeList;
|
}
|
|
|
/**
|
* 查询设备采集总数量
|
*/
|
@Override
|
public int queryCiAddOrderCount(HttpServletRequest request) {
|
Map supportMap = getAllCiAddSql(request);
|
String sql = "select count(*) from ( " + supportMap.get("sql").toString() + " ) t";
|
return baseDao.queryForInteger(sql,(Map)supportMap.get("param"));
|
}
|
|
/**
|
* 查询设备采集列表
|
*/
|
@Override
|
public List queryCiAddOrderList(HttpServletRequest request) {
|
Map supportMap = getAllCiAddSql(request);
|
List<Map> list = baseDao.queryforSplitPage(request, supportMap.get("sql").toString(), (Map)supportMap.get("param"));
|
return list;
|
}
|
|
|
|
/**
|
* 服务台工单列表
|
* @param request
|
* @return
|
*/
|
private Map getAllCiAddSql(HttpServletRequest request){
|
String userId = WebUtil.getLoginedUserId(request);
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
|
String customerId = request.getParameter("customerId");
|
String nodeTemplateId = request.getParameter("nodeTemplateId");
|
String subCustomerId = request.getParameter("subCustomerId");
|
String startDate = request.getParameter("startDate");
|
String endtDate = request.getParameter("endtDate");
|
String orderName = request.getParameter("orderName");
|
String orderCode = request.getParameter("orderCode");
|
String userCode = request.getParameter("userCode");
|
String collectionType = request.getParameter("collectionType");
|
String flowState = request.getParameter("flowState");
|
String nodeState = request.getParameter("nodeState");
|
|
|
Map paramMap = new HashMap();
|
paramMap.put("userId", userId);
|
//paramMap.put("partnerId", partnerId);
|
paramMap.put("nodeTemplateId", nodeTemplateId);
|
paramMap.put("nodeState", nodeState);
|
paramMap.put("flowState", flowState);
|
paramMap.put("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
paramMap.put("customerId", customerId);
|
paramMap.put("subCustomerId", subCustomerId);
|
paramMap.put("orderCode", "%"+orderCode+"%");
|
paramMap.put("userCode", "%"+userCode+"%");
|
paramMap.put("orderName", "%"+orderName+"%");
|
|
/*List<Map> projects = new ArrayList<Map>();
|
projects = WebUtil.getProjects(request);*/
|
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select b.PROJECT_NAME,b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
|
builder.append(" r.ORDER_CODE,r.ID ORDERID,r.APPLY_REASON,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE,n.CURRENT_DEALER_NAME,n.FLOWSTATE NODESTATE ");
|
builder.append(" from SC_WORKFLOW_CI_ADD r ");
|
builder.append(" inner join WORKFLOW_BASE b on r.FLOW_ID = b.ID ");
|
/*if(StringUtil.isNotBlank(nodeTemplateId)){*/
|
builder.append(" inner join WORKFLOW_NODE N on b.CURRENT_NODE_ID = n.ID ");
|
builder.append(" inner join gg_user g on b.CREATERID = g.ID ");
|
|
/*}*/
|
builder.append(" where 1=1 ");
|
//工单类型
|
builder.append(" AND b.BUSINESSTYPE = :businessType");
|
if(StringUtil.isNotBlank(nodeTemplateId)){
|
builder.append(" and n.NODE_TEMPLATE_ID IS NOT NULL and n.NODE_TEMPLATE_ID =:nodeTemplateId and b.WFSTATE = 1 ");
|
}
|
//客户
|
if(StringUtil.isNotBlank(customerId)) {
|
builder.append(" AND b.CUSTOMER_ID = :customerId ");
|
}
|
//下属单位
|
if(StringUtil.isNotBlank(subCustomerId)) {
|
builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
|
}
|
|
//开始时间
|
if(StringUtil.isNotBlank(startDate)) {
|
builder.append(" AND b.CREATETIME >= :startDate ");
|
paramMap.put("startDate", startDate+"000000");
|
|
}
|
|
//结束时间
|
if(StringUtil.isNotBlank(endtDate)) {
|
builder.append(" AND b.CREATETIME <= :endtDate ");
|
paramMap.put("endtDate", endtDate+"666666");
|
}
|
|
//工单名称
|
if(StringUtil.notEmpty(orderName)) {
|
builder.append(" AND b.WFNAME LIKE :orderName");
|
}
|
|
//工单编号
|
if(StringUtil.notEmpty(orderCode)) {
|
builder.append(" AND r.ORDER_CODE LIKE :orderCode");
|
|
}
|
//用户
|
if(StringUtil.notEmpty(userCode)) {
|
builder.append(" AND g.employee_id LIKE :userCode");
|
}
|
//流程状态
|
if(StringUtil.notEmpty(flowState)) {
|
builder.append(" AND b.WFSTATE = :flowState");
|
}
|
//节点状态
|
if(StringUtil.notEmpty(nodeState)) {
|
builder.append(" AND n.FLOWSTATE = :nodeState");
|
}
|
|
|
//采集类型
|
if(StringUtil.notEmpty(collectionType)) {
|
String[] types = collectionType.split(",");
|
if(types.length==1) {
|
builder.append(" AND r.COLLECTION_TYPE_ID = :type_id");
|
paramMap.put("type_id", types[0]);
|
} else {
|
builder.append(" AND r.COLLECTION_TYPE_ID IN (");
|
for(int i=0; i<types.length; i++) {
|
builder.append(" :type"+i);
|
builder.append(",");
|
paramMap.put("type"+i, types[i]);
|
}
|
builder.deleteCharAt(builder.lastIndexOf(","));
|
builder.append(")");
|
}
|
}
|
|
|
|
builder.append(" order by b.CREATETIME desc ");
|
|
Map supportMap = new HashMap();
|
supportMap.put("sql",builder);
|
supportMap.put("param", paramMap);
|
return supportMap;
|
}
|
|
@Override
|
public List queryMyCiAddData(HttpServletRequest request) {
|
Map supportMap = getMyCiAddListSql(request);
|
List<Map> list = baseDao.queryforSplitPage(request, supportMap.get("sql").toString(), (Map)supportMap.get("param"));
|
return list;
|
}
|
|
|
|
@Override
|
public int queryMyCiaddCount(HttpServletRequest request) {
|
Map supportMap = getMyCiAddListSql(request);
|
String sql = "select count(*) from ( " + supportMap.get("sql").toString() + " ) t";
|
return baseDao.queryForInteger(sql,(Map)supportMap.get("param"));
|
}
|
|
|
public SysInfoMsg doSendback(HttpServletRequest request){
|
String orderId = request.getParameter("orderId");
|
String nodeId = request.getParameter("nodeId");
|
String lastNodeTemplateId = request.getParameter("lastNodeTemplateId");
|
String note = request.getParameter("backNote");
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
|
String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
|
String flowId = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById().getFlow_id();
|
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setFlowId(flowId);
|
support.setNodeId(nodeId);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setNote(note);
|
support.setEverNodeTemplateId(lastNodeTemplateId);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
SysInfoMsg msg = workFlowSupportService.doOrderSendback(support);
|
return msg;
|
}
|
|
/**
|
* 获取上一节点主负责人
|
* @param lastNodeTemplateId
|
* @return
|
*/
|
public Map getLastExecutor(String lastNodeTemplateId){
|
String sql = "select * from WORKFLOW_NODE where NODE_TEMPLATE_ID = :nodeTemplateId and IS_ADMIN=1 order by CREATETIME desc LIMIT 1";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("nodeTemplateId", lastNodeTemplateId);
|
return baseDao.queryForMap(sql,parameter);
|
}
|
|
@Override
|
public List<Map> getGeneralList(String orderId) {
|
StringBuilder sql = new StringBuilder();
|
sql.append("select g.*,t.EXECUTORS,t.EXECUTORIDS from SC_WORKFLOW_CI_ADD_GENERAL g ");
|
sql.append("left join ( ");
|
sql.append("select p.CI_GENERAL_ID,group_concat(u.zsxm) as EXECUTORS,group_concat(u.id) as EXECUTORIDS ");
|
sql.append("from SC_COLLECTION_PERSON p inner join gg_user u ");
|
sql.append("on p.USER_ID=u.ID group by CI_GENERAL_ID ");
|
sql.append(") t on g.ID=t.CI_GENERAL_ID ");
|
sql.append("where BUSINESS_ID=:orderId ");
|
//String sql = "select * from SC_WORKFLOW_CI_ADD_GENERAL where BUSINESS_ID=:orderId ";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("orderId", orderId);
|
return baseDao.queryForList(sql.toString(),parameter);
|
}
|
|
/**
|
* 更新设备状态
|
* @param flowId
|
*/
|
|
public void updateCMDB(String flowId){
|
String sql = "update CMDB_CI_BASE set USINGSTATE=1 where FLOW_ID=:flowId ";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("flowId", flowId);
|
baseDao.execute(sql,parameter);
|
//插入关联工单
|
sql = " select ID CIID from CMDB_CI_BASE where FLOW_ID = :flowId and USINGSTATE = 1 ";
|
List<Map> ciList = baseDao.queryForList(sql,parameter);
|
if(ciList!=null&&ciList.size()>0){
|
sql = "insert into CMDB_CI_REF_ORDER (ID,FLOW_ID,CI_ID) values (:ID,:FLOWID,:CIID)";
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
for(Map map : ciList){
|
SqlParameter tempParam = new SqlParameter();
|
tempParam.put("ID", StringUtil.getUUID());
|
tempParam.put("CIID", map.get("CIID"));
|
tempParam.put("FLOWID", flowId);
|
paramList.add(tempParam);
|
}
|
baseDao.executeBatch(sql, paramList);
|
}
|
|
}
|
|
/**
|
* 关闭流程
|
*/
|
public void closeWorkFlowSubmit(HttpServletRequest request){
|
String orderId = request.getParameter("orderId");
|
String closeNote = request.getParameter("closeNote");
|
String nodeId = request.getParameter("nodeId");
|
String userName = WebUtil.getLoginUser(request).getLoginUser().get("ZSXM").toString();
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
WORKFLOW_BASE base = new WORKFLOW_BASE(ciAddOrder.getFlow_id()).getInstanceById();
|
NodeFinishEntity finishEntity = new NodeFinishEntity();
|
finishEntity.setDeal_result(1);
|
finishEntity.setDeal_note_title(userName+"关闭了工单");
|
finishEntity.setDeal_note(closeNote);
|
WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
|
workflowCoreService.finishNode(base, node, finishEntity);
|
workflowCoreService.closeWorkFlow(base);
|
dslFacade.updateConfigDslWhenClose(ciAddOrder.getFlow_id());
|
|
String flowId = base.getId();
|
//保存dsl操作记录
|
dslFacade.saveConfigDslDealRecord(flowId);
|
//更新dsl关系
|
dslFacade.updateConfigDslWhenClose(flowId);
|
//配置关系保存到记录表
|
changeFacade.saveRelationWhenClose(flowId);
|
//删除变更中的配置关系
|
changeFacade.delRelationWhenClose(flowId);
|
}
|
|
@Override
|
public Map getLastNodeInfo(String nodeId){
|
String sql = "select * from workflow_node where id = ( " +
|
" select SOURCE_NODE_INSTANCE_ID from workflow_node where id =:nodeId " +
|
")";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("nodeId", nodeId);
|
Map map = baseDao.queryForMap(sql,parameter);
|
String dealTime = DateUtil.format("yyyy-MM-dd HH:mm:ss", ConvertUtil.obj2StrBlank(map.get("DEALTIME")));
|
map.put("DEALTIME", dealTime);
|
return map;
|
}
|
|
@Override
|
public List<Map> queryFiles(String orderId) {
|
String selectSql = "SELECT * FROM GG_FILES WHERE DEL_FLAG = 1 AND (BUSINESS_ID = :orderId OR EXTEND1 = :orderId) ORDER BY ORDERNUM ";
|
List<Map> files = baseDao.queryForList(selectSql,new SqlParameter("orderId",orderId));
|
if(null!=files && files.size()>0) {
|
for(Map file : files) {
|
file.put("FILE_SIZE", StringUtil.getFileSize(ConvertUtil.obj2Double(file.get("FILE_SIZE"))));
|
}
|
}
|
return files;
|
}
|
|
@Override
|
public Map selectCiInfoById(String ciId) {
|
String sql = "select * from CMDB_CI_BASE where id=:ciId ";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("ciId", ciId);
|
return baseDao.queryForMap(sql,parameter);
|
}
|
|
@Override
|
public boolean answerSubmit(HttpServletRequest request){
|
String orderId = request.getParameter("orderId");
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String nodeId = request.getParameter("nodeId");
|
WORKFLOW_BASE base = new WORKFLOW_BASE(ciAddOrder.getFlow_id()).getInstanceById();
|
WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
|
NodeAnswerEntity entity = new NodeAnswerEntity();
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
entity.setUser_id(user.get("ID").toString());
|
entity.setUser_name(user.get("ZSXM").toString());
|
boolean flag = workflowCoreService.answerNode(base, node, entity);
|
return flag;
|
}
|
|
/**
|
* 获取审批人列表
|
* @return
|
*/
|
public Map getApproveUser(){
|
String sql = "select u.* from " +
|
"workflow_template_node n inner join WORKFLOW_TEMPLATE_NODE_PARTNER p " +
|
"on n.ID = p.NODE_ID " +
|
"inner join WORKFLOW_TEMPLATE_NODE_USER u " +
|
"on p.ID = u.PARTNER_NODE_ID " +
|
"where n.ID='"+Constants.CIADD_APPROVE+"' LIMIT 1 ";
|
return baseDao.queryForMap(sql);
|
}
|
|
|
/**
|
* 更新例行巡检
|
* @param flowId
|
*/
|
public void updateDutyPatrol(String flowId){
|
String selectSql = "SELECT A.* FROM CI_REMIND_CILIST A WHERE A.STATE = 2 AND EXISTS (SELECT B.ID FROM CMDB_CI_BASE B WHERE A.CI_ID = B.ID AND B.FLOW_ID = :flowId)";
|
List<Map> cis = baseDao.queryForList(selectSql,new SqlParameter("flowId",flowId));
|
if(null!=cis && cis.size()>0) {
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
for(Map ci : cis) {
|
SqlParameter sqlParameter = new SqlParameter();
|
sqlParameter.put("id", ci.get("ID"));
|
paramList.add(sqlParameter);
|
}
|
String updateSql = "UPDATE CI_REMIND_CILIST SET STATE = 1 WHERE ID = :id ";
|
baseDao.executeBatch(updateSql,paramList);
|
}
|
}
|
|
/**
|
* 更新健康检查
|
*/
|
void updateHealthPatrol(String flowId){
|
String sql = " update CI_HEALTH_CUSTOMIZE_DETAIL h " +
|
" inner join cmdb_ci_base b on b.ID = h.CI_ID " +
|
" set h.STATE=1 where b.FLOW_ID = :flowId ";
|
baseDao.execute(sql, new SqlParameter("flowId",flowId));
|
}
|
|
|
public List<Map> getProjectManager(String projectId){
|
String sql = "SELECT A.PROJECT_MANAGER_ID USER_ID,A.PROJECT_MANAGER_NAME USER_NAME,1 as IS_ADMIN FROM SC_PARTNER_CUSTOMER_PROJECT A WHERE A.PROJECT_STATE != 2 " +
|
" and id=:projectId ";
|
SqlParameter parameter = new SqlParameter();
|
parameter.addValue("projectId", projectId);
|
return baseDao.queryForList(sql,parameter);
|
}
|
|
|
@Override
|
public void delFiles(String fileId) {
|
}
|
|
|
@Override
|
public SysInfoMsg doAdminConfirm(HttpServletRequest request) {
|
String orderId = request.getParameter("orderId");
|
String nodeId = request.getParameter("nodeId");
|
String note = request.getParameter("flowNote");
|
|
String nextUserId = request.getParameter("nextUserId");
|
String nextUserName = request.getParameter("nextUserName");
|
|
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String flowId = ciAddOrder.getFlow_id();
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
List<Map> userList = new ArrayList<Map>();
|
if(nextUserId.indexOf("user_")>=0){
|
Map userMap = new HashMap();
|
userMap.put("USER_ID", nextUserId.substring(5));
|
userMap.put("USER_NAME", nextUserName);
|
userMap.put("IS_ADMIN", 1);
|
userList.add(userMap);
|
}else{
|
support.setDealer_type(String.valueOf(NodeDealEntity.Dealer_Type_ROLE));
|
support.setRoleId(nextUserId.substring(6));
|
support.setRoleName(nextUserName);
|
}
|
|
|
support.setFlowId(flowId);
|
support.setNodeId(nodeId);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setNote(note);
|
support.setNextUserList(userList);
|
support.setNextNodeTemplateId(Constants.CIADD_ADMIN);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
|
return msg;
|
}
|
|
@Override
|
public List<Map> getCiAdmin(String projectId){
|
SqlParameter param = new SqlParameter();
|
param.put("projectId", projectId);
|
StringBuilder sql = new StringBuilder();
|
List<Map> cateList = new ArrayList<Map>();
|
List<Map> userList = new ArrayList<Map>();
|
//查询组及用户
|
sql.setLength(0);
|
sql.append(" select g.ID GROUP_ID,g.GROUP_NAME,u.USER_ID,u.USER_NAME from ");
|
sql.append(" ( ");
|
sql.append(" select GROUP_ID,USER_ID,USER_NAME from SC_SERVICER_GROUP_USER ");
|
sql.append(" where state=1 ");
|
sql.append(" ) u inner join SC_SERVICER_GROUP g ");
|
sql.append(" on g.ID = u.GROUP_ID ");
|
sql.append(" INNER JOIN AC_USER_REF_ROLE R ON U.USER_ID=R.YHBH ");
|
sql.append(" where g.state=1 and g.PROJECT_ID =:projectId and r.jsbh=:roleId group by u.USER_ID ");
|
|
param.put("roleId", Constants.CFG_ADMIN_ID);
|
|
userList = baseDao.queryForList(sql.toString(),param);
|
//获取分类
|
Map<String,String> groupMap = new HashMap<String,String>();
|
List<Map> resList = new ArrayList<Map>();
|
if(userList!=null&&userList.size()>0){
|
for(Map map:userList){
|
if(!groupMap.containsKey(map.get("GROUP_ID").toString()))
|
groupMap.put(map.get("GROUP_ID").toString(), map.get("GROUP_NAME").toString());
|
}
|
|
for(Map.Entry<String, String> entry:groupMap.entrySet()){
|
List tempList = new ArrayList();
|
Map tempMap = new HashMap();
|
tempMap.put("groupId", entry.getKey());
|
tempMap.put("groupName", entry.getValue());
|
for(Map map:userList){
|
if(map.get("GROUP_ID").toString().equals(entry.getKey())){
|
tempList.add(map);
|
}
|
}
|
tempMap.put("userList", tempList);
|
resList.add(tempMap);
|
}
|
}
|
|
|
//System.out.println("--------------"+JsonUtil.list2Json(resList));
|
return resList;
|
}
|
|
|
public Map getReport(String orderId,String flowId){
|
Map resMap = new HashMap();
|
Map baseInfo = new HashMap();
|
|
//查询参数
|
Map param = new HashMap();
|
param.put("flowId", flowId);
|
param.put("orderId", orderId);
|
param.put("appNodeId", Constants.CIADD_APPROVE);
|
param.put("colNodeId", Constants.CIADD_COLLECTION);
|
param.put("admNodeId", Constants.CIADD_ADMIN);
|
//查询基本信息
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select c.CUSTOMER_NAME,c.ORDER_CODE,c.PROJECT_NAME,c.COLLECTION_TYPE_NAME,b.CREATETIME,b.ENDTIME,c.CUSTOMER_CONTACTS,c.CUSTOMER_CONTACT_INFO,c.SUB_CUSTOMER_NAME, ");
|
sql.append(" c.APPLY_REASON,c.APPLY_USER_NAME,c.APPLY_TIME, ");
|
sql.append(" approve.*,col.*,adm.* ");
|
sql.append(" from sc_workflow_ci_add c ");
|
sql.append(" inner join workflow_base b on c.FLOW_ID = b.ID ");
|
sql.append(" left join ");
|
sql.append(" ( ");
|
sql.append(" select DEAL_NOTE APPROVENOTE,CURRENT_DEALER_NAME APPROVENAME,DEALTIME APPROVETIME,FLOWID from workflow_node ");
|
sql.append(" where NODE_TEMPLATE_ID = :appNodeId and IS_ADMIN=1 and FLOWID = :flowId ");
|
sql.append(" order by dealtime desc LIMIT 1 ");
|
sql.append(" ) approve ");
|
sql.append(" on c.FLOW_ID = approve.FLOWID ");
|
sql.append(" left join ");
|
sql.append(" ( ");
|
sql.append(" select DEAL_NOTE COLNOTE,CURRENT_DEALER_NAME COLNAME,DEALTIME COLTIME,FLOWID from workflow_node ");
|
sql.append(" where NODE_TEMPLATE_ID = :colNodeId and IS_ADMIN=1 and FLOWID = :flowId ");
|
sql.append(" order by dealtime desc LIMIT 1 ");
|
sql.append(" ) col ");
|
sql.append(" on c.FLOW_ID = col.FLOWID ");
|
sql.append(" left join ");
|
sql.append(" ( ");
|
sql.append(" select DEAL_NOTE ADMNOTE,CURRENT_DEALER_NAME ADMNAME,DEALTIME ADMTIME,FLOWID from workflow_node ");
|
sql.append(" where NODE_TEMPLATE_ID = :admNodeId and IS_ADMIN=1 and FLOWID = :flowId ");
|
sql.append(" order by dealtime desc LIMIT 1 ");
|
sql.append(" ) adm ");
|
sql.append(" on c.FLOW_ID = adm.FLOWID ");
|
sql.append(" where c.FLOW_ID = :flowId ");
|
resMap.put("baseInfo", baseDao.queryForMap(sql.toString(),param));
|
|
//查询关联配置
|
sql.setLength(0);
|
sql.append(" select c.REALNUM,g.*,t.EXECUTORS,t.EXECUTORIDS from SC_WORKFLOW_CI_ADD_GENERAL g ");
|
sql.append(" left join ( ");
|
sql.append(" select p.CI_GENERAL_ID,group_concat(u.zsxm) as EXECUTORS,group_concat(u.id) as EXECUTORIDS ");
|
sql.append(" from SC_COLLECTION_PERSON p inner join gg_user u ");
|
sql.append(" on p.USER_ID=u.ID group by CI_GENERAL_ID ");
|
sql.append(" ) t on g.ID=t.CI_GENERAL_ID ");
|
|
sql.append(" left join ( ");
|
sql.append(" select THIRDLEVELID,COUNT(*) realNum from CMDB_CI_BASE b where FLOW_ID = :flowId ");
|
sql.append(" group by b.THIRDLEVELID ");
|
sql.append(" ) c on g.THIRD_LEVEL_ID=c.THIRDLEVELID ");
|
|
sql.append(" where BUSINESS_ID=:orderId ");
|
|
resMap.put("relation", baseDao.queryForList(sql.toString(),param));
|
resMap.put("fileList", incidentFacade.queryFiles(flowId));
|
return resMap;
|
}
|
|
|
@Override
|
public List getReportDetail(String flowId) {
|
List<Map> resList = new ArrayList<Map>();
|
Map param = new HashMap();
|
param.put("flowId", flowId);
|
String sql =" select a.ORDER_CODE,a.PROJECT_NAME,a.CUSTOMER_NAME,b.ID,b.THIRDLEVELID,c.NAME,b.SEACHCODE,b.CINAME,b.POSITION,b.MAINUFACTURERNAME,b.SYSTEMINTEGRATIONNAME " +
|
" from CMDB_CI_BASE b inner join cmdb_ci_category c " +
|
" on b.THIRDLEVELID = c.ID " +
|
" inner join sc_workflow_ci_add a on b.FLOW_ID = a.FLOW_ID " +
|
" where c.LEIX =1 and a.flow_id = :flowId " +
|
" order by b.THIRDLEVELID asc " ;
|
List<Map> queryList = baseDao.queryForList(sql,param);
|
if(queryList!=null&&queryList.size()>0){
|
Map<String,String> groupMap = new HashMap();
|
Map<String,String> lebalMap = new HashMap();
|
for(Map map:queryList){
|
if(!groupMap.containsKey(map.get("THIRDLEVELID").toString())){
|
groupMap.put(map.get("THIRDLEVELID").toString(),map.get("NAME").toString());
|
}
|
}
|
|
for(Map.Entry<String, String> entry : groupMap.entrySet()){
|
Map tempMap = new HashMap();
|
tempMap.put("name", entry.getValue());
|
List<Map> tempList = new ArrayList<Map>();
|
for(Map map:queryList){
|
if(entry.getKey().equals(map.get("THIRDLEVELID").toString())){
|
tempList.add(map);
|
}
|
}
|
tempMap.put("dataList",tempList);
|
resList.add(tempMap);
|
}
|
}
|
return resList;
|
}
|
|
|
public String saveContact(HttpServletRequest request,CMDB_MAINUFACTURER_CONTACTS contact) {
|
long createTime = DateUtil.getCurrentDate14();
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
|
String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
|
|
String flowId = contact.getFlow_id();
|
WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
|
|
contact.setName_pinyin(PinYinUtil.getStringPinYin(contact.getContacts(), false)).setCreate_time(createTime).setUser_id(userId).setUser_name(userName).setDel_flag(1).setCustomer_id(base.getCustomer_id()).insert();
|
return "1";
|
}
|
|
public Map getOrderFlowInfo(String flowId){
|
Map param = new HashMap();
|
param.put("flowId", flowId);
|
String sql = " select n.CURRENT_DEAL_ROLENAME roleName,n.deal_type dealType,g.SJHM telphone,n.FLOWSTATE nodeState,b.WFSTATE flowState,b.CURRENT_NODE_NAME nodeName,b.CURRENT_DEALER_NAME userName "+
|
" from workflow_base b inner join workflow_node n on "+
|
" b.CURRENT_NODE_ID = n.id "+
|
" left join gg_user g on g.ID = b.CURRENT_DEALER_ID "+
|
" where FLOWID = :flowId ";
|
return baseDao.queryForMap(sql,param);
|
}
|
|
/**
|
* 更新日常巡检设备信息
|
* @param flowId
|
*/
|
public void updateDayPatrol(String flowId){
|
Map param = new HashMap();
|
param.put("flowId", flowId);
|
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select c.ID,c.PROJECT_ID,c.SUB_CUSTOMER_ID from cmdb_ci_base c ");
|
sql.append(" inner join ");
|
sql.append(" ( ");
|
sql.append(" select CI_ID from CI_DAILY_PATROL_CUSTOMIZE_DETAIL group by CI_ID ");
|
sql.append(" ) t ");
|
sql.append(" on c.ID = t.CI_ID ");
|
sql.append(" where c.FLOW_ID = :flowId and c.USINGSTATE=1 ");
|
List<Map> queryList = baseDao.queryForList(sql.toString(),param);
|
List<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
if(queryList!=null&&queryList.size()>0){
|
for(Map map:queryList){
|
SqlParameter tempParam = new SqlParameter();
|
tempParam.addValue("ciId",map.get("ID"))
|
.addValue("projectId",map.get("PROJECT_ID"))
|
.addValue("subCustomerId",map.get("SUB_CUSTOMER_ID"))
|
.addValue("id", StringUtil.getUUID());
|
paramList.add(tempParam);
|
}
|
sql.setLength(0);
|
sql.append(" insert into CI_DAILY_PATROL_CI (ID,PROJECT_ID,CI_ID,SUB_CUSTOMER_ID) values (:id,:projectId,:ciId,:subCustomerId) ");
|
baseDao.executeBatch(sql.toString(), paramList);
|
}
|
}
|
|
|
/**
|
* 获取我的设备采集sql
|
* @param request
|
* @return
|
*/
|
private Map getMyCiAddListSql(HttpServletRequest request){
|
String userId = WebUtil.getLoginedUserId(request);
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
|
String customerId = request.getParameter("customerId");
|
String subCustomerId = request.getParameter("subCustomerId");
|
String startDate = request.getParameter("startDate");
|
String endtDate = request.getParameter("endtDate");
|
String orderName = request.getParameter("orderName");
|
String orderCode = request.getParameter("orderCode");
|
String userCode = request.getParameter("userCode");
|
String collectionType = request.getParameter("collectionType");
|
String flowState = request.getParameter("flowState");
|
String nodeState = request.getParameter("nodeState");
|
|
|
Map paramMap = new HashMap();
|
paramMap.put("userId", userId);
|
//paramMap.put("partnerId", partnerId);
|
paramMap.put("nodeState", nodeState);
|
paramMap.put("flowState", flowState);
|
paramMap.put("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
paramMap.put("customerId", customerId);
|
paramMap.put("subCustomerId", subCustomerId);
|
paramMap.put("orderCode", "%"+orderCode+"%");
|
paramMap.put("userCode", "%"+userCode+"%");
|
paramMap.put("orderName", "%"+orderName+"%");
|
|
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME, ");
|
builder.append(" b.BUSINESSTYPE,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE,b.PROJECT_NAME, ");
|
builder.append(" r.ORDER_CODE,r.ID ORDERID,r.APPLY_REASON ");
|
builder.append(" from SC_WORKFLOW_CI_ADD r ");
|
builder.append(" inner join WORKFLOW_BASE B on r.FLOW_ID = b.ID ");
|
builder.append(" inner join ");
|
builder.append(" ( ");
|
builder.append(" select * from ( ");
|
builder.append(" select CREATETIME NODETIME,ID NODEID,FLOWSTATE NODESTATE,FLOWID,CURRENT_DEALER_NAME from WORKFLOW_NODE ");
|
builder.append(" where CURRENT_DEALER_ID = :userId ");
|
//环节状态
|
if(StringUtil.isNotBlank(nodeState)){
|
builder.append("and FLOWSTATE =:nodeState ");
|
}
|
builder.append(" order by FLOWSTATE asc ");
|
builder.append(" ) t group by FLOWID ");
|
builder.append(" ) n ");
|
builder.append(" on b.ID = n.FLOWID ");
|
builder.append(" inner join gg_user g on b.createrid = g.id ");
|
builder.append(" where 1=1 ");
|
//工单类型
|
builder.append(" AND b.BUSINESSTYPE = :businessType");
|
//工单状态
|
if(StringUtil.notEmpty(flowState)) {
|
builder.append(" AND b.WFSTATE =:flowState ");
|
}
|
//客户
|
if(StringUtil.isNotBlank(customerId)) {
|
builder.append(" AND b.CUSTOMER_ID = :customerId ");
|
}
|
//下属单位
|
if(StringUtil.isNotBlank(subCustomerId)) {
|
builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
|
}
|
|
//开始时间
|
if(StringUtil.isNotBlank(startDate)) {
|
builder.append(" AND b.CREATETIME >= :startDate ");
|
paramMap.put("startDate", startDate+"000000");
|
|
}
|
|
//结束时间
|
if(StringUtil.isNotBlank(endtDate)) {
|
builder.append(" AND b.CREATETIME <= :endtDate ");
|
paramMap.put("endtDate", endtDate+"666666");
|
}
|
|
//工单名称
|
if(StringUtil.notEmpty(orderName)) {
|
builder.append(" AND b.WFNAME LIKE :orderName");
|
}
|
|
//工单编号
|
if(StringUtil.notEmpty(orderCode)) {
|
builder.append(" AND r.ORDER_CODE LIKE :orderCode");
|
|
}
|
//用户
|
if(StringUtil.notEmpty(userCode)) {
|
builder.append(" AND g.employee_id LIKE :userCode");
|
}
|
//采集类型
|
if(StringUtil.notEmpty(collectionType)) {
|
String[] types = collectionType.split(",");
|
if(types.length==1) {
|
builder.append(" AND r.COLLECTION_TYPE_ID = :type_id");
|
paramMap.put("type_id", types[0]);
|
} else {
|
builder.append(" AND r.COLLECTION_TYPE_ID IN (");
|
for(int i=0; i<types.length; i++) {
|
builder.append(" :type"+i);
|
builder.append(",");
|
paramMap.put("type"+i, types[i]);
|
}
|
builder.deleteCharAt(builder.lastIndexOf(","));
|
builder.append(")");
|
}
|
}
|
builder.append(" order by n.NODESTATE ASC,n.NODETIME desc,b.CREATETIME desc ");
|
|
Map supportMap = new HashMap();
|
supportMap.put("sql", builder.toString());
|
supportMap.put("param", paramMap);
|
return supportMap;
|
}
|
|
private StringBuilder getProjectSql(StringBuilder buffer, List<Map> projects) {
|
if(null != projects && projects.size()>0) {
|
buffer.append(" AND b.PROJECT_ID IN ( ");
|
for(Map project : projects) {
|
String projectId = ConvertUtil.obj2StrBlank(project.get("PROJECT_ID"));
|
buffer.append("'");
|
buffer.append(projectId);
|
buffer.append("',");
|
}
|
buffer.deleteCharAt(buffer.length()-1);
|
buffer.append(")");
|
} else {
|
buffer.append(" AND b.PROJECT_ID = '' ");
|
}
|
return buffer;
|
}
|
|
|
@Override
|
public Map getCiCollectionManageSurvey(HttpServletRequest request) {
|
Map result = new HashMap();
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
SqlParameter param = new SqlParameter();
|
List<String> projectIds = new ArrayList<String>();
|
/*List<Map> projects = WebUtil.getProjects(request);
|
for (Map project : projects) {
|
projectIds.add(ConvertUtil.obj2StrBlank(project.get("PROJECT_ID")));
|
}*/
|
|
param.addValue("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD)
|
.addValue("projectIds", projectIds);
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select COUNT(b.ID) num,b.wfstate ");
|
builder.append(" from WORKFLOW_BASE b,WORKFLOW_NODE n ");
|
builder.append(" where b.CURRENT_NODE_ID = n.ID AND b.BUSINESSTYPE = :businessType ");
|
builder.append(" and b.PROJECT_ID in (:projectIds) ");
|
//工单类型
|
builder.append(" GROUP BY b.WFSTATE ");
|
List<Map> queryList = baseDao.queryForList(builder.toString(),param);
|
result.put("totalNum", 0);
|
result.put("dealNum", 0);
|
result.put("finishNum", 0);
|
result.put("closeNum", 0);
|
if(queryList!=null&&queryList.size()>0){
|
Integer totalNum = 0;
|
for(Map map:queryList){
|
if(ConvertUtil.obj2StrBlank(map.get("wfstate")).equals(Constants.WORKFLOW_BASE_WFSTATE_DOING.toString())){//进行中
|
result.put("dealNum", map.get("num"));
|
}else if(ConvertUtil.obj2StrBlank(map.get("wfstate")).equals(Constants.WORKFLOW_BASE_WFSTATE_FINISH.toString())){//已完成
|
result.put("finishNum", map.get("num"));
|
}else if(ConvertUtil.obj2StrBlank(map.get("wfstate")).equals(Constants.WORKFLOW_BASE_WFSTATE_CLOSE.toString())){//已取消
|
result.put("closeNum", map.get("num"));
|
}
|
totalNum = totalNum + ConvertUtil.obj2Integer(map.get("num"));
|
}
|
result.put("totalNum",totalNum);
|
}
|
return result;
|
}
|
|
@Override
|
public boolean checkHasConfig(String flowId) {
|
String sql = " select count(id) from cmdb_ci_base where flow_id=:flowId ";
|
int count = baseDao.queryForInteger(sql,new SqlParameter().addValue("flowId", flowId));
|
if(count==0){
|
return false;
|
}else{
|
return true;
|
}
|
}
|
|
@Override
|
public List<String> getXlsList(String configId, String fileName) {
|
List<String> list = new ArrayList<String>();
|
// 创建对Excel工作簿文件的引用
|
HSSFWorkbook wookbook;
|
try {
|
wookbook = new HSSFWorkbook(new FileInputStream(fileName));
|
// 在Excel文档中,第一张工作表的缺省索引是0
|
HSSFSheet sheet = wookbook.getSheet("Sheet1");
|
//获取到Excel文件中的所有行数
|
int rows = sheet.getPhysicalNumberOfRows();
|
//遍历行
|
for (int i = 1; i < rows; i++) {
|
// 读取左上端单元格
|
HSSFRow row = sheet.getRow(i);
|
// 行不为空
|
if (row != null) {
|
//获取到Excel文件中的所有的列
|
int cells = row.getPhysicalNumberOfCells();
|
String value = "";
|
|
//获取到列的值
|
HSSFCell cell = row.getCell(0);
|
if (cell != null) {
|
switch (cell.getCellType()) {
|
case HSSFCell.CELL_TYPE_FORMULA:
|
break;
|
case HSSFCell.CELL_TYPE_NUMERIC:
|
value = String.valueOf(cell.getNumericCellValue());
|
break;
|
case HSSFCell.CELL_TYPE_STRING:
|
value = cell.getStringCellValue();
|
break;
|
default:
|
value = "";
|
break;
|
}
|
list.add(value);
|
}
|
|
}
|
}
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return list;
|
}
|
|
@Override
|
public void doBathAdd(String configId, List<String> serialNos,HttpServletRequest request) {
|
/*CMDB_CI_BASE base = new CMDB_CI_BASE(configId).getInstanceById();
|
String selSql = " SELECT * FROM CMDB_CI_DATA_STORAGE WHERE CI_ID = :configId ";
|
List<Map> Storages = baseDao.queryForList(selSql,new SqlParameter().addValue("configId", configId));
|
|
if(serialNos!=null&&serialNos.size()>0){
|
List<SqlParameter> params = new ArrayList<SqlParameter>();
|
List<SqlParameter> extend_params = new ArrayList<SqlParameter>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" INSERT INTO CMDB_CI_BASE ( ");
|
sql.append(" ID,CINAME,SEACHCODE,MEMBERCODE,MEMBERID,MEMBERNAME,LEVELNUMBER,THELEVELID,FIRSTLEVELID,SECONDLEVELID,THIRDLEVELID, ");
|
sql.append(" MAINUFACTURERID,MAINUFACTURERNAME,SYSTEMINTEGRATIONID,SYSTEMINTEGRATIONNAME,USINGSTATE,CREATETIME, ");
|
sql.append(" CIADMIN,POSITION,LASTUPDATETIME,NOTE,VERSION,FLOW_ID,DISK_ID,LEIX,BUY_TIME,GB_TIME, ");
|
sql.append(" SERVICE_PROVIDERS_ID,SERVICE_PROVIDERS_NAME,XB_TIME,XBGB_TIME,PCI_ID,DEPT_ID,DEPT_NAME, ");
|
sql.append(" SN,PROJECT_ID,PROJECT_NAME,SUB_CUSTOMER_ID,SUB_CUSTOMER_NAME,MO_LINK_ID ");
|
sql.append(" ) VALUES ( ");
|
sql.append(" :ID,:CINAME,:SEACHCODE,:MEMBERCODE,:MEMBERID,:MEMBERNAME,:LEVELNUMBER,:THELEVELID,:FIRSTLEVELID,:SECONDLEVELID,:THIRDLEVELID, ");
|
sql.append(" :MAINUFACTURERID,:MAINUFACTURERNAME,:SYSTEMINTEGRATIONID,:SYSTEMINTEGRATIONNAME,:USINGSTATE,:CREATETIME, ");
|
sql.append(" :CIADMIN,:POSITION,:LASTUPDATETIME,:NOTE,:VERSION,:FLOW_ID,:DISK_ID,:LEIX,:BUY_TIME,:GB_TIME, ");
|
sql.append(" :SERVICE_PROVIDERS_ID,:SERVICE_PROVIDERS_NAME,:XB_TIME,:XBGB_TIME,:PCI_ID,:DEPT_ID,:DEPT_NAME, ");
|
sql.append(" :SN,:PROJECT_ID,:PROJECT_NAME,:SUB_CUSTOMER_ID,:SUB_CUSTOMER_NAME,:MO_LINK_ID ");
|
sql.append(" ) ");
|
|
int i = 0;
|
for(String serialNo: serialNos){
|
i++;
|
String searchcode = sequenceService.getCICategorySequence(base.getThirdlevelid());
|
sequenceService.nextCICategorySequence(base.getThirdlevelid());
|
String membercode = ConvertUtil.obj2StrBlank(sequenceService.getMemberSequence(base.getMemberid()));
|
sequenceService.nextMemberSequence(base.getMemberid());
|
//生成二维码
|
TwoDimensionCode handler = new TwoDimensionCode();
|
String searchCode = searchcode;
|
String url = Constants.QRCODE_URL + searchCode;
|
String logoUrl = WebUtil.getRealPath(request, "/static/logo.jpg");
|
handler.encoderQRCode(url, WebUtil.getRealPath(request, "/upload/qrCode/"+searchCode+".png"), "png",logoUrl);
|
String newConfigId = StringUtil.getUUID();
|
SqlParameter param = new SqlParameter();
|
param.addValue("ID", newConfigId)
|
.addValue("CINAME", base.getCiname().toString()+i)
|
.addValue("SEACHCODE",searchcode)
|
.addValue("MEMBERCODE", membercode)
|
.addValue("MEMBERID", base.getMemberid())
|
.addValue("MEMBERNAME", base.getMembername())
|
.addValue("LEVELNUMBER", base.getLevelnumber())
|
.addValue("THELEVELID", base.getThelevelid())
|
.addValue("FIRSTLEVELID", base.getFirstlevelid())
|
.addValue("SECONDLEVELID", base.getSecondlevelid())
|
.addValue("THIRDLEVELID", base.getThirdlevelid())
|
.addValue("MAINUFACTURERID", base.getMainufacturerid())
|
.addValue("MAINUFACTURERNAME", base.getMainufacturername())
|
.addValue("SYSTEMINTEGRATIONID", base.getSystemintegrationid())
|
.addValue("SYSTEMINTEGRATIONNAME", base.getSystemintegrationname())
|
.addValue("USINGSTATE", 3)
|
.addValue("CREATETIME", DateUtil.getCurrentDate14())
|
.addValue("CIADMIN", base.getCiadmin())
|
.addValue("POSITION", base.getPosition())
|
.addValue("LASTUPDATETIME", DateUtil.getCurrentDate14())
|
.addValue("NOTE", base.getNote())
|
.addValue("VERSION", 1)
|
.addValue("FLOW_ID", base.getFlow_id())
|
.addValue("DISK_ID", base.getDisk_id())
|
.addValue("LEIX", 1)
|
.addValue("BUY_TIME", base.getBuy_time())
|
.addValue("GB_TIME", base.getGb_time())
|
.addValue("SERVICE_PROVIDERS_ID", base.getService_providers_id())
|
.addValue("SERVICE_PROVIDERS_NAME", base.getService_providers_name())
|
.addValue("XB_TIME", base.getXb_time())
|
.addValue("XBGB_TIME", base.getXbgb_time())
|
.addValue("PCI_ID", base.getPci_id())
|
.addValue("DEPT_ID", base.getDept_id())
|
.addValue("DEPT_NAME", base.getDept_name())
|
.addValue("SN", serialNo)
|
.addValue("PROJECT_ID", base.getProject_id())
|
.addValue("PROJECT_NAME", base.getProject_name())
|
.addValue("SUB_CUSTOMER_ID", base.getSub_customer_id())
|
.addValue("SUB_CUSTOMER_NAME", base.getSub_customer_id())
|
.addValue("MO_LINK_ID", base.getMo_link_id())
|
.addValue("CI_ID", newConfigId);
|
params.add(param);
|
for(Map Storage:Storages){
|
SqlParameter extend_param = new SqlParameter();
|
extend_param.addValue("COLUMN_ID", Storage.get("COLUMN_ID"))
|
.addValue("COLUMN_CODE", Storage.get("COLUMN_CODE"))
|
.addValue("COLUMN_NAME", Storage.get("COLUMN_NAME"))
|
.addValue("COLUMN_VALUE", Storage.get("COLUMN_VALUE"))
|
.addValue("COLUMN_TEXT", Storage.get("COLUMN_TEXT"))
|
.addValue("STORAGE_ID", StringUtil.getUUID())
|
.addValue("CI_ID", newConfigId)
|
.addValue("SEACHCODE", searchcode);
|
extend_params.add(extend_param);
|
}
|
}
|
baseDao.executeBatch(sql.toString(), params);
|
String insertSql = "INSERT INTO CMDB_CI_DATA_STORAGE(ID,CI_ID,SEACHCODE,COLUMN_ID,COLUMN_CODE,COLUMN_NAME,COLUMN_VALUE,COLUMN_TEXT) VALUES (:STORAGE_ID,:CI_ID,:SEACHCODE,:COLUMN_ID,:COLUMN_CODE,:COLUMN_NAME,:COLUMN_VALUE,:COLUMN_TEXT)";
|
baseDao.executeBatch(insertSql,extend_params);
|
}*/
|
}
|
|
|
@Override
|
public Map getNextNode(Map<String, String> params) {
|
String flowId = params.get("flowId");
|
Map nextNode = new HashMap();
|
nextNode.put("userId", "");
|
nextNode.put("userName", "");
|
String templateId = Constants.CIADD_APPLY;
|
if (flowId==null||StringUtil.isBlank(flowId)) {
|
nextNode.put("nodeId", Constants.CIADD_APPROVE);
|
nextNode.put("nodeName", Constants.getCiAddNode(Constants.CIADD_APPROVE));
|
}else{
|
StringBuilder sql = new StringBuilder("select b.node_template_id from workflow_base a,workflow_node b where a.current_node_id = b.id and a.id = :flowId ");
|
templateId = baseDao.queryForString(sql.toString(), new SqlParameter("flowId", flowId));
|
if(templateId.equals(Constants.CIADD_COLLECTION)){
|
nextNode.put("nodeId", Constants.CIADD_CONFIRM);
|
nextNode.put("nodeName", Constants.getCiAddNode(Constants.CIADD_CONFIRM));
|
}else if(templateId.equals(Constants.CIADD_CONFIRM)){
|
nextNode.put("nodeId", Constants.CIADD_ADMIN);
|
nextNode.put("nodeName", Constants.getCiAddNode(Constants.CIADD_ADMIN));
|
}else if(templateId.equals(Constants.CIADD_APPLY)){
|
nextNode.put("nodeId", Constants.CIADD_APPROVE);
|
nextNode.put("nodeName", Constants.getCiAddNode(Constants.CIADD_APPROVE));
|
}
|
}
|
nextNode.put("curTemplateId", templateId);
|
return nextNode;
|
}
|
|
public Map<String,String> queryUserByTemplateId(String flowId,String templateId){
|
String sql = " select n.current_dealer_id,n.current_dealer_name from workflow_base b,workflow_node n where b.id = n.flowid" +
|
" and b.id=:flowId and n.node_template_id = :templateId and is_admin=1 order by n.createtime limit 1 ";
|
SqlParameter sqlParameter = new SqlParameter();
|
sqlParameter.addValue("templateId", templateId)
|
.addValue("flowId", flowId);
|
return baseDao.queryForMap(sql, sqlParameter);
|
}
|
|
@Override
|
public List<Map> getMainCiRelation(String flowId, String ciId) {
|
String sql = " SELECT b.CINAME,A.*, A.AFTER_RELATION_TYPE AS RELATION FROM CMDB_CI_RELATION_ING A, CMDB_CI_BASE B " +
|
" WHERE A.SUBCIID = B.ID AND A.BUSINESS_ID = :flowId AND A.MAINID = :ciId AND ( A.DEAL_TYPE IS NULL OR A.DEAL_TYPE = 1 OR A.DEAL_TYPE = 2 ) ";
|
return baseDao.queryForList(sql,new SqlParameter().addValue("flowId",flowId).addValue("ciId",ciId));
|
}
|
|
@Override
|
public List<Map> getSubCiRelation(String flowId, String ciId) {
|
String sql = " SELECT b.CINAME,A.*, A.AFTER_RELATION_TYPE AS RELATION FROM CMDB_CI_RELATION_ING A, CMDB_CI_BASE B " +
|
" WHERE A.SUBCIID = B.ID AND A.BUSINESS_ID = :flowId AND A.SUBCIID = :ciId AND ( A.DEAL_TYPE IS NULL OR A.DEAL_TYPE = 1 OR A.DEAL_TYPE = 2 ) ";
|
return baseDao.queryForList(sql,new SqlParameter().addValue("flowId",flowId).addValue("ciId",ciId));
|
}
|
|
|
@Override
|
public List<Map> getMainCiRelationDetail(String flowId, String ciId) {
|
String sql = " SELECT b.CINAME,A.*,A.RELATION AS RELATION_TYPE FROM CMDB_CI_RELATION A, CMDB_CI_BASE B " +
|
" WHERE A.SUBCIID = B.ID AND A.MAINCIID = :ciId ";
|
return baseDao.queryForList(sql,new SqlParameter().addValue("flowId",flowId).addValue("ciId",ciId));
|
}
|
|
@Override
|
public List<Map> getSubCiRelationDetail(String flowId, String ciId) {
|
String sql = " SELECT b.CINAME,A.*,A.RELATION AS RELATION_TYPE FROM CMDB_CI_RELATION A, CMDB_CI_BASE B " +
|
" WHERE A.SUBCIID = B.ID AND A.SUBCIID = :ciId ";
|
return baseDao.queryForList(sql,new SqlParameter().addValue("flowId",flowId).addValue("ciId",ciId));
|
}
|
|
@Override
|
public SysInfoMsg doPartnerDeal(HttpServletRequest request){
|
String orderId = ConvertUtil.obj2StrBlank(request.getParameter("orderId"));
|
Map user = WebUtil.getLoginUser(request).getLoginUser();
|
String userName = user.get("ZSXM").toString();
|
String userId = user.get("Id").toString();
|
String nodeId = ConvertUtil.obj2StrBlank(request.getParameter("nodeId"));
|
WORKFLOW_NODE node=new WORKFLOW_NODE(nodeId).getInstanceById();
|
WORKFLOW_BASE base=new WORKFLOW_BASE(node.getFlowid()).getInstanceById();
|
base.setEndtime(DateUtil.getCurrentDate14()).setWfstate(2).update();
|
String note = ConvertUtil.obj2StrBlank(request.getParameter("flowNote"));
|
|
SC_WORKFLOW_CI_ADD ciAddOrder = new SC_WORKFLOW_CI_ADD(orderId).getInstanceById();
|
String flowId = ciAddOrder.getFlow_id();
|
|
//baseDao.execute("update CMDB_CI_BASE set usingstate=1 where FLOW_ID=:flowId", new SqlParameter("flowId", flowId));
|
doFinish(request);
|
WorkFlowSupportEntity support = new WorkFlowSupportEntity();
|
support.setFlowId(flowId);
|
support.setNote(note);
|
support.setNodeId(nodeId);
|
support.setUserName(userName);
|
support.setUserId(userId);
|
support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_ADD);
|
SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
|
return msg;
|
}
|
|
@Override
|
public int queryCiAddOrderCountTwo(Map paramMap,HttpServletRequest request) {
|
String userId = WebUtil.getLoginedUserId(request);
|
//String partnerId = WebUtil.getLoginedPartnerId(request);
|
String flowState = ConvertUtil.obj2StrBlank(paramMap.get("flowState"));
|
paramMap.put("userId", userId);
|
//paramMap.put("partnerId", partnerId);
|
List<Map> projects = new ArrayList<Map>();
|
//projects = WebUtil.getProjects(request);
|
|
StringBuilder builder = new StringBuilder();
|
builder.append(" select b.PROJECT_NAME,b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
|
builder.append(" r.ORDER_CODE,r.ID ORDERID,r.APPLY_REASON,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE,n.CURRENT_DEALER_NAME,n.FLOWSTATE NODESTATE ");
|
builder.append(" from SC_WORKFLOW_CI_ADD r ");
|
builder.append(" inner join WORKFLOW_BASE b on r.FLOW_ID = b.ID ");
|
/*if(StringUtil.isNotBlank(nodeTemplateId)){*/
|
builder.append(" inner join WORKFLOW_NODE N on b.CURRENT_NODE_ID = n.ID ");
|
builder.append(" inner join gg_user g on b.CREATERID = g.ID ");
|
|
/*}*/
|
builder.append(" where 1=1 ");
|
//流程状态
|
if(StringUtil.notEmpty(flowState)) {
|
builder.append(" AND b.WFSTATE = :flowState");
|
}
|
|
builder.append(" order by b.CREATETIME desc ");
|
|
Map supportMap = new HashMap();
|
supportMap.put("sql",builder);
|
supportMap.put("param", paramMap);
|
String sql = "select count(*) from ( " + supportMap.get("sql").toString() + " ) t";
|
return baseDao.queryForInteger(sql,(Map)supportMap.get("param"));
|
}
|
}
|