cy
2022-06-22 425675051e544cf29b2132615cfbf7a93dc5e51f
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,6 +18,14 @@
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 {
@@ -100,7 +84,7 @@
         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")){
@@ -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);
@@ -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"));