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<String, String> 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<String, String> 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<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);
|
}
|
}
|
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<Map> mylist = kmService.getmyFavourite(userId);
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
kw.put("tag_list", tagList);
|
List<Map> fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(kw.get("FILE_ID")));
|
//知识关联
|
List<Map> 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<Map> mylist = kmService.getmyFavourite(userId);
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
kw.put("tag_list", tagList);
|
List<Map> fileList = fileService.getFileList(ConvertUtil.obj2StrBlank(kw.get("ID")));
|
//知识关联
|
List<Map> 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<Map> knowList = new ArrayList<Map>();
|
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<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);
|
}
|
}
|
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<Map> knowList = baseDao.queryForList(linksql, new SqlParameter("library_id", knowId));
|
|
if(knowList.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);
|
}
|
}
|
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<Map> 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<Map> categoryList = baseDao.queryForList(sql.toString(),paraMap);
|
|
if(!StringUtil.isEmpty(pid)){
|
List<Map> resultList = new LinkedList<Map>();
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)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<Map> categoryList = baseDao.queryForList(sql.toString());
|
if(!StringUtil.isEmpty(pid)){
|
List<Map> resultList = new LinkedList<Map>();
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)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<Map> categoryList = baseDao.queryForList(sql.toString());
|
|
if(!StringUtil.isEmpty(pid)){
|
List<Map> resultList = new LinkedList<Map>();
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)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<String, String> 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<String, String> 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<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);
|
}
|
}
|
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<Map> companyCiCatenum(Map<String, String> 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<Map> categoryList = baseDao.queryForList(sql.toString(),params);
|
|
List<Map> resultList = new LinkedList<Map>();
|
if(!StringUtil.isEmpty(pid)){
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
|
ejgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
}
|
}
|
|
|
return resultList;
|
}
|
|
@Override
|
public List<Map> companyKnowCatenum(Map<String, String> 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<Map> categoryList = baseDao.queryForList(sql.toString(),params);
|
List<Map> resultList = new LinkedList<Map>();
|
if(!StringUtil.isEmpty(pid)){
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
|
ejgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
}
|
}
|
|
return resultList;
|
}
|
|
@Override
|
public List<Map> companyServiceCatenum(Map<String, String> 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<Map> categoryList = baseDao.queryForList(sql.toString(),params);
|
|
List<Map> resultList = new LinkedList<Map>();
|
if(!StringUtil.isEmpty(pid)){
|
Map cacheMap = new HashMap();
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
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<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
list.add(map);
|
|
ejgnCache.put(map.get("ID").toString(), map);
|
continue;
|
}
|
}
|
}
|
|
return resultList;
|
}
|
|
|
@Override
|
public Integer knowListBycateIdCount(Map<String, String> 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<String, String> 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<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);
|
}
|
}
|
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<String, String> 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<String, String> 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<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);
|
}
|
}
|
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<String, String> 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<String, String> params) {
|
StringBuilder builder = new StringBuilder();
|
getMyFavoriteKwSql(builder);
|
PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.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);
|
}
|
}
|
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<String, String> 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<String, String> params) {
|
StringBuilder builder = new StringBuilder();
|
getMyKwSql(builder);
|
PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, builder.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);
|
}
|
}
|
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<String, String> 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<Map> 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<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);
|
List<Map> ejgnList = new LinkedList<Map>();
|
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<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
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<Map> list = (List<Map>)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<Map> categoryList = baseDao.queryForList(sql);
|
|
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);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("TAG").toString());
|
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;
|
}
|
//三级树
|
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<Map> list = (List<Map>)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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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<String, String> 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<String, String> 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<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tagList", tagList);
|
}
|
}
|
|
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);
|
}
|
}
|
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<String, String> params) {
|
String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE ";
|
List<Map> 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<String, String> params) {
|
String sql1 = "SELECT * FROM KM_EXPERT_LEVEL_RULE ORDER BY SCORE ";
|
List<Map> 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<Map> 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<String, String> 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<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 ");
|
sql.append(" ORDER BY K.STATE,K.CREATE_TIME DESC");
|
PageInfo info = baseDao.queryforSplitPageInfo(pageInfo, sql.toString(), params);
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tagList", tagList);
|
}
|
}
|
|
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);
|
}
|
}
|
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<String, String> 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<String, String> 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<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tagList", tagList);
|
}
|
}
|
|
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);
|
}
|
}
|
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<Map> 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<Map> 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<Map> 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<Map> mylist = kmService.getmyFavourite(userId);
|
List<Map> 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<String> tagList = new ArrayList();
|
for(int i=0;i<tags.length;i++){
|
if(!StringUtil.isEmpty(tags[i])){
|
tagList.add(tags[i]);
|
}
|
}
|
map.put("tag_list", tagList);
|
|
}
|
|
//附件
|
List<Map> 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<Map> 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<Map> 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<knowid.length;i++){
|
if(i<knowid.length-1){
|
para+=knowid[i]+"','";
|
}else if(i==knowid.length-1){
|
para+=knowid[i];
|
}
|
}
|
sql += " and A.ID NOT IN ('"+para+"') ";
|
}
|
if (!StringUtil.isEmpty(title)) {
|
sql+="and A.TITLE like :title ";
|
parameter.addValue("title", "%" + title + "%");
|
}
|
|
if (!StringUtil.isEmpty(keyword)) {
|
sql += " and A.TAG LIKE :keyword ";
|
parameter.addValue("keyword", "%"+keyword+"%");
|
}
|
|
sql += " ORDER BY B.ID";
|
List<Map> 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<SqlParameter> paramList = new ArrayList<SqlParameter>();
|
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();
|
}
|
}
|
|
}
|