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/health/HealthFacadeImpl.java                        |   24 
 src/cn/ksource/web/facade/incident/IncidentFacadeImpl.java                    |   89 
 src/cn/ksource/web/facade/fileManage/DocFacadeImpl.java                       |   63 
 src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java                  |  248 +-
 src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java                |  137 
 src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java                    |  452 ++--
 src/cn/ksource/web/facade/dsl/DSLFacadeImpl.java                              |  543 +++---
 src/cn/ksource/web/facade/servicelist/SlaProjectFacadeImpl.java               |   20 
 src/cn/ksource/web/facade/zc/ZcywFacadeImpl.java                              |  686 ++++----
 src/cn/ksource/web/controller/business/pages/question/QuestionController.java |  523 +++---
 src/cn/ksource/web/facade/workReport/WorkReportFacadeImpl.java                |  587 +++---
 src/cn/ksource/web/facade/change/ChangeFacadeImpl.java                        |  198 +-
 src/cn/ksource/web/service/knowledge/KmServiceImpl.java                       |  171 -
 src/cn/ksource/web/controller/business/pages/incident/IncidentController.java |   57 
 src/cn/ksource/web/facade/question/QuestionFacadeImpl.java                    | 1081 ++++++------
 core/cn/ksource/core/util/ConvertUtil.java                                    |   57 
 16 files changed, 2,441 insertions(+), 2,495 deletions(-)

diff --git a/core/cn/ksource/core/util/ConvertUtil.java b/core/cn/ksource/core/util/ConvertUtil.java
index 64328ee..9702a01 100644
--- a/core/cn/ksource/core/util/ConvertUtil.java
+++ b/core/cn/ksource/core/util/ConvertUtil.java
@@ -1,5 +1,8 @@
 package cn.ksource.core.util;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -7,29 +10,26 @@
 import java.net.URLEncoder;
 import java.util.*;
 
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
-
 
 public class ConvertUtil {
-	
+
 	public static Boolean obj2Boolean(Object obj){
 		return obj == null ? false : Boolean.getBoolean(obj.toString());
 	}
-	
+
 	public static Double obj2Double(Object obj){
 		if (obj == null) {
 			return null;
 		}
 		return StringUtil.isBlank(obj2Str(obj)) ? null : Double.valueOf(obj.toString());
 	}
-	
+
 	public static void main(String[] args) {
 		String str = "0.123";
 		System.out.println(obj2Double(str));
 	}
-	
-	
+
+
 	/**
 	 * List杞琈ap
 	 * @param dataList
@@ -48,7 +48,7 @@
 		}
 		return resultMap;
 	}
-	
+
 	/**
 	 * List杞琈ap
 	 * @param dataList
@@ -66,8 +66,8 @@
 		}
 		return resultMap;
 	}
- 	
-	
+
+
 	/**
 	 * 濡傛灉涓虹┖锛屼娇鐢ㄦ彁渚涚殑鍊兼浛鎹�
 	 * @param obj
@@ -78,7 +78,7 @@
 	public static Object defaultIfEmpty(Object obj,Object o){
 		return obj == null || StringUtils.isBlank(obj.toString()) || StringUtils.equalsIgnoreCase(obj.toString(), "null") ? o : obj;
 	}
-	
+
 	/**灏嘒BK杞寲涓篏BK
 	 * @param str
 	 * @return
@@ -95,11 +95,11 @@
 		}
 		return str;
 	}
-	
+
 	public static String html2Text(String html){
 		return html.replaceAll("<[^>]+>", "").replaceAll("&nbsp;","");
 	}
-	
+
 	/**
 	 * 鍔熻兘鎻忚堪锛歄bject绫昏浆鎹负String锛岄伩鍏嶅湪Object涓簄ull鏃讹紝鐩存帴toString()鍑洪敊<BR>
 	 * @param obj
@@ -114,28 +114,25 @@
 		return obj == null ? "" : obj.toString();
 	}
 	public static Integer obj2Integer(Object obj){
-		return obj == null || obj.toString().trim().equals("")  ? null : Integer.parseInt(obj.toString()); 
+		return obj == null || obj.toString().trim().equals("")  ? null : Integer.parseInt(obj.toString());
 	}
-	
+
 	public static int obj2Int(Object obj){
-		if(null==obj) {
-			System.out.println("1121313");
-		}
-		return obj == null || obj.toString().trim().equals("")  ? null : Double.valueOf(obj.toString()).intValue(); 
+		return obj == null || obj.toString().trim().equals("")  ? 0 : Double.valueOf(obj.toString()).intValue();
 	}
-	
+
 	public static Long obj2Long(Object obj){
-		return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString()); 
+		return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString());
 	}
-	
+
 	public static Long obj2Long(Object obj,boolean filter){
 		if (!filter) {
-			return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString()); 
+			return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString());
 		} else {
-			return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString().replaceAll("[^0-9]", "")); 
+			return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString().replaceAll("[^0-9]", ""));
 		}
 	}
-	
+
 	/**
 	 * 鍔熻兘鎻忚堪锛氳繃婊ょ敤鎴疯緭鍏ョ殑html銆乻ql銆乯avascript鑴氭湰<BR>
 	 * @param map
@@ -199,7 +196,7 @@
         }
         return resultMap;
     }
-    
+
     /**
      * 灏哹yte杞寲涓篕鎴朚锛屽ぇ浜�1024K鐨勬寜M璁$畻锛岃繑鍥�*K鎴�*M
      * @param byteSize
@@ -210,15 +207,15 @@
     	BigDecimal b1 = new BigDecimal(byteSize);
         BigDecimal b2 = new BigDecimal(1024);
         double k = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
-    	
+
         //澶т簬1024锛岃浆鍖栦负M
     	if (k > 1024) {
     		b2 = new BigDecimal(1024*1024);
     		k = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
-    		
+
     		return k + "M";
     	}
-    	
+
     	return k + "K";
     }
 }
diff --git a/src/cn/ksource/web/controller/business/pages/incident/IncidentController.java b/src/cn/ksource/web/controller/business/pages/incident/IncidentController.java
index a8dac5a..87f1218 100644
--- a/src/cn/ksource/web/controller/business/pages/incident/IncidentController.java
+++ b/src/cn/ksource/web/controller/business/pages/incident/IncidentController.java
@@ -1,14 +1,19 @@
 package cn.ksource.web.controller.business.pages.incident;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
+import cn.ksource.beans.SC_SERVCE_CATEGORY;
+import cn.ksource.beans.SC_WORKFLOW_INCIDENT;
+import cn.ksource.beans.WORKFLOW_BASE;
+import cn.ksource.core.page.PageInfo;
+import cn.ksource.core.util.*;
+import cn.ksource.core.web.SysInfo;
+import cn.ksource.core.web.SysInfoMsg;
+import cn.ksource.core.web.WebUtil;
+import cn.ksource.web.Constants;
+import cn.ksource.web.facade.customermanage.CustomerManageFacade;
+import cn.ksource.web.facade.incident.IncidentFacade;
+import cn.ksource.web.facade.order.OrderFacade;
+import cn.ksource.web.service.DataDictionaryService;
 import cn.ksource.web.service.message.MessageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -18,25 +23,13 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
 
-import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
-import cn.ksource.beans.SC_SERVCE_CATEGORY;
-import cn.ksource.beans.SC_WORKFLOW_INCIDENT;
-import cn.ksource.beans.WORKFLOW_BASE;
-import cn.ksource.core.page.PageInfo;
-import cn.ksource.core.util.ConvertUtil;
-import cn.ksource.core.util.DateUtil;
-import cn.ksource.core.util.JsonUtil;
-import cn.ksource.core.util.NumberUtil;
-import cn.ksource.core.util.ParamsMapUtil;
-import cn.ksource.core.util.StringUtil;
-import cn.ksource.core.web.SysInfo;
-import cn.ksource.core.web.SysInfoMsg;
-import cn.ksource.core.web.WebUtil;
-import cn.ksource.web.Constants;
-import cn.ksource.web.facade.customermanage.CustomerManageFacade;
-import cn.ksource.web.facade.incident.IncidentFacade;
-import cn.ksource.web.facade.order.OrderFacade;
-import cn.ksource.web.service.DataDictionaryService;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 /**
  * 鏃ュ父杩愮淮--浜嬩欢绠$悊鎺у埗鍣�
  * @note:
@@ -1216,8 +1209,8 @@
 			baseMsg.put("jjWidth", 150);
 		}
 
-		
-		
+
+
 		/*List<Map> lzs = incidentFacade.incidentLzRecord(flowId);
 		modelAndView.addObject("lzs", lzs);*/
 
@@ -1465,7 +1458,9 @@
 		String CUSTOMER_ID =ConvertUtil.obj2Str(report.get("CUSTOMER_ID"));
 		if(StringUtil.notEmpty(CUSTOMER_ID)){
 			SC_PARTNER_CUSTOMER_INFO customer_INFO=new SC_PARTNER_CUSTOMER_INFO(CUSTOMER_ID).getInstanceById();
-			report.put("customer_code", customer_INFO.getCustomer_code());
+			if (customer_INFO != null){
+				report.put("customer_code", customer_INFO.getCustomer_code());
+			}
 		}
 		String FIRST_CATEGORY_ID=ConvertUtil.obj2Str(report.get("FIRST_CATEGORY_ID"));
 		if(StringUtil.notEmpty(FIRST_CATEGORY_ID)){
diff --git a/src/cn/ksource/web/controller/business/pages/question/QuestionController.java b/src/cn/ksource/web/controller/business/pages/question/QuestionController.java
index 815ce6a..5a0f4f1 100644
--- a/src/cn/ksource/web/controller/business/pages/question/QuestionController.java
+++ b/src/cn/ksource/web/controller/business/pages/question/QuestionController.java
@@ -47,31 +47,31 @@
 @Controller
 @RequestMapping("/business/pages/question")
 public class QuestionController {
-	
+
 	@Autowired
 	private QuestionFacade questionFacade;
-	
+
 	@Autowired
 	private IncidentFacade incidentFacade;
-	
+
 	@Autowired
 	private DataDictionaryService dataDictionaryService;
-	
+
 	@Autowired
 	private FileService fileService;
-	
+
 	@Autowired
 	private OrderService orderService;
-	
+
 	@Autowired
 	private DeviceService deviceService;
-	
+
 	@Autowired
 	private OrderFacade orderFacade;
-	
+
 	@Resource
 	private CustomerManageFacade customerFacade;
-	
+
 	@Autowired
 	private MessageService messageService;
 
@@ -129,40 +129,40 @@
 	@RequestMapping(value="questionList.html", method=RequestMethod.GET)
 	public ModelAndView questionList(HttpServletRequest request, HttpServletResponse response) {
 		ModelAndView view = new ModelAndView("/business/pages/question/questionList");
-		
+
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.queryQuestionCount(request);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		view.addObject("c", msgCount);
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
 		params.put("type","1");
 		Map map = questionFacade.getOrderNum(params);
 		view.addObject("data", map);
-		
+
 		return view;
 	}
-	
-	
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鍒楄〃鏁版嵁
 	 */
@@ -175,9 +175,9 @@
 		modelAndView.addObject("orderList", list);
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鎬绘暟閲�
 	 */
@@ -188,24 +188,24 @@
 		int count = questionFacade.queryQuestionOrderCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
-	
-	
-	
+
+
+
+
 	/**
 	 * 璺宠浆鍒版垜鐨勯棶棰樺伐鍗曞垪琛�
 	 */
 	@RequestMapping("myQuestion.html")
 	public ModelAndView myIncident(HttpServletRequest request) {
 		ModelAndView view = new ModelAndView("/business/pages/question/myQuestion");
-		
+
 		Map num = orderFacade.queryOrderCountByCate(request, Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION.toString());
-		
+
 		view.addObject("num", num);
-		
+
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
@@ -213,11 +213,11 @@
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
@@ -226,8 +226,8 @@
 		view.addObject("data", map);
 		return view;
 	}
-	
-	
+
+
 	/**
 	 * 鏌ヨ鎴戠殑闂鍒楄〃
 	 */
@@ -241,7 +241,7 @@
 		modelAndView.addObject("orders", question);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎴戠殑闂鏁伴噺
 	 */
@@ -253,7 +253,7 @@
 		int count = questionFacade.queryMyQuestionCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 鏈嶅姟鍙板垱寤洪棶棰橀〉闈�
 	 * @param request
@@ -265,8 +265,8 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/addquestion");
 		//鏉ユ簮浜庝簨浠跺崌绾�
 		Map questionMsg = questionFacade.getQuestionMsgByOrderId(request);
-		
-		
+
+
 		//鏌ヨ闂鏉ユ簮鏁版嵁瀛楀吀
 		List<Map> froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
 		//鍙栧緱闂鏉ユ簮鐨勭涓�鏉℃暟鎹�
@@ -275,21 +275,21 @@
 			view.addObject("fromId", from.get("DATAKEY"));
 			view.addObject("fromName", from.get("DATAVALUE"));
 		}
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		view.addObject("froms", froms);
 		view.addObject("questionMsg", questionMsg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
@@ -299,7 +299,7 @@
 		view.addObject("gnmark", GnConstants.ADDWT);
 		return view;
 	}
-	
+
 	/**
 	 * 鏈嶅姟鍙板垱寤洪棶棰橀〉闈�
 	 * @param request
@@ -311,8 +311,8 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/addquestion");
 		//鏉ユ簮浜庝簨浠跺崌绾�
 		Map questionMsg = questionFacade.getQuestionMsgByOrderId(request);
-		
-		
+
+
 		//鏌ヨ闂鏉ユ簮鏁版嵁瀛楀吀
 		List<Map> froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
 		//鍙栧緱闂鏉ユ簮鐨勭涓�鏉℃暟鎹�
@@ -321,21 +321,21 @@
 			view.addObject("fromId", from.get("DATAKEY"));
 			view.addObject("fromName", from.get("DATAVALUE"));
 		}
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		view.addObject("froms", froms);
 		view.addObject("questionMsg", questionMsg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
@@ -345,7 +345,7 @@
 		view.addObject("gnmark", GnConstants.FWTADDWT);
 		return view;
 	}
-	
+
 	/**
 	 * 鏈嶅姟鍙板垱寤洪棶棰橀〉闈�
 	 * @param request
@@ -357,29 +357,29 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/addchangequestion");
 		//鏉ユ簮浜庝簨浠跺崌绾�
 		Map questionMsg = questionFacade.getQuestionMsgByOrderId(request);
-		
-		
-		
+
+
+
 		//鏌ヨ闂鏉ユ簮鏁版嵁瀛楀吀
 		List froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
-		
+
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		view.addObject("froms", froms);
 		view.addObject("questionMsg", questionMsg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
 		return view;
 	}
-	
+
 	/**
 	 * 鍒涘缓闂鎻愪氦
 	 * @param request
@@ -406,10 +406,10 @@
 							"",
 							SysInfo.Error,"");
 				}
-				
+
 			}
 	}
-	
+
 	/**
 	 * 閫氳繃浼樺厛绾у拰褰卞搷搴︽煡璇㈠搴旂殑绾у埆
 	 */
@@ -419,10 +419,10 @@
 		String influence_id = request.getParameter("influence_id");
 		String customerId = request.getParameter("customer_id");
 		Map levelMap = questionFacade.queryLevel(priority_id,influence_id,customerId);
-		
+
 		WebUtil.write(response, JsonUtil.map2Json(levelMap));
 	}
-	
+
 	/**
 	 * 鍒嗛厤浜哄憳
 	 */
@@ -436,7 +436,7 @@
 		modelAndView.addObject("curnodeId", curnodeId);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎵�鏈夌殑鍒嗛厤浜哄憳
 	 */
@@ -447,7 +447,7 @@
 		modelAndView.addObject("groupList", groupList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎵�鏈夌殑鍒嗛厤浜哄憳
 	 */
@@ -458,7 +458,7 @@
 		modelAndView.addObject("groupList", groupList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ瑙掕壊
 	 */
@@ -469,7 +469,7 @@
 		modelAndView.addObject("groupList", groupList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ瀹㈡埛鑷畾涔夌粍
 	 */
@@ -480,7 +480,7 @@
 		modelAndView.addObject("groupList", groupList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ瀹㈡埛鑷畾涔夌粍
 	 */
@@ -491,7 +491,7 @@
 		modelAndView.addObject("groupList", groupList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 娣诲姞瀹㈡埛鑷畾涔夌粍涓嬬殑浜哄憳
 	 */
@@ -500,21 +500,21 @@
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/addzdyGroupUser");
 		String groupId = request.getParameter("groupId");
 		if(!StringUtil.isEmpty(groupId)){
-			
+
 			modelAndView.addObject("group", new CUSTOM_GROUP(groupId).getBeanMapById());
 		}else{
 			modelAndView.addObject("group", new HashMap());
 		}
-		
+
         Map users = questionFacade.usersbyGroup(request);
-		
+
 		modelAndView.addObject("users", users.get("resList"));
 		modelAndView.addObject("groupuser", users.get("groupuser"));
 		modelAndView.addObject("main", users);
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 娣诲姞瀹㈡埛鑷畾涔夌粍涓嬬殑浜哄憳
 	 */
@@ -523,12 +523,12 @@
 		String groupId = request.getParameter("groupId");
 		String customerId = request.getParameter("customerId");
 		questionFacade.addGroupUser(request);
-		
+
 		return WebUtil.sysInfoPage(request, "鎿嶄綔鎴愬姛锛�",
 				"window.top.hideDialog('zdyadd');window.top.document.getElementById('dialogIframedealer').contentWindow.loadGroup();",
 				SysInfo.Success,"");
 	}
-	
+
 	/**
 	 * 鍒犻櫎瀹㈡埛鑷畾涔夊垎缁�
 	 */
@@ -539,7 +539,7 @@
 		group.setId(id).deleteById();
 		WebUtil.write(response, "1");
 	}
-	
+
 	/**
 	 * 璺宠浆鍒板伐鍗曞鐞嗛〉闈�
 	 * @param request
@@ -548,7 +548,7 @@
 	@RequestMapping("questionDeal.html")
 	public ModelAndView questionDeal(HttpServletRequest request) {
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/questionDeal");
-		
+
 		//鏌ヨ闂鍩烘湰淇℃伅
 		String orderId = request.getParameter("orderId");
 		String flowId = request.getParameter("flowId");
@@ -569,20 +569,20 @@
 
 		//鏌ヨ闂鏉ユ簮鏁版嵁瀛楀吀
 		List froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
-		
+
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
-		
+
 		Map node = questionFacade.getFlowMsg(flowId, WebUtil.getLoginedUserId(request));
 		//node涓虹┖锛屽垯涓哄垎娲惧埌缁�
 		if(StringUtil.isEmpty(ConvertUtil.obj2StrBlank(node.get("ID")))){
 			node = new WORKFLOW_NODE(base.getCurrent_node_id()).getBeanMapById();
 		}
-		 
+
 		String isclose = "";
 		List<Map> closejd = JsonUtil.json2List(ConvertUtil.obj2Str(questionMap.get("closejd")));
 		for(Map map:closejd){
@@ -624,7 +624,7 @@
 		modelAndView.addObject("repeat_mark", questionMap.get("REPEAT_MARK"));
 		return modelAndView;
 	}
-	
+
 	@RequestMapping("anwer.html")
 	public ModelAndView anwer(HttpServletRequest request, HttpServletResponse response) {
 		ModelAndView view = new ModelAndView("/business/pages/question/anwer");
@@ -647,22 +647,22 @@
 		}else{
 			view.addObject("nodeMsg", question);
 		}
-		
+
 		view.addObject("flowId", flowId);
 		view.addObject("nodeId", nodeId);
 		view.addObject("orderId", orderId);
-		
-		
+
+
 		return view;
 	}
-	
-	
+
+
 	@RequestMapping(value="answer.html", method=RequestMethod.POST)
 	public void anwerSubmit(HttpServletRequest request, HttpServletResponse response) {
 		String result = questionFacade.anwerSubmit(request);
 		WebUtil.write(response, result);
 	}
-	
+
 	/**
 	 * 鏌ヨ闂鍩烘湰淇℃伅
 	 */
@@ -675,7 +675,7 @@
 		modelAndView.addObject("baseMsg", baseMsg);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 闂淇敼椤甸潰
 	 * @param request
@@ -691,25 +691,25 @@
 		List<Map> fileList = fileService.getFileList(flowId);
 		questionMap.put("fileList", fileList);
 		view.addObject("question", questionMap);
-		
+
 		//鏌ヨ闂鏉ユ簮鏁版嵁瀛楀吀
 		List froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
-		
+
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
 		view.addObject("eventPri", eventPri);
 		view.addObject("froms", froms);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
 		return view;
 	}
-	
+
 	/**
 	 * 淇敼闂鎻愪氦
 	 * @param request
@@ -719,12 +719,12 @@
 	@RequestMapping(value="editQuestion.html", method=RequestMethod.POST)
 	public ModelAndView editQuestionSubmit(HttpServletRequest request, HttpServletResponse response,SC_WORKFLOW_QUESTION sc_workflow_question) {
 		questionFacade.updateQuestion(request,sc_workflow_question);
-		
+
 		return WebUtil.sysInfoPage(request, "鎿嶄綔鎴愬姛锛�",
                 "window.top.location.reload(true);",
                 SysInfo.Success,"",null);
 	}
-	
+
 	/**
 	 * 璇婃柇鎶ュ憡鍘嗗彶
 	 */
@@ -737,10 +737,10 @@
 		Map baseMsg = new SC_WORKFLOW_QUESTION(orderId).getBeanMapById();
 		modelAndView.addObject("curnodeId", curnodeId);
 		modelAndView.addObject("baseMsg", baseMsg);
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 璇婃柇鎶ュ憡鍘嗗彶鏁版嵁
 	 */
@@ -755,7 +755,7 @@
 		modelAndView.addObject("orderMsg", new SC_WORKFLOW_QUESTION(orderId).getBeanMapById());
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 璇婃柇鎶ュ憡鍘嗗彶
 	 */
@@ -772,7 +772,7 @@
 		modelAndView.addObject("orderMsg", new SC_WORKFLOW_QUESTION(orderId).getBeanMapById());
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 璺宠浆鍒板~鍐欑粨灞�鏂规椤甸潰
 	 */
@@ -784,23 +784,23 @@
 		Map zdMsg = questionFacade.getzdmsgbyId(request);
 		List<Map> fileList = new ArrayList<Map>();
 		if(!StringUtil.isEmpty(type)){
-			
+
 			if("1".equals(type)){
 				fileList=fileService.getFileList(ConvertUtil.obj2StrBlank(zdMsg.get("ZDID")));
-				
+
 			}else{
 				fileList=fileService.getFileList(ConvertUtil.obj2StrBlank(zdMsg.get("ID")));
 			}
-		
+
 		}
-		
+
 		modelAndView.addObject("zdMsg", zdMsg);
 		modelAndView.addObject("type", type);
 		modelAndView.addObject("fileList", fileList);
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 缁撴灉鏂规鎻愪氦
 	 */
@@ -810,9 +810,9 @@
 		return WebUtil.sysInfoPage(request, "鎿嶄綔鎴愬姛锛�",
                 "window.top.document.getElementById('zdReportIframe').contentWindow.queryRecord();window.top.hideDialog('2');",
                 SysInfo.Success,"",null);
-		
+
 	}
-	
+
 	/**
 	 * 璇婃柇鎶ュ憡鍘嗗彶鏁版嵁
 	 */
@@ -823,7 +823,7 @@
 		zd.deleteById();
 		WebUtil.write(response, "1");
 	}
-	
+
 	/**
 	 * 鏌ヨ鏄惁鍙互杩涘叆涓嬩竴涓妭鐐�
 	 */
@@ -832,7 +832,7 @@
 		String issave = questionFacade.issave(request);
 		WebUtil.write(response, issave);
 	}
-	
+
 	/**
 	 * 鍒嗛厤浜哄憳
 	 */
@@ -863,7 +863,7 @@
 		modelAndView.addObject("tempMsg", tempMsg);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鍒嗘淳浜哄憳
 	 */
@@ -886,12 +886,12 @@
 				return WebUtil.sysInfoPage(request, "鎿嶄綔澶辫触锛�",
 						"",
 						SysInfo.Error,"");
-				
+
 			}
 		 }
-		
+
 	}
-	
+
 	/**
 	 * 娴佽浆澶囨敞
 	 */
@@ -900,7 +900,7 @@
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/lzbz");
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 娴佽浆澶囨敞
 	 */
@@ -911,7 +911,7 @@
 	                "window.top.hideDialog('2');",
 	                SysInfo.Success,"/business/pages/question/myQuestion.html");
 	}
-	
+
 	/**
 	 * 宸ュ崟瀹℃牳涓洖閫�
 	 */
@@ -925,7 +925,7 @@
 		modelAndView.addObject("nodeMap", nodeMap);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟瀹℃牳涓洖閫�
 	 */
@@ -937,17 +937,17 @@
 	                "window.top.hideDialog('2');",
 	                SysInfo.Success,"/business/pages/question/myQuestion.html",msg);
 	}
-	
+
 	/**
 	 * 璺宠浆鍒板~鍐欑敵璇峰伐鍗曠粨鏉熸柟妗堥〉闈�
 	 */
 	@RequestMapping(value="adminEndQuestion.html",method=RequestMethod.GET)
 	public ModelAndView adminEndQuestion(HttpServletRequest request,HttpServletResponse response) {
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/adminEndQuestion");
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鐢宠宸ュ崟缁撴潫鏂规鎻愪氦
 	 */
@@ -959,7 +959,7 @@
                 "window.top.hideDialog('10');",
                 SysInfo.Success,"/business/pages/question/myQuestion.html",msg);
 	}
-	
+
 	/**
 	 * 璺宠浆鍒板~鍐欑粨灞�鏂规椤甸潰
 	 */
@@ -977,10 +977,10 @@
 		modelAndView.addObject("ways", ways);
 		modelAndView.addObject("endMsg", endMsg);
 		modelAndView.addObject("question", question);
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 缁撴灉鏂规鎻愪氦
 	 */
@@ -988,24 +988,24 @@
 	public ModelAndView endQuestionsubmit(HttpServletRequest request,HttpServletResponse response) {
 		questionFacade.updateEndQuestion(request);
 		String orderId = request.getParameter("orderId");
-		
+
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/rechange");
 		modelAndView.addObject("orderId", orderId);
 		modelAndView.addObject("bustype", Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION);
 		return modelAndView;
-		
+
 	}
-	
+
 	/**
 	 * 鏌ヨ閲嶅闂宸ュ崟
 	 */
 	@RequestMapping("linkwtOrder.html")
 	public ModelAndView linkwtOrder(HttpServletRequest request) {
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/linkwtOrder");
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鍏宠仈宸ュ崟
 	 */
@@ -1016,7 +1016,7 @@
 		modelAndView.addObject("orders", orders);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 闂鍥為��淇℃伅鎻愪氦
 	 * @param request
@@ -1032,7 +1032,7 @@
 	                "",
 	                SysInfo.Success,"/business/pages/question/myQuestion.html",msg);
 	}
-	
+
 	/**
 	 * 宸ュ崟瀹℃牳涓叧闂�
 	 */
@@ -1047,30 +1047,30 @@
 		modelAndView.addObject("question", question);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟瀹℃牳涓叧闂�
 	 */
 	@RequestMapping(value="closequestion.html", method=RequestMethod.POST)
 	public ModelAndView closequestionsubmit(HttpServletRequest request,HttpServletResponse response) {
-		
+
 		questionFacade.updateResolveType(request);
 		return WebUtil.sysInfoPage(request, "鎿嶄綔鎴愬姛锛�",
                 "window.top.hideDialog('3');",
                 SysInfo.Success,"/business/pages/question/myQuestion.html",null);
 	}
-	
+
 	/**
 	 * 璺宠浆鍒拌鍗曟煡鐪嬮〉闈�
 	 */
 	@RequestMapping("questionDetail.html")
 	public ModelAndView incidentDetail(HttpServletRequest request,HttpServletResponse response) {
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/questionDetail");
-		
+
 		//鏌ヨ闂鍩烘湰淇℃伅
 		String orderId = request.getParameter("orderId");
 		String flowId = request.getParameter("flowId");
-		
+
 		//閫氳繃宸ュ崟缂栧彿鏌ヨ宸ュ崟鍩烘湰淇℃伅
 		Map baseMsg = questionFacade.queryQuestionBaseMsg(orderId);
 		String isopen = questionFacade.getIsOpenQuestion(request);
@@ -1079,10 +1079,10 @@
 		modelAndView.addObject("orderId", orderId);
 		modelAndView.addObject("flowId", flowId);
 		modelAndView.addObject("isopen", isopen);
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 闂澶勭悊鏈嶅姟鎶ュ憡
 	 * @param request
@@ -1098,6 +1098,7 @@
 			String CUSTOMER_ID =ConvertUtil.obj2Str(report.get("CUSTOMER_ID"));
 			if(StringUtil.notEmpty(CUSTOMER_ID)){
 				SC_PARTNER_CUSTOMER_INFO customer_INFO=new SC_PARTNER_CUSTOMER_INFO(CUSTOMER_ID).getInstanceById();
+				if (customer_INFO !=null)
 				report.put("customer_code", customer_INFO.getCustomer_code());
 			}
 			String FIRST_CATEGORY_ID=ConvertUtil.obj2Str(report.get("FIRST_CATEGORY_ID"));
@@ -1122,7 +1123,7 @@
     	view.addObject("fileList", map.get("fileList"));
     	return view;
     }
-    
+
     /**
 	 * 閫�鍥炰俊鎭�
 	 */
@@ -1133,13 +1134,13 @@
 		String nodeId = request.getParameter("nodeId");
 		Map question = new SC_WORKFLOW_QUESTION(orderId).getBeanMapById();
 		WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
-		
+
 		Map nodeMsgMap = new WORKFLOW_NODE(node.getSource_node_instance_id()).getBeanMapById();
 		nodeMsgMap.put("NAME", question.get("NAME"));
 		modelAndView.addObject("nodeMsg", nodeMsgMap);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟鎸傝捣
 	 */
@@ -1151,29 +1152,29 @@
 		modelAndView.addObject("ways", ways);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟鎸傝捣
 	 */
 	@RequestMapping(value="questiongq.html", method=RequestMethod.POST)
 	public ModelAndView questiongqsubmit(HttpServletRequest request,HttpServletResponse response) {
-		
+
 		questionFacade.updateQuestiongq(request);
 		return WebUtil.sysInfoPage(request, "鎿嶄綔鎴愬姛锛�",
                 "window.top.hideDialog('3');",
                 SysInfo.Success,"/business/pages/question/myQuestion.html",null);
 	}
-	
+
 	/**
 	 * 鏌ヨ鎸傝捣鍘嗗彶
 	 */
 	@RequestMapping("gqhistoryList.html")
 	public ModelAndView gqhistoryList(HttpServletRequest request) {
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/gqhistoryList");
-		
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎸傝捣鍘嗗彶鏁版嵁
 	 */
@@ -1184,7 +1185,7 @@
 		modelAndView.addObject("gqList", gqList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟寮�鍚�
 	 */
@@ -1193,7 +1194,7 @@
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/questionopen");
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 宸ュ崟寮�鍚�
 	 */
@@ -1204,7 +1205,7 @@
 	                "window.top.hideDialog('5');",
 	                SysInfo.Success,"/business/pages/question/myQuestion.html",null);
 	}
-	
+
 	/**
 	 * 璺宠浆鍒版垜鐨勫伐鍗曟睜椤甸潰
 	 */
@@ -1214,14 +1215,14 @@
 		String type = request.getParameter("type");
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.querymyQuestionpoolCount(request);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		modelAndView.addObject("c", msgCount);
 		//鏌ヨ宸ュ崟绫诲瀷
 		Map<String, String> state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE;
 		List ways = new ArrayList();
-		for (Map.Entry<String, String> entry : state.entrySet()) {  
+		for (Map.Entry<String, String> entry : state.entrySet()) {
 			String key = entry.getKey();
 			String value = entry.getValue();
 			Map map = new HashMap();
@@ -1235,11 +1236,11 @@
 			ways.add(map);
 		}
 		modelAndView.addObject("types", ways);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		modelAndView.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
@@ -1248,7 +1249,7 @@
 		modelAndView.addObject("data", map);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎴戠殑宸ュ崟姹犳暟鎹�
 	 */
@@ -1259,11 +1260,11 @@
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
 		PageInfo orderList = questionFacade.myquestionpoolData(pageInfo,params);
-		
+
 		modelAndView.addObject("orders", orderList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎴戠殑宸ュ崟姹犳暟鎹�
 	 */
@@ -1275,8 +1276,8 @@
 		int count = questionFacade.myquestionpoolCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
-	
+
+
 	/**
 	 * 浜嬩欢鏈嶅姟鍙伴椤�(鎴戠殑)
 	 * @param model
@@ -1297,32 +1298,32 @@
 		model.addAttribute("data", map);
 		return "/business/pages/question/myQuestionIndex";
 	}
-	
-	
+
+
 	@RequestMapping(value="myQuestionIndexLoad.html")
 	public String myQuestionIndexLoad(Model model,HttpServletRequest request,HttpServletResponse response){
 		Map<String, String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getUserId(request));
-		
+
 		//宸ュ崟姹犻棶棰樻暟閲�
-		int poolCount = questionFacade.myquestionpoolCount(params); 
+		int poolCount = questionFacade.myquestionpoolCount(params);
 		//寰呭鐞嗛棶棰樻暟閲�
 		params.put("type","1");
-		int pendingCount = questionFacade.querymyQuestionOrderNodeCount(params); 
+		int pendingCount = questionFacade.querymyQuestionOrderNodeCount(params);
 		//杩涜涓棶棰樻暟閲�
 		params.put("type","2");
-		int inHandCount = questionFacade.querymyQuestionOrderNodeCount(params); 
+		int inHandCount = questionFacade.querymyQuestionOrderNodeCount(params);
 		//宸插鐞�
 		params.put("type","3");
-		int processedCount = questionFacade.querymyQuestionOrderNodeCount (params); 
-				
+		int processedCount = questionFacade.querymyQuestionOrderNodeCount (params);
+
 		model.addAttribute("poolCount",poolCount);
 		model.addAttribute("pendingCount",pendingCount);
 		model.addAttribute("inHandCount",inHandCount);
 		model.addAttribute("processedCount",processedCount);
 		return "/business/pages/question/myQuestionIndexLoad";
 	}
-	
+
 	/**
 	 * 鏌ヨ鏈�杩戜竴鏈堥棶棰樻暟閲�
 	 * @param request
@@ -1344,8 +1345,8 @@
 		Map<String, String> params = ParamsMapUtil.getParameterMap(request);
 		Map info = questionFacade.getLastMonthQuestionLv(params);
 		WebUtil.write(response, JsonUtil.map2Json(info));
-	} 
-	
+	}
+
 	/**
 	 * 鏌ヨ鏈�杩戜竴鏈堥棶棰樹紭鍏堢骇鍒嗘瀽
 	 * @param request
@@ -1356,8 +1357,8 @@
 		Map<String, String> params = ParamsMapUtil.getParameterMap(request);
 		Map info = questionFacade.getLastMonthQuestionPri(params);
 		WebUtil.write(response, JsonUtil.map2Json(info));
-	} 
-	
+	}
+
 	/**
 	 * 鏌ヨ鏈�杩戜竴鏈堥棶棰樺奖鍝嶅害鍒嗘瀽
 	 * @param request
@@ -1369,8 +1370,8 @@
 		Map info = questionFacade.getLastMonthQuestionEffect(params);
 		//System.out.println("json--------------------------"+JsonUtil.map2Json(info));
 		WebUtil.write(response, JsonUtil.map2Json(info));
-	} 
-	
+	}
+
 	/**
 	 * 鏌ヨ鏈�杩戜竴鏈堟湇鍔$洰褰曢棶棰樻暟閲�
 	 * @param request
@@ -1382,8 +1383,8 @@
 		Map info = questionFacade.getLastMonthQuestionServer(params);
 		WebUtil.write(response, JsonUtil.map2Json(info));
 	}
-	
-	
+
+
 	/**
 	 * 闂寰呭搷搴斿垪琛ㄩ〉闈�
 	 * @param request
@@ -1399,15 +1400,15 @@
 		params.put("type", type);
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.querymyQuestionNodeCount(params);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		view.addObject("c", msgCount);
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
@@ -1418,17 +1419,17 @@
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
-		
-		
+
+
+
 		params.put("type","2");
 		Map map = questionFacade.getOrderNum(params);
 		view.addObject("data", map);
 		return view;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鍒楄〃鏁版嵁
 	 */
@@ -1443,9 +1444,9 @@
 		modelAndView.addObject("type", params.get("type"));
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鎬绘暟閲�
 	 */
@@ -1457,7 +1458,7 @@
 		int count = questionFacade.querymyQuestionOrderNodeCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 闂寰呭搷搴斿垪琛ㄩ〉闈�
 	 * @param request
@@ -1469,9 +1470,9 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/myquestionEndList");
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
@@ -1479,23 +1480,23 @@
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
 		view.addObject("type", type);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getLoginedUserId(request));
 		params.put("type","2");
 		Map map = questionFacade.getOrderNum(params);
 		view.addObject("data", map);
-		
+
 		return view;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鍒楄〃鏁版嵁
 	 */
@@ -1510,9 +1511,9 @@
 		modelAndView.addObject("type", params.get("type"));
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鎬绘暟閲�
 	 */
@@ -1524,7 +1525,7 @@
 		int count = questionFacade.querymyQuestionEndCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 闂鍌姙
 	 * @return
@@ -1533,7 +1534,7 @@
 	public String questionRemind(HttpServletRequest request,HttpServletResponse response){
 		return "/business/pages/question/questionRemind";
 	}
-	
+
 	@RequestMapping(value="questionRemind.html",method=RequestMethod.POST)
 	public ModelAndView doQuestionRemind(HttpServletRequest request,HttpServletResponse response){
 		String reminder = WebUtil.getLoginUser(request).getLoginUser().get("ZSXM").toString();
@@ -1544,7 +1545,7 @@
                 "window.top.hideDialog('0');",
                 SysInfo.Success,"");
 	}
-	
+
 	/**
 	 * 鎵�鏈夊伐鍗曟睜
 	 */
@@ -1553,14 +1554,14 @@
 		ModelAndView modelAndView = new ModelAndView("/business/pages/question/questionpool");
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.queryQuestionpoolCount(request);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		modelAndView.addObject("c", msgCount);
 		//鏌ヨ宸ュ崟绫诲瀷
 		Map<String, String> state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE;
 		List ways = new ArrayList();
-		for (Map.Entry<String, String> entry : state.entrySet()) {  
+		for (Map.Entry<String, String> entry : state.entrySet()) {
 			String key = entry.getKey();
 			String value = entry.getValue();
 			Map map = new HashMap();
@@ -1569,21 +1570,21 @@
 			ways.add(map);
 		}
 		modelAndView.addObject("types", ways);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		modelAndView.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("type","1");
 		Map map = questionFacade.getOrderNum(params);
 		modelAndView.addObject("data", map);
-		
-		
+
+
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎴戠殑宸ュ崟姹犳暟鎹�
 	 */
@@ -1593,11 +1594,11 @@
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		PageInfo orderList = questionFacade.questionpoolData(pageInfo,params);
-		
+
 		modelAndView.addObject("orders", orderList);
 		return modelAndView;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎴戠殑宸ュ崟姹犳暟鎹�
 	 */
@@ -1608,7 +1609,7 @@
 		int count = questionFacade.questionpoolCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 闂寰呭搷搴斿垪琛ㄩ〉闈�
 	 * @param request
@@ -1620,37 +1621,37 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/questionNodeList");
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.queryQuestionNodeCount(request);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		view.addObject("c", msgCount);
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
 		//鏌ヨ浜嬩欢褰卞搷搴︽暟鎹瓧鍏�
 		List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 		view.addObject("eventDg", eventDg);
-		
+
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("type","1");
 		Map map = questionFacade.getOrderNum(params);
 		view.addObject("data", map);
-		
+
 		return view;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟寰呭搷搴斿垪琛ㄦ暟鎹�
 	 */
@@ -1663,9 +1664,9 @@
 		modelAndView.addObject("orderList", list);
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟寰呭搷搴旀�绘暟閲�
 	 */
@@ -1676,7 +1677,7 @@
 		int count = questionFacade.queryQuestionOrderNodeCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 闂杩涜涓垪琛ㄩ〉闈�
 	 * @param request
@@ -1688,15 +1689,15 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/questionJxzList");
 		//鏌ヨ宸ュ崟鏁伴噺锛岄�氳繃绫诲瀷鍒ゆ柇鏌ヨ閭g绫诲瀷鐨勬暟閲�
 		Map msgCount = questionFacade.queryQuestionJxzNodeCount(request);
-		
+
 		System.out.println(JsonUtil.map2Json(msgCount));
-		
+
 		view.addObject("c", msgCount);
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
@@ -1706,7 +1707,7 @@
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("type","1");
@@ -1714,9 +1715,9 @@
 		view.addObject("data", map);
 		return view;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟杩涜涓垪琛ㄦ暟鎹�
 	 */
@@ -1729,9 +1730,9 @@
 		modelAndView.addObject("orderList", list);
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟杩涜涓�绘暟閲�
 	 */
@@ -1742,7 +1743,7 @@
 		int count = questionFacade.queryQuestionJxzCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
+
 	/**
 	 * 闂寰呭搷搴斿垪琛ㄩ〉闈�
 	 * @param request
@@ -1754,9 +1755,9 @@
 		ModelAndView view = new ModelAndView("/business/pages/question/questionEndList");
 		//鏌ヨ闂绫诲瀷鏁版嵁瀛楀吀
 		List sources = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
-		
+
 		view.addObject("sources", sources);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鐨勪簨浠朵紭鍏堢骇
 		List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
 		view.addObject("eventPri", eventPri);
@@ -1767,7 +1768,7 @@
 		//瀹㈡埛鍒楄〃
 		List<Map> cusList = incidentFacade.getCustomerList();
 		view.addObject("customers", cusList);
-		
+
 		//瀹氫箟鍙傛暟Map
 		Map<String,String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("type","1");
@@ -1775,9 +1776,9 @@
 		view.addObject("data", map);
 		return view;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鍒楄〃鏁版嵁
 	 */
@@ -1791,9 +1792,9 @@
 		modelAndView.addObject("type", params.get("type"));
 		return modelAndView;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鏌ヨ闂宸ュ崟鎬绘暟閲�
 	 */
@@ -1804,8 +1805,8 @@
 		int count = questionFacade.queryQuestionEndCount(params);
 		WebUtil.write(response, String.valueOf(count));
 	}
-	
-	
+
+
 	/**
 	 * 闂棣栭〉
 	 * @param model
@@ -1825,23 +1826,23 @@
 		model.addAttribute("data", map);
 		return "/business/pages/question/questionIndex";
 	}
-	
-	
+
+
 	@RequestMapping(value="questionIndexLoad.html")
 	public String questionIndexLoad(Model model,HttpServletRequest request,HttpServletResponse response){
 		Map<String, String> params = ParamsMapUtil.getParameterMap(request);
 		params.put("userId", WebUtil.getUserId(request));
-		
+
 		//宸ュ崟姹犻棶棰樻暟閲�
-		int poolCount = questionFacade.questionpoolCount(params); 
+		int poolCount = questionFacade.questionpoolCount(params);
 		//寰呭鐞嗛棶棰樻暟閲�
-		int pendingCount = questionFacade.queryQuestionOrderNodeCount(params); 
+		int pendingCount = questionFacade.queryQuestionOrderNodeCount(params);
 		//杩涜涓棶棰樻暟閲�
-		int inHandCount = questionFacade.queryQuestionJxzCount(params); 
+		int inHandCount = questionFacade.queryQuestionJxzCount(params);
 		//宸叉寕璧�
 		params.put("type", "6");
-		int sleepCount = questionFacade.queryQuestionEndCount(params); 
-				
+		int sleepCount = questionFacade.queryQuestionEndCount(params);
+
 		model.addAttribute("poolCount",poolCount);
 		model.addAttribute("pendingCount",pendingCount);
 		model.addAttribute("inHandCount",inHandCount);
@@ -1856,7 +1857,7 @@
 		String user = questionFacade.queryQuestionDealer(request);
 		WebUtil.write(response, user);
 	}
-	
+
 	/**
 	 * 鏌ヨ闂宸ュ崟澶勭悊浜�
 	 */
@@ -1865,5 +1866,5 @@
 		String user = questionFacade.queryQuestionGroupDealer(request);
 		WebUtil.write(response, user);
 	}
-	
+
 }
diff --git a/src/cn/ksource/web/facade/change/ChangeFacadeImpl.java b/src/cn/ksource/web/facade/change/ChangeFacadeImpl.java
index dd22503..135561b 100644
--- a/src/cn/ksource/web/facade/change/ChangeFacadeImpl.java
+++ b/src/cn/ksource/web/facade/change/ChangeFacadeImpl.java
@@ -4,20 +4,14 @@
 import cn.ksource.core.dao.BaseDao;
 import cn.ksource.core.dao.SqlParameter;
 import cn.ksource.core.page.PageInfo;
-import cn.ksource.core.util.ConvertUtil;
-import cn.ksource.core.util.DateUtil;
-import cn.ksource.core.util.JsonUtil;
-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.*;
 import cn.ksource.web.Constants;
-import cn.ksource.web.controller.wechat.util.WechatConstants;
 import cn.ksource.web.entity.WorkFlowSupportEntity;
 import cn.ksource.web.facade.dsl.DSLFacade;
 import cn.ksource.web.facade.incident.IncidentFacade;
-import cn.ksource.web.facade.message.MessageFacade;
 import cn.ksource.web.service.WorkOrderCodeService;
 import cn.ksource.web.service.device.DeviceService;
 import cn.ksource.web.service.file.FileService;
@@ -283,24 +277,24 @@
             if (flowstate.equals("1")) {
                 builder.append(" SELECT DISTINCT D.* FROM ( ");
                 //鏌ヨ澶勭悊浜烘槸鎴戠殑
-                builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE 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.BUSINESS_ID, B.BUSINESSTYPE, B.CREATERID, B.CREATERNAME, B.CREATETIME, B.CURRENT_DEAL_ROLEIDA, B.CURRENT_DEAL_ROLENAME, B.CURRENT_DEALER_ID, B.CURRENT_DEALER_NAME, B.CURRENT_NODE_ID, B.CURRENT_NODE_NAME, B.CUSTOMER_ID, B.CUSTOMER_NAME, B.DEAL_TYPE, B.ENDTIME, B.ID, B.MAINFLOWID, B.ORDER_CODE, B.PROJECT_ID, B.PROJECT_NAME, B.SUB_CUSTOMER_ID, B.SUB_CUSTOMER_NAME, B.WF_TEMPLATE_ID, B.WFNAME, B.WFSTATE, B.WORKFLOWTYPE,C.NAME,C.CONTACT_NAME,C.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jddcl ");
                 builder.append(")D");
                 paramMap.put("jddcl", 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.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE 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.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID  AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdjxz");
                 builder.append(")D");
                 paramMap.put("jdjxz", Constants.WORKFLOW_NODE_FLOWSTATE_DOING);
             } else {
                 builder.append(" SELECT DISTINCT D.* FROM ( ");
-                builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID  FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE 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.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID  FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE C  WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID  AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdywc ");
                 builder.append(")D");
                 paramMap.put("jdywc", Constants.WORKFLOW_NODE_FLOWSTATE_FINISH);
             }
         } else {
             builder.append(" SELECT DISTINCT D.* FROM ( ");
             //鏌ヨ澶勭悊浜烘槸鎴戠殑
-            builder.append(" SELECT B.*,C.NAME,C.CONTACT_NAME,C.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE 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.RISK_LEVEL_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_CHANGE C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId ");
             builder.append(")D");
         }
         builder.append(" WHERE 1=1 ");
@@ -894,7 +888,7 @@
 
     @Override
     public List<Map> getCcbResult(String flowId) {
-        String sqla = "SELECT * FROM SC_WORKFLOW_CHANGE_CCBRESULT WHERE FLOW_ID = :flow_id GROUP BY SAMEKEY ORDER BY NUM ";
+        String sqla = "SELECT SAMEKEY,NUM FROM SC_WORKFLOW_CHANGE_CCBRESULT WHERE FLOW_ID = :flow_id GROUP BY SAMEKEY,NUM ORDER BY NUM ";
         List<Map> fzList = baseDao.queryForList(sqla, new SqlParameter("flow_id", flowId));
         for (Map mapa : fzList) {
             String sqlb = "SELECT * FROM SC_WORKFLOW_CHANGE_CCBRESULT WHERE SAMEKEY=:sameKey ORDER BY IS_END ,IS_MAIN";
@@ -920,7 +914,7 @@
     public List<Map> getCcbTjResult(String flowId) {
         Map param = new HashMap();
         param.put("flow_id", flowId);
-        String sqla="SELECT * FROM SC_WORKFLOW_CHANGE_CCBRESULT WHERE FLOW_ID = :flow_id GROUP BY SAMEKEY ORDER BY NUM";
+        String sqla="SELECT SAMEKEY,NUM FROM SC_WORKFLOW_CHANGE_CCBRESULT WHERE FLOW_ID = :flow_id GROUP BY SAMEKEY,NUM ORDER BY NUM";
         List<Map> ccbList = baseDao.queryForList(sqla,param);
         for(Map mapa:ccbList){
             param.put("sameKey", mapa.get("SAMEKEY"));
@@ -1772,7 +1766,7 @@
         recordService.addRecord(record);
         return resultMap;
     }
-    
+
     @Override
 	public int getDslLinkCiCount(HttpServletRequest request) {
 		String dslId = request.getParameter("id");
@@ -1788,7 +1782,7 @@
 		}else{
 			sql = "SELECT COUNT(A.ID)  FROM CMDB_DSL_LINK A WHERE  A.DSL_ID = :dslId AND A.FLOW_ID = :flowId AND A.STATE <> 3 ";
 		}
-		
+
 		Map param = new HashMap();
 		param.put("dslId", dslId);
 		param.put("flowId", flowId);
@@ -1811,20 +1805,20 @@
 		}else{
 			sql = "SELECT A.*,B.CINAME,B.SEARCHCODE SEACHCODE,B.STATE USINGSTATE,(SELECT E.NAME FROM CMDB_CI_CATEGORY E WHERE B.LV1_ID = E.ID) AS FIRSTLEVELNAME,(SELECT C.NAME FROM CMDB_CI_CATEGORY C WHERE B.LV2_ID = C.ID) AS SECONDLEVELNAME,(SELECT D.NAME FROM CMDB_CI_CATEGORY D WHERE B.LV3_ID = D.ID) AS THIRDLEVELNAME FROM CMDB_DSL_LINK A,CMDB_CI_BASE B WHERE A.CI_ID = B.ID AND A.DSL_ID = :dslId AND A.FLOW_ID = :flowId  ";
 		}
-		
+
 		Map param = new HashMap();
 		param.put("dslId", dslId);
 		param.put("flowId", flowId);
 		PageInfo info = baseDao.queryforSplitPageInfo(request, sql, param);
 		return info;
 	}
-	
+
 	@Override
 	public int queryDslVersionCount(HttpServletRequest request) {
         StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_VERSION A  WHERE A.DSL_ID = :dslId  ");
-		
+
 		String dslId = request.getParameter("dslId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		int count = baseDao.queryForInteger(builder.toString(), paramMap);
@@ -1834,14 +1828,14 @@
 	@Override
 	public PageInfo queryDslVersionData(HttpServletRequest request) {
         StringBuilder builder = new StringBuilder("SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID  WHERE A.DSL_ID = :dslId  ORDER BY A.CREATE_TIME DESC  ");
-		
+
 		String dslId = request.getParameter("dslId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
-		return pageInfo;        
+
+		return pageInfo;
 	}
 
 	@Override
@@ -1857,17 +1851,17 @@
 			builder.append(" AND SECOND_CONFIG_CATE = :folderId ");
 			paramMap.put("folderId", id);
 		}
-		
-		
+
+
 		int count = baseDao.queryForInteger(builder.toString(), paramMap);
-		
+
 		return count;
 	}
 
 	@Override
 	public PageInfo queryDslConfigRecordData(HttpServletRequest request,
 			String versionId) {
-		
+
 		String flowId = request.getParameter("flowId");
 		String id = request.getParameter("id");
 		StringBuilder builder = new StringBuilder("SELECT B.*,A.FILE_NAME,A.FILE_SIZE,A.USER_NAME,A.CREATE_TIME FROM DSL_CONFIG_FILE A,DSL_CONFIG_FILE_CHANGE_DETAIL B WHERE B.FILE_ID = A.ID AND B.DSL_VERSION_ID = :versionId  AND B.FLOW_ID = :flowId ");
@@ -1878,11 +1872,11 @@
 			builder.append(" AND SECOND_CONFIG_CATE = :folderId ");
 			paramMap.put("folderId", id);
 		}
-		
+
 		builder.append(" ORDER BY A.CREATE_TIME DESC ");
-		
+
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		List<Map> files = pageInfo.getDatas();
 		if(null!=files && files.size()>0) {
 			for(Map file : files) {
@@ -1891,13 +1885,13 @@
 		}
 		return pageInfo;
 	}
-	
+
 	@Override
 	public List<Map> getDslciData(HttpServletRequest request) {
 		String flowId = request.getParameter("flowId");
 		String dslId = request.getParameter("dslId");
 		String projectId = request.getParameter("proId");
-		
+
 		/*if(!StringUtil.notEmpty(projectId)) {
 			WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
 			projectId = base.getProject_id();
@@ -1906,12 +1900,12 @@
 		param.put("project_id", projectId);
 		param.put("flow_id", flowId);
 		param.put("dsl_id", dslId);
-		
+
 		StringBuffer sql1 = new StringBuffer("select * from (SELECT 1 AS UPDTYPE, A.*,(SELECT E.NAME FROM CMDB_CI_CATEGORY E WHERE A.LV1_ID = E.ID) AS FIRSTLEVELNAME,(SELECT C.NAME FROM CMDB_CI_CATEGORY C WHERE A.LV2_ID = C.ID) AS SECONDLEVELNAME,(SELECT D.NAME FROM CMDB_CI_CATEGORY D WHERE A.LV3_ID = D.ID) AS THIRDLEVELNAME FROM CMDB_CI_BASE A WHERE A.STATE = 1 AND  A.ID NOT IN  (SELECT B.CI_ID FROM CMDB_DSL_LINK B WHERE  B.DSL_ID = :dsl_id  )");//A.LEIX = 1 AND
-		
+
 		StringBuffer sql2 = new StringBuffer("SELECT 2 AS UPDTYPE,A.*,(SELECT E.NAME FROM CMDB_CI_CATEGORY E WHERE A.LV1_ID = E.ID) AS FIRSTLEVELNAME,(SELECT C.NAME FROM CMDB_CI_CATEGORY C WHERE A.LV2_ID = C.ID) AS SECONDLEVELNAME,(SELECT D.NAME FROM CMDB_CI_CATEGORY D WHERE A.LV3_ID = D.ID) AS THIRDLEVELNAME FROM CMDB_CI_BASE A WHERE A.STATE = 1 AND  A.ID IN (SELECT B.CI_ID FROM CMDB_DSL_LINK B WHERE  B.FLOW_ID IS NULL AND B.DSL_ID = :dsl_id  )");
 		sql1.append(" UNION ALL ");
-		
+
 		sql1.append(sql2);
 		sql1.append(" ) s where 1 = 1");
 		String searchCode = request.getParameter("searchCode");
@@ -1919,13 +1913,13 @@
 			sql1.append(" AND SEARCHCODE LIKE :searchCode ");
 			param.put("searchCode", "%"+searchCode+"%");
 		}
-		
+
 		String ciName = request.getParameter("cmdbName");
 		if(StringUtil.notEmpty(ciName)) {
 			sql1.append(" AND CINAME LIKE :cmdbName ");
 			param.put("cmdbName", "%"+ciName+"%");
 		}
-	
+
 		String cate = request.getParameter("categoryId");
 		if(StringUtil.notEmpty(cate)) {
 			sql1.append(" AND LV3_ID = :cate ");
@@ -1961,15 +1955,15 @@
 		long create_time = DateUtil.getCurrentDate14();
 		List<SqlParameter> listParams = new ArrayList<SqlParameter>();
 		List<SqlParameter> updParams = new ArrayList<SqlParameter>();
-		
+
 		String[] linkIds = ids.split(",");
-		
+
 		String userId = "";
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		List<SqlParameter> listParamsRecord = new ArrayList<SqlParameter>();
-		
+
 		for(String linkId : linkIds) {
 			SqlParameter sqlParameter = new SqlParameter();
 			String citype[] = linkId.split("-");
@@ -1988,28 +1982,28 @@
 			}else{
 				updParams.add(sqlParameter);
 			}
-			
+
 		}
-		
+
 		baseDao.executeBatch(insertSql,listParams);
 		baseDao.executeBatch(updSql,updParams);
-		
+
 		return "1";
 	}
-	
+
 	@Override
 	public List changeFileReport(HttpServletRequest request) {
 		String partnerId = "";
 		String flowId = request.getParameter("flowId");
 		Map paramMap = new HashMap();
 		paramMap.put("flowId", flowId);
-		
+
 		String selectSql = "SELECT A.*,B.FILE_NAME,B.FILE_SIZE,B.USER_NAME AS UPLOAD_USER FROM DSL_CONFIG_FILE_CHANGE_DETAIL A,DSL_CONFIG_FILE B WHERE A.FILE_ID = B.ID AND A.FLOW_ID = :flowId ";
 		List<Map> records = baseDao.queryForList(selectSql,paramMap);
-		
+
 		Map cacheRecord = new HashMap();
 		if(null!=records && records.size()>0) {
-			
+
 			for(Map record : records) {
 				String versionId = ConvertUtil.obj2StrBlank(record.get("DSL_VERSION_ID"));
 				String first_config_cate = ConvertUtil.obj2StrBlank(record.get("first_config_cate"));
@@ -2026,11 +2020,11 @@
 				}
 			}
 		}
-		
-		
-		
-		
-		
+
+
+
+
+
 		StringBuilder selectCateSql = new StringBuilder("SELECT B.ID AS VERSION_ID,A.FIRST_CONFIG_CATE,(SELECT A1.NAME FROM DSL_CONFIG A1 WHERE A.FIRST_CONFIG_CATE = A1.ID) AS FIRST_NAME,A.SECOND_CONFIG_CATE,(SELECT A2.NAME FROM DSL_CONFIG A2 WHERE A.SECOND_CONFIG_CATE = A2.ID) AS SECOND_NAME FROM DSL_CONFIG_FILE_CHANGE_DETAIL A,DSL_VERSION B,PROJECT_DSL C WHERE A.DSL_VERSION_ID = B.ID AND B.DSL_ID = C.ID AND A.FLOW_ID = :flowId  GROUP BY B.ID,A.FIRST_CONFIG_CATE,A.SECOND_CONFIG_CATE");
 		List<Map> cates = baseDao.queryForList(selectCateSql.toString(),paramMap);
 		if(cates.size()==0){
@@ -2041,72 +2035,72 @@
 			selectCateSql = new StringBuilder("SELECT C.* FROM PROJECT_DSL C WHERE C.FLOW_ID = :flowId ");
 			cates = baseDao.queryForList(selectCateSql.toString(),paramMap);
 		}
-		
+
 		Map cacheFirst = new HashMap();
-		
+
 		Map version = new HashMap();
-		
-		
+
+
 		if(null!=cates && cates.size()>0) {
 			for(Map cate : cates) {
 				String versionId = ConvertUtil.obj2StrBlank(cate.get("VERSION_ID"));
 				String first_config_cate = ConvertUtil.obj2StrBlank(cate.get("FIRST_CONFIG_CATE"));
-				
+
 				String unitKey = versionId+"-"+first_config_cate;
-				
+
 				String first_name = ConvertUtil.obj2StrBlank(cate.get("FIRST_NAME"));
 				String second_config_cate = ConvertUtil.obj2StrBlank(cate.get("SECOND_CONFIG_CATE"));
 				String second_name = ConvertUtil.obj2StrBlank(cate.get("SECOND_NAME"));
-				
+
 				List result = new ArrayList();
 				if(version.containsKey(versionId)) {
 					result = (List)version.get(versionId);
 				} else {
 					version.put(versionId, result);
 				}
-				
-				
+
+
 				if(cacheFirst.containsKey(unitKey)) {
 					List secondCates = (List)cacheFirst.get(unitKey);
 					Map secondMap = new HashMap();
 					secondMap.put("second_config_cate", second_config_cate);
 					secondMap.put("second_name", second_name);
-					
+
 					String key = unitKey+"-"+second_config_cate;
 					secondMap.put("files", cacheRecord.get(key));
-					
-					
+
+
 					secondCates.add(secondMap);
 				} else {
 					Map firstMap = new HashMap();
 					firstMap.put("key", unitKey);
 					firstMap.put("first_name", first_name);
-					
+
 					List secondCates = new ArrayList();
 					Map secondMap = new HashMap();
 					secondMap.put("second_config_cate", second_config_cate);
 					secondMap.put("second_name", second_name);
-					
+
 					String key = unitKey+"-"+second_config_cate;
 					secondMap.put("files", cacheRecord.get(key));
-					
-					
+
+
 					secondCates.add(secondMap);
-					
+
 					firstMap.put("seconds", secondCates);
-					
+
 					cacheFirst.put(unitKey,secondCates);
 					result.add(firstMap);
 				}
 			}
 		}
-		
-		
-		
-		
+
+
+
+
 		String selectVersionSql = new String("SELECT C.DSL_SEARCHCODE,C.ID AS DSL_ID,C.DSL_NAME,B.ID AS VERSION_ID,B.EDITION,(SELECT B1.EDITION FROM DSL_VERSION B1 WHERE B.LAST_VERSION = B1.ID) AS LAST_VERSION FROM DSL_CONFIG_FILE_CHANGE_DETAIL A,DSL_VERSION B,PROJECT_DSL C  WHERE A.DSL_VERSION_ID = B.ID AND B.DSL_ID = C.ID AND A.FLOW_ID = :flowId  GROUP BY C.ID,B.ID");
 		List<Map> versions = baseDao.queryForList(selectVersionSql,paramMap);
-		
+
 		if(versions.size()==0){
 			selectVersionSql = new String("SELECT C.DSL_SEARCHCODE,C.ID AS DSL_ID,C.DSL_NAME,B.ID AS VERSION_ID,B.EDITION,(SELECT B1.EDITION FROM DSL_VERSION B1 WHERE B.LAST_VERSION = B1.ID) AS LAST_VERSION FROM DSL_VERSION B,PROJECT_DSL C WHERE B.DSL_ID = C.ID AND B.CREATE_FLOW_ID = :flowId  GROUP BY B.ID");
 			versions = baseDao.queryForList(selectVersionSql.toString(),paramMap);
@@ -2115,11 +2109,11 @@
 			selectVersionSql = new String("SELECT C.*,C.ID AS DSL_ID FROM PROJECT_DSL C WHERE C.FLOW_ID = :flowId ");
 			versions = baseDao.queryForList(selectVersionSql.toString(),paramMap);
 		}
-		
+
 		List<Map> resultList = new ArrayList<Map>();
 
 		Map cacheDsl = new HashMap();
-		
+
 		if(null!=versions && versions.size()>0) {
 			for(Map ver : versions) {
 				String dsl_searchcode = ConvertUtil.obj2StrBlank(ver.get("DSL_SEARCHCODE"));
@@ -2132,7 +2126,7 @@
 				Map v = new HashMap();
 				v.put("version_id", version_id);
 				v.put("edition", edition);
-				
+
 				List<Map> cs = (List<Map>)version.get(version_id);
 				System.out.println("vs------->"+JsonUtil.list2Json(cs));
 				int totalNum = 0;
@@ -2156,7 +2150,7 @@
 								num = num+1;
 								ej.put("sjNum", 1);
 							}
-							
+
 						}
 					} else {
 						num = num+1;
@@ -2164,7 +2158,7 @@
 					totalNum += num;
 					yj.put("num", num);
 				}
-				
+
 				v.put("cates", cs);
 				if(cacheDsl.containsKey(dslId)) {
 					List vs = (List)cacheDsl.get(dslId);
@@ -2183,13 +2177,13 @@
 				}
 			}
 		}
-		
-		
-		
-		
-		
-		
-		
+
+
+
+
+
+
+
 		System.out.println(JsonUtil.list2Json(resultList));
 		return resultList;
 	}
@@ -2198,7 +2192,7 @@
 	public void updatefinishnode(HttpServletRequest request) {
 		String userId = WebUtil.getLoginedUserId(request);
 		String userName = ConvertUtil.obj2StrBlank(WebUtil.getLoginUser(request).getLoginUser().get("ZSXM"));
-		
+
 		String flowId = request.getParameter("flowId");
 		String curnodeId = request.getParameter("curnodeId");
 	    String nodeId = request.getParameter("nodeId");
@@ -2238,7 +2232,7 @@
 	    	.setIs_end(2).setIs_main(2).setCreate_id(userId).setCreate_name(userName).
 	    	setSamekey(sameKey).setNum(num).insert();
 	    }
-	    
+
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
 		finishEntity.setDeal_result(1);
 		finishEntity.setDeal_note_title(userName+"瀹屾垚浜嗚妭鐐�");
@@ -2246,7 +2240,7 @@
 		WORKFLOW_BASE base = new WORKFLOW_BASE(node.getFlowid()).getInstanceById();
 		//鍏抽棴褰撳墠鑺傜偣
 		workflowCoreService.finishNode(base, node, finishEntity);
-		
+
 	}
 	@Override
 	public void updateResolveType(HttpServletRequest request) {
@@ -2258,7 +2252,7 @@
 		//淇敼鍙樻洿淇℃伅鐨勮В鍐虫柟寮�
 		SC_WORKFLOW_CHANGE question = new SC_WORKFLOW_CHANGE(orderId).getInstanceById();
 		question.setId(orderId).setResolve_type_id(solveWay).setResolve_type_name(solveWayName).setState(ConvertUtil.obj2Integer(Constants.SC_WORKFLOW_CHANGE_STATE_YGB)).update();
-		
+
 		//娣诲姞澶勭悊璁板綍
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String createUserId = ConvertUtil.obj2StrBlank(user.get("ID"));
@@ -2276,11 +2270,11 @@
 		record.setDeal_user_name(createUserName);
 		record.setBusiness_id(flowId);
 		record.setNode_id(curnodeid).setNode_name(nodeName);
-		
+
 		recordService.addRecord(record);
 		fileService.uploadFile(request, id, flowId, null, null);
 		//fileService.newuploadFileAll(request,id,flowId,Constants.GG_FOLDERS_BGFOLDERS,Constants.FILE_STATE_SHTG,"",question.getCustomer_id(),question.getProject_id(),question.getProject_name(),question.getCustomer_name());
-		
+
 		//閰嶇疆鍏崇郴淇濆瓨鍒拌褰曡〃-鍏抽棴宸ュ崟
 		saveRelationWhenClose(flowId);
 		//鍒犻櫎鍙樻洿涓殑閰嶇疆鍏崇郴-鍏抽棴宸ュ崟
@@ -2289,12 +2283,12 @@
 		dslFacade.saveConfigDslDealRecord(flowId);
 		//鎭㈠鍏宠仈DSL-鍏抽棴宸ュ崟
 		dslFacade.updateConfigDslWhenClose(flowId);
-		
+
 		//鎭㈠DSL璧勬枡
 		delDslMsg(flowId);
-		
+
         WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
-		
+
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
 		finishEntity.setDeal_result(1);
 		finishEntity.setDeal_note_title(createUserName+"缁撴潫鑺傜偣");
@@ -2309,7 +2303,7 @@
 		}
 		//鍏抽棴宸ュ崟
 		workflowCoreService.closeWorkFlow(base);
-		
+
 	}
 	@Override
 	public void delDslMsg(String flowId) {
@@ -2317,16 +2311,16 @@
 		param.addValue("flowId", flowId);
 		//鍒犻櫎鏂板DSL鐗堟湰鐨勯厤缃枃浠惰褰�
 		String sqlfilerecord = "DELETE FROM DSL_CONFIG_FILE_CHANGE_DETAIL WHERE  FLOW_ID = :flowId   ";
-		
+
 		//鍒犻櫎鏂板DSL鐗堟湰鐨勯厤缃枃浠�
 		String sql = "DELETE FROM DSL_CONFIG_FILE WHERE VERSION_ID IN ( SELECT ID FROM DSL_VERSION WHERE CREATE_FLOW_ID = :flowId  AND STATE = 3 ) ";
-		
+
 		//鍒犻櫎鏂板鐗堟湰
 		String sqlversion = "DELETE FROM DSL_VERSION WHERE  CREATE_FLOW_ID = :flowId  AND STATE = 3  ";
-		
+
 		//鍒犻櫎鏂板DSL
 		String sqldsl = "DELETE FROM PROJECT_DSL WHERE  FLOW_ID = :flowId  AND STATE = 3  ";
-		
+
 		baseDao.execute(sqlfilerecord, param);
 		baseDao.execute(sql, param);
 		baseDao.execute(sqlversion, param);
diff --git a/src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java b/src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java
index 39593a2..eb03d4a 100644
--- a/src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java
+++ b/src/cn/ksource/web/facade/ciremind/CiRemindFacadeImpl.java
@@ -1,21 +1,6 @@
 package cn.ksource.web.facade.ciremind;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-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.GG_RECORD;
-import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
-import cn.ksource.beans.SC_WORKFLOW_CI_REMIND;
-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;
@@ -24,7 +9,6 @@
 import cn.ksource.core.util.JsonUtil;
 import cn.ksource.core.util.StringUtil;
 import cn.ksource.core.web.SysInfoMsg;
-import cn.ksource.core.web.WebUtil;
 import cn.ksource.core.workflow.NodeAnswerEntity;
 import cn.ksource.core.workflow.NodeFinishEntity;
 import cn.ksource.core.workflow.WorkflowCoreService;
@@ -34,6 +18,10 @@
 import cn.ksource.web.service.record.RecordService;
 import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
 import cn.ksource.web.util.DateParepareUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
 
 @Service("ciRemindFacade")
 public class CiRemindFacadeImpl implements CiRemindFacade {
@@ -42,12 +30,12 @@
 	@Autowired
 	private WorkflowCoreService workflowCoreService;
 	@Autowired
-	private WorkFlowSupportService workFlowSupportService; 
+	private WorkFlowSupportService workFlowSupportService;
 	@Autowired
 	private OrderService orderService;
 	@Autowired
 	private RecordService recordService;
-	
+
 	@Override
 	public PageInfo queryMyRemindData(PageInfo pageInfo,Map<String, String> param) {
 		String userId=param.get("userId");
@@ -56,8 +44,8 @@
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
 		String orderCode = param.get("orderCode");
-		
-		
+
+
 		param.put("userId", userId);
 		param.put("nodeState", nodeState);
 		param.put("flowState", flowState);
@@ -65,12 +53,12 @@
 		param.put("subCustomerId", subCustomerId);
 		param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
 		param.put("orderCode", "%"+orderCode+"%");
-		
+
 		StringBuilder builder = getMyRemindSql(param);
 		return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), param);
-		
+
 	}
-	
+
 	@Override
 	public int queryMyRemindCount(Map<String, String> param) {
 		String userId=param.get("userId");
@@ -79,8 +67,8 @@
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
 		String orderCode = param.get("orderCode");
-		
-		
+
+
 		param.put("userId", userId);
 		param.put("nodeState", nodeState);
 		param.put("flowState", flowState);
@@ -88,13 +76,13 @@
 		param.put("orderCode", "%"+orderCode+"%");
 		param.put("customerId", customerId);
 		param.put("subCustomerId", subCustomerId);
-		
-		
+
+
 		StringBuilder builder = getMyRemindSql(param);
 		String sql = "select count(*) from ( " + builder.toString() + " ) t";
 		return baseDao.queryForInteger(sql,param);
 	}
-	
+
 	/**
 	 * 鑾峰彇鎴戠殑宸ュ崟
 	 * @param request
@@ -106,8 +94,8 @@
 		String nodeState = param.get("nodeState");
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
-		
-		
+
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" select n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
 		builder.append(" t.PLAN_EXECUTION_DATE, r.ORDER_CODE,r.ID ORDERID,r.SERVICE_CONTENT,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -121,12 +109,12 @@
 		builder.append(" 	where CURRENT_DEALER_ID = :userId  ");
 				//鐜妭鐘舵��
 				if(StringUtil.isNotBlank(nodeState)){
-					builder.append("and FLOWSTATE =:nodeState ");	
-					
+					builder.append("and FLOWSTATE =:nodeState ");
+
 				}
 		builder.append(" 	order by FLOWSTATE asc  ");
 		builder.append(" 	) t  ");
-		builder.append(" 	group by FLOWID ");
+		builder.append(" 	group by FLOWID,NODEID,NODETIME,NODESTATE ");
 		builder.append(" ) n  ");
 		builder.append("  on b.ID = n.FLOWID ");
 		//宸ュ崟绫诲瀷
@@ -134,9 +122,9 @@
 		//宸ュ崟鐘舵��
 		if(StringUtil.notEmpty(flowState)) {
 			builder.append(" AND b.WFSTATE =:flowState ");
-			
+
 		}
-		
+
 		//瀹㈡埛
 		if(StringUtil.isNotBlank(customerId)) {
 			builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -145,12 +133,12 @@
 		if(StringUtil.isNotBlank(subCustomerId)) {
 			builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		//宸ュ崟缂栧彿
 		String orderCode = param.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			builder.append(" AND r.ORDER_CODE LIKE :orderCode");
-			
+
 		}
 		builder.append(" order by n.NODESTATE ASC,n.NODETIME desc,b.CREATETIME desc ");
 		return builder;
@@ -160,7 +148,7 @@
 	 */
 	@Override
 	public Map queryRemindInfo(String orderId) {
-		String sql = " select b.WFSTATE,h.*,t.PLAN_EXECUTION_DATE from SC_WORKFLOW_CI_REMIND h ,CI_REMIND_TIMERTASK t, WORKFLOW_BASE b " + 
+		String sql = " select b.WFSTATE,h.*,t.PLAN_EXECUTION_DATE from SC_WORKFLOW_CI_REMIND h ,CI_REMIND_TIMERTASK t, WORKFLOW_BASE b " +
 					" where h.FLOW_ID = t.FLOW_ID and b.ID=h.FLOW_ID  and h.id = :orderId ";
 		return baseDao.queryForMap(sql,new SqlParameter("orderId",orderId));
 	}
@@ -177,25 +165,25 @@
 		WORKFLOW_BASE base = new WORKFLOW_BASE(remind.getFlow_id()).getInstanceById();
         WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
         NodeAnswerEntity entity = new NodeAnswerEntity();
-        
+
         entity.setUser_id(param.get("ID"));
         entity.setUser_name(param.get("ZSXM"));
 
 		boolean flag = workflowCoreService.answerNode(base, node, entity);
 		return flag;
 	}
-	
+
 	/**
 	 * 鍏抽棴娴佺▼
 	 */
 	public void closeWorkFlowSubmit(Map<String, String> param){
 		String orderId = param.get("orderId");
-		
+
 		String closeNote = param.get("closeNote");
 		String nodeId = param.get("nodeId");
-		
+
 		String userName = param.get("userName");
-		
+
 		SC_WORKFLOW_CI_REMIND order = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById();
 		WORKFLOW_BASE base = new WORKFLOW_BASE(order.getFlow_id()).getInstanceById();
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
@@ -218,7 +206,7 @@
 		String main_executorId = param.get("main_executorId");
 		String flowNote = param.get("flowNote");
 		String dealUserName = "";
-		
+
 		String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
 		//鏇存柊涓氬姟琛ㄦ暟鎹�
 		remind.setId(orderId).update();
@@ -226,9 +214,9 @@
 		List<Map> userList = new ArrayList<Map>();
 		String[] executorIdAry =  executorIds.split(",");
 		String[] executorNameAry =  executorNames.split(",");
-		
+
 		Map cacheuser = new HashMap();
-		
+
 		for(int i=0;i<executorIdAry.length;i++){
 			Map tempMap = new HashMap();
 			tempMap.put("USER_ID", executorIdAry[i]);
@@ -236,21 +224,21 @@
 			if(executorIdAry[i].equals(main_executorId)){
 				tempMap.put("IS_ADMIN", "1");
 				dealUserName=executorNameAry[i];
-				 
+
 			}
 			userList.add(tempMap);
 		}
-		
-		
-		
+
+
+
 		String userId=param.get("ID");
 		String userName=param.get("ZSXM");
-		
-		
+
+
 		Map flowMsg = getFlowMsg(flowId,userId);
 		String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
 		String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
-		
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content(nodeName+"锛�"+userName+",灏嗛棶棰樻寚娲剧粰浜�,"+dealUserName);
@@ -260,7 +248,7 @@
 		record.setBusiness_id(flowId);
 		record.setNode_id(nodeId).setNode_name(nodeName);
 		recordService.addRecord(record);
-		
+
 		//鐜妭娴佽浆
 		WorkFlowSupportEntity support = new WorkFlowSupportEntity();
 		support.setFlowId(flowId);
@@ -275,7 +263,7 @@
 		addPatrolCi(orderId,ciIdAry);
 		return msg;
 	}
-	
+
 	/**
 	 * 閫氳繃orderid鑾峰彇娴佺▼淇℃伅
 	 */
@@ -284,7 +272,7 @@
 		String selectSql = "SELECT * FROM WORKFLOW_NODE WHERE FLOWID = :flowId AND CURRENT_DEALER_ID = :userId AND FLOWSTATE <> 3 ";
 		return baseDao.queryForMap(selectSql,new SqlParameter("flowId",flowId).addValue("userId", userId));
 	}
-	
+
 	@Override
 	public void addPatrolCi(String orderId, String[] ciIdAry) {
 		baseDao.execute("delete from SC_WORKFLOW_CI_REMIND_DETAIL where order_id = :orderId", new SqlParameter("orderId",orderId));
@@ -316,14 +304,14 @@
 		sql.append(" where r.ORDER_ID = :orderId  ");
 		return baseDao.queryForList(sql.toString(),new SqlParameter("orderId",orderId));
 	}
-	
+
 	@Override
 	public List<Map> getRemindCiList(Map param) {
 		String sql = " select c.business_id cateId from ci_remind_timertask a , ci_remind_customer_item b, ci_remind_item c "
 				+ " where a.customer_item_id=b.id and b.item_id = c.id and a.flow_id = :flowId ";
 		String cateId = baseDao.queryForString(sql,param);
 		param.put("cateId",cateId);
-		
+
 		String ciIds = ConvertUtil.obj2Str(param.get("ciIds"));
 		sql = " select b.*,c.NAME CATENAME from cmdb_ci_base b " +
 				" inner join cmdb_ci_category c on b.LV3_ID = c.ID " +
@@ -339,7 +327,7 @@
 		sql = sql +	" and b.STATE=1 group by b.id ";
 		return baseDao.queryForList(sql,param);
 	}
-	
+
 	@Override
 	public Map getPatrolInfo(String patrolId) {
 		String sql = " select * from SC_WORKFLOW_CI_REMIND_DETAIL where id = :patrolId";
@@ -347,25 +335,25 @@
 		param.addValue("patrolId", patrolId);
 		return baseDao.queryForMap(sql, param);
 	}
-	
+
 	@Override
 	public SysInfoMsg doEngineerPatrol(Map<String, String> param) {
 		String orderId = ConvertUtil.obj2StrBlank(param.get("orderId"));
-		String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId")); 
-		String note = ConvertUtil.obj2StrBlank(param.get("flowNote")); 
-		String summary = ConvertUtil.obj2StrBlank(param.get("summary")); 
-		
-		
+		String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
+		String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
+		String summary = ConvertUtil.obj2StrBlank(param.get("summary"));
+
+
 		String userName = param.get("ZSXM");
 		String userId = param.get("Id");
-		
+
 		new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().setOrder_note(summary).update();
 		String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
-		
+
 		Map flowMsg = getFlowMsg(flowId,userId);
 		String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
 		String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
-		
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content(nodeName+"锛�"+userName+",宸插鐞嗙淮鎶ゆ墽琛�");
@@ -375,7 +363,7 @@
 		record.setBusiness_id(flowId);
 		record.setNode_id(nodeId).setNode_name(nodeName);
 		recordService.addRecord(record);
-		
+
 		//鐜妭娴佽浆
 		WorkFlowSupportEntity support = new WorkFlowSupportEntity();
 		support.setFlowId(flowId);
@@ -402,12 +390,12 @@
 		String nodeId = param.get("nodeId");
 		String lastNodeTemplateId = param.get("lastNodeTemplateId");
 		String note = param.get("backNote");
-		
+
 		String userName = ConvertUtil.obj2StrBlank(param.get("ZSXM"));
 		String userId = ConvertUtil.obj2StrBlank(param.get("ID"));
-		
+
 		String flowId = param.get("flowId");
-		
+
 		WorkFlowSupportEntity support = new WorkFlowSupportEntity();
 		support.setFlowId(flowId);
 		support.setNodeId(nodeId);
@@ -424,16 +412,16 @@
 	@Override
 	public SysInfoMsg doEndRemindFlow(Map<String, String> param) {
 		String orderId = ConvertUtil.obj2StrBlank(param.get("orderId"));
-		String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId")); 
-		String note = ConvertUtil.obj2StrBlank(param.get("flowNote")); 
+		String nodeId = ConvertUtil.obj2StrBlank(param.get("nodeId"));
+		String note = ConvertUtil.obj2StrBlank(param.get("flowNote"));
 		String userName = param.get("ZSXM").toString();
 		String userId = param.get("Id").toString();
 		String flowId = new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().getFlow_id();
-		
+
 		Map flowMsg = getFlowMsg(flowId,userId);
 		String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
 		String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
-		
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content(nodeName+"锛�"+userName+",宸插鏍�");
@@ -443,8 +431,8 @@
 		record.setBusiness_id(flowId);
 		record.setNode_id(nodeId).setNode_name(nodeName);
 		recordService.addRecord(record);
-		
-		
+
+
 		//鐜妭娴佽浆
 		WorkFlowSupportEntity support = new WorkFlowSupportEntity();
 		support.setFlowId(flowId);
@@ -459,7 +447,7 @@
 		new SC_WORKFLOW_CI_REMIND(orderId).getInstanceById().setFinish_time(endTime).update();
 		return msg;
 	}
-	
+
 	@Override
 	public Map getRemindeItem(Map<String, String> param) {
 		String flowId= param.get("flowId");
@@ -515,7 +503,7 @@
 		map.put("remindMap", remindMap);
 		return map;
 	}
-	
+
 	@Override
 	public Map getRemindDetail(Map<String, String> param) {
 		String orderId=param.get("orderId");
@@ -535,21 +523,21 @@
 		map.put("detailList", detailList);
 		return map;
 	}
-	
+
 	//渚嬭缁存姢绠$悊
-	
-	
+
+
 	@Override
 	public int queryJxzRemindOrderCount(Map<String, String> param) {
 		StringBuilder buffer = new StringBuilder("SELECT COUNT(b.ID) FROM WORKFLOW_BASE b WHERE b.BUSINESSTYPE = :businessType AND b.WFSTATE = :wfstate ");
-		
+
 		return baseDao.queryForInteger(buffer.toString(),new SqlParameter("businessType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DOING));
 	}
-	
+
 	@Override
 	public Map queryNodeCount(Map<String, String> param) {
 		StringBuilder buffer = new StringBuilder("SELECT  n.NODE_TEMPLATE_ID,COUNT(n.NODE_TEMPLATE_ID) AS num FROM WORKFLOW_NODE n, WORKFLOW_BASE b WHERE b.CURRENT_NODE_ID = n.ID and b.BUSINESSTYPE = :businessType AND b.WFSTATE = :wfstate ");
-		
+
 		buffer.append(" GROUP BY n.NODE_TEMPLATE_ID ");
 		List<Map> list =  baseDao.queryForList(buffer.toString(),new SqlParameter("businessType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND).addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DOING));
 		Map resultMap = new HashMap();
@@ -560,29 +548,29 @@
 		}
 		return resultMap;
 	}
-	
+
 	@Override
 	public PageInfo queryRemindOrderList(PageInfo pageInfo,Map<String, String> param) {
-		
+
 		StringBuilder builder = new StringBuilder();
 		String flowState = param.get("flowState");
 		String orderCode = param.get("orderCode");
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
-		
+
 		String nodeTempId = param.get("nodeTempId");
-		
+
 		param.put("customerId", customerId);
 		param.put("subCustomerId", subCustomerId);
 		param.put("flowState", flowState);
 		param.put("orderCode", "%"+orderCode+"%");
 		param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
 		param.put("nodeTempId", nodeTempId);
-		
+
 		builder = getAllRemindSql(param);
 		return baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), param);
 	}
-	
+
 
 	@Override
 	public int queryRemindOrderCount(Map<String, String> param) {
@@ -591,7 +579,7 @@
 		String orderCode = param.get("orderCode");
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
-		
+
 		param.put("flowState", flowState);
 		param.put("customerId", customerId);
 		param.put("subCustomerId", subCustomerId);
@@ -599,12 +587,12 @@
 		param.put("businessType", String.valueOf(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND));
 		String nodeTempId = param.get("nodeTempId");
 		param.put("nodeTempId", nodeTempId);
-		
+
 		builder = getAllRemindSql(param);
 		String sql = "select count(*) from ( " + builder.toString() + " ) t" ;
 		return baseDao.queryForInteger(sql.toString(),param);
 	}
-	
+
 	/**
 	 * 鏈嶅姟鍙板伐鍗曞垪琛�
 	 * @param request
@@ -615,23 +603,23 @@
 		String customerId = param.get("customerId");
 		String subCustomerId = param.get("subCustomerId");
 		String nodeTempId = param.get("nodeTempId");
-		
-		
+
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" select b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
 		builder.append(" t.PLAN_EXECUTION_DATE,r.ORDER_CODE,r.ID ORDERID,r.SERVICE_CONTENT,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
 		builder.append(" from SC_WORKFLOW_CI_REMIND r  ");
 		builder.append(" inner join WORKFLOW_BASE b on r.FLOW_ID = b.ID ");
 		builder.append(" inner join CI_REMIND_TIMERTASK t on r.FLOW_ID = t.FLOW_ID ");
-		
+
 		//宸ュ崟绫诲瀷
 		builder.append(" where b.BUSINESSTYPE = :businessType");
 		//宸ュ崟鐘舵��
 		if(StringUtil.notEmpty(flowState)) {
 			builder.append(" AND b.WFSTATE =:flowState ");
 		}
-		
-		
+
+
 		//瀹㈡埛
 		if(StringUtil.isNotBlank(customerId)) {
 			builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -639,43 +627,43 @@
 		//涓嬪睘鍗曚綅
 		if(StringUtil.isNotBlank(subCustomerId)) {
 			builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
-			
+
 		}
 		//宸ュ崟缂栧彿
 		String orderCode = param.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			builder.append(" AND r.ORDER_CODE LIKE :orderCode");
 		}
-		
+
 		if(StringUtil.notEmpty(nodeTempId)) {
 			builder.append(" AND EXISTS (SELECT n.ID FROM WORKFLOW_NODE n WHERE b.CURRENT_NODE_ID = n.ID AND n.NODE_TEMPLATE_ID = :nodeTempId ) ");
 		}
-		
-		builder.append(" order by b.CREATETIME desc,t.PLAN_EXECUTION_DATE desc ");		
+
+		builder.append(" order by b.CREATETIME desc,t.PLAN_EXECUTION_DATE desc ");
 		return builder;
 	}
-	
+
 	@Override
 	public Map getRemindItemSubTimerTaskData(String customerId, String month) {
 		//鏌ヨ璇ュ鎴蜂笅鐨勬墍鏈変笅灞炲崟浣�
 		String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
 		List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
-		
+
 		Map currentCustomer = new HashMap();
 		currentCustomer.put("ID", customerId);
 		currentCustomer.put("CUSTOMER_NAME", new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById().getCustomer_name());
 		subList.add(0, currentCustomer);
-		
-		
+
+
 		if(!StringUtil.notEmpty(month)) {
-			month = DateUtil.getCurrentDate6().toString(); 
+			month = DateUtil.getCurrentDate6().toString();
 		}
-		
+
 		String monthBeginDay = month+"01";
 		//鏌ヨ褰撴湀鐨勬墍鏈夊ぉ鏁�
 		String monthLastDay = DateParepareUtil.lastDayMonth(month, "yyyyMM", "yyyyMMdd");
-		
-		
+
+
 		List<String> days = DateUtil.getBetweenTwoDateCycleList(monthBeginDay, monthLastDay, 2,1, "yyyyMMdd","yyyyMMdd");
 		if(subList!=null && subList.size()>0){
 			for(Map subMap:subList){
@@ -687,20 +675,20 @@
 				List<Map> isMarkList = new ArrayList<Map>();
 				for(String day:days){
 					Map markMap=new HashMap();
-					
+
 					markMap.put("day", day);
-					
-					
-					
+
+
+
 					int zjh = 0;
 					int yzx = 0;
 					if(taskList!=null && taskList.size()>0){
 						List<Map> plans = new ArrayList<Map>();
 						for(Map map:taskList){
 							Map plan = new HashMap();
-							
-							
-							
+
+
+
 							Integer task=2;
 							Integer mark=0;
 							String orderId = new String();
@@ -736,7 +724,7 @@
 		map.put("days", days);
 		return map;
 	}
-	
+
 	@Override
 	public List<Map> querySubCustomerRemindPlanForDay(Map<String, String> param) {
 		String customerId = param.get("customerId");
@@ -752,11 +740,11 @@
 		param.put("customerId", customerId);
 		param.put("subCustomerId", subCustomerId);
 		param.put("day", day);
-		
+
 		List<Map> plans = baseDao.queryForList(selectSql,param);
 		return plans;
 	}
-	
+
 	@Override
 	public PageInfo getRemindItemData(PageInfo pageInfo,Map<String, String> param) {
 		String customerId=param.get("customerId");
@@ -770,11 +758,11 @@
 		if(StringUtil.notEmpty(itemName)){
 			sql.append(" AND A.ITEM_NAME LIKE :itemName");
 		}
-		
+
 		if(StringUtil.notEmpty(subId)){
 			sql.append(" AND C.SUB_CUSTOMER_ID=:subId");
-		} 
-		
+		}
+
 		sql.append(" AND B.CUSTOMER_ID=:customerId ");
 		sql.append(" ORDER BY A.ITEM_TYPE,ORDER_NUM ASC");
 		//SqlParameter paramMap = new SqlParameter();
@@ -783,7 +771,7 @@
 		param.put("customerId", customerId);
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), param);
 	}
-	
+
 	@Override
 	public Integer getRemindItemCount(Map<String, String> param) {
 		String customerId=param.get("customerId");
@@ -804,7 +792,7 @@
 		param.put("subId", subId);
 		return baseDao.queryForInteger(sql.toString(), param);
 	}
-	
+
 	@Override
 	public Map queryRemind(String customerItemId) {
 		String selectSql = "SELECT A.ID,A.ITEM_NAME,A.CYCLE,A.PRIORITY_LEVEL_ID,A.PRIORITY_LEVEL_NAME," +
@@ -813,7 +801,7 @@
 		Map item = baseDao.queryForMap(selectSql,new SqlParameter("id",customerItemId));
 		return item;
 	}
-	
+
 	/**
 	 * 鏌ヨ鎵ц璁″垝
 	 * @param customerItemId
@@ -826,11 +814,11 @@
 		List result = new ArrayList();
 		if(StringUtil.notEmpty(customerId)) {
 			SC_PARTNER_CUSTOMER_INFO customer = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
-			
+
 			long beginTime = customer.getValid_begin_date();
 			long endTime = customer.getValid_end_date();
-			
-			
+
+
 			Map paramMap = new HashMap();
 			//鏌ヨ鎵�鏈夊凡缁忕敓鎴愮殑璁″垝
 			String selectSql = "SELECT A.*,W.ID ORDER_ID " +
@@ -839,17 +827,17 @@
 			paramMap.put("customerId", customerId);
 			paramMap.put("customerItemId", customerItemId);
 			selectSql += " AND A.SUB_CUSTOMER_ID = :subId ";
-			if(StringUtil.notEmpty(subCustomerId)) {			
+			if(StringUtil.notEmpty(subCustomerId)) {
 				paramMap.put("subId", subCustomerId);
 			} else {
 				paramMap.put("subId", customerId);
 			}
-			
+
 			selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
-			
-			
+
+
 			List<Map> plans = baseDao.queryForList(selectSql,paramMap);
-																					
+
 			Map<String,Map> cacheMap = new HashMap<String,Map>();
 			if(null!=plans && plans.size()>0) {
 				for(Map plan : plans) {
@@ -857,28 +845,28 @@
 					cacheMap.put(day, plan);
 				}
 			}
-			
-			
+
+
 			//姹傚嚭鎵�鏈夋湀浠界殑闆嗗悎
 			List<String> months = DateUtil.getBetweenTwoDateCycleList(ConvertUtil.obj2StrBlank(beginTime), ConvertUtil.obj2StrBlank(endTime), 1,1, "yyyyMMdd","yyyyMM");
 			if(null!=months && months.size()>0) {
 				for(int i=0; i<months.size();i++) {
 					String month = months.get(i);
-					
+
 					String beginDay = month+"01";
 					//寰楀埌褰撴湀鐨勬渶鍚庝竴澶�
 					String lastDay = DateParepareUtil.lastDayMonth(month,"yyyyMM","yyyyMMdd");
-					
+
 					List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
-					
-					
-					
-					
-					
+
+
+
+
+
 					List<Map> newList = new ArrayList<Map>();
 					for(String str : days) {
 						Map map = new HashMap();
-						
+
 						if(cacheMap.containsKey(str)) {
 							map = cacheMap.get(str);
 							map.put("day", str);
@@ -887,7 +875,7 @@
 							map.put("day",str);
 							map.put("check", 2);
 						}
-						
+
 						//鏄惁鏄剧ず澶嶉�夋
 						long date = ConvertUtil.obj2Long(str);
 						if(date>=beginTime && date<=endTime) {
@@ -895,7 +883,7 @@
 						} else {
 							map.put("showbox", 2);
 						}
-						
+
 						//浠婂ぉ涔嬪墠鐨勫閫夋涓嶅彲鐢�
 						long today = DateUtil.getCurrentDate8();
 						if(date>today) {
@@ -903,22 +891,22 @@
 						} else {
 							map.put("isUse", 2);
 						}
-						
+
 						newList.add(map);
 					}
-					
+
 					Map map = new HashMap();
 					map.put("month", month);
 					map.put("days", newList);
 					result.add(map);
 				}
 			}
-			
+
 		}
 		System.out.println(JsonUtil.list2Json(result));
 		return result;
 	}
-	
+
 	@Override
 	public PageInfo getRemindOrderList(PageInfo pageInfo,Map<String, String> param) {
 		String customerId=param.get("customerId");
@@ -929,22 +917,22 @@
 		sql.append(" SELECT A.SUB_CUSTOMER_ID SUB_CUS_ID,A.FLOW_ID,B.*,D.ITEM_NAME,A.PLAN_EXECUTION_DATE,A.STATE AS TIMESTATE,A.CUSTOMER_ITEM_ID FROM CI_REMIND_TIMERTASK A LEFT JOIN  SC_WORKFLOW_CI_REMIND  B ON A.FLOW_ID=B.FLOW_ID  ");
 		sql.append(" LEFT JOIN CI_REMIND_CUSTOMER_ITEM  C ON A.CUSTOMER_ITEM_ID=C.ID LEFT JOIN CI_REMIND_ITEM D ON C.ITEM_ID=D.ID");
 		sql.append(" WHERE A.STATE != 3 ");
-		
+
 		//SqlParameter paramMap = new SqlParameter();
-		
-		
+
+
 		if(StringUtil.notEmpty(customerId)) {
 			sql.append("AND A.CUSTOMER_ID=:customerId  ");
 			param.put("customerId", customerId);
 		}
-		
-		
+
+
 		if(StringUtil.notEmpty(subId)) {
 			sql.append("AND A.SUB_CUSTOMER_ID=:subId  ");
 			param.put("subId", subId);
 		}
-		
-		
+
+
 		if(StringUtil.notEmpty(beginDate) && StringUtil.notEmpty(endDate)){
 			sql.append(" AND A.PLAN_EXECUTION_DATE>=:beginDate AND A.PLAN_EXECUTION_DATE<=:endDate");
 			param.put("beginDate", beginDate);
@@ -952,9 +940,9 @@
 		}
 		sql.append(" ORDER BY A.PLAN_EXECUTION_DATE DESC");
 		param.put("customerId", customerId);
-		
+
 		PageInfo list=baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), param);
-		
+
 		if(list!=null && list.getDatas().size()>0){
 			for(Map map :list.getDatas()){
 				map.put("TIMESTATE_LABEL", Constants.getmapCI_REMIND_TIMERTASK_STATE_Label(Integer.parseInt(map.get("TIMESTATE").toString())));
@@ -962,7 +950,7 @@
 		}
 		return list;
 	}
-	
+
 	@Override
 	public Integer getRemindOrderCount(Map<String, String> param){
 		String customerId=param.get("customerId");
@@ -973,21 +961,21 @@
 		sql.append(" SELECT COUNT(A.ID) FROM CI_REMIND_TIMERTASK A LEFT JOIN  SC_WORKFLOW_CI_REMIND  B ON A.FLOW_ID=B.FLOW_ID  ");
 		sql.append(" LEFT JOIN CI_REMIND_CUSTOMER_ITEM  C ON A.CUSTOMER_ITEM_ID=C.ID LEFT JOIN CI_REMIND_ITEM D ON C.ITEM_ID=D.ID");
 		sql.append(" WHERE A.STATE != 3 ");
-		
+
 		//SqlParameter paramMap = new SqlParameter();
-		
-		
+
+
 		if(StringUtil.notEmpty(customerId)) {
 			sql.append("AND A.CUSTOMER_ID=:customerId  ");
 			param.put("customerId", customerId);
 		}
-		
+
 		if(StringUtil.notEmpty(subId)) {
 			sql.append("AND A.SUB_CUSTOMER_ID=:subId  ");
 			param.put("subId", subId);
 		}
-		
-		
+
+
 		if(StringUtil.notEmpty(beginDate) && StringUtil.notEmpty(endDate)){
 			sql.append(" AND A.PLAN_EXECUTION_DATE>=:beginDate AND A.PLAN_EXECUTION_DATE<=:endDate");
 			param.put("beginDate", beginDate);
@@ -999,7 +987,7 @@
 		param.put("endDate", endDate);
 		return baseDao.queryForInteger(sql.toString(),param);
 	}
-	
+
 	@Override
 	public List getSubRemindCiList(Map<String, String> param) {
 		StringBuilder sql =new StringBuilder();
@@ -1015,7 +1003,7 @@
 		}
 		return baseDao.queryForList(sql.toString(), param);
 	}
-	
+
 	@Override
 	public int queryProItemCount(Map<String, String> param) {
 		String customerId = param.get("customerId");
@@ -1032,48 +1020,48 @@
 		String sql = "SELECT A.*,B.ITEM_NAME,B.ITEM_NOTE,B.PRIORITY_LEVEL_NAME,B.BUSINESS_NAME " +
 				" FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B WHERE A.ITEM_ID = B.ID " +
 				" AND A.USING_STATE = 1 AND A.CUSTOMER_ID = :customerId ORDER BY B.ORDER_NUM ";
-		
+
 		param.put("customerId", customerId);
 		PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql, param);
 		return info;
 	}
-	
-	
+
+
 	@Override
 	public Map queryItemSubCustomerPlan(String customerId,String itemId,String mon) {
 		//鏌ヨ璇ュ鎴蜂笅鐨勬墍鏈変笅灞炲崟浣�
 		String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
 		List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
-		
-		
+
+
 		Map currentCustomer = new HashMap();
 		currentCustomer.put("ID", customerId);
 		currentCustomer.put("CUSTOMER_NAME", new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById().getCustomer_name());
 		subList.add(0, currentCustomer);
-		
+
 		String year = DateUtil.format("yyyy", mon);
-		
+
 		String mm = DateUtil.format("MM", mon);
 		String[] time = DateParepareUtil.queryFirstLastDate(year,mm);
-		
+
 		String beginDay = time[0].replaceAll("-", "");
 		//寰楀埌褰撴湀鐨勬渶鍚庝竴澶�
 		String lastDay = time[1].replaceAll("-", "");
-		
+
 		List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
-		
+
 		Map resultMap = new HashMap();
 		resultMap.put("month", mon);
 		resultMap.put("days", days);
-		
+
 		List result = new ArrayList();
 		if(StringUtil.notEmpty(customerId)) {
 			SC_PARTNER_CUSTOMER_INFO customer = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
-			
+
 			long beginTime = customer.getValid_begin_date();
 			long endTime = customer.getValid_end_date();
-			
-			
+
+
 			Map paramMap = new HashMap();
 			//鏌ヨ璇ュ鎴蜂笅鎵�鏈夊凡缁忕敓鎴愮殑璁″垝
 			String selectSql = "SELECT A.*,W.ID ORDER_ID FROM CI_REMIND_TIMERTASK A,CI_REMIND_CUSTOMER_ITEM B ,SC_WORKFLOW_CI_REMIND W " +
@@ -1082,16 +1070,16 @@
 					" AND B.CUSTOMER_ID = :customerId AND B.USING_STATE = 1 ";
 			paramMap.put("projectItemId", itemId);
 			paramMap.put("customerId", customerId);
-			
-			
-			
+
+
+
 			selectSql += "AND A.PLAN_EXECUTION_DATE >= :beginTime AND A.PLAN_EXECUTION_DATE <= :endTime ";
 			paramMap.put("beginTime", beginDay);
 			paramMap.put("endTime",  lastDay);
-			
+
 			selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
 			List<Map> plans = baseDao.queryForList(selectSql,paramMap);
-			
+
 			Map<String,Map> cacheMap = new HashMap<String,Map>();
 			if(null!=plans && plans.size()>0) {
 				for(Map plan : plans) {
@@ -1100,65 +1088,65 @@
 					cacheMap.put(subCustomerId+"-"+plan_execution_date, plan);
 				}
 			}
-			
-			
+
+
 			if(null!=subList && subList.size()>0) {
 				for(Map cus : subList) {
-					
-					
-					
+
+
+
 					String cusId = ConvertUtil.obj2StrBlank(cus.get("ID"));
 					String cusName = ConvertUtil.obj2StrBlank(cus.get("CUSTOMER_NAME"));
-					
+
 					List<Map> newList = new ArrayList<Map>();
 					for(String str : days) {
 						Map map = new HashMap();
-						
+
 						String unitKey = cusId+"-"+str;
 						if(cacheMap.containsKey(unitKey)) {
 							map = cacheMap.get(unitKey);
 						}
 						newList.add(map);
 					}
-					
+
 					Map map = new HashMap();
 					map.put("cusName", cusName);
 					map.put("msgs", newList);
 					result.add(map);
 				}
 			}
-			
+
 		}
 		resultMap.put("rs", result);
-		
+
 		return resultMap;
 	}
-	
+
 	@Override
 	public String queryZbName(String itemId) {
 		String selectSql = "SELECT B.ITEM_NAME FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B WHERE A.ITEM_ID = B.ID AND A.ID = :itemId ";
 		return baseDao.queryForString(selectSql,new SqlParameter("itemId",itemId));
 	}
-	
+
 	@Override
 	public List queryCustomers(Map<String, String> param) {
 		String customerId = param.get("customerId");
 		//鏌ヨ璇ュ鎴蜂笅鐨勬墍鏈変笅灞炲崟浣�
 		String sql="SELECT * FROM SC_PARTNER_CUSTOMER_SUB WHERE CUSTOMER_ID=:customerId AND DEL_FLAG=1";
 		List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
-		
-		
+
+
 		Map currentCustomer = new HashMap();
 		currentCustomer.put("ID", customerId);
 		SC_PARTNER_CUSTOMER_INFO mainCus = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
 		currentCustomer.put("CUSTOMER_NAME", mainCus.getCustomer_name());
 		currentCustomer.put("CONTACT", mainCus.getContact());
 		currentCustomer.put("PHONE", mainCus.getPhone());
-		
+
 		subList.add(0, currentCustomer);
 		return subList;
 	}
-	
+
 	@Override
 	public Map queryCusItemPlanReport(String customerId,String subCustomerId, String mon) {
 		//鏌ヨ璇ュ鎴蜂笅鐨勬墍鏈夋寚鏍�
@@ -1166,47 +1154,47 @@
 				" FROM CI_REMIND_CUSTOMER_ITEM A,CI_REMIND_ITEM B " +
 				" WHERE A.ITEM_ID = B.ID AND A.USING_STATE = 1 AND A.CUSTOMER_ID = :customerId ORDER BY B.ORDER_NUM ";
 		List<Map> subList=baseDao.queryForList(sql, new SqlParameter().addValue("customerId",customerId));
-		
-		
-		
+
+
+
 		String year = DateUtil.format("yyyy", mon);
-		
+
 		String mm = DateUtil.format("MM", mon);
 		String[] time = DateParepareUtil.queryFirstLastDate(year,mm);
-		
+
 		String beginDay = time[0].replaceAll("-", "");
 		//寰楀埌褰撴湀鐨勬渶鍚庝竴澶�
 		String lastDay = time[1].replaceAll("-", "");
-		
+
 		List<String> days = DateUtil.getBetweenTwoDateCycleList(beginDay, lastDay, 2,1, "yyyyMMdd","yyyyMMdd");
-		
+
 		Map resultMap = new HashMap();
 		resultMap.put("month", mon);
 		resultMap.put("days", days);
-		
+
 		List result = new ArrayList();
 		if(StringUtil.notEmpty(customerId)) {
 			SC_PARTNER_CUSTOMER_INFO project = new SC_PARTNER_CUSTOMER_INFO(customerId).getInstanceById();
-			
+
 			long beginTime = project.getValid_begin_date();
 			long endTime = project.getValid_end_date();
-			
-			
+
+
 			Map paramMap = new HashMap();
 			//鏌ヨ璇ュ鎴蜂笅鎵�鏈夊凡缁忕敓鎴愮殑璁″垝
 			String selectSql = "SELECT A.*,W.ID ORDER_ID FROM CI_REMIND_TIMERTASK A,CI_REMIND_CUSTOMER_ITEM B,SC_WORKFLOW_CI_REMIND W " +
 					" WHERE A.CUSTOMER_ITEM_ID = B.ID AND A.FLOW_ID=W.FLOW_ID AND B.CUSTOMER_ID = :customerId " +
 					" AND A.SUB_CUSTOMER_ID = :subCustomerId AND B.USING_STATE = 1 ";
 			paramMap.put("customerId", customerId);
-			
+
 			selectSql += "AND A.PLAN_EXECUTION_DATE >= :beginTime AND A.PLAN_EXECUTION_DATE <= :endTime ";
 			paramMap.put("beginTime", beginDay);
 			paramMap.put("endTime",  lastDay);
 			paramMap.put("subCustomerId", subCustomerId);
-			
+
 			selectSql += " ORDER BY A.PLAN_EXECUTION_DATE ";
 			List<Map> plans = baseDao.queryForList(selectSql,paramMap);
-			
+
 			Map<String,Map> cacheMap = new HashMap<String,Map>();
 			if(null!=plans && plans.size()>0) {
 				for(Map plan : plans) {
@@ -1215,52 +1203,52 @@
 					cacheMap.put(project_item_id+"-"+plan_execution_date, plan);
 				}
 			}
-			
-			
+
+
 			if(null!=subList && subList.size()>0) {
 				for(Map zb : subList) {
 					String zbId = ConvertUtil.obj2StrBlank(zb.get("ID"));
 					String zbName = ConvertUtil.obj2StrBlank(zb.get("ITEM_NAME"));
-					
+
 					List<Map> newList = new ArrayList<Map>();
 					for(String str : days) {
 						Map map = new HashMap();
-						
+
 						String unitKey = zbId+"-"+str;
 						if(cacheMap.containsKey(unitKey)) {
 							map = cacheMap.get(unitKey);
 						}
 						newList.add(map);
 					}
-					
+
 					Map map = new HashMap();
 					map.put("zbName", zbName);
 					map.put("msgs", newList);
 					result.add(map);
 				}
 			}
-			
+
 		}
 		resultMap.put("rs", result);
-		
+
 		return resultMap;
 	}
 
 	@Override
-	public String queryNodeId(String flowId,String userId) {	
+	public String queryNodeId(String flowId,String userId) {
 		String selectSql = "SELECT ID FROM WORKFLOW_NODE WHERE FLOWID=:flowId  AND CURRENT_DEALER_ID=:userId AND (FLOWSTATE=1 OR FLOWSTATE =2) ";
 		return baseDao.queryForString(selectSql,new SqlParameter("flowId",flowId).addValue("userId", userId));
 	}
-	
+
 	@Override
 	public PageInfo remindPlanData(PageInfo pageInfo,Map<String, String> param) {
 		String ciId=param.get("ciId");
-		String selectSql = "SELECT C.* FROM CI_REMIND_CILIST A,CI_REMIND_CUSTOMER_ITEM B,CI_REMIND_TIMERTASK C WHERE A.PROJECT_ITEM_ID = B.ID AND B.ID = C.CUSTOMER_ITEM_ID AND A.CI_ID = :ciId AND A.STATE = 1 AND C.STATE = 2 ORDER BY C.PLAN_EXECUTION_DATE DESC ";		
+		String selectSql = "SELECT C.* FROM CI_REMIND_CILIST A,CI_REMIND_CUSTOMER_ITEM B,CI_REMIND_TIMERTASK C WHERE A.PROJECT_ITEM_ID = B.ID AND B.ID = C.CUSTOMER_ITEM_ID AND A.CI_ID = :ciId AND A.STATE = 1 AND C.STATE = 2 ORDER BY C.PLAN_EXECUTION_DATE DESC ";
 		param.put("ciId", ciId);
 		PageInfo plans=baseDao.queryforSplitPageInfo(pageInfo, selectSql, param);
 		return plans;
 	}
-	
+
 	@Override
 	public int remindPlanCount(Map<String, String> param) {
 		String ciId=param.get("ciId");
@@ -1269,7 +1257,7 @@
 		return count;
 	}
 
-	
+
 
 
 }
diff --git a/src/cn/ksource/web/facade/dsl/DSLFacadeImpl.java b/src/cn/ksource/web/facade/dsl/DSLFacadeImpl.java
index 62d5e88..d9ff993 100644
--- a/src/cn/ksource/web/facade/dsl/DSLFacadeImpl.java
+++ b/src/cn/ksource/web/facade/dsl/DSLFacadeImpl.java
@@ -1,17 +1,16 @@
 package cn.ksource.web.facade.dsl;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
+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.*;
+import cn.ksource.core.web.TreeNode;
+import cn.ksource.core.web.WebUtil;
+import cn.ksource.entity.FacedeResponse;
+import cn.ksource.web.Constants;
+import cn.ksource.web.service.cmdb.SequenceService;
+import cn.ksource.web.service.file.FileService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,42 +18,28 @@
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 
-import cn.ksource.beans.DSL_CATEGORY;
-import cn.ksource.beans.DSL_CONFIG;
-import cn.ksource.beans.DSL_CONFIG_FILE;
-import cn.ksource.beans.DSL_VERSION;
-import cn.ksource.beans.PROJECT_DSL;
-import cn.ksource.core.dao.BaseDao;
-import cn.ksource.core.dao.SqlParameter;
-import cn.ksource.core.page.PageInfo;
-import cn.ksource.core.util.ConvertUtil;
-import cn.ksource.core.util.DateUtil;
-import cn.ksource.core.util.EqualUtil;
-import cn.ksource.core.util.JsonUtil;
-import cn.ksource.core.util.StringUtil;
-import cn.ksource.core.web.TreeNode;
-import cn.ksource.core.web.WebUtil;
-import cn.ksource.entity.FacedeResponse;
-import cn.ksource.web.Constants;
-import cn.ksource.web.service.cmdb.SequenceService;
-import cn.ksource.web.service.file.FileService;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
 
 @Service("dslFacade")
 public class DSLFacadeImpl implements DSLFacade{
 
 	@Resource
 	private BaseDao baseDao;
-	
+
 	@Resource
 	private FileService fileService;
-	
+
 	@Autowired
 	private SequenceService sequenceService;
-	
+
 	/*@Autowired
 	private SequenceService sequenceService;*/
-	
-	
+
+
 	@Override
 	public List<Map> getOrderDslList(String flowId) {
 		SqlParameter param = new SqlParameter();
@@ -67,11 +52,11 @@
 				" 	SELECT UPDATE_TIME,ID,EDITION FROM  DSL_VERSION WHERE (STATE=1 OR STATE=3) " +
 				" ) V ON L.DSL_VERSION_ID = V.ID  " +
 				" WHERE (D.STATE=1 OR D.STATE=3) AND L.FLOW_ID=:flowId " +
-				" ORDER BY V.UPDATE_TIME DESC  " + 
-				" ) T GROUP BY DSL_ID ORDER BY UPDATE_TIME DESC ";
+				" ORDER BY V.UPDATE_TIME DESC  " +
+				" ) T GROUP BY DSL_ID,T.FLOW_ID, T.UPDATE_TIME, T.CATE_NAME,T.VER_ID,T.LINK_ID,T.DSL_SEARCHCODE,T.DSL_NAME,T.EDITION ORDER BY UPDATE_TIME DESC ";
 		return baseDao.queryForList(sql,param);
 	}
-	
+
 	@Override
 	public void saveConfigDslDealRecord(String flowId) {
 		String sql = "SELECT ID,DSL_VERSION_ID,CI_ID,DSL_ID,NEW_VERSION_ID,FLOW_ID,STATE,DEALER_ID,DEALER_NAME,UPDATE_TIME " +
@@ -89,10 +74,10 @@
 			params.put("ID", id);
 			paramList.add(params);
 		}
-		
+
 		baseDao.executeBatch(sqlinsert, paramList);
 	}
-	
+
 	@Override
 	public void updateConfigDslWhenFinish(String flowId) {
 		SqlParameter param = new SqlParameter();
@@ -106,10 +91,10 @@
 		//鏇存柊dsl鐘舵��
 		baseDao.execute(" UPDATE PROJECT_DSL SET STATE=1 WHERE FLOW_ID = :flowId ", param);
 		baseDao.execute(" UPDATE DSL_VERSION SET STATE=1 WHERE CREATE_FLOW_ID = :flowId ", param);
-		
+
 	}
-	
-	
+
+
 	@Override
 	public void updateConfigDslWhenClose(String flowId) {
 		SqlParameter param = new SqlParameter();
@@ -121,7 +106,7 @@
 		//灏嗚淇敼鐨勬暟鎹仮澶�
 		baseDao.execute(" UPDATE CMDB_DSL_LINK SET NEW_VERSION_ID=DSL_VERSION_ID,STATE=NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE STATE=2 AND FLOW_ID = :flowId ", param);
 	}
-	
+
 	@Override
 	public void addDslByFlow(PROJECT_DSL proDsl,String flowId){
 		String searchcode = sequenceService.getDslCategorySequence(proDsl.getDsl_third_category_id());
@@ -140,7 +125,7 @@
 			baseDao.execute(sql, param);
 		}
 	}
-	
+
 	@Override
 	public PageInfo getProDslContainAddData(HttpServletRequest request) {
 		Map support = getProDslContainAddSupport(request);
@@ -149,7 +134,7 @@
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, sql, param);
 		return pageInfo;
 	}
-	
+
 	@Override
 	public int getProDslContainAddCount(HttpServletRequest request) {
 		Map support = getProDslContainAddSupport(request);
@@ -158,7 +143,7 @@
 		int count = baseDao.queryForInteger(sql, param);
 		return count;
 	}
-	
+
 	private Map getProDslContainAddSupport(HttpServletRequest request) {
 		Map support = new HashMap();
 		SqlParameter param = new SqlParameter();
@@ -169,7 +154,7 @@
 		builder.append(" 		FROM PROJECT_DSL D LEFT JOIN (SELECT * FROM DSL_VERSION WHERE STATE=1) V ON D.ID = V.DSL_ID  ");
 		builder.append(" 		WHERE D.STATE=1   ");
 		builder.append(" 	) T1   ");
-		
+
 		String flowId = request.getParameter("flowId");
 		if(StringUtil.notEmpty(flowId)) {
 			builder.append(" 	UNION SELECT * FROM ( ");
@@ -182,15 +167,15 @@
 			builder.append("   	) T1 ");
 			param.put("flowId", flowId);
 		}
-		
+
 		builder.append(" 	ORDER BY UPDATE_TIME DESC ");
 		builder.append(" ) T WHERE 1=1 ");
-		
+
 		String proId = request.getParameter("proId");
 		if(StringUtil.notEmpty(proId)) {
 			param.put("proId", proId);
 		}
-		
+
 		String dslName = request.getParameter("dslName");
 		if(StringUtil.notEmpty(dslName)) {
 			builder.append(" AND DSL_NAME LIKE :dslName ");
@@ -206,26 +191,26 @@
 			builder.append(" AND DSL_SEARCHCODE like :dslSearchCode ");
 			param.put("dslSearchCode", "%"+dslSearchCode+"%");
 		}
-		
+
 		String dslIds = request.getParameter("dslIds");
 		if(StringUtil.notEmpty(dslIds)) {
 			dslIds = "'" + dslIds.replace(",", "','") + "'";
 			builder.append(" AND DSL_ID NOT IN ("+dslIds+") ");
 		}
 		builder.append(" GROUP BY DSL_ID ORDER BY UPDATE_TIME DESC ");
-		
+
 		support.put("sql", builder.toString());
 		support.put("param", param);
 		return support;
 	}
-	
+
 	@Override
 	public int queryDslCount(HttpServletRequest request) {
 
 		StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM PROJECT_DSL A WHERE A.PARTNER_ID = :partnerId AND A.STATE != 3 ");
-		
+
 		//String partnerId = WebUtil.getLoginedPartnerId(request);
-		
+
 		Map paramMap = new HashMap();
 		//paramMap.put("partnerId", partnerId);
 		String projectId = request.getParameter("projectId");
@@ -233,39 +218,39 @@
 			builder.append(" AND A.PROJECT_ID = :projectId ");
 			paramMap.put("projectId", projectId);
 		}
-		
+
 		String dslName = request.getParameter("dslName");
 		if(StringUtil.notEmpty(dslName)) {
 			builder.append(" AND A.DSL_NAME LIKE :dslName ");
 			paramMap.put("dslName", "%"+dslName+"%");
 		}
-		
+
 		String dslCate = request.getParameter("dslCate");
 		if(StringUtil.notEmpty(dslCate)) {
 			builder.append(" AND A.DSL_THIRD_CATEGORY_ID = :dslCate ");
 			paramMap.put("dslCate", dslCate);
 		}
-		
+
 		String dslSearchCode = request.getParameter("dslSearchCode");
 		if(StringUtil.notEmpty(dslSearchCode)) {
 			builder.append(" AND A.DSL_SEARCHCODE = :dslSearchCode ");
 			paramMap.put("dslSearchCode", dslSearchCode);
 		}
-		
-		
-		
+
+
+
 		int count = baseDao.queryForInteger(builder.toString(),paramMap);
-		
+
 		return count;
 	}
 
 	@Override
 	public PageInfo queryDslData(HttpServletRequest request) {
-		
+
 		StringBuilder builder = new StringBuilder("SELECT A.*,C.EDITION FROM PROJECT_DSL A LEFT JOIN (SELECT E.DSL_ID,E.EDITION FROM DSL_VERSION E,(SELECT MAX(B.CREATE_TIME) AS TIME,B.DSL_ID FROM DSL_VERSION B WHERE B.STATE = 1 GROUP BY B.DSL_ID) F WHERE E.DSL_ID = F.DSL_ID AND E.CREATE_TIME = F.TIME) C ON A.ID = C.DSL_ID WHERE A.STATE != 3 ");
-		
+
 		//String partnerId = WebUtil.getLoginedPartnerId(request);
-		
+
 		Map paramMap = new HashMap();
 		//paramMap.put("partnerId", partnerId);
 		String projectId = request.getParameter("projectId");
@@ -273,32 +258,32 @@
 			builder.append(" AND A.PROJECT_ID = :projectId ");
 			paramMap.put("projectId", projectId);
 		}
-		
+
 		String dslName = request.getParameter("dslName");
 		if(StringUtil.notEmpty(dslName)) {
 			builder.append(" AND A.DSL_NAME LIKE :dslName ");
 			paramMap.put("dslName", "%"+dslName+"%");
 		}
-		
+
 		String dslCate = request.getParameter("dslCate");
 		if(StringUtil.notEmpty(dslCate)) {
 			builder.append(" AND A.DSL_THIRD_CATEGORY_ID = :dslCate ");
 			paramMap.put("dslCate", dslCate);
 		}
-		
+
 		String dslSearchCode = request.getParameter("dslSearchCode");
 		if(StringUtil.notEmpty(dslSearchCode)) {
 			builder.append(" AND A.DSL_SEARCHCODE like :dslSearchCode ");
 			paramMap.put("dslSearchCode", "%"+dslSearchCode+"%");
 		}
-		
+
 		builder.append(" ORDER BY A.STATE ASC, A.ORDER_NUM ASC,ADD_TIME DESC ");
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		return pageInfo;
 	}
 
-	
+
 	@Override
 	public List<Map> getDslCateTree(String pid, String partnerId) {
 		String sql = " SELECT ID as id,P_ID AS pid,CATEGORY_NAME AS name,LEVEL AS jb FROM DSL_CATEGORY WHERE STATE=1 AND PARTNER_ID=:partnerId";
@@ -322,28 +307,28 @@
 	public Map queryDslLevelTree(String partnerId, String cates) {
 		String selectSql = "SELECT A.* FROM DSL_CATEGORY A WHERE A.STATE = 1 ORDER BY A.LEVEL,A.ORDER_NUM ";
 		List<Map> categoryList = baseDao.queryForList(selectSql,new SqlParameter("partnerId",partnerId));
-		Map slMap = new HashMap(); 
+		Map slMap = new HashMap();
 		if(StringUtil.notEmpty(cates)) {
 			String[] catess = cates.split(",");
 			for(String s : catess) {
 				slMap.put(s, s);
 			}
 		}
-		
-		
-		
+
+
+
 		Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : categoryList) {
 			String level = ConvertUtil.obj2StrBlank(map.get("LEVEL"));
 			String id = ConvertUtil.obj2StrBlank(map.get("ID"));
-			
+
 			//涓�绾ф爲
 			if (level.equalsIgnoreCase("1")) {
 				yjgnCache.put(id, map);
@@ -358,21 +343,21 @@
 				List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 				map.put("sjTree", new LinkedList<Map>());
 				list.add(map);
-				
+
 				ejgnCache.put(id, map);
 				continue;
 			}
 			//涓夌骇鏍�
 			if (level.equalsIgnoreCase("3")) {
 				if(null!=map.get("P_ID")){
-					
+
 					if(slMap.containsKey(id)) {
 						slMap.put(id, map.get("CATEGORY_NAME"));
 						map.put("check", 1);
 					} else {
 						map.put("check", 2);
 					}
-					
+
 					Map ejgnMap = ejgnCache.get(map.get("P_ID").toString());
 					List<Map> list = (List<Map>)ejgnMap.get("sjTree");
 					list.add(map);
@@ -384,7 +369,7 @@
 		resultMap.put("slMap", slMap);
 		return resultMap;
 	}
-	
+
 	@Override
 	public void addOrderLinkDsl(String flowId, String dslIds, String verIds) {
 		List<SqlParameter> params = new ArrayList<SqlParameter>();
@@ -400,19 +385,19 @@
 				}else{
 					param.addValue("verId", verArr[i]);
 				}
-			params.add(param);	
+			params.add(param);
 		}
 		String sql = "insert into DSL_ORDER_LINK (ID,FLOW_ID,DSL_VERSION_ID,DSL_ID) values (:id,:flowId,:verId,:dslId) ";
 		baseDao.executeBatch(sql, params);
 	}
-	
+
 	@Override
 	public int queryDslChangeVersionCount(HttpServletRequest request) {
 	    StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_VERSION A  WHERE A.DSL_ID = :dslId AND (A.STATE = 1 OR (A.STATE = 3 AND A.CREATE_FLOW_ID = :flowId ) ) ORDER BY A.CREATE_TIME DESC  ");
-		
+
 		String dslId = request.getParameter("dslId");
 		String flowId = request.getParameter("flowId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		paramMap.put("flowId", flowId);
@@ -423,18 +408,18 @@
 	@Override
 	public PageInfo queryDslChangeVersionData(HttpServletRequest request) {
         StringBuilder builder = new StringBuilder("SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID  WHERE A.DSL_ID = :dslId AND (A.STATE = 1 OR (A.STATE = 3 AND A.CREATE_FLOW_ID = :flowId ) ) ORDER BY A.CREATE_TIME DESC  ");
-		
+
 		String dslId = request.getParameter("dslId");
 		String flowId = request.getParameter("flowId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		paramMap.put("flowId", flowId);
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		return pageInfo;
 	}
-	
+
 	@Override
 	public List getDSLConfigListData(String configId) {
 		StringBuilder builder = new StringBuilder();
@@ -453,14 +438,14 @@
 			sql.append(" AND PID=:pid ");
 		}
 		sql.append(" ORDER BY SORT_ID ");
-		
+
 		SqlParameter param = new SqlParameter("pid",configId);
 		param.addValue("partnerId", partnerId);
 		param.addValue("thirdCateId", thirdCateId);
 
 		List<Map> firstList = new LinkedList<Map>();
     	List<Map> dataList = baseDao.queryForList(sql.toString(), param);
-    	
+
     	for (Map map : dataList) {
 			firstList.add(map);
 			if (ConvertUtil.obj2Int(map.get("STATE")) == 1) {
@@ -468,14 +453,14 @@
 			} else {
 				map.put("STATE_TEXT", "鏈惎鐢�");
 			}
-			
+
 			if (!EqualUtil.isStringEqual(map.get("LV"), "2")) {
 				map.put("state", "closed");
 				map.put("children", new LinkedList<Map>());
 			}
-			
+
 		}
-    	
+
     	if (StringUtils.isBlank(configId)) {
 			List<Map> resultList = new LinkedList<Map>();
 			Map map = new HashMap();
@@ -499,7 +484,7 @@
 		String note = request.getParameter("note");
 		String name = request.getParameter("name");
 		String thirdCateName = new DSL_CATEGORY(thirdCateId).getInstanceById().getCategory_name();
-		
+
 		if(StringUtil.notEmpty(configId)) {
 			DSL_CONFIG dsl = new DSL_CONFIG(configId).getInstanceById();
 			pId = dsl.getPid();
@@ -517,7 +502,7 @@
 			} else {
 				level = 1;
 			}
-			
+
 			String insertSql = "INSERT INTO DSL_CONFIG(ID,THIRD_CATEGORY_ID,THIRD_CATEGORY_NAME,LV,SORT_ID,STATE,PID,PARTNER_ID,NOTE,NAME) " +
 					"VALUES (:id,:third_category_id,:third_category_name,:lv,:sort_id,1,:pid,:partner_id,:note,:name)";
 			Map paramMap = new HashMap();
@@ -532,38 +517,38 @@
 			paramMap.put("name", name);
 			baseDao.execute(insertSql, paramMap);
 		}
-		
+
 		return pId;
-		
-		
+
+
 	}
 
 	@Override
 	public void saveProDslInfo(HttpServletRequest request) {
-		
+
 		String flowId = request.getParameter("flowId");
 		String projectId = request.getParameter("projectId");
 		String configureId = request.getParameter("configureId");
 		String versionNo = request.getParameter("versionNo");
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("flowId", flowId)
 			.addValue("projectId", projectId)
 			.addValue("versionNo", versionNo)
 			.addValue("configureId", configureId)
 			.addValue("id", StringUtil.getUUID());
-		
-		
+
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" delete from config_dsl_pro where RELEASE_FLOW_ID = :flowId and CONFIGURE_ID=:configureId and PROJECT_ID=:projectId ");
 		baseDao.execute(builder.toString(), param);
-		
+
 		builder.setLength(0);
 		builder.append(" insert into config_dsl_pro (id,PROJECT_ID,CONFIGURE_ID,VERSION_NO,RELEASE_FLOW_ID,SOURCE_TYPE) ");
 		builder.append(" values (:id,:projectId,:configureId,:versionNo,:flowId,1) ");
 		baseDao.execute(builder.toString(), param);
 	}
-	
+
 	@Override
 	public List<Map> getSecondDslfileList(String orderId,String configureId,String secondDslId){
 		SqlParameter param = new SqlParameter();
@@ -574,7 +559,7 @@
 			"and BUSINESS_ID = :orderId and EXTEND1 =:configureId and EXTEND2 = :secondDslId ";
 		return baseDao.queryForList(sql,param);
 	}
-	
+
 	@Override
 	public void saveDslFile(HttpServletRequest request){
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
@@ -599,7 +584,7 @@
 					//System.out.println("-----------"+request.getSession().getServletContext().getRealPath("/"));
 					String fullPath = request.getSession().getServletContext().getRealPath("/")+"/upload/infofiles/" + fileName;
 					long size = file.getSize();
-					String fileFormat = fileName.substring(fileName.lastIndexOf(".")+1); 
+					String fileFormat = fileName.substring(fileName.lastIndexOf(".")+1);
 					File localFile = new File(fullPath);
 					// 鍐欐枃浠跺埌鏈湴
 					try {
@@ -634,21 +619,21 @@
 		//String partnerId = WebUtil.getLoginedPartnerId(request);
 		String selectSubSql = "SELECT * FROM DSL_CONFIG WHERE THIRD_CATEGORY_ID = :thirdCateId AND STATE = 1 ORDER BY LV,SORT_ID ";
 		String thirdCateId = request.getParameter("thirdCate");
-		
+
 		paramMap.put("thirdCateId", thirdCateId);
 		//paramMap.put("partnerId", partnerId);
-		
+
 		List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
         Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : cates) {
 			String level = map.get("LV").toString();
 			String id = map.get("ID").toString();
-			
+
 			//涓�绾ф爲
 			if (level.equalsIgnoreCase("1")) {
 				yjgnCache.put(id, map);
@@ -679,8 +664,8 @@
 		String thirdCateId = request.getParameter("thirdCate");
 		String pId = request.getParameter("pId");
 		sql.append("SELECT COUNT(ID) FROM DSL_CONFIG WHERE  THIRD_CATEGORY_ID = :thirdCateId ");
-		
-		
+
+
 		Map paramMap = new HashMap();
 		//paramMap.put("partnerId", partnerId);
 		paramMap.put("thirdCateId", thirdCateId);
@@ -689,10 +674,10 @@
 			paramMap.put("pid", pId);
 		} else {
 			sql.append(" AND LV=1 AND (PID IS NULL OR PID ='' OR PID =0) ");
-			
+
 		}
-		
-		
+
+
 		return baseDao.queryForInteger(sql.toString(), paramMap);
 	}
 
@@ -703,8 +688,8 @@
 		String thirdCateId = request.getParameter("thirdCate");
 		String pId = request.getParameter("pId");
 		sql.append("SELECT SORT_ID,NAME,ID,PID,LV,STATE FROM DSL_CONFIG WHERE  THIRD_CATEGORY_ID = :thirdCateId ");
-		
-		
+
+
 		Map paramMap = new HashMap();
 		//paramMap.put("partnerId", partnerId);
 		paramMap.put("thirdCateId", thirdCateId);
@@ -713,13 +698,13 @@
 			paramMap.put("pid", pId);
 		} else {
 			sql.append(" AND LV=1 AND (PID IS NULL OR PID ='' OR PID =0) ");
-			
+
 		}
-		
+
 		sql.append(" ORDER BY SORT_ID ");
-		
+
 		return baseDao.queryforSplitPageInfo(request, sql.toString(), paramMap);
-		
+
 	}
 
 	/**
@@ -731,7 +716,7 @@
 		return baseDao.queryForInteger(selectSql,new SqlParameter("pid",configId));
 	}
 
-	
+
 
 	@Override
 	public boolean saveProjectDsl(HttpServletRequest request) {
@@ -742,25 +727,25 @@
 		String id = StringUtil.getUUID();
 		String projectId = request.getParameter("projectId");
 		String order_num = request.getParameter("order_num");
-		
+
 		String[] cates = dslCateId.split("-");
 		String dsl_first_category_id = cates[0];
 		String dsl_second_category_id = cates[1];
 		String dsl_third_category_id = cates[2];
-		
-		
+
+
 		String searchcode = sequenceService.getDslCategorySequence(dsl_third_category_id);
 		sequenceService.nextCICategorySequence(dsl_third_category_id);
-		
+
 		String[] cateNames = dslCateName.split("-");
 		String dsl_first_category_name = cateNames[0];
 		String dsl_second_category_name = cateNames[1];
 		String dsl_third_category_name = cateNames[2];
-		
-		
+
+
 		String insertSql = "INSERT INTO PROJECT_DSL(ID,DSL_NAME,DSL_FIRST_CATEGORY_ID,DSL_FIRST_CATEGORY_NAME,DSL_SECOND_CATEGORY_ID,DSL_SECOND_CATEGORY_NAME,DSL_THIRD_CATEGORY_ID,DSL_THIRD_CATEGORY_NAME,NOTE,DSL_SEARCHCODE,STATE,PROJECT_ID,PARTNER_ID,ADD_TIME,ORDER_NUM)" +
 				"VALUES (:id,:dsl_name,:dsl_first_category_id,:dsl_first_category_name,:dsl_second_category_id,:dsl_second_category_name,:dsl_third_category_id,:dsl_third_category_name,:note,:dsl_searchcode,1,:project_id,:partner_id,:add_time,:order_num)";
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("id", id);
 		paramMap.put("dsl_name", dsl_name);
@@ -776,9 +761,9 @@
 		//paramMap.put("partner_id", WebUtil.getLoginedPartnerId(request));
 		paramMap.put("add_time", DateUtil.getCurrentDate14());
 		paramMap.put("order_num", order_num);
-		
+
 		baseDao.execute(insertSql, paramMap);
-		
+
 		return true;
 	}
 
@@ -805,24 +790,24 @@
 		String note = request.getParameter("note");
 		String id = request.getParameter("id");
 		String order_num = request.getParameter("order_num");
-		
+
 		String[] cates = dslCateId.split("-");
 		String dsl_first_category_id = cates[0];
 		String dsl_second_category_id = cates[1];
 		String dsl_third_category_id = cates[2];
-		
-		
+
+
 		String searchcode = sequenceService.getDslCategorySequence(dsl_third_category_id);
-		
-		
+
+
 		String[] cateNames = dslCateName.split("-");
 		String dsl_first_category_name = cateNames[0];
 		String dsl_second_category_name = cateNames[1];
 		String dsl_third_category_name = cateNames[2];
-		
+
 		String updateSql = "UPDATE PROJECT_DSL SET DSL_NAME = :dsl_name,DSL_FIRST_CATEGORY_ID = :dsl_first_category_id,DSL_FIRST_CATEGORY_NAME = :dsl_first_category_name," +
 				"DSL_SECOND_CATEGORY_ID = :dsl_second_category_id,DSL_SECOND_CATEGORY_NAME = :dsl_second_category_name,DSL_THIRD_CATEGORY_ID = :dsl_third_category_id,DSL_THIRD_CATEGORY_NAME = :dsl_third_category_name,NOTE = :note,ORDER_NUM = :order_num WHERE ID = :id ";
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("id", id);
 		paramMap.put("dsl_name", dsl_name);
@@ -834,12 +819,12 @@
 		paramMap.put("dsl_third_category_name", dsl_third_category_name);
 		paramMap.put("note", note);
 		paramMap.put("order_num", order_num);
-		
+
 		baseDao.execute(updateSql, paramMap);
 		return true;
 	}
 
-	
+
 	@Override
 	public String updateDslState(HttpServletRequest request) {
 		String id = request.getParameter("id");
@@ -860,17 +845,17 @@
 		//paramMap.put("partnerId", partnerId);
 		List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
         Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : cates) {
 			String level = map.get("LEVEL").toString();
 			String id = map.get("ID").toString();
-			
+
 			//涓�绾ф爲
 			if (level.equalsIgnoreCase("1")) {
 				yjgnCache.put(id, map);
@@ -887,7 +872,7 @@
 					List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 					map.put("sjTree", new LinkedList<Map>());
 					list.add(map);
-					
+
 					ejgnCache.put(id, map);
 				}
 				continue;
@@ -921,8 +906,8 @@
 		} else {
 			builder.append(" AND C.LEVEL = 1 ");
 		}
-		
-		
+
+
 		int count = baseDao.queryForInteger(builder.toString(),paramMap);
 		return count;
 	}
@@ -940,11 +925,11 @@
 		} else {
 			builder.append(" AND C.LEVEL = 1 ");
 		}
-		
+
 		builder.append(" ORDER BY STATE,ORDER_NUM ");
-		
+
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		return pageInfo;
 	}
 
@@ -953,7 +938,7 @@
 		String partner_id = "";
 		String id = dsl_category.getId();
 		String categoryid = request.getParameter("pId");
-		
+
 		String firstCate = "";
 		String secondCate = "";
 		if(!StringUtil.notEmpty(id)) {
@@ -962,27 +947,27 @@
 				int level = ConvertUtil.obj2Integer(pCate.getLevel());
 				dsl_category.setP_id(categoryid);
 				dsl_category.setLevel(level+1);
-				
+
 				if(level==2) {
 					firstCate = pCate.getP_id();
 					secondCate = pCate.getId();
 				} else {
 					firstCate = pCate.getId();
 				}
-				
+
 			} else {
 				dsl_category.setP_id(null);
 				dsl_category.setLevel(1);
 			}
-		
-		
-		
+
+
+
 			dsl_category.setState(Constants.COMMON_STATE_ENABLE);//鎵�鏈夎妭鐐规坊鍔犳椂
 			dsl_category.setPartner_id(partner_id);
 		}
-		
+
 		dsl_category.insertOrUpdate();
-        
+
         Map result = new HashMap();
         result.put("firstCate", firstCate);
 		result.put("secondCate", secondCate);
@@ -990,20 +975,20 @@
 	}
 
 
-	
+
 
 	@Override
 	public List<Map> getConfigDslList(String configId) {
-		SqlParameter param = new SqlParameter();	 
+		SqlParameter param = new SqlParameter();
 		param.addValue("configId", configId);
 		String sql = " SELECT  L.NEW_VERSION_ID,L.STATE FLAG,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,L.ID LINK_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION  " +
 				" FROM CMDB_DSL_LINK L ,DSL_VERSION V , PROJECT_DSL D " +
 				" WHERE L.DSL_ID = D.ID AND L.NEW_VERSION_ID = V.ID AND L.CI_ID = :configId AND (L.STATE IS NULL OR L.STATE = 1 OR L.STATE = 2 )";
 		return baseDao.queryForList(sql,param);
 	}
-	
-	
-	
+
+
+
 	@Override
 	public void addDslByConfig(PROJECT_DSL proDsl,String configId){
 		proDsl.setState(3);
@@ -1020,8 +1005,8 @@
 			baseDao.execute(sql, param);
 		}
 	}
-	
-	
+
+
 	@Override
 	public void addDslVersionByOrder(DSL_VERSION dslVersion){
 		String id = StringUtil.getUUID();
@@ -1047,21 +1032,21 @@
 		.addValue("update_time", dslVersion.getCreate_time());
 		baseDao.execute("delete from DSL_ORDER_LINK where FLOW_ID=:flowId and DSL_ID = :dslId ", param);
 		sql = " insert into DSL_ORDER_LINK (ID,FLOW_ID,DSL_ID,DSL_VERSION_ID) values (:id,:flowId,:dslId,:versionId) ";
-		
+
 		if(oldversion != null){
 			if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")))){
 				//澶嶅埗鏈�鏂扮増鏈殑閰嶇疆淇℃伅
 				saveDslConfig(ConvertUtil.obj2StrBlank(oldversion.get("VER_ID")),id);
 			}
-			
+
 		}
 		baseDao.execute(sql, param);
 		//dsl鍏宠仈閰嶇疆榛樿涓烘渶鏂扮増鏈�
 		baseDao.execute("UPDATE CMDB_DSL_LINK SET STATE = 2,NEW_VERSION_ID = :versionId , FLOW_ID = :flowId,DEALER_ID = :dealer_id,DEALER_NAME = :dealer_name,UPDATE_TIME = :update_time WHERE DSL_ID = :dslId  ", param);
-		
+
 	}
-	
-	
+
+
 	@Override
 	public int selectByCode(String code, String id,String partnerId,String pId) {
 		StringBuffer sql=new StringBuffer("select count(*) from DSL_CATEGORY where CATE_CODE= :code AND PARTNER_ID =:partner_id AND P_ID =:p_id ");
@@ -1091,31 +1076,31 @@
     	int count=baseDao.queryForInteger(sql.toString(),param);
     	return count;
 	}
-	
+
 	@Override
 	public FacedeResponse execDisableDslCategory(String id, String partnerId) {
         FacedeResponse res = new FacedeResponse();
-        
+
 		//鑾峰彇璇ュ垎绫讳笅鐨勬墍鏈夊瓙绫�
 		List<Map> list = this.getAllChildList(id);
 		Map map = new HashMap();
 		map.put("ID", id);
 		list.add(map);
-		
+
 		//鍏堝垹闄ゅ師鏉ョ殑鍒嗙被
 		String sql = "UPDATE DSL_CATEGORY SET STATE = 2 WHERE ID=:id AND PARTNER_ID=:partner_id ";
 		List<SqlParameter> paramList = new ArrayList<SqlParameter>();
-		
+
 		if (list != null && list.size() > 0) {
 			for (Map map2 : list) {
 				String categoryId = ConvertUtil.obj2Str(map2.get("ID"));
 				SqlParameter param = new SqlParameter();
 				param.addValue("id", categoryId);
 				param.addValue("partner_id", partnerId);
-				
+
 				paramList.add(param);
 			}
-			
+
 			baseDao.executeBatch(sql, paramList);
 		}
         return res;
@@ -1124,34 +1109,34 @@
 	@Override
 	public FacedeResponse execEnableDslCategory(String id, String partnerId) {
         FacedeResponse res = new FacedeResponse();
-        
+
 		//鑾峰彇璇ュ垎绫荤殑鐖剁被
 		List<Map> pList = this.getAllParentList(id, new ArrayList<Map>());
-		
+
 		//鑾峰彇璇ュ垎绫讳笅鐨勬墍鏈夊瓙绫�
 		List<Map> list = this.getAllChildList(id);
 		Map map = new HashMap();
 		map.put("ID", id);
 		list.add(map);
-		
+
 		//鍚堝苟鐖剁被鍜屽瓙绫诲垪琛�
 		list.addAll(pList);
-		
+
 		//淇敼DSL鍒嗙被鐘舵��
 		this.saveDslCategory(list, partnerId);
-		
+
         return res;
 	}
-	
+
 	/**
 	 * 淇濆瓨鍔犵洘鍟咲SL鍒嗙被
 	 * @param categoryIdList
 	 * @param partnerId
 	 */
 	private void saveDslCategory(List<Map> categoryIdList, String partnerId) {
-        
+
 		List<SqlParameter> paramList = new ArrayList<SqlParameter>();
-		
+
 		if (categoryIdList != null && categoryIdList.size() > 0) {
 			for (Map map : categoryIdList) {
 				String categoryId = ConvertUtil.obj2Str(map.get("ID"));
@@ -1160,12 +1145,12 @@
 				param.addValue("partner_id", partnerId);
 				paramList.add(param);
 			}
-			
+
 			String sql = "UPDATE DSL_CATEGORY SET STATE = 1 WHERE ID = :id AND PARTNER_ID=:partner_id ";
 			baseDao.executeBatch(sql, paramList);
 		}
 	}
-	
+
 	/**
 	 * 閫掑綊锛岃幏鍙栧垎绫讳笅鐨勬墍鏈夊瓙绫伙紝涓�鐩村埌涓夌骇鍒嗙被
 	 * @param pid
@@ -1173,7 +1158,7 @@
 	 */
 	private List<Map> getAllChildList(String pid) {
 		String sql = "select ID,LEVEL from DSL_CATEGORY where STATE=1 and P_ID=:pid ";
-		
+
 		List<Map> list = baseDao.queryForList(sql, new SqlParameter("pid", pid));
 		if (list != null && list.size() > 0) {
 			for (int i=0 ;i<list.size();i++) {
@@ -1186,10 +1171,10 @@
 				}
 			}
 		}
-		
+
 		return list;
 	}
-	
+
 	/**
 	 * 閫掑綊锛岃幏鍙栧綋鍓嶅瓙绫荤殑鎵�鏈夌埗绾у垎绫�
 	 * @param id
@@ -1198,7 +1183,7 @@
 	private List<Map> getAllParentList(String id, List<Map> tList) {
 		String sql = "select c.ID,c.LEVEL from DSL_CATEGORY c where c.STATE=1 and c.ID=(select P_ID from DSL_CATEGORY c2 where c2.STATE=1 and c2.ID=:id) ";
 		Map map = baseDao.queryForMap(sql, new SqlParameter("id", id));
-		
+
 		if (map != null && map.size() > 0) {
 			tList.add(map);
 			String cid = ConvertUtil.obj2Str(map.get("ID"));
@@ -1210,7 +1195,7 @@
 		}
 		return tList;
 	}
-	
+
 	@Override
 	public int selectByconfigName(String name, String id,String partnerId,String pId,String thirdCate) {
 		StringBuffer sql=new StringBuffer("select count(*) from DSL_CONFIG where NAME= :name AND PARTNER_ID =:partner_id AND PID =:p_id AND THIRD_CATEGORY_ID = :thirdCate ");
@@ -1230,27 +1215,27 @@
 	@Override
 	public FacedeResponse execDisableDslconfigCate(String id, String partnerId) {
         FacedeResponse res = new FacedeResponse();
-        
+
 		//鑾峰彇璇ュ垎绫讳笅鐨勬墍鏈夊瓙绫�
 		List<Map> list = this.getAllChildconfigList(id);
 		Map map = new HashMap();
 		map.put("ID", id);
 		list.add(map);
-		
+
 		//鍏堝垹闄ゅ師鏉ョ殑鍒嗙被
 		String sql = "UPDATE DSL_CONFIG SET STATE = 2 WHERE ID=:id AND PARTNER_ID=:partner_id ";
 		List<SqlParameter> paramList = new ArrayList<SqlParameter>();
-		
+
 		if (list != null && list.size() > 0) {
 			for (Map map2 : list) {
 				String categoryId = ConvertUtil.obj2Str(map2.get("ID"));
 				SqlParameter param = new SqlParameter();
 				param.addValue("id", categoryId);
 				param.addValue("partner_id", partnerId);
-				
+
 				paramList.add(param);
 			}
-			
+
 			baseDao.executeBatch(sql, paramList);
 		}
         return res;
@@ -1259,22 +1244,22 @@
 	@Override
 	public FacedeResponse execEnableDslconfigCate(String id, String partnerId) {
 		 FacedeResponse res = new FacedeResponse();
-	        
+
 			//鑾峰彇璇ュ垎绫荤殑鐖剁被
 			List<Map> pList = this.getAllParentconfigList(id, new ArrayList<Map>());
-			
+
 			//鑾峰彇璇ュ垎绫讳笅鐨勬墍鏈夊瓙绫�
 			List<Map> list = this.getAllChildconfigList(id);
 			Map map = new HashMap();
 			map.put("ID", id);
 			list.add(map);
-			
+
 			//鍚堝苟鐖剁被鍜屽瓙绫诲垪琛�
 			list.addAll(pList);
-			
+
 			//淇敼DSL鍒嗙被鐘舵��
 			this.saveDslconfigCate(list, partnerId);
-			
+
 	        return res;
 	}
 	/**
@@ -1283,9 +1268,9 @@
 	 * @param partnerId
 	 */
 	private void saveDslconfigCate(List<Map> categoryIdList, String partnerId) {
-        
+
 		List<SqlParameter> paramList = new ArrayList<SqlParameter>();
-		
+
 		if (categoryIdList != null && categoryIdList.size() > 0) {
 			for (Map map : categoryIdList) {
 				String categoryId = ConvertUtil.obj2Str(map.get("ID"));
@@ -1294,12 +1279,12 @@
 				param.addValue("partner_id", partnerId);
 				paramList.add(param);
 			}
-			
+
 			String sql = "UPDATE DSL_CONFIG SET STATE = 1 WHERE ID = :id AND PARTNER_ID=:partner_id ";
 			baseDao.executeBatch(sql, paramList);
 		}
 	}
-	
+
 	/**
 	 * 閫掑綊锛岃幏鍙栧垎绫讳笅鐨勬墍鏈夊瓙绫伙紝涓�鐩村埌涓夌骇鍒嗙被
 	 * @param pid
@@ -1307,7 +1292,7 @@
 	 */
 	private List<Map> getAllChildconfigList(String pid) {
 		String sql = "select ID,LV from DSL_CONFIG where STATE=1 and PID=:pid ";
-		
+
 		List<Map> list = baseDao.queryForList(sql, new SqlParameter("pid", pid));
 		if (list != null && list.size() > 0) {
 			for (int i=0 ;i<list.size();i++) {
@@ -1320,10 +1305,10 @@
 				}
 			}
 		}
-		
+
 		return list;
 	}
-	
+
 	/**
 	 * 閫掑綊锛岃幏鍙栧綋鍓嶅瓙绫荤殑鎵�鏈夌埗绾у垎绫�
 	 * @param id
@@ -1332,7 +1317,7 @@
 	private List<Map> getAllParentconfigList(String id, List<Map> tList) {
 		String sql = "select c.ID,c.LV from DSL_CONFIG c where c.STATE=1 and c.ID=(select PID from DSL_CATEGORY c2 where c2.STATE=1 and c2.ID=:id) ";
 		Map map = baseDao.queryForMap(sql, new SqlParameter("id", id));
-		
+
 		if (map != null && map.size() > 0) {
 			tList.add(map);
 			String cid = ConvertUtil.obj2Str(map.get("ID"));
@@ -1351,21 +1336,21 @@
 		Map paramMap = new HashMap();
 		//String partnerId = WebUtil.getLoginedPartnerId(request);
 		String selectSubSql = "SELECT * FROM DSL_CONFIG WHERE  THIRD_CATEGORY_ID = :thirdCateId AND STATE = 1 ORDER BY LV,SORT_ID ";
-		
+
 		//paramMap.put("partnerId", partnerId);
 		paramMap.put("thirdCateId", id);
-		
+
 		List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
         Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : cates) {
 			String level = map.get("LV").toString();
 			String configId = map.get("ID").toString();
-			
+
 			//涓�绾ф爲
 			if (level.equalsIgnoreCase("1")) {
 				yjgnCache.put(configId, map);
@@ -1400,9 +1385,9 @@
 	@Override
 	public int queryDslVersionCount(HttpServletRequest request) {
 		StringBuilder builder = new StringBuilder("SELECT COUNT(A.ID) FROM DSL_VERSION A  WHERE A.DSL_ID = :dslId AND A.STATE <> 3 ");
-		
+
 		String dslId = request.getParameter("dslId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		int count = baseDao.queryForInteger(builder.toString(), paramMap);
@@ -1412,13 +1397,13 @@
 	@Override
 	public PageInfo queryDslVersionData(HttpServletRequest request) {
 		StringBuilder builder = new StringBuilder("SELECT A.*,B.WFNAME FROM DSL_VERSION A LEFT JOIN WORKFLOW_BASE B ON A.CREATE_FLOW_ID = B.ID  WHERE A.DSL_ID = :dslId AND A.STATE <> 3 ORDER BY A.CREATE_TIME DESC  ");
-		
+
 		String dslId = request.getParameter("dslId");
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("dslId", dslId);
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		return pageInfo;
 	}
 
@@ -1430,13 +1415,13 @@
 		long update_time = DateUtil.getCurrentDate14();
 		long create_time = update_time;
 		String dealer_user_id = WebUtil.getLoginedUserId(request);
-		
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String dealer_user_name = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
-		
+
+
 		String id = StringUtil.getUUID();
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("id", id);
 		paramMap.put("dsl_id", dsl_id);
@@ -1446,30 +1431,30 @@
 		paramMap.put("create_time", create_time);
 		paramMap.put("update_time", update_time);
 		paramMap.put("note", note);
-		
+
 		String insertSql = "INSERT INTO DSL_VERSION(ID,DSL_ID,EDITION,STATE,UPDATE_TIME,DEALER_USER_ID,DEALER_USER_NAME,CREATE_TIME,NOTE,LAST_VERSION) VALUES (:id,:dsl_id,:edition,1,:update_time,:dealer_user_id,:dealer_user_name,:create_time,:note,:lastVersion)";
-		
-		
+
+
 		//鏌ヨ褰撳墠鏈�鏂扮殑鐗堟湰淇℃伅
 		Map newestVersion = queryDslNewestVersionById(dsl_id);
 		String oldVersion = new String();
-		
+
 		if(null!=newestVersion && newestVersion.size()>0) {
 			oldVersion = ConvertUtil.obj2StrBlank(newestVersion.get("VER_ID"));
 		}
-		
+
 		paramMap.put("lastVersion", oldVersion);
-		
+
 		baseDao.execute(insertSql, paramMap);
-		
+
 		if(StringUtil.notEmpty(oldVersion)) {
 			//澶嶅埗鐗堟湰淇℃伅
 			saveDslConfig(oldVersion, id);
 		}
-		
-		
-		
-		
+
+
+
+
 		return true;
 	}
 
@@ -1485,7 +1470,7 @@
 		return "1";
 	}
 
-	
+
 	@Override
 	public Map versionMore(String id) {
 		String selectSql = "SELECT A.*,B.DSL_NAME,B.DSL_FIRST_CATEGORY_NAME,B.DSL_SECOND_CATEGORY_NAME,B.DSL_THIRD_CATEGORY_NAME FROM DSL_VERSION A,PROJECT_DSL B WHERE A.DSL_ID = B.ID AND A.ID = :id ";
@@ -1495,7 +1480,7 @@
 
 	@Override
 	public Map queryDslNewestVersionById(String dslId) {
-		String selectSql = "SELECT A.*,C.EDITION,C.VER_ID,C.UPDATE_TIME FROM PROJECT_DSL A LEFT JOIN (SELECT B.DSL_ID,B.EDITION,B.ID AS VER_ID,B.UPDATE_TIME FROM DSL_VERSION B WHERE B.STATE = 1 AND B.DSL_ID = :dslId ORDER BY B.CREATE_TIME DESC LIMIT 0,1 ) C ON A.ID = C.DSL_ID WHERE A.ID = :dslId "; 
+		String selectSql = "SELECT A.*,C.EDITION,C.VER_ID,C.UPDATE_TIME FROM PROJECT_DSL A LEFT JOIN (SELECT B.DSL_ID,B.EDITION,B.ID AS VER_ID,B.UPDATE_TIME FROM DSL_VERSION B WHERE B.STATE = 1 AND B.DSL_ID = :dslId ORDER BY B.CREATE_TIME DESC LIMIT 0,1 ) C ON A.ID = C.DSL_ID WHERE A.ID = :dslId ";
 		Map newestVersion = baseDao.queryForMap(selectSql,new SqlParameter("dslId",dslId));
 		return newestVersion;
 	}
@@ -1515,7 +1500,7 @@
 		return "0";
 	}
 
-	
+
 	@Override
 	public List queryDslConfigFolder(String partnerId,String cateId) {
 		Map paramMap = new HashMap();
@@ -1524,15 +1509,15 @@
 		paramMap.put("cateId", cateId);
 		List<Map> cates = baseDao.queryForList(selectSubSql,paramMap);
         Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : cates) {
 			String level = map.get("LV").toString();
 			String id = map.get("ID").toString();
-			
+
 			//涓�绾ф爲
 			if (level.equalsIgnoreCase("1")) {
 				yjgnCache.put(id, map);
@@ -1564,9 +1549,9 @@
 			builder.append(" AND DSL_SECOND_CATE = :folderId ");
 			paramMap.put("folderId", folderId);
 		}
-		
+
 		int count = baseDao.queryForInteger(builder.toString(),paramMap);
-		
+
 		return count;
 	}
 
@@ -1579,18 +1564,18 @@
 			builder.append(" AND DSL_SECOND_CATE = :folderId ");
 			paramMap.put("folderId", folderId);
 		}
-		
+
 		builder.append(" ORDER BY CREATE_TIME DESC ");
-		
+
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, builder.toString(), paramMap);
-		
+
 		List<Map> files = pageInfo.getDatas();
 		if(null!=files && files.size()>0) {
 			for(Map file : files) {
 				file.put("FILE_SIZE", StringUtil.getFileSize(ConvertUtil.obj2Double(file.get("FILE_SIZE"))));
 			}
 		}
-		
+
 		return pageInfo;
 	}
 
@@ -1601,7 +1586,7 @@
 		String updateSql = "UPDATE DSL_CONFIG_FILE SET DEL_FLAG = 2 WHERE ID = :fileId ";
 		baseDao.execute(updateSql, new SqlParameter("fileId",fileId));
 		DSL_CONFIG_FILE file = new DSL_CONFIG_FILE(fileId).getInstanceById();
-		
+
 		//娣诲姞鍒犻櫎鏂囦欢璁板綍
 		DSL_VERSION version = new DSL_VERSION(file.getVersion_id()).getInstanceById();
 		String saverecordSql = "INSERT INTO DSL_CONFIG_FILE_CHANGE_DETAIL(ID,FIRST_CONFIG_CATE,SECOND_CONFIG_CATE,DSL_VERSION_ID,FILE_ID,DEAL_TYPE,FLOW_ID,CREATE_TIME,USER_ID,USER_NAME) VALUES(:id,:first_config_cate,:folderId,:versionId,:file_id,:deal_type,:flow_id,:createTime,:userId,:userName)";
@@ -1620,8 +1605,8 @@
 		return true;
 	}
 
-	
-	
+
+
 	@Override
 	public void addConfigLinkDsl(String configId, String dslIds, String verIds, String delFlags, String flowId, String userId, String userName) {
 		List<SqlParameter> addParams = new ArrayList<SqlParameter>();
@@ -1661,16 +1646,16 @@
 			sql = " UPDATE CMDB_DSL_LINK SET STATE = NULL,DEALER_ID=NULL,DEALER_NAME=NULL,UPDATE_TIME=NULL,FLOW_ID=NULL WHERE CI_ID=:configId AND DSL_ID =:dslId AND STATE=3 ";
 			baseDao.executeBatch(sql, updateParams);
 		}
-		
+
 	}
 
-	
-	
+
+
 	private Map getSelConfigDslSupport(HttpServletRequest request) {
 		Map support = new HashMap();
 		SqlParameter param = new SqlParameter();
 		StringBuilder builder = new StringBuilder();
-		
+
 		builder.append(" SELECT * FROM ( ");
 		builder.append(" 	SELECT 0 AS DEL_FLAG,D.STATE,D.DSL_THIRD_CATEGORY_ID,V.UPDATE_TIME,CONCAT(D.DSL_FIRST_CATEGORY_NAME,'-',D.DSL_SECOND_CATEGORY_NAME,'-',D.DSL_THIRD_CATEGORY_NAME) CATE_NAME,D.ID DSL_ID,V.ID VER_ID,D.DSL_SEARCHCODE,D.DSL_NAME,V.EDITION ");
 		builder.append(" 	FROM PROJECT_DSL D ,DSL_VERSION V ");
@@ -1683,22 +1668,22 @@
 		builder.append(" 	FROM CMDB_DSL_LINK L,PROJECT_DSL D,DSL_VERSION V ");
 		builder.append(" 	WHERE L.DSL_ID = D.ID AND L.DSL_VERSION_ID = V.ID AND L.STATE=3 AND L.CI_ID = :configId ORDER BY UPDATE_TIME DESC ");
 		builder.append(" ) T WHERE 1=1 ");
-		
+
 		String proId = request.getParameter("proId");
 		if(StringUtil.notEmpty(proId)) {
 			param.put("proId", proId);
 		}
-		
+
 		String configId = request.getParameter("configId");
 		if(StringUtil.notEmpty(configId)) {
 			param.put("configId", configId);
 		}
-		
+
 		String flowId = request.getParameter("flowId");
 		if(StringUtil.notEmpty(flowId)) {
 			param.put("flowId", flowId);
 		}
-		
+
 		String dslName = request.getParameter("dslName");
 		if(StringUtil.notEmpty(dslName)) {
 			builder.append(" AND DSL_NAME LIKE :dslName ");
@@ -1714,27 +1699,27 @@
 			builder.append(" AND DSL_SEARCHCODE like :dslSearchCode ");
 			param.put("dslSearchCode", "%"+dslSearchCode+"%");
 		}
-		
+
 		String dslIds = request.getParameter("dslIds");
 		if(StringUtil.notEmpty(dslIds)) {
 			dslIds = "'" + dslIds.replace(",", "','") + "'";
 			builder.append(" AND DSL_ID NOT IN ("+dslIds+") ");
 		}
 		builder.append(" GROUP BY DSL_ID ORDER BY UPDATE_TIME DESC ");
-		
+
 		support.put("sql", builder.toString());
 		support.put("param", param);
 		return support;
 	}
-	
 
-	
+
+
 
 	@Override
 	public Map getDslMsgById(String id,HttpServletRequest request) {
 		StringBuilder builder = new StringBuilder("SELECT c.*,A.EDITION,A.CREATE_TIME,A.VERSIONID FROM PROJECT_DSL c LEFT JOIN (SELECT MAX(B.CREATE_TIME),B.ID AS VERSIONID,B.DSL_ID,B.EDITION,B.CREATE_TIME FROM DSL_VERSION B WHERE B.STATE = 1 AND B.ID = :id ) A ON c.ID = A.DSL_ID WHERE  c.STATE <> 3 ");
        // String partnerId = WebUtil.getLoginedPartnerId(request);
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("id", id);
 		//paramMap.put("partnerId", partnerId);
@@ -1766,9 +1751,9 @@
 		PageInfo pageInfo = baseDao.queryforSplitPageInfo(request, sql, param);
 		return pageInfo;
 	}
-	
-	
-	
+
+
+
 	@Override
 	public int getSelConfigDslListCount(HttpServletRequest request) {
 		Map support = getSelConfigDslSupport(request);
@@ -1794,10 +1779,10 @@
 			.addValue("curDate", curDate)
 			.addValue("flowId", flowId);
 		baseDao.execute(sql, param);
-		
+
 	}
 
-	
+
 
 
 	@Override
@@ -1850,11 +1835,11 @@
 				sqlParameter.put("VERSION_ID", newVersion);
 				paramList.add(sqlParameter);
 			}
-			
+
 			String insertSql = "INSERT INTO DSL_CONFIG_FILE(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,VERSION_ID,ORDERNUM,FILE_NOTE,DSL_FIRST_CATE,DSL_SECOND_CATE,CREATE_TIME,USER_ID,USER_NAME,DEL_FLAG) VALUES (:ID,:FILE_NAME,:FILE_PATH,:FILE_SIZE,:FILE_FORMAT,:VERSION_ID,:ORDERNUM,:FILE_NOTE,:DSL_FIRST_CATE,:DSL_SECOND_CATE,:CREATE_TIME,:USER_ID,:USER_NAME,:DEL_FLAG)";
 			baseDao.executeBatch(insertSql,paramList);
 		}
-		
+
 	}
 
 	@Override
@@ -1911,5 +1896,5 @@
 		return info;
 	}
 
-	
+
 }
diff --git a/src/cn/ksource/web/facade/fileManage/DocFacadeImpl.java b/src/cn/ksource/web/facade/fileManage/DocFacadeImpl.java
index 4013ced..8495826 100644
--- a/src/cn/ksource/web/facade/fileManage/DocFacadeImpl.java
+++ b/src/cn/ksource/web/facade/fileManage/DocFacadeImpl.java
@@ -1,16 +1,5 @@
 package cn.ksource.web.facade.fileManage;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import cn.ksource.core.dao.BaseDao;
 import cn.ksource.core.dao.SqlParameter;
 import cn.ksource.core.page.PageInfo;
@@ -19,14 +8,22 @@
 import cn.ksource.core.util.StringUtil;
 import cn.ksource.core.web.TreeNode;
 import cn.ksource.web.Constants;
-import cn.ksource.web.service.file.FileService;
+import org.apache.commons.lang.StringUtils;
+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("docFacade")
 @SuppressWarnings("unchecked")
 public class DocFacadeImpl implements DocFacade {
-	@Autowired 
+	@Autowired
 	BaseDao baseDao;
-	
+
 	@Override
 	public List queryMyfileList(HttpServletRequest request) {
 		StringBuilder sql=new StringBuilder("SELECT ID,FOLDER_NAME AS NAME,FOLDER_PATH AS PATH,0 AS FILE_SIZE,0 AS FILE_FORMAT,ORDERNUM,P_ID,CREATE_TIME,1 AS FILE_TYPE FROM GG_FOLDERS A" +
@@ -49,15 +46,15 @@
 
 	@Override
 	public int queryfileCount(Map<String,String> params) {
-		StringBuilder sql=new StringBuilder("SELECT COUNT(C.ID) FROM(SELECT ID,FOLDER_NAME AS NAME FROM GG_FOLDERS A WHERE 1=1");
+		StringBuilder sql=new StringBuilder("SELECT COUNT(C.ID) FROM(SELECT ID FROM GG_FOLDERS A WHERE 1=1");
 		String pId=params.get("pId");
 		if(StringUtil.isEmpty(pId)){
 			sql.append(" AND A.P_ID IS NULL");
 		}else{
 			sql.append(" AND A.P_ID=:pId");
 		}
-		sql.append(" UNION SELECT ID,FILE_NAME AS NAME FROM GG_FILES B WHERE B.DEL_FLAG=1 AND B.AUDIT_STATE="+Constants.FILE_STATE_SHTG);
-		
+		sql.append(" UNION SELECT ID FROM GG_FILES B WHERE B.DEL_FLAG=1 AND B.AUDIT_STATE="+Constants.FILE_STATE_SHTG);
+
 		if(StringUtil.isEmpty(pId)){
 			sql.append(" AND(B.FOLDER_ID IS NULL OR B.FOLDER_ID = '0' )");
 		}else{
@@ -74,8 +71,8 @@
 
 	@Override
 	public PageInfo queryfileData(PageInfo pageInfo, Map<String,String> params) {
-		StringBuilder sql=new StringBuilder("SELECT * FROM (SELECT ID,FOLDER_NAME AS NAME,FOLDER_PATH AS PATH,0 AS FILE_SIZE,0 AS FILE_FORMAT,ORDERNUM,P_ID,CREATE_TIME,1 AS FILE_TYPE,TYPE,0 AS BUSINESSTYPE,0 AS ORDER_CODE,0 AS FLOWID,0 AS BUSINESS_ID FROM GG_FOLDERS A WHERE 1=1");
-				
+		StringBuilder sql=new StringBuilder("SELECT * FROM (SELECT ID,FOLDER_NAME AS NAME,FOLDER_PATH AS PATH,'0' AS FILE_SIZE,'0' AS FILE_FORMAT,ORDERNUM,P_ID,CREATE_TIME,1 AS FILE_TYPE,TYPE,0 AS BUSINESSTYPE,'0' AS ORDER_CODE,'0' AS FLOWID,'0' AS BUSINESS_ID FROM GG_FOLDERS A WHERE 1=1");
+
 		String pId=params.get("pId");
 		if(StringUtil.isEmpty(pId)){
 			sql.append(" AND A.P_ID IS NULL");
@@ -103,7 +100,7 @@
 			}else {
 				sql.append(" ORDER BY C.TYPE ASC,C.FILE_TYPE ");
 			}
-			
+
 		}
 		else if(!StringUtil.isEmpty(orderType)&&"2".equals(orderType)){
 			if("1".equals(orderWay)){
@@ -111,7 +108,7 @@
 			}else {
 				sql.append(" ORDER BY CAST(C.FILE_SIZE as SIGNED) ");
 			}
-			
+
 		}
 		else if(!StringUtil.isEmpty(orderType)&&"3".equals(orderType)){
 			if("1".equals(orderWay)){
@@ -119,12 +116,12 @@
 			}else {
 				sql.append(" ORDER BY C.CREATE_TIME ");
 			}
-			
+
 		}
 		else{
 			sql.append(" ORDER BY C.TYPE ASC,C.FILE_TYPE,C.FILE_FORMAT,C.CREATE_TIME DESC");
 		}
-		
+
 		PageInfo info=baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 		List<Map> list= info.getDatas();
 		for(Map map :list){
@@ -187,7 +184,7 @@
 			sqlBuilder.append("UPDATE GG_FILES SET FILE_NAME =:newName WHERE ID=:id");
 		}
 		baseDao.execute(sqlBuilder.toString(), params);
-		
+
 	}
 
 	@Override
@@ -214,7 +211,7 @@
 			paramMap.put("pid", pid);
 		}
 		sql.append(" ORDER BY CREATE_TIME");
-		
+
 		List<Map> categoryList = baseDao.queryForList(sql.toString(), paramMap);
 		for (Map map : categoryList) {
 			TreeNode yjTree = new TreeNode(map.get("ID").toString(),map.get("FOLDER_NAME").toString());
@@ -255,7 +252,7 @@
 		paramMap.put("businessId", businessId);
 		paramMap.put("createTime", DateUtil.getCurrentDate14());
 		baseDao.execute(saveSql, paramMap);
-		
+
 	}
 
 	@Override
@@ -279,8 +276,8 @@
 				break;
 			}
 		}
-		
-		
+
+
 		return list;
 	}
 
@@ -317,7 +314,7 @@
 			}else {
 				sqlBuilder.append(" ORDER BY A.ORDERNUM ");
 			}
-			
+
 		}
 		else if(!StringUtil.isEmpty(orderType)&&"2".equals(orderType)){
 			if("1".equals(orderWay)){
@@ -325,7 +322,7 @@
 			}else {
 				sqlBuilder.append(" ORDER BY CAST(A.FILE_SIZE as SIGNED) ");
 			}
-			
+
 		}
 		else if(!StringUtil.isEmpty(orderType)&&"3".equals(orderType)){
 			if("1".equals(orderWay)){
@@ -333,7 +330,7 @@
 			}else {
 				sqlBuilder.append(" ORDER BY A.CREATE_TIME ");
 			}
-			
+
 		}
 		else{
 			sqlBuilder.append(" ORDER BY A.CREATE_TIME DESC");
@@ -420,7 +417,7 @@
 				map.put("FOLDER_NAME", f_name);
 			}
 		}
-		
+
 		return map;
 	}
 
@@ -503,6 +500,6 @@
 	public void docheckFile(Map<String, String> params) {
 		String sql="UPDATE GG_FILES SET AUDIT_STATE=:flag WHERE ID=:id";
 		baseDao.execute(sql, params);
-		
+
 	}
 }
diff --git a/src/cn/ksource/web/facade/health/HealthFacadeImpl.java b/src/cn/ksource/web/facade/health/HealthFacadeImpl.java
index f8fa312..17f0054 100644
--- a/src/cn/ksource/web/facade/health/HealthFacadeImpl.java
+++ b/src/cn/ksource/web/facade/health/HealthFacadeImpl.java
@@ -1,27 +1,12 @@
 package cn.ksource.web.facade.health;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.stereotype.Service;
-
 import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
 import cn.ksource.beans.SC_WORKFLOW_CI_HEALTH;
 import cn.ksource.beans.WORKFLOW_NODE;
 import cn.ksource.core.dao.BaseDao;
 import cn.ksource.core.dao.SqlParameter;
 import cn.ksource.core.page.PageInfo;
-import cn.ksource.core.util.ConvertUtil;
-import cn.ksource.core.util.DateUtil;
-import cn.ksource.core.util.JsonUtil;
-import cn.ksource.core.util.StringUtil;
-import cn.ksource.core.util.TreeUtil;
+import cn.ksource.core.util.*;
 import cn.ksource.core.web.ClientUtil;
 import cn.ksource.core.web.SysInfoMsg;
 import cn.ksource.core.web.WebUtil;
@@ -31,6 +16,11 @@
 import cn.ksource.web.service.file.FileService;
 import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
 import cn.ksource.web.util.DateParepareUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 
 @Service
 @SuppressWarnings("unchecked")
@@ -771,7 +761,7 @@
             builder.append("and FLOWSTATE =:nodeState ");
         }
         builder.append(" 	order by FLOWSTATE asc	 ");
-        builder.append(" 	) t group by FLOWID	 ");
+        builder.append(" 	) t group by FLOWID,NODETIME,NODEID,NODESTATE ");
         builder.append(" ) n  ");
         builder.append("  on b.ID = n.FLOWID ");
         //宸ュ崟绫诲瀷
diff --git a/src/cn/ksource/web/facade/incident/IncidentFacadeImpl.java b/src/cn/ksource/web/facade/incident/IncidentFacadeImpl.java
index 7c04073..5a8d902 100644
--- a/src/cn/ksource/web/facade/incident/IncidentFacadeImpl.java
+++ b/src/cn/ksource/web/facade/incident/IncidentFacadeImpl.java
@@ -884,7 +884,7 @@
     }
     @Override
     public Map queryContactNameInfo(Map param) {
-        
+
 
         String selectSql = "SELECT CONTACT_NAME,YWKS,SUB_CUSTOMER_ID,SUB_CUSTOMER_NAME,CONTACTS_TYPE FROM CUSTOMER_CONTACTS WHERE CONTACT_NAME = :contactName AND CUSTOMER_ID = :customer_id ";
         Map map = baseDao.queryForMap(selectSql,param);
@@ -1762,30 +1762,30 @@
         String flowstate = params.get("flowstate");
         if (StringUtil.notEmpty(flowstate)) {
             if (flowstate.equals("1")) {
-                builder.append(" SELECT DISTINCT D.* FROM ( ");
+                builder.append(" SELECT DISTINCT ID, WFNAME, BUSINESSTYPE, WFSTATE, WORKFLOWTYPE, CREATERNAME, CREATERID, CREATETIME, ENDTIME, MAINFLOWID, CURRENT_NODE_NAME, CURRENT_NODE_ID, DEAL_TYPE, CURRENT_DEALER_ID, CURRENT_DEALER_NAME, CURRENT_DEAL_ROLEIDA, CURRENT_DEAL_ROLENAME, WF_TEMPLATE_ID, BUSINESS_ID, ORDER_CODE, CUSTOMER_ID, CUSTOMER_NAME, PROJECT_ID, PROJECT_NAME, SUB_CUSTOMER_NAME, SUB_CUSTOMER_ID, NAME, CONTACT_NAME, PRIORITY_ID, INFLUENCE_ID, SLA_ID, THIRD_CATEGORY_ID, TYPE_ID 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 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.NOTE, 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 C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jddcl ");
 
                 builder.append(")D");
                 builder.append(" WHERE 1=1 ");
                 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 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 DISTINCT ID, WFNAME, BUSINESSTYPE, WFSTATE, WORKFLOWTYPE, CREATERNAME, CREATERID, CREATETIME, ENDTIME, MAINFLOWID, CURRENT_NODE_NAME, CURRENT_NODE_ID, DEAL_TYPE, CURRENT_DEALER_ID, CURRENT_DEALER_NAME, CURRENT_DEAL_ROLEIDA, CURRENT_DEAL_ROLENAME, WF_TEMPLATE_ID, BUSINESS_ID, ORDER_CODE, CUSTOMER_ID, CUSTOMER_NAME, PROJECT_ID, PROJECT_NAME, SUB_CUSTOMER_NAME, SUB_CUSTOMER_ID, NAME, CONTACT_NAME, PRIORITY_ID, INFLUENCE_ID, SLA_ID, THIRD_CATEGORY_ID, TYPE_ID FROM ( ");
+                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.NOTE, 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 C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID  AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdjxz");
                 builder.append(")D");
                 builder.append(" WHERE 1=1 ");
                 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 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 DISTINCT ID, WFNAME, BUSINESSTYPE, WFSTATE, WORKFLOWTYPE, CREATERNAME, CREATERID, CREATETIME, ENDTIME, MAINFLOWID, CURRENT_NODE_NAME, CURRENT_NODE_ID, DEAL_TYPE, CURRENT_DEALER_ID, CURRENT_DEALER_NAME, CURRENT_DEAL_ROLEIDA, CURRENT_DEAL_ROLENAME, WF_TEMPLATE_ID, BUSINESS_ID, ORDER_CODE, CUSTOMER_ID, CUSTOMER_NAME, PROJECT_ID, PROJECT_NAME, SUB_CUSTOMER_NAME, SUB_CUSTOMER_ID, NAME, CONTACT_NAME, PRIORITY_ID, INFLUENCE_ID, SLA_ID, THIRD_CATEGORY_ID, TYPE_ID FROM ( ");
+                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.NOTE, 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 C  WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID  AND A.CURRENT_DEALER_ID = :userId AND A.FLOWSTATE = :jdywc ");
                 builder.append(")D");
                 builder.append(" WHERE 1=1 ");
                 params.put("jdywc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_FINISH));
             }
         } else {
-            builder.append(" SELECT DISTINCT D.* FROM ( ");
+            builder.append(" SELECT DISTINCT ID, WFNAME, BUSINESSTYPE, WFSTATE, WORKFLOWTYPE, CREATERNAME, CREATERID, CREATETIME, ENDTIME, MAINFLOWID, CURRENT_NODE_NAME, CURRENT_NODE_ID, DEAL_TYPE, CURRENT_DEALER_ID, CURRENT_DEALER_NAME, CURRENT_DEAL_ROLEIDA, CURRENT_DEAL_ROLENAME, WF_TEMPLATE_ID, BUSINESS_ID, ORDER_CODE, CUSTOMER_ID, CUSTOMER_NAME, PROJECT_ID, PROJECT_NAME, SUB_CUSTOMER_NAME, SUB_CUSTOMER_ID, NAME, CONTACT_NAME, PRIORITY_ID, INFLUENCE_ID, SLA_ID, THIRD_CATEGORY_ID, TYPE_ID 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 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.NOTE, 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 C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID AND A.CURRENT_DEALER_ID = :userId ");
             builder.append(")D");
             builder.append(" WHERE  D.WFSTATE != :ysc  ");
         }
@@ -2339,7 +2339,7 @@
     public int queryincidentEndCount(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 B,WORKFLOW_BASE WB   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB   ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType  AND WB.WFSTATE = :type ");
         sqlpart = getEndSql(sqlpart, params);
         sql.append(sqlpart);
@@ -2353,7 +2353,8 @@
     public PageInfo queryincidentEndList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
+//        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
+        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.ENDTIME , ");
         sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ,");
         sql.append(" D.HANG_UP_USERNAME,D.HANG_UP_TIME,D.HANG_UP_REASON ,WB.SCORE ");
         sql.append("FROM (SELECT F.*,E.SCORE FROM  WORKFLOW_BASE F LEFT JOIN ORDER_SATIS_INFO E ON F.ID = E.BUSINESS_ID WHERE  F.BUSINESSTYPE = :businessType ) WB, WORKFLOW_NODE C ,SC_WORKFLOW_INCIDENT B LEFT JOIN HANG_UP_INFO D ON B.ID = D.BUS_ID ");
@@ -2362,7 +2363,7 @@
 
         sqlpart = getEndSql(sqlpart, params);
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID,B.RESOLVE_TYPE_NAME, B.CREATE_TIME, B.CREATE_USER_NAME, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, WB.ENDTIME , WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME , D.HANG_UP_USERNAME, D.HANG_UP_TIME, D.HANG_UP_REASON , WB.SCORE ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -2479,7 +2480,7 @@
     public int queryincidentJxzCount(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 B,WORKFLOW_BASE WB   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB   ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND WB.BUSINESSTYPE = :businessType  AND WB.WFSTATE = 1 ");
         sqlpart = getJxzSql(sqlpart, params);
         sql.append(sqlpart);
@@ -2493,14 +2494,14 @@
     public PageInfo queryincidentJxzList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT WB.* ,B.STATE ,B.NAME ");
+        sql.append("SELECT WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID ,B.STATE ,B.NAME ");
         sql.append("FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB , WORKFLOW_NODE C ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND  C.FLOWID = WB.ID AND WB.BUSINESSTYPE = :businessType AND WB.WFSTATE = 1 ");
         params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT));
         sqlpart = getJxzSql(sqlpart, params);
 
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID ,B.STATE ,B.NAME ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -2717,15 +2718,15 @@
         StringBuffer sql = new StringBuffer();
 
         Map paramMap = new HashMap();
-        selectSql.append("SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.* FROM SC_WORKFLOW_INCIDENT A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT  NULL AND A.ID = B.BUSINESS_ID  ");
-        sql.append("SELECT COUNT(D.ID) FROM (SELECT A.*  FROM SC_WORKFLOW_INCIDENT  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT NULL AND A.ID = B.BUSINESS_ID ");
+        selectSql.append("SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.ID, A.STATE FROM SC_WORKFLOW_INCIDENT A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT  NULL AND A.ID = B.BUSINESS_ID  ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT A.ID  FROM SC_WORKFLOW_INCIDENT  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT NULL AND A.ID = B.BUSINESS_ID ");
         String customer_Id = request.getParameter("customerId");
         if (!StringUtil.isEmpty(customer_Id)) {
             selectSql.append(" AND A.CUSTOMER_ID = :customer_Id ");
             sql.append(" AND A.CUSTOMER_ID = :customer_Id ");
             paramMap.put("customer_Id", customer_Id);
         }
-        selectSql.append(" GROUP BY A.ID) D  GROUP BY D.STATE ");
+        selectSql.append(" GROUP BY A.ID, A.STATE) D  GROUP BY D.STATE ");
         sql.append(" GROUP BY A.ID) D ");
 
         List<Map> list = baseDao.queryForList(selectSql.toString(), paramMap);
@@ -2773,7 +2774,7 @@
     public int queryincidentOrderNodeCount(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 B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT 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 ");
         sqlpart = getOrderNodeSql(sqlpart, params);
         sql.append(sqlpart);
@@ -2787,14 +2788,14 @@
     public PageInfo queryincidentOrderNodeList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE , ");
+        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,");
         sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ");
         sql.append("FROM SC_WORKFLOW_INCIDENT 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 ");
         params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT));
         sqlpart = getOrderNodeSql(sqlpart, params);
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY  WB.ID,WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -2915,7 +2916,7 @@
     public int queryincidentTimeoutCount(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 B,WORKFLOW_BASE WB   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT 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 ) ");
 
         sqlpart = getincidentTimeOutSql(sqlpart, params);
@@ -2930,14 +2931,14 @@
     public PageInfo queryincidentTimeoutList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT WB.*,B.STATE ,B.NAME  ");
+        sql.append("SELECT WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID,B.STATE ,B.NAME  ");
         sql.append("FROM SC_WORKFLOW_INCIDENT 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("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT));
 
         sqlpart = getincidentTimeOutSql(sqlpart, params);
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID,B.STATE ,B.NAME ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -3079,7 +3080,7 @@
         paramMap.put("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE);
         //鏌ヨ璇ヤ汉鍛樻墍灞炵殑椤圭洰
         sql.append("SELECT COUNT(*) AS NUM,E.STATE FROM SC_WORKFLOW_INCIDENT E,WORKFLOW_BASE D,((SELECT B.ID FROM AC_ROLE B WHERE B.STATE = 1) UNION ALL (SELECT DISTINCT A.ID  FROM AC_ROLE_GROUP A WHERE  A.STATE = 1) ");
-        sqlall.append("SELECT COUNT(F.ID) FROM (SELECT E.* FROM SC_WORKFLOW_INCIDENT E,WORKFLOW_BASE D,((SELECT B.ID FROM AC_ROLE B WHERE B.STATE = 1) UNION ALL (SELECT DISTINCT A.ID  FROM AC_ROLE_GROUP A WHERE  A.STATE = 1) ");
+        sqlall.append("SELECT COUNT(F.ID) FROM (SELECT E.ID FROM SC_WORKFLOW_INCIDENT E,WORKFLOW_BASE D,((SELECT B.ID FROM AC_ROLE B WHERE B.STATE = 1) UNION ALL (SELECT DISTINCT A.ID  FROM AC_ROLE_GROUP A WHERE  A.STATE = 1) ");
 
         sql.append(") C WHERE E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )");
 
@@ -3137,7 +3138,7 @@
     public int querymyincidentEndCount(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 B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND  C.FLOWID = WB.ID AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
 
         sqlpart.append(" AND WB.WFSTATE = :state  ");
@@ -3154,7 +3155,8 @@
     public PageInfo querymyincidentEndList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
+//        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.ENDTIME , ");
+        sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME ,WB.ENDTIME , ");
         sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME, ");
         sql.append(" D.HANG_UP_USERNAME,D.HANG_UP_TIME,D.HANG_UP_REASON ,WB.SCORE ");
         sql.append("FROM (SELECT F.*,E.SCORE FROM  WORKFLOW_BASE F LEFT JOIN ORDER_SATIS_INFO E ON F.ID = E.BUSINESS_ID WHERE  F.BUSINESSTYPE = :businessType ) WB , WORKFLOW_NODE C ,SC_WORKFLOW_INCIDENT B LEFT JOIN HANG_UP_INFO D ON B.ID = D.BUS_ID ");
@@ -3164,7 +3166,7 @@
         sqlpart.append(" AND WB.WFSTATE = :state  ");
         params.put("state", params.get("type"));
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID, B.RESOLVE_TYPE_NAME, B.CREATE_TIME, B.CREATE_USER_NAME,  WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME , WB.ENDTIME , WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME, D.HANG_UP_USERNAME, D.HANG_UP_TIME, D.HANG_UP_REASON , WB.SCORE ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -3303,8 +3305,8 @@
         Map paramMap = new HashMap();
         paramMap.put("flowstate", type);
         paramMap.put("userId", params.get("userId"));
-        selectSql.append("SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.* FROM SC_WORKFLOW_INCIDENT A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID  ");
-        sql.append("SELECT COUNT(D.ID) FROM (SELECT A.*  FROM SC_WORKFLOW_INCIDENT  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID ");
+        selectSql.append("SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.ID,A.STATE FROM SC_WORKFLOW_INCIDENT A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID  ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT A.ID  FROM SC_WORKFLOW_INCIDENT  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID ");
 
         String customer_Id = params.get("customerId");
         if (!StringUtil.isEmpty(customer_Id)) {
@@ -3314,7 +3316,7 @@
         }
 
 
-        selectSql.append(" GROUP BY A.ID) D  GROUP BY D.STATE ");
+        selectSql.append(" GROUP BY A.ID,A.STATE) D  GROUP BY D.STATE ");
         sql.append(" GROUP BY A.ID) D ");
 
         List<Map> list = baseDao.queryForList(selectSql.toString(), paramMap);
@@ -3361,7 +3363,7 @@
     public int querymyincidentOrderNodeCount(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 B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND  C.FLOWID = WB.ID  AND C.FLOWSTATE = :flowstate AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
         params.put("flowstate", params.get("type"));
         sqlpart = getmyodernodeSql(sqlpart, params);
@@ -3376,7 +3378,7 @@
     public PageInfo querymyincidentOrderNodeList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,C.FLOWSTATE, ");
+        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,C.FLOWSTATE, ");
         sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ");
         sql.append("FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB , WORKFLOW_NODE C ");
         sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND  C.FLOWID = WB.ID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
@@ -3386,7 +3388,7 @@
         sqlpart = getmyodernodeSql(sqlpart, params);
 
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, C.FLOWSTATE, WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -3511,7 +3513,7 @@
     public int querymyincidentTimeoutCount(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 B,WORKFLOW_BASE WB   ");
+        sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_INCIDENT 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 )  AND WB.CURRENT_DEALER_ID = :current_dealer_id  ");
         params.put("current_dealer_id", params.get("userId"));
 
@@ -3638,7 +3640,8 @@
     public PageInfo querymyincidentTimeoutList(PageInfo pageInfo, Map<String, String> params) {
         StringBuilder sql = new StringBuilder();
         StringBuilder sqlpart = new StringBuilder();
-        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE , ");
+        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME, ");
+//        sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE , ");
         sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ");
         sql.append("FROM SC_WORKFLOW_INCIDENT B,WORKFLOW_BASE WB WHERE WB.BUSINESS_ID = B.ID  ");
         sqlpart.append("  AND WB.BUSINESSTYPE = :businessType AND WB.WFSTATE = 1  AND (B.ANSWER_TIMEOUT = 1 OR B.DEAL_TIMEOUT  = 1 ) AND WB.CURRENT_DEALER_ID = :current_dealer_id ");
@@ -3758,7 +3761,7 @@
 
         }
         sql.append(sqlpart);
-        sql.append(" GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
+        sql.append(" GROUP BY WB.ID, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME,WB.CREATETIME ORDER BY WB.CREATETIME DESC ");
 
         return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
     }
@@ -5498,12 +5501,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  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 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);
@@ -5642,12 +5645,12 @@
         StringBuilder builder = new StringBuilder();
         if (StringUtil.isBlank(userId)) {
             builder.append(" select count(ID) NUM,THIRD_CATEGORY_ID SERVER_ID  from SC_WORKFLOW_INCIDENT  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 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);
@@ -5784,9 +5787,9 @@
                 }
             }
     	}
-    	
+
         return map;
-        
+
     }
 
     @Override
diff --git a/src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java b/src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java
index 81ce094..87af250 100644
--- a/src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java
+++ b/src/cn/ksource/web/facade/knowledge/KmLibraryFacadeImpl.java
@@ -1,53 +1,39 @@
 package cn.ksource.web.facade.knowledge;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.ksource.beans.GG_USER;
-import cn.ksource.beans.KM_LIBRARY;
-import cn.ksource.beans.KM_LIBRARY_CATEGORY;
-import cn.ksource.beans.KM_LIBRARY_HIT_RECORD;
-import cn.ksource.beans.KM_LIBRARY_KNOWLEDGE_ACCESS;
-import cn.ksource.beans.KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP;
-import cn.ksource.beans.KM_LIBRARY_TEMP;
+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.ParamsMapUtil;
 import cn.ksource.core.util.StringUtil;
 import cn.ksource.core.web.SysInfoMsg;
-import cn.ksource.core.web.WebUtil;
 import cn.ksource.web.Constants;
 import cn.ksource.web.facade.knowledge.knowledgeDeal.KnowledgeDealFacade;
 import cn.ksource.web.service.file.FileService;
 import cn.ksource.web.service.knowledge.KmRecordService;
 import cn.ksource.web.service.knowledge.KmService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 @Service("kmLibraryFacade")
 public class KmLibraryFacadeImpl implements KmLibraryFacade {
 	@Autowired
 	private BaseDao baseDao;
-	
+
 	@Autowired
 	private FileService fileService;
-	
+
 	@Autowired
 	private KmService kmService;
-	
+
 	@Autowired
 	private KnowledgeDealFacade knowledgeDealFacade;
-	
+
 	@Autowired
 	private KmRecordService kmRecordService;
 	/**
@@ -59,15 +45,15 @@
 		String selectSubSql = "SELECT * FROM KM_LIBRARY_CATEGORY WHERE STATE=1 ORDER BY LEVEL,SERIAL,TITLE";
 		List<Map> subCus = baseDao.queryForList(selectSubSql,param);
         Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : subCus) {
-			
+
 			//涓�绾ф爲
 			if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
 				yjgnCache.put(map.get("ID").toString(), map);
@@ -84,7 +70,7 @@
 					List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 					map.put("sjTree", new LinkedList<Map>());
 					list.add(map);
-					
+
 					ejgnCache.put(map.get("ID").toString(), map);
 				}
 				continue;
@@ -119,11 +105,11 @@
 		param.put("id", id);
 		PageInfo pageInfos = baseDao.queryforSplitPageInfo(pageInfo, selectSql, param);
 		if(pageInfos.getDatas().size() > 0){
-			for(Map map:pageInfos.getDatas()){				
+			for(Map map:pageInfos.getDatas()){
 				map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME")));
-		   } 
+		   }
 	   }
-		
+
 		return pageInfos;
 	}
 	/**
@@ -131,22 +117,22 @@
 	 */
 	@Override
 	public int queryZsflCount(String pId) {
-		
+
 		String selectSql = "SELECT COUNT(ID) FROM KM_LIBRARY_CATEGORY WHERE 1=1 ";
 		if(StringUtil.isEmpty(pId)){
 			selectSql +=" AND (TAG is null or TAG = '') ";
 		}else{
 			selectSql +=" AND TAG = :id  ";
 		}
-	
+
 		Map param = new HashMap();
 		param.put("id", pId);
 
 		int count = baseDao.queryForInteger(selectSql.toString(),param);
-		
+
 		return count;
 	}
-	
+
 	/**
 	 * 楠岃瘉鍒嗙被鍚嶇О
 	 */
@@ -176,7 +162,7 @@
 	@Override
 	public void saveknowcategory(Map<String, String> param) {
 		KM_LIBRARY_CATEGORY km_library_category = new KM_LIBRARY_CATEGORY();
-		
+
 		String level = param.get("LEVEL");//鏂板浣跨敤
 		String tag = param.get("TAG");//鏂板浣跨敤
 		String title = param.get("title");
@@ -186,7 +172,7 @@
 		//String  userId = WebUtil.getLoginedUserId(request) ;
 		String userId = param.get("userId");
 		String  userName = ConvertUtil.obj2Str(param.get("userName"));
-		
+
 			if (StringUtils.isBlank(id)) {//new
 				km_library_category.setCreate_user_id(userId);
 				km_library_category.setCreate_user_name(userName);
@@ -195,15 +181,15 @@
 				}
 				km_library_category.setCreate_time(DateUtil.getCurrentDate14());
 				km_library_category.setState(1);
-				km_library_category.setLevel((Integer.parseInt(level)+1));				
+				km_library_category.setLevel((Integer.parseInt(level)+1));
 			}else{
 				km_library_category.setId(id);
 			}
 			km_library_category.setTitle(title);
 			km_library_category.setNote(note);
-			km_library_category.setSerial(ConvertUtil.obj2Integer(serial));		
+			km_library_category.setSerial(ConvertUtil.obj2Integer(serial));
 			km_library_category.insertOrUpdate();
-		
+
 	}
 	/**
 	 * 淇敼椤哄簭鍙�
@@ -236,7 +222,7 @@
 		Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
 		return count;
 	}
-	
+
 	/**
 	 * 楠岃瘉鐭ヨ瘑鍒嗙被鍙惁绂佺敤
 	 * @param id
@@ -248,10 +234,10 @@
 		Integer count = baseDao.queryForInteger(sql, new SqlParameter("id",id));
 		return count;
 	}
-	
-	
+
+
 	/**
-	 * 
+	 *
 	 * @param p_id
 	 * @return
 	 */
@@ -291,13 +277,13 @@
 							paramList.add(map4);
 						}
 					}
-					
+
 				}
 			}
 		}
 		String sql = "update KM_LIBRARY_CATEGORY set STATE=:state where ID=:id";
 		baseDao.executeBatch(sql, paramList);
-		
+
 	}
 	@Override
 	public int getMyCreateKnowCount(Map<String, String> params) {
@@ -316,13 +302,13 @@
 		sql.append(" ) K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId ");
 		queryMyCreateKnowIf(params, sql);
 		sql.append(" ORDER BY K.AUDIT_STATE ASC,K.CREATE_TIME DESC");
-		
+
 		PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 		List<Map> datas = info.getDatas();
 		if(datas.size()>0){
 			List<Map> filesList = baseDao.queryForList("SELECT * FROM GG_FILES");
 			Map cachefile = new HashMap();
-			
+
 			for(Map file:filesList){
 				if(!cachefile.containsKey(file.get("BUSINESS_ID"))){
 					cachefile.put(file.get("BUSINESS_ID"), file);
@@ -337,7 +323,7 @@
 			}
 		}
 		info.setDatas(datas);
-		
+
 		return info;
 	}
 	private void queryMyCreateKnowIf(Map<String, String> params,
@@ -361,7 +347,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -379,7 +365,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -401,7 +387,7 @@
 			sql.append(" AND K.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND K.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
@@ -411,7 +397,7 @@
 	public int getMyEditKnowCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder("SELECT COUNT(K.ID) FROM (  ");
 		sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 2 AND km_library_temp.UPDATER_ID = :loginUserId ) ");
-		sql.append(" UNION  ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.*,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))");
+		sql.append(" UNION  ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.LIBRARY_ID,E.type,E.USER_ID,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID,E.type,E.USER_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))");
 		sql.append(" ) K WHERE K.STATE=1 ");
 		queryMyEditKnowIf(params,sql);
 		return baseDao.queryForInteger(sql.toString(), params);
@@ -419,22 +405,22 @@
 	@Override
 	public PageInfo getMyEditKnowData(Map<String, String> params,
 			PageInfo pageInfo) {
-		
+
 		StringBuilder sql = new StringBuilder("SELECT K.* FROM ( ");
-		
+
 		sql.append("( SELECT ID, TITLE, TAG, SUMMARY, CONTENT, CATEGORY_ID, CATEGORY_NAME, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, STATE, VERSION, HITS, IS_EDITOR, THIRDLEVEL_NAME, THIRDLEVEL_ID, FIRST_CATEGORY_ID, FIRST_CATEGORY_NAME, SECOND_CATEGORY_ID, SECOND_CATEGORY_NAME, THIRD_CATEGORY_ID, THIRD_CATEGORY_NAME, UPDATE_DATE, UPDATER_ID, UPDATE_NAME, SECOND_KNOWCATEGORY_ID, SECOND_KNOWCATEGORY_NAME, FIRST_KNOWCATEGORY_ID, FIRST_KNOWCATEGORY_NAME, SECONDLEVEL_NAME, SECONDLEVEL_ID, FIRSTLEVEL_NAME, FIRSTLEVEL_ID, ACCESS_TYPE, AUDIT_STATE FROM km_library_temp WHERE km_library_temp.CONTENT_STATE = 2 AND km_library_temp.UPDATER_ID = :loginUserId ) ");
-		sql.append(" UNION  ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.*,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))");
+		sql.append(" UNION  ALL( SELECT B.ID, B.TITLE, B.TAG, B.SUMMARY, B.CONTENT, B.CATEGORY_ID, B.CATEGORY_NAME, B.CREATE_USER_ID, B.CREATE_USER_NAME, B.CREATE_TIME, B.STATE, B.VERSION, B.HITS, B.IS_EDITOR, B.THIRDLEVEL_NAME, B.THIRDLEVEL_ID, B.FIRST_CATEGORY_ID, B.FIRST_CATEGORY_NAME, B.SECOND_CATEGORY_ID, B.SECOND_CATEGORY_NAME, B.THIRD_CATEGORY_ID, B.THIRD_CATEGORY_NAME, F.TIME AS UPDATE_DATE, B.UPDATER_ID, B.UPDATE_NAME, B.SECOND_KNOWCATEGORY_ID, B.SECOND_KNOWCATEGORY_NAME, B.FIRST_KNOWCATEGORY_ID, B.FIRST_KNOWCATEGORY_NAME, B.SECONDLEVEL_NAME, B.SECONDLEVEL_ID, B.FIRSTLEVEL_NAME, B.FIRSTLEVEL_ID, B.ACCESS_TYPE, 2 AS AUDIT_STATE FROM (SELECT E.LIBRARY_ID,E.type,E.USER_ID,MAX(E.EDITOR_DATE) AS TIME FROM KM_LIBRARY_UPDATER E WHERE E.USER_ID =:loginUserId GROUP BY E.LIBRARY_ID,E.type,E.USER_ID) F,KM_LIBRARY B WHERE F.LIBRARY_ID=B.ID AND B.STATE=1 AND F.USER_ID=:loginUserId AND F.TYPE = 2 AND B.ID NOT IN (SELECT G.ORIGINAL_ID FROM KM_LIBRARY_TEMP G WHERE G.AUDIT_STATE = 1 AND G.CONTENT_STATE =2))");
 		sql.append(" ) K WHERE K.STATE=1 ");
-		
+
 		queryMyEditKnowIf(params, sql);
 		sql.append(" ORDER BY K.UPDATE_DATE DESC");
-		
+
 		PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 		List<Map> datas = info.getDatas();
 		if(datas.size()>0){
 			List<Map> filesList = baseDao.queryForList("SELECT * FROM GG_FILES");
 			Map cachefile = new HashMap();
-			
+
 			for(Map file:filesList){
 				if(!cachefile.containsKey(file.get("BUSINESS_ID"))){
 					cachefile.put(file.get("BUSINESS_ID"), file);
@@ -449,13 +435,13 @@
 			}
 		}
 		info.setDatas(datas);
-		
+
 		return info;
 	}
 	private void queryMyEditKnowIf(Map<String, String> params, StringBuilder sql) {
 		String title = params.get("title");
 		String keyword = params.get("keyword");
-		
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -473,7 +459,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -491,7 +477,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -513,7 +499,7 @@
 			sql.append(" AND k.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND k.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
@@ -536,7 +522,7 @@
 		if(datas.size()>0){
 			List<Map> filesList = baseDao.queryForList("SELECT * FROM GG_FILES");
 			Map cachefile = new HashMap();
-			
+
 			for(Map file:filesList){
 				if(!cachefile.containsKey(file.get("BUSINESS_ID"))){
 					cachefile.put(file.get("BUSINESS_ID"), file);
@@ -551,13 +537,13 @@
 			}
 		}
 		info.setDatas(datas);
-		
+
 		return info;
 	}
 	private void queryMyFavKnowIf(Map<String, String> params, StringBuilder sql) {
 		String title = params.get("title");
 		String keyword = params.get("keyword");
-		
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -575,7 +561,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -593,7 +579,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -615,7 +601,7 @@
 			sql.append(" AND k.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND k.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
@@ -629,7 +615,7 @@
 	}
 	@Override
 	public PageInfo getMyKnowData(Map<String, String> params, PageInfo pageInfo) {
-		StringBuilder sql = new StringBuilder("SELECT DISTINCT K.*,K.STATE K_STATE,F.AUDIT_STATE STATE FROM KM_LIBRARY K LEFT JOIN KM_LIBRARY_TEMP F ON K.ID = F.ORIGINAL_ID WHERE 1=1 ");
+		StringBuilder sql = new StringBuilder("SELECT K.*,K.STATE K_STATE,F.AUDIT_STATE STATE FROM KM_LIBRARY K LEFT JOIN KM_LIBRARY_TEMP F ON K.ID = F.ORIGINAL_ID WHERE 1=1 ");
 		queryMyKnowIf(params, sql);
 		sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC");
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
@@ -654,7 +640,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -672,7 +658,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -694,20 +680,20 @@
 			sql.append(" AND K.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND K.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
 		}
 	}
-	
+
 	@Override
 	public int queryMyDshKnowCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY_TEMP K WHERE K.STATE=1 AND K.CREATE_USER_ID=:loginUserId ");
 		queryMyDshKnowIf(params,sql);
 		return baseDao.queryForInteger(sql.toString(), params);
 	}
-	
+
 	@Override
 	public PageInfo queryMyDshKnowData(PageInfo pageInfo,
 			Map<String, String> params) {
@@ -716,7 +702,7 @@
 		sql.append(" ORDER BY K.AUDIT_STATE,K.CREATE_TIME DESC");
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	private void queryMyDshKnowIf(Map<String, String> params, StringBuilder sql) {
 		String title = params.get("title");
 		String keyword = params.get("keyword");
@@ -738,7 +724,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -756,7 +742,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -778,7 +764,7 @@
 			sql.append(" AND K.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND K.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
@@ -789,7 +775,7 @@
 	}
 	@Override
 	public int updatestate(String id,String state) {
-		
+
 		KM_LIBRARY library = new KM_LIBRARY(id);
 		if("1".equals(state)){
 			library.setState(2);
@@ -885,7 +871,7 @@
 				}
 		}
 		Integer access_type = ConvertUtil.obj2Integer(request.getParameter("isKj"));
-		
+
 		km_library.setFirst_knowcategory_id(first_knowcategory_id).setFirst_knowcategory_name(first_knowcategory_name)
 		.setSecond_knowcategory_id(second_knowcategory_id).setSecond_knowcategory_name(second_knowcategory_name)
 		.setCategory_id(categoryid).setCategory_name(category_name)
@@ -896,7 +882,7 @@
 		.setSecond_category_id(second_category_id).setSecond_category_name(second_category_name)
 		.setThird_category_id(third_category_id).setThird_category_name(third_category_name)
 		.setAccess_type(access_type);
-		
+
 		km_library.insertOrUpdate();
 		//娣诲姞鐢ㄦ埛鏉冮檺淇℃伅
 		String cusId = request.getParameter("cusId");
@@ -912,7 +898,7 @@
 				access.setKnowledge_id(km_library.getId()).setCustomer_id(cusIdArray[i]).setCustomer_name(cusListArray[i]).insert();
 			}
 		}
-		
+
 		//娣诲姞鍏宠仈鐭ヨ瘑
 		//鍒犻櫎宸插瓨鍦ㄧ殑鍏宠仈鐭ヨ瘑
 		baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE WHERE LIBRARY_ID = :business_id ", new SqlParameter("business_id",km_library.getId()));
@@ -936,23 +922,23 @@
 		}
 		fileService.uploadFile(request,km_library.getFile_id(),Constants.GG_FOLDERS_KNOWFOLDERS,Constants.FILE_STATE_SHTG,null);
 	}
-	
+
 	@Override
 	public int getMyKnowCxCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY K WHERE 1=1 ");
 		queryMyKnowCxIf(params,sql);
 		return baseDao.queryForInteger(sql.toString(), params);
 	}
-	
+
 	@Override
 	public PageInfo getMyKnowCxData(Map<String, String> params,
 			PageInfo pageInfo) {
-		StringBuilder sql = new StringBuilder("SELECT DISTINCT K.* FROM KM_LIBRARY K WHERE 1=1 ");
+		StringBuilder sql = new StringBuilder("SELECT K.* FROM KM_LIBRARY K WHERE 1=1 ");
 		queryMyKnowCxIf(params, sql);
 		sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC");
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	private void queryMyKnowCxIf(Map<String, String> params, StringBuilder sql) {
 		String title = params.get("title");
 		String keyword = params.get("keyword");
@@ -973,7 +959,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -991,7 +977,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -1013,7 +999,7 @@
 			sql.append(" AND K.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND K.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
@@ -1026,10 +1012,10 @@
 	@Override
 	public void deleteMyLibraryFavorite(String userId, String libraryId) {
 		 String sql = "delete from KM_LIBRARY_FAVORITE where LIBRARY_ID=:library_id and CREATE_USER_ID=:user_id ";
-			
+
 	        SqlParameter param = new SqlParameter("library_id", libraryId);
 	        param.addValue("user_id", userId);
-	        
+
 			baseDao.execute(sql, param);
 	}
 	@Override
@@ -1043,12 +1029,12 @@
 			KM_LIBRARY_HIT_RECORD record = new KM_LIBRARY_HIT_RECORD();
 			record.setLibrary_id(libraryId).setCreate_user_id(userId).setCreate_time(DateUtil.getCurrentDate14()).insert();
 			String sqlupd = "update KM_LIBRARY set HITS=HITS+1 where ID=:libraryId ";
-			
+
 			baseDao.execute(sqlupd, param);
 		}/*濡傛灉鍚屼竴璐﹀彿鐐瑰嚮杩囷紝涓嶅啀澧炲姞鐐瑰嚮鏁�
 		else{
 			String sqlupd = "update KM_LIBRARY set HITS=HITS+1 where ID=:libraryId ";
-			
+
 			baseDao.execute(sqlupd, param);
 		}*/
 		return baseDao.queryForInteger("select HITS FROM KM_LIBRARY WHERE ID=:id",new SqlParameter("id",libraryId));
@@ -1090,9 +1076,9 @@
 				params.put("type", ConvertUtil.obj2StrBlank(Constants.KM_SCORE_RULE_TYPE_ZJ));
 				kmRecordService.addrecord(params);
 			}
-			
+
 		}
-		
+
 		return 1;
 	}
 	@Override
@@ -1105,16 +1091,16 @@
 	@Override
 	public PageInfo getMyKnowTypeData(Map<String, String> params,
 			PageInfo pageInfo) {
-		
+
 		StringBuilder sql = getknowtypesql(params);
 		sql.append(" ORDER BY A.UPDATE_DATE DESC ");
-		
+
 		PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 		List<Map> datas = info.getDatas();
 		if(datas.size()>0){
 			List<Map> filesList = baseDao.queryForList("SELECT * FROM GG_FILES");
 			Map cachefile = new HashMap();
-			
+
 			for(Map file:filesList){
 				if(!cachefile.containsKey(file.get("BUSINESS_ID"))){
 					cachefile.put(file.get("BUSINESS_ID"), file);
@@ -1129,12 +1115,12 @@
 			}
 		}
 		info.setDatas(datas);
-		
+
 		return info;
 	}
-	
+
 	public StringBuilder getknowtypesql(Map<String, String> params){
-		StringBuilder sql = new StringBuilder("SELECT DISTINCT A.* FROM KM_LIBRARY A,KM_RECORD B WHERE A.CREATE_USER_ID = :userId AND A.STATE = 1 AND A.ID = B.LIBRARY_ID AND B.TYPE = :type ");
+		StringBuilder sql = new StringBuilder("SELECT A.* FROM KM_LIBRARY A,KM_RECORD B WHERE A.CREATE_USER_ID = :userId AND A.STATE = 1 AND A.ID = B.LIBRARY_ID AND B.TYPE = :type ");
 		String title = params.get("title");
 		String keyword = params.get("keyword");
 		String sl = params.get("sl");
@@ -1155,7 +1141,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String know = params.get("know");
 		if(StringUtil.notEmpty(know)) {
 			String[] knows = know.split(",");
@@ -1173,7 +1159,7 @@
 				sql.append(")");
 			}
 		}
-		
+
 		String ci = params.get("ci");
 		if(StringUtil.notEmpty(ci)) {
 			String[] cis = ci.split(",");
@@ -1195,12 +1181,12 @@
 			sql.append(" AND K.TITLE like :title  ");
 			params.put("title", "%" + title + "%");
 		}
-		
+
 		if (!StringUtil.isEmpty(keyword)) {
 			sql.append(" AND K.TAG like :keyword  ");
 			params.put("keyword", "%" + keyword + "%");
 		}
-		
+
 		if(!StringUtil.isEmpty(type)){
 			if(ConvertUtil.obj2Integer(type)==Constants.KM_SCORE_RULE_TYPE_ZJ ){
 				sql.append(" AND A.IS_TOP = 1 ");
@@ -1210,9 +1196,9 @@
 				sql.append(" AND B.TYPE = :type ");
 			}
 		}
-		
+
 		return sql;
-		
+
 	}
 	@Override
 	public int getMyKnowJfCount(Map<String, String> params) {
@@ -1241,7 +1227,7 @@
 			cacheMap.put(map.get("TYPE"),score);
 		}
 		if(cacheMap.size() != 0){
-		
+
 			if(user.getKm_score() < ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ))){
 				msg.put("DQDJ", "");
 				msg.put("XYDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ));
@@ -1345,7 +1331,7 @@
 			params.put("name", "%"+name+"%");
 		}
 		if(!StringUtil.isEmpty(type)){
-			
+
 			if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ){
 				sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 ");
 				params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) );
@@ -1363,19 +1349,19 @@
 				params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)) );
 			}
 		}
-		
+
 		sql.append(" ORDER BY KM_SCORE DESC ");
 		List<Map> userList = baseDao.queryForList(sql.toString(),params);
-		
-		
+
+
 		for(Map map:userList){
 			if(StringUtil.isEmpty(ConvertUtil.obj2StrBlank(map.get("KM_SCORE")))){
 				map.put("KM_SCORE", 0);
 			}
 			int score = ConvertUtil.obj2Int(map.get("KM_SCORE"));
 			if(cacheMap.size()!=0){
-				
-			
+
+
 				if(score < ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ))){
 					map.put("DQDJ", "");
 					map.put("djtype", "");
@@ -1427,7 +1413,7 @@
 	public PageInfo knowZjhyData(PageInfo pageInfo, Map<String, String> params) {
 		String userId = params.get("userId");
 		String type = params.get("type");
-		StringBuilder sql = new StringBuilder("SELECT DISTINCT A.*,P.STATE FROM KM_RECORD B ,KM_LIBRARY A LEFT JOIN KM_LIBRARY_TEMP P on P.ORIGINAL_ID = A.ID  WHERE A.ID = B.LIBRARY_ID AND A.STATE=1 ");
+		StringBuilder sql = new StringBuilder("SELECT DISTINCT A.ID,A.TITLE,A.TAG,A.CATEGORY_ID,A.CATEGORY_NAME,A.CREATE_USER_ID,A.CREATE_USER_NAME,A.CREATE_TIME,A.STATE,A.VERSION,A.HITS,A.IS_EDITOR,A.THIRDLEVEL_NAME,A.THIRDLEVEL_ID,A.FIRST_CATEGORY_ID,A.FIRST_CATEGORY_NAME,A.SECOND_CATEGORY_ID,A.SECOND_CATEGORY_NAME,A.THIRD_CATEGORY_ID,A.THIRD_CATEGORY_NAME,A.UPDATE_DATE,A.UPDATER_ID,A.UPDATE_NAME,A.SECOND_KNOWCATEGORY_ID,A.SECOND_KNOWCATEGORY_NAME,A.FIRST_KNOWCATEGORY_ID,A.FIRST_KNOWCATEGORY_NAME,A.SECONDLEVEL_NAME,A.SECONDLEVEL_ID,A.FIRSTLEVEL_NAME,A.FIRSTLEVEL_ID,A.ACCESS_TYPE,A.FILE_ID,A.IS_ESSENCE,A.IS_TOP,A.AUDIT_USERID,A.AUDIT_USERNAME,A.AUDIT_USERNAME,P.STATE FROM KM_RECORD B ,KM_LIBRARY A LEFT JOIN KM_LIBRARY_TEMP P on P.ORIGINAL_ID = A.ID  WHERE A.ID = B.LIBRARY_ID AND A.STATE=1 ");
 		if(!StringUtil.isEmpty(userId)){
 			sql.append(" AND B.USER_ID = :userId ");
 		}
@@ -1467,7 +1453,7 @@
 			}
 			List<Map> filesList = baseDao.queryForList("SELECT * FROM GG_FILES");
 			Map cachefile = new HashMap();
-			
+
 			for(Map file:filesList){
 				if(!cachefile.containsKey(file.get("BUSINESS_ID"))){
 					cachefile.put(file.get("BUSINESS_ID"), file);
@@ -1491,7 +1477,7 @@
 		if(count == 0){
 			kmRecordService.addrecord(params);
 		}
-		
+
 	}
 	@Override
 	public void savezanLibrary(Map<String, String> params) {
@@ -1500,11 +1486,11 @@
 		if(count == 0){
 			kmRecordService.addrecord(params);
 		}
-		
+
 	}
 	@Override
 	public Map getTempKnowledgeById(String id) {
-	
+
 		Map knowMap = new KM_LIBRARY_TEMP(id).getBeanMapById();
 		List<Map> knowList = baseDao.queryForList("SELECT B.* FROM KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY B WHERE A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID = :business_id ", new SqlParameter("business_id",id));
 		knowMap.put("knowList", knowList);
@@ -1526,9 +1512,9 @@
 		//鏂囦欢
 		List<Map> fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(knowMap.get("ID")));
 		knowMap.put("fileList", fileList);
-		return knowMap;			
+		return knowMap;
 	}
-	
+
 	@Override
 	public Map saveAgainUpdate(HttpServletRequest request,
 			KM_LIBRARY_TEMP km_library_temp) {
@@ -1536,7 +1522,7 @@
 		resultMap.put("result", 2);
 		String id = request.getParameter("id");
 		KM_LIBRARY_TEMP temp = new KM_LIBRARY_TEMP(id).getInstanceById();
-		
+
 			String serivceListId = request.getParameter("serivceListId");
 			String serivceList = request.getParameter("serivceList");
 			String category_id = request.getParameter("category_id");
@@ -1596,7 +1582,7 @@
 					}
 			}
 			Integer access_type = ConvertUtil.obj2Integer(request.getParameter("isKj"));
-			
+
 			temp.setFirst_knowcategory_id(first_knowcategory_id).setFirst_knowcategory_name(first_knowcategory_name)
 			.setSecond_knowcategory_id(second_knowcategory_id).setSecond_knowcategory_name(second_knowcategory_name)
 			.setCategory_id(categoryid).setCategory_name(category_name)
@@ -1607,7 +1593,7 @@
 			.setSecond_category_id(second_category_id).setSecond_category_name(second_category_name)
 			.setThird_category_id(third_category_id).setThird_category_name(third_category_name)
 			.setAccess_type(access_type);
-			
+
 		//寰呭鏍�
 		Integer auditState = Constants.KM_LIBRARY_TEMP_AUDIT_STATE_DSH;
 		Map shuser = knowledgeDealFacade.getSpMap(categoryid);
@@ -1626,7 +1612,7 @@
 			//鏇存柊鍏卞悓鐨勯儴鍒�
 			temp.setTitle(km_library_temp.getTitle()).setTag(km_library_temp.getTag()).setSummary(km_library_temp.getSummary())
 			.setContent(km_library_temp.getContent()).setAudit_userid(shId).setAudit_username(shName).setUpdate_date(DateUtil.getCurrentDate14()).setAudit_state(Constants.KM_LIBRARY_TEMP_AUDIT_STATE_DSH).update();
-			
+
 			//娣诲姞鐢ㄦ埛鏉冮檺淇℃伅
 			String cusId = request.getParameter("cusId");
 			String cusList = request.getParameter("cusList");
@@ -1666,6 +1652,6 @@
 		}
 		return resultMap;
 	}
- 
-	
+
+
 }
diff --git a/src/cn/ksource/web/facade/question/QuestionFacadeImpl.java b/src/cn/ksource/web/facade/question/QuestionFacadeImpl.java
index 462db7c..f81b635 100644
--- a/src/cn/ksource/web/facade/question/QuestionFacadeImpl.java
+++ b/src/cn/ksource/web/facade/question/QuestionFacadeImpl.java
@@ -29,37 +29,37 @@
 
 @Service("questionFacade")
 public class QuestionFacadeImpl implements QuestionFacade {
-	
+
 	@Autowired
 	private BaseDao baseDao;
-	
+
 	@Autowired
 	private FileService fileService;
-	
+
 	@Autowired
 	private RecordService recordService;
-	
+
 	@Autowired
 	private OrderService orderService;
-	
+
 	@Autowired
 	private DeviceService deviceService;
-	
+
 	@Autowired
 	private WorkOrderCodeService workOrderCodeService;
-	
+
 	@Autowired
 	private WorkflowBusinessService workflowBusinessService;
-	
+
 	@Autowired
 	private WorkflowCoreService workflowCoreService;
-	
+
 	@Autowired
 	private MessageFacade messageFacade;
-	
+
 	@Autowired
 	private DataDictionaryService dataDictionaryService;
-	
+
 	@Override
 	public Map getQuestionMsgByOrderId(HttpServletRequest request) {
 		String orderId = request.getParameter("changeId");
@@ -90,7 +90,7 @@
 	@Override
 	public Map saveQuestion(HttpServletRequest request,
 			SC_WORKFLOW_QUESTION sc_workflow_question) {
-		
+
 		String changeId = request.getParameter("changeId");
 		String bustype = request.getParameter("bustype");
 		Map resultMap = new HashMap();
@@ -102,7 +102,7 @@
 		String bz = request.getParameter("bz");
 		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();
@@ -111,7 +111,7 @@
 		String second_category_name = new String();
 		String third_category_id = new String();
 		String third_category_name = new String();
-			
+
 		if(StringUtil.notEmpty(serivceListId) && StringUtil.notEmpty(serivceList)) {
 			String[] serivceListIds = serivceListId.split("-");
 			String[] serivceLists = serivceList.split("->");
@@ -135,7 +135,7 @@
 				nextnodeid = userMsg[1];
 				dealUserId = userMsg[2];
 				dealUserName = userMsg[3];
-				
+
 				if(nextnodeid.equals(Constants.WTSL)) {
 					state = Constants.SC_WORKFLOW_QUESTION_STATE_SL;
 				} else if(nextnodeid.equals(Constants.WTSH)) {
@@ -151,7 +151,7 @@
 				}else{
 					state = Constants.SC_WORKFLOW_QUESTION_STATE_YDJ;
 				}
-				
+
 				String sla_id = request.getParameter("sla_id");
 				String sla_name = request.getParameter("sla_name");
 				String order_code = workOrderCodeService.getQuestionOrderCode();
@@ -164,15 +164,15 @@
 					sc_workflow_question.setCreate_user_id(userId).setCreate_user_name(userName).setCreate_time(createTime);
 					sc_workflow_question.setOrder_code(order_code);
 				}
-				
+
 				sc_workflow_question.setState(ConvertUtil.obj2Integer(state)).setFlow_name(sc_workflow_question.getName()).insertOrUpdate();
-				
+
 				//鑾峰彇褰撳墠鎵�澶勭殑鑺傜偣
 				Map flowMsg = getFlowMsg(flowId,userId);
 				String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
 				String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
 				if("1".equals(sh)){
-					
+
 					//澧炲姞闂澶勭悊璁板綍
 					GG_RECORD record = new GG_RECORD();
 					record.setDeal_content("淇敼闂锛�"+userName+"淇敼浜嗛棶棰樹俊鎭�");
@@ -183,9 +183,9 @@
 					record.setNode_id(nodeid).setNode_name(nodeName);
 					recordService.addRecord(record);
 				}
-				
-				
-				
+
+
+
 				if(!"1".equals(sh)){
 					WORKFLOW_BASE base = new WORKFLOW_BASE();
 					if(!"2".equals(sh)){
@@ -202,9 +202,9 @@
 						recordService.addRecord(record);
 						flowId = base.getId();
 					}else{
-						
+
 						base = new WORKFLOW_BASE(flowId).getInstanceById();
-						
+
 						NodeFinishEntity finishEntity = new NodeFinishEntity();
 						finishEntity.setDeal_result(1);
 						finishEntity.setDeal_note_title(userName+"瀹屾垚浜嗚妭鐐�");
@@ -212,10 +212,10 @@
 						WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
 						//鍏抽棴褰撳墠鑺傜偣
 						workflowCoreService.finishNode(base, node, finishEntity);
-						
+
 					}
-					
-					
+
+
 					NodeDealEntity entity = new NodeDealEntity();
 					List<Map> userMap = new ArrayList();
 					if("2".equals(sh)){
@@ -242,7 +242,7 @@
 						dealer_type = getDealUser(entity,flowId,dealer_type,userMap,dealUserId,dealUserName);
 					}
 					workflowCoreService.toNode(base,nextnodeid , entity);
-					
+
 					String hasMsg = request.getParameter("hasMsg");
 					/*if(StringUtil.notEmptyNum(hasMsg) && hasMsg.equals("2")) {
 						//淇濆瓨鑱旂郴浜虹殑淇℃伅
@@ -267,8 +267,8 @@
 					.setType(Constants.GG_MESSAGE_TYPE_WTGL);
 					messageFacade.doSendMessage(message, userMap);
 					resultMap.put("result", 1);
-					
-					
+
+
 				}
 				String usertype = "1";
 				if("1".equals(dealer_type)){
@@ -284,7 +284,7 @@
 				} else if(nextnodeid.equals(Constants.WTSH)) {
 					baseDao.execute("UPDATE WORKFLOW_PARAMETER SET PVALUE=:PVALUE WHERE WORKFLOWID = :WORKFLOWID AND PNAME = :PNAME ", paramuser);
 				}
-			
+
 				Map paramrecord = new HashMap();
 				paramrecord.put("flowId", flowId);
 				//鎻愪氦宸ュ崟鏃舵坊鍔犲叧鑱斿伐鍗�
@@ -292,11 +292,11 @@
 				baseDao.execute("DELETE FROM ORDER_REF_ORDER WHERE BUSINESS_ID = :flowId ", paramrecord);
 				String[] orderId = request.getParameterValues("orderId");
 				orderService.saveLinkOrders(flowId,orderId,request);
-				
+
 				//鎻愪氦宸ュ崟鏃朵笂浼犳枃妗i檮浠�
 				fileService.uploadFile(request,flowId,flowId,null,null,Constants.GG_FOLDERS_WTFOLDERS,Constants.FILE_STATE_SHTG,null);
-				
-				
+
+
 				//鎻愪氦宸ュ崟鏃舵坊鍔犲叧鑱旇澶�
 				//鍏堝垹闄ゅ凡瀛樺湪鐨勮澶�
 				baseDao.execute("DELETE FROM CMDB_CI_REF_ORDER WHERE FLOW_ID = :flowId ", paramrecord);
@@ -315,19 +315,19 @@
 					zcyw.setQuestionid(sc_workflow_question.getId()).update();
 				}
 			}
-			
+
 		}else{
 			resultMap.put("nouser", "1");
 		}
 		return resultMap;
 	}
-	
+
     public String getDealUser(NodeDealEntity entity,String flowId,String dealer_type,List<Map> userMap,String dealUserId,String dealUserName) {
     	Map param = new HashMap();
 		param.put("ID", StringUtil.getUUID());
 		param.put("WORKFLOWID", flowId);
 		param.put("PNAME", "澶勭悊浜�");
-    	
+
     	entity.setDealer_type(3);
 		if(dealer_type.equals("1")||dealer_type.equals("3")) {
 			entity.setBefore_Dealer_type(2);
@@ -350,7 +350,7 @@
 					map.put("USER_ID", userList2[i]);
 					map.put("USER_NAME", cacheuser.get(userList2[i]));
 				}
-				
+
 				userMap.add(map);
 			}
 			dealer_type = "2";
@@ -365,7 +365,7 @@
 			dealer_type = "1";
 		}
 		entity.setDealerList(userMap);
-		
+
 		baseDao.execute("INSERT INTO WORKFLOW_PARAMETER(ID,WORKFLOWID,PNAME,PVALUE) VALUES(:ID,:WORKFLOWID,:PNAME,:PVALUE)", param);
 		return dealer_type;
 	}
@@ -373,46 +373,46 @@
 	@Override
 	public Map queryQuestionCount(HttpServletRequest request) {
         //鍒濆鍖栧彉閲�
-		
+
 		//闂鍙楃悊鍝嶅簲涓�
 		int wtsldxy = 0;
 		//闂鍙楃悊澶勭悊涓�
 		int wtslclz = 0;
-		
+
 		//闂瀹℃牳寰呭搷搴�
 		int wtshdxy = 0;
 		//闂瀹℃牳澶勭悊涓�
 		int wtshclz = 0;
-		
+
 		//闂璇婃柇寰呭搷搴�
 		int wtzddxy = 0;
 		//闂璇婃柇澶勭悊涓�
 		int wtzdclz = 0;
-		
-		
+
+
 		//鏂规瀹℃壒寰呭搷搴�
 		int faspdxy = 0;
 		//鏂规瀹℃壒澶勭悊涓�
 		int faspclz = 0;
-		
+
 		//鏂规瀹炴柦寰呭搷搴�
 		int fassdxy = 0;
 		//鏂规瀹炴柦澶勭悊涓�
 		int fassclz = 0;
-		
+
 		//闂鍥為【寰呭搷搴�
 		int wthgdxy = 0;
 		//闂鍥為【澶勭悊涓�
 		int wthgclz = 0;
-		
+
 		//宸插畬鎴�
 		int ywc = 0;
 		//杩涜涓�
 		int jxz = 0;
-		
+
 		StringBuffer selectSql = new StringBuffer();
 		StringBuffer sql = new StringBuffer();
-		
+
 		Map paramMap = new HashMap();
 		selectSql.append("SELECT COUNT(*) AS NUM,A.STATE,C.FLOWSTATE FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B LEFT JOIN WORKFLOW_NODE C ON B.ID = C.FLOWID AND B.CURRENT_NODE_ID = C.ID  WHERE A.ID = B.BUSINESS_ID  AND C.FLOWSTATE is not null   ");
 		sql.append("SELECT COUNT(ID) FROM SC_WORKFLOW_QUESTION WHERE STATE != :yjj AND STATE !=:gb AND STATE != :ypj ");
@@ -422,9 +422,9 @@
 		   sql.append(" AND CUSTOMER_ID = :customerId ");
 		   paramMap.put("customerId", customerId);
 	    }
-	    	   
+
 		paramMap.put("flowstate", 3);
-		
+
 		selectSql.append(" GROUP BY A.STATE,C.FLOWSTATE ");
 		List<Map> list = baseDao.queryForList(selectSql.toString(),paramMap);
 		if(null!=list && list.size()>0) {
@@ -459,7 +459,7 @@
 					}
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					if(flowstate == Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE){
 						faspdxy += num;
@@ -468,7 +468,7 @@
 					}
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					if(flowstate == Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE){
 						fassdxy += num;
@@ -477,7 +477,7 @@
 					}
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					if(flowstate == Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE){
 						wthgdxy += num;
@@ -486,51 +486,51 @@
 					}
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_YWC)) {
 					ywc += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_YPJ)) {
 					ywc += num;
 					continue;
 				}
-				
+
 			}
 		}
-		
+
 		Map map = new HashMap();
 		map.put("wtsldxy", wtsldxy);
 		map.put("wtslclz", wtslclz);
-		
+
 		map.put("wtshdxy", wtshdxy);
 		map.put("wtshclz", wtshclz);
-		
+
 		map.put("wtzddxy", wtzddxy);
 		map.put("wtzdclz", wtzdclz);
-		
+
 		map.put("faspdxy", faspdxy);
 		map.put("faspclz", faspclz);
-		
+
 		map.put("fassdxy", fassdxy);
 		map.put("fassclz", fassclz);
-		
+
 		map.put("wthgdxy", wthgdxy);
 		map.put("wthgclz", wthgclz);
-		
+
 		//鏌ヨ璇ュ姞鐩熷晢鏈畬鎴愮殑浜嬩欢
-		
+
 		paramMap.put("yjj", Constants.SC_WORKFLOW_QUESTION_STATE_YWC);
 		paramMap.put("gb", Constants.SC_WORKFLOW_QUESTION_STATE_YGB);
 		paramMap.put("ypj", Constants.SC_WORKFLOW_QUESTION_STATE_YPJ);
-		
-		
+
+
 		jxz = baseDao.queryForInteger(sql.toString(),paramMap);
-		
+
 		map.put("ywc", ywc);
 		map.put("jxz", jxz);
-		
+
 		return map;
 	}
 
@@ -538,21 +538,21 @@
 	public int queryQuestionOrderCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		
+
 		sql.append("SELECT COUNT(WB.ID) FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB LEFT JOIN WORKFLOW_NODE C ON  C.FLOWID = WB.ID AND WB.CURRENT_NODE_ID = C.ID AND C.FLOWSTATE <> 3  ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType ");
 		sqlpart = getOrderSql(sqlpart,params);
 		sql.append(sqlpart);
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
 	@Override
 	public PageInfo queryQuestionOrderList(PageInfo pageInfo,
 			Map<String, String> params) {
-		
-		
+
+
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
 		sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE,C.FLOWSTATE , ");
@@ -561,45 +561,45 @@
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND WB.BUSINESSTYPE = :businessType ");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		sqlpart = getOrderSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
 		sql.append( " ORDER BY WB.CREATETIME DESC ");
-		
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	public StringBuilder getOrderSql(StringBuilder sqlpart,Map<String, String> params){
 		String customerid = params.get("customerId");
 		if(StringUtil.notEmpty(customerid)) {
 			sqlpart.append(" AND B.CUSTOMER_ID = :customerId ");
 		}
-		
+
 		String subCustomerId = params.get("subCustomerId");
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 			params.put("subCustomerId", subCustomerId);
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract = params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri = params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -617,9 +617,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -637,8 +637,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -656,8 +656,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -694,10 +694,10 @@
 					sqlpart.append( "  AND C.FLOWSTATE = :flowstate ");
 					params.put("flowstate", state[1]);
 				}
-				
-				
+
+
 			}
-			
+
 		}
 		return sqlpart;
 	}
@@ -706,7 +706,7 @@
 	public int queryMyQuestionCount(Map<String, String> params) {
 		StringBuilder builder = new StringBuilder();
 		params.put("ysc",ConvertUtil.obj2StrBlank( Constants.WORKFLOW_BASE_WFSTATE_DELETE));
-		
+
 		/**
 		 * 鏌ヨ閫昏緫
 		 * 1.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓哄叏閮紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝鎴栬�呭鐞嗚鑹叉槸鎴戠殑骞朵笖娌℃湁鍒嗛厤澶勭悊浜虹殑锛�
@@ -715,7 +715,7 @@
 		 * 3.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓鸿繘琛屼腑锛屽垯鏌ヨ鑺傜偣琛ㄤ腑澶勭悊浜烘槸鎴戠殑 锛堜笉闇�瑕佽繃婊わ紝鍥犱负涓�涓伐鍗曡繘琛屼腑鑺傜偣锛屽彧浼氭湁涓�涓級
 		 * 4.濡傛灉鑺傜偣鐘舵�佹煡璇㈡湭宸插鐞嗭紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝闇�瑕佽繃婊わ紙鍥犱负涓�涓妭鐐逛竴涓汉鍙互澶勭悊澶氭锛岄�氳繃鑺傜偣琛ㄤ綔涓轰富琛ㄦ煡璇㈠嚭鏉ョ殑宸ュ崟浼氭湁閲嶅锛�
 		 */
-		
+
 		String flowstate = params.get("flowstate");
 		if(StringUtil.notEmpty(flowstate)) {
 			if(flowstate.equals("1")) {
@@ -745,28 +745,28 @@
 			builder.append(")D");
 			builder.append(" WHERE  D.WFSTATE != :ysc  ");
 		}
-		
+
 		builder = getMyquestionSql(builder,params);
-		
+
 		builder.append(" AND D.BUSINESSTYPE = :businessType");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		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 queryMyQuestionData(PageInfo pageInfo,
 			Map<String, String> params) {
-		
+
 		StringBuilder builder = new StringBuilder();
 		params.put("ysc", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
-		
-		
+
+
 		/**
 		 * 鏌ヨ閫昏緫
 		 * 1.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓哄叏閮紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝鎴栬�呭鐞嗚鑹叉槸鎴戠殑骞朵笖娌℃湁鍒嗛厤澶勭悊浜虹殑锛�
@@ -775,14 +775,14 @@
 		 * 3.濡傛灉鑺傜偣鐘舵�侀�夋嫨涓鸿繘琛屼腑锛屽垯鏌ヨ鑺傜偣琛ㄤ腑澶勭悊浜烘槸鎴戠殑 锛堜笉闇�瑕佽繃婊わ紝鍥犱负涓�涓伐鍗曡繘琛屼腑鑺傜偣锛屽彧浼氭湁涓�涓級
 		 * 4.濡傛灉鑺傜偣鐘舵�佹煡璇㈡湭宸插鐞嗭紝鍒欐煡璇㈣妭鐐硅〃涓鐞嗕汉鏄垜鐨勶紝闇�瑕佽繃婊わ紙鍥犱负涓�涓妭鐐逛竴涓汉鍙互澶勭悊澶氭锛岄�氳繃鑺傜偣琛ㄤ綔涓轰富琛ㄦ煡璇㈠嚭鏉ョ殑宸ュ崟浼氭湁閲嶅锛�
 		 */
-		
+
 		String flowstate = params.get("flowstate");
 		if(StringUtil.notEmpty(flowstate)) {
 			if(flowstate.equals("1")) {
 				builder.append(" SELECT D.* FROM ( ");
 				//鏌ヨ澶勭悊浜烘槸鎴戠殑
 				builder.append(" SELECT B.*,A.FLOWSTATE,C.NAME,C.CONTACT_NAME,C.PRIORITY_ID,C.INFLUENCE_ID,C.THIRD_CATEGORY_ID,C.SOURCE_ID,C.STATE FROM WORKFLOW_NODE A,WORKFLOW_BASE B,SC_WORKFLOW_QUESTION C WHERE A.FLOWID = B.ID AND B.BUSINESS_ID = C.ID  AND A.CURRENT_DEALER_ID = :userId ");
-				
+
 				builder.append(")D");
 				builder.append(" WHERE D.FLOWSTATE = :jddcl ");
 				params.put("jddcl", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE));
@@ -807,10 +807,10 @@
 			builder.append(" WHERE D.WFSTATE != :ysc ");
 		}
 		builder = getMyquestionSql(builder,params);
-		
+
 		builder.append(" AND D.BUSINESSTYPE = :businessType");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		String pageSize = pageInfo.getPageSize();
 		String currPage = pageInfo.getCurrPage();
 		if(!StringUtil.notEmptyNum(pageSize)){
@@ -821,7 +821,7 @@
 		}
 		int begin = Integer.valueOf(currPage);
 		int size = Integer.valueOf(pageSize);
-		
+
 		if(!StringUtil.notEmpty(flowstate)) {
 			builder.append( " ORDER BY D.FLOWSTATE,D.CREATETIME DESC" );
 			List<Map> result = baseDao.queryForList(builder.toString(),params);
@@ -844,14 +844,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;
@@ -868,7 +868,7 @@
 			return result;
 		}
 	}
-	
+
 	public StringBuilder getMyquestionSql(StringBuilder builder,Map<String, String> params){
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
@@ -879,39 +879,39 @@
 			builder.append(" AND D.SUB_CUSTOMER_ID = :subCustomerId ");
 			params.put("subCustomerId", subCustomerId);
 		}
-		
+
 		String status = params.get("status");
 		if(StringUtil.notEmpty(status)) {
 			builder.append(" AND D.WFSTATE = :status ");
 			params.put("status", status);
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			builder.append(" AND D.NAME 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(",");
@@ -929,9 +929,9 @@
 				builder.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -949,8 +949,8 @@
 				builder.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -968,8 +968,8 @@
 				builder.append(")");
 			}
 		}
-		
-		
+
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -989,10 +989,10 @@
 		}
 		return builder;
 	}
-	
+
 	@Override
 	public Map queryLevel(String priority_id, String influence_id,String customerId) {
-		
+
 		String selectSql = "SELECT LEVEL_ID,LEVEL_NAME FROM SC_SLA_LEVEL_CONFIG WHERE INFLUENCE_ID = :influence_id AND PRIORITY_ID = :priority_id AND CUSTOMER_ID = :customerId";
 		Map paramMap = new HashMap();
 		paramMap.put("influence_id", influence_id);
@@ -1001,7 +1001,7 @@
 		Map levelMap = baseDao.queryForMap(selectSql,paramMap);
 		return levelMap;
 	}
-	
+
 	@Override
 	public List<Map> getFlueNode(HttpServletRequest request) {
 		String flowId = request.getParameter("flowId");
@@ -1013,24 +1013,24 @@
 		} else {
 			currentNode = Constants.WTFQ;
 		}
-			
+
 		//鏌ヨ褰撳墠鑺傜偣鑳藉彂閫佺殑鑺傜偣
 		String selectSql = "SELECT * FROM QUESTION_FLOWRULE WHERE CUSTOMER_ID = :customer_id";
 		List<Map> list = baseDao.queryForList(selectSql,new SqlParameter("customer_id",customer_id));
 		Map prom = new HashMap();
 		if(null!=list && list.size()>0) {
 			prom = list.get(0);
-			
+
 			String json = ConvertUtil.obj2StrBlank(prom.get(Constants.questionNodeColunm.get(currentNode)));
 			List<Map> nodes = JsonUtil.json2List(json);
 			return nodes;
-			
+
 		}else{
 			String gsSql = "SELECT * FROM QUESTION_FLOWRULE WHERE (CUSTOMER_ID IS NULL OR CUSTOMER_ID = '')";
 			List<Map> gslist = baseDao.queryForList(gsSql);
 			if(null!=gslist && gslist.size()>0){
 				prom = gslist.get(0);
-				
+
 				String json = ConvertUtil.obj2StrBlank(prom.get(Constants.questionNodeColunm.get(currentNode)));
 				List<Map> nodes = JsonUtil.json2List(json);
 				return nodes;
@@ -1038,12 +1038,12 @@
 		}
 		return new ArrayList<Map>();
 	}
-	
+
 	public Map getCurrentNode(String flowId) {
 		String selectSql = "SELECT B.NODE_TEMPLATE_ID FROM WORKFLOW_BASE A,WORKFLOW_NODE B WHERE A.CURRENT_NODE_ID = B.ID AND A.ID = :id";
 		return baseDao.queryForMap(selectSql,new SqlParameter("id",flowId));
 	}
-	
+
 	@Override
 	public List<Map> getZdyGroupList(HttpServletRequest request) {
 		String customer_id = request.getParameter("customer_id");
@@ -1070,7 +1070,7 @@
 				map.put("userlist", userName.deleteCharAt(userName.lastIndexOf(",")));
 				map.put("useridlist", userId.deleteCharAt(userId.lastIndexOf(",")));
 			}
-			
+
 		}
 		return groupList;
 	}
@@ -1079,13 +1079,13 @@
 	public List<Map> groupuser(String groupId) {
 		String usersql = "SELECT * FROM CUSTOM_GROUP WHERE GROUP_ID = :group_id";
 		List<Map> groupuser = baseDao.queryForList(usersql, new SqlParameter("group_id",groupId));
-		
+
 		return groupuser;
 	}
 
 	@Override
 	public Map usersbyGroup(HttpServletRequest request) {
-		Map main = new HashMap(); 
+		Map main = new HashMap();
 		String groupId = request.getParameter("groupId");
 		String customer_id = request.getParameter("customer_id");
 		String usersql = "SELECT * FROM CUSTOM_GROUP WHERE ID = :group_id";
@@ -1105,11 +1105,11 @@
 		StringBuilder sql = new StringBuilder();
 		List<Map> cateList = new ArrayList<Map>();
 		List<Map> userList = new ArrayList<Map>();
-		
+
 		sql.setLength(0);
 		sql.append(" select G.ID ,G.ROLENAME from AC_USER_REF_ROLE U,AC_ROLE G WHERE G.ID = U.JSBH AND G.STATE=1 GROUP BY G.ID ORDER BY G.ID");
 		cateList = baseDao.queryForList(sql.toString(),param);
-		
+
 		sql.setLength(0);
 		sql.append(" select U.JSBH,G.ROLENAME,D.ID,D.ZSXM from AC_USER_REF_ROLE U,AC_ROLE G,GG_USER D WHERE G.ID = U.JSBH AND U.YHBH = D.ID AND D.ZT = 1 AND G.STATE=1 ORDER BY D.ID");
 		userList = baseDao.queryForList(sql.toString(),param);
@@ -1127,7 +1127,7 @@
 					}
 					tempList.add(userMap);
 				}
-				
+
 			}
 			tempMap.put("dataList", tempList);
 			resList.add(tempMap);
@@ -1143,11 +1143,11 @@
 		String groupId = request.getParameter("groupId");
 		String customer_id = request.getParameter("customer_id");
 		String groupname = request.getParameter("name");
-		//浜哄憳  
-		String[] user = request.getParameterValues("users");   
+		//浜哄憳
+		String[] user = request.getParameterValues("users");
 		//涓昏璐熻矗浜�
 		String userMain = request.getParameter("userid");
-		
+
 		String sqluser = "SELECT * FROM GG_USER  ";
 		List<Map> userList = baseDao.queryForList(sqluser);
 		Map cacheuser = new HashMap();
@@ -1155,9 +1155,9 @@
 			cacheuser.put(users.get("ID"), users.get("ZSXM"));
 		}
         List<Map> list = new ArrayList<Map>();
-        
+
 		Map cacheMap = new HashMap();
-        
+
 		for(int i=0;i<user.length;i++){
 			String userId = user[i];
 			if(!cacheMap.containsKey(userId)) {
@@ -1186,9 +1186,9 @@
 			.setCreate_time(DateUtil.getCurrentDate14());
 		}
 		group.insertOrUpdate();
-		
+
 	}
-	
+
 	/**
 	 * 閫氳繃orderid鑾峰彇娴佺▼淇℃伅
 	 */
@@ -1197,7 +1197,7 @@
 		String selectSql = "SELECT * FROM WORKFLOW_NODE WHERE FLOWID = :flowId AND CURRENT_DEALER_ID = :userId AND FLOWSTATE <> 3 ";
 		return baseDao.queryForMap(selectSql,new SqlParameter("flowId",flowId).addValue("userId", userId));
 	}
-	
+
 	@Override
 	public Map queryQuestionBaseMsg(String orderId) {
 		String selectSql = "SELECT A.*,B.WFSTATE,N.ANSWER_TIME,B.BUSINESSTYPE,B.CURRENT_DEALER_ID clr FROM SC_WORKFLOW_QUESTION A LEFT JOIN  WORKFLOW_BASE B ON A.ID = B.BUSINESS_ID LEFT JOIN WORKFLOW_NODE N ON B.CURRENT_NODE_ID = N.ID  WHERE A.ID = :orderId  ";
@@ -1242,15 +1242,15 @@
 
 		return baseMap;
 	}
-	
-	@Override	
+
+	@Override
     public String anwerSubmit(HttpServletRequest request){
-		
+
         WORKFLOW_BASE base = new WORKFLOW_BASE(request.getParameter("flowId")).getInstanceById();
-		
+
         WORKFLOW_NODE node = new WORKFLOW_NODE(request.getParameter("nodeId")).getInstanceById();
         NodeAnswerEntity entity = new NodeAnswerEntity();
-        
+
         Map user = WebUtil.getLoginUser(request).getLoginUser();
         entity.setUser_id(user.get("ID").toString());
         entity.setUser_name(user.get("ZSXM").toString());
@@ -1263,34 +1263,34 @@
 		Map map = baseDao.queryForMap(selectSql,new SqlParameter("questionid",base.getBusiness_id()));
 		String shouli_time = ConvertUtil.obj2StrBlank(map.get("SHOULI_TIME"));
 		long create_time = ConvertUtil.obj2Long(map.get("CREATE_TIME"));
-		
+
 		Map paramMap = new HashMap();
-		
-		
+
+
 		if(!StringUtil.notEmpty(shouli_time)) {
 			StringBuilder builder = new StringBuilder("UPDATE SC_WORKFLOW_QUESTION SET ");
 			long answer_time = DateUtil.getCurrentDate14();
-			
+
 			builder.append(" SHOULI_USERID = :shouli_userid,SHOULI_USERNAME = :shouli_username,SHOULI_TIME = :answerTime,SHOULI_USE_TIME = :answer_user_time ");
 			paramMap.put("answerTime",answer_time);
 			paramMap.put("shouli_userid",user.get("ID"));
 			paramMap.put("shouli_username",user.get("ZSXM"));
-			
+
 			//璁$畻绗竴娆″搷搴旀椂闂村拰鍒涘缓闂鐨勬椂闂村樊 灏嗘椂闂村樊杞寲涓哄垎閽�
 			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 = :questionid");
 			paramMap.put("questionid", base.getBusiness_id());
 			baseDao.execute(builder.toString(), paramMap);
 		}
 		return "1";
-		
+
 	}
-	
+
 	@Override
 	public void updateQuestion(HttpServletRequest request,
 			SC_WORKFLOW_QUESTION sc_workflow_question) {
@@ -1318,8 +1318,8 @@
 		sc_workflow_question.setPri_level_id(sla_id).setPri_level(sla_name);
 		sc_workflow_question.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);
-		
-		
+
+
 		sc_workflow_question.update();
 		//娣诲姞澶勭悊璁板綍
 		Map userlogin = WebUtil.getLoginUser(request).getLoginUser();
@@ -1329,7 +1329,7 @@
 		Map flowMsg = getFlowMsg(flowId,createUserId);
 		String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
 		String nodeName = ConvertUtil.obj2StrBlank(flowMsg.get("NODENAME"));
-		
+
 		//澧炲姞闂澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content("淇敼闂锛�"+createUserName+"淇敼浜嗛棶棰樹俊鎭�");
@@ -1339,13 +1339,13 @@
 		record.setBusiness_id(flowId);
 		record.setNode_id(nodeid).setNode_name(nodeName);
 		recordService.addRecord(record);
-		
+
 	}
-	
+
 	@Override
 	public List<Map> getZdMsgList(String flowId) {
 		String sql = "SELECT * FROM QUESTION_ZD_HISTORY WHERE FLOWID = :flowid ORDER BY CREATE_TIME DESC";
-		
+
 		return baseDao.queryForList(sql, new SqlParameter("flowid",flowId));
 	}
 
@@ -1355,9 +1355,9 @@
 		String type = request.getParameter("type");
 		String flowId = request.getParameter("flowId");
 		Map zdMsg = new HashMap();
-		
+
 		if(!StringUtil.isEmpty(type)){
-			
+
 			if("1".equals(type)){
 				SC_WORKFLOW_QUESTION question = new SC_WORKFLOW_QUESTION(id).getInstanceById();
 				zdMsg.put("ID", question.getId());
@@ -1370,7 +1370,7 @@
 			}else{
 				zdMsg = new QUESTION_ZD_HISTORY(id).getBeanMapById();
 			}
-		
+
 		}
 		return zdMsg;
 	}
@@ -1380,16 +1380,16 @@
 		String flowId = request.getParameter("flowId");
 		String id = request.getParameter("id");
 		String type = request.getParameter("type");
-		
-		
+
+
 		String resolve = request.getParameter("resolve");
 		String suggest = request.getParameter("suggest");
 		String reason = request.getParameter("reason");
-		
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
 		String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		long resolveTime = DateUtil.getCurrentDate14();
 		QUESTION_ZD_HISTORY zd = new QUESTION_ZD_HISTORY();
 		if("1".equals(type)){
@@ -1405,11 +1405,11 @@
 			String zdid = baseDao.queryForString(selsql, param);
 			zd.setId(zdid);
 			String sql = "UPDATE QUESTION_ZD_HISTORY SET REASON = :reason ,RESOLVE = :resolve,SUGGEST = :suggest WHERE FLOWID = :flowid AND ISTHEEND = :istheend ";
-		   
+
 		    baseDao.execute(sql, param);
-		
+
 		}else{
-		
+
 			if(!StringUtil.isEmpty(id)){
 				zd.setId(id);
 			}else{
@@ -1418,9 +1418,9 @@
 			zd.setReason(reason).setResolve(resolve).setSuggest(suggest).insertOrUpdate();
 		}
 		fileService.uploadFile(request, zd.getId(), flowId, null, null);
-		
+
 	}
-	
+
 	@Override
 	public String issave(HttpServletRequest request) {
 		String nodeId = request.getParameter("nodeId");
@@ -1450,7 +1450,7 @@
 		}
 		return result;
 	}
-	
+
 	@Override
 	public Map gettempMsg(String id,String userId) {
 		//鑾峰彇褰撳墠鎵�澶勭殑鑺傜偣
@@ -1461,7 +1461,7 @@
 		Map msg = baseDao.queryForMap(sql, new SqlParameter("node_id",nodeid));
 		return msg;
 	}
-	
+
 	@Override
 	public Map updateAssign(HttpServletRequest request) {
 		Map resultMap = new HashMap();
@@ -1477,14 +1477,14 @@
 		String resolve = request.getParameter("resolve");
 		String suggest = request.getParameter("suggest");
 		String bz = request.getParameter("bz");
-		
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
 		String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		WORKFLOW_BASE base = new WORKFLOW_BASE(id).getInstanceById();
 		SC_WORKFLOW_QUESTION myQuestion = new SC_WORKFLOW_QUESTION(base.getBusiness_id()).getInstanceById();
-		
+
 		//鑾峰彇褰撳墠鎵�澶勭殑鑺傜偣
 		Map flowMsg = getFlowMsg(id,userId);
 		String nodeid = ConvertUtil.obj2StrBlank(flowMsg.get("ID"));
@@ -1497,14 +1497,14 @@
 			ORDER_ASSIGN_TEMP temp = new ORDER_ASSIGN_TEMP();
 			temp.setDealer(JsonUtil.map2Json(dealuser)).setNode_id(nodeid)
 			.setExtend1(usertype).setExtend2(true_reason).setExtend3(resolve).setExtend4(suggest).setExtend5(bz).insert();
-			
+
 		}else{
-		
+
 			String dealUserId = new String();
 			String dealUserName = new String();
 			String state = new String();
 			String type = new String();
-			
+
 			String node_template_id = Constants.WTFQ;
 			if(StringUtil.notEmpty(selectUser)) {
 					if(usertype.equals("3")){
@@ -1533,11 +1533,11 @@
 					}else{
 						state = Constants.SC_WORKFLOW_QUESTION_STATE_YDJ;
 					}
-			}    
+			}
 			if(StringUtil.notEmpty(selectUser)) {
 				//鎵ц鍒嗘淳浠诲姟
-				
-				
+
+
 				NodeDealEntity entity = new NodeDealEntity();
 				entity.setDealer_type(3);
 				List<Map> dealerList = new ArrayList<Map>();
@@ -1563,44 +1563,44 @@
 							map.put("USER_NAME", cacheuser.get(userList2[i]));
 							dealUserName += cacheuser.get(userList2[i])+",";
 						}
-						
+
 						dealerList.add(map);
 					}
 					dealUserName = dealUserName.substring(0, dealUserName.length()-1);
-					
+
 				} else {
 					entity.setBefore_Dealer_type(1);
 					entity.setRoleID(selectUser.split("&")[0]);
 					entity.setRoleName(selectUser.split("&")[1]);
-					
+
 					//鏌ヨ鏀圭粍涓嬮潰鐨勬墍鏈変汉鍛樹俊鎭�
 					String sqlUser = "SELECT B.ID AS USER_ID ,B.ZSXM AS USER_NAME FROM AC_USER_REF_ROLE A,GG_USER B WHERE A.YHBH = B.ID AND A.JSBH = :groupId ";
 					dealerList = baseDao.queryForList(sqlUser,new SqlParameter("groupId",selectUser.split("&")[0]));
 					dealUserName = entity.getRoleName();
 				}
 				entity.setDealerList(dealerList);
-				
+
 				NodeFinishEntity finishEntity = new NodeFinishEntity();
 				finishEntity.setDeal_result(1);
 				finishEntity.setDeal_note_title("鑺傜偣杞嚦 锛�" + dealUserName);
 				finishEntity.setDeal_note(bz);
 				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);
-				} 
-				
-	
+				}
+
+
 				//鏇存柊闂鐘舵��
 				Map param = new HashMap();
 				param.put("state", state);
 				param.put("questionId", base.getBusiness_id());
 				String updateIncidentSql = "UPDATE SC_WORKFLOW_QUESTION SET STATE = :state  ";
 				if(curnodeId .equals(Constants.WTZD)){
-					
+
 					updateIncidentSql += " ,RESOLVE_USER_ID = :userId,RESOLVE_USER_NAME = :userName,TRUE_REASON = :true_reason ,RESOLVE = :resolve ,SUGGEST = :suggest ";
 					param.put("true_reason",true_reason );
 					param.put("resolve", resolve);
@@ -1622,13 +1622,13 @@
 				   }
 
 					fileService.uploadFile(request,businessid, id, null, null);
-					
+
 				}
 				updateIncidentSql += " WHERE ID = :questionId ";
 				baseDao.execute(updateIncidentSql, param);
-				
+
 				baseDao.execute("DELETE FROM ORDER_ASSIGN_TEMP WHERE NODE_ID = :node_id ", new SqlParameter("node_id",nodeid));
-				
+
 				//澧炲姞闂澶勭悊璁板綍
 				GG_RECORD record = new GG_RECORD();
 				record.setDeal_content("鎸囨淳浠诲姟锛�"+userName+"灏嗛棶棰樻寚娲剧粰浜�"+dealUserName);
@@ -1654,15 +1654,15 @@
 				messageFacade.doSendMessage(message, dealerList);
 				resultMap.put("result", 1);
 				type = ConvertUtil.obj2StrBlank(entity.getBefore_Dealer_type());
-				
+
 			}
 	        SysInfoMsg msg = new SysInfoMsg(type,dealUserName,Constants.questionNode.get(node_template_id));
-			
+
 			resultMap.put("msg", msg);
 		}
 		return resultMap;
 	}
-	
+
 	@Override
 	public void updatefinishnode(HttpServletRequest request) {
 	    String nodeId = request.getParameter("nodeId");
@@ -1677,7 +1677,7 @@
 		//鍏抽棴褰撳墠鑺傜偣
 		workflowCoreService.finishNode(base, node, finishEntity);
 	}
-	
+
 	@Override
 	public Map getBeforeNodeMsg(String nodeId) {
 		WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
@@ -1691,20 +1691,20 @@
 		Map nodeMap = baseDao.queryForMap(sql, param);
 		return nodeMap;
 	}
-	
-	
+
+
 	@Override
 	public Map gobackNodeSubmit(HttpServletRequest request) {
 		String flowId = request.getParameter("flowId");
 		String nodeId = request.getParameter("nodeId");
 		String orderId = request.getParameter("orderId");
-		
+
 		WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
-		
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
 		String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
 		finishEntity.setDeal_result(3);
 		finishEntity.setDeal_note_title(userName+"鍥為��浜嗚妭鐐�");
@@ -1712,7 +1712,7 @@
 		WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
 		WORKFLOW_NODE beforenode = new WORKFLOW_NODE(node.getSource_node_instance_id()).getInstanceById();
 		String node_template_id = beforenode.getNode_template_id();
-		
+
 		Map nodeMap = getBeforeNodeMsg(nodeId);
 		List<Map> nodesList = baseDao.queryForList("SELECT * FROM WORKFLOW_NODE WHERE FLOWID = :flowid AND SAME_NODE_KEY = :same_node_key ",new SqlParameter("flowid",flowId).addValue("same_node_key", node.getSame_node_key()));
 		//鍥為��鏃讹紝鍏抽棴鎵�鏈夎妭鐐�
@@ -1721,7 +1721,7 @@
 			nodeid.setDealtime(ConvertUtil.obj2Long(nodes.get("DEALTIME"))).setAnswer_time(ConvertUtil.obj2Long(nodes.get("ANSWER_TIME")));
 			workflowCoreService.finishNode(base,nodeid , finishEntity);
 		}
-		
+
 		String state = "";
 		if(node_template_id.equals(Constants.WTSL)) {
 			state = Constants.SC_WORKFLOW_QUESTION_STATE_SL;
@@ -1738,18 +1738,18 @@
 		}else{
 			state = Constants.SC_WORKFLOW_QUESTION_STATE_YDJ;
 		}
-		
+
 		//鏇存柊闂鐘舵��
 		String updateSql = "UPDATE SC_WORKFLOW_QUESTION SET STATE = :state WHERE ID = :questionId ";
 		baseDao.execute(updateSql, new SqlParameter("state",state).addValue("questionId", orderId));
-		
+
 		List<Map> list = new ArrayList<Map>();
 		Map map = new HashMap();
 		map.put("USER_ID", nodeMap.get("CURRENT_DEALER_ID"));
 		map.put("USER_NAME", nodeMap.get("CURRENT_DEALER_NAME"));
 		map.put("IS_ADMIN", "1");
 		list.add(map);
-		
+
 		NodeDealEntity entity = new NodeDealEntity();
 		entity.setBefore_Dealer_type(2);
 		entity.setDealer_type(2);
@@ -1777,7 +1777,7 @@
 		resultMap.put("msg", msg);
 		return resultMap;
 	}
-	
+
 	@Override
 	public Map updateApplyEnd(HttpServletRequest request) {
 		Map resultMap = new HashMap();
@@ -1959,17 +1959,17 @@
 
 		resultMap.put("msg", msg);
 		return resultMap;
-		
-		
+
+
 	}
-	
+
 	@Override
 	public Map getEndMsgById(String orderId) {
 		String sql ="SELECT RESOLVE_TYPE_ID,TRUE_REASON,RESOLVE,SUGGEST FROM SC_WORKFLOW_QUESTION WHERE ID = :id ";
 		Map faMap = baseDao.queryForMap(sql, new SqlParameter("id",orderId));
 		return faMap;
 	}
-	
+
 	@Override
 	public void updateEndQuestion(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -1978,17 +1978,17 @@
 		String solveWay = request.getParameter("solveWay");
 		String solveWayName = request.getParameter("solveWayName");
 		String solve = request.getParameter("solve");
-		
-		
+
+
 		String reason = request.getParameter("reason");
-		
-		
+
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userId = ConvertUtil.obj2StrBlank(user.get("ID"));
 		String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		long resolveTime = DateUtil.getCurrentDate14();
-		
+
 		String state = "";
 		if("1".equals(solve)){
 			state = Constants.SC_WORKFLOW_QUESTION_STATE_YWC;
@@ -1996,8 +1996,8 @@
 			state = Constants.SC_WORKFLOW_QUESTION_STATE_YGB;
 		}
 		SC_WORKFLOW_QUESTION question = new SC_WORKFLOW_QUESTION(orderId).getInstanceById();
-		
-		
+
+
 		StringBuffer updateSql = new StringBuffer("UPDATE SC_WORKFLOW_QUESTION SET STATE = :state , RESOLVE_USER_ID = :userId,RESOLVE_USER_NAME = :userName,RESOLVE_TIME = :resolveTime,RESOLVE_TYPE_ID = :solveWay,RESOLVE_TYPE_NAME = :solveWayName  ");
 		Map paramMap = new HashMap();
 		if(StringUtil.isEmpty(question.getResolve_user_id())){
@@ -2016,10 +2016,10 @@
 				paramMap.put("resolve", map.get("RESOLVE"));
 				paramMap.put("suggest", map.get("SUGGEST"));
 			}
-			
+
 		}
 		paramMap.put("state", state);
-		
+
 		paramMap.put("resolveTime", resolveTime);
 		paramMap.put("solveWay", solveWay);
 		paramMap.put("solveWayName", solveWayName);
@@ -2043,18 +2043,18 @@
 		record.setBusiness_id(flowId);
 		record.setNode_id(nodeid).setNode_name(nodeName);
 		recordService.addRecord(record);
-		
+
 		//缁撴潫宸ュ崟
         WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
-		
+
 		List<Map> list = new ArrayList<Map>();
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
 		finishEntity.setDeal_result(1);
 		finishEntity.setDeal_note_title(userName+"澶勭悊瀹屾垚");
 		finishEntity.setDeal_note(reason);
-		
+
 		WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
-		
+
 		workflowCoreService.finishNode(base, node, finishEntity);
 		if("1".equals(solve)){
 			workflowCoreService.finishWorkFlow(base);
@@ -2062,7 +2062,7 @@
 			workflowCoreService.closeWorkFlow(base);
 		}
 	}
-	
+
 	@Override
 	public List queryLinkwtOrder(HttpServletRequest request) {
 		String orderCode = request.getParameter("orderCode");
@@ -2077,27 +2077,27 @@
 		param.addValue("orderid", orderid);
 		param.addValue("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE);
 		param.addValue("businesstype", Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION);
-		
+
 		if (StringUtils.isNotBlank(reordercode)) {
 			sql.append("AND A.ORDER_CODE != :reordercode ");
 			param.addValue("reordercode", reordercode);
 		}
-		
+
 		if (StringUtils.isNotBlank(orderName)) {
 			sql.append("AND B.NAME like :wfname ");
 			param.addValue("wfname", "%"+orderName+"%");
 		}
-		
+
 		if (StringUtils.isNotBlank(orderCode)) {
 			sql.append("AND A.ORDER_CODE like :orderCode ");
 			param.addValue("orderCode", "%"+orderCode+"%");
 		}
-		
+
 		sql.append("ORDER BY A.WFSTATE ASC,A.CREATETIME DESC");
-		
-		
+
+
 		List<Map> list = baseDao.queryForList(sql.toString(),param);
-		
+
 		for (Map map2 : list) {
 			map2.put("BUSINESSTYPE_TEXT", Constants.mapWORKFLOW_BUSINESS_TYPE_Label(ConvertUtil.obj2Str(map2.get("BUSINESSTYPE"))));
 			map2.put("WFSTATE_TEXT", Constants.getWORKFLOW_BASE_WFSTATE_Label(ConvertUtil.obj2Str(map2.get("WFSTATE"))));
@@ -2105,7 +2105,7 @@
 		}
 		return list;
 	}
-	
+
 	@Override
 	public String getIsOpenQuestion(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -2114,7 +2114,7 @@
 		Map param = new HashMap();
 		param.put("bus_id", orderId);
 		param.put("userId", userId);
-		
+
 		int count = baseDao.queryForInteger(sql, param);
 		if(count > 0){
 			return "1";
@@ -2122,7 +2122,7 @@
 			return "0";
 		}
 	}
-	
+
 	@Override
 	public Map questionInfo(HttpServletRequest request) {
 		String questionId=request.getParameter("orderId");
@@ -2168,7 +2168,7 @@
 		map.put("fileList", fileList);
 		return map;
 	}
-	
+
 	@Override
 	public void updateResolveType(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -2204,10 +2204,10 @@
 		record.setNode_id(nodeid).setNode_name(nodeName);
 		record = recordService.addRecord(record);
 		fileService.uploadFile(request, record.getId(), flowId, null, null);
-		
-		
+
+
         WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById();
-		
+
 		NodeFinishEntity finishEntity = new NodeFinishEntity();
 		finishEntity.setDeal_result(1);
 		finishEntity.setDeal_note_title(createUserName+"缁撴潫鑺傜偣");
@@ -2217,9 +2217,9 @@
 		workflowCoreService.finishNode(base, node, finishEntity);
 		//鍏抽棴宸ュ崟
 		workflowCoreService.closeWorkFlow(base);
-		
+
 	}
-	
+
 	@Override
 	public void updateQuestiongq(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -2232,7 +2232,7 @@
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String createUserId = ConvertUtil.obj2StrBlank(user.get("ID"));
 		String createUserName = ConvertUtil.obj2StrBlank(user.get("ZSXM"));
-		
+
 		String sql = "INSERT INTO HANG_UP_INFO(ID,BUS_ID,BUS_STATE,STATE,HANG_UP_USERID,HANG_UP_USERNAME,HANG_UP_TIME,HANG_UP_REASONID,HANG_UP_REASON,HANG_UP_NOTE) VALUES(:id,:bus_id,:bus_state,:state,:hang_up_userid,:hang_up_username,:hang_up_time,:hang_up_reasonid,:hang_up_reason,:hang_up_note)";
 		Map  param = new HashMap();
 		param.put("id", StringUtil.getUUID());
@@ -2267,9 +2267,9 @@
 		record.setNode_id(nodeid).setNode_name(nodeName);
 		record = recordService.addRecord(record);
 		fileService.uploadFile(request, record.getId(), flowId, null, null);
-		
+
 	}
-	
+
 	@Override
 	public List queryGqhistoryData(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -2286,7 +2286,7 @@
 		}
 		return gqList;
 	}
-	
+
 	@Override
 	public void updateQuestionOpen(HttpServletRequest request) {
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
@@ -2305,7 +2305,7 @@
 		HANG_UP_INFO qg = new HANG_UP_INFO(ConvertUtil.obj2StrBlank(qgMap.get("ID")));
 		qg.setState(2).setHang_down_reason(note).update();
 	}
-	
+
 	@Override
 	public Map querymyQuestionpoolCount(HttpServletRequest request) {
 		String userId = WebUtil.getLoginedUserId(request);
@@ -2313,19 +2313,19 @@
 		int ywc = 0;
 		//闂鍙楃悊
 		int wtsl = 0;
-		
+
 		//闂瀹℃牳
 		int wtsh = 0;
-		
+
 		//闂璇婃柇
 		int wtzd = 0;
-		
+
 		//鏂规瀹℃壒
 		int fasp = 0;
-		
+
 		//鏂规瀹炴柦
 		int fass = 0;
-		
+
 		//闂鍥為【
 		int wthg = 0;
 		StringBuilder sql = new StringBuilder();
@@ -2334,7 +2334,7 @@
 		paramMap.put("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE);
 		sql.append("SELECT COUNT(*) AS  NUM,E.STATE FROM SC_WORKFLOW_QUESTION E, WORKFLOW_BASE D,(SELECT DISTINCT B.JSBH FROM GG_USER A,AC_USER_REF_ROLE B WHERE A.ID = B.YHBH AND A.ID = :userId) C WHERE  D.CURRENT_DEAL_ROLEIDA = C.JSBH AND E.ID = D.BUSINESS_ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )  AND D.BUSINESSTYPE = :businessType ");
 		sqlall.append("SELECT COUNT(G.ID) FROM (SELECT E.ID FROM SC_WORKFLOW_QUESTION E, WORKFLOW_BASE D,(SELECT DISTINCT B.JSBH FROM GG_USER A,AC_USER_REF_ROLE B WHERE A.ID = B.YHBH AND A.ID = :userId) C WHERE  D.CURRENT_DEAL_ROLEIDA = C.JSBH AND E.ID = D.BUSINESS_ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' ) AND D.BUSINESSTYPE = :businessType ");
-		
+
 		String customer_Id = request.getParameter("customerId");
 		if(!StringUtil.isEmpty(customer_Id)){
 			sql.append(" AND E.CUSTOMER_ID = :customer_Id ");
@@ -2362,57 +2362,57 @@
 					wtzd += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					fasp += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					fass += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					wthg += num;
 					continue;
 				}
-				
+
 			}
 		}
 		int all = baseDao.queryForInteger(sqlall.toString(), paramMap);
 		Map map = new HashMap();
 		map.put("wtsl", wtsl);
-		
+
 		map.put("wtsh", wtsh);
-		
+
 		map.put("wtzd", wtzd);
-		
+
 		map.put("fasp", fasp);
-		
+
 		map.put("fass", fass);
-		
+
 		map.put("wthg", wthg);
-		
+
 		map.put("all", all);
 		return map;
 	}
 
 	@Override
 	public int myquestionpoolCount(Map<String, String> params) {
-		
+
 		String sql = new String();
 		params.put("wfstate", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
 		sql = "SELECT COUNT(D.ID) FROM  SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT DISTINCT B.JSBH FROM GG_USER A,AC_USER_REF_ROLE B WHERE A.ID = B.YHBH AND A.ID = :userId) C WHERE  E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.JSBH AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' ) ";
-		
-		
+
+
 		if(StringUtil.notEmpty(sql)) {
 			StringBuilder builder = new StringBuilder(sql);
-			
+
 			builder = getMypoolsql(builder,params);
-			
+
 			int count = baseDao.queryForInteger(builder.toString(),params);
-			
+
 			return count;
 		}
 
@@ -2422,19 +2422,19 @@
 	@Override
 	public PageInfo myquestionpoolData(PageInfo pageInfo,
 			Map<String, String> params) {
-		
+
 		String sql = new String();
 		params.put("wfstate", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
 		sql = "SELECT D.* FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT DISTINCT B.JSBH FROM GG_USER A,AC_USER_REF_ROLE B WHERE A.ID = B.YHBH AND A.ID = :userId) C WHERE E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.JSBH AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' ) ";
-		
+
 		if(StringUtil.notEmpty(sql)) {
-			
+
 			StringBuilder builder = new StringBuilder(sql);
 			builder = getMypoolsql(builder,params);
-			
+
 			builder.append(" ORDER BY D.CREATETIME DESC ");
 			PageInfo result = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params);
-			
+
 			return result;
 		}
 		return new PageInfo();
@@ -2445,30 +2445,30 @@
 		Map chartMap = new HashMap();
 		Long endDay = DateUtil.getCurrentDate8();
 		Long startDay = DateUtil.getDateAdd(endDay,-30,8);
-	
+
 		String userId = params.get("userId");
 		params.put("startTime", startDay+"000000");
 		params.put("endTime", endDay + "600000");
-		
+
 		StringBuilder builder = new StringBuilder();
 		if(StringUtil.isBlank(userId)){
 			builder.append(" select count(ID) NUM,DATE_FORMAT(CREATE_TIME,'%Y%m%d') CREATEDAY  from SC_WORKFLOW_QUESTION  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_QUESTION 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);
 		if(dataList!=null&&dataList.size()>0){
-			
+
 			List<String> categories = DateUtil.getDates(startDay ,endDay);
 			categories.add(String.valueOf(DateUtil.getCurrentDate8()));
 			List<String> categories_format = new ArrayList<String>();
-			
-			
+
+
 			Map dataMap = new HashMap();
 			Map tempMap = new HashMap();
 			List<Map> series = new ArrayList<Map>();
@@ -2493,26 +2493,26 @@
 		}
 		return chartMap;
 	}
-	
+
 	public StringBuilder getMypoolsql(StringBuilder builder,Map<String, String> params){
 		String status = params.get("status");
 		if(StringUtil.notEmpty(status)) {
 			builder.append(" AND E.STATE = :status ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			builder.append(" AND D.WFNAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
-		
+
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			builder.append(" AND D.ORDER_CODE LIKE :orderCode");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
+
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
 			builder.append(" AND D.CUSTOMER_ID = :customerId ");
@@ -2521,8 +2521,8 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			builder.append(" AND D.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
-		
+
+
 		builder.append(" AND D.BUSINESSTYPE = :businessType");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		return builder;
@@ -2532,14 +2532,14 @@
 	public Map getLastMonthQuestionLv(Map<String, String> params) {
 		//dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI,WebUtil.getLoginedPartnerId(request));
 		Map chartMap = new HashMap();
-		
+
 		Long endDay = DateUtil.getCurrentDate8();
 		Long startDay = DateUtil.getDateAdd(endDay,-30,8);
 		String userId = params.get("userId");
 		params.put("startTime", startDay+"000000");
 		params.put("endTime", endDay + "600000");
-		
-		
+
+
 		StringBuilder builder = new StringBuilder();
 		if(StringUtil.isBlank(userId)){
 			builder.append(" SELECT count(ID) NUM,PRI_LEVEL_ID FROM SC_WORKFLOW_QUESTION WHERE ");
@@ -2557,11 +2557,11 @@
 			Map dataMap = new HashMap();
 			Map tempMap = new HashMap();
 			List serieslist = new ArrayList();
-			
+
 			for(Map data : dataList){
 				dataMap.put(data.get("PRI_LEVEL_ID").toString(), data);
 			}
-			
+
 			builder.setLength(0);
 			builder.append(" select ID LEVEL_ID,LEVEL_NAME from SC_SLA where state =1 order by SERIAL ");
 			List<Map> catelist = baseDao.queryForList(builder.toString());
@@ -2585,11 +2585,11 @@
 		Map chartMap = new HashMap();
 		Long endDay = DateUtil.getCurrentDate8();
 		Long startDay = DateUtil.getDateAdd(endDay,-30,8);
-		
+
 		String userId = params.get("userId");
 		params.put("startTime", startDay+"000000");
 		params.put("endTime", endDay + "600000");
-		
+
 		StringBuilder builder = new StringBuilder();
 		if(StringUtil.isBlank(userId)){
 			builder.append(" SELECT count(ID) NUM,PRIORITY_ID FROM SC_WORKFLOW_QUESTION WHERE ");
@@ -2601,7 +2601,7 @@
 			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 q.PRIORITY_ID ");
 		}
-		
+
 		List<Map> dataList = baseDao.queryForList(builder.toString(),params);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataMap = new HashMap();
@@ -2631,11 +2631,11 @@
 		Map chartMap = new HashMap();
 		Long endDay = DateUtil.getCurrentDate8();
 		Long startDay = DateUtil.getDateAdd(endDay,-30,8);
-		
+
 		String userId = params.get("userId");
 		params.put("startTime", startDay+"000000");
 		params.put("endTime", endDay + "600000");
-		
+
 		StringBuilder builder = new StringBuilder();
 		if(StringUtil.isBlank(userId)){
 			builder.append(" SELECT count(ID) NUM,INFLUENCE_ID FROM SC_WORKFLOW_QUESTION WHERE ");
@@ -2647,7 +2647,7 @@
 			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 q.INFLUENCE_ID ");
 		}
-		
+
 		List<Map> dataList = baseDao.queryForList(builder.toString(),params);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataMap = new HashMap();
@@ -2679,24 +2679,24 @@
 		Map chartMap = new HashMap();
 		Long endDay = DateUtil.getCurrentDate8();
 		Long startDay = DateUtil.getDateAdd(endDay,-30,8);
-		
+
 		StringBuilder builder = new StringBuilder();
 		String userId = params.get("userId");
 		params.put("startTime", startDay+"000000");
 		params.put("endTime", endDay + "600000");
 		if(StringUtil.isBlank(userId)){
-			builder.append(" select count(ID) NUM,THIRD_CATEGORY_ID SERVER_ID  from SC_WORKFLOW_QUESTION  where CUSTOMER_ID = :cusId ");
-			builder.append(" and CREATE_TIME>=:startTime and CREATE_TIME<=:endTime group by SERVER_ID ");
+			builder.append(" select count(ID) NUM,THIRD_CATEGORY_ID SERVER_ID  from SC_WORKFLOW_QUESTION where CUSTOMER_ID = :cusId ");
+			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_QUESTION 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);
 		if(dataList!=null&&dataList.size()>0){
 			builder.setLength(0);
@@ -2740,9 +2740,9 @@
 		int jxzcount = 0;
 		if("1".equals(type)){
             poolcount = questionpoolCount(params);
-			
+
 			dxycount = queryQuestionOrderNodeCount(params);
-			
+
 			jxzcount = queryQuestionJxzCount(params);
 		}else{
 			poolcount = myquestionpoolCount(params);
@@ -2751,7 +2751,7 @@
 			params.put("type", "2");
 			jxzcount = querymyQuestionOrderNodeCount(params);
 		}
-		
+
 		Map map = new HashMap();
 		map.put("poolcount", poolcount);
 		map.put("dxycount", dxycount);
@@ -2767,40 +2767,40 @@
 		int ywc = 0;
 		//闂鍙楃悊
 		int wtsl = 0;
-		
+
 		//闂瀹℃牳
 		int wtsh = 0;
-		
+
 		//闂璇婃柇
 		int wtzd = 0;
-		
+
 		//鏂规瀹℃壒
 		int fasp = 0;
-		
+
 		//鏂规瀹炴柦
 		int fass = 0;
-		
+
 		//闂鍥為【
 		int wthg = 0;
-		
+
 		StringBuffer selectSql = new StringBuffer();
 		StringBuffer sql = new StringBuffer();
-		
+
 		Map paramMap = new HashMap();
 		paramMap.put("flowstate", type);
 		paramMap.put("userId", params.get("userId"));
-		selectSql.append( "SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.* FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID  "); 
-		sql.append( "SELECT COUNT(D.ID) FROM (SELECT A.*  FROM SC_WORKFLOW_QUESTION  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID ");
+		selectSql.append( "SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.ID,A.STATE FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID  ");
+		sql.append( "SELECT COUNT(D.ID) FROM (SELECT A.ID FROM SC_WORKFLOW_QUESTION  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE B.ID = C.FLOWID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND A.ID = B.BUSINESS_ID ");
 		if(!StringUtil.isEmpty(customerId)){
 			selectSql.append(" AND A.CUSTOMER_ID = :customerId ");
 			sql.append(" AND A.CUSTOMER_ID = :customerId ");
 			paramMap.put("customerId", customerId);
 		}
-		
-		
-		selectSql.append(" GROUP BY A.ID) D  GROUP BY D.STATE ");
+
+
+		selectSql.append(" GROUP BY A.ID,A.STATE) D  GROUP BY D.STATE ");
 		sql.append(" GROUP BY A.ID) D ");
-		
+
 		List<Map> list = baseDao.queryForList(selectSql.toString(),paramMap);
 		if(null!=list && list.size()>0) {
 			for(Map map : list) {
@@ -2818,40 +2818,40 @@
 					wtzd += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					fasp += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					fass += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					wthg += num;
 					continue;
 				}
-				
+
 			}
 		}
 		int all = baseDao.queryForInteger(sql.toString(), paramMap);
 		Map map = new HashMap();
 		map.put("wtsl", wtsl);
-		
+
 		map.put("wtsh", wtsh);
-		
+
 		map.put("wtzd", wtzd);
-		
+
 		map.put("fasp", fasp);
-		
+
 		map.put("fass", fass);
-		
+
 		map.put("wthg", wthg);
-		
+
 		map.put("all", all);
-		
+
 		return map;
 	}
 
@@ -2859,16 +2859,16 @@
 	public int querymyQuestionEndCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND  C.FLOWID = WB.ID AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
-		
+
 		sqlpart.append( " AND WB.WFSTATE = :state  ");
 		params.put("state", params.get("type"));
-				
+
 		sql.append(sqlpart);
 		sql.append( " GROUP BY B.ID  ) D");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
@@ -2877,24 +2877,24 @@
 			Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
+		sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.ENDTIME , ");
 		sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME, ");
 		sql.append(" D.HANG_UP_USERNAME,D.HANG_UP_TIME,D.HANG_UP_REASON  ");
 		sql.append("FROM (SELECT F.* FROM  WORKFLOW_BASE F  WHERE  F.BUSINESSTYPE = :businessType ) WB , WORKFLOW_NODE C ,SC_WORKFLOW_QUESTION B LEFT JOIN HANG_UP_INFO D ON B.ID = D.BUS_ID ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND  C.FLOWID = WB.ID  AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		sqlpart = getMyEndSql(sqlpart,params);
-		
+
 		sqlpart.append( " AND WB.WFSTATE = :state  ");
 		params.put("state", params.get("type"));
 		sql.append(sqlpart);
-		sql.append( " GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
-		
+		sql.append( " GROUP BY WB.ID,B.RESOLVE_TYPE_NAME, B.CREATE_TIME, B.CREATE_USER_NAME, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, WB.ENDTIME , WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME, D.HANG_UP_USERNAME, D.HANG_UP_TIME, D.HANG_UP_REASON ORDER BY WB.CREATETIME DESC ");
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	public StringBuilder getMyEndSql(StringBuilder sqlpart,Map<String, String> params){
-		
+
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
 			sqlpart.append(" AND B.CUSTOMER_ID = :customerId ");
@@ -2903,27 +2903,27 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract = params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri = params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -2941,9 +2941,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -2961,8 +2961,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -2980,8 +2980,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -3006,15 +3006,15 @@
 	public int querymyQuestionOrderNodeCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID AND  C.FLOWID = WB.ID  AND C.FLOWSTATE = :flowstate AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType ");
 		params.put("flowstate", params.get("type"));
 		sqlpart = getMyNodeSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
 		sql.append( " GROUP BY B.ID  ) D");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
@@ -3023,7 +3023,7 @@
 			Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,C.FLOWSTATE, ");
+		sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,C.FLOWSTATE, ");
 		sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ");
 		sql.append("FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND  C.FLOWID = WB.ID AND C.FLOWSTATE = :flowstate  AND C.CURRENT_DEALER_ID = :userId AND WB.BUSINESSTYPE = :businessType  ");
@@ -3031,11 +3031,11 @@
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		sqlpart = getMyNodeSql(sqlpart,params);
 		sql.append(sqlpart);
-		sql.append( " GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
-		
+		sql.append( " GROUP BY WB.ID, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, C.FLOWSTATE, WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME ORDER BY WB.CREATETIME DESC ");
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
     public StringBuilder getMyNodeSql(StringBuilder sqlpart,Map<String, String> params){
     	String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
@@ -3045,27 +3045,27 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract = params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri = params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -3083,9 +3083,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -3103,8 +3103,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -3122,8 +3122,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -3146,7 +3146,7 @@
 			sqlpart.append( " AND B.STATE = :state  ");
 			params.put("state", status);
 		}
-    	
+
     	return sqlpart;
     }
 
@@ -3156,19 +3156,19 @@
 		int ywc = 0;
 		//闂鍙楃悊
 		int wtsl = 0;
-		
+
 		//闂瀹℃牳
 		int wtsh = 0;
-		
+
 		//闂璇婃柇
 		int wtzd = 0;
-		
+
 		//鏂规瀹℃壒
 		int fasp = 0;
-		
+
 		//鏂规瀹炴柦
 		int fass = 0;
-		
+
 		//闂鍥為【
 		int wthg = 0;
 		StringBuffer sql = new StringBuffer();
@@ -3177,18 +3177,18 @@
 		paramMap.put("wfstate", Constants.WORKFLOW_BASE_WFSTATE_DELETE);
 		//鏌ヨ璇ヤ汉鍛樻墍灞炵殑椤圭洰
 		sql.append("SELECT COUNT(*) AS NUM,E.STATE FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT B.ID,B.ROLENAME FROM AC_ROLE B WHERE B.STATE = 1   ");
-		sqlall.append("SELECT COUNT(F.ID) FROM (SELECT E.* FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT B.ID,B.ROLENAME FROM AC_ROLE B WHERE B.STATE = 1   ");
-		
+		sqlall.append("SELECT COUNT(F.ID) FROM (SELECT E.ID FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT B.ID,B.ROLENAME FROM AC_ROLE B WHERE B.STATE = 1   ");
+
 		sql.append(") C WHERE E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )");
 		sqlall.append(") C WHERE E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )");
-		
+
 		String customer_Id = request.getParameter("customerId");
 		if(!StringUtil.isEmpty(customer_Id)){
 			sql.append(" AND E.CUSTOMER_ID = :customer_Id ");
 			sqlall.append(" AND E.CUSTOMER_ID = :customer_Id ");
 			paramMap.put("customer_Id", customer_Id);
 		}
-		
+
 		sql.append(" GROUP BY E.STATE ");
 		sqlall.append(" GROUP BY E.ID) F ");
 		List<Map> list = baseDao.queryForList(sql.toString(),paramMap);
@@ -3208,38 +3208,38 @@
 					wtzd += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					fasp += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					fass += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					wthg += num;
 					continue;
 				}
-				
+
 			}
 		}
 		int all = baseDao.queryForInteger(sqlall.toString(), paramMap);
 		Map map = new HashMap();
 		map.put("wtsl", wtsl);
-		
+
 		map.put("wtsh", wtsh);
-		
+
 		map.put("wtzd", wtzd);
-		
+
 		map.put("fasp", fasp);
-		
+
 		map.put("fass", fass);
-		
+
 		map.put("wthg", wthg);
-		
+
 		map.put("all", all);
 		return map;
 	}
@@ -3253,25 +3253,25 @@
 		 * 濡傛灉鏄鎴锋湇鍔″彴锛屾煡璇㈡垜鐨勫伐鍗曟睜  鍒欐煡璇㈠伐鍗曡〃涓垎缁勬槸 锛堟煡璇㈣瀹㈡埛涓嬫墍鏈夌殑椤圭洰鐨勬湇鍔″彴鍒嗙粍锛�
 		 * 濡傛灉鏄�绘湇鍔″彴锛屽垯鏌ヨ鎵�鏈夊鎴蜂笅锛堝姞鐩熷晢涓嬫墍鏈夐」鐩殑鏈嶅姟鍙板垎缁勶級
 		 */
-		
+
 		StringBuffer sql = new StringBuffer();
 		params.put("wfstate", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
-			
+
 		sql.append("SELECT COUNT(D.ID) FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT B.ID,B.ROLENAME FROM AC_ROLE B WHERE B.STATE = 1 ");
-		
+
 		String customer_Id = params.get("customer_Id");
 		if(!StringUtil.isEmpty(customer_Id)){
 			sql.append(" AND B.CUSTOMER_ID = :customer_Id ");
 		}
-		
+
 		sql.append(") C WHERE  E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )");
 		StringBuilder builder = new StringBuilder(sql);
 		builder = getPoolSql(builder,params);
 		builder.append(" AND D.BUSINESSTYPE = :businessType");
 		params.put("businessType",ConvertUtil.obj2StrBlank( Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		int count = baseDao.queryForInteger(builder.toString(),params);
-		
+
 		return count;
 	}
 
@@ -3280,16 +3280,16 @@
 			Map<String, String> params) {
 		/**
 		 * 鏌ヨ鎴戠殑宸ュ崟姹犺鍒�
-		 * 濡傛灉鏄」鐩湇鍔″彴锛屽垯鐩存帴鏌ヨ宸ュ崟琛� 
+		 * 濡傛灉鏄」鐩湇鍔″彴锛屽垯鐩存帴鏌ヨ宸ュ崟琛�
 		 * 濡傛灉鏄鎴锋湇鍔″彴锛屾煡璇㈡垜鐨勫伐鍗曟睜  鍒欐煡璇㈠伐鍗曡〃涓垎缁勬槸 锛堟煡璇㈣瀹㈡埛涓嬫墍鏈夌殑椤圭洰鐨勫垎缁勶級
 		 * 濡傛灉鏄�绘湇鍔″彴锛屽垯鏌ヨ鎵�鏈夊鎴蜂笅锛堝姞鐩熷晢涓嬫墍鏈夐」鐩殑鍒嗙粍锛�
 		 */
-		
+
 		StringBuffer sql = new StringBuffer();
 		params.put("wfstate", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_WFSTATE_DELETE));
 		//鏌ヨ璇ヤ汉鍛樻墍灞炵殑椤圭洰
 		sql.append("SELECT D.* FROM SC_WORKFLOW_QUESTION E,WORKFLOW_BASE D,(SELECT B.ID,B.ROLENAME FROM AC_ROLE B WHERE B.STATE = 1   ");
-		
+
 		String customer_Id = params.get("customer_Id");
 		if(!StringUtil.isEmpty(customer_Id)){
 			sql.append(" AND B.CUSTOMER_ID = :customer_Id ");
@@ -3297,16 +3297,16 @@
 		sql.append(") C WHERE E.ID = D.BUSINESS_ID AND D.CURRENT_DEAL_ROLEIDA = C.ID AND D.WFSTATE != :wfstate AND (D.CURRENT_DEALER_ID IS NULL OR D.CURRENT_DEALER_ID = '' )");
 		StringBuilder builder = new StringBuilder(sql);
 		builder = getPoolSql(builder,params);
-		
+
 		builder.append(" AND D.BUSINESSTYPE = :businessType");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		builder.append(" ORDER BY D.CREATETIME DESC ");
 		PageInfo result = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params);
-		
+
 		return result;
 	}
-	
+
 	public StringBuilder getPoolSql(StringBuilder builder,Map<String, String> params){
 		String status = params.get("status");
 		if(StringUtil.notEmpty(status)) {
@@ -3320,20 +3320,20 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			builder.append(" AND D.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			builder.append(" AND D.WFNAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
-		
+
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			builder.append(" AND D.ORDER_CODE LIKE :orderCode");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
+
 		String customerName = params.get("customerName");
 		if(StringUtil.notEmpty(customerName)) {
 			builder.append(" AND D.CUSTOMER_NAME LIKE :customerName ");
@@ -3341,46 +3341,46 @@
 		}
 		return builder;
 	}
-	
+
 	@Override
 	public Map queryQuestionNodeCount(HttpServletRequest request) {
 		//鍒濆鍖栧彉閲�
 		int ywc = 0;
 		//闂鍙楃悊
 		int wtsl = 0;
-		
+
 		//闂瀹℃牳
 		int wtsh = 0;
-		
+
 		//闂璇婃柇
 		int wtzd = 0;
-		
+
 		//鏂规瀹℃壒
 		int fasp = 0;
-		
+
 		//鏂规瀹炴柦
 		int fass = 0;
-		
+
 		//闂鍥為【
 		int wthg = 0;
-		
-		
+
+
 		//鍙湁鏈嶅姟鍙板拰绠$悊浜哄憳鎵嶅彲浠ョ湅鍒版墍鏈夌殑宸ュ崟锛岋紙鎵�浠ユ煡璇㈠綋鍓嶇殑鐢ㄦ埛灞炰簬閭g鏈嶅姟鍙帮級
 		StringBuffer selectSql = new StringBuffer();
 		StringBuffer sql = new StringBuffer();
-		
+
 		Map paramMap = new HashMap();
-		selectSql.append( "SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.* FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT  NULL AND A.ID = B.BUSINESS_ID  "); 
-		sql.append( "SELECT COUNT(D.ID) FROM (SELECT A.*  FROM SC_WORKFLOW_QUESTION  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE  B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT NULL AND A.ID = B.BUSINESS_ID ");
+		selectSql.append( "SELECT COUNT(*) AS NUM,D.STATE FROM (SELECT A.ID,a.STATE FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B , WORKFLOW_NODE C  WHERE B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT  NULL AND A.ID = B.BUSINESS_ID  ");
+		sql.append( "SELECT COUNT(D.ID) FROM (SELECT A.ID  FROM SC_WORKFLOW_QUESTION  A,WORKFLOW_BASE B , WORKFLOW_NODE C WHERE  B.ID = C.FLOWID AND C.FLOWSTATE = 1  AND C.CURRENT_DEALER_ID IS NOT NULL AND A.ID = B.BUSINESS_ID ");
 		String customer_Id = request.getParameter("customerId");
 		if(!StringUtil.isEmpty(customer_Id)){
 			selectSql.append(" AND A.CUSTOMER_ID = :customer_Id ");
 			sql.append(" AND A.CUSTOMER_ID = :customer_Id ");
 			paramMap.put("customer_Id", customer_Id);
 		}
-		selectSql.append(" GROUP BY A.ID) D  GROUP BY D.STATE ");
+		selectSql.append(" GROUP BY A.ID,a.STATE) D  GROUP BY D.STATE ");
 		sql.append(" GROUP BY A.ID) D ");
-		
+
 		List<Map> list = baseDao.queryForList(selectSql.toString(),paramMap);
 		if(null!=list && list.size()>0) {
 			for(Map map : list) {
@@ -3398,40 +3398,40 @@
 					wtzd += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					fasp += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					fass += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					wthg += num;
 					continue;
 				}
-				
+
 			}
 		}
 		int all = baseDao.queryForInteger(sql.toString(), paramMap);
 		Map map = new HashMap();
 		map.put("wtsl", wtsl);
-		
+
 		map.put("wtsh", wtsh);
-		
+
 		map.put("wtzd", wtzd);
-		
+
 		map.put("fasp", fasp);
-		
+
 		map.put("fass", fass);
-		
+
 		map.put("wthg", wthg);
-		
+
 		map.put("all", all);
-		
+
 		return map;
 	}
 
@@ -3439,14 +3439,14 @@
 	public int queryQuestionOrderNodeCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB , WORKFLOW_NODE C   ");
+		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_QUESTION 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 ");
 		sqlpart = getNodeSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
 		sql.append( " GROUP BY B.ID  ) D");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
@@ -3455,19 +3455,19 @@
 			Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE , ");
+		sql.append("SELECT WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME, ");
 		sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ");
 		sql.append("FROM SC_WORKFLOW_QUESTION 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 ");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		sqlpart = getNodeSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
-		sql.append( " GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
-		
+		sql.append( " GROUP BY WB.ID, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME ORDER BY WB.CREATETIME DESC ");
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	public StringBuilder getNodeSql(StringBuilder sqlpart,Map<String, String> params){
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
@@ -3477,27 +3477,27 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract = params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri = params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -3515,9 +3515,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -3535,8 +3535,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -3554,7 +3554,7 @@
 				sqlpart.append(")");
 			}
 		}
-		
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -3576,16 +3576,16 @@
 		if(StringUtil.notEmpty(status)) {
 			sqlpart.append( " AND B.STATE = :state  ");
 			params.put("state", status);
-				
+
 		}
 		return sqlpart;
 	}
-	
+
 	@Override
 	public int queryQuestionJxzCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB   ");
+		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB   ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND WB.BUSINESSTYPE = :businessType  AND  (\n" +
 				"\tB.STATE != '9'\n" +
 				"\tAND B.STATE != '10'\n" +
@@ -3595,7 +3595,7 @@
 		sql.append(sqlpart);
 		sql.append( " GROUP BY B.ID  ) D");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
@@ -3604,7 +3604,7 @@
 			Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT WB.* ,B.STATE ,B.NAME ");
+		sql.append("SELECT  WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID, B.STATE , B.NAME  ");
 		sql.append("FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB LEFT JOIN WORKFLOW_NODE C ON C.FLOWID = WB.ID\n" +
 				"AND WB.CURRENT_NODE_ID = C.ID ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND WB.BUSINESSTYPE = :businessType AND (\n" +
@@ -3615,11 +3615,11 @@
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
 		sqlpart = getJxzSql(sqlpart,params);
 		sql.append(sqlpart);
-		sql.append( " GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
-		
+		sql.append( " GROUP BY  WB.ID,WB.WFNAME,WB.BUSINESSTYPE,WB.WFSTATE,WB.WORKFLOWTYPE,WB.CREATERNAME,WB.CREATERID,WB.CREATETIME,WB.ENDTIME,WB.MAINFLOWID,WB.CURRENT_NODE_NAME,WB.CURRENT_NODE_ID,WB.DEAL_TYPE,WB.CURRENT_DEALER_ID,WB.CURRENT_DEALER_NAME,WB.CURRENT_DEAL_ROLEIDA,WB.CURRENT_DEAL_ROLENAME,WB.WF_TEMPLATE_ID,WB.BUSINESS_ID,WB.ORDER_CODE,WB.CUSTOMER_ID,WB.CUSTOMER_NAME,WB.PROJECT_ID,WB.PROJECT_NAME,WB.SUB_CUSTOMER_NAME,WB.SUB_CUSTOMER_ID, B.STATE , B.NAME  ORDER BY WB.CREATETIME DESC ");
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	public  StringBuilder getJxzSql(StringBuilder sqlpart,Map<String, String> params){
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
@@ -3629,27 +3629,27 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName = params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode = params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract = params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri = params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -3667,9 +3667,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg = params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -3687,8 +3687,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source = params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -3706,8 +3706,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String sl = params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -3739,33 +3739,33 @@
 		int ywc = 0;
 		//闂鍙楃悊
 		int wtsl = 0;
-		
+
 		//闂瀹℃牳
 		int wtsh = 0;
-		
+
 		//闂璇婃柇
 		int wtzd = 0;
-		
+
 		//鏂规瀹℃壒
 		int fasp = 0;
-		
+
 		//鏂规瀹炴柦
 		int fass = 0;
-		
+
 		//闂鍥為【
 		int wthg = 0;
-		
-		
+
+
 		//鍙湁鏈嶅姟鍙板拰绠$悊浜哄憳鎵嶅彲浠ョ湅鍒版墍鏈夌殑宸ュ崟锛岋紙鎵�浠ユ煡璇㈠綋鍓嶇殑鐢ㄦ埛灞炰簬閭g鏈嶅姟鍙帮級
 		StringBuffer selectSql = new StringBuffer();
 		StringBuffer sql = new StringBuffer();
-		
+
 		Map paramMap = new HashMap();
 		selectSql.append( "SELECT COUNT(*) AS NUM,A.STATE FROM  SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B  LEFT JOIN WORKFLOW_NODE C ON B.ID = C.FLOWID\n" +
 				"AND B.CURRENT_NODE_ID = C.ID\n" +
 				"AND C.FLOWSTATE <> 3 WHERE A.ID = B.BUSINESS_ID AND B.WFSTATE = 1  AND C.FLOWSTATE is not null");
 		sql.append( "SELECT COUNT(A.ID)  FROM SC_WORKFLOW_QUESTION  A,WORKFLOW_BASE B  WHERE   A.ID = B.BUSINESS_ID");
-		
+
 		String customer_Id = request.getParameter("customerId");
 		if(!StringUtil.isEmpty(customer_Id)){
 			selectSql.append(" AND A.CUSTOMER_ID = :customer_Id ");
@@ -3773,7 +3773,7 @@
 			paramMap.put("customer_Id", customer_Id);
 		}
 		selectSql.append("  GROUP BY A.STATE ");
-		
+
 		List<Map> list = baseDao.queryForList(selectSql.toString(),paramMap);
 		if(null!=list && list.size()>0) {
 			for(Map map : list) {
@@ -3791,58 +3791,58 @@
 					wtzd += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASP)) {
 					fasp += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_FASS)) {
 					fass += num;
 					continue;
 				}
-				
+
 				if(state.equals(Constants.SC_WORKFLOW_QUESTION_STATE_HG)) {
 					wthg += num;
 					continue;
 				}
-				
+
 			}
 		}
 		sql.append(" AND A.STATE != '9' AND A.STATE !='7' AND A.STATE != '10'");
 		int all = baseDao.queryForInteger(sql.toString(), paramMap);
 		Map map = new HashMap();
 		map.put("wtsl", wtsl);
-		
+
 		map.put("wtsh", wtsh);
-		
+
 		map.put("wtzd", wtzd);
-		
+
 		map.put("fasp", fasp);
-		
+
 		map.put("fass", fass);
-		
+
 		map.put("wthg", wthg);
-		
+
 		map.put("all", all);
-		
+
 		return map;
 	}
-	
+
 	@Override
 	public int queryQuestionEndCount(Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.* FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB   ");
+		sql.append("SELECT COUNT(D.ID) FROM (SELECT B.ID FROM SC_WORKFLOW_QUESTION B,WORKFLOW_BASE WB   ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND WB.BUSINESSTYPE = :businessType  AND WB.WFSTATE = :type ");
 		params.put("type", params.get("type"));
-		
+
 		sqlpart = getEndSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
 		sql.append( " GROUP BY B.ID  ) D");
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		return baseDao.queryForInteger(sql.toString(),params);
 	}
 
@@ -3851,22 +3851,23 @@
 			Map<String, String> params) {
 		StringBuilder sql = new StringBuilder();
 		StringBuilder sqlpart = new StringBuilder();
-		sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
+		sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME, WB.ENDTIME , ");
+//		sql.append("SELECT B.RESOLVE_TYPE_NAME,B.CREATE_TIME,B.CREATE_USER_NAME,WB.ID,WB.ORDER_CODE,WB.WFNAME,WB.BUSINESSTYPE,WB.CREATERNAME,WB.CREATETIME,WB.WFNOTE ,WB.ENDTIME , ");
 		sql.append("WB.CURRENT_NODE_ID,WB.CURRENT_NODE_NAME,WB.CUSTOMER_NAME,WB.SUB_CUSTOMER_NAME,WB.PROJECT_NAME,WB.CURRENT_DEALER_NAME,WB.BUSINESS_ID,WB.WFSTATE,B.STATE ,B.NAME ,");
 		sql.append(" D.HANG_UP_USERNAME,D.HANG_UP_TIME,D.HANG_UP_REASON ,WB.SCORE ");
 		sql.append("FROM (SELECT F.*,E.SCORE FROM  WORKFLOW_BASE F LEFT JOIN ORDER_SATIS_INFO E ON F.ID = E.BUSINESS_ID WHERE  F.BUSINESSTYPE = :businessType ) WB, WORKFLOW_NODE C ,SC_WORKFLOW_QUESTION B LEFT JOIN HANG_UP_INFO D ON B.ID = D.BUS_ID ");
 		sqlpart.append(" WHERE WB.BUSINESS_ID = B.ID  AND  C.FLOWID = WB.ID AND WB.WFSTATE = :type ");
 		params.put("type", params.get("type"));
 		params.put("businessType", ConvertUtil.obj2StrBlank(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION));
-		
+
 		sqlpart = getEndSql(sqlpart,params);
-		
+
 		sql.append(sqlpart);
-		sql.append( " GROUP BY WB.ID ORDER BY WB.CREATETIME DESC ");
-		
+		sql.append( " GROUP BY WB.ID,B.RESOLVE_TYPE_NAME, B.CREATE_TIME, B.CREATE_USER_NAME, WB.ID, WB.ORDER_CODE, WB.WFNAME, WB.BUSINESSTYPE, WB.CREATERNAME, WB.CREATETIME, WB.ENDTIME , WB.CURRENT_NODE_ID, WB.CURRENT_NODE_NAME, WB.CUSTOMER_NAME, WB.SUB_CUSTOMER_NAME, WB.PROJECT_NAME, WB.CURRENT_DEALER_NAME, WB.BUSINESS_ID, WB.WFSTATE, B.STATE , B.NAME , D.HANG_UP_USERNAME, D.HANG_UP_TIME, D.HANG_UP_REASON , WB.SCORE ORDER BY WB.CREATETIME DESC ");
+
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
 	}
-	
+
 	public StringBuilder getEndSql(StringBuilder sqlpart,Map<String, String> params){
 		String customerId = params.get("customerId");
 		if(StringUtil.notEmpty(customerId)) {
@@ -3876,27 +3877,27 @@
 		if(StringUtil.notEmpty(subCustomerId)) {
 			sqlpart.append(" AND B.SUB_CUSTOMER_ID = :subCustomerId ");
 		}
-		
+
 		String orderName =  params.get("orderName");
 		if(StringUtil.notEmpty(orderName)) {
 			sqlpart.append(" AND B.NAME LIKE :orderName ");
 			params.put("orderName", "%"+orderName+"%");
 		}
-		
+
 		String orderCode =  params.get("orderCode");
 		if(StringUtil.notEmpty(orderCode)) {
 			sqlpart.append(" AND B.ORDER_CODE LIKE :orderCode ");
 			params.put("orderCode", "%"+orderCode+"%");
 		}
-		
-		
+
+
 		String contract =  params.get("contract");
 		if(StringUtil.notEmpty(contract)) {
 			sqlpart.append(" AND B.CONTACT_NAME LIKE :contract ");
 			params.put("contract", "%"+contract+"%");
 		}
-		
-		
+
+
 		String pri =  params.get("pri");
 		if(StringUtil.notEmpty(pri)) {
 			String[] pris = pri.split(",");
@@ -3914,9 +3915,9 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
-		
+
+
+
 		String dg =  params.get("dg");
 		if(StringUtil.notEmpty(dg)) {
 			String[] dgs = dg.split(",");
@@ -3934,8 +3935,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String source =  params.get("source");
 		if(StringUtil.notEmpty(source)) {
 			String[] sources = source.split(",");
@@ -3953,8 +3954,8 @@
 				sqlpart.append(")");
 			}
 		}
-		
-		
+
+
 		String sl =  params.get("sl");
 		if(StringUtil.notEmpty(sl)) {
 			String[] sls = sl.split(",");
@@ -3979,7 +3980,7 @@
 		}
 		return sqlpart;
 	}
-	
+
 	@Override
 	public String queryQuestionGroupDealer(HttpServletRequest request) {
 		String group_Id = request.getParameter("group_id");
@@ -4003,7 +4004,7 @@
 		}
 		return userName.toString();
 	}
-	
+
 	@Override
 	public String queryQuestionDealer(HttpServletRequest request) {
 		StringBuffer userName = new StringBuffer();
@@ -4022,6 +4023,6 @@
 		return userName.toString();
 	}
 
-		
+
 
 }
diff --git a/src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java b/src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java
index ad513ef..3db47f5 100644
--- a/src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java
+++ b/src/cn/ksource/web/facade/releaseManage/ReleaseFacadeImpl.java
@@ -1,15 +1,5 @@
 package cn.ksource.web.facade.releaseManage;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Repository;
-
 import cn.ksource.beans.GG_RECORD;
 import cn.ksource.beans.SC_WORKFLOW_RELEASE;
 import cn.ksource.beans.WORKFLOW_BASE;
@@ -18,7 +8,6 @@
 import cn.ksource.core.dao.SqlParameter;
 import cn.ksource.core.util.ConvertUtil;
 import cn.ksource.core.util.DateUtil;
-import cn.ksource.core.util.JsonUtil;
 import cn.ksource.core.util.StringUtil;
 import cn.ksource.core.util.TreeUtil;
 import cn.ksource.core.web.SysInfoMsg;
@@ -33,7 +22,15 @@
 import cn.ksource.web.service.WorkOrderCodeService;
 import cn.ksource.web.service.record.RecordService;
 import cn.ksource.web.service.workFlowSupport.WorkFlowSupportService;
-	
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @SuppressWarnings("unchecked")
 @Repository
 public class ReleaseFacadeImpl implements ReleaseFacade{
@@ -43,17 +40,17 @@
 	private DSLFacade dslFacade;
 	@Autowired
 	private ChangeFacade changeFacade;
-	
+
 	@Autowired
 	private WorkOrderCodeService workOrderCodeService;
-	
+
 	@Autowired
 	private WorkFlowSupportService workFlowSupportService;
 	@Autowired
 	private RecordService recordService;
 	@Autowired
 	private WorkflowCoreService workflowCoreService;
-	
+
 	/**
 	 * 鑾峰彇鎴戠殑鍙戝竷绠$悊鏁版嵁
 	 * @param request
@@ -88,7 +85,7 @@
 			.addValue("startDate", startDate+"000000")
 			.addValue("endDate", endDate+"666666");
 
-		
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" select r.NAME,b.CURRENT_DEALER_NAME,r.PROJECT_NAME,r.RELEASE_REASON,n.*,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
 		builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -101,11 +98,11 @@
 		builder.append(" 	where CURRENT_DEALER_ID = :userId  ");
 				//鐜妭鐘舵��
 				if(StringUtil.isNotBlank(nodeState)){
-					builder.append("and FLOWSTATE =:nodeState ");	
+					builder.append("and FLOWSTATE =:nodeState ");
 				}
 		builder.append(" 	order by FLOWSTATE asc  ");
 		builder.append(" 	) t  ");
-		builder.append(" 	group by FLOWID ");
+		builder.append(" 	group by FLOWID,NODEID,NODETIME,NODESTATE ");
 		builder.append(" ) n  ");
 		builder.append("  on b.ID = n.FLOWID ");
 		//builder.append(" where  b.PARTNER_ID =:partnerId ");
@@ -114,9 +111,9 @@
 		//宸ュ崟鐘舵��
 		if(StringUtil.notEmpty(flowState)) {
 			builder.append(" AND b.WFSTATE =:flowState ");
-			
+
 		}
-		
+
 		//瀹㈡埛
 		if(StringUtil.isNotBlank(customerId)) {
 			builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -129,7 +126,7 @@
 		if(StringUtil.isNotBlank(projectId)) {
 			builder.append(" AND b.PROJECT_ID = :projectId ");
 		}
-		
+
 		if(StringUtil.notEmpty(orderCode)) {
 			builder.append(" AND r.ORDER_CODE LIKE :orderCode");
 		}
@@ -145,13 +142,13 @@
 
 
 		builder.append(" order by n.NODESTATE ASC,n.NODETIME desc,b.CREATETIME desc ");
-		
+
 		Map supportMap = new HashMap();
 		supportMap.put("sql", builder.toString());
 		supportMap.put("param", param);
 		return supportMap;
 	}
-	
+
 	@Override
 	public int queryMyRealseCount(HttpServletRequest request) {
 		Map supportMap = getMyRealseSupportMap(request);
@@ -167,7 +164,7 @@
 		SqlParameter param = (SqlParameter)supportMap.get("param");
 		return baseDao.queryforSplitPage(request, sql, param);
 	}
-	
+
 	@Override
 	public List queryLinkDeviceList(String flowId) {
 		String sql = " select c.id,c.ciname,c.position,c.SEARCHCODE seachcode from cmdb_ci_base c " +
@@ -189,13 +186,13 @@
 		}
 		return list;
 	}
-	
+
 	@Override
 	public Map getChangeInfoById(String changeId) {
 		String sql = "select oa_id,id change_id,name,customer_id,customer_name,project_id,project_name from sc_workflow_change where id = :changeId ";
 		return baseDao.queryForMap(sql, new SqlParameter("changeId", changeId));
 	}
-	
+
 	@Override
 	public String saveRelease(HttpServletRequest request, SC_WORKFLOW_RELEASE release) {
 		String orderId = request.getParameter("orderId");
@@ -258,7 +255,7 @@
 
 		String[] linkOrderIds = request.getParameterValues("linkOrderId");
 		String[] linkDeviceIds = request.getParameterValues("linkDeviceId");
-		
+
 		if(StringUtil.isBlank(flowId)||flowId.equals(orderId)){
 			String sql = " update sc_workflow_release set flow_id = :orderId where id=:orderId ";
 			baseDao.execute(sql, new SqlParameter("orderId",orderId));
@@ -272,7 +269,7 @@
 		//saveSysInfo(orderId,sysInfoJson);
 		return orderId;
 	}
-	
+
 	@Override
 	public SysInfoMsg doOrganizationDSL(HttpServletRequest request){
 		String orderId = request.getParameter("orderId");
@@ -322,7 +319,7 @@
 			sql = " update DSL_ORDER_LINK set FLOW_ID = :flowId where FLOW_ID = :orderId ";
 			baseDao.execute(sql, param);
 		}
-		
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content("鍒涘缓鍙戝竷锛�"+userName+"鍒涘缓浜嗗彂甯冩祦绋�");
@@ -331,10 +328,10 @@
 		record.setDeal_user_name(userName);
 		record.setBusiness_id(flowId);
 		recordService.addRecord(record);
-		
+
 		return msg;
 	}
-	
+
 	@Override
 	public Map getDSLInfo(String configureId, String thirdCateId, String flowId, String partnerId) {
 		SqlParameter param = new SqlParameter();
@@ -342,7 +339,7 @@
 			.addValue("thirdCateId", thirdCateId)
 			.addValue("flowId", flowId)
 			.addValue("partnerId", partnerId);
-		
+
 		StringBuilder builder = new StringBuilder();
 		//鏌ヨdsl鍩烘湰淇℃伅
 		builder.append(" select id,pid,'name',note,lv from CONFIG_DSL where state=1 and THIRD_CATEGORY_ID=:thirdCateId and PARTNER_ID=:partnerId order by lv,sort_id asc ");
@@ -366,7 +363,7 @@
 		root.put("versionNo",versionNo);
 		return root;
 	}
-	
+
 	@Override
 	public Map getNextNode(Map<String, String> params) {
 		String nodeId = params.get("nodeId");
@@ -395,7 +392,7 @@
 		nextNode.put("curTemplateId", templateId);
 		return nextNode;
 	}
-	
+
 	@Override
 	public SysInfoMsg doApproveAssign(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -412,7 +409,7 @@
 			return doReleaseNotice(request);
 		/*}*/
 	}
-	
+
 	@Override
 	public SysInfoMsg doReleaseNotice(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -422,16 +419,16 @@
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userName = user.get("ZSXM").toString();
 		String userId = user.get("Id").toString();
-		
+
 		SC_WORKFLOW_RELEASE release = new SC_WORKFLOW_RELEASE(orderId).getInstanceById();
-		
+
 		List<Map> userList = new ArrayList<Map>();
 	    Map executorMap = new HashMap();
 		executorMap.put("USER_ID", release.getExecute_id());
 		executorMap.put("USER_NAME", release.getExecute_name());
 		executorMap.put("IS_ADMIN", "1");
 		userList.add(executorMap);
-		
+
 		WorkFlowSupportEntity support = new WorkFlowSupportEntity();
 		support.setFlowId(flowId);
 		support.setNodeId(nodeId);
@@ -442,7 +439,7 @@
 		support.setNextNodeTemplateId(Constants.RELEASE_EXECUTE);
 		support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
 		SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
-		
+
 		//澧炲姞澶勭悊璁板綍
 		String dealUserName="";
 		for(Map map:userList){
@@ -459,10 +456,10 @@
 		record.setDeal_user_name(userName);
 		record.setBusiness_id(flowId);
 		recordService.addRecord(record);
-		
+
 		return msg;
 	}
-	
+
 	@Override
 	public SysInfoMsg doReleaseExec(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -490,16 +487,16 @@
 		support.setUserName(userName);
 		support.setUserId(userId);
 		support.setNote(flowNote);
-		
+
 		support.setEverDealflag(true);
 		support.setEverNodeTemplateId(Constants.RELEASE_APPROVE);
 		support.setNextNodeTemplateId(Constants.RELEASE_APPROVAL);
 		support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
 		SysInfoMsg msg = workFlowSupportService.doOrderFlow(support);
-		
+
 		//鏌ヨ鍙戝竷瀹℃壒涓昏礋璐d汉()
 		Map<String, String> lastNode = changeFacade.queryUserByTemplateId(flowId, Constants.RELEASE_APPROVE);
-		
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content("宸ュ崟娴佽浆锛�"+userName+"灏嗗伐鍗曞彂閫佺粰浜�"+lastNode.get("CURRENT_DEALER_NAME"));
@@ -508,7 +505,7 @@
 		record.setDeal_user_name(userName);
 		record.setBusiness_id(flowId);
 		recordService.addRecord(record);
-		
+
 		return msg;
 	}
 
@@ -520,7 +517,7 @@
 		String nodeId = request.getParameter("nodeId");
 		String flowId = request.getParameter("flowId");
 		String flowNote = request.getParameter("flowNote");
-		
+
 		Map user = WebUtil.getLoginUser(request).getLoginUser();
 		String userName = user.get("ZSXM").toString();
 		String userId = user.get("Id").toString();
@@ -568,12 +565,12 @@
 			return null;
 		}
 	}
-	
+
 	@Override
 	public void doOrderFinish(HttpServletRequest request){
 		String orderId = request.getParameter("orderId");
-		String nodeId = request.getParameter("nodeId"); 
-		String flowNote = request.getParameter("flowNote"); 
+		String nodeId = request.getParameter("nodeId");
+		String flowNote = request.getParameter("flowNote");
 		String sucessFlag = request.getParameter("sucessFlag");
 		if (StringUtil.isBlank(sucessFlag)) {
 			sucessFlag = "1";
@@ -596,7 +593,7 @@
 		support.setFlowEndflag(true);
 		support.setWorkFlowType(Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
 		workFlowSupportService.doOrderFlow(support);
-		
+
 		//淇濆瓨dsl鎿嶄綔璁板綍
 		dslFacade.saveConfigDslDealRecord(flowId);
 		//鏇存柊dsl鍏崇郴
@@ -614,13 +611,13 @@
 		record.setBusiness_id(flowId);
 		recordService.addRecord(record);
 	}
-	
+
 	@Override
 	public List querySysInfoList(String orderId) {
 		String sql = " select * from SC_WORKFLOW_RELEASE_BUSINESS_SYS where BUSINESS_ID = :orderId" ;
 		return baseDao.queryForList(sql,new SqlParameter().addValue("orderId", orderId));
 	}
-	
+
 	@Override
 	public boolean doAnswer(HttpServletRequest request) {
 		String flowId = request.getParameter("flowId");
@@ -634,7 +631,7 @@
 		boolean flag = workflowCoreService.answerNode(base, node, entity);
 		return flag;
 	}
-	
+
 	@Override
 	public SysInfoMsg doSendBack(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -656,7 +653,7 @@
 		SysInfoMsg msg = workFlowSupportService.doOrderSendback(support);
 		return msg;
 	}
-	
+
 	@Override
 	public void doCloseFlow(HttpServletRequest request) {
 		String orderId = request.getParameter("orderId");
@@ -673,7 +670,7 @@
 		WORKFLOW_NODE node = new WORKFLOW_NODE(nodeId).getInstanceById();
 		workflowCoreService.finishNode(base, node, finishEntity);
 		workflowCoreService.closeWorkFlow(base);
-		
+
 		String flowId = base.getId();
 		//淇濆瓨dsl鎿嶄綔璁板綍
 		dslFacade.saveConfigDslDealRecord(flowId);
@@ -683,7 +680,7 @@
 		changeFacade.saveRelationWhenClose(flowId);
 		//鍒犻櫎鍙樻洿涓殑閰嶇疆鍏崇郴
 		changeFacade.delRelationWhenClose(flowId);
-				
+
 		//澧炲姞澶勭悊璁板綍
 		GG_RECORD record = new GG_RECORD();
 		record.setDeal_content("宸ュ崟鍏抽棴锛�"+userName+"鍏抽棴浜嗗伐鍗�");
@@ -693,14 +690,14 @@
 		record.setBusiness_id(node.getFlowid());
 		recordService.addRecord(record);
 	}
-	
+
 	@Override
 	public Map getSurveyNum(HttpServletRequest request) {
 		Map result = new HashMap();
 		//String partnerId = WebUtil.getLoginedPartnerId(request);
 		SqlParameter param = new SqlParameter();
 		param.addValue("businessType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_RELEASE);
-		
+
 		List<Map> projects = new ArrayList<Map>();
 		//projects = WebUtil.getProjects(request);
 		StringBuilder builder = new StringBuilder();
@@ -730,7 +727,7 @@
 		}
 		return result;
 	}
-	
+
 	@Override
 	public List<Map> queryRealseData(HttpServletRequest request) {
 		StringBuilder builder = new StringBuilder();
@@ -799,7 +796,7 @@
 		String sql = "select count(*) from ( " + builder.toString() + " ) t" ;
 		return baseDao.queryForInteger(sql.toString(),paramMap);
 	}
-	
+
 	/**
 	 * 鏈嶅姟鍙板伐鍗曞垪琛�
 	 * @param request
@@ -813,17 +810,17 @@
 		String nodeTemplateId = request.getParameter("nodeTemplateId");
 		String nodeTempId = request.getParameter("nodeTempId");
 
-		
+
 		/*List<Map> projects = new ArrayList<Map>();
 		if(StringUtil.notEmpty(customerId) && StringUtil.notEmpty(projectId)) {
-			
+
 		} else if (StringUtil.notEmpty(customerId) && !StringUtil.notEmpty(projectId)) {
 			//閫氳繃褰撳墠瀹㈡埛鏌ヨ鍑烘墍鏈夌殑椤圭洰淇℃伅
 			projects = slaProjectFacade.queryProjects(request, customerId);
 		} else {
 			projects = WebUtil.getProjects(request);
 		}*/
-		
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" select n.FLOWSTATE NODESTATE,b.CURRENT_DEALER_NAME,b.PROJECT_NAME,r.RELEASE_REASON,b.ID FLOWID,b.WFNAME,b.CREATERNAME,b.CREATETIME,b.CURRENT_NODE_NAME,b.BUSINESSTYPE, ");
 		builder.append(" r.ORDER_CODE,r.ID ORDERID,b.CUSTOMER_NAME,b.SUB_CUSTOMER_NAME,B.WFSTATE  ");
@@ -840,15 +837,15 @@
 		if(StringUtil.isNotBlank(nodeTemplateId)){
 			builder.append(" and n.NODE_TEMPLATE_ID IS NOT NULL and  n.NODE_TEMPLATE_ID =:nodeTemplateId and b.WFSTATE = 1 ");
 		}
-		
-		
+
+
 		/*if(StringUtil.notEmpty(customerId) && StringUtil.notEmpty(projectId)) {
 			builder.append(" AND b.CUSTOMER_ID = :customerId AND b.PROJECT_ID = :projectId ");
 		} else {
 			builder = getProjectSql(builder,projects);
 		}*/
-		
-		
+
+
 		//瀹㈡埛
 		if(StringUtil.isNotBlank(customerId)) {
 			builder.append(" AND b.CUSTOMER_ID = :customerId ");
@@ -856,7 +853,7 @@
 		//涓嬪睘鍗曚綅
 		if(StringUtil.isNotBlank(subCustomerId)) {
 			builder.append(" AND b.SUB_CUSTOMER_ID = :subCustomerId ");
-			
+
 		}
 		//宸ュ崟缂栧彿
 		String orderCode = request.getParameter("orderCode");
@@ -884,8 +881,8 @@
 		if(StringUtil.notEmpty(nodeTempId)) {
 			builder.append(" AND EXISTS (SELECT n.ID FROM WORKFLOW_NODE n WHERE b.CURRENT_NODE_ID = n.ID AND n.NODE_TEMPLATE_ID = :nodeTempId ) ");
 		}
-		
-		builder.append(" order by b.CREATETIME desc ");		
+
+		builder.append(" order by b.CREATETIME desc ");
 		return builder;
 	}
 
diff --git a/src/cn/ksource/web/facade/servicelist/SlaProjectFacadeImpl.java b/src/cn/ksource/web/facade/servicelist/SlaProjectFacadeImpl.java
index 8e15191..ce5d8a1 100644
--- a/src/cn/ksource/web/facade/servicelist/SlaProjectFacadeImpl.java
+++ b/src/cn/ksource/web/facade/servicelist/SlaProjectFacadeImpl.java
@@ -1,15 +1,5 @@
 package cn.ksource.web.facade.servicelist;
 
-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.CONFIG_DATA_DICTIONARY;
 import cn.ksource.beans.CUSTOMER_CONTACTS;
 import cn.ksource.beans.SC_SERVCE_CATEGORY;
@@ -24,6 +14,14 @@
 import cn.ksource.web.SysConstants;
 import cn.ksource.web.facade.incident.IncidentFacade;
 import cn.ksource.web.service.UserService;
+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;
 
 
 
@@ -42,7 +40,7 @@
 	@Override
 	public PageInfo queryProjectContacts(Map<String, String> params,
 			PageInfo pageInfo) {
-		StringBuilder sql = new StringBuilder("SELECT DISTINCT * FROM CUSTOMER_CONTACTS WHERE  CUSTOMER_ID = :customerId");
+		StringBuilder sql = new StringBuilder("SELECT  DISTINCT ID , CUSTOMER_ID , CONTACT_NAME , YWKS , ZW , TELEPHONE , MOBILE , LEVEL_ID , LEVEL_NAME , IS_SATIS , STATE , LOGIN_NAME , PASSWORD , EMAIL , QQ_OPEN_ID , ISEMAIL , ISPHONE , ALLOW_LOGIN , WECHAT_OPEN_ID , SUB_CUSTOMER_ID , SUB_CUSTOMER_NAME , CONTACTS_TYPE , IME   FROM CUSTOMER_CONTACTS WHERE  CUSTOMER_ID = :customerId");
 		queryProjectContactsIf(params, sql);
 		sql.append(" ORDER BY ALLOW_LOGIN ASC,IS_SATIS DESC,STATE ASC");
 		return baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
diff --git a/src/cn/ksource/web/facade/workReport/WorkReportFacadeImpl.java b/src/cn/ksource/web/facade/workReport/WorkReportFacadeImpl.java
index be79802..dac3140 100644
--- a/src/cn/ksource/web/facade/workReport/WorkReportFacadeImpl.java
+++ b/src/cn/ksource/web/facade/workReport/WorkReportFacadeImpl.java
@@ -26,12 +26,12 @@
 	@Autowired
 	private DataDictionaryService dicService;
 
-	
+
 	@Override
 	public List<Map> getWeekByYear(String year) {
 		Calendar calendar = Calendar.getInstance();
 		calendar.set(Calendar.YEAR, Integer.valueOf(year));
-		List<Map> list = new ArrayList<Map>(); 
+		List<Map> list = new ArrayList<Map>();
 		int count = DateUtil.getWeekNumByYear(Integer.valueOf(year));
 		SimpleDateFormat sf=new SimpleDateFormat("yyyy/MM/dd");
 		if(count>0){
@@ -51,7 +51,7 @@
 
 	@Override
 	public List<Map> getWeekByMonth(String date){
-		List<Map> list = new ArrayList<Map>(); 
+		List<Map> list = new ArrayList<Map>();
 		int count = DateUtil.getWeekNumByMonth(date);
 		SimpleDateFormat sf=new SimpleDateFormat("yyyy/MM/dd");
 		if(count>0){
@@ -65,7 +65,7 @@
 				String beginDay = DateUtil.format("yyyy/MM/dd", DateUtil.getMonthWeekFirstDay(date,i));
 				String endDay = DateUtil.format("yyyy/MM/dd", DateUtil.getMonthWeekEndDay(date,i));
 				int weekNum = DateUtil.getYearWeekNum(date,i);
-				
+
 				map.put("val", date.substring(0,4)+weekNum);
 				map.put("beginDay", beginDay);
 				map.put("endDay", endDay);
@@ -74,10 +74,10 @@
 		}
 		return list;
 	}
-	
+
 	@Override
 	public List<Map> getMonthByYear(String year) {
-		List<Map> list = new ArrayList<Map>(); 
+		List<Map> list = new ArrayList<Map>();
 		for(int i=1;i<=12;i++){
 			Map map = new HashMap();
 			map.put("name", year+"骞�"+i+"鏈�");
@@ -96,9 +96,9 @@
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
-		
+
 		sql.append(" select wfstate data_name,businesstype cate_id,count(id) num from workflow_base where wfstate in (1,2,3,4) ");
-		setWhereSql(sql,"createtime",selDate,statisType,param);
+		setWhereSql(sql,"to_date(createtime,'YYYYMMDDHH24MISS')",selDate,statisType,param);
 		sql.append(" and customer_id=:cusId  group by wfstate,businesstype order by businesstype,wfstate");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		Map<String,Map> dataSetMap = new HashMap();
@@ -130,23 +130,23 @@
 		System.out.println("chartMap"+JsonUtil.map2Json(chartMap));
 		return chartMap;
 	}
-	
+
 	@Override
 	public Map getOrderSurveyTable(String selDate,String statisType, String cusId) {
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
-		
+
 		sql.append(" select wfstate data_name,businesstype cate_id,count(id) num from workflow_base where wfstate in (1,2,3,4) ");
-		setWhereSql(sql,"createtime",selDate,statisType,param);
+		setWhereSql(sql,"to_date(createtime,'YYYYMMDDHH24MISS')",selDate,statisType,param);
 		sql.append(" and customer_id=:cusId  group by businesstype,wfstate ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		sql.setLength(0);
 		sql.append(" SELECT businesstype cate_id,count(id) num FROM workflow_base WHERE customer_id = :cusId ");
-		setWhereSql(sql,"createtime",selDate,statisType,param);
+		setWhereSql(sql,"to_date(createtime,'YYYYMMDDHH24MISS')",selDate,statisType,param);
 		sql.append(" group by businesstype ");
 		List<Map> extendList = baseDao.queryForList(sql.toString(),param);
-		
+
 		Map dataSetMap = new HashMap();
 		Map extendSetMap = new HashMap();
 		for(Map map:dataList){
@@ -157,7 +157,7 @@
 		}
 		//鑾峰彇宸ュ崟绫诲瀷List
 		List<Map> cateList =  getOrderCateList();
-		
+
 		List<String> labelList = new ArrayList<String>();
 		List<List<String>> tableDataList = new ArrayList<List<String>>();
 		//缁勭粐琛ㄥご
@@ -176,14 +176,14 @@
 				String key = cate.get("key").toString();
 				List<String> tempList = new ArrayList<String>();
 				tempList.add(cate.get("val").toString());
-				
+
 				if(extendSetMap.get(key)!=null){
 					tempList.add(((Map)extendSetMap.get(key)).get("num").toString());
 					totalNum = totalNum + Integer.valueOf(((Map)extendSetMap.get(key)).get("num").toString());
 				}else{
 					tempList.add("0");
 				}
-				
+
 				key = "1" + "_" + cate.get("key").toString() ;
 				if(dataSetMap.get(key)!=null){
 					tempList.add(((Map)dataSetMap.get(key)).get("num").toString());
@@ -234,9 +234,9 @@
 		tableMap.put("dataList", tableDataList);
 		return tableMap;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 鑾峰彇宸ュ崟绫诲瀷鍒楄〃
 	 * @author chenlong
@@ -268,7 +268,7 @@
 		}
 		return cateList;
 	}
-	
+
 	/**
 	 * 缁勮绫诲瀷鏌ヨ鏉′欢
 	 * @author chenlong
@@ -311,9 +311,9 @@
 		if(statisType.equals("month")){
 			sql.append(" and month =:selDate ");
 		}else if(statisType.equals("year")){
-			sql.append(" and left(month,4) =:selDate ");	
+			sql.append(" and left(month,4) =:selDate ");
 		}else if(statisType.equals("quarter")){
-			sql.append(" and concat(left(month,4),quarter(concat(month,'01'))) =:selDate ");	
+			sql.append(" and concat(left(month,4),quarter(concat(month,'01'))) =:selDate ");
 		}
 		sql.append(" order by update_time desc ");
 		Double y = baseDao.queryForDouble(sql.toString(), param);
@@ -330,7 +330,7 @@
 		SqlParameter param = new SqlParameter();
 		param.put("cus_id", cusId);
 		param.put("selDate", selDate);
-		
+
 		sql.append("SELECT AVG(A.ALL_SCORE) AS ALL_SCORE ,B.CUSTOMER_NAME,B.YWJL_NAME,B.ID FROM TOTLE_SATIS_INFO A,SC_PARTNER_CUSTOMER_INFO B WHERE A.CUSTOMER_ID = B.ID AND A.CUSTOMER_ID = :cus_id ");
 		if(statisType.equals("month")){
 			sql.append(" AND A.MONTH =:selDate ");
@@ -339,9 +339,9 @@
 		}else if(statisType.equals("quarter")){
 			sql.append(" AND CONCAT(left(month,4),quarter(CONCAT(month,'01'))) =:selDate ");
 		}
-		sql.append(" GROUP BY A.CUSTOMER_ID");
+		sql.append(" GROUP BY A.CUSTOMER_ID,B.CUSTOMER_NAME, B.YWJL_NAME, B.ID");
 		Map map = baseDao.queryForMap(sql.toString(),param);
-		
+
 		StringBuffer detailsql = new StringBuffer("SELECT A.CUSTOMER_ID,B.SATIS_TYPE,SUM(B.ALL_COUNT) AS ALL_COUNT,SUM(SATIS_COUNT) AS SATIS_COUNT,AVG(FG_RATE) AS FG_RATE,AVG(REQUEST_FG_RATE) AS REQUEST_FG_RATE,AVG(SATIS_SCORE) AS SATIS_SCORE,AVG(REQUEST_SATIS_SCORE) AS REQUEST_SATIS_SCORE,AVG(SATIS_QZ) AS SATIS_QZ FROM TOTLE_SATIS_INFO A,TOTLE_SATIS_DETAIL B WHERE  A.ID = B.BUS_ID AND A.CUSTOMER_ID = :cus_id    ");
 		if(statisType.equals("month")){
 			detailsql.append(" AND A.MONTH =:selDate ");
@@ -369,15 +369,15 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,type_id,type_name from sc_workflow_incident where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
-		sql.append(" group by type_id ");
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
+		sql.append(" group by type_id,type_name ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("type_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -428,7 +428,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("satis_type").toString(), data);
 			}
-			
+
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
 			categories.add("鍒嗘暟");
@@ -461,10 +461,10 @@
 					tempMap.put("data", tempList);
 					series.add(tempMap);
 				}
-				
+
 			}
-			
-			
+
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
@@ -481,15 +481,15 @@
 			 df = new SimpleDateFormat("yyyyw");
 		}
 		Calendar cal = Calendar.getInstance();
-		cal.setMinimalDaysInFirstWeek(7); 
-		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓� 
-		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮� 
+		cal.setMinimalDaysInFirstWeek(7);
+		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓�
+		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮�
 		try {
 			cal.setTime(df.parse(selDate));
 		} catch (ParseException e) {
 			e.printStackTrace();
 		}
-		
+
 		if(statisType.equals("month")){
 			cal.add(Calendar.MONTH, -1);
 		}else if(statisType.equals("week")){
@@ -499,32 +499,36 @@
         if(statisType.equals("quarter")){
         	lastDate = getLastQuarter(selDate);
 		}
-		
+
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
 		param.put("selDate",selDate);
 		param.put("lastDate",lastDate);
 		param.put("busType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT);
-		
-		
+
+
+		String groupByStr = "";
 		if(statisType.equals("month")){
-			sql.append(" select date_format(createtime,'%Y%m') cate_id,");
+			sql.append(" select date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m') cate_id,");
+			groupByStr="date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m')";
 		}else if(statisType.equals("week")){
-			sql.append(" select concat(year(createtime),week(createtime,5)) cate_id,");
+			sql.append(" select concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),week(to_date(createtime,'YYYYMMDDHH24MISS'),5)) cate_id,");
+			groupByStr = "concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),week(to_date(createtime,'YYYYMMDDHH24MISS'),5))";
 		}else if(statisType.equals("quarter")){
-			sql.append(" select concat(year(createtime),quarter(createtime)) cate_id,");
+			sql.append(" select concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),quarter(to_date(createtime,'YYYYMMDDHH24MISS'))) cate_id,");
+			groupByStr = "concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),quarter(to_date(createtime,'YYYYMMDDHH24MISS')))";
 		}
 		sql.append(" wfstate data_name,count(id) num from workflow_base where wfstate in (1,2,3,4) and businesstype=:busType ");
 		if(statisType.equals("month")){
-			sql.append(" and (date_format(createtime,'%Y%m') = :selDate or date_format(createtime,'%Y%m')=:lastDate) ");
+			sql.append(" and (date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m') = :selDate or date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m')=:lastDate) ");
 		}else if(statisType.equals("week")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (week(createtime,5) = substring(:selDate,5) or week(createtime,5)=substring(:lastDate,5) ) ");
+			sql.append(" and year(to_date(createtime,'YYYYMMDDHH24MISS'))=left(:selDate,4) and (week(to_date(createtime,'YYYYMMDDHH24MISS'),5) = substring(:selDate,5) or week(to_date(createtime,'YYYYMMDDHH24MISS'),5)=substring(:lastDate,5) ) ");
 		}else if(statisType.equals("quarter")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (quarter(createtime) = substring(:selDate,5) or quarter(createtime)=substring(:lastDate,5) ) ");
+			sql.append(" and year(to_date(createtime,'YYYYMMDDHH24MISS'))=left(:selDate,4) and (quarter(to_date(createtime,'YYYYMMDDHH24MISS')) = substring(:selDate,5) or quarter(to_date(createtime,'YYYYMMDDHH24MISS'))=substring(:lastDate,5) ) ");
 		}
-		
-		sql.append(" and customer_id=:cusId  group by cate_id,data_name ");
+
+		sql.append(" and customer_id=:cusId  group by " + groupByStr +",wfstate ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 
 		Map<String,Map> dataSet = new HashMap();
@@ -567,7 +571,7 @@
 			}
 			sql.append(" group by cate_id ");
 			List<Map> extendList = baseDao.queryForList(sql.toString(),param);
-			
+
 			Map dataSetMap = new HashMap();
 			Map extendSetMap = new HashMap();
 			for(Map map:dataList){
@@ -576,7 +580,7 @@
 			for(Map map:extendList){
 				extendSetMap.put(map.get("cate_id"), map);
 			}
-			
+
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
 			if(statisType.equals("month")){
@@ -589,7 +593,7 @@
 				categories.add("涓婂搴�");
 				categories.add("鏈搴�");
 			}
-			
+
 			for(int i=0;i<4;i++){
 				Map tempMap = new HashMap();
 				List tempList = new ArrayList();
@@ -608,7 +612,7 @@
 					if(j==1){
 						key = selDate;
 					}
-					
+
 					if(i==0){
 						if(extendSetMap.get(key)!=null){
 							tempList.add(((Map)extendSetMap.get(key)).get("num"));
@@ -625,7 +629,7 @@
 				}
 				tempMap.put("data", tempList);
 				series.add(tempMap);
-				
+
 			}
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
@@ -644,7 +648,7 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,source_id from sc_workflow_incident where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by source_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
@@ -652,7 +656,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("source_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.INCIDENT_SOURCE);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -680,16 +684,16 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,resolve_type_id from sc_workflow_incident where customer_id = :cusId and resolve_type_id is not null ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by resolve_type_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("resolve_type_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.CLOSE_REASON);
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
@@ -719,12 +723,12 @@
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId", cusId);
-		sql.append(" select TRUNCATE((total_num-IFNULL(outtime_num,0))*100/total_num,2) ontime_rate from ( ");
+		sql.append(" select case when total_num=0 then 0 else TRUNCATE((total_num-IFNULL(outtime_num,0))*100/total_num,2) end ontime_rate from ( ");
 		sql.append(" 	select count(id) total_num from sc_workflow_incident where customer_id = :cusId  ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" ) mtotal, ( ");
 		sql.append(" 	select count(id) outtime_num from sc_workflow_incident where customer_id = :cusId and (answer_timeout=1 or deal_timeout=1)  ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" ) mfinish ");
 		Double y = baseDao.queryForDouble(sql.toString(), param);
 		Map chartMap = new HashMap();
@@ -743,16 +747,16 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,sla_id from sc_workflow_incident where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by sla_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("sla_id"), data);
 			}
-			
+
 			sql.setLength(0);
 			sql.append(" select id,level_name from sc_sla where  state=1 order by serial asc");
 			List<Map> dicList = baseDao.queryForList(sql.toString(), param);
@@ -779,49 +783,49 @@
 		SqlParameter param = new SqlParameter();
 		param.put("cusId", cusId);
 		param.put("nodeTemplateId", Constants.YXCL);
-		List<String> lebalList = new ArrayList<String>();  
-		List<List<String>> dataList = new ArrayList<List<String>>();  
-		
+		List<String> lebalList = new ArrayList<String>();
+		List<List<String>> dataList = new ArrayList<List<String>>();
+
 		StringBuilder sql = new StringBuilder();
 		sql.append(" select mtotal.THIRD_CATEGORY_NAME,total_num,IFNULL(answer_num,0) answer_num,IFNULL(activi_num,0) activi_num,IFNULL(finish_num,0) finish_num,IFNULL(timeout_num,0) timeout_num,  ");
 		sql.append(" IFNULL(pri_num,0) pri_num,IFNULL(ques_num,0) ques_num,IFNULL(avg_time,0) avg_time,truncate(IFNULL(first_num, 0)*100/total_num,2) first_rate,truncate((total_num-IFNULL(timeout_num, 0))*100/total_num,2) ontime_rate  from  ");
 		sql.append(" (select THIRD_CATEGORY_NAME,count(id) total_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT where customer_id=:cusId ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
-		sql.append(" group by THIRD_CATEGORY_ID) mtotal   ");
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
+		sql.append(" group by THIRD_CATEGORY_ID,THIRD_CATEGORY_NAME) mtotal   ");
 		sql.append(" left join (select count(i.id) answer_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and n.FLOWSTATE=1 and i.customer_id=:cusId ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) manswer  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = manswer.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) activi_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE=1 and i.customer_id=:cusId ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mactivi  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mactivi.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) finish_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE in (2,4) and i.customer_id=:cusId   ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mfinish  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mfinish.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) timeout_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT where (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and customer_id=:cusId  ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mtimeout  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mtimeout.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) pri_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT where SLA_NAME='LEVEL1' and customer_id=:cusId   ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mpri  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mpri.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) ques_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT where QUESTIONID is not null and customer_id=:cusId  ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mques  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mques.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select truncate(avg(DEAL_USE_TIME)*3600*1000,0) avg_time,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT where customer_id=:cusId   ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mdeal  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mdeal.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) first_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and (b.WFSTATE=2 or b.WFSTATE=4) and n.NODE_TEMPLATE_ID = :nodeTemplateId and i.customer_id=:cusId  ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mfirst  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mfirst.THIRD_CATEGORY_ID ");
 		List<Map> baseList = baseDao.queryForList(sql.toString(),param);
-		
+
 		//缁勭粐琛ㄥご
 		lebalList.add("鏈嶅姟鐩綍");
 		lebalList.add("浜嬩欢鏁�");
@@ -834,41 +838,41 @@
 		lebalList.add("骞冲潎澶勭悊鏃堕暱");
 		lebalList.add("涓�绾胯В鍐崇巼");
 		lebalList.add("鏈嶅姟绾у埆杈炬垚鐜�");
-		
+
 		//缁勭粐鏁版嵁
 		if(baseList!=null&&baseList.size()>0){
 			sql.setLength(0);
 			sql.append(" select total_num,IFNULL(answer_num,0) answer_num,IFNULL(activi_num,0) activi_num,IFNULL(finish_num,0) finish_num,IFNULL(timeout_num,0) timeout_num,  ");
 			sql.append(" IFNULL(pri_num,0) pri_num,IFNULL(ques_num,0) ques_num,IFNULL(avg_time,0) avg_time,truncate(IFNULL(first_num, 0)*100/total_num,2) first_rate,truncate((total_num-IFNULL(timeout_num, 0))*100/total_num,2) ontime_rate  from  ");
 			sql.append(" (select count(id) total_num from SC_WORKFLOW_INCIDENT where customer_id=:cusId ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mtotal,   ");
 			sql.append(" (select count(i.id) answer_num from SC_WORKFLOW_INCIDENT i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and n.FLOWSTATE=1 and i.customer_id=:cusId ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) manswer,  ");
 			sql.append(" (select count(i.id) activi_num from SC_WORKFLOW_INCIDENT i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE=1 and i.customer_id=:cusId ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mactivi,  ");
 			sql.append(" (select count(i.id) finish_num from SC_WORKFLOW_INCIDENT i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE in (2,4) and i.customer_id=:cusId   ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mfinish,  ");
 			sql.append(" (select count(id) timeout_num from SC_WORKFLOW_INCIDENT where (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and customer_id=:cusId  ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mtimeout,  ");
 			sql.append(" (select count(id) pri_num from SC_WORKFLOW_INCIDENT where SLA_NAME='LEVEL1' and customer_id=:cusId   ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mpri,  ");
 			sql.append(" (select count(id) ques_num from SC_WORKFLOW_INCIDENT where QUESTIONID is not null and customer_id=:cusId  ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mques,  ");
 			sql.append(" (select truncate(avg(DEAL_USE_TIME)*3600*1000,0) avg_time from SC_WORKFLOW_INCIDENT where customer_id=:cusId   ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mdeal, ");
 			sql.append(" (select count(i.id) first_num from SC_WORKFLOW_INCIDENT i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and (b.WFSTATE=2 or b.WFSTATE=4) and n.NODE_TEMPLATE_ID = :nodeTemplateId and i.customer_id=:cusId  ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mfirst  ");
 			Map extendMap = baseDao.queryForMap(sql.toString(),param);
-			
+
 			for(Map base:baseList){
 				List<String> tempList = new ArrayList<String>();
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("THIRD_CATEGORY_NAME")));
@@ -898,7 +902,7 @@
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("ontime_rate"))+"%");
 			dataList.add(tempList);
 		}
-		
+
 		Map res = new HashMap();
 		res.put("lebalList",lebalList);
 		res.put("dataList",dataList);
@@ -914,7 +918,7 @@
 		param.put("selDate", selDate);
 		param.put("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT);
 		sql.append(" select count(id) num,wfstate from workflow_base where businesstype =:busType and customer_id = :cusId ");
-		setWhereSql(sql, "createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATETIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by wfstate order by wfstate");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		Map<String,Map> dataxx = new HashMap();
@@ -943,7 +947,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("wfstate").toString(), data);
 			}
-			
+
 			List<Map> dicList = new ArrayList<Map>();
 			for(int i=1;i<=3;i++){
 				Map map = new HashMap();
@@ -957,7 +961,7 @@
 				map.put("DATAKEY", i);
 				dicList.add(map);
 			}
-			
+
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
 				List tempList = new ArrayList();
@@ -973,7 +977,7 @@
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -985,9 +989,9 @@
 			 df = new SimpleDateFormat("yyyyw");
 		}
 		Calendar cal = Calendar.getInstance();
-		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓� 
-		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮�  
-		cal.setMinimalDaysInFirstWeek(7); 
+		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓�
+		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮�
+		cal.setMinimalDaysInFirstWeek(7);
 		try {
 			cal.setTime(df.parse(selDate));
 		} catch (ParseException e) {
@@ -1002,54 +1006,63 @@
         if(statisType.equals("quarter")){
         	lastDate = getLastQuarter(selDate);
         }
-		
+
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
 		param.put("selDate",selDate);
 		param.put("lastDate",lastDate);
 		param.put("busType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION);
-		
-		
+
+
+		String groupByStr = "";
 		if(statisType.equals("month")){
-			sql.append(" select date_format(createtime,'%Y%m') cate_id,");
+			sql.append(" select date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m') cate_id,");
+			groupByStr = "date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m') ";
 		}else if(statisType.equals("week")){
-			sql.append(" select concat(year(createtime),week(createtime,5)) cate_id,");
+			sql.append(" select concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),week(to_date(createtime,'YYYYMMDDHH24MISS'),5)) cate_id,");
+			groupByStr = "concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),week(to_date(createtime,'YYYYMMDDHH24MISS'),5)) ";
 		}else if(statisType.equals("quarter")){
-			sql.append(" select concat(year(createtime),quarter(createtime)) cate_id,");
+			sql.append(" select concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),quarter(to_date(createtime,'YYYYMMDDHH24MISS'))) cate_id,");
+			groupByStr = " concat(year(to_date(createtime,'YYYYMMDDHH24MISS')),quarter(to_date(createtime,'YYYYMMDDHH24MISS'))) ";
 		}
 		sql.append(" wfstate data_name,count(id) num from workflow_base where wfstate in (1,2,3) and businesstype=:busType ");
 		if(statisType.equals("month")){
-			sql.append(" and (date_format(createtime,'%Y%m') = :selDate or date_format(createtime,'%Y%m')=:lastDate) ");
+			sql.append(" and (date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m') = :selDate or date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%m')=:lastDate) ");
 		}else if(statisType.equals("week")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (week(createtime,5) = substring(:selDate,5) or week(createtime,5)=substring(:lastDate,5)) ");
-		}else if(statisType.equals("quarter")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (quarter(createtime) = substring(:selDate,5) or quarter(createtime)=substring(:lastDate,5)) ");
+			sql.append(" and year(to_date(createtime,'YYYYMMDDHH24MISS'))=left(:selDate,4) and (week(to_date(createtime,'YYYYMMDDHH24MISS'),5) = substring(:selDate,5) or week(to_date(createtime,'YYYYMMDDHH24MISS'),5)=substring(:lastDate,5)) ");
+		}else if(statisType.equals("to_date(createtime,'YYYYMMDDHH24MISS')")){
+			sql.append(" and year(to_date(createtime,'YYYYMMDDHH24MISS'))=left(:selDate,4) and (quarter(to_date(createtime,'YYYYMMDDHH24MISS')) = substring(:selDate,5) or quarter(to_date(createtime,'YYYYMMDDHH24MISS'))=substring(:lastDate,5)) ");
 		}
-		
-		sql.append(" and customer_id=:cusId  group by cate_id,data_name ");
+
+		sql.append(" and customer_id=:cusId  group by "+ groupByStr +",wfstate ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
+		String newcreatetime = "to_date(createtime,'YYYYMMDDHH24MISS')";
 		if(dataList!=null&&dataList.size()>0){
+			String groupCateId="";
 			sql.setLength(0);
 			if(statisType.equals("month")){
-				sql.append(" select date_format(createtime,'%Y%m') cate_id,");
+				sql.append(" select date_format(" + newcreatetime+",'%Y%m') cate_id,");
+				groupCateId = " date_format(" + newcreatetime+",'%Y%m') ";
 			}else if(statisType.equals("week")){
-				sql.append(" select concat(year(createtime),week(createtime,5)) cate_id,");
+				sql.append(" select concat(year("+newcreatetime+"),week("+newcreatetime+",5)) cate_id,");
+				groupCateId = " concat(year("+newcreatetime+"),week("+newcreatetime+",5)) ";
 			}else if(statisType.equals("quarter")){
-				sql.append(" select concat(year(createtime),quarter(createtime)) cate_id,");
+				sql.append(" select concat(year("+newcreatetime+"),quarter("+newcreatetime+")) cate_id,");
+				groupCateId=" concat(year("+newcreatetime+"),quarter("+newcreatetime+")) ";
 			}
 			sql.append(" count(id) num FROM workflow_base WHERE customer_id = :cusId and businesstype=:busType  ");
 			if(statisType.equals("month")){
-				sql.append(" and (date_format(createtime,'%Y%m') = :selDate or date_format(createtime,'%Y%m')=:lastDate) ");
+				sql.append(" and (date_format("+newcreatetime+",'%Y%m') = :selDate or date_format("+newcreatetime+",'%Y%m')=:lastDate) ");
 			}else if(statisType.equals("week")){
-				sql.append(" and year(createtime)=left(:selDate,4) and (week(createtime,5) = substring(:selDate,5) or week(createtime,5)=substring(:lastDate,5)) ");
+				sql.append(" and year("+newcreatetime+")=left(:selDate,4) and (week("+newcreatetime+",5) = substring(:selDate,5) or week("+newcreatetime+",5)=substring(:lastDate,5)) ");
 			}else if(statisType.equals("quarter")){
-				sql.append(" and year(createtime)=left(:selDate,4) and (quarter(createtime) = substring(:selDate,5) or quarter(createtime)=substring(:lastDate,5)) ");
+				sql.append(" and year("+newcreatetime+")=left(:selDate,4) and (quarter("+newcreatetime+") = substring(:selDate,5) or quarter("+newcreatetime+")=substring(:lastDate,5)) ");
 			}
-			sql.append(" group by cate_id ");
+			sql.append(" group by "+groupCateId);
 			List<Map> extendList = baseDao.queryForList(sql.toString(),param);
-			
+
 			Map dataSetMap = new HashMap();
 			Map extendSetMap = new HashMap();
 			for(Map map:dataList){
@@ -1058,7 +1071,7 @@
 			for(Map map:extendList){
 				extendSetMap.put(map.get("cate_id"), map);
 			}
-			
+
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
 			if(statisType.equals("month")){
@@ -1071,7 +1084,7 @@
 				categories.add("涓婂搴�");
 				categories.add("鏈搴�");
 			}
-			
+
 			for(int i=0;i<4;i++){
 				Map tempMap = new HashMap();
 				List tempList = new ArrayList();
@@ -1090,7 +1103,7 @@
 					if(j==1){
 						key = selDate;
 					}
-					
+
 					if(i==0){
 						if(extendSetMap.get(key)!=null){
 							tempList.add(((Map)extendSetMap.get(key)).get("num"));
@@ -1107,15 +1120,15 @@
 				}
 				tempMap.put("data", tempList);
 				series.add(tempMap);
-				
+
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -1127,7 +1140,7 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,source_id from sc_workflow_question where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by source_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
@@ -1135,7 +1148,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("source_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.QUESTION_SOURCE);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -1163,16 +1176,16 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,resolve_type_id from sc_workflow_question where customer_id = :cusId and state=7 ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by resolve_type_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("resolve_type_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.QUESTIONCLOSE_RESOLVE_TYPE);
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
@@ -1189,13 +1202,13 @@
 				tempMap.put("data", tempList);
 				series.add(tempMap);
 			}
-			
+
 			chartMap.put("series", series);
 			chartMap.put("categories", categories);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -1207,16 +1220,16 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,influence_id from sc_workflow_question where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(create_time,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by influence_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("influence_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -1241,41 +1254,41 @@
 		SqlParameter param = new SqlParameter();
 		param.put("cusId", cusId);
 		//瀹氫箟鎶ヨ〃鍙橀噺
-		List<String> lebalList = new ArrayList<String>();  
-		List<List<String>> dataList = new ArrayList<List<String>>();  
+		List<String> lebalList = new ArrayList<String>();
+		List<List<String>> dataList = new ArrayList<List<String>>();
 		//鏌ヨ鏁版嵁
 		StringBuilder sql = new StringBuilder();
 		sql.append(" select THIRD_CATEGORY_NAME,total_num,IFNULL(answer_num,0) answer_num,IFNULL(activi_num,0) activi_num,IFNULL(sleep_num,0) sleep_num,   ");
 		sql.append(" IFNULL(finish_num,0) finish_num, IFNULL(close_num,0) close_num from (  ");
 		sql.append(" 	select count(b.id) total_num,i.THIRD_CATEGORY_NAME,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i 	 ");
 		sql.append(" 	where b.ID = i.FLOW_ID  and b.BUSINESSTYPE = 9 and b.customer_id = :cusId ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
-		sql.append(" 	GROUP BY I.THIRD_CATEGORY_ID  ");
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
+		sql.append(" 	GROUP BY I.THIRD_CATEGORY_ID,i.THIRD_CATEGORY_NAME  ");
 		sql.append(" ) mtotal left join (  ");
 		sql.append(" 	select count(b.id) answer_num,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i,(  ");
 		sql.append("   		select FLOWID from workflow_node where FLOWSTATE = 1 group by FLOWID ");
 		sql.append(" 	) n	where b.ID = i.FLOW_ID and b.id = n.FLOWID  and b.BUSINESSTYPE = 9 and b.customer_id = :cusId  ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" 	and b.WFSTATE = 1 GROUP BY I.THIRD_CATEGORY_ID  ");
 		sql.append(" ) manswer on mtotal.THIRD_CATEGORY_ID = manswer.THIRD_CATEGORY_ID left join (  ");
 		sql.append(" 	select count(b.id) activi_num,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i  ");
 		sql.append(" 	where b.ID = i.FLOW_ID   and b.BUSINESSTYPE = 9 and b.customer_id = :cusId  ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" 	and b.WFSTATE=1 GROUP BY I.THIRD_CATEGORY_ID  ");
 		sql.append(" ) mactivi on mtotal.THIRD_CATEGORY_ID = mactivi.THIRD_CATEGORY_ID left join (  ");
 		sql.append(" 	select count(b.id) sleep_num,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i  ");
 		sql.append(" 	where b.ID = i.FLOW_ID   and b.BUSINESSTYPE = 9 and b.customer_id = :cusId  ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" 	and b.WFSTATE=6 GROUP BY I.THIRD_CATEGORY_ID  ");
 		sql.append(" ) msleep on mtotal.THIRD_CATEGORY_ID = msleep.THIRD_CATEGORY_ID left join (  ");
 		sql.append(" 	select count(b.id) finish_num,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i  ");
 		sql.append(" 	where b.ID = i.FLOW_ID  and b.BUSINESSTYPE = 9 and b.customer_id = :cusId  ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" 	and (b.WFSTATE=2 or b.WFSTATE=4) GROUP BY I.THIRD_CATEGORY_ID  ");
 		sql.append(" ) mfinish on mtotal.THIRD_CATEGORY_ID = mfinish.THIRD_CATEGORY_ID left join (  ");
 		sql.append(" 	select count(b.id) close_num,i.THIRD_CATEGORY_ID from workflow_base b ,SC_WORKFLOW_QUESTION i	 ");
 		sql.append(" 	where b.ID = i.FLOW_ID   and b.BUSINESSTYPE = 9 and b.customer_id = :cusId  ");
-		setWhereSql(sql, "b.createtime", selDate, statisType, param);
+		setWhereSql(sql, "to_date(b.createtime,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" 	and i.state=7 GROUP BY I.THIRD_CATEGORY_ID  ");
 		sql.append(" ) mclose on mtotal.THIRD_CATEGORY_ID = mclose.THIRD_CATEGORY_ID  ");
 		List<Map> baseList = baseDao.queryForList(sql.toString(),param);
@@ -1323,7 +1336,7 @@
 			sql.append("  and i.state=7 ");
 			sql.append(" ) mclose  ");
 			Map extendMap = baseDao.queryForMap(sql.toString(),param);
-			
+
 			for(Map base:baseList){
 				List<String> tempList = new ArrayList<String>();
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("THIRD_CATEGORY_NAME")));
@@ -1344,7 +1357,7 @@
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("finish_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("close_num")));
 			dataList.add(tempList);
-			
+
 		}
 		Map res = new HashMap();
 		res.put("lebalList",lebalList);
@@ -1360,9 +1373,9 @@
 			 df = new SimpleDateFormat("yyyyw");
 		}
 		Calendar cal = Calendar.getInstance();
-		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓� 
-		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮�  
-		cal.setMinimalDaysInFirstWeek(7); 
+		cal.setFirstDayOfWeek(Calendar.MONDAY); //璁剧疆姣忓懆鐨勭涓�澶╀负鏄熸湡涓�
+		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//姣忓懆浠庡懆涓�寮�濮�
+		cal.setMinimalDaysInFirstWeek(7);
 		try {
 			cal.setTime(df.parse(selDate));
 		} catch (ParseException e) {
@@ -1377,34 +1390,39 @@
         if(statisType.equals("quarter")){
         	lastDate = getLastQuarter(selDate);
 		}
-		
+
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
 		param.put("selDate",selDate);
 		param.put("lastDate",lastDate);
 		param.put("busType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL);
-		
-		
+
+
+		String gruopByStr = "";
+		String newCreateTime = "to_date(createtime,'YYYYMMDDHH24MISS')";
 		if(statisType.equals("month")){
-			sql.append(" select date_format(createtime,'%Y%m') cate_id,");
+			sql.append(" select date_format(" + newCreateTime +",'%Y%m') cate_id,");
+			gruopByStr = "date_format("+ newCreateTime +",'%Y%m') ";
 		}else if(statisType.equals("week")){
-			sql.append(" select concat(year(createtime),week(createtime,5)) cate_id,");
+			sql.append(" select concat(year(" + newCreateTime + "),week("+newCreateTime + ",5)) cate_id,");
+			gruopByStr = " concat(year(" + newCreateTime + "),week("+newCreateTime + ",5))";
 		}else if(statisType.equals("quarter")){
-			sql.append(" select concat(year(createtime),quarter(createtime)) cate_id,");
+			sql.append(" select concat(year(" + newCreateTime +"),quarter(" + newCreateTime + ")) cate_id,");
+			gruopByStr = " concat(year(" + newCreateTime +"),quarter(" + newCreateTime + ")) ";
 		}
 		sql.append(" ( CASE WHEN WFSTATE = 1 THEN '1' WHEN WFSTATE = 2 THEN '2' WHEN WFSTATE = 3 THEN '3' WHEN WFSTATE = 4 THEN '2' WHEN WFSTATE = 6 THEN '6'  END ) data_name,count(id) num from workflow_base where wfstate in (1,2,3,4) and businesstype=:busType ");
 		if(statisType.equals("month")){
-			sql.append(" and (date_format(createtime,'%Y%m') = :selDate or date_format(createtime,'%Y%m')=:lastDate) ");
+			sql.append(" and (date_format("+newCreateTime+",'%Y%m') = :selDate or date_format("+newCreateTime+",'%Y%m')=:lastDate) ");
 		}else if(statisType.equals("week")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (week(createtime,5) = substring(:selDate,5) or week(createtime,5)=substring(:lastDate,5)) ");
+			sql.append(" and year("+newCreateTime+")=left(:selDate,4) and (week("+newCreateTime+",5) = substring(:selDate,5) or week("+newCreateTime+",5)=substring(:lastDate,5)) ");
 		}else if(statisType.equals("quarter")){
-			sql.append(" and year(createtime)=left(:selDate,4) and (quarter(createtime) = substring(:selDate,5) or quarter(createtime)=substring(:lastDate,5)) ");
+			sql.append(" and year("+newCreateTime+")=left(:selDate,4) and (quarter("+newCreateTime+") = substring(:selDate,5) or quarter("+newCreateTime+")=substring(:lastDate,5)) ");
 		}
-		
-		sql.append(" and customer_id=:cusId  group by cate_id,data_name ");
+
+		sql.append(" and customer_id=:cusId  group by "+gruopByStr +",WFSTATE ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
-		
+
 		if(dataList!=null&&dataList.size()>0){
 			sql.setLength(0);
 			if(statisType.equals("month")){
@@ -1424,7 +1442,7 @@
 			}
 			sql.append(" group by cate_id ");
 			List<Map> extendList = baseDao.queryForList(sql.toString(),param);
-			
+
 			Map dataSetMap = new HashMap();
 			Map extendSetMap = new HashMap();
 			for(Map map:dataList){
@@ -1433,7 +1451,7 @@
 			for(Map map:extendList){
 				extendSetMap.put(map.get("cate_id"), map);
 			}
-			
+
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
 			if(statisType.equals("month")){
@@ -1446,7 +1464,7 @@
 				categories.add("涓婂搴�");
 				categories.add("鏈搴�");
 			}
-			
+
 			for(int i=0;i<4;i++){
 				Map tempMap = new HashMap();
 				List tempList = new ArrayList();
@@ -1465,7 +1483,7 @@
 					if(j==1){
 						key = selDate;
 					}
-					
+
 					if(i==0){
 						if(extendSetMap.get(key)!=null){
 							tempList.add(((Map)extendSetMap.get(key)).get("num"));
@@ -1482,15 +1500,15 @@
 				}
 				tempMap.put("data", tempList);
 				series.add(tempMap);
-				
+
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -1502,7 +1520,7 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,source_id from sc_workflow_incident_local where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by source_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
@@ -1510,7 +1528,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("source_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.INCIDENT_SOURCE);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -1527,7 +1545,7 @@
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -1539,15 +1557,15 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,type_id,type_name from sc_workflow_incident_local where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
-		sql.append(" group by type_id ");
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
+		sql.append(" group by type_id ,type_name");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
 			for(Map data:dataList){
 				dataSetMap.put(data.get("type_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
 			List seriesData = new ArrayList();
 			for(Map dic:dicList){
@@ -1575,7 +1593,7 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,resolve_type_id from sc_workflow_incident_local where customer_id = :cusId and resolve_type_id is not null ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by resolve_type_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
@@ -1583,7 +1601,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("resolve_type_id"), data);
 			}
-			
+
 			List<Map> dicList = dicService.getDataDictionaryByCategoryKey(Constants.CLOSE_REASON);
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
@@ -1600,7 +1618,7 @@
 				tempMap.put("data", tempList);
 				series.add(tempMap);
 			}
-			
+
 			chartMap.put("series", series);
 			chartMap.put("categories", categories);
 		}else{
@@ -1614,12 +1632,12 @@
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId", cusId);
-		sql.append(" select TRUNCATE((total_num-IFNULL(outtime_num,0))*100/total_num,2) ontime_rate from ( ");
+		sql.append(" select case when total_num=0 then 0 else TRUNCATE((total_num-IFNULL(outtime_num,0))*100/total_num,2) end ontime_rate from ( ");
 		sql.append(" 	select count(id) total_num from sc_workflow_incident_local where customer_id = :cusId  ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" ) mtotal, ( ");
 		sql.append(" 	select count(id) outtime_num from sc_workflow_incident_local where customer_id = :cusId and (answer_timeout=1 or deal_timeout=1)  ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" ) mfinish ");
 		Double y = baseDao.queryForDouble(sql.toString(), param);
 		Map chartMap = new HashMap();
@@ -1638,7 +1656,7 @@
 		param.put("cusId", cusId);
 		param.put("selDate", selDate);
 		sql.append(" select count(id) num,sla_id from sc_workflow_incident_local where customer_id = :cusId ");
-		setWhereSql(sql, "create_time", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by sla_id ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
@@ -1646,7 +1664,7 @@
 			for(Map data:dataList){
 				dataSetMap.put(data.get("sla_id"), data);
 			}
-			
+
 			sql.setLength(0);
 			sql.append(" select id,level_name from sc_sla where state=1 order by serial asc");
 			List<Map> dicList = baseDao.queryForList(sql.toString(), param);
@@ -1673,49 +1691,49 @@
 		SqlParameter param = new SqlParameter();
 		param.put("cusId", cusId);
 		param.put("nodeTemplateId", Constants.YXCL);
-		List<String> lebalList = new ArrayList<String>();  
-		List<List<String>> dataList = new ArrayList<List<String>>();  
-		
+		List<String> lebalList = new ArrayList<String>();
+		List<List<String>> dataList = new ArrayList<List<String>>();
+
 		StringBuilder sql = new StringBuilder();
 		sql.append(" select mtotal.THIRD_CATEGORY_NAME,total_num,IFNULL(answer_num,0) answer_num,IFNULL(activi_num,0) activi_num,IFNULL(finish_num,0) finish_num,IFNULL(timeout_num,0) timeout_num,  ");
 		sql.append(" IFNULL(pri_num,0) pri_num,IFNULL(ques_num,0) ques_num,IFNULL(avg_time,0) avg_time,truncate(IFNULL(finish_num, 0)*100/total_num,2) first_rate,truncate((total_num-IFNULL(timeout_num, 0))*100/total_num,2) ontime_rate  from  ");
 		sql.append(" (select a.THIRD_CATEGORY_NAME,count(a.id) total_num,a.THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL a,workflow_base b where a.customer_id=:cusId and a.id=b.BUSINESS_ID and b.WFSTATE<>3 ");
-		setWhereSql(sql, "a.CREATE_TIME", selDate, statisType, param);
-		sql.append(" group by a.THIRD_CATEGORY_ID) mtotal   ");
+		setWhereSql(sql, "to_date(a.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
+		sql.append(" group by a.THIRD_CATEGORY_ID,a.THIRD_CATEGORY_NAME) mtotal   ");
 		sql.append(" left join (select count(i.id) answer_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.WFSTATE<>3 and b.CURRENT_NODE_ID=n.ID and n.FLOWSTATE=1 and i.customer_id=:cusId ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) manswer  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = manswer.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) activi_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE=1 and b.WFSTATE<>3  and i.customer_id=:cusId ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mactivi  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mactivi.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) finish_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE in (2,4) and i.customer_id=:cusId   ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mfinish  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mfinish.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) timeout_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL where (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and customer_id=:cusId  ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mtimeout  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mtimeout.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) pri_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL where SLA_NAME='LEVEL1' and customer_id=:cusId   ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mpri  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mpri.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(id) ques_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL where QUESTIONID is not null and customer_id=:cusId  ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mques  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mques.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select truncate(avg(DEAL_USE_TIME)*3600*1000,0) avg_time,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL where customer_id=:cusId   ");
-		setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by THIRD_CATEGORY_ID) mdeal  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mdeal.THIRD_CATEGORY_ID ");
 		sql.append(" left join (select count(i.id) first_num,THIRD_CATEGORY_ID from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and (b.WFSTATE=2 or b.WFSTATE=4) and n.NODE_TEMPLATE_ID = :nodeTemplateId and i.customer_id=:cusId  ");
-		setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+		setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 		sql.append(" group by i.THIRD_CATEGORY_ID) mfirst  ");
 		sql.append(" on  mtotal.THIRD_CATEGORY_ID = mfirst.THIRD_CATEGORY_ID ");
 		List<Map> baseList = baseDao.queryForList(sql.toString(),param);
-		
+
 		//缁勭粐琛ㄥご
 		lebalList.add("鏈嶅姟鐩綍");
 		lebalList.add("浜嬩欢鏁�");
@@ -1728,41 +1746,41 @@
 		lebalList.add("骞冲潎澶勭悊鏃堕暱");
 		lebalList.add("椹诲満瑙e喅鐜�");
 		lebalList.add("鏈嶅姟绾у埆杈炬垚鐜�");
-		
+
 		//缁勭粐鏁版嵁
 		if(baseList!=null&&baseList.size()>0){
 			sql.setLength(0);
 			sql.append(" select total_num,IFNULL(answer_num,0) answer_num,IFNULL(activi_num,0) activi_num,IFNULL(finish_num,0) finish_num,IFNULL(timeout_num,0) timeout_num,  ");
 			sql.append(" IFNULL(pri_num,0) pri_num,IFNULL(ques_num,0) ques_num,IFNULL(avg_time,0) avg_time,truncate(IFNULL(finish_num, 0)*100/total_num,2) first_rate,truncate((total_num-IFNULL(timeout_num, 0))*100/total_num,2) ontime_rate  from  ");
 			sql.append(" (select count(a.id) total_num from SC_WORKFLOW_INCIDENT_LOCAL a,workflow_base b where a.customer_id=:cusId and a.id=b.BUSINESS_ID and b.WFSTATE<>3 ");
-			setWhereSql(sql, "a.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(a.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mtotal,   ");
 			sql.append(" (select count(i.id) answer_num from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.WFSTATE<>3 and b.CURRENT_NODE_ID=n.ID and n.FLOWSTATE=1 and i.customer_id=:cusId ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) manswer,  ");
 			sql.append(" (select count(i.id) activi_num from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE=1 and i.customer_id=:cusId ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mactivi,  ");
 			sql.append(" (select count(i.id) finish_num from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b where i.FLOW_ID=b.ID and b.WFSTATE in (2,4) and i.customer_id=:cusId   ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mfinish,  ");
 			sql.append(" (select count(id) timeout_num from SC_WORKFLOW_INCIDENT_LOCAL where (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and customer_id=:cusId  ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mtimeout,  ");
 			sql.append(" (select count(id) pri_num from SC_WORKFLOW_INCIDENT_LOCAL where SLA_NAME='LEVEL1' and customer_id=:cusId   ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mpri,  ");
 			sql.append(" (select count(id) ques_num from SC_WORKFLOW_INCIDENT_LOCAL where QUESTIONID is not null and customer_id=:cusId  ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mques,  ");
 			sql.append(" (select truncate(avg(DEAL_USE_TIME)*3600*1000,0) avg_time from SC_WORKFLOW_INCIDENT_LOCAL where customer_id=:cusId   ");
-			setWhereSql(sql, "CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mdeal, ");
 			sql.append(" (select count(i.id) first_num from SC_WORKFLOW_INCIDENT_LOCAL i,workflow_base b,workflow_node n where i.FLOW_ID=b.ID and b.CURRENT_NODE_ID=n.ID and (b.WFSTATE=2 or b.WFSTATE=4) and n.NODE_TEMPLATE_ID = :nodeTemplateId and i.customer_id=:cusId  ");
-			setWhereSql(sql, "i.CREATE_TIME", selDate, statisType, param);
+			setWhereSql(sql, "to_date(i.CREATE_TIME,'YYYYMMDDHH24MISS')", selDate, statisType, param);
 			sql.append(" ) mfirst  ");
 			Map extendMap = baseDao.queryForMap(sql.toString(),param);
-			
+
 			for(Map base:baseList){
 				List<String> tempList = new ArrayList<String>();
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("THIRD_CATEGORY_NAME")));
@@ -1773,8 +1791,14 @@
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("timeout_num")));
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("pri_num")));
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("ques_num")));
-				
-				tempList.add(DateUtil.secToTime(Math.round((Double)base.get("avg_time"))));
+				Object avg_time = base.get("avg_time");
+				String avgTimeSTr = null;
+				if (avg_time == null){
+					avgTimeSTr = "0";
+				} else {
+					avgTimeSTr = String.valueOf(avg_time);
+				}
+				tempList.add(DateUtil.secToTime(Math.round(Double.valueOf(avgTimeSTr))));
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("first_rate"))+"%");
 				tempList.add(ConvertUtil.obj2StrBlank(base.get("ontime_rate"))+"%");
 				dataList.add(tempList);
@@ -1782,13 +1806,21 @@
 			List<String> tempList = new ArrayList<String>();
 			tempList.add("鍚堣");
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("total_num")));
+
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("answer_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("activi_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("finish_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("timeout_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("pri_num")));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("ques_num")));
-			tempList.add(DateUtil.secToTime(Math.round((Double)extendMap.get("avg_time"))));
+			Object avg_time = extendMap.get("avg_time");
+			String avgTimeSTr = null;
+			if (avg_time == null){
+				avgTimeSTr = "0";
+			} else {
+				avgTimeSTr = String.valueOf(avg_time);
+			}
+			tempList.add(DateUtil.secToTime(Math.round(Double.valueOf(avgTimeSTr))));
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("first_rate"))+"%");
 			tempList.add(ConvertUtil.obj2StrBlank(extendMap.get("ontime_rate"))+"%");
 			dataList.add(tempList);
@@ -1821,21 +1853,25 @@
         if(statisType.equals("quarter")){
         	lastDate = getLastQuarter(selDate);
 		}
-        
+
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
 		param.put("selDate",selDate);
 		param.put("lastDate",lastDate);
 		param.put("busType",Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT);
-		
+
+		String cateIdStr = "";
 		//鏌ヨ鏁版嵁
 		if(statisType.equals("month")){
 			sql.append(" select i.month cate_id, ");
+			cateIdStr = " i.month ";
 		}else if(statisType.equals("year")){
 			sql.append(" select left(i.month,4) cate_id, ");
+			cateIdStr = " left(i.month,4) ";
 		}else if(statisType.equals("quarter")){
 			sql.append(" select concat(left(i.month,4),quarter(concat(i.month,'01'))) cate_id, ");
+			cateIdStr = " concat(left(i.month,4),quarter(concat(i.month,'01'))) ";
 		}
 		sql.append(" d.satis_type data_name,truncate(avg(d.satis_score),0) num from totle_satis_info i,totle_satis_detail d where i.id = d.bus_id  ");
 		if(statisType.equals("month")){
@@ -1845,7 +1881,7 @@
 		}else if(statisType.equals("quarter")){
 			sql.append(" and  (concat(left(i.month,4),quarter(concat(i.month,'01'))) = :selDate or concat(left(i.month,4),quarter(concat(i.month,'01')))=:lastDate) ");
 		}
-		sql.append(" and i.customer_id=:cusId  group by cate_id,data_name ");
+		sql.append(" and i.customer_id=:cusId  group by "+cateIdStr+",d.satis_type ");
 		sql.append(" union ");
 		if(statisType.equals("month")){
 			sql.append(" select i.month cate_id, ");
@@ -1862,7 +1898,7 @@
 		}else if(statisType.equals("quarter")){
 			sql.append(" and  (concat(left(i.month,4),quarter(concat(i.month,'01'))) = :selDate or concat(left(i.month,4),quarter(concat(i.month,'01')))=:lastDate) ");
 		}
-		sql.append(" and i.customer_id=:cusId  group by cate_id,data_name ");
+		sql.append(" and i.customer_id=:cusId  group by "+cateIdStr+" ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -1870,8 +1906,8 @@
 			for(Map map:dataList){
 				dataSetMap.put(map.get("data_name")+"_"+map.get("cate_id"), map);
 			}
-			
-			
+
+
 			List<Map> series = new ArrayList<Map>();
 			List<String> categories = new ArrayList<String>();
 			if(statisType.equals("month")){
@@ -1884,7 +1920,7 @@
 				categories.add("涓婂搴�");
 				categories.add("鏈搴�");
 			}
-			
+
 			for(int i=0;i<=3;i++){
 				if(i!=2){
 					Map tempMap = new HashMap();
@@ -1911,9 +1947,9 @@
 					tempMap.put("data", tempList);
 					series.add(tempMap);
 				}
-				
+
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
@@ -1936,7 +1972,7 @@
 			sql.append(" and concat(left(i.month,4),quarter(concat(i.month,'01')))=:selDate ");
 		}
 		sql.append("  and i.customer_id=:cusId group by d.satis_type ");
-		
+
 		List<Map> dataList= baseDao.queryForList(sql.toString(), param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -1952,7 +1988,7 @@
 				}
 			}
 			List<Map> series = new ArrayList<Map>();
-			
+
 			for(int i=1;i<=2;i++){
 				Map tempMap = new HashMap();
 				if(i==1){
@@ -1978,7 +2014,7 @@
 							}
 						}
 					}
-					
+
 				}
 				tempMap.put("data", tempList);
 				series.add(tempMap);
@@ -1998,10 +2034,10 @@
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and date_format(createtime,'%Y') = :selDate group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2024,13 +2060,13 @@
 			}
 			tempMap.put("data", tempList);
 			series.add(tempMap);
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -2046,16 +2082,16 @@
 		}
 		cal.add(Calendar.YEAR, -1);
         String lastDate = df.format(cal.getTime());
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT)
 			.addValue("lastDate", lastDate);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and (date_format(createtime,'%Y') = :selDate or date_format(createtime,'%Y') = :lastDate)  group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and (date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate or date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :lastDate)  group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2065,7 +2101,7 @@
 			List<String> categories = new ArrayList<String>();
 			categories.add("鏁伴噺");
 			List<Map> series = new ArrayList<Map>();
-			
+
 			for(int i=1;i<=2;i++){
 				Map tempMap = new HashMap();
 				tempMap.put("name", "鍘诲勾");
@@ -2083,13 +2119,13 @@
 				tempMap.put("data", tempList);
 				series.add(tempMap);
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -2100,10 +2136,10 @@
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and date_format(createtime,'%Y') = :selDate group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2146,16 +2182,16 @@
 		}
 		cal.add(Calendar.YEAR, -1);
         String lastDate = df.format(cal.getTime());
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION)
 			.addValue("lastDate", lastDate);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and (date_format(createtime,'%Y') = :selDate or date_format(createtime,'%Y') = :lastDate)  group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and (date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate or date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :lastDate)  group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2165,7 +2201,7 @@
 			List<String> categories = new ArrayList<String>();
 			categories.add("鏁伴噺");
 			List<Map> series = new ArrayList<Map>();
-			
+
 			for(int i=1;i<=2;i++){
 				Map tempMap = new HashMap();
 				tempMap.put("name", "鍘诲勾");
@@ -2183,13 +2219,13 @@
 				tempMap.put("data", tempList);
 				series.add(tempMap);
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -2200,10 +2236,10 @@
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and date_format(createtime,'%Y') = :selDate group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y%c')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2226,7 +2262,7 @@
 			}
 			tempMap.put("data", tempList);
 			series.add(tempMap);
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
@@ -2247,16 +2283,16 @@
 		}
 		cal.add(Calendar.YEAR, -1);
         String lastDate = df.format(cal.getTime());
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("cusId", cusId)
 			.addValue("selDate", selDate)
 			.addValue("busType", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL)
 			.addValue("lastDate", lastDate);
-			
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select count(id) num,date_format(createtime,'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
-		sql.append(" and (date_format(createtime,'%Y') = :selDate or date_format(createtime,'%Y') = :lastDate)  group by cate_id  ");
+		sql.append(" select count(id) num,date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') cate_id from workflow_base where businesstype = :busType and customer_id =:cusId  ");
+		sql.append(" and (date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :selDate or date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y') = :lastDate)  group by date_format(to_date(createtime,'YYYYMMDDHH24MISS'),'%Y')  ");
 		List<Map> dataList = baseDao.queryForList(sql.toString(),param);
 		if(dataList!=null&&dataList.size()>0){
 			Map dataSetMap = new HashMap();
@@ -2266,7 +2302,7 @@
 			List<String> categories = new ArrayList<String>();
 			categories.add("鏁伴噺");
 			List<Map> series = new ArrayList<Map>();
-			
+
 			for(int i=1;i<=2;i++){
 				Map tempMap = new HashMap();
 				tempMap.put("name", "鍘诲勾");
@@ -2284,13 +2320,13 @@
 				tempMap.put("data", tempList);
 				series.add(tempMap);
 			}
-			
+
 			chartMap.put("categories", categories);
 			chartMap.put("series", series);
 		}else{
 		    chartMap.put("nodata", true);
 		}
-		
+
 		return chartMap;
 	}
 
@@ -2300,14 +2336,14 @@
 		SqlParameter param = new SqlParameter();
 		param.put("cusId",cusId);
 		param.put("selDate",selDate);
-		
+
 		StringBuilder builder = new StringBuilder();
 		builder.append(" SELECT I.ALL_SCORE,D.SATIS_SCORE,D.SATIS_TYPE,I.MONTH FROM TOTLE_SATIS_DETAIL D ,TOTLE_SATIS_INFO I ");
-		builder.append(" WHERE LEFT(I.MONTH,4)=:selDate AND D.BUS_ID = I.ID AND I.CUSTOMER_ID = :cusId  GROUP BY D.SATIS_TYPE,I.MONTH  ORDER BY SATIS_TYPE,MONTH");
+		builder.append(" WHERE LEFT(I.MONTH,4)=:selDate AND D.BUS_ID = I.ID AND I.CUSTOMER_ID = :cusId  GROUP BY D.SATIS_TYPE,I.MONTH,I.ALL_SCORE, D.SATIS_SCORE  ORDER BY SATIS_TYPE,MONTH");
 		List<Map> queryList = baseDao.queryForList(builder.toString(), param);
-		builder.setLength(0);	
+		builder.setLength(0);
 		Map<String,Object> queryMap = new HashMap<String,Object>();
-		
+
 		if(queryList!=null&&queryList.size()>0){
 			for(Map map:queryList){
 				String key = map.get("SATIS_TYPE").toString()+"_"+map.get("MONTH").toString();
@@ -2318,11 +2354,11 @@
 			for(int i=1;i<=12;i++){
 				categories.add(i+"鏈�");
 			}
-			
+
 			List<String> typeList = new ArrayList();
 			typeList.add("1");
 			typeList.add("3");
-			
+
 			Map tempWholeMap = new HashMap();
 			List tempWholeList = new ArrayList();
 			tempWholeMap.put("name", "鏁翠綋寰楀垎");
@@ -2343,7 +2379,7 @@
 					}else{
 						key = key + i;
 					}
-					
+
 					if(queryMap.get(key)!=null){
 						tempList.add(((Map)queryMap.get(key)).get("SATIS_SCORE"));
 						//鏁翠綋寰楀垎
@@ -2358,7 +2394,7 @@
 						}
 					}
 				}
-				
+
 				tempMap.put("data", tempList);
 				tempMap.put("type", "column");
 				series.add(tempMap);
@@ -2369,7 +2405,7 @@
 				chartMap.put("series", series);
 				chartMap.put("categories", categories);
 			}
-			
+
 		}else{
 		    chartMap.put("nodata", true);
 		}
@@ -2378,7 +2414,7 @@
 
 	@Override
 	public boolean updateWorkSummary(HttpServletRequest request) {
-		
+
 		String id = request.getParameter("id");
 		String note = request.getParameter("note");
 		String summaryType = request.getParameter("summaryType");
@@ -2389,7 +2425,7 @@
 		String userName = user.get("ZSXM").toString();
 		StringBuilder sql = new StringBuilder();
 		SqlParameter param = new SqlParameter();
-		
+
 		param.addValue("note", note)
 			.addValue("cusId", cusId)
 			.addValue("userId", userId)
@@ -2398,7 +2434,7 @@
 			.addValue("updateTime", DateUtil.getCurrentDate14())
 			.addValue("summaryType", summaryType)
 			.addValue("summaryDate", summaryDate);
-		
+
 		if(StringUtil.isBlank(id)){
 			sql.append(" insert into work_summary (id,create_time,create_user_id,create_user_name,note,update_time,summary_type,summary_date,cus_id,state) ");
 			sql.append(" values (:id,:createTime,:userId,:userName,:note,:updateTime,:summaryType,:summaryDate,:cusId,1) ");
@@ -2470,7 +2506,7 @@
 	public List<String> getCusYearToCur(String cusId) {
 		SqlParameter param = new SqlParameter();
 		param.addValue("cusId", cusId);
-		String sql = "select year(CREATE_TIME) from SC_PARTNER_CUSTOMER_INFO where id = :cusId";
+		String sql = "select substr(CREATE_TIME||'',1,4) from SC_PARTNER_CUSTOMER_INFO where id = :cusId";
 		Integer startYear = baseDao.queryForInteger(sql,param);
 		Calendar cal = Calendar.getInstance();
 		Integer endYear = cal.get(Calendar.YEAR);
@@ -2480,7 +2516,7 @@
 		}
 		return years;
 	}
-	
+
 	private String getLastQuarter(String selDate){
 		Integer year = Integer.valueOf(selDate.substring(0, 4));
 		Integer quarter = Integer.valueOf(selDate.substring(4));
@@ -2509,25 +2545,26 @@
 	@Override
 	public String getNRecordDate(Map<String, String> params) {
 		String col = "";
+		String createTimeStr = "to_date(createtime,'YYYYMMDDHH24MISS')";
 		if(params.get("type").equals("week")){
-			col = "week(createtime,5)";
+			col = "week("+ createTimeStr +",5)";
 		}else if(params.get("type").equals("month")){
-			col = "date_format(createtime,'%Y%m')";
+			col = "date_format("+ createTimeStr +",'%Y%m')";
 		}else if(params.get("type").equals("quarter")){
-			col = "quarter(createtime)";
+			col = "quarter("+ createTimeStr +")";
 		}else if(params.get("type").equals("year")){
-			col = "year(createtime)";
+			col = "year("+ createTimeStr +")";
 		}
-		
+
 		StringBuilder sql = new StringBuilder();
-		sql.append(" select GROUP_CONCAT(d) from (  ");
+		sql.append(" select wm_CONCAT(d) from (  ");
 		sql.append(" select $col d	from workflow_base where businesstype in (8,9,10) and customer_id=:cusId ");
 			if(!params.get("type").equals("year")){
-				sql.append(" and year(createtime)=:year  ");
+				sql.append(" and substr(createtime||'',1,4)=:year  ");
 			}
 		sql.append(" 	group by $col ");
 		sql.append(" ) t  ");
-		String rsql = sql.toString().replace("$col", col);	
+		String rsql = sql.toString().replace("$col", col);
 		return  ConvertUtil.obj2StrBlank(baseDao.queryForString(rsql,params));
 	}
 }
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);
 	}
 }
diff --git a/src/cn/ksource/web/service/knowledge/KmServiceImpl.java b/src/cn/ksource/web/service/knowledge/KmServiceImpl.java
index e38a94b..7f01b32 100644
--- a/src/cn/ksource/web/service/knowledge/KmServiceImpl.java
+++ b/src/cn/ksource/web/service/knowledge/KmServiceImpl.java
@@ -1,18 +1,6 @@
 package cn.ksource.web.service.knowledge;
 
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedList;
-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.KM_LIBRARY;
 import cn.ksource.beans.KM_LIBRARY_FAVORITE;
 import cn.ksource.beans.KM_LIBRARY_TEMP;
 import cn.ksource.core.dao.BaseDao;
@@ -23,13 +11,18 @@
 import cn.ksource.core.web.WebUtil;
 import cn.ksource.web.Constants;
 import cn.ksource.web.service.file.FileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 
 @Service
 public class KmServiceImpl implements KmService {
-	
+
 	@Autowired
 	private BaseDao baseDao;
-	
+
 	@Autowired
 	private FileService fileService;
 
@@ -38,10 +31,10 @@
         StringBuffer sql=new StringBuffer(" SELECT A.*,COUNT(B.ID) AS NUM FROM KM_LIBRARY_CATEGORY A LEFT JOIN KM_LIBRARY B ON A.ID = B.CATEGORY_ID and B.STATE = 1 WHERE  A.STATE=1 ");
 		sql.append(" GROUP BY A.ID ORDER BY A.LEVEL,A.SERIAL,A.TITLE");
 		List<Map> categoryList = baseDao.queryForList(sql.toString());
-		
-		
+
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
@@ -67,9 +60,9 @@
 				}
 			}
 		}
-		
+
 		for (Map map : categoryList) {
-			
+
 			//涓�绾ф爲
 			if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
 				yjgnCache.put(map.get("ID").toString(), map);
@@ -84,7 +77,7 @@
 				List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 				map.put("sjTree", new LinkedList<Map>());
 				list.add(map);
-				
+
 				ejgnCache.put(map.get("ID").toString(), map);
 				continue;
 			}
@@ -125,21 +118,21 @@
 		}else{
 			sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON A.ID = B.CATEGORY_ID and B.STATE = 1");
 		}
-		sql.append(" WHERE A.STATE=1  GROUP BY A.ID ORDER BY A.LEVEL,A.SERIAL,A.TITLE");
-        
+		sql.append(" WHERE A.STATE=1  GROUP BY A.ID,A.TITLE, A.TAG , A.LEVEL,A.SERIAL ORDER BY A.LEVEL,A.SERIAL,A.TITLE");
+
         List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId));
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		String firstCate = "";
 		String secondCate = "";
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : categoryList) {
-			
+
 			//涓�绾ф爲
 			if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
 				yjgnCache.put(map.get("ID").toString(), map);
@@ -154,7 +147,7 @@
 				List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 				map.put("sjTree", new LinkedList<Map>());
 				list.add(map);
-				
+
 				ejgnCache.put(map.get("ID").toString(), map);
 				continue;
 			}
@@ -168,14 +161,14 @@
 					List<Map> list = (List<Map>)ejgnMap.get("sjTree");
 					list.add(map);
 				}
-				
-				
+
+
 			}
 		}
-		
+
 		return resultList;
 	}
-	
+
 	@Override
 	public List<Map> getmyFavourite(String userId) {
 		StringBuilder sql = new StringBuilder();
@@ -184,7 +177,7 @@
 		sql.append("where k.CREATE_USER_ID=:create_user_id  ");
 		SqlParameter param = new SqlParameter();
 		param.addValue("create_user_id", userId);
-		
+
 		return baseDao.queryForList(sql.toString(), param);
 	}
 
@@ -203,13 +196,13 @@
 		StringBuilder sql = new StringBuilder();
 		sql.append("select t.ID,t.TITLE,t.TAG,t.CATEGORY_ID,t.SUMMARY,t.CREATE_TIME,t.CREATE_USER_NAME,t.IS_EDITOR,t.STATE from ( ");
 		sql.append("select DISTINCT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.CREATE_TIME,k.CREATE_USER_NAME,k.CATEGORY_ID,k.IS_EDITOR,p.STATE ");
-		
+
 		if(StringUtil.isEmpty(cusId)){
 			sql.append("from km_library k   ");
 		}else{
 			sql.append("from (SELECT A.* FROM KM_LIBRARY A,KM_LIBRARY_KNOWLEDGE_ACCESS B WHERE A.ID = B.KNOWLEDGE_ID AND B.CUSTOMER_ID = :cusId ) k   ");
 		}
-		
+
 		sql.append(" LEFT JOIN KM_LIBRARY_TEMP p on p.ORIGINAL_ID = k.ID where k.STATE=1  ");
 		sql.append("order by k.CREATE_TIME desc) t ");
 		sql.append("limit :limit1,:limit2 ");
@@ -220,7 +213,7 @@
 		param.addValue("cusId", cusId);
 		param.addValue("limit1", (begin-1)*size);
 		param.addValue("limit2", size);
-		
+
 		List<Map> list = baseDao.queryForList(sql.toString(), param);
 		List<Map> mylist = getmyFavourite(userId);
 		for (Map map : list) {
@@ -251,7 +244,7 @@
 		}
 		sql.append("where k.STATE=1   ");
 		sql.append("order by k.CREATE_TIME desc) t ");
-		
+
 		return baseDao.queryForInteger(sql.toString());
 	}
 
@@ -277,12 +270,12 @@
 			sql.append("and k.THIRD_CATEGORY_ID=:category_id ");
 		}
 		sql.append("order by k.CREATE_TIME desc) t ");
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("category_id", categoryId);
         param.addValue("userId", userId);
         param.addValue("cusId", cusId);
-        
+
 		return baseDao.queryForInteger(sql.toString(), param);
 	}
 
@@ -303,7 +296,7 @@
 		StringBuilder sql = new StringBuilder();
 		sql.append("select t.ID,t.TITLE,t.TAG,t.SUMMARY,t.CREATE_TIME,t.CREATE_USER_NAME,t.IS_EDITOR,t.STATE from ( ");
 		sql.append("select DISTINCT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.CREATE_TIME,k.CREATE_USER_NAME,k.IS_EDITOR,p.STATE ");
-		
+
 		if(StringUtil.isEmpty(cusId)){
 			sql.append("from km_library k   ");
 		}else{
@@ -327,7 +320,7 @@
 		param.addValue("category_id", categoryId);
 		param.addValue("userId", userId);
 		param.addValue("cusId", cusId);
-		
+
 		List<Map> list = baseDao.queryForList(sql.toString(), param);
 		List<Map> mylist = getmyFavourite(userId);
 		for (Map map : list) {
@@ -363,7 +356,7 @@
 		sql.append(" WHERE k.ID = :id ");
 		SqlParameter param = new SqlParameter();
 		param.addValue("id", libraryId);
-		
+
 		Map map = baseDao.queryForMap(sql.toString(), param);
 		List<Map> mylist = getmyFavourite(userId);
 		List<Map> myrecord = getmyknowRecord(userId);
@@ -393,18 +386,18 @@
 				}
 			}
 			map.put("tag_list", tagList);
-			
+
 		}
-		
+
 		//闄勪欢
 		map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("FILE_ID"))));
-		
-		
+
+
 		//鐭ヨ瘑鍏宠仈
 		String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id ";
 		List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", libraryId));
 		map.put("link_list", linkList);
-		
+
 		//鍘嗗彶鐗堟湰鍒楄〃
 		String historySql = "select ID,VERSION,CREATE_USER_NAME,CREATE_TIME from KM_LIBRARY_HISTORY "
 			+"where ORIGINAL_ID=:original_id and STATE=1  order by VERSION ";
@@ -413,10 +406,10 @@
 		//鐐瑰嚮鎺掑悕
 		Map rankMap = this.getLibraryRankForHits();
 		map.put("RANK", rankMap.get(libraryId));
-		
+
 		return map;
 	}
-	
+
 	@Override
 	public Map getLibraryZjbById(String libraryId, HttpServletRequest request) {
 		String userId = WebUtil.getLoginedUserId(request);
@@ -426,7 +419,7 @@
 		sql.append(" WHERE k.ID = :id ");
 		SqlParameter param = new SqlParameter();
 		param.addValue("id", libraryId);
-		
+
 		Map map = baseDao.queryForMap(sql.toString(), param);
 		List<Map> mylist = getmyFavourite(userId);
 		for(Map mymap :mylist){
@@ -445,13 +438,13 @@
 				}
 			}
 			map.put("tag_list", tagList);
-			
+
 		}
-		
+
 		//闄勪欢
 		map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("ID"))));
-		
-		
+
+
 		//鐭ヨ瘑鍏宠仈
 		String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id ";
 		List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", new  KM_LIBRARY_TEMP(libraryId).getInstanceById().getOriginal_id()));
@@ -459,7 +452,7 @@
 			linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", libraryId));
 		}
 		map.put("link_list", linkList);
-		
+
 		/*//鍘嗗彶鐗堟湰鍒楄〃
 		String historySql = "select ID,VERSION from KM_LIBRARY_HISTORY "
 			+"where ORIGINAL_ID=:original_id and STATE=1  order by VERSION ";
@@ -468,10 +461,10 @@
 		//鐐瑰嚮鎺掑悕
 		Map rankMap = this.getLibraryRankForHits();
 		map.put("RANK", rankMap.get(libraryId));*/
-		
+
 		return map;
 	}
-	
+
 	/**
 	 * 鑾峰彇鏂囧簱鐐瑰嚮鎺掑悕
 	 * @param partnerId
@@ -479,16 +472,16 @@
 	 */
 	private Map getLibraryRankForHits() {
 		Map resultMap = new HashMap();
-		
+
 		String sql = "select ID,HITS from km_library where STATE=1 order by HITS desc ";
-		
+
 		List<Map> list = baseDao.queryForList(sql);
 		if (list != null && list.size() > 0) {
 			for (int i=0; i<list.size(); i++) {
 				resultMap.put(list.get(i).get("ID"), i+1);
 			}
 		}
-		
+
 		return resultMap;
 	}
 
@@ -496,7 +489,7 @@
 	public boolean addMyLibraryFavourite(String libraryId, String userId) {
 		KM_LIBRARY_FAVORITE fav = new KM_LIBRARY_FAVORITE().setLibrary_id(libraryId)
 		.setCreate_user_id(userId).queryForBean();
-		
+
 		if (fav != null && fav.getCreate_time() > 0) {
 			return false;//涓嶉噸澶嶆敹钘�
 		} else {
@@ -513,12 +506,12 @@
 		//鍩烘湰淇℃伅
 		StringBuilder sql = new StringBuilder("select ID,TITLE,TAG,SUMMARY,CONTENT,CATEGORY_ID,CATEGORY_NAME,CREATE_USER_ID,CREATE_USER_NAME,CREATE_TIME,VERSION,HITS,STATE,FILE_ID ");
         sql.append("from km_library_history where ID=:id ");
-		
+
 		SqlParameter param = new SqlParameter();
 		param.addValue("id", historyId);
-		
+
 		Map map = baseDao.queryForMap(sql.toString(), param);
-		
+
 		//鏍囩
 		String tag = ConvertUtil.obj2Str(map.get("TAG"));
 		if (tag != null) {
@@ -531,17 +524,17 @@
 			}
 			map.put("tag_list", tagList);
 		}
-		
+
 		//闄勪欢
 		map.put("file_list", fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("FILE_ID"))));
-		
-		
+
+
 		//鐭ヨ瘑鍏宠仈
 		String linksql = "select B.ID,B.TITLE from KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id ";
 		List<Map> linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", historyId));
 		map.put("link_list", linkList);
-		
-		
+
+
 		return map;
 	}
 
@@ -549,26 +542,26 @@
 	public Map thirdlevelListTree(HttpServletRequest request) {
 		String category_id = request.getParameter("category_id");
 		String cusId = request.getParameter("cusId");
-		StringBuilder sql=new StringBuilder("SELECT A.* ,COUNT(B.ID) AS NUM FROM CMDB_CI_CATEGORY A LEFT JOIN ");
-		
+		StringBuilder sql=new StringBuilder("SELECT A.ID,A.PID,A.TYPE,A.NAME,A.CODE,A.LV,A.SERIAL,A.STATE,A.LV1_ID,A.LV1_NAME,A.LV2_ID,A.LV2_NAME,A.LV3_ID,A.LV3_NAME,A.FULL_ID,A.FULL_NAME,A.CATE_TYPE,COUNT(B.ID) AS NUM FROM CMDB_CI_CATEGORY A LEFT JOIN ");
+
 		if(StringUtil.isEmpty(cusId)){
 			sql.append(" KM_LIBRARY B ON A.ID = B.THIRDLEVEL_ID AND B.STATE = 1 ");
 		}else{
 			sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON A.ID = B.THIRDLEVEL_ID and B.STATE = 1");
 		}
-		sql.append(" WHERE A.STATE = 1 and a.cate_type=1 GROUP BY A.ID ORDER BY A.LV,A.SERIAL,A.NAME");
+		sql.append(" WHERE A.STATE = 1 and a.cate_type=1 GROUP BY  A.ID,A.PID,A.TYPE,A.NAME,A.CODE,A.LV,A.SERIAL,A.STATE,A.LV1_ID,A.LV1_NAME,A.LV2_ID,A.LV2_NAME,A.LV3_ID,A.LV3_NAME,A.FULL_ID,A.FULL_NAME,A.CATE_TYPE ORDER BY A.LV,A.SERIAL,A.NAME");
 		List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId));
-		
+
 		Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : categoryList) {
-			
+
 			//涓�绾ф爲
 			if (map.get("LV").toString().equalsIgnoreCase("1")) {
 				yjgnCache.put(map.get("ID").toString(), map);
@@ -583,7 +576,7 @@
 				List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 				map.put("sjTree", new LinkedList<Map>());
 				list.add(map);
-				
+
 				ejgnCache.put(map.get("ID").toString(), map);
 				continue;
 			}
@@ -593,7 +586,7 @@
 					map.put("select", 1);
 				}
 				if(null!=map.get("PID")){
-					
+
 					Map ejgnMap = ejgnCache.get(map.get("PID").toString());
 					List<Map> list = (List<Map>)ejgnMap.get("sjTree");
 					list.add(map);
@@ -610,29 +603,29 @@
 		String category_id = request.getParameter("category_id");
 		String cusId = request.getParameter("cusId");
 		String type = request.getParameter("type");
-		StringBuffer sql = new StringBuffer("SELECT D.*,COUNT(B.ID) AS NUM FROM (");
+		StringBuffer sql = new StringBuffer("SELECT D.ID,D.CATEGORY_CODE,D.CATEGORY_NAME,D.LEVEL,D.P_ID,D.STATE,D.SERIAL,D.TYPE, D.PHOTOPATH,COUNT(B.ID) AS NUM FROM (");
 		String sqlpart="SELECT * FROM SC_SERVCE_CATEGORY WHERE STATE = 1 AND TYPE = 2 ORDER BY LEVEL,SERIAL ";
 		sql.append(sqlpart);
 		sql.append(" ) D LEFT JOIN  ");
-		
+
 		if(StringUtil.isEmpty(cusId)){
 			sql.append(" KM_LIBRARY B ON D.ID = B.THIRD_CATEGORY_ID  and B.STATE = 1  ");
 		}else{
 			sql.append(" (SELECT C.* FROM KM_LIBRARY C,KM_LIBRARY_KNOWLEDGE_ACCESS D WHERE C.ID = D.KNOWLEDGE_ID AND D.CUSTOMER_ID = :cusId) B ON D.ID = B.THIRD_CATEGORY_ID and B.STATE = 1");
 		}
-		sql.append(" GROUP BY D.ID ORDER BY D.LEVEL,D.SERIAL,D.CATEGORY_NAME");
+		sql.append(" GROUP BY D.ID,D.CATEGORY_CODE,D.CATEGORY_NAME,D.LEVEL,D.P_ID,D.STATE,D.SERIAL,D.TYPE, D.PHOTOPATH ORDER BY D.LEVEL,D.SERIAL,D.CATEGORY_NAME");
 		List<Map> categoryList = baseDao.queryForList(sql.toString(),new SqlParameter("cusId",cusId));
-		
+
 		Map result = new HashMap();
-		
+
 		List<Map> resultList = new LinkedList<Map>();
-		
+
 		Map<String, Map> yjgnCache = new HashMap<String, Map>();
 		Map<String, Map> ejgnCache = new HashMap<String, Map>();
 		Map<String, Map> sjgnCache = new HashMap<String, Map>();
-		
+
 		for (Map map : categoryList) {
-			
+
 			//涓�绾ф爲
 			if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
 				yjgnCache.put(map.get("ID").toString(), map);
@@ -647,7 +640,7 @@
 				List<Map> list = (List<Map>)yjgnMap.get("ejTree");
 				map.put("sjTree", new LinkedList<Map>());
 				list.add(map);
-				
+
 				ejgnCache.put(map.get("ID").toString(), map);
 				continue;
 			}
@@ -657,7 +650,7 @@
 					map.put("select", 1);
 				}
 				if(null!=map.get("P_ID")){
-					
+
 					Map ejgnMap = ejgnCache.get(map.get("P_ID").toString());
 					List<Map> list = (List<Map>)ejgnMap.get("sjTree");
 					list.add(map);

--
Gitblit v1.9.1