package cn.ksource.web.facade.wechat.ewyw; 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_KNOWLEDGE_ACCESS; import cn.ksource.beans.KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP; import cn.ksource.beans.KM_LIBRARY_TEMP; import cn.ksource.beans.SC_WORKFLOW_INCIDENT; import cn.ksource.beans.SC_WORKFLOW_INCIDENT_LOCAL; import cn.ksource.beans.SC_WORKFLOW_QUESTION; 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.StringUtil; import cn.ksource.core.web.ClientUtil; 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.Constants; import cn.ksource.web.service.device.DeviceService; import cn.ksource.web.service.file.FileService; import cn.ksource.web.service.knowledge.KmService; import cn.ksource.web.service.order.OrderService; @Service("ewKnowledgeFacade") public class EwKnowledgeFacadeImpl implements EwKnowledgeFacade { @Autowired private BaseDao baseDao; @Autowired private KmService kmService; @Autowired private FileService fileService; @Autowired private OrderService orderService; @Autowired private DeviceService deviceService; @Autowired private KnowledgeDealFacade knowledgeDealFacade; @Override public Integer queryNewKwCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(ID) FROM KM_LIBRARY WHERE STATE = 1 "); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo queryNewKwData(PageInfo pageInfo, Map params) { StringBuilder sql = new StringBuilder("SELECT ID,TITLE,TAG,SUMMARY,UPDATE_DATE,HITS,CREATE_USER_ID,CREATE_USER_NAME,CREATE_TIME,FILE_ID FROM KM_LIBRARY WHERE STATE = 1 "); sql.append(" ORDER BY UPDATE_DATE DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } @Override public Map queryKnowledgeInfo(String id,String userId) { String selectSql = "SELECT * FROM KM_LIBRARY WHERE ID = :id "; Map param = new HashMap(); param.put("id", id); Map kw = baseDao.queryForMap(selectSql,new SqlParameter("id",id)); //得到审批状态 String audit_state = baseDao.queryForString("SELECT AUDIT_STATE FROM KM_LIBRARY_TEMP WHERE ORIGINAL_ID = :id",new SqlParameter("id",id)); kw.put("AUDIT_STATE", audit_state); param.put("type", Constants.KM_SCORE_RULE_TYPE_D); int zan = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); param.put("type", Constants.KM_SCORE_RULE_TYPE_C); int cai = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); kw.put("ZANNUM", zan); kw.put("CAINUM", cai); if(null!=kw && kw.size()>0) { List mylist = kmService.getmyFavourite(userId); List myrecord = kmService.getmyknowRecord(userId); for(Map mymap :mylist){ if(kw.get("ID").equals(mymap.get("LIBRARY_ID"))){ kw.put("favourite", 1); } } for(Map mymap :myrecord){ if(kw.get("ID").equals(mymap.get("LIBRARY_ID"))){ if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_D){ kw.put("zan", 1); } if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_C){ kw.put("cai", 1); } } } String tag = ConvertUtil.obj2StrBlank(kw.get("TAG")); String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(kw.get("FILE_ID"))); //知识关联 List knowList = queryLinkKnows(id,""); kw.put("files", fileList); kw.put("filesize", fileList.size()); kw.put("knowsize", knowList.size()); } return kw; } @Override public Map queryKnowledgeInfoSh(String id,String userId) { String selectSql = "SELECT A.*,B.ID BID FROM KM_LIBRARY_TEMP A LEFT JOIN KM_LIBRARY B ON A.ORIGINAL_ID = B.ID WHERE A.ID = :id "; Map param = new HashMap(); param.put("id", id); Map kw = baseDao.queryForMap(selectSql,new SqlParameter("id",id)); //得到正式表的编号 String contentState = ConvertUtil.obj2Str(kw.get("CONTENT_STATE")); if(!contentState.equals("1")){ param.put("id", kw.get("BID")); } param.put("type", Constants.KM_SCORE_RULE_TYPE_D); int zan = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); param.put("type", Constants.KM_SCORE_RULE_TYPE_C); int cai = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); kw.put("ZANNUM", zan); kw.put("CAINUM", cai); if(null!=kw && kw.size()>0) { List mylist = kmService.getmyFavourite(userId); List myrecord = kmService.getmyknowRecord(userId); for(Map mymap :mylist){ if(kw.get("ID").equals(mymap.get("LIBRARY_ID"))){ kw.put("favourite", 1); } } for(Map mymap :myrecord){ if(kw.get("ID").equals(mymap.get("LIBRARY_ID"))){ if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_D){ kw.put("zan", 1); } if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_C){ kw.put("cai", 1); } } } String tag = ConvertUtil.obj2StrBlank(kw.get("TAG")); String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(kw.get("ID"))); //知识关联 List knowList = queryLinkKnowsTemp(id); kw.put("files", fileList); kw.put("filesize", fileList.size()); kw.put("knowsize", knowList.size()); } return kw; } @Override public List queryLinkKnows(String knowId,String type) { //知识关联 String linksql = ""; List knowList = new ArrayList(); if(StringUtil.isEmpty(type)){ linksql = "select B.* from KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; knowList = baseDao.queryForList(linksql, new SqlParameter("library_id", knowId)); }else{ linksql = "select B.* from KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY_TEMP B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; knowList = baseDao.queryForList(linksql, new SqlParameter("library_id", knowId)); } if(knowList.size()>0){ List 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); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } return knowList; } @Override public List queryLinkKnowsTemp(String knowId) { //知识关联 String linksql = "select B.* from KM_LIBRARY_KNOWLEDGE_TEMP A,KM_LIBRARY B where A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID=:library_id "; List knowList = baseDao.queryForList(linksql, new SqlParameter("library_id", knowId)); if(knowList.size()>0){ List 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); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } return knowList; } @Override public List queryFiles(String fileId) { List files = fileService.getFileList(fileId); if(null!=files && files.size()>0) { for(Map file : files) { file.put("FILE_SIZE", StringUtil.getFileSize(ConvertUtil.obj2Double(file.get("FILE_SIZE")))); String fileFormat = ConvertUtil.obj2StrBlank(file.get("FILE_FORMAT")); String docSuffer = StringUtil.wechateDocSuffer(fileFormat); file.put("SUFFER", docSuffer); } } return files; } @Override public Map companyCiCate(String pid) { StringBuffer sql=new StringBuffer("SELECT A.ID,A.NAME,A.CODE,A.LV JB,A.PID FROM CMDB_CI_CATEGORY A WHERE A.STATE = 1 AND A.CATE_TYPE=1 "); Map paraMap = new HashMap(); if(StringUtil.isEmpty(pid)){ sql.append(" AND A.LV = 1 "); } sql.append(" ORDER BY A.LV,A.SERIAL "); List categoryList = baseDao.queryForList(sql.toString(),paraMap); if(!StringUtil.isEmpty(pid)){ List resultList = new LinkedList(); Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { //一级树 if (map.get("JB").toString().equalsIgnoreCase("2") && pid.equals(map.get("PID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("JB").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("PID"))) { Map yjgnMap = yjgnCache.get(map.get("PID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } categoryList = resultList; } Map resultMap = new HashMap(); resultMap.put("datas", categoryList); resultMap.put("flag", 0); resultMap.put(ClientUtil.SUCCESS, true); resultMap.put(ClientUtil.MSG, "成功"); return resultMap; } @Override public Map companyKnowCate(String pid) { StringBuffer sql= new StringBuffer(" SELECT A.ID,A.TITLE,A.TAG P_ID,A.LEVEL FROM KM_LIBRARY_CATEGORY A WHERE A.STATE=1 "); if(StringUtil.isEmpty(pid)){ sql.append(" AND A.LEVEL = 1 "); } sql.append(" ORDER BY A.LEVEL,A.TITLE "); List categoryList = baseDao.queryForList(sql.toString()); if(!StringUtil.isEmpty(pid)){ List resultList = new LinkedList(); Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2") && pid.equals(map.get("P_ID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("P_ID"))) { Map yjgnMap = yjgnCache.get(map.get("P_ID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } categoryList = resultList; } Map resultMap = new HashMap(); resultMap.put("datas", categoryList); resultMap.put("flag", 0); resultMap.put(ClientUtil.SUCCESS, true); resultMap.put(ClientUtil.MSG, "成功"); return resultMap; } @Override public Map companyServiceCate(String pid) { StringBuffer sql = new StringBuffer(); sql.append("SELECT ID,CATEGORY_NAME,CATEGORY_CODE,LEVEL,P_ID FROM SC_SERVCE_CATEGORY WHERE STATE = 1 AND TYPE = 2 "); if(StringUtil.isEmpty(pid)){ sql.append(" AND LEVEL = 1 "); } sql.append(" ORDER BY LEVEL,SERIAL "); List categoryList = baseDao.queryForList(sql.toString()); if(!StringUtil.isEmpty(pid)){ List resultList = new LinkedList(); Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2") && pid.equals(map.get("P_ID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("P_ID"))) { Map yjgnMap = yjgnCache.get(map.get("P_ID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } categoryList = resultList; } Map resultMap = new HashMap(); resultMap.put("datas", categoryList); resultMap.put("flag", 0); resultMap.put(ClientUtil.SUCCESS, true); resultMap.put(ClientUtil.MSG, "成功"); return resultMap; } @Override public Integer queryCompanyNewKwCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(ID) "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append("FROM KM_LIBRARY WHERE STATE = 1 "); }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 "); } return baseDao.queryForInteger(sql.toString(),params); } @Override public PageInfo queryCompanyNewKwData(PageInfo pageInfo, Map params) { StringBuilder sql = new StringBuilder("SELECT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.UPDATE_DATE,k.HITS,k.CREATE_USER_ID,k.CREATE_USER_NAME,k.CREATE_TIME,k.FILE_ID "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append("FROM KM_LIBRARY k WHERE STATE = 1 "); }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(" ORDER BY k.UPDATE_DATE DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } @Override public List companyCiCatenum(Map params) { String pid = params.get("pid"); String cusId = params.get("cusId"); StringBuffer sql=new StringBuffer("SELECT A.ID,A.NAME,A.CODE,A.LV JB,A.PID,COUNT(B.ID) AS NUM FROM CMDB_CI_CATEGORY A LEFT JOIN "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append(" KM_LIBRARY B ON B.THIRDLEVEL_ID = A.ID AND B.STATE = 1 WHERE A.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 B.THIRDLEVEL_ID = A.ID AND B.STATE = 1 WHERE A.STATE=1 "); } sql.append(" and a.cate_type=1 GROUP BY A.ID ORDER BY A.LV,A.SERIAL "); List categoryList = baseDao.queryForList(sql.toString(),params); List resultList = new LinkedList(); if(!StringUtil.isEmpty(pid)){ Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { if (map.get("JB").toString().equalsIgnoreCase("2")&&map.get("PID").equals(pid)) { for(Map map1 : categoryList){ int num = ConvertUtil.obj2Int(map.get("NUM")); if(map.get("ID").equals(map1.get("PID"))){ num += ConvertUtil.obj2Int(map1.get("NUM")); map.put("NUM", num); } } } } for (Map map : categoryList) { //一级树 if (map.get("JB").toString().equalsIgnoreCase("2") && pid.equals(map.get("PID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("JB").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("PID"))) { Map yjgnMap = yjgnCache.get(map.get("PID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } } return resultList; } @Override public List companyKnowCatenum(Map params) { String pid = params.get("pid"); String cusId = params.get("cusId"); StringBuffer sql= new StringBuffer(" SELECT A.ID,A.TITLE,A.TAG P_ID,A.LEVEL ,COUNT(B.ID) AS NUM FROM KM_LIBRARY_CATEGORY A LEFT JOIN "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append(" KM_LIBRARY B ON B.CATEGORY_ID = A.ID AND B.STATE = 1 WHERE A.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 B.CATEGORY_ID = A.ID AND B.STATE = 1 WHERE A.STATE=1 "); } sql.append(" GROUP BY A.ID ORDER BY A.LEVEL,A.TITLE "); List categoryList = baseDao.queryForList(sql.toString(),params); List resultList = new LinkedList(); if(!StringUtil.isEmpty(pid)){ Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { if (map.get("LEVEL").toString().equalsIgnoreCase("2")&&map.get("P_ID").equals(pid)) { for(Map map1 : categoryList){ int num = ConvertUtil.obj2Int(map.get("NUM")); if(map.get("ID").equals(map1.get("P_ID"))){ num += ConvertUtil.obj2Int(map1.get("NUM")); map.put("NUM", num); } } } } for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2") && pid.equals(map.get("P_ID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("P_ID"))) { Map yjgnMap = yjgnCache.get(map.get("P_ID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } } return resultList; } @Override public List companyServiceCatenum(Map params) { String pid = params.get("pid"); String cusId = params.get("cusId"); StringBuffer sql = new StringBuffer(); sql.append("SELECT A.ID,A.CATEGORY_NAME,A.CATEGORY_CODE,A.LEVEL,A.P_ID,COUNT(B.ID) AS NUM FROM SC_SERVCE_CATEGORY A LEFT JOIN "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append(" KM_LIBRARY B ON B.THIRD_CATEGORY_ID = A.ID AND B.STATE = 1 WHERE A.STATE = 1 AND A.TYPE = 2 "); }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 B.THIRD_CATEGORY_ID = A.ID AND B.STATE = 1 WHERE A.STATE=1 AND A.TYPE = 2 "); } sql.append(" GROUP BY A.ID ORDER BY A.LEVEL,A.SERIAL "); List categoryList = baseDao.queryForList(sql.toString(),params); List resultList = new LinkedList(); if(!StringUtil.isEmpty(pid)){ Map cacheMap = new HashMap(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); for (Map map : categoryList) { if (map.get("LEVEL").toString().equalsIgnoreCase("2")&&map.get("P_ID").equals(pid)) { for(Map map1 : categoryList){ int num = ConvertUtil.obj2Int(map.get("NUM")); if(map.get("ID").equals(map1.get("P_ID"))){ num += ConvertUtil.obj2Int(map1.get("NUM")); map.put("NUM", num); } } } } for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2") && pid.equals(map.get("P_ID"))) { cacheMap.put(map.get("ID"), map); yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3") && cacheMap.containsKey(map.get("P_ID"))) { Map yjgnMap = yjgnCache.get(map.get("P_ID").toString()); List list = (List)yjgnMap.get("ejTree"); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } } } return resultList; } @Override public Integer knowListBycateIdCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(k.ID) "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append("FROM KM_LIBRARY k WHERE STATE = 1 "); }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 WHERE STATE = 1 "); } queryknowListIf(params,sql); return baseDao.queryForInteger(sql.toString(),params); } @Override public PageInfo knowListBycateIdData(PageInfo pageInfo, Map params) { StringBuilder sql = new StringBuilder("SELECT k.ID,k.TITLE,k.TAG,k.SUMMARY,k.UPDATE_DATE,k.HITS,k.CREATE_USER_ID,k.CREATE_USER_NAME,k.CREATE_TIME,k.FILE_ID "); if(StringUtil.isEmpty(params.get("cusId"))){ sql.append("FROM KM_LIBRARY k WHERE STATE = 1 "); }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 WHERE STATE = 1 "); } queryknowListIf(params,sql); sql.append(" ORDER BY k.UPDATE_DATE DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } private void queryknowListIf(Map params, StringBuilder sql) { if("1".equals(params.get("type"))){ sql.append(" AND CATEGORY_ID = :categoryId "); }else if("2".equals(params.get("type"))){ sql.append(" AND THIRDLEVEL_ID = :categoryId "); }else{ sql.append(" AND THIRD_CATEGORY_ID = :categoryId "); } } @Override public PageInfo queryMyEditKwData(PageInfo pageInfo,Map params) { StringBuilder sql = new StringBuilder("select k.ID,k.TITLE,k.TAG,K.CREATE_USER_NAME,K.CREATE_TIME,k.CATEGORY_NAME ,k.FILE_ID,f.EDITOR_DATE,k.HITS from KM_LIBRARY_UPDATER f,KM_LIBRARY k "); sql.append("where f.LIBRARY_ID=k.ID and k.STATE=1 and f.USER_ID=:userId and f.TYPE = 2 "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } @Override public Integer queryMyEditKwCount(Map params) { StringBuilder sql = new StringBuilder("select k.ID,k.TITLE,k.TAG,K.CREATE_USER_NAME,K.CREATE_TIME,k.CATEGORY_NAME ,k.FILE_ID,f.EDITOR_DATE,k.HITS from KM_LIBRARY_UPDATER f,KM_LIBRARY k "); sql.append("where f.LIBRARY_ID=k.ID and k.STATE=1 and f.USER_ID=:userId and f.TYPE = 2 "); String countSql = "select count(*) from ("+sql.toString() + ") t "; return baseDao.queryForInteger(countSql.toString(),params); } @Override public PageInfo queryMyFavoriteKwData(PageInfo pageInfo,Map params) { StringBuilder builder = new StringBuilder(); getMyFavoriteKwSql(builder); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } /** * 获取我收藏的知识列表 * @param builder */ private void getMyFavoriteKwSql(StringBuilder builder){ builder.append(" SELECT L.ID,L.TITLE,L.TAG,L.SUMMARY,L.CREATE_USER_NAME,L.CREATE_TIME,L.UPDATE_DATE,L.HITS,L.FILE_ID FROM KM_LIBRARY L,KM_LIBRARY_FAVORITE F "); builder.append(" WHERE L.ID = F.LIBRARY_ID AND F.CREATE_USER_id = :userId ORDER BY L.UPDATE_DATE DESC "); } @Override public Integer queryMyFavoriteKwCount(Map params) { StringBuilder builder = new StringBuilder(); getMyFavoriteKwSql(builder); String countSql = "select count(*) from ("+builder.toString() + ") t "; return baseDao.queryForInteger(countSql.toString(),params); } @Override public PageInfo queryMyKwData(PageInfo pageInfo,Map params) { StringBuilder builder = new StringBuilder(); getMyKwSql(builder); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.toString(), params); List datas = info.getDatas(); if(datas.size()>0){ List 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); } } for(Map map:datas){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(datas); return info; } /** * 获取我的知识列表 * @param builder */ private void getMyKwSql(StringBuilder builder){ builder.append(" SELECT ID,TITLE,TAG,SUMMARY,CREATE_USER_NAME,CREATE_TIME,UPDATE_DATE,HITS,FILE_ID FROM KM_LIBRARY "); builder.append(" WHERE CREATE_USER_id = :userId ORDER BY UPDATE_DATE DESC "); } @Override public Integer queryMyKwCount(Map params) { StringBuilder builder = new StringBuilder(); getMyKwSql(builder); String countSql = "select count(*) from ("+builder.toString() + ") t "; return baseDao.queryForInteger(countSql.toString(),params); } @Override public Map queryProjectSeviceList(HttpServletRequest request) { String sl = request.getParameter("sl"); String dept = ConvertUtil.obj2StrBlank(WebUtil.getWywEngineerLoginUser(request).get("YJBMBH")); String sql="SELECT * FROM SC_SERVCE_CATEGORY WHERE STATE = 1 AND TYPE = 2 ORDER BY LEVEL,SERIAL "; List categoryList = baseDao.queryForList(sql,new SqlParameter().addValue("dept", dept)); Map slMap = new HashMap(); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); for(String s : sls) { slMap.put(s, s); } } Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2")) { Map yjgnMap = yjgnCache.get(map.get("P_ID").toString()); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } //三级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3")) { if(null!=map.get("P_ID")){ if(slMap.containsKey(map.get("ID"))) { slMap.put(map.get("ID"), map.get("CATEGORY_NAME")); map.put("check", 1); } else { map.put("check", 2); } Map ejgnMap = ejgnCache.get(map.get("P_ID").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } Map resultMap = new HashMap(); resultMap.put("categoryList", resultList); resultMap.put("slMap", slMap); return resultMap; } @Override public Map categoryListTree(HttpServletRequest request) { String deptId = ConvertUtil.obj2StrBlank(WebUtil.getWywEngineerLoginUser(request).get("YJBMBH")); String userId = WebUtil.getWywEngineerLoginUser(request).get("ID").toString(); String company = request.getParameter("company"); String dept = request.getParameter("dept"); String sql="SELECT * FROM KM_LIBRARY_CATEGORY WHERE STATE = 1 "; sql +=" ORDER BY LEVEL,SERIAL "; Map slMap = new HashMap(); String sl = request.getParameter("sl"); if(StringUtil.notEmpty(sl)) { String[] sls = sl.split(","); for(String s : sls) { slMap.put(s, s); } } List categoryList = baseDao.queryForList(sql); Map result = new HashMap(); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : categoryList) { //一级树 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("ejTree", ejgnList); resultList.add(map); continue; } //二级树 if (map.get("LEVEL").toString().equalsIgnoreCase("2")) { Map yjgnMap = yjgnCache.get(map.get("TAG").toString()); List list = (List)yjgnMap.get("ejTree"); map.put("sjTree", new LinkedList()); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } //三级树 if (map.get("LEVEL").toString().equalsIgnoreCase("3")) { if(null!=map.get("TAG")){ if(slMap.containsKey(map.get("ID"))) { slMap.put(map.get("ID"), map.get("TITLE")); map.put("check", 1); } else { map.put("check", 2); } Map ejgnMap = ejgnCache.get(map.get("TAG").toString()); List list = (List)ejgnMap.get("sjTree"); list.add(map); } } } Map resultMap = new HashMap(); resultMap.put("categoryList", resultList); resultMap.put("slMap", slMap); return resultMap; } @Override public Map saveKnowledge(HttpServletRequest request, KM_LIBRARY_TEMP km_library_temp) { Map resultMap = new HashMap(); resultMap.put("result", 2); Map user = WebUtil.getWywEngineerLoginUser(request); String changeId = request.getParameter("changeId"); String bustype = request.getParameter("bustype"); String sh = request.getParameter("sh"); String add = String.valueOf(request.getAttribute("add")); if(!"1".equals(sh)){ if(StringUtil.isEmpty(add)){ km_library_temp.setContent_state(1); }else{ km_library_temp.setContent_state(2); km_library_temp.setId(null); } } String version = request.getParameter("version"); 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 category_id = request.getParameter("category_id"); String categoryList = request.getParameter("categoryList"); String thirdlevel_id = request.getParameter("thirdlevel_id"); String thirdlevelList = request.getParameter("thirdlevelList"); String first_category_id = new String(); String first_category_name = new String(); String second_category_id = new String(); String second_category_name = new String(); String third_category_id = new String(); String third_category_name = new String(); String categoryid = new String(); String category_name = new String(); String first_knowcategory_id = new String(); String first_knowcategory_name = new String(); String second_knowcategory_id = new String(); String second_knowcategory_name = new String(); String third_level_id = new String(); String third_level_name = new String(); String first_level_id = new String(); String first_level_name = new String(); String second_level_id = new String(); String second_level_name = new String(); if(StringUtil.notEmpty(serivceListId) && StringUtil.notEmpty(serivceList)) { String[] serivceListIds = serivceListId.split("-"); String[] serivceLists = serivceList.split("-"); if(serivceListIds.length>0){ first_category_id = serivceListIds[0]; first_category_name = serivceLists[0]; second_category_id = serivceListIds[1]; second_category_name = serivceLists[1]; third_category_id = serivceListIds[2]; third_category_name = serivceLists[2]; } } if(StringUtil.notEmpty(category_id) && StringUtil.notEmpty(categoryList)) { String[] categoryListIds = category_id.split("-"); String[] categoryLists = categoryList.split("-"); if(categoryListIds.length>0){ first_knowcategory_id = categoryListIds[0]; first_knowcategory_name = categoryLists[0]; second_knowcategory_id = categoryListIds[1]; second_knowcategory_name = categoryLists[1]; categoryid = categoryListIds[2]; category_name = categoryLists[2]; } } if(StringUtil.notEmpty(thirdlevel_id) && StringUtil.notEmpty(thirdlevelList)) { String[] thirdListIds = thirdlevel_id.split("-"); String[] thirdLists = thirdlevelList.split("-"); if(thirdListIds.length>0){ first_level_id = thirdListIds[0]; first_level_name = thirdLists[0]; second_level_id = thirdListIds[1]; second_level_name = thirdLists[1]; third_level_id = thirdListIds[2]; third_level_name = thirdLists[2]; } } //待审核 Integer auditState = Constants.KM_LIBRARY_TEMP_AUDIT_STATE_DSH; Map shuser = knowledgeDealFacade.getSpMap(categoryid); String shId = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_ID")); String shName = ""; if(StringUtil.isEmpty(shId)){ shuser = knowledgeDealFacade.getDefaultSpMap(); shId = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_ID")); if(!StringUtil.isEmpty(shId)){ shName = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_NAME")); } }else{ shName = ConvertUtil.obj2StrBlank(shuser.get("AUDITOR_NAME")); } if(!StringUtil.isEmpty(shId)){ //是否用户可见 Integer access_type = ConvertUtil.obj2Integer(request.getParameter("isKj")); long createTime = DateUtil.getCurrentDate14(); km_library_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) .setFirstlevel_id(first_level_id).setFirstlevel_name(first_level_name) .setSecondlevel_id(second_level_id).setSecondlevel_name(second_level_name) .setThirdlevel_id(third_level_id).setThirdlevel_name(third_level_name) .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) .setUpdate_date(createTime).setUpdater_id(userId).setUpdate_name(userName).setHits(0).setIs_editor(ConvertUtil.obj2Integer(request.getParameter("is_editor"))); if(StringUtil.isBlank(km_library_temp.getId())){ km_library_temp.setCreate_user_id(userId).setCreate_user_name(userName).setCreate_time(createTime); } km_library_temp.setState(ConvertUtil.obj2Integer(1)).setAudit_state(auditState).setAudit_userid(shId).setAudit_username(shName).setAccess_type(access_type).insertOrUpdate(); if(ConvertUtil.obj2Integer(km_library_temp.getContent_state()) == 1){ km_library_temp.setBefore_version(null).setAfter_version(1).setVersion("1").update(); }else{ KM_LIBRARY kn = new KM_LIBRARY(request.getParameter("id")).getInstanceById(); km_library_temp.setCreate_user_id(kn.getCreate_user_id()).setCreate_user_name(kn.getCreate_user_name()).setCreate_time(kn.getCreate_time()); km_library_temp.setOriginal_id(request.getParameter("id")).setVersion((ConvertUtil.obj2Integer(version)+1)+"").setAfter_version(ConvertUtil.obj2Integer(version)+1).setBefore_version(ConvertUtil.obj2Integer(version)).update(); } //修改的时候不更新这些消息 if(ConvertUtil.obj2Integer(km_library_temp.getContent_state()) == 1){ //添加用户权限信息 String cusId = request.getParameter("cusId"); String cusList = request.getParameter("cusList"); if(access_type == 1 ){ //需要设置权限 KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP access_temp = new KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP(); //每次重新存之前先删除先前的数据 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_ACCESS WHERE KNOWLEDGE_ID = :knowId", new SqlParameter("knowId",km_library_temp.getId())); String[] cusIdArray = cusId.split(","); String[] cusListArray = cusList.split(","); for (int i = 0; i < cusIdArray.length; i++) { access_temp = new KM_LIBRARY_KNOWLEDGE_ACCESS_TEMP(); access_temp.setKnowledge_id(km_library_temp.getId()).setCustomer_id(cusIdArray[i]).setCustomer_name(cusListArray[i]).insert(); } } //添加关联知识 //删除已存在的关联知识 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_TEMP WHERE LIBRARY_ID = :business_id ", new SqlParameter("business_id",km_library_temp.getId())); String[] knowId = request.getParameterValues("knowId"); if(null!=knowId && knowId.length>0) { List paramList = new ArrayList(); for(String str : knowId) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.put("id", StringUtil.getUUID()); sqlParameter.put("library_id", km_library_temp.getId()); sqlParameter.put("knowledge_id", str); paramList.add(sqlParameter); } String insertSql = "INSERT INTO KM_LIBRARY_KNOWLEDGE_TEMP(ID,LIBRARY_ID,KNOWLEDGE_ID) VALUES (:id,:library_id,:knowledge_id)"; baseDao.executeBatch(insertSql, paramList); } } //提交工单时上传文档附件 //fileService.uploadFile(request,km_library_temp.getId(),Constants.GG_FOLDERS_KNOWFOLDERS,Constants.FILE_STATE_SHTG,null); SysInfoMsg msg = new SysInfoMsg("2",shName,"知识审核"); resultMap.put("msg", msg); resultMap.put("result", 1); //转知识 if(!StringUtil.isEmpty(changeId)){ if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT == ConvertUtil.obj2Int(bustype)){ SC_WORKFLOW_INCIDENT incident = new SC_WORKFLOW_INCIDENT(changeId); incident.setKnowledgeid(km_library_temp.getId()).update(); }else if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION == ConvertUtil.obj2Int(bustype)){ SC_WORKFLOW_QUESTION question = new SC_WORKFLOW_QUESTION(changeId); question.setKnowledgeid(km_library_temp.getId()).update(); }else if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL == ConvertUtil.obj2Int(bustype)){ SC_WORKFLOW_INCIDENT_LOCAL zcyw = new SC_WORKFLOW_INCIDENT_LOCAL(changeId); zcyw.setKnowledgeid(km_library_temp.getId()).update(); } } }else{ resultMap.put("nouser", 1); } return resultMap; } @Override public int knowtypeCount(Map params) { String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT COUNT(ID) FROM KM_LIBRARY WHERE STATE = 1 "); if("jh".equals(type)){ sql.append(" AND IS_ESSENCE = 1 "); } if("top".equals(type)){ sql.append(" AND IS_TOP = 1 "); } return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo knowtypeData(PageInfo pageInfo, Map params) { String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT ID,TITLE,TAG,SUMMARY,CREATE_USER_NAME,HITS,CREATE_TIME,FILE_ID FROM KM_LIBRARY WHERE STATE = 1 "); if("new".equals(type)){ sql.append(" ORDER BY CREATE_TIME DESC "); } if("jh".equals(type)){ sql.append(" AND IS_ESSENCE = 1 ORDER BY CREATE_TIME DESC "); } if("top".equals(type)){ sql.append(" AND IS_TOP = 1 ORDER BY CREATE_TIME DESC "); } if("hot".equals(type)){ sql.append(" ORDER BY HITS DESC "); } PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List knowList = info.getDatas(); if(knowList.size()>0){ for (Map map : knowList) { map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i 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); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(knowList); return info; } @Override public int queryUserCount(Map params) { String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE "; List list = baseDao.queryForList(sql1); Map cacheMap = new HashMap(); for(Map map:list){ int score = ConvertUtil.obj2Int(map.get("SCORE")); cacheMap.put(map.get("TYPE"),score); } String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT COUNT(ID) FROM GG_USER WHERE ZT = 1 "); 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)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ){ sql.append(" AND KM_SCORE >=:score1 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)) ); } } return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo queryUserData(PageInfo pageInfo, Map params) { String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE "; List list = baseDao.queryForList(sql1); Map cacheMap = new HashMap(); for(Map map:list){ int score = ConvertUtil.obj2Int(map.get("SCORE")); cacheMap.put(map.get("TYPE"),score); } String type = params.get("type"); StringBuilder sql = new StringBuilder("SELECT * FROM GG_USER WHERE ZT = 1 "); 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)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ){ sql.append(" AND KM_SCORE >=:score1 AND KM_SCORE< :score2 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) ); params.put("score2", ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))); }else if(ConvertUtil.obj2Integer(type) == Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ){ sql.append(" AND KM_SCORE >=:score1 "); params.put("score1",ConvertUtil.obj2StrBlank(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)) ); } } sql.append(" ORDER BY KM_SCORE DESC "); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List userList = info.getDatas(); 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", ""); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ); } } } 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", ""); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_CJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)) && score< ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_GJZJ); } if(score >= ConvertUtil.obj2Int(cacheMap.get(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ))){ map.put("DQDJ", Constants.getmapKM_EXPERT_LEVEL_RULE_TYPE_Label(Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ)); map.put("djtype", Constants.KM_EXPERT_LEVEL_RULE_TYPE_ZSZJ); } } } info.setDatas(userList); return info; } @Override public int getMyKnowCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT K.ID) FROM KM_LIBRARY K LEFT JOIN KM_LIBRARY_TEMP F ON K.ID = F.ORIGINAL_ID WHERE 1=1 "); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo getMyKnowData(Map 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 "); sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List knowList = info.getDatas(); if(knowList.size()>0){ for (Map map : knowList) { map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i 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); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(knowList); return info; } @Override public Integer queryKnowledgeShCount(Map params) { StringBuilder sql = new StringBuilder("SELECT COUNT(DISTINCT 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 ,AUDIT_USERID FROM km_library_temp ) "); sql.append(" UNION ALL( 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, 2 AS AUDIT_STATE,AUDIT_USERID FROM km_library )"); sql.append(") K WHERE K.STATE=1 AND K.AUDIT_USERID=:loginUserId"); return baseDao.queryForInteger(sql.toString(), params); } @Override public PageInfo queryKnowledgeShData(PageInfo pageInfo, Map params) { 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 ,AUDIT_USERID FROM km_library_temp ) "); sql.append(" UNION ALL( 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, 2 AS AUDIT_STATE,AUDIT_USERID FROM km_library )"); sql.append(" ) K WHERE K.STATE=1 AND K.AUDIT_USERID=:loginUserId AND K.AUDIT_STATE = 1"); sql.append(" ORDER BY K.AUDIT_STATE,K.CREATE_TIME DESC"); PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params); List knowList = info.getDatas(); if(knowList.size()>0){ for (Map map : knowList) { map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd HH:mm:ss", map.get("CREATE_TIME"))); //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i 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); } } for(Map map:knowList){ if(cachefile.containsKey(map.get("FILE_ID"))){ map.put("isfiles", "1"); }else{ map.put("isfiles", "0"); } } } info.setDatas(knowList); return info; } @Override public Map getKnowledgeMsgById(String id) { Map knowMap = new KM_LIBRARY(id).getBeanMapById(); List knowList = baseDao.queryForList("SELECT B.* FROM KM_LIBRARY_KNOWLEDGE A,KM_LIBRARY B WHERE A.KNOWLEDGE_ID = B.ID AND A.LIBRARY_ID = :business_id", new SqlParameter("business_id",id)); knowMap.put("knows", knowList); //用户可见权限 用户 List cusList = baseDao.queryForList("SELECT * FROM KM_LIBRARY_KNOWLEDGE_ACCESS WHERE KNOWLEDGE_ID = :id", new SqlParameter().addValue("id", knowMap.get("ID"))); String cusIdStr = new String(); String cusListStr = new String(); if(cusList.size() > 0){ for (Map map : cusList) { cusIdStr += map.get("CUSTOMER_ID") + ","; cusListStr += map.get("CUSTOMER_NAME") + ","; } knowMap.put("cusId", cusIdStr.substring(0, cusIdStr.length()-1)); knowMap.put("cusList", cusListStr.substring(0, cusListStr.length()-1)); }else{ knowMap.put("cusId", cusIdStr); knowMap.put("cusList", cusListStr); } //组织三级分类数据 String category_id = knowMap.get("FIRST_KNOWCATEGORY_ID").toString() + "-" + knowMap.get("SECOND_KNOWCATEGORY_ID") + "-" + knowMap.get("CATEGORY_ID"); String categoryList = knowMap.get("FIRST_KNOWCATEGORY_NAME").toString() + "-" + knowMap.get("SECOND_KNOWCATEGORY_NAME") + "-" + knowMap.get("CATEGORY_NAME"); String serivceListId = knowMap.get("FIRST_CATEGORY_ID").toString() + "-" + knowMap.get("SECOND_CATEGORY_ID") + "-" + knowMap.get("THIRD_CATEGORY_ID"); String serivceList = knowMap.get("FIRST_CATEGORY_NAME").toString() + "-" + knowMap.get("SECOND_CATEGORY_NAME") + "-" + knowMap.get("THIRD_CATEGORY_NAME"); String thirdlevel_id = knowMap.get("FIRSTLEVEL_ID").toString() + "-" + knowMap.get("SECONDLEVEL_ID") + "-" + knowMap.get("THIRDLEVEL_ID"); String thirdlevelList = knowMap.get("FIRSTLEVEL_NAME").toString() + "-" + knowMap.get("SECONDLEVEL_NAME") + "-" + knowMap.get("THIRDLEVEL_NAME"); knowMap.put("category_id", category_id); knowMap.put("categoryList", categoryList); knowMap.put("serivceListId", serivceListId); knowMap.put("serivceList", serivceList); knowMap.put("thirdlevel_id", thirdlevel_id); knowMap.put("thirdlevelList", thirdlevelList); //是否用户可见变量名字替换 String tempStr = knowMap.get("ACCESS_TYPE").toString(); knowMap.put("isKj", tempStr); //文件 List fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(knowMap.get("FILE_ID"))); knowMap.put("fileList", fileList); return knowMap; } @Override public Map getLibraryShById(String libraryId, String userId) { //基本信息 StringBuilder sql = new StringBuilder("select k.*,c.IS_ESSENCE,c.IS_TOP,c.FILE_ID "); sql.append("from KM_LIBRARY_TEMP k LEFT JOIN KM_LIBRARY c ON k.ORIGINAL_ID = c.ID "); sql.append(" WHERE k.ID = :id "); SqlParameter param = new SqlParameter(); param.addValue("id", libraryId); Map map = baseDao.queryForMap(sql.toString(), param); if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(map.get("ORIGINAL_ID")))){ param.put("type", Constants.KM_SCORE_RULE_TYPE_D); param.addValue("id", map.get("ORIGINAL_ID")); int zan = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); param.put("type", Constants.KM_SCORE_RULE_TYPE_C); int cai = baseDao.queryForInteger("SELECT COUNT(ID) FROM KM_RECORD WHERE LIBRARY_ID = :id AND TYPE = :type ", param); map.put("ZANNUM", zan); map.put("CAINUM", cai); List mylist = kmService.getmyFavourite(userId); List myrecord = kmService.getmyknowRecord(userId); for(Map mymap :mylist){ if(map.get("ORIGINAL_ID").equals(mymap.get("LIBRARY_ID"))){ map.put("favourite", 1); } } for(Map mymap :myrecord){ if(map.get("ORIGINAL_ID").equals(mymap.get("LIBRARY_ID"))){ if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_D){ map.put("zan", 1); } if(ConvertUtil.obj2Integer(mymap.get("TYPE")) == Constants.KM_SCORE_RULE_TYPE_C){ map.put("cai", 1); } } } } //标签 String tag = ConvertUtil.obj2Str(map.get("TAG")); if (tag != null) { String[] tags = tag.split("\\s"); List tagList = new ArrayList(); for(int i=0;i fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(map.get("ID"))); map.put("file_list",fileList ); //知识关联 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 linkList = baseDao.queryForList(linksql, new SqlParameter("library_id", new KM_LIBRARY_TEMP(libraryId).getInstanceById().getOriginal_id())); map.put("link_list", linkList); map.put("filesize", fileList.size()); map.put("knowsize", linkList.size()); return map; } @Override public Map getFileFoldersById(String id) { String sql = "SELECT * FROM GG_FOLDERS WHERE ID = :id"; return baseDao.queryForMap(sql, new SqlParameter("id",id)); } @Override public Map getKnowMsgByOrderId(String orderId, String bustype) { Map knowmsg = new HashMap(); Map ordermsg = new HashMap(); Map param = new HashMap(); param.put("orderId", orderId); if(!StringUtil.isEmpty(bustype)&&!StringUtil.isEmpty(orderId)){ if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT == ConvertUtil.obj2Int(bustype)){ knowmsg = baseDao.queryForMap("SELECT A.*,B.WFSTATE,B.BUSINESSTYPE FROM SC_WORKFLOW_INCIDENT A,WORKFLOW_BASE B WHERE A.ID = B.BUSINESS_ID AND A.ID = :orderId ", param); knowmsg.put("CONTENT", "解决方案:"+knowmsg.get("RESOLVE")+"  优化建议:"+knowmsg.get("SUGGEST")); }else if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION == ConvertUtil.obj2Int(bustype)){ knowmsg = baseDao.queryForMap("SELECT A.*,B.WFSTATE,B.BUSINESSTYPE FROM SC_WORKFLOW_QUESTION A,WORKFLOW_BASE B WHERE A.ID = B.BUSINESS_ID AND A.ID = :orderId ", param); knowmsg.put("CONTENT", "根本原因:"+knowmsg.get("TRUE_REASON")+"  解决方案:"+knowmsg.get("RESOLVE")+"  优化建议:"+knowmsg.get("SUGGEST")); }else if(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL == ConvertUtil.obj2Int(bustype)){ knowmsg = baseDao.queryForMap("SELECT A.*,B.WFSTATE,B.BUSINESSTYPE FROM SC_WORKFLOW_INCIDENT_LOCAL A,WORKFLOW_BASE B WHERE A.ID = B.BUSINESS_ID AND A.ID = :orderId ", param); knowmsg.put("CONTENT", "解决方案:"+knowmsg.get("RESOLVE")+"  优化建议:"+knowmsg.get("SUGGEST")); } knowmsg.put("TITLE", knowmsg.get("NAME")); knowmsg.put("changeId", orderId); knowmsg.put("bustype", bustype); knowmsg.put("serivceListId", knowmsg.get("FIRST_CATEGORY_ID")+"-"+knowmsg.get("SECOND_CATEGORY_ID")+"-"+knowmsg.get("THIRD_CATEGORY_ID")); knowmsg.put("serivceList", knowmsg.get("FIRST_CATEGORY_NAME")+"-"+knowmsg.get("SECOND_CATEGORY_NAME")+"-"+knowmsg.get("THIRD_CATEGORY_NAME")); List filelist = fileService.getFileList(ConvertUtil.obj2StrBlank(knowmsg.get("FILE_ID"))); for(Map file:filelist){ file.put("ID", ""); } knowmsg.put("knows", filelist); } return knowmsg; } @Override public List queryLinkKnow(HttpServletRequest request) { String title = request.getParameter("title"); String keyword = request.getParameter("keyword"); String knowIds = request.getParameter("knowIds"); String sql; SqlParameter parameter =new SqlParameter(); sql = "SELECT A.*,B.TITLE AS NAME FROM KM_LIBRARY A,KM_LIBRARY_CATEGORY B WHERE A.CATEGORY_ID = B.ID AND A.STATE =1 "; parameter.addValue("userId", WebUtil.getWywEngineerLoginUser(request).get("ID")); if (!StringUtil.isEmpty(knowIds)) { String knowid[] = knowIds.split("-"); String para=""; for(int i=0;i knows = baseDao.queryForList(sql,parameter); return knows; } @Override public void saveKnowledge(HttpServletRequest request, KM_LIBRARY km_library) { String serivceListId = request.getParameter("serivceListId"); String serivceList = request.getParameter("serivceList"); String category_id = request.getParameter("category_id"); String categoryList = request.getParameter("categoryList"); String thirdlevel_id = request.getParameter("thirdlevel_id"); String thirdlevelList = request.getParameter("thirdlevelList"); String first_category_id = new String(); String first_category_name = new String(); String second_category_id = new String(); String second_category_name = new String(); String third_category_id = new String(); String third_category_name = new String(); String categoryid = new String(); String category_name = new String(); String first_knowcategory_id = new String(); String first_knowcategory_name = new String(); String second_knowcategory_id = new String(); String second_knowcategory_name = new String(); String third_level_id = new String(); String third_level_name = new String(); String first_level_id = new String(); String first_level_name = new String(); String second_level_id = new String(); String second_level_name = new String(); if(StringUtil.notEmpty(serivceListId) && StringUtil.notEmpty(serivceList)) { String[] serivceListIds = serivceListId.split("-"); String[] serivceLists = serivceList.split("-"); first_category_id = serivceListIds[0]; first_category_name = serivceLists[0]; second_category_id = serivceListIds[1]; second_category_name = serivceLists[1]; third_category_id = serivceListIds[2]; third_category_name = serivceLists[2]; } if(StringUtil.notEmpty(category_id) && StringUtil.notEmpty(categoryList)) { String[] categoryListIds = category_id.split("-"); String[] categoryLists = categoryList.split("-"); if(categoryListIds.length>0){ first_knowcategory_id = categoryListIds[0]; first_knowcategory_name = categoryLists[0]; second_knowcategory_id = categoryListIds[1]; second_knowcategory_name = categoryLists[1]; categoryid = categoryListIds[2]; category_name = categoryLists[2]; } } if(StringUtil.notEmpty(thirdlevel_id) && StringUtil.notEmpty(thirdlevelList)) { String[] thirdListIds = thirdlevel_id.split("-"); String[] thirdLists = thirdlevelList.split("-"); if(thirdListIds.length>0){ first_level_id = thirdListIds[0]; first_level_name = thirdLists[0]; second_level_id = thirdListIds[1]; second_level_name = thirdLists[1]; third_level_id = thirdListIds[2]; third_level_name = thirdLists[2]; } } 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) .setFirstlevel_id(first_level_id).setFirstlevel_name(first_level_name) .setSecondlevel_id(second_level_id).setSecondlevel_name(second_level_name) .setThirdlevel_id(third_level_id).setThirdlevel_name(third_level_name) .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) .setAccess_type(access_type); km_library.insertOrUpdate(); //添加用户权限信息 String cusId = request.getParameter("cusId"); String cusList = request.getParameter("cusList"); if(access_type == 1){ //需要设置权限 KM_LIBRARY_KNOWLEDGE_ACCESS access = new KM_LIBRARY_KNOWLEDGE_ACCESS(); //每次重新存之前先删除先前的数据 baseDao.execute("DELETE FROM KM_LIBRARY_KNOWLEDGE_ACCESS WHERE KNOWLEDGE_ID = :knowId", new SqlParameter("knowId",km_library.getId())); String[] cusIdArray = cusId.split(","); String[] cusListArray = cusList.split(","); for (int i = 0; i < cusIdArray.length; i++) { access = new KM_LIBRARY_KNOWLEDGE_ACCESS(); 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())); String[] knowId = request.getParameterValues("knowId"); if(null!=knowId && knowId.length>0) { List paramList = new ArrayList(); for(String str : knowId) { SqlParameter sqlParameter = new SqlParameter(); sqlParameter.put("id", StringUtil.getUUID()); sqlParameter.put("library_id", km_library.getId()); sqlParameter.put("knowledge_id", str); paramList.add(sqlParameter); } String insertSql = "INSERT INTO KM_LIBRARY_KNOWLEDGE(ID,LIBRARY_ID,KNOWLEDGE_ID) VALUES (:id,:library_id,:knowledge_id)"; baseDao.executeBatch(insertSql, paramList); } //如果为空,给file_id赋值 km_library = new KM_LIBRARY().setId(km_library.getId()).getInstanceById(); if(StringUtil.isEmpty(km_library.getFile_id())){ km_library.setFile_id(km_library.getId()).update(); } } }