get_user() ,put_user(),copy_to_u…

本文介绍了在操作系统中用户空间与内核空间之间的数据交互方式,包括get_user()和put_user()用于简单类型的变量读写,以及copy_from_user()和copy_to_user()用于块数据的复制。

get_user(),put_user()的作用:
复制的内存是简单类型,如char,int ,long等,则可以使用简单的put_user()和get_user()


copy_from_user()和copy_to_user()函数的作用:由于内核空间与用户空间的内存不能直接互访,因此借助
函数copy_to_user()完成内核空间到用户空间的复制,函数copy_from_user()完成用户空间到内核空间的复制。

copy_to_user --  Copy a block of data into user space.

copy_from_user --  Copy a block of data from user space.

get_user --  Get a simple variable from user space.

put_user --  Write a simple value into user space.
package com.jnj.rsc.action; import com.jnj.rsc.service.RscConfigService; import com.jnj.rsc.service.RscCrushService; import com.jnj.rsc.service.RscInterfaceService; import com.jnj.rsc.utils.RscUtil; import net.sf.json.JSONObject; import weaver.conn.RecordSet; import weaver.formmode.service.FormInfoService; import weaver.formmode.view.ModeViewLog; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.RequestInfo; import weaver.systeminfo.SystemEnv; import weaver.workflow.request.RequestManager; import weaver.workflow.workflow.WorkflowComInfo; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; /** * 归档前调用写SAP文件 MBOX * 1.写SAP文件 * 2.登录MOBX,推送文件到MBOX * 3.往建模中记录日志 */ public class Wf_5_Call_SAP_Action extends BaseBean implements Action { private final static String ACTION_NAME = "Wf_5_Call_SAP_Action"; private String loginVersion; private String prefix; private String identify; private String pageSize; private String logOperatorHrmId; public String getLoginVersion() { return loginVersion; } public void setLoginVersion(String loginVersion) { this.loginVersion = loginVersion; } public String getPrefix() { return prefix; } public void setPrefix(String prefix) { this.prefix = prefix; } public String getIdentify() { return identify; } public void setIdentify(String identify) { this.identify = identify; } public String getPageSize() { return pageSize; } public void setPageSize(String pageSize) { this.pageSize = pageSize; } public String getLogOperatorHrmId() { return logOperatorHrmId; } public void setLogOperatorHrmId(String logOperatorHrmId) { this.logOperatorHrmId = logOperatorHrmId; } @Override public String execute(RequestInfo requestInfo) { WorkflowComInfo workflowComInfo = new WorkflowComInfo(); int requestid = Util.getIntValue(requestInfo.getRequestid()); List<String> fileRecordList = new ArrayList<>(); String loginVer = getLoginVersion() == null? "0" : getLoginVersion(); try { this.writeLog("*************** " + ACTION_NAME + " start , requestId: " + requestid); String workflowId = requestInfo.getWorkflowid(); int formid = Util.getIntValue(workflowComInfo.getFormId(workflowId), 0); String mainTablename = "formtable_main_" + (formid * -1); RequestManager requestManager = requestInfo.getRequestManager(); requestManager.getUser(); User wfUser = requestManager.getUser(); if (getLogOperatorHrmId() != null){ wfUser = new User(Integer.parseInt(getLogOperatorHrmId())); } String wfIp = requestManager.getIp();//IP地址 RscConfigService rscConfigService = new RscConfigService(); String crushHost = rscConfigService.getSystemConfigValue("RSC_CRUSH_HOST"); String username = rscConfigService.getSystemConfigValue("RSC_CRUSH_USERNAME"); String password = rscConfigService.getSystemConfigValue("RSC_CRUSH_PASSWORD"); String serverPath = rscConfigService.getSystemConfigValue("RSC_CRUSH_SERVER_PATH"); String localPath = rscConfigService.getSystemConfigValue("RSC_CRUSH_LOCAL_PATH"); String fullLabelModeid = rscConfigService.getSystemConfigValue("RSC_Full_label_MODEID"); String rscFullLabelFormId = rscConfigService.getSystemConfigValue("RSC_Full_label_FormId"); if ("".equals(rscFullLabelFormId)){ rscFullLabelFormId = "-127"; } this.writeLog(ACTION_NAME + " action crushHost:" + crushHost); this.writeLog(ACTION_NAME + " action username:" + username); this.writeLog(ACTION_NAME + " action password:" + password); this.writeLog(ACTION_NAME + " action serverPath:" + serverPath); this.writeLog(ACTION_NAME + " action localPath:" + localPath); this.writeLog(ACTION_NAME + " action fullLabelModeid:" + fullLabelModeid); String identifyInfo = "SAP_WF5_QA"; if (getIdentify() != null){ identifyInfo = getIdentify(); } List<List> batchParamList1 = new ArrayList<List>(); List<List> batchParamList2 = new ArrayList<List>(); List<String> fileNameList = writeSapFile(identifyInfo, mainTablename, requestid, localPath, batchParamList1, batchParamList2); if (fileNameList.size() > 0){ this.writeLog(ACTION_NAME + " fileNameList.size:" + fileNameList.size()); //复制fileList //Collections.copy(fileRecordList,fileNameList); fileRecordList = new ArrayList<>(fileNameList); this.writeLog(ACTION_NAME + " fileRecordList.size:" + fileRecordList.size()); RscCrushService rscCrushService = new RscCrushService(); this.writeLog(ACTION_NAME + " ,,,crushHost:" + crushHost + &quot;,username:" + username + &quot;,loginVersion:" + getLoginVersion()); String loginInfo = ""; if ("2".equals(getLoginVersion())){ loginInfo = rscCrushService.loginV2(crushHost, username , password); this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + &quot;,fileNameList size:" + fileNameList.size()); } else if ("3".equals(getLoginVersion())){ loginInfo = rscCrushService.loginV3(crushHost, username , password); this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + &quot;,fileNameList size:" + fileNameList.size()); } else if ("4".equals(getLoginVersion())){ loginInfo = rscCrushService.loginV4(crushHost, username , password); this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + &quot;,fileNameList size:" + fileNameList.size()); } else { loginInfo = rscCrushService.login(crushHost, username , password); this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + &quot;,fileNameList size:" + fileNameList.size()); } List<String> filedFileList = new ArrayList<>(); for (String fileName : fileNameList){ int code = rscCrushService.upload(loginInfo, serverPath + fileName, localPath + fileName); this.writeLog(ACTION_NAME + " action code:" + code); //if (code == 302){ String numberStr = String.valueOf(code); if (numberStr.charAt(0) != '2') { filedFileList.add(fileName); this.writeLog(ACTION_NAME + " ,,,Crush Logged out"); } } this.writeLog(ACTION_NAME + " ,,,loginVer: " + loginVer); //插入文件推送轮询表 if(filedFileList.size() > 0){ String fileNameString = String.join(&quot;, &quot;, filedFileList); rscCrushService.insertResendJob("RSC_CRUSH_HOST&quot;, "RSC_CRUSH_USERNAME&quot;, "RSC_CRUSH_PASSWORD&quot;, "RSC_CRUSH_SERVER_PATH&quot;, fileNameString, "RSC_CRUSH_LOCAL_PATH&quot;, fileNameString, identifyInfo, 2, loginVer, 2); } RecordSet rs = new RecordSet(); FormInfoService formInfoService = new FormInfoService(); List<Map<String, Object>> needlogFieldList = formInfoService.getNeedlogField(Integer.parseInt(rscFullLabelFormId)); if (batchParamList1.size() > 0){ this.writeLog(ACTION_NAME + " action rscFullLabelFormId :" + rscFullLabelFormId); // Map<String,Object> oldData = getLogFieldData(mainTablename, Integer.parseInt(params.get(1).toString()), needlogFieldList); Map<String,Object> oldData = new HashMap<>(); Map<String,Object> nowData = new HashMap<>(); Map<String, Map<String, Map<String, Object>>> var9 = new HashMap<>(); Map<String, Map<String, Map<String, Object>>> var10 = new HashMap<>(); int flag = 0; for (List params : batchParamList1){ flag++; for (int f = 0; f < params.size(); f++){ this.writeLog(ACTION_NAME + " " + flag + " action params 0 :" + params.get(0).toString()); this.writeLog(ACTION_NAME + " " + flag + " action params 1 :" + params.get(1).toString()); String selectSql = "select fulllicenselabeldatabaserevisi from uf_Full_label where id=" + params.get(1).toString(); rs.execute(selectSql); this.writeLog(ACTION_NAME + " action selectSql:" + selectSql); if (rs.next()){ oldData.put("fulllicenselabeldatabaserevisi&quot;, Util.null2String(rs.getString("fulllicenselabeldatabaserevisi"))); } nowData.put("fulllicenselabeldatabaserevisi&quot;, params.get(0).toString()); this.writeLog(ACTION_NAME + " action fullLabelModeid:" + fullLabelModeid); this.writeLog(ACTION_NAME + " action needlogFieldList size:" + needlogFieldList.size()); this.writeLog(ACTION_NAME + " action oldData:" + oldData.toString()); this.writeLog(ACTION_NAME + " action nowData:" + nowData.toString()); this.writeLog(ACTION_NAME + " action params:" + Integer.parseInt(params.get(1).toString())); } saveModeViewLog(Integer.parseInt(fullLabelModeid), Integer.parseInt(params.get(1).toString()), wfUser, wfIp, "2&quot;, needlogFieldList, oldData, nowData, var9, var10); } String updateSql = "update uf_Full_label set fulllicenselabeldatabaserevisi=? where id=?"; this.writeLog(ACTION_NAME + " action updateSql:" + updateSql); rs.executeBatchSql(updateSql, batchParamList1); } if (batchParamList2.size() > 0){ Map<String,Object> oldData = new HashMap<>(); Map<String,Object> nowData = new HashMap<>(); Map<String, Map<String, Map<String, Object>>> var9 = new HashMap<>(); Map<String, Map<String, Map<String, Object>>> var10 = new HashMap<>(); int flag = 0; for (List params : batchParamList2){ flag++; for (int f = 0; f < params.size(); f++){ this.writeLog(ACTION_NAME + " " + flag + " action params 0 :" + params.get(0).toString()); this.writeLog(ACTION_NAME + " " + flag + " action params 1 :" + params.get(1).toString()); String selectSql = "select qaadditionaldata2 from uf_Full_label where id=" + params.get(1).toString(); rs.execute(selectSql); this.writeLog(ACTION_NAME + " action selectSql:" + selectSql); if (rs.next()){ oldData.put("qaadditionaldata2&quot;, Util.null2String(rs.getString("qaadditionaldata2"))); } nowData.put("qaadditionaldata2&quot;, params.get(0).toString()); this.writeLog(ACTION_NAME + " action fullLabelModeid:" + fullLabelModeid); this.writeLog(ACTION_NAME + " action needlogFieldList size:" + needlogFieldList.size()); this.writeLog(ACTION_NAME + " action oldData:" + oldData.toString()); this.writeLog(ACTION_NAME + " action nowData:" + nowData.toString()); this.writeLog(ACTION_NAME + " action params:" + Integer.parseInt(params.get(1).toString())); } saveModeViewLog(Integer.parseInt(fullLabelModeid), Integer.parseInt(params.get(1).toString()), wfUser, wfIp, "2&quot;, needlogFieldList, oldData, nowData, var9, var10); } String updateSql = "update uf_Full_label set qaadditionaldata2=? where id=?"; rs.executeBatchSql(updateSql, batchParamList2); } } } catch (Exception e){ this.writeLog("*************** " + ACTION_NAME + " Exception:" + e.getMessage()); if(fileRecordList.size() > 0){ String fileRecordString = String.join(&quot;, &quot;, fileRecordList); RscCrushService rscService = new RscCrushService(); String info = "SAP_WF5_QA"; if (getIdentify() != null){ info = getIdentify(); } try { rscService.insertResendJob("RSC_CRUSH_HOST&quot;, "RSC_CRUSH_USERNAME&quot;, "RSC_CRUSH_PASSWORD&quot;, "RSC_CRUSH_SERVER_PATH&quot;, fileRecordString, "RSC_CRUSH_LOCAL_PATH&quot;, fileRecordString, info, 2, loginVer, 2); }catch (Exception ex){ return failureInfo(requestInfo, requestid, "提示:" + ACTION_NAME + "插入文件重送表异常"); } this.writeLog("*************** " + ACTION_NAME + " 已插入文件重送表: " + fileRecordString); } return failureInfo(requestInfo, requestid, "提示:" + ACTION_NAME + "异常"); } return Action.SUCCESS; } private Map<String,Object> getLogFieldData(String tableName,int billid,List<Map<String, Object>> needlogFieldList){ Map<String, Object> logFieldData = new HashMap<String, Object>(); if(needlogFieldList.size() > 0){ String columnNames = ""; for(int i = 0; i < needlogFieldList.size(); i++){ Map<String, Object> needlogField = needlogFieldList.get(i); String fieldname = Util.null2String(needlogField.get("fieldname")); columnNames += fieldname; if(i != (needlogFieldList.size() - 1)){ columnNames += &quot;,"; } } FormInfoService formInfoService = new FormInfoService(); logFieldData = formInfoService.getTableData(tableName, billid, columnNames); } return logFieldData; } /** * 拆分数据写文件到SAP * @param identify * @param mainTablename * @param requestid * @param localFilePath * @return */ public List<String> writeSapFile(String identify, String mainTablename, Integer requestid, String localFilePath, List<List> batchParamList1, List<List> batchParamList2){ RecordSet rs = new RecordSet(); RecordSet cusRs = new RecordSet(); List<String> fileNameList = new ArrayList<>(); RscInterfaceService rscInterfaceService = new RscInterfaceService(); JSONObject mainConfig = rscInterfaceService.getInterfaceMainConfig(identify); if (mainConfig == null && mainConfig.getString("id") == null){ return fileNameList; } List<Map<String, String>> fieldConfigList = rscInterfaceService.getInterfaceDetailConfig(mainConfig.getString("id"), 0); String prefixInfo = "RSC_QA_"; if (getPrefix() != null){ prefixInfo = getPrefix(); } String fileName = prefixInfo + RscUtil.parseToDateString(Calendar.getInstance().getTime(), RscUtil.FORMAT_FOR_SAP); //RSC_20210830_235959.txt PrintWriter out = null; try { StringBuffer headersber = new StringBuffer(); for (int i = 0; i < fieldConfigList.size(); i++) { Map<String, String> paramMap = fieldConfigList.get(i); headersber.append(paramMap.get("interface_field")); headersber.append(" "); } String sql = "select m.* from (select distinct mainid, xglc from uf_Full_label_dt1) d left join uf_Full_label m on m.id=d.mainid where d.xglc = '" + requestid + "' and m.fulllicenselabeldatabasestatus=2"; // this.writeLog(ACTION_NAME + " action sql:" + sql); // String sql = "select m.* from uf_Full_label_dt1 d left join uf_Full_label m on m.id=d.mainid where d.xglc = '" + requestid + "' and m.fulllicenselabeldatabasestatus=2"; rs.executeQuery(sql); List<String> fileDataList = new ArrayList<>(); while (rs.next()){ StringBuffer sber = new StringBuffer(); sber.delete(0, sber.length()); for (int i = 0; i < fieldConfigList.size(); i++) { Map<String, String> paramMap = fieldConfigList.get(i); String fieldValue = Util.null2String(rs.getString(paramMap.get("model_field"))); fieldValue = convertValue(paramMap, fieldValue, cusRs); if ("fulllicenselabeldatabaserevisi".equals(paramMap.get("model_field"))) { for (int f = 0; f < fieldValue.length(); f++) { if (Character.isDigit(fieldValue.charAt(f))) { String pre = fieldValue.substring(0, f); String numInfo = fieldValue.substring(f); int numLen = numInfo.length(); Integer numResult = Integer.parseInt(numInfo) + 1; String numResultStr = String.valueOf(numResult); for (int n = numResultStr.length(); n < numLen; n++) { pre = pre + "0"; } fieldValue = pre + numResultStr; break; } } if ("".equals(fieldValue)) { fieldValue = "V001"; } //批量回写UF_FULL_LABEL List<Object> paramlist = new ArrayList<Object>(); paramlist.add(fieldValue); paramlist.add(rs.getString("id")); batchParamList1.add(paramlist); } String labelTemplateNumberindIvidual = Util.null2String(rs.getString("labeltemplatenumberindividual")); if ("qaadditionaldata2".equals(paramMap.get("model_field"))){ String qaadditionaldata2 = Util.null2String(rs.getString("qaadditionaldata2")); if (!"".equals(qaadditionaldata2) && !"".equals(labelTemplateNumberindIvidual)){ for (int f = 0; f < fieldValue.length(); f++){ if (Character.isDigit(fieldValue.charAt(f))){ String pre = fieldValue.substring(0, f); String numInfo = fieldValue.substring(f); int numLen = numInfo.length(); Integer numResult = Integer.parseInt(numInfo) + 1; String numResultStr = String.valueOf(numResult); for (int n = numResultStr.length(); n < numLen; n++){ pre = pre + "0"; } fieldValue = pre + numResultStr; break; } } } if (!"".equals(labelTemplateNumberindIvidual)){ if ("".equals(fieldValue)){ fieldValue = "V001"; } } //批量回写UF_FULL_LABEL List<Object> paramlist = new ArrayList<Object>(); paramlist.add(fieldValue); paramlist.add(rs.getString("id")); batchParamList2.add(paramlist); } if ("approvedmanufacturersites".equals(paramMap.get("model_field"))){ String approvedmanufacturersites = Util.null2String(rs.getString("approvedmanufacturersites")).replaceAll("&nbsp;&quot;, " "); approvedmanufacturersites = approvedmanufacturersites.replaceAll("(\\\\r\\\\n|\\\\n|\\\\n\\\\r)&quot;, " "); approvedmanufacturersites = approvedmanufacturersites.replaceAll("<br>&quot;, ""); fieldValue = approvedmanufacturersites.replaceAll("<br/>&quot;, ""); } //labeltemplatenumberindividual !='' or null, LabelStatus=Y ='' or null, LabelStatus=# if ("INDLABELSTATUS".equals(Util.null2String(paramMap.get("interface_field")))){ if (!"".equals(labelTemplateNumberindIvidual)){ fieldValue = "Y"; } else { fieldValue = "#"; } } if ("".equals(fieldValue)){ fieldValue = "#"; } sber.append(fieldValue); sber.append(" "); } fileDataList.add(sber.toString()); } Integer count = fileDataList.size(); // 记录总数 if (count == 0){ return fileNameList; } Integer pageSize = 1000; if (getPageSize() != null && RscUtil.isNumeric(getPageSize())){ pageSize = Integer.parseInt(getPageSize()); } Integer pageCount = 0; // 页数 if (count % pageSize == 0) { pageCount = count / pageSize; } else { pageCount = count / pageSize + 1; } String baseUrl = localFilePath + fileName + ".txt"; File fileParent = new File(baseUrl); File fileParentInfo = fileParent.getParentFile(); if(!fileParentInfo.exists()){ fileParentInfo.mkdirs(); } int fromIndex = 0; // 开始索引 int toIndex = 0; // 结束索引 for (int pageNum = 1; pageNum <= pageCount; pageNum++){ if (pageNum != pageCount) { fromIndex = (pageNum - 1) * pageSize; toIndex = fromIndex + pageSize; } else { fromIndex = (pageNum - 1) * pageSize; toIndex = count; } List<String> pageList = fileDataList.subList(fromIndex, toIndex); String fileNameExt = ""; if (pageNum == 1 && pageNum == pageCount) { fileNameExt = fileName + ".txt"; } else { fileNameExt = fileName + "_" + pageNum + ".txt"; } String newFilePath = localFilePath + fileNameExt; File file = new File(newFilePath); file.createNewFile(); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"))); fileNameList.add(fileNameExt); out.write(headersber.toString()); out.write("\r\n"); for (String data : pageList){ out.write(data); out.write("\r\n"); } out.flush(); out.close(); } } catch (Exception e) { e.printStackTrace(); this.writeLog("read running exception:" + e.getMessage(), e); } finally { if (out != null){ out.flush(); out.close(); } } return fileNameList; } /** * 特殊字段值转化 * @param paramMap * @param fieldVal * @param cusRs * @return * @throws IOException */ private String convertValue(Map<String, String> paramMap, String fieldVal, RecordSet cusRs) throws IOException { if ("1".equals(paramMap.get("convert_type"))){ fieldVal = paramMap.get("convert_value"); } else if ("2".equals(paramMap.get("convert_type")) || "8".equals(paramMap.get("convert_type"))){ if (!"".equals(fieldVal)){ String convertSql = paramMap.get("convert_value"); convertSql = convertSql.replace("?&quot;, fieldVal); cusRs.execute(convertSql); if (cusRs.next()){ fieldVal = Util.null2String(cusRs.getString(1)); } } } else if ("5".equals(paramMap.get("convert_type"))){ String formatVal = paramMap.get("convert_value"); if (!"".equals(formatVal) && !"".equals(fieldVal)){ SimpleDateFormat formatYYYYMMDD = new SimpleDateFormat(formatVal); fieldVal = RscUtil.parseToDateString(RscUtil.parseToDate(fieldVal, RscUtil.formatYYYYMMDD), formatYYYYMMDD); } } else if ("7".equals(paramMap.get("convert_type"))){ String formatVal = paramMap.get("convert_value"); if (!"".equals(formatVal)){ SimpleDateFormat formatYYYYMMDD = new SimpleDateFormat(formatVal); fieldVal = RscUtil.parseToDateString(Calendar.getInstance().getTime(), formatYYYYMMDD); } } return fieldVal; } public void saveModeViewLog(int var1, int var2, User var3, String var4, String var5, List<Map<String, Object>> var6, Map var7, Map var8, Map<String, Map<String, Map<String, Object>>> var9, Map<String, Map<String, Map<String, Object>>> var10) { FormInfoService var11 = new FormInfoService(); RecordSet var12 = new RecordSet(); String var13 = ""; int var14 = 0; if ("1".equals(var5)) { var13 = SystemEnv.getHtmlLabelName(365, var3.getLanguage()) + "(" + SystemEnv.getHtmlLabelName(30055, var3.getLanguage()) + ")"; var14 = 522420; } else if ("2".equals(var5)) { var13 = SystemEnv.getHtmlLabelName(33797, var3.getLanguage()) + "(" + SystemEnv.getHtmlLabelName(30055, var3.getLanguage()) + ")"; var14 = 522421; } try { int var15 = var3.getUID(); String var23; String var25; String var26; String var27; if ("2".equals(var5)) { } ModeViewLog var37 = new ModeViewLog(); var37.resetParameter(); var37.setClientaddress(var4); var37.setModeid(var1); var37.setOperatetype(var5); var37.setOperatedesc(var13); var37.setOperateuserid(var15); var37.setRelatedid(var2); var37.setRelatedname(""); int var38 = var37.setSysLogInfo(); HashMap var39 = new HashMap(); HashMap var40 = new HashMap(); if (var6.size() > 0) { for(int var41 = 0; var41 < var6.size(); ++var41) { Map var21 = (Map)var6.get(var41); String var44 = Util.null2String(var21.get("id")); var23 = Util.null2String(var21.get("fieldname")); String var47 = Util.null2String(var21.get("detailtable")); if (var47.equals("")) { var25 = Util.null2String(var7.get(var23)); var26 = Util.null2String(var8.get(var23)); if (!var25.equals(var26) && "2".equals(var5)) { HashMap var51 = new HashMap(); var51.put("viewlogid&quot;, var38); var51.put("fieldid&quot;, var44); var51.put("fieldvalue&quot;, var26); var51.put("prefieldvalue&quot;, var25); var51.put("modeid&quot;, var1); var11.saveFieldLogDetail(var51); } } else { if (!var39.containsKey(var47)) { var39.put(var47, ""); } var25 = (String)var39.get(var47); if (var25.equals("")) { var25 = var23; } else { var25 = var25 + &quot;," + var23; } var39.put(var47, var25); var40.put(var47 + "_" + var23, var44); } } Iterator var42 = var39.keySet().iterator(); label156: while(var42.hasNext()) { String var43 = (String)var42.next(); HashSet var46 = new HashSet(); String[] var45 = ((String)var39.get(var43)).split(&quot;,"); Map var48 = (Map)var9.get(var43); Map var52 = (Map)var10.get(var43); Object var49 = var48 == null ? new HashMap() : var48; Object var53 = var52 == null ? new HashMap() : var52; Iterator var50 = ((Map)var53).keySet().iterator(); while(true) { int var30; int var31; String var32; String var33; Map var54; String[] var55; while(var50.hasNext()) { var27 = (String)var50.next(); if (((Map)var49).containsKey(var27)) { var54 = (Map)((Map)var49).get(var27); Map var56 = (Map)((Map)var53).get(var27); String[] var57 = var45; var31 = var45.length; for(int var58 = 0; var58 < var31; ++var58) { var33 = var57[var58]; String var34 = Util.null2String(var56.get(var33)); String var35 = Util.null2String(var54.get(var33)); if (!var35.equals(var34)) { var12.executeUpdate("insert into ModeLogFieldDetail(viewlogid,fieldid,fieldvalue,prefieldvalue,modeid,detaildataid,operateType,detailtable) values(?,?,?,?,?,?,?,?)&quot;, new Object[]{var38, var40.get(var43 + "_" + var33), var34, var35, var1, var27, "EDIT&quot;, var43}); } } var46.add(var27); } else { var54 = (Map)((Map)var53).get(var27); var55 = var45; var30 = var45.length; for(var31 = 0; var31 < var30; ++var31) { var32 = var55[var31]; var33 = Util.null2String(var54.get(var32)); var12.executeUpdate("insert into ModeLogFieldDetail(viewlogid,fieldid,fieldvalue,modeid,detaildataid,operateType,detailtable) values(?,?,?,?,?,?,?)&quot;, new Object[]{var38, var40.get(var43 + "_" + var32), var33, var1, var27, "ADD&quot;, var43}); } } } var50 = ((Map)var49).keySet().iterator(); while(true) { do { if (!var50.hasNext()) { continue label156; } var27 = (String)var50.next(); } while(var46.contains(var27)); var54 = (Map)((Map)var49).get(var27); var55 = var45; var30 = var45.length; for(var31 = 0; var31 < var30; ++var31) { var32 = var55[var31]; var33 = Util.null2String(var54.get(var32)); var12.executeUpdate("insert into ModeLogFieldDetail(viewlogid,fieldid,prefieldvalue,modeid,detaildataid,operateType,detailtable) values(?,?,?,?,?,?,?)&quot;, new Object[]{var38, var40.get(var43 + "_" + var32), var33, var1, var27, "DEL&quot;, var43}); } } } } } } catch (Exception var36) { var36.printStackTrace(); } } /** * Action 错误拦截 * @param requestInfo * @param requestid * @param msg * @return */ public String failureInfo(RequestInfo requestInfo, Integer requestid, String msg){ requestInfo.getRequestManager().setMessageid("111" + requestid + "222"); requestInfo.getRequestManager().setMessagecontent(msg); return Action.FAILURE_AND_CONTINUE; } } 这段代码什么意思
最新发布
12-09
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>订单管理</title> <link rel="stylesheet" href="fonts/iconfont.css"> <link rel="stylesheet" href="css/common.css"> <link rel="stylesheet" href="orderList.css"> </head> <body> <div class="flex web-page"> <iframe class="menu-frame" id="menuFrame" src="menu.html"></iframe> <div id="vue_det" class="main"> <div class="main-tools flex"> <div><script type="text/javascript">document.write(document.title)</script></div> </div> <div class="main-body" :class="{full:fullList}"> <!-- 查询 --> <div class="flex page-header-container"> <div> <input placeholder="查询订单名" v-model.trim="pageInfo.keyword" @keydown="doSearch1($event)"> <button class="bt bt-highlight" @click="doSearch()"><i class="iconfont icon-sousuo" style="font-size: 12px;"></i> &nbsp;查询</button> <span @click="fullList = !fullList;" class="pointer hover">&nbsp; <i v-if="!fullList" class="iconfont icon-yincang"></i> <i v-else class="iconfont icon-xianshi"></i></span> </div> <div @click="showUser()"> <button class="bt bt-highlight"><i class="iconfont icon-icon-test" style="font-size: 12px;"></i>添加订单</button> </div> </div> <!-- 列表内容 --> <div class="table-container"> <table> <tr class="title"> <td class="width35">序号</td> <td class="width50p"> <span>订单号</span> </td> <td class="">名称</td> <td class="">类型</td> <td class="">价格</td> <td class=""> <span>创建时间</span> <i @click="setOrderByStr('buildtime')" class="iconfont icon-left-copy pointer" :class="{'icon-left':pageInfo.desc=='desc'}"></i> </td> <td class="width80">操作</td> </tr> <tr @click.stop="showUser(item)" :class="{choose:showAddPage && item.id == user.id}" class="content" v-for="(item,index) in order"> <td>{{ (++index)+ ((pageInfo.currentPage - 1) * pageInfo.perPage) }}</td> <td v-html="item.orderNum"></td> <td v-html="item.orderName"></td> <td v-html="item.orderType"></td> <td v-html="item.orderPrice"></td> <td>{{item.buildtime}}</td> <td class="tools"> <button class="bt bt-red" @click.stop="deleteUser(item)">删除</button> <button class="bt bt-highlight" @click.stop="showUser(item)">详情</button> </td> </tr> </table> </div> <!-- 分页 --> <div class="flex page-container"> <div class="left"> 当前页:<span class="bold">{{pageInfo.currentPage}} </span> <span class="split-line"></span> 每页显示条数:<span class="bold"> <select v-model="pageInfo.perPage" @change="changePerPage()"> <option v-for="(pageNum) in perPages" :value="pageNum">{{pageNum}}</option> </select> </span> <span class="split-line"></span> 总条数条数:<span class="bold">{{pageInfo.totalCount}} </span> <span class="split-line"></span> 总页数:<span class="bold">{{pageInfo.pageCount}} </span> <span class="split-line"></span> <span>跳转到<input @click="jumpToPage()" class="jump-page-num" v-model="pageInfo.currentPage" readonly="readonly">页 </span> </div> <div class="right flex"> <button class="bt bt-highlight" :class="{disabled:pageInfo.currentPage<=1}" :disabled="pageInfo.currentPage<=1" @click="nextPage(-1)"><i class="iconfont icon-left" style="font-size: 12px;"></i>上一页</button> <button class="bt bt-highlight left5" :class="{disabled:pageInfo.currentPage>=pageInfo.pageCount}" :disabled="pageInfo.currentPage>=pageInfo.pageCount" @click="nextPage(1)">下一页<i class="iconfont icon-left-copy" style="font-size: 12px;"></i></button> </div> </div> </div> <!-- 添加 和 编辑 --> <div class="open-page flex" v-if="showAddPage"> <div class="container flex" :class="{row:direction_row}"> <div class="header flex"> <span> <i class="iconfont icon-bianji1"></i> &nbsp;{{user.id?'修改':'新增'}}订单 </span> <span> <span class="pointer hover" @click="direction_row = !direction_row;"><i class="iconfont icon-more"></i></span> <span class="pointer hover" @click="showAddPage = false;"><i class="iconfont icon-guanbi" style="font-size: 12px;"></i></span> </span> </div> <div class="midlle flex"> <div class="content"> <div class="item"> <label>订单号:</label> <input placeholder="输入订单号" maxlength="20" v-model.trim="user.orderNum"> </div> <div class="item"> <label>名称:</label> <input placeholder="输入名称" maxlength="200" v-model.trim="user.orderName"> </div> <div class="item"> <label>类型:</label> <input placeholder="输入类型" maxlength="200" v-model.trim="user.orderType"> </div> <div class="item"> <label>价格:</label> <input placeholder="输入价格" maxlength="200" v-model.trim="user.orderPrice"> </div> <div class="item" v-if="user.buildtime"> <label>创建时间:</label>{{user.buildtime}} </div> </div> </div> <div class="footer flex "> <div class="bt-list"> <button class="bt bt-highlight" @click="save()">保存</button> <button class="bt bt-red left5" @click="showAddPage = false;">取消</button> </div> </div> </div> </div> </div> </div> </body> <script type="text/javascript" src="js/vue.min.js"></script> <script type="text/javascript" src="js/common.js"></script> <script type="text/javascript" src="orderList.js"></script> </html> 这段代码有什么问题?为什么导致我创建订单保存不了显示错误500
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值