| | |
| | | package cn.ksource.web.facade.releaseManage; |
| | | |
| | | 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.Repository; |
| | | |
| | | import cn.ksource.beans.GG_RECORD; |
| | | import cn.ksource.beans.SC_WORKFLOW_RELEASE; |
| | | import cn.ksource.beans.WORKFLOW_BASE; |
| | |
| | | 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.StringUtil; |
| | | import cn.ksource.core.util.TreeUtil; |
| | | import cn.ksource.core.web.SysInfoMsg; |
| | |
| | | import cn.ksource.web.service.WorkOrderCodeService; |
| | | import cn.ksource.web.service.record.RecordService; |
| | | import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | @Repository |
| | | public class ReleaseFacadeImpl implements ReleaseFacade{ |
| | |
| | | private DSLFacade dslFacade; |
| | | @Autowired |
| | | private ChangeFacade changeFacade; |
| | | |
| | | |
| | | @Autowired |
| | | private WorkOrderCodeService workOrderCodeService; |
| | | |
| | | |
| | | @Autowired |
| | | private WorkFlowSupportService workFlowSupportService; |
| | | @Autowired |
| | | private RecordService recordService; |
| | | @Autowired |
| | | private WorkflowCoreService workflowCoreService; |
| | | |
| | | |
| | | /** |
| | | * 获取我的发布管理数据 |
| | | * @param request |
| | |
| | | .addValue("startDate", startDate+"000000") |
| | | .addValue("endDate", endDate+"666666"); |
| | | |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append(" select r.NAME,b.CURRENT_DEALER_NAME,r.PROJECT_NAME,r.RELEASE_REASON,n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, "); |
| | | builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE "); |
| | |
| | | builder.append(" where CURRENT_DEALER_ID = :userId "); |
| | | //环节状态 |
| | | if(StringUtil.isNotBlank(nodeState)){ |
| | | builder.append("and FLOWSTATE =:nodeState "); |
| | | builder.append("and FLOWSTATE =:nodeState "); |
| | | } |
| | | builder.append(" order by FLOWSTATE asc "); |
| | | builder.append(" ) t "); |
| | | builder.append(" group by FLOWID "); |
| | | builder.append(" group by FLOWID,NODEID,NODETIME,NODESTATE "); |
| | | builder.append(" ) n "); |
| | | builder.append(" on b.ID = n.FLOWID "); |
| | | //builder.append(" where b.PARTNER_ID =:partnerId "); |
| | |
| | | //工单状态 |
| | | if(StringUtil.notEmpty(flowState)) { |
| | | builder.append(" AND b.WFSTATE =:flowState "); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | //客户 |
| | | if(StringUtil.isNotBlank(customerId)) { |
| | | builder.append(" AND b.CUSTOMER_ID = :customerId "); |
| | |
| | | if(StringUtil.isNotBlank(projectId)) { |
| | | builder.append(" AND b.PROJECT_ID = :projectId "); |
| | | } |
| | | |
| | | |
| | | if(StringUtil.notEmpty(orderCode)) { |
| | | builder.append(" AND r.ORDER_CODE LIKE :orderCode"); |
| | | } |
| | |
| | | |
| | | |
| | | 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", param); |
| | | return supportMap; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public int queryMyRealseCount(HttpServletRequest request) { |
| | | Map supportMap = getMyRealseSupportMap(request); |
| | |
| | | SqlParameter param = (SqlParameter)supportMap.get("param"); |
| | | return baseDao.queryforSplitPage(request, sql, param); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List queryLinkDeviceList(String flowId) { |
| | | String sql = " select c.id,c.ciname,c.position,c.SEARCHCODE seachcode from cmdb_ci_base c " + |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map getChangeInfoById(String changeId) { |
| | | String sql = "select oa_id,id change_id,name,customer_id,customer_name,project_id,project_name from sc_workflow_change where id = :changeId "; |
| | | return baseDao.queryForMap(sql, new SqlParameter("changeId", changeId)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public String saveRelease(HttpServletRequest request, SC_WORKFLOW_RELEASE release) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | |
| | | String[] linkOrderIds = request.getParameterValues("linkOrderId"); |
| | | String[] linkDeviceIds = request.getParameterValues("linkDeviceId"); |
| | | |
| | | |
| | | if(StringUtil.isBlank(flowId)||flowId.equals(orderId)){ |
| | | String sql = " update sc_workflow_release set flow_id = :orderId where id=:orderId "; |
| | | baseDao.execute(sql, new SqlParameter("orderId",orderId)); |
| | |
| | | //saveSysInfo(orderId,sysInfoJson); |
| | | return orderId; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SysInfoMsg doOrganizationDSL(HttpServletRequest request){ |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | sql = " update DSL_ORDER_LINK set FLOW_ID = :flowId where FLOW_ID = :orderId "; |
| | | baseDao.execute(sql, param); |
| | | } |
| | | |
| | | |
| | | //增加处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("创建发布:"+userName+"创建了发布流程"); |
| | |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(flowId); |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | return msg; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map getDSLInfo(String configureId, String thirdCateId, String flowId, String partnerId) { |
| | | SqlParameter param = new SqlParameter(); |
| | |
| | | .addValue("thirdCateId", thirdCateId) |
| | | .addValue("flowId", flowId) |
| | | .addValue("partnerId", partnerId); |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | //查询dsl基本信息 |
| | | builder.append(" select id,pid,'name',note,lv from CONFIG_DSL where state=1 and THIRD_CATEGORY_ID=:thirdCateId and PARTNER_ID=:partnerId order by lv,sort_id asc "); |
| | |
| | | root.put("versionNo",versionNo); |
| | | return root; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map getNextNode(Map<String, String> params) { |
| | | String nodeId = params.get("nodeId"); |
| | |
| | | nextNode.put("curTemplateId", templateId); |
| | | return nextNode; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SysInfoMsg doApproveAssign(HttpServletRequest request) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | return doReleaseNotice(request); |
| | | /*}*/ |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SysInfoMsg doReleaseNotice(HttpServletRequest request) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | Map user = WebUtil.getLoginUser(request).getLoginUser(); |
| | | String userName = user.get("ZSXM").toString(); |
| | | String userId = user.get("Id").toString(); |
| | | |
| | | |
| | | SC_WORKFLOW_RELEASE release = new SC_WORKFLOW_RELEASE(orderId).getInstanceById(); |
| | | |
| | | |
| | | List<Map> userList = new ArrayList<Map>(); |
| | | Map executorMap = new HashMap(); |
| | | executorMap.put("USER_ID", release.getExecute_id()); |
| | | executorMap.put("USER_NAME", release.getExecute_name()); |
| | | executorMap.put("IS_ADMIN", "1"); |
| | | userList.add(executorMap); |
| | | |
| | | |
| | | WorkFlowSupportEntity support = new WorkFlowSupportEntity(); |
| | | support.setFlowId(flowId); |
| | | support.setNodeId(nodeId); |
| | |
| | | support.setNextNodeTemplateId(Constants.RELEASE_EXECUTE); |
| | | support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE); |
| | | SysInfoMsg msg = workFlowSupportService.doOrderFlow(support); |
| | | |
| | | |
| | | //增加处理记录 |
| | | String dealUserName=""; |
| | | for(Map map:userList){ |
| | |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(flowId); |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | return msg; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SysInfoMsg doReleaseExec(HttpServletRequest request) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | support.setUserName(userName); |
| | | support.setUserId(userId); |
| | | support.setNote(flowNote); |
| | | |
| | | |
| | | support.setEverDealflag(true); |
| | | support.setEverNodeTemplateId(Constants.RELEASE_APPROVE); |
| | | support.setNextNodeTemplateId(Constants.RELEASE_APPROVAL); |
| | | support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE); |
| | | SysInfoMsg msg = workFlowSupportService.doOrderFlow(support); |
| | | |
| | | |
| | | //查询发布审批主负责人() |
| | | Map<String, String> lastNode = changeFacade.queryUserByTemplateId(flowId, Constants.RELEASE_APPROVE); |
| | | |
| | | |
| | | //增加处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("工单流转:"+userName+"将工单发送给了"+lastNode.get("CURRENT_DEALER_NAME")); |
| | |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(flowId); |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | return msg; |
| | | } |
| | | |
| | |
| | | String nodeId = request.getParameter("nodeId"); |
| | | String flowId = request.getParameter("flowId"); |
| | | String flowNote = request.getParameter("flowNote"); |
| | | |
| | | |
| | | Map user = WebUtil.getLoginUser(request).getLoginUser(); |
| | | String userName = user.get("ZSXM").toString(); |
| | | String userId = user.get("Id").toString(); |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void doOrderFinish(HttpServletRequest request){ |
| | | String orderId = request.getParameter("orderId"); |
| | | String nodeId = request.getParameter("nodeId"); |
| | | String flowNote = request.getParameter("flowNote"); |
| | | String nodeId = request.getParameter("nodeId"); |
| | | String flowNote = request.getParameter("flowNote"); |
| | | String sucessFlag = request.getParameter("sucessFlag"); |
| | | if (StringUtil.isBlank(sucessFlag)) { |
| | | sucessFlag = "1"; |
| | |
| | | support.setFlowEndflag(true); |
| | | support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE); |
| | | workFlowSupportService.doOrderFlow(support); |
| | | |
| | | |
| | | //保存dsl操作记录 |
| | | dslFacade.saveConfigDslDealRecord(flowId); |
| | | //更新dsl关系 |
| | |
| | | record.setBusiness_id(flowId); |
| | | recordService.addRecord(record); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List querySysInfoList(String orderId) { |
| | | String sql = " select * from SC_WORKFLOW_RELEASE_BUSINESS_SYS where BUSINESS_ID = :orderId" ; |
| | | return baseDao.queryForList(sql,new SqlParameter().addValue("orderId", orderId)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public boolean doAnswer(HttpServletRequest request) { |
| | | String flowId = request.getParameter("flowId"); |
| | |
| | | boolean flag = workflowCoreService.answerNode(base, node, entity); |
| | | return flag; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SysInfoMsg doSendBack(HttpServletRequest request) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | SysInfoMsg msg = workFlowSupportService.doOrderSendback(support); |
| | | return msg; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void doCloseFlow(HttpServletRequest request) { |
| | | String orderId = request.getParameter("orderId"); |
| | |
| | | WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById(); |
| | | workflowCoreService.finishNode(base, node, finishEntity); |
| | | workflowCoreService.closeWorkFlow(base); |
| | | |
| | | |
| | | String flowId = base.getId(); |
| | | //保存dsl操作记录 |
| | | dslFacade.saveConfigDslDealRecord(flowId); |
| | |
| | | changeFacade.saveRelationWhenClose(flowId); |
| | | //删除变更中的配置关系 |
| | | changeFacade.delRelationWhenClose(flowId); |
| | | |
| | | |
| | | //增加处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("工单关闭:"+userName+"关闭了工单"); |
| | |
| | | record.setBusiness_id(node.getFlowid()); |
| | | recordService.addRecord(record); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map getSurveyNum(HttpServletRequest request) { |
| | | Map result = new HashMap(); |
| | | //String partnerId = WebUtil.getLoginedPartnerId(request); |
| | | SqlParameter param = new SqlParameter(); |
| | | param.addValue("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE); |
| | | |
| | | |
| | | List<Map> projects = new ArrayList<Map>(); |
| | | //projects = WebUtil.getProjects(request); |
| | | StringBuilder builder = new StringBuilder(); |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Map> queryRealseData(HttpServletRequest request) { |
| | | StringBuilder builder = new StringBuilder(); |
| | |
| | | String sql = "select count(*) from ( " + builder.toString() + " ) t" ; |
| | | return baseDao.queryForInteger(sql.toString(),paramMap); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 服务台工单列表 |
| | | * @param request |
| | |
| | | String nodeTemplateId = request.getParameter("nodeTemplateId"); |
| | | String nodeTempId = request.getParameter("nodeTempId"); |
| | | |
| | | |
| | | |
| | | /*List<Map> projects = new ArrayList<Map>(); |
| | | if(StringUtil.notEmpty(customerId) && StringUtil.notEmpty(projectId)) { |
| | | |
| | | |
| | | } else if (StringUtil.notEmpty(customerId) && !StringUtil.notEmpty(projectId)) { |
| | | //通过当前客户查询出所有的项目信息 |
| | | projects = slaProjectFacade.queryProjects(request, customerId); |
| | | } else { |
| | | projects = WebUtil.getProjects(request); |
| | | }*/ |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append(" select n.FLOWSTATE NODESTATE,b.CURRENT_DEALER_NAME,b.PROJECT_NAME,r.RELEASE_REASON,b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, "); |
| | | builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE "); |
| | |
| | | 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.notEmpty(customerId) && StringUtil.notEmpty(projectId)) { |
| | | builder.append(" AND b.CUSTOMER_ID = :customerId AND b.PROJECT_ID = :projectId "); |
| | | } else { |
| | | builder = getProjectSql(builder,projects); |
| | | }*/ |
| | | |
| | | |
| | | |
| | | |
| | | //客户 |
| | | if(StringUtil.isNotBlank(customerId)) { |
| | | builder.append(" AND b.CUSTOMER_ID = :customerId "); |
| | |
| | | //下属单位 |
| | | if(StringUtil.isNotBlank(subCustomerId)) { |
| | | builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId "); |
| | | |
| | | |
| | | } |
| | | //工单编号 |
| | | String orderCode = request.getParameter("orderCode"); |
| | |
| | | if(StringUtil.notEmpty(nodeTempId)) { |
| | | builder.append(" AND EXISTS (SELECT n.ID FROM WORKFLOW_NODE n WHERE b.CURRENT_NODE_ID = n.ID AND n.NODE_TEMPLATE_ID = :nodeTempId ) "); |
| | | } |
| | | |
| | | builder.append(" order by b.CREATETIME desc "); |
| | | |
| | | builder.append(" order by b.CREATETIME desc "); |
| | | return builder; |
| | | } |
| | | |