| | |
| | | package cn.ksource.web.facade.zc; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import cn.ksource.beans.CUSTOMER_CONTACTS; |
| | | import cn.ksource.beans.GG_MESSAGE; |
| | | import cn.ksource.beans.GG_RECORD; |
| | | import cn.ksource.beans.SC_WORKFLOW_INCIDENT; |
| | | import cn.ksource.beans.SC_WORKFLOW_INCIDENT_LOCAL; |
| | | import cn.ksource.beans.WORKFLOW_BASE; |
| | | import cn.ksource.beans.WORKFLOW_NODE; |
| | | import cn.ksource.beans.*; |
| | | import cn.ksource.core.dao.BaseDao; |
| | | import cn.ksource.core.dao.SqlParameter; |
| | | import cn.ksource.core.page.PageInfo; |
| | | import cn.ksource.core.util.AjaxUtil; |
| | | import cn.ksource.core.util.ConvertUtil; |
| | | import cn.ksource.core.util.DateUtil; |
| | | import cn.ksource.core.util.NumberUtil; |
| | | import cn.ksource.core.util.StringUtil; |
| | | import cn.ksource.core.util.*; |
| | | import cn.ksource.core.web.SysInfoMsg; |
| | | 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.*; |
| | | import cn.ksource.web.Constants; |
| | | import cn.ksource.web.controller.wechat.util.WechatConstants; |
| | | import cn.ksource.web.facade.incident.IncidentFacade; |
| | |
| | | import cn.ksource.web.service.file.FileService; |
| | | import cn.ksource.web.service.order.OrderService; |
| | | import cn.ksource.web.service.record.RecordService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service("zcywFacade") |
| | | public class ZcywFacadeImpl implements ZcywFacade { |
| | | |
| | | |
| | | @Autowired |
| | | private BaseDao baseDao; |
| | | |
| | | |
| | | @Autowired |
| | | private WorkOrderCodeService workOrderCodeService; |
| | | |
| | | |
| | | @Autowired |
| | | private FileService fileService; |
| | | |
| | | |
| | | @Autowired |
| | | private WorkflowBusinessService workflowBusinessService; |
| | | |
| | | |
| | | @Autowired |
| | | private WorkflowCoreService workflowCoreService; |
| | | |
| | | |
| | | @Autowired |
| | | private MessageFacade messageFacade; |
| | | |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private RecordService recordService; |
| | | |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | | |
| | | |
| | | @Autowired |
| | | private DeviceService deviceService; |
| | | |
| | | |
| | | @Autowired |
| | | private IncidentFacade incidentFacade; |
| | | @Autowired |
| | |
| | | |
| | | @Override |
| | | public int queryMyZcywCount(Map<String, String> params) { |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE)); |
| | | |
| | | |
| | | /** |
| | | * 查询逻辑 |
| | | * 1.如果节点状态选择为全部,则查询节点表中处理人是我的,或者处理角色是我的并且没有分配处理人的, |
| | |
| | | * 3.如果节点状态选择为进行中,则查询节点表中处理人是我的 (不需要过滤,因为一个工单进行中节点,只会有一个) |
| | | * 4.如果节点状态查询未已处理,则查询节点表中处理人是我的,需要过滤(因为一个节点一个人可以处理多次,通过节点表作为主表查询出来的工单会有重复) |
| | | */ |
| | | |
| | | |
| | | String flowstate = params.get("flowstate"); |
| | | if(StringUtil.notEmpty(flowstate)) { |
| | | if(flowstate.equals("1")) { |
| | | builder.append(" SELECT DISTINCT D.* FROM ( "); |
| | | //查询处理人是我的 |
| | | builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jddcl "); |
| | | builder.append(" SELECT B.ID,B.WFNAME,B.BUSINESSTYPE,B.WFSTATE,B.WORKFLOWTYPE,B.CREATERNAME,B.CREATERID,B.CREATETIME,B.ENDTIME,B.MAINFLOWID,B.CURRENT_NODE_NAME,B.CURRENT_NODE_ID,B.DEAL_TYPE,B.CURRENT_DEALER_ID,B.CURRENT_DEALER_NAME,B.CURRENT_DEAL_ROLEIDA,B.CURRENT_DEAL_ROLENAME,B.WF_TEMPLATE_ID,B.BUSINESS_ID,B.ORDER_CODE,B.CUSTOMER_ID,B.CUSTOMER_NAME,B.PROJECT_ID,B.PROJECT_NAME,B.SUB_CUSTOMER_NAME,B.SUB_CUSTOMER_ID,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jddcl "); |
| | | String status = params.get("status"); |
| | | if(StringUtil.notEmpty(status)) { |
| | | if(status.equals("0")){ |
| | |
| | | params.put("jddcl", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE)); |
| | | } else if(flowstate.equals("2")) { |
| | | builder.append(" SELECT DISTINCT D.* FROM ( "); |
| | | builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdjxz"); |
| | | builder.append(" SELECT B.ID,B.WFNAME,B.BUSINESSTYPE,B.WFSTATE,B.WORKFLOWTYPE,B.CREATERNAME,B.CREATERID,B.CREATETIME,B.ENDTIME,B.MAINFLOWID,B.CURRENT_NODE_NAME,B.CURRENT_NODE_ID,B.DEAL_TYPE,B.CURRENT_DEALER_ID,B.CURRENT_DEALER_NAME,B.CURRENT_DEAL_ROLEIDA,B.CURRENT_DEAL_ROLENAME,B.WF_TEMPLATE_ID,B.BUSINESS_ID,B.ORDER_CODE,B.CUSTOMER_ID,B.CUSTOMER_NAME,B.PROJECT_ID,B.PROJECT_NAME,B.SUB_CUSTOMER_NAME,B.SUB_CUSTOMER_ID,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdjxz"); |
| | | String status = params.get("status"); |
| | | if(StringUtil.notEmpty(status)) { |
| | | if(status.equals("0")){ |
| | |
| | | params.put("jdjxz", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_DOING)); |
| | | }else { |
| | | builder.append(" SELECT DISTINCT D.* FROM ( "); |
| | | builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdywc "); |
| | | builder.append(" SELECT B.ID,B.WFNAME,B.BUSINESSTYPE,B.WFSTATE,B.WORKFLOWTYPE,B.CREATERNAME,B.CREATERID,B.CREATETIME,B.ENDTIME,B.MAINFLOWID,B.CURRENT_NODE_NAME,B.CURRENT_NODE_ID,B.DEAL_TYPE,B.CURRENT_DEALER_ID,B.CURRENT_DEALER_NAME,B.CURRENT_DEAL_ROLEIDA,B.CURRENT_DEAL_ROLENAME,B.WF_TEMPLATE_ID,B.BUSINESS_ID,B.ORDER_CODE,B.CUSTOMER_ID,B.CUSTOMER_NAME,B.PROJECT_ID,B.PROJECT_NAME,B.SUB_CUSTOMER_NAME,B.SUB_CUSTOMER_ID,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdywc "); |
| | | String status = params.get("status"); |
| | | if(StringUtil.notEmpty(status)) { |
| | | if(status.equals("0")){ |
| | |
| | | } else { |
| | | builder.append(" SELECT DISTINCT D.* FROM ( "); |
| | | //查询处理人是我的 |
| | | builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId "); |
| | | builder.append(" SELECT B.ID,B.WFNAME,B.BUSINESSTYPE,B.WFSTATE,B.WORKFLOWTYPE,B.CREATERNAME,B.CREATERID,B.CREATETIME,B.ENDTIME,B.MAINFLOWID,B.CURRENT_NODE_NAME,B.CURRENT_NODE_ID,B.DEAL_TYPE,B.CURRENT_DEALER_ID,B.CURRENT_DEALER_NAME,B.CURRENT_DEAL_ROLEIDA,B.CURRENT_DEAL_ROLENAME,B.WF_TEMPLATE_ID,B.BUSINESS_ID,B.ORDER_CODE,B.CUSTOMER_ID,B.CUSTOMER_NAME,B.PROJECT_ID,B.PROJECT_NAME,B.SUB_CUSTOMER_NAME,B.SUB_CUSTOMER_ID,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.SLA_ID,C.THIRD_CATEGORY_ID,C.TYPE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_INCIDENT_LOCAL C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId "); |
| | | String status = params.get("status"); |
| | | if(StringUtil.notEmpty(status)) { |
| | | if(status.equals("0")){ |
| | |
| | | builder.append(")D"); |
| | | builder.append(" WHERE D.WFSTATE != :ysc "); |
| | | } |
| | | |
| | | |
| | | builder = getMyZcSql(builder,params); |
| | | |
| | | |
| | | |
| | | |
| | | builder.append(" AND D.BUSINESSTYPE = :businessType"); |
| | | params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)); |
| | | |
| | | |
| | | StringBuilder newBuild = new StringBuilder(); |
| | | newBuild.append("SELECT COUNT(*) FROM ( "); |
| | | newBuild.append(builder.toString()); |
| | | newBuild.append(") E"); |
| | | |
| | | |
| | | return baseDao.queryForInteger(newBuild.toString(),params); |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo queryMyZcywData(PageInfo pageInfo, |
| | | Map<String, String> params) { |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE)); |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询逻辑 |
| | | * 1.如果节点状态选择为全部,则查询节点表中处理人是我的,或者处理角色是我的并且没有分配处理人的, |
| | |
| | | * 3.如果节点状态选择为进行中,则查询节点表中处理人是我的 (不需要过滤,因为一个工单进行中节点,只会有一个) |
| | | * 4.如果节点状态查询未已处理,则查询节点表中处理人是我的,需要过滤(因为一个节点一个人可以处理多次,通过节点表作为主表查询出来的工单会有重复) |
| | | */ |
| | | |
| | | |
| | | String flowstate = params.get("flowstate"); |
| | | if(StringUtil.notEmpty(flowstate)) { |
| | | if(flowstate.equals("1")) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | builder.append(")D"); |
| | | builder.append(" WHERE D.FLOWSTATE = :jddcl "); |
| | | params.put("jddcl", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE)); |
| | |
| | | builder.append(" WHERE D.WFSTATE != :ysc "); |
| | | } |
| | | builder = getMyZcSql(builder,params); |
| | | |
| | | |
| | | builder.append(" AND D.BUSINESSTYPE = :businessType"); |
| | | params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)); |
| | | |
| | | |
| | | String pageSize = pageInfo.getPageSize(); |
| | | String currPage = pageInfo.getCurrPage(); |
| | | if(!StringUtil.notEmptyNum(pageSize)){ |
| | |
| | | } |
| | | int begin = Integer.valueOf(currPage); |
| | | int size = Integer.valueOf(pageSize); |
| | | |
| | | |
| | | if(!StringUtil.notEmpty(flowstate)) { |
| | | builder.append( " ORDER BY D.CREATETIME DESC" ); |
| | | List<Map> result = baseDao.queryForList(builder.toString(),params); |
| | |
| | | list.add(flowId); |
| | | } |
| | | } |
| | | |
| | | |
| | | if(cacheMap.size()>0) { |
| | | for(String str : list) { |
| | | resultList.add(cacheMap.get(str)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | int infoCount = resultList.size(); |
| | | int bin = (begin-1)* size ; |
| | | int end = (begin-1)* size + size; |
| | |
| | | return info; |
| | | } |
| | | } |
| | | |
| | | |
| | | public StringBuilder getMyZcSql(StringBuilder builder,Map<String, String> params){ |
| | | String status = params.get("status"); |
| | | if(StringUtil.notEmpty(status)) { |
| | |
| | | builder.append(" AND D.WFSTATE = :status "); |
| | | } |
| | | } |
| | | |
| | | |
| | | String orderName = params.get("orderName"); |
| | | if(StringUtil.notEmpty(orderName)) { |
| | | builder.append(" AND D.WFNAME LIKE :orderName "); |
| | | params.put("orderName", "%"+orderName+"%"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String hjName = params.get("hjName"); |
| | | if(StringUtil.notEmpty(hjName)) { |
| | | builder.append(" AND D.CURRENT_NODE_NAME LIKE :hjName "); |
| | | params.put("hjName", "%"+hjName+"%"); |
| | | } |
| | | |
| | | |
| | | String orderCode = params.get("orderCode"); |
| | | if(StringUtil.notEmpty(orderCode)) { |
| | | builder.append(" AND D.ORDER_CODE LIKE :orderCode"); |
| | | params.put("orderCode", "%"+orderCode+"%"); |
| | | } |
| | | |
| | | |
| | | String contract = params.get("contract"); |
| | | if(StringUtil.notEmpty(contract)) { |
| | | builder.append(" AND D.CONTACT_NAME LIKE :contract "); |
| | | params.put("contract", "%"+contract+"%"); |
| | | } |
| | | |
| | | |
| | | String pri = params.get("pri"); |
| | | if(StringUtil.notEmpty(pri)) { |
| | | String[] pris = pri.split(","); |
| | |
| | | builder.append(")"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String dg = params.get("dg"); |
| | | if(StringUtil.notEmpty(dg)) { |
| | | String[] dgs = dg.split(","); |
| | |
| | | builder.append(")"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String type = params.get("type"); |
| | | if(StringUtil.notEmpty(type)) { |
| | | String[] types = type.split(","); |
| | |
| | | builder.append(")"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String sl = params.get("sl"); |
| | | if(StringUtil.notEmpty(sl)) { |
| | | String[] sls = sl.split(","); |
| | |
| | | |
| | | @Override |
| | | public int zcywCountForFwt(Map<String, String> params) { |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append("SELECT COUNT(WB.ID) "); |
| | | builder.append("FROM WORKFLOW_BASE WB,SC_WORKFLOW_INCIDENT_LOCAL B WHERE WB.BUSINESS_ID = B.ID "); |
| | | builder.append(" AND WB.BUSINESSTYPE = :businessType "); |
| | | params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)); |
| | | |
| | | |
| | | builder = getZcSql(builder,params); |
| | | return baseDao.queryForInteger(builder.toString(), params); |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo zcywDataForFwt(PageInfo pageInfo, Map<String, String> params) { |
| | | |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE, "); |
| | | builder.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.ANSWER_TIMEOUT,B.DEAL_TIMEOUT "); |
| | | builder.append("FROM WORKFLOW_BASE WB,SC_WORKFLOW_INCIDENT_LOCAL B WHERE WB.BUSINESS_ID = B.ID "); |
| | | builder.append(" AND WB.BUSINESSTYPE = :businessType "); |
| | | params.put("businessType", ConvertUtil.obj2StrBlank( Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)); |
| | | |
| | | |
| | | builder = getZcSql(builder,params); |
| | | |
| | | |
| | | builder.append( " ORDER BY WB.CREATETIME DESC "); |
| | | |
| | | |
| | | |
| | | |
| | | return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); |
| | | } |
| | | public StringBuilder getZcSql(StringBuilder builder,Map<String, String> params){ |
| | |
| | | if(StringUtil.notEmpty(customer_id)) { |
| | | builder.append(" AND B.CUSTOMER_ID = :customer_id "); |
| | | } |
| | | |
| | | |
| | | String orderName = params.get("orderName"); |
| | | if(StringUtil.notEmpty(orderName)) { |
| | | builder.append(" AND WB.WFNAME LIKE :orderName "); |
| | | params.put("orderName", "%"+orderName+"%"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String orderStatus = params.get("orderStatus"); |
| | | if(StringUtil.notEmpty(orderStatus)) { |
| | | builder.append(" AND WB.WFSTATE = :orderStatus "); |
| | | params.put("orderStatus", orderStatus); |
| | | } |
| | | |
| | | |
| | | String orderCode = params.get("orderCode"); |
| | | if(StringUtil.notEmpty(orderCode)) { |
| | | builder.append(" AND WB.ORDER_CODE LIKE :orderCode "); |
| | |
| | | } |
| | | return builder; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map queryZcMsg(HttpServletRequest request) { |
| | | Map result = new HashMap(); |
| | |
| | | String customerName = new String(); |
| | | String subCustomerId = new String(); |
| | | String subCustomerName = new String(); |
| | | |
| | | |
| | | String userId = WebUtil.getLoginedUserId(request); |
| | | String selectSql1 = "SELECT A.CUSTOMER_ID FROM SC_CUSTOMER_ZC_UESR A WHERE A.USER_ID = :userId "; |
| | | |
| | | |
| | | Map zcz = baseDao.queryForMap(selectSql1,new SqlParameter("userId",userId)); |
| | | if(null!=zcz && zcz.size()>0) { |
| | | String cId = ConvertUtil.obj2StrBlank(zcz.get("CUSTOMER_ID")); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | result.put("customerId", customerId); |
| | | result.put("customerName", customerName); |
| | | result.put("subCustomerId", subCustomerId); |
| | |
| | | public List queryAllZcry(HttpServletRequest request) { |
| | | String subCustomerId = request.getParameter("subCustomerId"); |
| | | String sql = "SELECT * FROM SC_CUSTOMER_ZC_UESR WHERE CUSTOMER_ID = :subCustomerId "; |
| | | |
| | | |
| | | return baseDao.queryForList(sql,new SqlParameter("subCustomerId",subCustomerId)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map saveZcyw(HttpServletRequest request,SC_WORKFLOW_INCIDENT_LOCAL sc_workflow_incident_local) { |
| | | Map resultMap = new HashMap(); |
| | | Map user = WebUtil.getLoginUser(request).getLoginUser(); |
| | | |
| | | |
| | | |
| | | |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | |
| | | |
| | | String serivceListId = request.getParameter("serivceListId"); |
| | | String serivceList = request.getParameter("serivceList"); |
| | | String first_category_id = new String(); |
| | |
| | | third_category_id = serivceListIds[2]; |
| | | third_category_name = serivceLists[2]; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String dealUserId = userId; |
| | | String dealUserName = userName; |
| | | |
| | | |
| | | String type = request.getParameter("type"); |
| | | String state = Constants.SC_WORKFLOW_INCIDENT_LOCAL_STATE_FPDZCGCS; |
| | | String node_template_id = Constants.ZCYW_FWSL; |
| | |
| | | dealUserId = userMsg[0]; |
| | | dealUserName = userMsg[1]; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String order_code = workOrderCodeService.getIncidentOrderCode(); |
| | | |
| | | |
| | | long createTime = DateUtil.getCurrentDate14(); |
| | | |
| | | |
| | | |
| | | |
| | | //响应时间为分钟 |
| | | Long requestAnswerTime = sc_workflow_incident_local.getRequest_answer_time(); |
| | | Long dealTime = sc_workflow_incident_local.getRequest_deal_time(); |
| | | if(null == requestAnswerTime) { |
| | | requestAnswerTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | if(null == dealTime) { |
| | | dealTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | //处理时间为小时 |
| | | |
| | | |
| | | long answerTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(requestAnswerTime),2); |
| | | long dealTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(dealTime),1); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | sc_workflow_incident_local.setFirst_category_id(first_category_id).setFirst_category_name(first_category_name).setSecond_category_id(second_category_id) |
| | | .setSecond_category_name(second_category_name).setThird_category_id(third_category_id).setThird_category_name(third_category_name).setCreate_user_id(userId).setCreate_user_name(userName) |
| | | .setCreate_time(createTime); |
| | | String id = StringUtil.getUUID(); |
| | | sc_workflow_incident_local.setId(id).setState(ConvertUtil.obj2Integer(state)).setOrder_code(order_code).setFlow_name(sc_workflow_incident_local.getName()).setAnswer_timeout(2).setAnswer_timeout_time(answerTimeoutTime).setDeal_timeout(2).setDeal_timeout_time(dealTimeoutTime); |
| | | sc_workflow_incident_local.insert(); |
| | | |
| | | |
| | | String bz = request.getParameter("bz"); |
| | | //启动流程 |
| | | WORKFLOW_BASE base = workflowBusinessService.startIncident_LocalWorkflow(id,bz); |
| | | |
| | | |
| | | NodeDealEntity entity = new NodeDealEntity(); |
| | | entity.setDealer_type(3); |
| | | entity.setBefore_Dealer_type(2); |
| | |
| | | map.put("USER_ID", dealUserId); |
| | | map.put("USER_NAME", dealUserName); |
| | | map.put("IS_ADMIN", "1"); |
| | | |
| | | |
| | | dealerList.add(map); |
| | | |
| | | |
| | | entity.setDealerList(dealerList); |
| | | |
| | | |
| | | workflowBusinessService.toNode(base, node_template_id, entity); |
| | | |
| | | |
| | | String hasMsg = request.getParameter("hasMsg"); |
| | | /*if(StringUtil.notEmptyNum(hasMsg) && hasMsg.equals("2")) { |
| | | //保存联系人的信息 |
| | |
| | | .setIs_satis(0).setState(1).setIsemail(1).setIsphone(1).setAllow_login(2).setSub_customer_id(sc_workflow_incident_local.getSub_customer_id()).setSub_customer_name(sc_workflow_incident_local.getSub_customer_name()); |
| | | project_contacts.insert(); |
| | | }*/ |
| | | |
| | | |
| | | |
| | | |
| | | String wxUrl = WechatConstants.ORDER_INCIDENT_DETAIL_ADDRESS+"?orderId="+base.getBusiness_id()+"&orderType="+Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL; |
| | | //发送消息 |
| | | GG_MESSAGE message = new GG_MESSAGE(); |
| | |
| | | .setOrder_code(order_code) |
| | | .setType(Constants.GG_MESSAGE_TYPE_XCYW); |
| | | messageFacade.doSendMessage(message, dealerList); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //所有的业务主键都是flowId(即流程主表的id) |
| | | String flowId = base.getId(); |
| | | |
| | | |
| | | |
| | | |
| | | //提交工单时添加关联工单 |
| | | String[] orderId = request.getParameterValues("orderId"); |
| | | orderService.saveLinkOrders(flowId,orderId,request); |
| | | |
| | | |
| | | //提交工单时上传文档附件 |
| | | // /fileService.uploadFile(request, flowId, flowId, null, null); |
| | | |
| | | |
| | | |
| | | |
| | | //提交工单时上传文档附件 |
| | | fileService.uploadFile(request,flowId,flowId,null,null,Constants.GG_FOLDERS_ZCYWSJFOLDERS,Constants.FILE_STATE_SHTG,null); |
| | | |
| | | |
| | | //提交工单时添加关联设备 |
| | | String[] deviceId = request.getParameterValues("deviceId"); |
| | | deviceService.saveLinkDevices(flowId,deviceId); |
| | | |
| | | |
| | | |
| | | |
| | | //添加处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("创建事件:"+userName+"创建了驻场运维事件"); |
| | |
| | | resultMap.put("incidentId", id); |
| | | return resultMap; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void doEndTask(HttpServletRequest request) { |
| | | String incidentId = request.getParameter("incidentId"); |
| | | String solveWay = request.getParameter("solveWay"); |
| | | String solveWayName = request.getParameter("solveWayName"); |
| | | |
| | | |
| | | |
| | | |
| | | String resolve = request.getParameter("resolve"); |
| | | String suggest = request.getParameter("suggest"); |
| | | String bz = request.getParameter("bz"); |
| | | Map user=new HashMap(); |
| | | |
| | | |
| | | if(request.getParameter("isWechat")!=null && request.getParameter("isWechat").equals("1")){ |
| | | user = WebUtil.getEngineerMsg(request); |
| | | }else{ |
| | |
| | | } |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | long resolveTime = DateUtil.getCurrentDate14(); |
| | | |
| | | |
| | | String state = Constants.SC_WORKFLOW_INCIDENT_LOCAL_STATE_YJJ; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | Map result = getHs(incidentId,baseDao,resolveTime); |
| | | //获取解决耗时 |
| | | double sjjjsj = ConvertUtil.obj2Double(result.get("sjjjsj")); |
| | | |
| | | |
| | | String deal_timeout = ConvertUtil.obj2StrBlank(result.get("deal_timeout")); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String updateSql = "UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET STATE = :state , RESOLVE_USER_ID = :userId,RESOLVE_USER_NAME = :userName,RESOLVE_TIME = :resolveTime,DEAL_USE_TIME = :deal_use_time,RESOLVE_TYPE_ID = :solveWay,RESOLVE_TYPE_NAME = :solveWayName,RESOLVE = :resolve,SUGGEST = :suggest,DEAL_TIMEOUT = :deal_timeout WHERE ID = :incidentId "; |
| | | |
| | | |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("state", state); |
| | | paramMap.put("userId", userId); |
| | |
| | | paramMap.put("incidentId", incidentId); |
| | | paramMap.put("deal_use_time", sjjjsj); |
| | | paramMap.put("deal_timeout", deal_timeout); |
| | | |
| | | |
| | | |
| | | |
| | | baseDao.execute(updateSql, paramMap); |
| | | |
| | | |
| | | //=====================执行结束流程(事件已解决) |
| | | WORKFLOW_BASE base = new WORKFLOW_BASE(new SC_WORKFLOW_INCIDENT_LOCAL(incidentId).getInstanceById().getFlow_id()).getInstanceById(); |
| | | |
| | | |
| | | WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(base.getCurrent_node_id()).getInstanceById(); |
| | | |
| | | |
| | | //事件响应 |
| | | NodeAnswerEntity entity = new NodeAnswerEntity(); |
| | | entity.setUser_id(userId); |
| | | entity.setUser_name(userName); |
| | | workflowCoreService.answerNode(base, workflow_node, entity); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //判断是否是第一次响应,如果是第一次响应的话,则更新事件表中实际响应时间(第一次响应时间) |
| | | String selectSql = "SELECT ANSWER_TIME,CREATE_TIME,ANSWER_TIMEOUT_TIME FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE ID = :incidentId"; |
| | | Map map = baseDao.queryForMap(selectSql,new SqlParameter("incidentId",incidentId)); |
| | | String answerTime = ConvertUtil.obj2StrBlank(map.get("ANSWER_TIME")); |
| | | long create_time = ConvertUtil.obj2Long(map.get("CREATE_TIME")); |
| | | |
| | | |
| | | if(!StringUtil.notEmpty(answerTime)) { |
| | | StringBuilder builder = new StringBuilder("UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET "); |
| | | long answer_time = DateUtil.getCurrentDate14(); |
| | | //判断是否响应超时 |
| | | long answer_timeout_time = ConvertUtil.obj2Long(map.get("ANSWER_TIMEOUT_TIME")); |
| | | |
| | | |
| | | String answer_timeout = "2"; |
| | | if(answer_time>answer_timeout_time) { |
| | | answer_timeout = "1"; |
| | | } |
| | | |
| | | |
| | | builder.append(" ANSWER_TIME = :answerTime,ANSWER_USE_TIME = :answer_user_time,ANSWER_TIMEOUT = :answer_timeout "); |
| | | paramMap.put("answerTime",answer_time); |
| | | paramMap.put("answer_timeout", answer_timeout); |
| | | |
| | | |
| | | //计算第一次响应时间和创建事件的事件差 将时间差转化为分钟 |
| | | long seconds = DateUtil.getSecondsFormDate2Date(create_time, answer_time); |
| | | //将秒转化为分钟 |
| | | double sjxysj = NumberUtil.div(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(60), 1); |
| | | |
| | | |
| | | paramMap.put("answer_user_time", sjxysj); |
| | | builder.append(" WHERE ID = :incidentId"); |
| | | paramMap.put("incidentId", incidentId); |
| | | baseDao.execute(builder.toString(), paramMap); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | NodeFinishEntity finishEntity = new NodeFinishEntity(); |
| | | finishEntity.setDeal_result(1); |
| | | finishEntity.setDeal_note_title("流程结束"); |
| | | finishEntity.setDeal_note(bz); |
| | | |
| | | |
| | | |
| | | |
| | | //判断是否能够结束节点 |
| | | boolean canFinish = workflowCoreService.finishNode(base, workflow_node, finishEntity); |
| | | if (canFinish) { |
| | | //关闭流程 |
| | | workflowCoreService.finishWorkFlow(base); |
| | | } |
| | | } |
| | | //=====================执行结束流程完毕(事件已解决) |
| | | |
| | | |
| | | |
| | | |
| | | String flowId = base.getId(); |
| | | |
| | | |
| | | //增加事件处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("解决事件:"+userName+"解决了事件"); |
| | |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(flowId); |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | private Map getHs(String incidentId,BaseDao baseDao,long resolveTime) { |
| | | String selectCreateTime = "SELECT CREATE_TIME,DEAL_TIMEOUT_TIME FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE ID = :id "; |
| | | Map map = baseDao.queryForMap(selectCreateTime,new SqlParameter("id",incidentId)); |
| | | long create_time = ConvertUtil.obj2Long(map.get("CREATE_TIME")); |
| | | long deal_timeout_time = ConvertUtil.obj2Long(map.get("DEAL_TIMEOUT_TIME")); |
| | | |
| | | |
| | | //计算第解决时间和创建事件的事件差 将时间差转化为小时 |
| | | long jjSeconds = DateUtil.getSecondsFormDate2Date(create_time, resolveTime); |
| | | |
| | | |
| | | //将秒转化为小时 |
| | | double sjjjsj = NumberUtil.div(ConvertUtil.obj2Double(jjSeconds), ConvertUtil.obj2Double(3600), 2); |
| | | |
| | | |
| | | Map result = new HashMap(); |
| | | result.put("sjjjsj", sjjjsj); |
| | | |
| | | |
| | | if(resolveTime>deal_timeout_time) { |
| | | result.put("deal_timeout", 1); |
| | | |
| | | |
| | | } else { |
| | | result.put("deal_timeout", 2); |
| | | } |
| | | |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 执行关闭事件操作 |
| | | */ |
| | |
| | | String incidentId = request.getParameter("incidentId"); |
| | | String solveWay = request.getParameter("solveWay"); |
| | | String solveWayName = request.getParameter("solveWayName"); |
| | | |
| | | |
| | | |
| | | |
| | | String resolve = request.getParameter("resolve"); |
| | | String bz = request.getParameter("bz"); |
| | | |
| | | |
| | | String merged_business_id = new String(); |
| | | |
| | | |
| | | if(solveWay.equals(Constants.SJCF)) { |
| | | merged_business_id = request.getParameter("merged_business_id"); |
| | | } |
| | | |
| | | |
| | | Map user=new HashMap(); |
| | | if(request.getParameter("isWechat")!=null && request.getParameter("isWechat").equals("1")){ |
| | | user = WebUtil.getEngineerMsg(request); |
| | |
| | | } |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | long resolveTime = DateUtil.getCurrentDate14(); |
| | | |
| | | |
| | | String state = Constants.SC_WORKFLOW_INCIDENT_LOCAL_STATE_YGB; |
| | | |
| | | |
| | | |
| | | |
| | | Map result = getHs(incidentId,baseDao,resolveTime); |
| | | //获取解决耗时 |
| | | double sjjjsj = ConvertUtil.obj2Double(result.get("sjjjsj")); |
| | | |
| | | |
| | | String deal_timeout = ConvertUtil.obj2StrBlank(result.get("deal_timeout")); |
| | | |
| | | |
| | | String updateSql = "UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET STATE = :state , RESOLVE_USER_ID = :userId,RESOLVE_USER_NAME = :userName,RESOLVE_TIME = :resolveTime,DEAL_USE_TIME = :deal_use_time,RESOLVE_TYPE_ID = :solveWay,RESOLVE_TYPE_NAME = :solveWayName,RESOLVE = :resolve,MERGED_BUSINESS_ID = :merged_business_id,DEAL_TIMEOUT = :deal_timeout WHERE ID = :incidentId"; |
| | | |
| | | |
| | | Map paramMap = new HashMap(); |
| | | paramMap.put("state", state); |
| | | paramMap.put("userId", userId); |
| | |
| | | paramMap.put("incidentId", incidentId); |
| | | paramMap.put("deal_use_time", sjjjsj); |
| | | paramMap.put("deal_timeout", deal_timeout); |
| | | |
| | | |
| | | baseDao.execute(updateSql, paramMap); |
| | | |
| | | |
| | | //=====================执行结束流程(事件已关闭) |
| | | WORKFLOW_BASE base = new WORKFLOW_BASE(new SC_WORKFLOW_INCIDENT_LOCAL(incidentId).getInstanceById().getFlow_id()).getInstanceById(); |
| | | |
| | | |
| | | WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(base.getCurrent_node_id()).getInstanceById(); |
| | | |
| | | |
| | | //事件响应 |
| | | NodeAnswerEntity entity = new NodeAnswerEntity(); |
| | | entity.setUser_id(userId); |
| | | entity.setUser_name(userName); |
| | | workflowCoreService.answerNode(base, workflow_node, entity); |
| | | |
| | | |
| | | //判断是否是第一次响应,如果是第一次响应的话,则更新事件表中实际响应时间(第一次响应时间) |
| | | String selectSql = "SELECT ANSWER_TIME,CREATE_TIME,ANSWER_TIMEOUT_TIME FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE ID = :incidentId"; |
| | | Map map = baseDao.queryForMap(selectSql,new SqlParameter("incidentId",incidentId)); |
| | | String answerTime = ConvertUtil.obj2StrBlank(map.get("ANSWER_TIME")); |
| | | long create_time = ConvertUtil.obj2Long(map.get("CREATE_TIME")); |
| | | |
| | | |
| | | if(!StringUtil.notEmpty(answerTime)) { |
| | | StringBuilder builder = new StringBuilder("UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET "); |
| | | long answer_time = DateUtil.getCurrentDate14(); |
| | | //判断是否响应超时 |
| | | long answer_timeout_time = ConvertUtil.obj2Long(map.get("ANSWER_TIMEOUT_TIME")); |
| | | |
| | | |
| | | String answer_timeout = "2"; |
| | | if(answer_time>answer_timeout_time) { |
| | | answer_timeout = "1"; |
| | | } |
| | | |
| | | |
| | | builder.append(" ANSWER_TIME = :answerTime,ANSWER_USE_TIME = :answer_user_time,ANSWER_TIMEOUT = :answer_timeout "); |
| | | paramMap.put("answerTime",answer_time); |
| | | paramMap.put("answer_timeout", answer_timeout); |
| | | |
| | | |
| | | //计算第一次响应时间和创建事件的事件差 将时间差转化为分钟 |
| | | long seconds = DateUtil.getSecondsFormDate2Date(create_time, answer_time); |
| | | //将秒转化为分钟 |
| | | double sjxysj = NumberUtil.div(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(60), 1); |
| | | |
| | | |
| | | paramMap.put("answer_user_time", sjxysj); |
| | | builder.append(" WHERE ID = :incidentId"); |
| | | paramMap.put("incidentId", incidentId); |
| | | baseDao.execute(builder.toString(), paramMap); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | NodeFinishEntity finishEntity = new NodeFinishEntity(); |
| | | finishEntity.setDeal_result(1); |
| | | finishEntity.setDeal_note_title("流程关闭"); |
| | | finishEntity.setDeal_note(bz); |
| | | |
| | | |
| | | |
| | | |
| | | //判断是否能够结束节点 |
| | | boolean canFinish = workflowCoreService.finishNode(base, workflow_node, finishEntity); |
| | | if (canFinish) { |
| | | //关闭流程 |
| | | workflowCoreService.closeWorkFlow(base); |
| | | } |
| | | } |
| | | //=====================执行结束流程完毕(事件已解决) |
| | | |
| | | |
| | | String flowId = base.getId(); |
| | | //增加事件处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | |
| | | public List<Map> incidentLocalLzRecord(String flowId) { |
| | | String selectSql = "SELECT N.* FROM WORKFLOW_NODE N,WORKFLOW_TEMPLATE_NODE B WHERE N.NODE_TEMPLATE_ID = B.ID AND N.FLOWID = :flowId ORDER BY N.CREATETIME DESC,B.ORDERNUMBER DESC "; |
| | | List<Map> lzs = baseDao.queryForList(selectSql,new SqlParameter("flowId",flowId)); |
| | | |
| | | |
| | | //格式化响应时间为分钟,格式化处理时间为小时 |
| | | if(null!=lzs && lzs.size()>0) { |
| | | for(Map lz : lzs) { |
| | |
| | | String answerTime = DateUtil.getFormatSeconds(ConvertUtil.obj2Int(answer_usertime)); |
| | | lz.put("ANSWER_USERTIME", answerTime); |
| | | } |
| | | |
| | | |
| | | String deal_usetime = ConvertUtil.obj2StrBlank(lz.get("DEAL_USETIME")); |
| | | if(StringUtil.notEmpty(deal_usetime) && !deal_usetime.equals("0")) { |
| | | String dealTime = DateUtil.getFormatSeconds(ConvertUtil.obj2Int(deal_usetime)); |
| | | lz.put("DEAL_USETIME", dealTime); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | return lzs; |
| | | } |
| | | |
| | |
| | | return baseMap; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List queryDealRecord(String orderId) { |
| | | List<Map> list = recordService.queryRecord(orderId); |
| | |
| | | List cacheList = new ArrayList(); |
| | | if(cacheFile.containsKey(extend)) { |
| | | cacheList = (List)cacheFile.get(extend); |
| | | } |
| | | } |
| | | cacheList.add(file); |
| | | cacheFile.put(extend, cacheList); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | return list; |
| | | } |
| | | |
| | |
| | | if(null!=incident && incident.size()>0) { |
| | | customerId = ConvertUtil.obj2StrBlank(incident.get("CUSTOMER_ID")); |
| | | } |
| | | |
| | | |
| | | String name = AjaxUtil.decode(request.getParameter("name")); |
| | | StringBuilder builder = new StringBuilder("SELECT * FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE CUSTOMER_ID = :customerId AND ID <> :incidentId "); |
| | | Map paramMap = new HashMap(); |
| | |
| | | builder.append(" ORDER BY CREATE_TIME DESC "); |
| | | return baseDao.queryForList(builder.toString(),paramMap); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 执行工单确认操作 |
| | | */ |
| | |
| | | public String doOrderConfirm(HttpServletRequest request) { |
| | | String incidentId = request.getParameter("incidentId"); |
| | | String flowId = request.getParameter("flowId"); |
| | | |
| | | |
| | | Map user = WebUtil.getLoginUser(request).getLoginUser(); |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | NodeAnswerEntity answerEntity = new NodeAnswerEntity(); |
| | | answerEntity.setUser_id(userId); |
| | | answerEntity.setUser_name(userName); |
| | | |
| | | |
| | | |
| | | |
| | | WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById(); |
| | | |
| | | |
| | | //工单响应 |
| | | workflowCoreService.answerNode(base, new WORKFLOW_NODE(base.getCurrent_node_id()).getInstanceById(), answerEntity); |
| | | |
| | | |
| | | |
| | | |
| | | //判断是否是第一次响应,如果是第一次响应的话,则更新事件表中实际响应时间(第一次响应时间) |
| | | String selectSql = "SELECT ANSWER_TIME,CREATE_TIME,ANSWER_TIMEOUT_TIME FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE ID = :incidentId"; |
| | | Map map = baseDao.queryForMap(selectSql,new SqlParameter("incidentId",incidentId)); |
| | | String answerTime = ConvertUtil.obj2StrBlank(map.get("ANSWER_TIME")); |
| | | long create_time = ConvertUtil.obj2Long(map.get("CREATE_TIME")); |
| | | |
| | | |
| | | |
| | | |
| | | Map paramMap = new HashMap(); |
| | | StringBuilder builder = new StringBuilder("UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET STATE = STATE + 1"); |
| | | if(!StringUtil.notEmpty(answerTime)) { |
| | | |
| | | |
| | | |
| | | |
| | | long answer_time = DateUtil.getCurrentDate14(); |
| | | //判断是否响应超时 |
| | | long answer_timeout_time = ConvertUtil.obj2Long(map.get("ANSWER_TIMEOUT_TIME")); |
| | | |
| | | |
| | | String answer_timeout = "2"; |
| | | if(answer_time>answer_timeout_time) { |
| | | answer_timeout = "1"; |
| | | } |
| | | |
| | | |
| | | builder.append(",ANSWER_TIME = :answerTime,ANSWER_USE_TIME = :answer_user_time,ANSWER_TIMEOUT = :answer_timeout "); |
| | | paramMap.put("answerTime",answer_time); |
| | | paramMap.put("answer_timeout", answer_timeout); |
| | | |
| | | |
| | | |
| | | |
| | | //计算第一次响应时间和创建事件的事件差 将时间差转化为分钟 |
| | | long seconds = DateUtil.getSecondsFormDate2Date(create_time, answer_time); |
| | | //将秒转化为分钟 |
| | | double sjxysj = NumberUtil.div(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(60), 1); |
| | | |
| | | |
| | | paramMap.put("answer_user_time", sjxysj); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | builder.append(" WHERE ID = :incidentId"); |
| | | paramMap.put("incidentId", incidentId); |
| | | baseDao.execute(builder.toString(), paramMap); |
| | | |
| | | |
| | | return "1"; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public String updateZcywMsg(HttpServletRequest request,SC_WORKFLOW_INCIDENT_LOCAL incident) { |
| | | |
| | |
| | | third_category_id = serivceListIds[2]; |
| | | third_category_name = serivceLists[2]; |
| | | } |
| | | |
| | | |
| | | //响应时间为分钟 |
| | | Long requestAnswerTime = incident.getRequest_answer_time(); |
| | | //处理时间为小时 |
| | |
| | | if(null == requestAnswerTime) { |
| | | requestAnswerTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | if(null == dealTime) { |
| | | dealTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | String selectCreateTimeSql = "SELECT CREATE_TIME,ANSWER_TIME,RESOLVE_TIME FROM SC_WORKFLOW_INCIDENT_LOCAL WHERE ID = :incidentId"; |
| | | Map m = baseDao.queryForMap(selectCreateTimeSql,new SqlParameter("incidentId",incident.getId())); |
| | | long createTime = ConvertUtil.obj2Long(m.get("CREATE_TIME")); |
| | | long answerTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(requestAnswerTime),2); |
| | | long dealTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(dealTime),1); |
| | | |
| | | |
| | | long currentTime = DateUtil.getCurrentDate14(); |
| | | //判断当前是否已经响应超时 |
| | | String answer_time = ConvertUtil.obj2StrBlank(m.get("ANSWER_TIME")); |
| | |
| | | incident.setAnswer_timeout(1); |
| | | } |
| | | } |
| | | |
| | | |
| | | //判断当前是否已经处理超时 |
| | | String resolve_time = ConvertUtil.obj2StrBlank(m.get("RESOLVE_TIME")); |
| | | if(StringUtil.notEmpty(resolve_time)) { |
| | |
| | | incident.setDeal_timeout(1); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | incident.setFirst_category_id(first_category_id).setFirst_category_name(first_category_name).setSecond_category_id(second_category_id).setSecond_category_name(second_category_name) |
| | | .setThird_category_id(third_category_id).setThird_category_name(third_category_name).setAnswer_timeout_time(answerTimeoutTime).setDeal_timeout_time(dealTimeoutTime); |
| | | |
| | | |
| | | incident.update(); |
| | | String id = incident.getId(); |
| | | fileService.uploadFile(request, id,id,null,null); |
| | | return "1"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 执行升级为事件操作 |
| | | */ |
| | |
| | | incident = copyProperties(incident,local); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | //查询当前项目的服务台组的编号 |
| | | String selectSql = "SELECT A.* FROM AC_ROLE A WHERE A.ID = :roleid "; |
| | | Map map = baseDao.queryForMap(selectSql,new SqlParameter("roleid",Constants.AC_ROLE_FWT)); |
| | | String groupId = ConvertUtil.obj2StrBlank(map.get("ID")); |
| | | String groupName = ConvertUtil.obj2StrBlank(map.get("ROLENAME")); |
| | | |
| | | |
| | | String state = Constants.SC_WORKFLOW_INCIDENT_STATE_FPDFWT; |
| | | String node_template_id = Constants.KFRY; |
| | | |
| | | |
| | | |
| | | |
| | | String order_code = workOrderCodeService.getIncidentOrderCode(); |
| | | |
| | | |
| | | //响应时间为分钟 |
| | | Long requestAnswerTime = incident.getRequest_answer_time(); |
| | | Long dealTime = incident.getRequest_deal_time(); |
| | | if(null == requestAnswerTime) { |
| | | requestAnswerTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | if(null == dealTime) { |
| | | dealTime = Long.valueOf(0); |
| | | } |
| | | |
| | | |
| | | //处理时间为小时 |
| | | long createTime = DateUtil.getCurrentDate14(); |
| | | |
| | | |
| | | long answerTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(requestAnswerTime),2); |
| | | long dealTimeoutTime = DateUtil.getTimeAdd(createTime, ConvertUtil.obj2Int(dealTime),1); |
| | | |
| | | |
| | | Map user = WebUtil.getLoginUser(request).getLoginUser(); |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | String incidentId = StringUtil.getUUID(); |
| | | incident.setCreate_user_id(userId).setCreate_user_name(userName).setCreate_time(createTime).setId(incidentId).setState(ConvertUtil.obj2Integer(state)).setOrder_code(order_code).setFlow_name(incident.getName()).setAnswer_timeout(2).setAnswer_timeout_time(answerTimeoutTime).setDeal_timeout(2).setDeal_timeout_time(dealTimeoutTime).setCreate_type(3).setDeal_use_time(null).setAnswer_use_time(null); |
| | | incident.insert(); |
| | | |
| | | |
| | | |
| | | |
| | | //启动流程 |
| | | WORKFLOW_BASE base = workflowBusinessService.startIncidentWorkflow(incidentId,""); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //启动流程 |
| | | |
| | | |
| | | NodeDealEntity entity = new NodeDealEntity(); |
| | | entity.setDealer_type(3); |
| | | List<Map> dealerList = new ArrayList<Map>(); |
| | | entity.setBefore_Dealer_type(1); |
| | | entity.setRoleID(groupId); |
| | | entity.setRoleName(groupName); |
| | | |
| | | |
| | | //查询改组下面的所有人员信息 |
| | | String selectUser = "SELECT B.ID AS USER_ID,B.ZSXM AS USER_NAME FROM AC_USER_REF_ROLE A,GG_USER B WHERE A.JSBH = :groupId AND A.YHBH = B.ID AND B.ZT = 1 "; |
| | | dealerList = baseDao.queryForList(selectUser,new SqlParameter("groupId",groupId)); |
| | | |
| | | |
| | | |
| | | |
| | | workflowBusinessService.toNode(base, node_template_id, entity); |
| | | String wxUrl = WechatConstants.ORDER_INCIDENT_DETAIL_ADDRESS+"?orderId="+base.getBusiness_id()+"&orderType="+Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL; |
| | | //发送消息 |
| | |
| | | .setOrder_code(order_code) |
| | | .setType(Constants.GG_MESSAGE_TYPE_SJGL); |
| | | messageFacade.doSendMessage(message, dealerList); |
| | | |
| | | |
| | | //添加关联工单 |
| | | List<Map> orders = orderService.queryLinkOrders(flowId); |
| | | StringBuilder builder = new StringBuilder(); |
| | |
| | | String[] orderId = builder.toString().split(","); |
| | | orderService.saveLinkOrders(base.getId(),orderId,request); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //添加关联设备 |
| | | String selectDeviceSql = "SELECT * FROM CMDB_CI_REF_ORDER WHERE FLOW_ID = :flowId"; |
| | | List<Map> devices = baseDao.queryForList(selectDeviceSql,new SqlParameter("flowId",flowId)); |
| | |
| | | } |
| | | baseDao.executeBatch(insertSql,list); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //查询文档附件 |
| | | List<Map> files = fileService.getFileList(id,1); |
| | | if(null!=files && files.size()>0) { |
| | |
| | | sqlParameter.put("FILE_PATH", file.get("FILE_PATH")); |
| | | sqlParameter.put("FILE_SIZE", file.get("FILE_SIZE")); |
| | | sqlParameter.put("FILE_FORMAT", file.get("FILE_SIZE")); |
| | | |
| | | |
| | | sqlParameter.put("BUSINESS_ID", incidentId); |
| | | sqlParameter.put("ORDERNUM", file.get("ORDERNUM")); |
| | | sqlParameter.put("FILE_NOTE", file.get("FILE_NOTE")); |
| | |
| | | } |
| | | baseDao.executeBatch(sql,parameters); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | String resolve = request.getParameter("resolve"); |
| | | String bz = request.getParameter("bz"); |
| | | //设置驻场运维工单为已挂起 |
| | | String updateZcyw = "UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET STATE = :state,RESOLVE_USER_ID = :userId,RESOLVE_USER_NAME = :userName,RESOLVE_TIME = :resolveTime,RESOLVE = :solveWay,INCIDENT_ID = :incidentId WHERE ID = :id"; |
| | | baseDao.execute(updateZcyw, new SqlParameter("state",Constants.SC_WORKFLOW_INCIDENT_LOCAL_STATE_YGQ).addValue("id", id).addValue("resolveTime", createTime).addValue("incidentId", incidentId).addValue("userId", userId).addValue("userName", userName).addValue("solveWay", resolve)); |
| | | |
| | | |
| | | |
| | | |
| | | //执行挂起操作 |
| | | |
| | | |
| | | WORKFLOW_BASE base1 = new WORKFLOW_BASE(new SC_WORKFLOW_INCIDENT_LOCAL(id).getInstanceById().getFlow_id()).getInstanceById(); |
| | | |
| | | |
| | | WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(base1.getCurrent_node_id()).getInstanceById(); |
| | | |
| | | |
| | | /*NodeAnswerEntity entity1 = new NodeAnswerEntity(); |
| | | entity1.setUser_id(userId); |
| | | entity1.setUser_name(userName); |
| | | workflowCoreService.answerNode(base1, workflow_node, entity1);*/ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | NodeFinishEntity finishEntity = new NodeFinishEntity(); |
| | | finishEntity.setDeal_result(1); |
| | | finishEntity.setDeal_note_title("流程挂起"); |
| | | finishEntity.setDeal_note(bz); |
| | | |
| | | |
| | | |
| | | |
| | | boolean canFinish = workflowCoreService.finishNode(base, new WORKFLOW_NODE(base1.getCurrent_node_id()).getInstanceById(), finishEntity); |
| | | if (canFinish) { |
| | | workflowCoreService.upWorkFlow(base1); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | //增加事件处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | | record.setDeal_content("升级事件:"+userName+"升级了事件"); |
| | |
| | | record.setDeal_user_id("1"); |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(flowId); |
| | | |
| | | |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | |
| | | |
| | | return incidentId; |
| | | |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param incident |
| | | * @param local |
| | |
| | | .setSub_customer_id(local.getSub_customer_id()).setSub_customer_name(local.getSub_customer_name()).setCreate_type(3); |
| | | return incident; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map queryWcReport(String orderId) { |
| | | Map incident = new SC_WORKFLOW_INCIDENT_LOCAL(orderId).getBeanMapById(); |
| | | String flowId = ConvertUtil.obj2StrBlank(incident.get("FLOW_ID")); |
| | | |
| | | |
| | | //查询关联工单 |
| | | if(null!=incident && incident.size()>0) { |
| | | List<Map> orders = queryOrders(flowId); |
| | | List<Map> devices = incidentFacade.queryDevices(flowId); |
| | | List<Map> files = queryFiles(flowId); |
| | | |
| | | |
| | | incident.put("orders", orders); |
| | | incident.put("devices", devices); |
| | | incident.put("files", files); |
| | |
| | | } |
| | | return incident; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map saveDispatchTask(HttpServletRequest request) { |
| | | |
| | | |
| | | Map resultMap = new HashMap(); |
| | | resultMap.put("result", 2); |
| | | |
| | | |
| | | String id = request.getParameter("id"); |
| | | String selectUser = request.getParameter("userMsg"); |
| | | String dealUserId = new String(); |
| | | String dealUserName = new String(); |
| | | |
| | | |
| | | String state = Constants.SC_WORKFLOW_INCIDENT_LOCAL_STATE_FPDZCGCS; |
| | | String node_template_id = Constants.ZCYW_FWSL; |
| | | |
| | | |
| | | if(StringUtil.notEmpty(selectUser)) { |
| | | String[] userMsg = selectUser.split("-"); |
| | | if(userMsg.length==2) { |
| | | dealUserId = userMsg[0]; |
| | | dealUserName = userMsg[1]; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | if(StringUtil.notEmpty(dealUserId) && StringUtil.notEmpty(dealUserName)) { |
| | | //执行分派任务 |
| | | |
| | | |
| | | WORKFLOW_BASE base = new WORKFLOW_BASE(id).getInstanceById(); |
| | | |
| | | |
| | | NodeDealEntity entity = new NodeDealEntity(); |
| | | entity.setDealer_type(3); |
| | | entity.setBefore_Dealer_type(2); |
| | |
| | | map.put("USER_ID", dealUserId); |
| | | map.put("USER_NAME", dealUserName); |
| | | map.put("IS_ADMIN", "1"); |
| | | |
| | | |
| | | dealerList.add(map); |
| | | |
| | | |
| | | entity.setDealerList(dealerList); |
| | | String bz = request.getParameter("bz"); |
| | | |
| | | |
| | | NodeFinishEntity finishEntity = new NodeFinishEntity(); |
| | | finishEntity.setDeal_result(1); |
| | | finishEntity.setDeal_note_title("节点转至 :" + dealUserName); |
| | | finishEntity.setDeal_note(bz); |
| | | |
| | | |
| | | |
| | | |
| | | NodeAnswerEntity answerEntity = new NodeAnswerEntity(); |
| | | answerEntity.setUser_id(dealUserId); |
| | | answerEntity.setUser_name(dealUserName); |
| | | |
| | | |
| | | WORKFLOW_NODE node = new WORKFLOW_NODE(base.getCurrent_node_id()).getInstanceById(); |
| | | boolean canFinish = workflowCoreService.finishNode(base, node, finishEntity); |
| | | if (canFinish) { |
| | | workflowBusinessService.toNode(base, node_template_id, entity); |
| | | } |
| | | |
| | | } |
| | | |
| | | //更新事件状态 |
| | | String updateIncidentSql = "UPDATE SC_WORKFLOW_INCIDENT_LOCAL SET STATE = :state WHERE ID = :incidentId "; |
| | | baseDao.execute(updateIncidentSql, new SqlParameter("state",state).addValue("incidentId", base.getBusiness_id())); |
| | | |
| | | |
| | | Map user=new HashMap(); |
| | | if(request.getParameter("isWechat")!=null && request.getParameter("isWechat").equals("1")){ |
| | | user = WebUtil.getEngineerMsg(request); |
| | |
| | | } |
| | | String userId = ConvertUtil.obj2StrBlank(user.get("ID")); |
| | | String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); |
| | | |
| | | |
| | | String flowId = base.getId(); |
| | | //增加事件处理记录 |
| | | GG_RECORD record = new GG_RECORD(); |
| | |
| | | record.setDeal_user_id("1"); |
| | | record.setDeal_user_name(userName); |
| | | record.setBusiness_id(base.getId()); |
| | | |
| | | |
| | | recordService.addRecord(record); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String wxUrl = WechatConstants.ORDER_INCIDENT_DETAIL_ADDRESS+"?orderId="+base.getBusiness_id()+"&orderType="+Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL; |
| | | //发送消息 |
| | | GG_MESSAGE message = new GG_MESSAGE(); |
| | |
| | | .setWx_url(wxUrl) |
| | | .setType(Constants.GG_MESSAGE_TYPE_XCYW); |
| | | messageFacade.doSendMessage(message, dealerList); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | resultMap.put("result", 1); |
| | | } |
| | | SysInfoMsg msg = new SysInfoMsg("2",dealUserName,"服务受理"); |
| | |
| | | public int queryZcywTimeoutCount(Map<String, String> params) { |
| | | StringBuilder sql = new StringBuilder(); |
| | | StringBuilder sqlpart = new StringBuilder(); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB,WORKFLOW_NODE N "); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB,WORKFLOW_NODE N "); |
| | | sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType AND WB.WFSTATE = 1 AND (B.ANSWER_TIMEOUT = 1 OR B.DEAL_TIMEOUT = 1 ) AND N.CURRENT_DEALER_ID = :current_dealer_id "); |
| | | params.put("current_dealer_id", params.get("userId")); |
| | | sql.append(sqlpart); |
| | |
| | | params.put("endTime", endDay + "600000"); |
| | | if (StringUtil.isBlank(userId)) { |
| | | builder.append(" select count(ID) NUM,DATE_FORMAT(CREATE_TIME,'%Y%m%d') CREATEDAY from SC_WORKFLOW_INCIDENT_LOCAL where CUSTOMER_ID = :cusId "); |
| | | builder.append(" and CREATE_TIME>=:startTime and CREATE_TIME<=:endTime group by CREATEDAY "); |
| | | builder.append(" and CREATE_TIME>=:startTime and CREATE_TIME<=:endTime group by DATE_FORMAT(CREATE_TIME,'%Y%m%d') "); |
| | | } else { |
| | | builder.append(" select count(q.ID) NUM,DATE_FORMAT(q.CREATE_TIME,'%Y%m%d') CREATEDAY from workflow_base b ,SC_WORKFLOW_INCIDENT_LOCAL q "); |
| | | builder.append(" where b.ID = q.FLOW_ID and EXISTS ( "); |
| | | builder.append(" select FLOWID from workflow_node n where b.ID = n.FLOWID and n.CURRENT_DEALER_ID = :userId "); |
| | | builder.append(" ) and q.CUSTOMER_ID = :cusId and q.CREATE_TIME>=:startTime and q.CREATE_TIME<=:endTime group by CREATEDAY "); |
| | | builder.append(" ) and q.CUSTOMER_ID = :cusId and q.CREATE_TIME>=:startTime and q.CREATE_TIME<=:endTime group by DATE_FORMAT(q.CREATE_TIME,'%Y%m%d') "); |
| | | } |
| | | |
| | | List<Map> dataList = baseDao.queryForList(builder.toString(), params); |
| | |
| | | } |
| | | return chartMap; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map getLastMonthZcywPri(Map<String, String> params) { |
| | | Map chartMap = new HashMap(); |
| | |
| | | StringBuilder builder = new StringBuilder(); |
| | | if (StringUtil.isBlank(userId)) { |
| | | builder.append(" select count(ID) NUM,THIRD_CATEGORY_ID SERVER_ID from SC_WORKFLOW_INCIDENT_LOCAL where CUSTOMER_ID = :cusId "); |
| | | builder.append(" and CREATE_TIME>=:startTime and CREATE_TIME<=:endTime group by SERVER_ID "); |
| | | builder.append(" and CREATE_TIME>=:startTime and CREATE_TIME<=:endTime group by THIRD_CATEGORY_ID "); |
| | | } else { |
| | | builder.append(" select count(q.ID) NUM,q.THIRD_CATEGORY_ID SERVER_ID from SC_WORKFLOW_INCIDENT_LOCAL q,WORKFLOW_BASE b "); |
| | | builder.append(" where b.ID = q.FLOW_ID and EXISTS ( "); |
| | | builder.append(" select FLOWID from workflow_node n where b.ID = n.FLOWID and n.CURRENT_DEALER_ID = :userId "); |
| | | builder.append(" ) and q.CUSTOMER_ID = :cusId and q.CREATE_TIME>=:startTime and q.CREATE_TIME<=:endTime group by SERVER_ID "); |
| | | builder.append(" ) and q.CUSTOMER_ID = :cusId and q.CREATE_TIME>=:startTime and q.CREATE_TIME<=:endTime group by q.THIRD_CATEGORY_ID "); |
| | | } |
| | | |
| | | List<Map> dataList = baseDao.queryForList(builder.toString(), params); |
| | |
| | | public int getOrederZcywNumDxy(Map params){ |
| | | StringBuilder sql = new StringBuilder(); |
| | | StringBuilder sqlpart = new StringBuilder(); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB , WORKFLOW_NODE C "); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB , WORKFLOW_NODE C "); |
| | | sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND C.FLOWID = WB.ID AND C.FLOWSTATE = 1 AND C.CURRENT_DEALER_ID IS NOT NULL AND WB.BUSINESSTYPE = :businessType "); |
| | | String customerId=ConvertUtil.obj2StrBlank(params.get("customerId")); |
| | | if(StringUtil.notEmpty(customerId)){ |
| | |
| | | public int getOrederZcywNumJxz(Map params) { |
| | | StringBuilder sql = new StringBuilder(); |
| | | StringBuilder sqlpart = new StringBuilder(); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB "); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB "); |
| | | sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType AND WB.WFSTATE = 1 "); |
| | | String customerId=ConvertUtil.obj2StrBlank(params.get("customerId")); |
| | | if(StringUtil.notEmpty(customerId)){ |
| | |
| | | public int getOrederZcywTimeoutCount(Map<String, String> params) { |
| | | StringBuilder sql = new StringBuilder(); |
| | | StringBuilder sqlpart = new StringBuilder(); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB "); |
| | | sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_BASE WB "); |
| | | sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType AND WB.WFSTATE = 1 AND (B.ANSWER_TIMEOUT = 1 OR B.DEAL_TIMEOUT = 1 ) "); |
| | | params.put("current_dealer_id", params.get("userId")); |
| | | String customerId=ConvertUtil.obj2StrBlank(params.get("customerId")); |
| | |
| | | public PageInfo zcywNodeData(PageInfo pageInfo, Map<String, String> params) { |
| | | StringBuilder builder = new StringBuilder(); |
| | | String state=params.get("state"); |
| | | |
| | | |
| | | builder.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE, "); |
| | | builder.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.ANSWER_TIMEOUT,B.DEAL_TIMEOUT "); |
| | | builder.append("FROM WORKFLOW_BASE WB,SC_WORKFLOW_INCIDENT_LOCAL B "); |
| | |
| | | builder.append(" group by B.ID "); |
| | | } |
| | | builder.append( " ORDER BY WB.CREATETIME DESC "); |
| | | |
| | | |
| | | |
| | | |
| | | return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); |
| | | } |
| | | |
| | |
| | | builder.append("FROM WORKFLOW_BASE WB,SC_WORKFLOW_INCIDENT_LOCAL B,WORKFLOW_NODE N WHERE WB.BUSINESS_ID = B.ID AND N.FLOWID=WB.ID AND WB.WFSTATE=1 AND N.FLOWSTATE=1 "); |
| | | builder.append(" AND WB.BUSINESSTYPE = :businessType "); |
| | | params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)); |
| | | |
| | | |
| | | builder = getZcSql(builder,params); |
| | | builder.append(" group by B.ID) d "); |
| | | }else{ |
| | | |
| | | |
| | | builder.append("SELECT COUNT(WB.ID) "); |
| | | builder.append("FROM WORKFLOW_BASE WB,SC_WORKFLOW_INCIDENT_LOCAL B WHERE WB.BUSINESS_ID = B.ID "); |
| | | builder.append(" AND WB.BUSINESSTYPE = :businessType "); |
| | |
| | | builder.append(" and WB.WFSTATE=2 "); |
| | | }else if(state.equals("4")){ |
| | | builder.append(" and WB.WFSTATE=4 "); |
| | | } |
| | | } |
| | | builder = getZcSql(builder,params); |
| | | } |
| | | |
| | | |
| | | return baseDao.queryForInteger(builder.toString(), params); |
| | | } |
| | | } |