From 425675051e544cf29b2132615cfbf7a93dc5e51f Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期三, 22 六月 2022 15:50:59 +0800 Subject: [PATCH] fix(dm): MySQL=》DMSQL --- src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java | 686 +++++++++++++++++++++++++++----------------------------- 1 files changed, 335 insertions(+), 351 deletions(-) diff --git a/src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java b/src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java index 490e20f..2604bdb 100644 --- a/src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java +++ b/src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java @@ -1,37 +1,13 @@ 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; @@ -42,39 +18,47 @@ 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 @@ -82,10 +66,10 @@ @Override public int queryMyZcywCount(Map<String, String> params) { - + StringBuilder builder = new StringBuilder(); params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE)); - + /** * 鏌ヨ閫昏緫 * 1.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓哄叏閮紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝鎴栬�呭鐞嗚鑹叉槸鎴戠殑骞朵笖娌℃湁鍒嗛厤澶勭悊浜虹殑锛� @@ -94,13 +78,13 @@ * 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")){ @@ -118,7 +102,7 @@ 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")){ @@ -136,7 +120,7 @@ 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")){ @@ -156,7 +140,7 @@ } 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")){ @@ -172,29 +156,29 @@ 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.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓哄叏閮紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝鎴栬�呭鐞嗚鑹叉槸鎴戠殑骞朵笖娌℃湁鍒嗛厤澶勭悊浜虹殑锛� @@ -203,7 +187,7 @@ * 3.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓鸿繘琛屼腑锛屽垯鏌ヨ鑺傜偣琛ㄤ腑澶勭悊浜烘槸鎴戠殑 锛堜笉闇�瑕佽繃婊わ紝鍥犱负涓�涓伐鍗曡繘琛屼腑鑺傜偣锛屽彧浼氭湁涓�涓級 * 4.濡傛灉鑺傜偣鐘舵�佹煡璇㈡湭宸插鐞嗭紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝闇�瑕佽繃婊わ紙鍥犱负涓�涓妭鐐逛竴涓汉鍙互澶勭悊澶氭锛岄�氳繃鑺傜偣琛ㄤ綔涓轰富琛ㄦ煡璇㈠嚭鏉ョ殑宸ュ崟浼氭湁閲嶅锛� */ - + String flowstate = params.get("flowstate"); if(StringUtil.notEmpty(flowstate)) { if(flowstate.equals("1")) { @@ -222,7 +206,7 @@ } } } - + builder.append(")D"); builder.append(" WHERE D.FLOWSTATE = :jddcl "); params.put("jddcl", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE)); @@ -283,10 +267,10 @@ 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)){ @@ -297,7 +281,7 @@ } 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); @@ -320,14 +304,14 @@ 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; @@ -344,7 +328,7 @@ return info; } } - + public StringBuilder getMyZcSql(StringBuilder builder,Map<String, String> params){ String status = params.get("status"); if(StringUtil.notEmpty(status)) { @@ -352,32 +336,32 @@ 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(","); @@ -395,9 +379,9 @@ builder.append(")"); } } - - - + + + String dg = params.get("dg"); if(StringUtil.notEmpty(dg)) { String[] dgs = dg.split(","); @@ -415,8 +399,8 @@ builder.append(")"); } } - - + + String type = params.get("type"); if(StringUtil.notEmpty(type)) { String[] types = type.split(","); @@ -434,8 +418,8 @@ builder.append(")"); } } - - + + String sl = params.get("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); @@ -458,32 +442,32 @@ @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){ @@ -491,20 +475,20 @@ 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 "); @@ -512,7 +496,7 @@ } return builder; } - + @Override public Map queryZcMsg(HttpServletRequest request) { Map result = new HashMap(); @@ -520,10 +504,10 @@ 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")); @@ -545,8 +529,8 @@ } } } - - + + result.put("customerId", customerId); result.put("customerName", customerName); result.put("subCustomerId", subCustomerId); @@ -558,20 +542,20 @@ 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(); @@ -590,11 +574,11 @@ 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; @@ -606,47 +590,47 @@ 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); @@ -655,13 +639,13 @@ 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")) { //淇濆瓨鑱旂郴浜虹殑淇℃伅 @@ -671,8 +655,8 @@ .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(); @@ -687,29 +671,29 @@ .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); - + //鎻愪氦宸ュ崟鏃朵笂浼犳枃妗i檮浠� // /fileService.uploadFile(request, flowId, flowId, null, null); - - + + //鎻愪氦宸ュ崟鏃朵笂浼犳枃妗i檮浠� 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+"鍒涘缓浜嗛┗鍦鸿繍缁翠簨浠�"); @@ -722,19 +706,19 @@ 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{ @@ -742,23 +726,23 @@ } 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); //鑾峰彇瑙e喅鑰楁椂 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); @@ -771,77 +755,77 @@ paramMap.put("incidentId", incidentId); paramMap.put("deal_use_time", sjjjsj); paramMap.put("deal_timeout", deal_timeout); - - + + baseDao.execute(updateSql, paramMap); - + //=====================鎵ц缁撴潫娴佺▼锛堜簨浠跺凡瑙e喅锛� 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); - } + } //=====================鎵ц缁撴潫娴佺▼瀹屾瘯锛堜簨浠跺凡瑙e喅锛� - - + + String flowId = base.getId(); - + //澧炲姞浜嬩欢澶勭悊璁板綍 GG_RECORD record = new GG_RECORD(); record.setDeal_content("瑙e喅浜嬩欢锛�"+userName+"瑙e喅浜嗕簨浠�"); @@ -849,36 +833,36 @@ 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; } - - - + + + /** * 鎵ц鍏抽棴浜嬩欢鎿嶄綔 */ @@ -887,17 +871,17 @@ 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); @@ -906,20 +890,20 @@ } 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); //鑾峰彇瑙e喅鑰楁椂 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); @@ -932,70 +916,70 @@ 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); - } + } //=====================鎵ц缁撴潫娴佺▼瀹屾瘯锛堜簨浠跺凡瑙e喅锛� - + String flowId = base.getId(); //澧炲姞浜嬩欢澶勭悊璁板綍 GG_RECORD record = new GG_RECORD(); @@ -1013,7 +997,7 @@ 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) { @@ -1022,16 +1006,16 @@ 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; } @@ -1050,8 +1034,8 @@ return baseMap; } - - + + @Override public List queryDealRecord(String orderId) { List<Map> list = recordService.queryRecord(orderId); @@ -1066,7 +1050,7 @@ List cacheList = new ArrayList(); if(cacheFile.containsKey(extend)) { cacheList = (List)cacheFile.get(extend); - } + } cacheList.add(file); cacheFile.put(extend, cacheList); } @@ -1081,8 +1065,8 @@ } } } - - + + return list; } @@ -1118,7 +1102,7 @@ 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(); @@ -1131,7 +1115,7 @@ builder.append(" ORDER BY CREATE_TIME DESC "); return baseDao.queryForList(builder.toString(),paramMap); } - + /** * 鎵ц宸ュ崟纭鎿嶄綔 */ @@ -1139,65 +1123,65 @@ 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) { @@ -1235,7 +1219,7 @@ third_category_id = serivceListIds[2]; third_category_name = serivceLists[2]; } - + //鍝嶅簲鏃堕棿涓哄垎閽� Long requestAnswerTime = incident.getRequest_answer_time(); //澶勭悊鏃堕棿涓哄皬鏃� @@ -1243,17 +1227,17 @@ 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")); @@ -1266,7 +1250,7 @@ incident.setAnswer_timeout(1); } } - + //鍒ゆ柇褰撳墠鏄惁宸茬粡澶勭悊瓒呮椂 String resolve_time = ConvertUtil.obj2StrBlank(m.get("RESOLVE_TIME")); if(StringUtil.notEmpty(resolve_time)) { @@ -1278,18 +1262,18 @@ 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"; } - + /** * 鎵ц鍗囩骇涓轰簨浠舵搷浣� */ @@ -1304,65 +1288,65 @@ 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; //鍙戦�佹秷鎭� @@ -1378,7 +1362,7 @@ .setOrder_code(order_code) .setType(Constants.GG_MESSAGE_TYPE_SJGL); messageFacade.doSendMessage(message, dealerList); - + //娣诲姞鍏宠仈宸ュ崟 List<Map> orders = orderService.queryLinkOrders(flowId); StringBuilder builder = new StringBuilder(); @@ -1392,8 +1376,8 @@ 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)); @@ -1409,9 +1393,9 @@ } baseDao.executeBatch(insertSql,list); } - - - + + + //鏌ヨ鏂囨。闄勪欢 List<Map> files = fileService.getFileList(id,1); if(null!=files && files.size()>0) { @@ -1425,7 +1409,7 @@ 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")); @@ -1437,40 +1421,40 @@ } 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+"鍗囩骇浜嗕簨浠�"); @@ -1478,16 +1462,16 @@ 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 @@ -1505,18 +1489,18 @@ .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); @@ -1536,35 +1520,35 @@ } 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); @@ -1573,32 +1557,32 @@ 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); @@ -1607,7 +1591,7 @@ } String userId = ConvertUtil.obj2StrBlank(user.get("ID")); String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); - + String flowId = base.getId(); //澧炲姞浜嬩欢澶勭悊璁板綍 GG_RECORD record = new GG_RECORD(); @@ -1616,11 +1600,11 @@ 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(); @@ -1634,10 +1618,10 @@ .setWx_url(wxUrl) .setType(Constants.GG_MESSAGE_TYPE_XCYW); messageFacade.doSendMessage(message, dealerList); - - - - + + + + resultMap.put("result", 1); } SysInfoMsg msg = new SysInfoMsg("2",dealUserName,"鏈嶅姟鍙楃悊"); @@ -1678,7 +1662,7 @@ 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); @@ -1746,12 +1730,12 @@ 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); @@ -1832,7 +1816,7 @@ } return chartMap; } - + @Override public Map getLastMonthZcywPri(Map<String, String> params) { Map chartMap = new HashMap(); @@ -1888,12 +1872,12 @@ 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); @@ -1952,7 +1936,7 @@ 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)){ @@ -1968,7 +1952,7 @@ 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)){ @@ -1985,7 +1969,7 @@ 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")); @@ -2003,7 +1987,7 @@ 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 "); @@ -2030,8 +2014,8 @@ builder.append(" group by B.ID "); } builder.append( " ORDER BY WB.CREATETIME DESC "); - - + + return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); } @@ -2044,11 +2028,11 @@ 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 "); @@ -2061,10 +2045,10 @@ 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); } } -- Gitblit v1.9.1