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 + ",username:" + username + ",loginVersion:" + getLoginVersion());
String loginInfo = "";
if ("2".equals(getLoginVersion())){
loginInfo = rscCrushService.loginV2(crushHost, username , password);
this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + ",fileNameList size:" + fileNameList.size());
} else if ("3".equals(getLoginVersion())){
loginInfo = rscCrushService.loginV3(crushHost, username , password);
this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + ",fileNameList size:" + fileNameList.size());
} else if ("4".equals(getLoginVersion())){
loginInfo = rscCrushService.loginV4(crushHost, username , password);
this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + ",fileNameList size:" + fileNameList.size());
} else {
loginInfo = rscCrushService.login(crushHost, username , password);
this.writeLog(ACTION_NAME + " ,,,loginInfo:" + loginInfo + ",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(", ", filedFileList);
rscCrushService.insertResendJob("RSC_CRUSH_HOST", "RSC_CRUSH_USERNAME", "RSC_CRUSH_PASSWORD",
"RSC_CRUSH_SERVER_PATH", fileNameString, "RSC_CRUSH_LOCAL_PATH", 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", Util.null2String(rs.getString("fulllicenselabeldatabaserevisi")));
}
nowData.put("fulllicenselabeldatabaserevisi", 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", 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", Util.null2String(rs.getString("qaadditionaldata2")));
}
nowData.put("qaadditionaldata2", 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", 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(", ", fileRecordList);
RscCrushService rscService = new RscCrushService();
String info = "SAP_WF5_QA";
if (getIdentify() != null){
info = getIdentify();
}
try {
rscService.insertResendJob("RSC_CRUSH_HOST", "RSC_CRUSH_USERNAME", "RSC_CRUSH_PASSWORD",
"RSC_CRUSH_SERVER_PATH", fileRecordString, "RSC_CRUSH_LOCAL_PATH", 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 += ",";
}
}
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(" ", " ");
approvedmanufacturersites = approvedmanufacturersites.replaceAll("(\\\\r\\\\n|\\\\n|\\\\n\\\\r)", " ");
approvedmanufacturersites = approvedmanufacturersites.replaceAll("<br>", "");
fieldValue = approvedmanufacturersites.replaceAll("<br/>", "");
}
//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("?", 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", var38);
var51.put("fieldid", var44);
var51.put("fieldvalue", var26);
var51.put("prefieldvalue", var25);
var51.put("modeid", 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 + "," + 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(",");
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(?,?,?,?,?,?,?,?)", new Object[]{var38, var40.get(var43 + "_" + var33), var34, var35, var1, var27, "EDIT", 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(?,?,?,?,?,?,?)", new Object[]{var38, var40.get(var43 + "_" + var32), var33, var1, var27, "ADD", 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(?,?,?,?,?,?,?)", new Object[]{var38, var40.get(var43 + "_" + var32), var33, var1, var27, "DEL", 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;
}
}
这段代码什么意思
最新发布