FnaWfSetEditInnerImportOp.jsp 8.57 KB
<%@page import="weaver.fna.interfaces.thread.FnaThreadResult"%>
<%@page import="weaver.fna.domain.wfset.FnaFeeWfInfoLogicReverse"%>
<%@page import="weaver.fna.domain.wfset.FnaFeeWfInfoField"%>
<%@page import="weaver.fna.domain.wfset.FnaFeeWfInfo"%>
<%@page import="org.jdom.Element"%>
<%@page import="org.jdom.Document"%>
<%@page import="org.jdom.input.SAXBuilder"%>
<%@page import="org.xml.sax.InputSource"%>
<%@page import="org.exolab.castor.xml.Unmarshaller"%>
<%@page import="org.json.JSONObject"%>
<%@page import="weaver.general.BaseBean"%>
<%@page import="java.util.Map"%>
<%@page import="weaver.systeminfo.SystemEnv"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="weaver.general.Util"%>
<%@page import="weaver.hrm.HrmUserVarify"%>
<%@page import="weaver.hrm.User"%>
<%@page import="weaver.fna.general.FnaCommon"%>
<%@page import="weaver.file.FileType"%>
<%@ page import="weaver.file.FileUpload" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.file.FileManage" %>
<%@ page import="java.io.IOException" %>
<%@ page import="org.apache.commons.lang.StringUtils" %>
<%@ page import="java.io.File" %>
<%@ page import="javax.xml.bind.JAXBException" %>
<%@ page import="weaver.fna.butils.XmlUtils" %>
<%@ page import="weaver.fna.butils.JSONUtils" %>
<%@ page import="weaver.fna.domain.wfset.Result" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<%!
    private String parseFile(FileUpload fu,RecordSet rs,HttpServletRequest request) throws IOException {
		BaseBean bb = new BaseBean();
        String xmlfilepath = "";
        int fileid = Util.getIntValue(fu.uploadFiles("filename"), 0);
        String filename = fileid+"_"+FnaCommon.getPrimaryKeyGuid1()+".xml";
        List<String> allowTypes = new ArrayList<String>();
        allowTypes.add("xml");
        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>1");
        if(FileType.validateFileExt(fu.getFileName(), allowTypes)){
            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>2");
	        String sql = "select filerealpath, isaesencrypt, aescode from imagefile where imagefileid = " + fileid;
	        rs.executeSql(sql);
	        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>3");
	        String uploadfilepath = "";
	        String isaesencrypt = "";
	        String aescode = "";
	        if (rs.next()) {
	            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>4");
	            uploadfilepath = rs.getString("filerealpath");
	            isaesencrypt = Util.null2String(rs.getString("isaesencrypt"));
	            aescode = Util.null2String(rs.getString("aescode"));
	        }
	        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>5");
	        if (!uploadfilepath.equals("")) {
	            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>6");
	            xmlfilepath = request.getRealPath(request.getServletPath().substring(0, request.getServletPath().lastIndexOf("/"))) + "\\" + filename;
	            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>7 uploadfilepath="+uploadfilepath);
	            FileManage.copy(uploadfilepath, xmlfilepath, isaesencrypt, aescode);
	            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>8 xmlfilepath="+xmlfilepath);
	        }
	        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>9");
        }
        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>parseFile>>xmlfilepath="+xmlfilepath);
        return xmlfilepath;
    }
%>
<%
	User user = HrmUserVarify.getUser (request , response) ;
	if(user==null){
		response.sendRedirect("/notice/noright.jsp") ;
		return ;
	}
    boolean canEdit = HrmUserVarify.checkUserRight("FnaLedgerAdd:Add", user) || HrmUserVarify.checkUserRight("FnaLedgerEdit:Edit", user);
    if (!canEdit) {
        response.sendRedirect("/notice/noright.jsp");
        return;
    }
    FileUpload fu = new FileUpload(request,false);
    String kmVali = Util.null2String(fu.getParameter("kmVali")).trim();//科目验证  0:名称 1编码
    String fkVali = Util.null2String(fu.getParameter("fkVali")).trim();//费控验证  0:名称 1编码
    String operation = Util.null2String(fu.getParameter("operation")).trim();//import
    String _guid1 = Util.null2String(fu.getParameter("_guid1")).trim();
    int keyWord = Util.getIntValue(fu.getParameter("keyWord"), -1);//为0是名称
    int impType = Util.getIntValue(fu.getParameter("impType"), -1);//0添加 1更新

    int workFlowId = Util.getIntValue(fu.getParameter("workflowid"), -1);//0添加 1更新
    request.getSession().removeAttribute("index:"+_guid1);
    request.getSession().removeAttribute("isDone:"+_guid1);

    request.getSession().setAttribute("index:"+_guid1, SystemEnv.getHtmlLabelName(34119,user.getLanguage()));//开始预备数据
    request.getSession().setAttribute("isDone:"+_guid1, "");

	BaseBean bb = new BaseBean();
	String guid1 = FnaCommon.getPrimaryKeyGuid1();
	FnaThreadResult fnaThreadResult = new FnaThreadResult();
	fnaThreadResult.removeInfoByInfoKey(guid1, "FNA_IMPORT_ERROR");
    if("import".equals(operation) && keyWord==0 && impType==0) {
        //得到文件
        RecordSet rs = new RecordSet();
        String xmlFilePath = parseFile(fu,rs,request);
        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>1");
        if(StringUtils.isNotBlank(xmlFilePath)) {//如果返回的字符串不为空
            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>2");
            File file = new File(xmlFilePath);
            //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>3 file="+file);
            try {
            	//bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>3.1 file="+file.getName());
                Result result = new XmlUtils().parseResult(file);
                //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>4 result done");
                /**
                 * 我们先对其进行校验,校验通过然后保存
                 */
                List<String> valiResult = result.validate(rs,kmVali,fkVali,user,workFlowId);
                //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>5");
                out.clear();
                int valiResult_len = valiResult.size();
                if(valiResult_len>0) {
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>6");
                    StringBuffer errorStr = new StringBuffer();
                    for(int i=0;i<valiResult_len;i++){
                    	if(i>0){
                    		errorStr.append(guid1);
                    	}
                		errorStr.append(valiResult.get(i));
                    }
					fnaThreadResult.setInfoByInfoKey(guid1, "FNA_IMPORT_ERROR", errorStr.toString());
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>6.1     "+"{\"code\":\"400\",\"msg\":"+JSONObject.quote(errorStr.toString())+"}");
                    out.write("<script>parent.callbackBB({\"code\":\"400\",\"msg\":"+JSONObject.quote(guid1)+"})</script>");
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>7");
                }else {
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>8");
                    result.save(rs,workFlowId);
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>9");
                    out.write("<script>parent.callbackBB({\"code\":\"200\",\"msg\":"+JSONObject.quote(SystemEnv.getHtmlLabelName(25750,user.getLanguage()))+"})</script>");
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>10");
                }
            } catch (Exception e) {
                //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>11");
                out.clear();
				fnaThreadResult.setInfoByInfoKey(guid1, "FNA_IMPORT_ERROR", SystemEnv.getHtmlLabelName(33971,user.getLanguage())+e.getMessage());
                out.write("<script>parent.callbackBB({\"code\":\"400\",\"msg\":"+JSONObject.quote(guid1)+"})</script>");
                //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>12");
            }finally {
                if(file != null) {
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>13");
                    file.delete();
                    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>14");
                }
            }
        }
    }else{
        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>15");
        out.clear();
		fnaThreadResult.setInfoByInfoKey(guid1, "FNA_IMPORT_ERROR", SystemEnv.getHtmlLabelNames("561,27495",user.getLanguage()));
        out.write("<script>parent.callbackBB({\"code\":\"400\",\"msg\":"+JSONObject.quote(guid1)+"})</script>");
        //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>16");
    }
    //bb.writeLog("FnaWfSetEditInnerImportOp.jsp>>17");
    out.flush();
%>