KnowledgeOperation.jsp 6.86 KB
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@page import="weaver.general.*"%>
<%@page import="weaver.hrm.*"%>
<%@page import="java.net.URLDecoder"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.Clob,javax.sql.rowset.serial.SerialClob,weaver.conn.ConnStatement"%>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<%
	User user = HrmUserVarify.getUser (request , response) ;
	if(user == null)  return ;
	
	if (!HrmUserVarify.checkUserRight("KT_Knowledge:Maint", user)) {
		response.sendRedirect("/notice/noright.jsp");
		return;
	}
	
	String operation = Util.fromScreen3(request.getParameter("operation"),user.getLanguage());
	
	String knowledgeId = Util.fromScreen3(request.getParameter("knowledgeId"),user.getLanguage());
	
	String name = Util.fromScreen3(request.getParameter("name"),user.getLanguage());
    
	String remark = Util.convertInput2DB(request.getParameter("remark"));
	
	String index = Util.null2String(request.getParameter("rownum1"));
	
	String sql = "";
	ConnStatement conn = null;
	boolean res = false;
	//新增
	if ("add".equals(operation)) {
		
		sql = "insert into KT_Knowledge (name,remark,supId,deleted,createrId,createDate,createTime) values ('"+name+"',?,0,0,"+user.getUID()+",'"+TimeUtil.getCurrentDateString()+"','"+TimeUtil.getOnlyCurrentTimeString()+"')";
		
		try{
			conn = new ConnStatement();
			conn.setStatementSql(sql);
			conn.setString(1, remark);
			res = conn.executeUpdate() == 1;
		}
		catch(Exception ex){
			res = false;
		}finally{
			if(null!=conn){
				conn.close();
			}
		}
		
		if(res){
			rs.executeSql("select max(id) from KT_Knowledge where createrId = "+user.getUID());
			if(rs.next()){
				knowledgeId = rs.getString(1);
				
				//添加知识点明细
				int num = 0;
			    if(index != null && !"".equals(index)){
			    	num = Integer.parseInt(index);
			    }
				for(int i = 0;i<num;i++){
			        String title = Util.fromScreen3(request.getParameter("title_"+i),user.getLanguage());
			        String docIds = Util.fromScreen3(request.getParameter("docIds_"+i),user.getLanguage());
			        String sqlstr = Util.null2String(request.getParameter("sqlstr_"+i));
			        sqlstr = Util.replace(sqlstr,"'","''",0).replaceAll("knowledgesel", "select").replaceAll("knowledgea", "and").replaceAll("knowledgew", "where").replaceAll("knowledgef", "from").replaceAll("knowledgeu", "union");
			        String rate = Util.getDoubleValue(request.getParameter("rate_"+i),0.00)+"";
			        String sort = Util.getDoubleValue(request.getParameter("sort_"+i),0.00)+"";
			        if(!"".equals(title)){
			        	sql = "insert into KT_KnowledgeDetail (knowledgeId,title,docIds,sqlstr,rate,sort,deleted) values" 
			        		+ "("+knowledgeId+",'"+title+"','"+docIds+"','"+sqlstr+"',"+rate+","+sort+",0)";
						rs.executeSql(sql);
			        }
		      	}
			}
		}
	}
	//编辑
	else if("edit".equals(operation)){
		if(!knowledgeId.equals("")){
			//权限判断
			/**
			if (!HrmUserVarify.checkUserRight("KT_Knowledge:Maint", user)) {
				rs.executeSql("select createrId from KT_Knowledge where id="+knowledgeId);
				String createrId = "";
				if(rs.next()){
					createrId = Util.null2String(rs.getString(1));
				}
				if(!(createrId).equals(user.getUID()+"")){
					response.sendRedirect("/notice/noright.jsp");
					return;
				}
			}*/
			
			sql = "update KT_Knowledge set name='"+name+"',remark=?,updaterId="+user.getUID()+",updateDate='"+TimeUtil.getCurrentDateString()+"',updateTime='"+TimeUtil.getOnlyCurrentTimeString()+"' where id="+knowledgeId;
			
			try{
				conn = new ConnStatement();
				conn.setStatementSql(sql);
				conn.setString(1, remark);
				res = conn.executeUpdate() == 1;
			}
			catch(Exception ex){
				res = false;
			}finally{
				if(null!=conn){
					conn.close();
				}
			}
			
			//查询所有知识点明细
			List detailIdList = new ArrayList();
			rs.executeSql("select id from KT_KnowledgeDetail where deleted=0 and knowledgeId="+knowledgeId);
			while(rs.next()){
				detailIdList.add(rs.getString(1));
			}
			
			//处理知识点明细
			int num = 0;
		    if(index != null && !"".equals(index)){
		    	num = Integer.parseInt(index);
		    }
			for(int i=0;i<num;i++){
				String detailId = Util.fromScreen3(request.getParameter("detailId_"+i),user.getLanguage());
		        String title = Util.fromScreen3(request.getParameter("title_"+i),user.getLanguage());
		        String docIds = Util.fromScreen3(request.getParameter("docIds_"+i),user.getLanguage());
		        String sqlstr = Util.null2String(request.getParameter("sqlstr_"+i));
		        sqlstr = Util.replace(sqlstr,"'","''",0).replaceAll("knowledgesel", "select").replaceAll("knowledgea", "and").replaceAll("knowledgew", "where").replaceAll("knowledgef", "from").replaceAll("knowledgeu", "union");
		        String rate = Util.getDoubleValue(request.getParameter("rate_"+i),0.00)+"";
		        String sort = Util.getDoubleValue(request.getParameter("sort_"+i),0.00)+"";
		        
		        if(detailId.equals("")){//新增
		        	if(!title.equals("")){
		        		sql = "insert into KT_KnowledgeDetail (knowledgeId,title,docIds,sqlstr,rate,sort,deleted) values" 
			        		+ "("+knowledgeId+",'"+title+"','"+docIds+"','"+sqlstr+"',"+rate+","+sort+",0)";
						rs.executeSql(sql);
		        	}
		        }else{//编辑
		        	if(!title.equals("")){
			        	sql = "update KT_KnowledgeDetail set title='"+title+"',docIds='"+docIds+"',sqlstr='"+sqlstr+"',rate="+rate+",sort="+sort+" where id="+detailId; 
						rs.executeSql(sql);
						detailIdList.remove(detailId);
		        	}
		        }
	      	}
			//删除剩余的明细
			for(int i=0;i<detailIdList.size();i++){
				String detailId = (String)detailIdList.get(i);
				//删除明细
				rs.executeSql("update KT_KnowledgeDetail set deleted=1 where id="+detailId);
				//删除人员已完成的记录
				rs.executeSql("update KT_KnowledgeHrm set deleted=1 where detailId="+detailId);
			}
		}
	}
	
	
	//删除
	if("delete".equals(operation)){
		
		sql = "select count(*) from KT_ThemeKnowledge t1,KT_Knowledge t2,KT_MapDetail t3,KT_Map t4" 
			+" where t1.kId=t2.id and t1.deleted=0 and t2.deleted=0 and t4.deleted=0 and t1.tId=t3.id and t3.mapId=t4.id"
			+" and t2.id="+knowledgeId;
		rs.executeSql(sql);
		if(rs.next()&&rs.getInt(1)==0){
			rs.executeSql("update KT_Knowledge set deleted=1 where id="+knowledgeId);
		}else{
			out.println("error");
		}
		return;
	}
	String isDirectAdd = Util.convertInput2DB(request.getParameter("isDirectAdd"));
	if("directAdd".equals(isDirectAdd)){
        //out.println("{id:'"+knowledgeId+"',name:'"+name+"'}");
        %>
            <script>
            opener.afterCreateOperation("<%=knowledgeId %>","<%=name %>");
            alert("添加成功!");
            window.close();
            </script>
        <%
    }else{
        response.sendRedirect("/knowledgeMap/util/CommonRefreshOpener.jsp?topage=/knowledgeMap/base/KnowledgeView.jsp?knowledgeId="+knowledgeId);
    }
%>