#zjrb-001# 代码统一备份

main
shilei 7 months ago
parent fe79b62f3c
commit e3148d7d8d

@ -0,0 +1,93 @@
package com.api.doc.detail.util;
import com.engine.doc.util.IWebOfficeConf;
import weaver.conn.RecordSet;
import weaver.general.Util;
public class CooperativeUtilForDoc {
public static boolean isopencolla(int fileid){
RecordSet rs = new RecordSet();
String collasql = " select d3.ISCOLLASEC,d3.OPENCOLLAEDIT,d1.ISOPENCOLLA from DOCDETAIL d1,DOCIMAGEFILE d2 ,DOCSECCATEGORY d3 where d1.ID=d2.DOCID and d1.SECCATEGORY=d3.ID and d2.IMAGEFILEID=? order by d2.ID DESC ";
rs.executeQuery(collasql,fileid);
boolean iscollaborativedoc = false;
if(rs.next()){
int iscollasec = Util.getIntValue(rs.getString("ISCOLLASEC"), 0);
int isopencolla = Util.getIntValue(rs.getString("ISOPENCOLLA"), 0);
int opencollaedit = Util.getIntValue(rs.getString("OPENCOLLAEDIT"), 0);
iscollaborativedoc = iscollasec ==1 && isopencolla == 1 && opencollaedit==1;
}
return iscollaborativedoc;
}
public static boolean isColla(int docid){
RecordSet rs = new RecordSet();
String collasql = " select d1.DOCTYPE,d2.ISCOLLASEC,d1.ISOPENCOLLA from DOCDETAIL d1,DOCSECCATEGORY d2 where d1.ID=? and d1.SECCATEGORY=d2.ID ";
rs.executeQuery(collasql,docid);
boolean iscollaborativedoc = false;
if(rs.next()){
int isopencolla = Util.getIntValue(rs.getString("ISOPENCOLLA"), 0);
int doctype = Util.getIntValue(rs.getString("DOCTYPE"), 0);
iscollaborativedoc = isopencolla == 1;
}
return iscollaborativedoc;
}
public static boolean isCollaEdit(int docid){
RecordSet rs = new RecordSet();
String collasql = " select d2.ISCOLLASEC,d2.OPENCOLLAEDIT,d1.ISOPENCOLLA,d1.doctype from DOCDETAIL d1,DOCSECCATEGORY d2 where d1.ID=? and d1.SECCATEGORY=d2.ID ";
rs.executeQuery(collasql,docid);
boolean iscollaborativedoc = false;
if(rs.next()){
int isopencolla = Util.getIntValue(rs.getString("ISOPENCOLLA"), 0);
int opencollaedit = Util.getIntValue(rs.getString("OPENCOLLAEDIT"), 0);
int doctype = Util.getIntValue(rs.getString("doctype"), 0);
iscollaborativedoc = isopencolla == 1 && opencollaedit == 1 && doctype==2;
}
return iscollaborativedoc;
}
public static void openCollaForDoc(int docid){
RecordSet rs = new RecordSet();
String collasql = " select d2.ISCOLLASEC,d1.ISOPENCOLLA,d1.doctype from DOCDETAIL d1,DOCSECCATEGORY d2 where d1.ID=? and d1.SECCATEGORY=d2.ID ";
rs.executeQuery(collasql,docid);
boolean iscollaborativesec = false;
if(rs.next()){
int iscollasec = Util.getIntValue(rs.getString("ISCOLLASEC"), 0);
int doctype = Util.getIntValue(rs.getString("doctype"), 0);
iscollaborativesec = iscollasec == 1;
}
if(iscollaborativesec){
rs.executeSql(" update docdetail set ISOPENCOLLA=1 where id="+docid);
}
}
public static String getmFileType(int fileid){
RecordSet rs = new RecordSet();
String sql = "select a.imagefileid,a.imagefilename,a.docfiletype,a.versionId,b.filesize from DocImageFile a,Imagefile b " +
" where a.imagefileid=b.imagefileid and a.imagefileid="+fileid+" and (a.isextfile <> '1' or a.isextfile is null) order by a.versionId desc";
rs.executeQuery(sql);
String mFileType = "";
int docFileType = rs.getInt("docfiletype");
String imageFileName = rs.getString("imagefilename");
int versionId = rs.getInt("versionId");
if(docFileType == 3){
mFileType = ".doc";
} else if(docFileType == 7){
mFileType = ".docx";
}else if(docFileType == 4){
mFileType = ".xls";
} else if(docFileType == 8){
mFileType = ".xlsx";
}else if(docFileType == 6){
mFileType = ".wps";
}else if(docFileType == 10){
mFileType = ".et";
}else if(docFileType == 12){
mFileType = ".html";
}else if(imageFileName.toLowerCase().endsWith(".uot") && IWebOfficeConf.isyozoOffice()){
mFileType = ".doc";
}
return mFileType;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,825 @@
package com.api.mobilemode.web.mobile.service;
import com.api.doc.detail.service.DocViewPermission;
import com.api.doc.detail.util.DocDownloadCheckUtil;
import com.api.doc.mobile.systemDoc.service.impl.ImageFileServiceImpl;
import com.api.doc.mobile.systemDoc.util.DocDetailUtil;
import com.api.mobilemode.util.BasicHandler;
import com.api.mobilemode.util.FieldHandler;
import com.api.mobilemode.web.mobile.ActionMapping;
import com.api.mobilemode.web.mobile.BaseMobileAction;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.cube.biz.CodeBuilder;
import com.engine.mobilemode.biz.json.MJSONObject;
import com.weaver.formmodel.constant.Constants;
import com.weaver.formmodel.data.manager.CustomSearchManager;
import com.weaver.formmodel.data.manager.FormInfoManager;
import com.weaver.formmodel.data.model.CustomSearch;
import com.weaver.formmodel.data.model.Formfield;
import com.weaver.formmodel.exception.MobileModeException;
import com.weaver.formmodel.mobile.MobileFileUpload;
import com.weaver.formmodel.mobile.mec.model.MobileExtendComponent;
import com.weaver.formmodel.mobile.mec.service.MECService;
import com.weaver.formmodel.mobile.security.SecurityUtil;
import com.weaver.formmodel.mobile.ui.manager.MobileAppUIManager;
import com.weaver.formmodel.mobile.ui.model.AppFormUI;
import com.weaver.formmodel.mobile.utils.AttachUtil;
import com.weaver.formmodel.mobile.utils.BrowserUtil;
import com.weaver.formmodel.mobile.utils.MobileCommonUtil;
import com.weaver.formmodel.mobile.utils.TextUtil;
import com.weaver.formmodel.util.NumberHelper;
import com.weaver.formmodel.util.SQLParseHelper;
import com.weaver.formmodel.util.StringHelper;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.file.FileUpload;
import weaver.file.ImageFileManager;
import weaver.formmode.dao.ModelInfoDao;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.StaticObj;
import weaver.general.Util;
import weaver.interfaces.datasource.DataSource;
import weaver.servicefiles.DataSourceXML;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLDecoder;
import java.util.*;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class MobileCommonAction extends BaseMobileAction{
private static final long serialVersionUID = -268583277882617838L;
public MobileCommonAction(HttpServletRequest request, HttpServletResponse response) {
super(request, response);
}
/**
*
*
* @return
*/
@ActionMapping(name="getFieldTriggerValue")
public List<Map<String, Object>> getFieldTriggerValue(){
RecordSet recordSet = new RecordSet();
String datasource = Util.null2String(getParameter("datasourcename"));
String fromTable = "";
String whereClause = "";
int entryId = Util.getIntValue(getParameter("entryId"), -1);
String fromTableids = Util.null2String(getParameter("fromTable"));
java.util.List<String> fromTableidsList = StringHelper.string2ArrayList(fromTableids, ",");
String sql = "select a.entryid,a.whereclause,b.id,b.DataInputID,b.TableName,b.alias from modeDataInputmain a,modeDataInputtable b where a.id=b.datainputid and a.entryID=? order by b.id asc";
recordSet.executeQuery(sql, entryId);
List<String> textTypeFields = new ArrayList<>();
RecordSet fieldRcord = new RecordSet();
String DBtype = fieldRcord.getDBType();
while(recordSet.next()){
String dataInputtableid = recordSet.getString("id");
if(!fromTableidsList.contains(dataInputtableid)) continue;
String itemFromTable = recordSet.getString("tablename");
String alias = Util.null2String(recordSet.getString("alias"));
fieldRcord.executeQuery("select a.fieldname from workflow_billfield a, workflow_bill b where a.billid = b.id and a.fielddbtype = 'text' and b.tablename = ?", itemFromTable);
while(fieldRcord.next()) {
String textFieldname = fieldRcord.getString("fieldname");
if (!"".equals(alias)) {
textFieldname = (alias+"."+textFieldname);
}
textTypeFields.add(textFieldname);
}
if(!"".equals(alias)) itemFromTable += " " + alias;
fromTable += itemFromTable + ",";
whereClause = Util.null2String(recordSet.getString("whereclause"));
}
if(!"".equals(fromTable)) fromTable = fromTable.substring(0, fromTable.length()-1);
if("".equals(whereClause)) whereClause = " 1=1 ";
//取值字段为查询条件
JSONArray asArr;
String triggerConditionjsonArr = Util.null2String(getParameter("triggerConditionjsonArr"));
if(triggerConditionjsonArr.trim().equals("")){
asArr = new JSONArray();
}else{
asArr = JSONArray.fromObject(triggerConditionjsonArr);
}
//赋值字为查询字段
String regex = "^[\u4e00-\u9fa5 a-z0-9A-Z_]*$";
String triggerJsonArr = Util.null2String(getParameter("triggerJsonArr"));
String searchField = "";
if(triggerJsonArr.trim().equals("")){
searchField = " * ";
}else{
try{
StringBuilder sb = new StringBuilder();
JSONArray searchFieldArr = JSONArray.fromObject(triggerJsonArr);
for(int i = 0; i < searchFieldArr.size(); i++){
JSONObject fieldObj = searchFieldArr.getJSONObject(i);
String fieldname = Util.null2String(fieldObj.get("name"));
String fieldid = Util.null2String(fieldObj.get("id"));
if(!Pattern.matches(regex, fieldid)) throw new MobileModeException(MobileCommonUtil.getHtmlLabelName(383777, user.getLanguage(), "fieldid参数不合法"+fieldid));
if(!Pattern.matches(regex, fieldname)) throw new MobileModeException(MobileCommonUtil.getHtmlLabelName(383777, user.getLanguage(), "fieldname参数不合法"+fieldname));
String alias = Util.null2String(fieldObj.get("alias"));
sb.append("".equals(alias) ? fieldname : alias + "." + fieldname).append(" ").append(fieldid).append(",");
}
searchField = sb.substring(0, sb.length() - 1);
}catch(Exception e){
searchField = " * ";
new BaseBean().writeLog(e.getMessage());
}
}
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.append("select ").append(searchField).append(" from ").append(fromTable).append(" where ").append(whereClause);
for(int i = 0;i < asArr.size();i++){
JSONObject jsonObject = asArr.getJSONObject(i);
String alias = StringHelper.null2String(jsonObject.get("alias"));
String nameN = StringHelper.null2String(jsonObject.get("name"));
String conditions = StringHelper.null2String(jsonObject.get("conditions"));//联动条件设置
if(StringHelper.isNotEmpty(alias)){
nameN = alias + "." + nameN;
}
String valueN = StringHelper.null2String(jsonObject.get("value"));
if (textTypeFields.contains(nameN)) {
nameN = " cast(" + nameN + " as varchar)";
}
if("".equals(valueN)){
sqlBuilder.append(" and (").append(nameN).append("='' or ").append(nameN).append(" is null)");
}else{
if("1".equals(conditions)){//属于
sqlBuilder.append(" and ").append(nameN).append(" in (").append(valueN).append(")");
} else {
if(DBtype.equals("postgresql")){//当数据库类型为postgreSQL时单独处理
sqlBuilder.append(" and ").append(nameN).append(" = '").append(valueN).append("'");
}else{
sqlBuilder.append(" and ").append(nameN).append(" like '").append(valueN).append("'");
}
}
}
}
sql = sqlBuilder.toString();
Map<String,String> fieldAliasMap = new HashMap<>();
boolean flag = MobileCommonUtil.analysisPwd( sql, datasource, fieldAliasMap );
List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
if(!"".equals(datasource) && !DataSourceXML.SYS_LOCAL_POOLNAME.equals(datasource)){
recordSet.executeSqlWithDataSource(sql, datasource);
}else{
recordSet.execute(sql);
}
BaseBean zxlog = new BaseBean();
zxlog.writeLog("----2022120701ZXCS----:"+sql+"|| DBtype:"+DBtype);
String[] columnNames = recordSet.getColumnName();
while(recordSet.next()){
Map<String, Object> resultMap = new HashMap<String, Object>();
for(String columnName : columnNames){
String columnValue = MobileCommonUtil.formatMultiLang(recordSet.getString(columnName), user);
if(flag && ("password".equals(columnName.toLowerCase() ) || Util.null2String(fieldAliasMap.get(columnName.toLowerCase())).toLowerCase().contains("password"))){
columnValue = "";
}
resultMap.put(columnName, columnValue);
}
resultList.add(resultMap);
}
return resultList;
}
@ActionMapping(name="getCalendarCondition")
public String getCalendarCondition() {
String condition = "";
String columns = Util.null2String(this.getRequest().getParameter("columns"));
if(!columns.equals("")){
try {
columns = URLDecoder.decode(columns, "utf-8");
JSONArray columnArr = JSONArray.fromObject(columns);
if(columnArr.size() > 0){
//日期条件
condition += "(";
for(int i = 0; i < columnArr.size(); i++){
JSONObject columnObj = (JSONObject)columnArr.get(i);
String name = Util.null2String(columnObj.get("name"));
String value = Util.null2String(columnObj.get("value"));
String opt = Util.null2String(columnObj.get("opt"));
String fieldType = Util.null2String(columnObj.get("fieldType"));
boolean valueIsField = fieldType.equals("valueIsField");
String optStr = "";
String dateTimeValue = value;
if(opt.equals("equalTo")){
//只有e8使用了
optStr = "=";
}else if(opt.equals("lessThanEqualTo")){
optStr = "<=";
//时间日期字段或者来源为sql时type为""
if ((fieldType.equals("290") || fieldType.equals("")) && !valueIsField){
dateTimeValue += " 23:59:59";
}
}else if(opt.equals("greaterThanEqualTo")){
optStr = ">=";
//数据库比较字符串大小是一个一个字符比较的因此2019-12-12是小于2019-12-12 00:00:00的。此处只对时间日期类型处理即可。
if (fieldType.equals("290")){
dateTimeValue += " 00:00:00";
}
}
String singleMark = valueIsField ? "" : "'";
condition += name + optStr + singleMark + dateTimeValue + singleMark;
if(i != (columnArr.size() - 1)){
condition += " and ";
}
}
condition += ")";
condition = SecurityUtil.encrypt(condition);
}
} catch (Exception e) {
writeLog(e);
}
}
return condition;
}
@ActionMapping(name="getImgMeta", returnKey="datas")
public JSONArray getImgMeta() throws Exception{
JSONArray datas = new JSONArray();
String items = Util.null2String(getParameter("items")).trim();
JSONArray imgArr = new JSONArray();
if(StringHelper.isNotEmpty(items)){
try{
imgArr = JSONArray.fromObject(items);
}catch(Exception e){
e.printStackTrace();
}
}
int size = imgArr.size();
for(int i = 0; i < size; i++){
JSONObject imgObj = imgArr.getJSONObject(i);
int index = Util.getIntValue(Util.null2String(imgObj.get("index")));
String imgPath = Util.null2String(imgObj.get("src"));
if(imgPath.trim().equals("")){
continue;
}
String fileid = "";
boolean isID = false;
if(imgPath.indexOf("/weaver/weaver.file.FileDownload?fileid=") != -1){
fileid = MobileCommonUtil.getParamInUrl(imgPath, "fileid");
isID = true;
}else if(imgPath.indexOf("/mobile/plugin/Download.jsp?sessionkey=") != -1){
fileid = MobileCommonUtil.getParamInUrl(imgPath, "url");
isID = true;
}else if(imgPath.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$")){
fileid = imgPath;
imgPath = "/weaver/weaver.file.FileDownload?fileid=" + fileid;
isID = true;
}
boolean isUrl = !isID && !imgPath.equals("");
InputStream inStream = null;
if(isID){
fileid = DocDownloadCheckUtil.getDownloadfileidstr(fileid);
ImageFileManager fileManager = new ImageFileManager();
fileManager.getImageFileInfoById(Util.getIntValue(fileid));
String fileType = fileManager.getImageFileType();
if(!fileType.contains("image")){ //过滤掉不是图片的附件
continue;
}
inStream = ImageFileManager.getInputStreamById(Util.getIntValue(fileid));
}else if(isUrl){
String realPath = getRequest().getSession().getServletContext().getRealPath(imgPath);
File file = new File(realPath);
if(file.exists() && file.isFile()){
inStream = new BufferedInputStream(new FileInputStream(file));
}
}
if (imgPath != null && imgPath.startsWith("/") && !imgPath.startsWith(weaver.general.GCONST.getContextPath())) {
imgPath = weaver.general.GCONST.getContextPath() + imgPath;
}
JSONObject d = new JSONObject();
d.put("src", imgPath);
d.put("w", "200"); //如果是外网图片或者资源不存在需设置默认高度和宽度否则PhotoSwipejs会加载异常
d.put("h", "200");
if(inStream != null){
try{
/*使用ByteArrayOutputStream读取inStream,相当于缓存复制一份inStream。下面用的时候不能因为try中的代码干扰catch中的代码*/
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inStream.read(buffer)) > -1 ) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
BufferedImage inputBufImage = null;
try{
inputBufImage = ImageIO.read(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
}catch(Exception ex){
ex.printStackTrace();
}
int width = inputBufImage.getWidth();
int height = inputBufImage.getHeight();
d.put("w", width);
d.put("h", height);
}catch(Exception ex){
//如果IO流对应的文件不是图片文件流获取图片信息会失败需要捕获该异常
ex.printStackTrace();
}
}
d.put("index", index);
datas.add(d);
}
return datas;
}
@ActionMapping(name="runSQL")
public JSONObject runSQL() {
JSONObject result = new JSONObject();
FileUpload fileUpload = new MobileFileUpload(this.getRequest(), "UTF-8", false);
String datasource = Util.null2String(fileUpload.getParameter("datasource"));
datasource = ("".equals(datasource)) ? null : datasource;
String sql = Util.null2String(fileUpload.getParameter("content"));
sql = SecurityUtil.decrypt(sql);
if(!MobileCommonUtil.isSafeSql(sql, datasource)){//sql不安全
result.put("status", "0");
result.put("result", "false");
return result;
}
sql = BasicHandler.replaceVariables(sql, user, pageParam);
sql = BasicHandler.replaceServerVariables(sql);
String tmpSQL = sql.toLowerCase().trim();
boolean isNotQuery = tmpSQL.startsWith("insert") || tmpSQL.startsWith("update") || tmpSQL.startsWith("delete");
String sqlParams = MobileCommonUtil.decompressByLZ(Util.null2String(fileUpload.getParameter("sqlParams")));
JSONArray sqlParamArray = StringHelper.isEmpty(sqlParams) ? new JSONArray() : JSONArray.fromObject(sqlParams);
Object[] paramArr = new Object[sqlParamArray.size()];
for(int i = 0; i < sqlParamArray.size(); i++){
Object p = sqlParamArray.get(i);
if(p instanceof String){
p = TextUtil.escapeHtml((String)p);
}
paramArr[i] = p;
}
/*处理in的情况方便前台调用*/
String inStr = " in (?)";
int inIndex = -1;
while((inIndex = sql.indexOf(inStr)) != -1){
String beforeStr = sql.substring(0, inIndex);
String currStr = sql.substring(inIndex, inIndex + inStr.length());
String afterStr = sql.substring(inIndex + inStr.length(), sql.length());
int countOfBefore = (beforeStr.length() - beforeStr.replace("?", "").length());
Object currValue = paramArr[countOfBefore];
currStr = currStr.replace("?", Util.null2String(currValue));
paramArr = MobileCommonUtil.deleteArrayElement(paramArr, countOfBefore);
sql = beforeStr + currStr + afterStr;
}
Map<String,String> fieldAliasMap = new HashMap<>();
RecordSet rs = new RecordSet();
boolean flag = MobileCommonUtil.analysisPwd(sql, datasource, fieldAliasMap);
/*针对查询增加分页限制*/
if(!isNotQuery){
// String dbType = rs.getDBType(datasource);
String dbType = "";
if (StringUtils.isBlank(datasource)||DataSourceXML.SYS_LOCAL_POOLNAME.equals(datasource)) {
dbType = rs.getDBType();
} else {
DataSource datasource2 = (DataSource) StaticObj.getServiceByFullname("datasource."+datasource, DataSource.class);
dbType = datasource2.getType();
}
new BaseBean().writeLog("===dbType2:"+dbType);
if("oracle".equalsIgnoreCase(dbType)){
sql = "select T.* from ("+sql+") T where rownum <= 100";
}else if("mysql".equalsIgnoreCase(dbType)){
if(!sql.toLowerCase().contains(" limit ")){
sql = sql + " limit 100";
}
}
else if("postgresql".equalsIgnoreCase(dbType)){
if(!sql.toLowerCase().contains(" limit ")){
sql = sql + " limit 100";
}
}
else if("db2".equalsIgnoreCase(dbType)){
if(!sql.toLowerCase().contains(" fetch first ")){
sql = "select T.* from ("+sql+") T fetch first 100 rows only";
}
}
else if ("sqlserver".equalsIgnoreCase(dbType)) {
//解析sql
int selectIndex = sql.toLowerCase().indexOf("select ");
int fromIndex = sql.toLowerCase().indexOf(" from");
if(fromIndex > 0){
List<String> sqlParts = SQLParseHelper.formatAndSplit(sql, datasource);
Optional<String> orderByOpt = sqlParts.stream().filter(s -> s.toLowerCase().indexOf("order by") == 0).findFirst();
String orderBy = orderByOpt.isPresent() ? orderByOpt.get() : "";
int topIndex = sql.substring(selectIndex, fromIndex).toLowerCase().indexOf(" top ");
if (StringHelper.isNotEmpty(orderBy) && topIndex == -1) {
//如果最外层sql有 order by且无top关键字此处对sql进行处理加上 Top 100
sql = "select top 100 "+sql.substring(6);
} else {
sql = "select top 100 T.* from ("+sql+") T";
}
}
}else if("informix".equalsIgnoreCase(dbType)){
sql = " select T.* from ("+sql+") T limit 100 ";
}else {
sql = "select top 100 T.* from ("+sql+") T";
}
}
new BaseBean().writeLog("===sql:"+sql);
boolean isSuccess = rs.executeSql(sql, !isNotQuery, datasource, paramArr);
result.put("status", isSuccess ? "1" : "0");
if(isNotQuery){
result.put("result", isSuccess);
}else{
List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
String[] columnNames = rs.getColumnName();
while(rs.next()){
Map<String, Object> resultMap = new HashMap<String, Object>();
for(String columnName : columnNames){
String columnValue = MobileCommonUtil.formatMultiLang(rs.getString(columnName), user);
String columnNameLower = columnName.toLowerCase();
String colrmnNameUpper = columnName.toUpperCase();
if(flag && ("password".equals(columnName. toLowerCase() ) || Util.null2String(fieldAliasMap.get(columnName.toLowerCase())).toLowerCase().contains("password"))){
columnValue = "";
}
resultMap.put(columnName, columnValue);
if(columnName.equals(columnNameLower)){
resultMap.put(colrmnNameUpper, columnValue);
}else if(columnName.equals(colrmnNameUpper)){
resultMap.put(columnNameLower, columnValue);
}else{
resultMap.put(colrmnNameUpper, columnValue);
resultMap.put(columnNameLower, columnValue);
}
}
resultList.add(resultMap);
}
result.put("result", JSONArray.fromObject(resultList));
}
return result;
}
@ActionMapping(name="getCustomSearchFieldMeta")
public MJSONObject getCustomSearchFieldMeta() throws Exception{
MJSONObject resultObj = new MJSONObject();
MobileExtendComponent mecObj = getMecObjFromRequest();
JSONArray asFields = (JSONArray) mecObj.getMecparam("advancedSearchColumns");
JSONObject sourceData = (JSONObject) mecObj.getMecparam("sourceData");
int sourceType = Util.getIntValue(Util.null2String(sourceData.get("sourceType")), 1);
if(sourceType != 1 && asFields != null && asFields.size() > 0){
for(int i = 0; i < asFields.size(); i++){
JSONObject searchFieldObj = asFields.getJSONObject(i);
String id = Util.null2String(searchFieldObj.get("id"));
JSONObject customFieldJson = (JSONObject) searchFieldObj.get("fieldJson");
int fieldtype = Util.getIntValue(Util.null2String(customFieldJson.get("fieldtype")));
int dataType = Util.getIntValue(Util.null2String(customFieldJson.get("sourcetype")));
if(fieldtype == 5 && dataType == 2){
String datasource = Util.null2String(customFieldJson.get("datasource"));
String sql = Util.null2String(customFieldJson.get("sql"));
sql = BasicHandler.replaceVariables(sql, user, pageParam);
RecordSet rs = new RecordSet();
boolean isSuccess = false;
if (!"".equals(datasource) && !DataSourceXML.SYS_LOCAL_POOLNAME.equals(datasource)) {
isSuccess = rs.executeQueryWithDatasource(sql, datasource);
} else {
isSuccess = rs.executeQuery(sql);
}
if(isSuccess){
JSONArray fieldDatas = new JSONArray();
List<String> columnNames = Arrays.asList(rs.getColumnName());
while(rs.next()){
JSONObject jsonObj = new JSONObject();
String name;
String value;
if(columnNames.contains("name")){
name = rs.getString("name");
}else{
name = rs.getString(1);
}
if(columnNames.contains("value")){
value = rs.getString("value");
}else{
value = rs.getString(2);
}
jsonObj.put("selectname", MobileCommonUtil.formatMultiLang(name, user));
jsonObj.put("selectvalue", value);
fieldDatas.add(jsonObj);
}
resultObj.put(id, fieldDatas);
}
}
}
}
return resultObj;
}
@ActionMapping(name="getSearchFieldMeta", returnKey="datas")
public JSONArray getSearchFieldMeta() throws Exception{
JSONArray fieldMetaArr = new JSONArray();
String browser = Util.null2String(getParameter("browser"));
if(StringHelper.isNotEmpty(browser)){// 浏览框高级搜索
List<Formfield> formFields = BrowserUtil.getCubeBrowserSearchField(browser, user.getLanguage());
formFields.forEach(f -> {
fieldMetaArr.add(FieldHandler.parseFormfieldForSearch("", f, user));
});
return fieldMetaArr;
}
String id = Util.null2String(getParameter("id"));
int searchid = Util.getIntValue(getParameter("searchid"));
JSONArray asConfigArr = new JSONArray();
int formid = 0;
if(searchid != -1){
try{
String advancedSearchContent = Util.null2String(getParameter("conditions")).trim();
asConfigArr = JSONArray.fromObject(advancedSearchContent);
CustomSearchManager searchManager = CustomSearchManager.getInstance();
CustomSearch customSearch = searchManager.getCustomSearch(searchid);
formid = customSearch.getFormid();
}catch(Exception e){
e.printStackTrace();
}
}else{
MECService mecService = new MECService();
MobileExtendComponent mecObj = mecService.getMecById(id);
int source = Util.getIntValue(Util.null2String(mecObj.getMecparam("source")));
MobileAppUIManager mobileAppUIManager = MobileAppUIManager.getInstance();
AppFormUI appFormUI = mobileAppUIManager.getById(source);
String advancedSearchContent = Util.null2String(mecObj.getMecparam("advancedSearchContent")).trim();
asConfigArr = JSONArray.fromObject(advancedSearchContent);
if(appFormUI != null && !advancedSearchContent.equals("")){
formid = appFormUI.getFormId();
}
}
if(formid != 0){
Map<Integer,Formfield> fieldMap = FormInfoManager.getInstance().getFieldMap(formid);
Map<Integer, Integer> childFieldMap = new HashMap<>();
for (int i = 0; i < asConfigArr.size(); i++) {
JSONObject asConfigObj = (JSONObject)asConfigArr.get(i);
int fid = Util.getIntValue(Util.null2String(asConfigObj.get("fieldid")));
Formfield fd = fieldMap.get(fid);
String htmltype = fd.getFieldhtmltype();
if ("5".equals(htmltype)) {
int fieldid = fd.getId();
Integer childfieldid = fd.getChildfieldid();
if (childfieldid != null && childfieldid > 0) {
childFieldMap.put(childfieldid, fieldid);
}
}
}
for(int i = 0; i < asConfigArr.size(); i++){
JSONObject asConfigObj = (JSONObject)asConfigArr.get(i);
String fieldname = Util.null2String(asConfigObj.get("field"));
int fid = Util.getIntValue(Util.null2String(asConfigObj.get("fieldid")));
Formfield formfield = fieldMap.get(fid);
if(formfield == null){//兼容老数据
for(Entry<Integer, Formfield> entry : fieldMap.entrySet()){
Formfield fd = entry.getValue();
String currfield = fd.getFieldname();
if(StringHelper.isNotEmpty(fd.getDetailtable())){
currfield = Constants.DETAILTABLE_ALIAS + "." + currfield;
}
if(fieldname.equalsIgnoreCase(currfield)){
formfield = fd;
break;
}
}
}
if(formfield == null){ //字段匹配不到
continue;
}
formfield.setLabelName(Util.null2String(asConfigObj.get("showname")));
fieldMetaArr.add(FieldHandler.parseFormfieldForSearch(String.valueOf(searchid), formfield, childFieldMap, user));
}
}
return fieldMetaArr;
}
@ActionMapping(name="selectChange", returnKey="datas")
protected JSONArray getChildSelectValue(){
JSONArray result = new JSONArray();
int fieldid = Util.getIntValue(getParameter("fieldid"));
int childfieldid = Util.getIntValue(getParameter("childfieldid"));
String selectvalue = Util.null2String(getParameter("selectvalue"));
if(fieldid != -1 && childfieldid != -1 && StringHelper.isNotEmpty(selectvalue)){
RecordSet rs = new RecordSet();
String sql = "";
sql = "select childitemid from workflow_selectitem where fieldid="+fieldid+" and isbill=1 and selectvalue="+selectvalue;
rs.execute(sql);
if(rs.next()){
String childitemid = Util.null2String(rs.getString("childitemid"));
if(!"".equals(childitemid.trim())){
if(!"".equals(childitemid)){
if(childitemid.indexOf(",")==0){
childitemid = childitemid.substring(1);
}
if(childitemid.endsWith(",")){
childitemid = childitemid.substring(0, childitemid.length()-1);
}
sql = "select id, selectvalue, selectname, listorder from workflow_selectitem where fieldid="+childfieldid+" and isbill=1 and selectvalue in ("+childitemid+") and ( cancel!=1 or cancel is null) order by listorder, id asc";
rs.execute(sql);
while(rs.next()){
String selectvalue_tmp = Util.null2String(rs.getString("selectvalue"));
String selectname_tmp = Util.toScreen(rs.getString("selectname"), 7);
JSONObject selectOption=new JSONObject();
selectOption.put("value",selectvalue_tmp);
selectOption.put("text", MobileCommonUtil.formatMultiLang(selectname_tmp, user));
result.add(selectOption);
}
}
}
}
}
return result;
}
@ActionMapping(name="getUserMecConfig")
public JSONObject getUserMecConfig(){
JSONObject result = new JSONObject();
result.put("status", "0");
String mecid = Util.null2String(getParameter("mecid"));
if(StringHelper.isNotEmpty(mecid)){
RecordSet rs = new RecordSet();
String sql = "";
sql = "select config from MobilemodeUserMecConfig where userid = ? and mecid = ? ";
rs.executeQuery(sql, user.getUID(), mecid);
if(rs.next()){
result.put("status", "1");
result.put("result", Util.null2String(rs.getString("config")));
}
}
return result;
}
@ActionMapping(name="setUserMecConfig")
public JSONObject setUserMecConfig(){
JSONObject result = new JSONObject();
FileUpload fu = new MobileFileUpload(this.getRequest(), "UTF-8", false);
String mecid = Util.null2String(fu.getParameter("mecid"));
String config = Util.null2String(fu.getParameter("config"));
boolean isSuccess = false;
if(StringHelper.isNotEmpty(mecid)){
RecordSet rs = new RecordSet();
String sql = "";
sql = "select id from MobilemodeUserMecConfig where userid = ? and mecid = ? ";
rs.executeQuery(sql, user.getUID(), mecid);
if(rs.next()){
isSuccess = rs.executeUpdate("update MobilemodeUserMecConfig set config = ? where id = ? ", config, Util.null2String(rs.getString("id")));
}else{
isSuccess = rs.executeUpdate("insert into MobilemodeUserMecConfig(mecid, userid, config) values(?,?,?)", mecid, user.getUID(), config);
}
}
result.put("success", isSuccess);
return result;
}
@ActionMapping(name="encrypt")
protected String encrypt() {
String content = Util.null2String(getParameter("content"));
boolean unEncodeWhenFirewallDisabled = Util.null2String(getParameter("unEncodeWhenFirewallDisabled")).equals("true");
return MobileCommonUtil.xssEncode(content, !unEncodeWhenFirewallDisabled);
}
@ActionMapping(name="addFormmodeDataShare")
protected void addFormmodeDataShare() {
int modelid = NumberHelper.getIntegerValue(getParameter("modelid"), -1);
int billid = NumberHelper.getIntegerValue(getParameter("billid"), -1);
if(modelid > 0 && billid > 0){
int userid = user.getUID();
ModelInfoDao modelInfoDao = new ModelInfoDao();
int formid = modelInfoDao.getFormInfoIdByModelId(modelid);
ModeRightInfo modeRightInfo = new ModeRightInfo();
CodeBuilder cbuild = new CodeBuilder(modelid);
cbuild.getModeCodeStr(formid, billid);//生成编号
modeRightInfo.setNewRight(true);
modeRightInfo.editModeDataShare(userid, modelid, billid);//新建的时候添加共享
}
}
@ActionMapping(name="parseVar")
protected JSONObject parseVar() {
FileUpload fileUpload = new MobileFileUpload(this.getRequest(), "UTF-8", false);
String requestParam = Util.null2String(fileUpload.getParameter("requestmap"));
JSONObject requestmap = JSONObject.fromObject(requestParam);
for(Object key : requestmap.keySet()){
String source = Util.null2String(requestmap.get(key));
String target = BasicHandler.replaceWithVarParser(source, user);
requestmap.put(key, target);
}
return requestmap;
}
@ActionMapping(name="getImagesByDocids")
protected Map<String, List<String>> getImagesByDocids() {
String docids = Util.null2String(getParameter("docids"));
return AttachUtil.getAllImagesByDocids(docids);
}
/**
* URLIP
* @return
*/
@ActionMapping(name="getRequestURL", returnKey="ipaddr")
protected String getRequestURL() {
URI uri = URI.create(getRequest().getRequestURL().toString());
try {
uri = new URI(uri.getScheme(), uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null);
} catch (URISyntaxException e) {
return "";
}
return uri.toString();
}
@ActionMapping(name="checkCubeReply", returnKey="enable")
protected boolean isENFormmodeReply() {
RecordSet rs = new RecordSet();
rs.execute("select isEnFormmodeReply from formEngineSet");
if(rs.next()){
return "1".equals(rs.getString("isEnFormmodeReply"));
}
return false;
}
/**
*
*
* @return
*/
@ActionMapping(name="getFileDownloadParams")
protected Map<String, Object> getFileDownloadDDCode(){
String fileidStr = Util.null2String(getRequest().getParameter("fileid"), "");
int fileid = -1;
if(fileidStr.length()<11){
fileid = Util.getIntValue(fileidStr);
}else{
fileid = DocDownloadCheckUtil.getDownloadfileid(fileidStr);
}
int docid = AttachUtil.convertFileIdToDocid(fileid);
DocViewPermission docViewPermission = new DocViewPermission();
Map<String,Boolean> rightMap= docViewPermission.getShareLevel(docid,user,false);
boolean canReader = rightMap.get(DocViewPermission.READ);
if(canReader || docid == -1){
Map<String, Object> resultMap = ParamUtil.request2Map(getRequest());
ImageFileServiceImpl imageFileService = ServiceUtil.getService(ImageFileServiceImpl.class, user);
Map<String, Object> result = imageFileService.getMobileDownloadParams(fileid, "", resultMap, user);
return result;
}else{
throw new MobileModeException(MobileCommonUtil.getHtmlLabelName(539277, user.getLanguage(), "无下载权限"));
}
}
@ActionMapping(name="getAttachViewFileType")
protected List<String> getAttachViewFileType(){
DocDetailUtil docDetailUtil = new DocDetailUtil();
return docDetailUtil.getAttachViewFileType(false, false);
}
}

@ -0,0 +1,9 @@
package com.api.zjrb.pattern.web;
import com.engine.zjrb.pattern.web.PatternUnlockingAction;
import javax.ws.rs.Path;
@Path("/zjrb/pattern")
public class PatternUnlockingActionApi extends PatternUnlockingAction {
}

@ -0,0 +1,986 @@
package com.cloudstore.dev.api.dao;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.util.BoolAttr;
import com.cloudstore.api.util.Util_Base64;
import com.cloudstore.dev.api.bean.OrgType;
import com.cloudstore.dev.api.bean.TimeMarker;
import com.cloudstore.dev.api.bean.UserDefCol;
import com.cloudstore.dev.api.util.Util_public;
import com.cloudstore.eccom.core.WeaCommon;
import com.engine.common.entity.BizLogContext;
import com.engine.common.util.LogUtil;
import com.google.common.collect.Lists;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.conn.RecordSetTrans;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
* author wangyiwu
* create 2023/12/10 19:12
* description***
*/
public class Dao_TableInformix implements Dao_Table {
private static final Log logger = LogFactory.getLog(Dao_TableInformix.class);
private String sql = null;
private Dao_Table d = null;
/**
*
*/
public Dao_TableInformix() {
d = Dao_TableFactory.getInstance().getDao("Dao_TableSqlServer");
}
/**
* TODO
*
* @param sqlObj
* @param columns
* @param min
* @param max
* @return
*/
@Override
public List<Map<String, String>> getTableDatas(JSONObject sqlObj,
JSONArray columns, String min, String max) {
String tFields = "";
String tFrom = "";
String tWhere = "";
String tOrder = "";
// RecordSet rs=new RecordSet();
//wyw 读取Informin数据源
RecordSetDataSource rs=new RecordSetDataSource("Informix");
try {
tFields = new String(
Util_Base64.decode(sqlObj.getString("tFields")), "UTF-8");
tFrom = new String(Util_Base64.decode(sqlObj.getString("tFrom")), "UTF-8");
tWhere = new String(Util_Base64.decode(sqlObj.getString("tWhere")), "UTF-8");
tOrder = new String(Util_Base64.decode(sqlObj.getString("tOrder")), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StringBuilder sb = new StringBuilder();
sb.append("select * from (");
sb.append("select " + tFields);
if (!"".equals(tOrder)){
sb.append(" ,ROW_NUMBER() OVER(order by ").append(tOrder)
.append(" ) as rn");
} else {
sb.append(",rownum as rn ");
}
sb.append(" ");
if (!tFrom.startsWith("from"))
sb.append("from");
sb.append(" ").append(tFrom);
sb.append(" ");
if ((!tWhere.startsWith("where")) && (!"".equals(tWhere)))
sb.append("where");
sb.append(" ").append(tWhere);
sb.append(") tmp");
sb.append(" where 1=1");
if (!"".equals(min))
sb.append(" and tmp.rn>=").append(min);
if (!"".equals(max))
sb.append(" and tmp.rn<=").append(max);
sql = sb.toString();
logger.info("====>wyw getTableDatas() sql:"+ sql);
logger.error("打印:"+sql);
if (!rs.execute(sql))
logger.error(sql);
List mssl = new ArrayList();
while (rs.next()) {
Map mss = new HashMap();
for (Iterator localIterator = columns.iterator(); localIterator
.hasNext();) {
Object column = localIterator.next();
JSONObject obj = (JSONObject) column;
String dataIndex = obj.getString("dataIndex");
mss.put(dataIndex, rs.getString(dataIndex));
}
mssl.add(mss);
}
return mssl;
}
/**
* TODO
*
* @param sqlObj
* @return
*/
@Override
public int getTableCount(JSONObject sqlObj) {
// TODO Auto-generated method stub
return d.getTableCount(sqlObj);
}
/**
* TODO
*
* @param sqlObj
* @param sql
* @param columns
* @return
*/
@Override
public List<Map<String, String>> setDevTableDatas(JSONObject sqlObj,
String sql, JSONArray columns, List getBroList, TimeMarker timeMarker) {
// TODO Auto-generated method stub
//logger.error("setDevTableDatas sql :" + sql);
return d.setDevTableDatas(sqlObj, sql, columns, getBroList, timeMarker);
}
// public static String Util_public.toSqlForSplitPage(String s) {
//
// // s = Util.StringReplace(s, "\\'", "'");
// s = Util.StringReplace(s, "&lt;", "<");
// s = Util.StringReplace(s, "&gt;", ">");
// s = Util.StringReplace(s, "&amp;", "&");
// s = Util.StringReplace(s, "&quot;", "\"");
// return s;
// }
/**
* TODO
*
* @param sqlObj
* @param columns
* @param min
* @param max
* @param sortParams
* @return
*/
@Override
public List<Map<String, String>> getDevTableDatas(JSONObject sqlObj,
JSONArray columns, String min, String max, String sortParams,
List getBroList, TimeMarker timeMarker) {
// TODO Auto-generated method stub
logger.info("====>wyw getDevTableDatas() params sqlObj:"+ JSON.toJSONString(sqlObj));
logger.info("====>wyw getDevTableDatas() params columns:"+ JSON.toJSONString(columns));
String tFields = sqlObj.getString("backfields");
if(!"".equals(tFields)){
tFields+=Util.null2String(sqlObj.getString("topColumn"))==""?"":",t1."+Util.null2String(sqlObj.getString("topColumn"));
}
String tFrom = Util_public.toSqlForSplitPage(Util.null2String(sqlObj
.getString("sqlform")));
String tWhere = Util_public.toSqlForSplitPage(Util.null2String(sqlObj
.getString("sqlwhere")));
String tOrder = Util.null2String(sqlObj.getString("sqlorderby"));
String tOrderWay = Util.null2String(sqlObj.getString("sqlsortway"));
String tDistinct = Util.null2String(sqlObj.getString("sqlisdistinct"));
String sqlPrimaryKey = Util.null2String(sqlObj.getString("sqlprimarykey"));
String openPrimaryKeyOrder = sqlObj.getString("openprimarykeyorder");
String mergeOrder = sqlObj.getString("mergeorder");
tOrder = Util_public.createSqlOrder(sortParams, tOrder, tOrderWay, sqlPrimaryKey,
BoolAttr.TRUE.getStringVal().equals(openPrimaryKeyOrder),BoolAttr.TRUE.getStringVal().equals(mergeOrder));
String tGroupBy = Util.null2String(sqlObj.getString("sqlgroupby")).trim();
// 》》》
StringBuilder sb = new StringBuilder();
sb.append(" select " + ( "true".equals(tDistinct) ? " distinct " : "" ) + tFields);
sb.append(" ");
sb.append(Util_public.getSqlPartWithToken(tFrom, "from"));
sb.append(Util_public.getSqlPartWithToken(tWhere, "where"));
sb.append(Util_public.getSqlPartWithToken(tGroupBy, "group by"));
if (!"".equals(tOrder))
sb.append(" order by ").append(tOrder);
// 偏移量
int minNum = Integer.parseInt(min);
minNum = minNum > 0 ? minNum - 1 : 0;
String sqlnew = "";
if (!"".equals(max) && !"".equals(min)){
// sb.append(" limit (").append(minNum).append(",").append(max).append(")");
int maxNum = Integer.parseInt(max);
int cou = maxNum - minNum;
new BaseBean().writeLog("==min:"+min+" minNum:"+minNum+" max:"+max+" maxNum:"+maxNum);
sqlnew = " select skip "+minNum+" first "+cou+" t0.* from ("+sb.toString()+") as t0 ";
new BaseBean().writeLog("==sqlnew:"+sqlnew);
}else{
sqlnew = sb.toString();
}
new BaseBean().writeLog("==sqlnew:"+sqlnew);
/*
===============================================================================
sb.append(" select r.* ");
if (sqlObj.containsKey("outfields")
&& !"".equals(sqlObj.getString("outfields"))) {
sb.append(" ,").append(sqlObj.getString("outfields"));
}
sb.append(" from (select tmp.*,rownum as rn from (");
sb.append(" select " + ("true".equals(tDistinct) ? "distinct " : "")
+ tFields);
sb.append(" ");
sb.append(Util_public.getSqlPartWithToken(tFrom, "from"));
sb.append(Util_public.getSqlPartWithToken(tWhere, "where"));
sb.append(Util_public.getSqlPartWithToken(tGroupBy, "group by"));
if (!"".equals(tOrder))
sb.append(" order by ").append(tOrder);
//优化执行效率 AndyZhang
if (!"".equals(max)) {
sb.append(" ) tmp where rownum <= ").append(max).append(" ) r");
} else{
sb.append(" ) tmp ) r");
}
sb.append(" where 1=1");
if (!"".equals(min))
sb.append(" and r.rn>=").append(min);
===============================================================================
*/
/*if (!"".equals(max))
sb.append(" and r.rn<=").append(max);*/
//logger.info(sb.toString());
logger.info("====> getDevTableDatas() sql : "+ sb.toString());
timeMarker.mark("create sql");
return this.setDevTableDatas(sqlObj, sqlnew, columns, getBroList, timeMarker);
}
/**
* TODO
*
* @param sqlObj
* @return
*/
@Override
public int getDevTableCount(JSONObject sqlObj) {
// TODO Auto-generated method stub
return d.getDevTableCount(sqlObj);
}
/**
* TODO
*
* @return
*/
@Override
public boolean checkModeSkip(int customid) {
// TODO Auto-generated method stub
return d.checkModeSkip(customid);
}
/**
* TODO
*
* @param systemIdArr
* @param systemOrderArr
* @param user
* @param pageUid
* @return
*/
@Override
public boolean updateShowCol(String[] systemIdArr, String[] systemOrderArr,
User user, String pageUid) {
// TODO Auto-generated method stub
RecordSetTrans rst = new RecordSetTrans();
if ("".equals(pageUid) || null == pageUid) {
return false;
}
try {
rst.setAutoCommit(false);
// 目前不能先删除后添加了。
// rst.executeSql("delete from user_default_col where pageId='"+pageId+"'"+" and userId = "+user.getUID());
// String dbname = " ";
// " user_default_col ";
// if (!"".equals(pageUid))
// dbname = " cloudstore_defcol ";
sql = "update cloudstore_defcol set display=1 where pageuid='"
+ pageUid + "'" + " and userId = " + user.getUID();
// logger.error("frist update sql is :" + sql);
if (!rst.executeSql(sql)) {
logger.error("updateShowCol update sql first false :" + sql);
return false;
}
for (int i = 0; i < systemIdArr.length; i++) {
if (Util.null2String(systemIdArr[i]).equalsIgnoreCase(""))
continue;
int orders = i;
if (systemOrderArr != null && systemOrderArr.length > 0) {
orders = Util.getIntValue(systemOrderArr[i], 0);
}
sql = "select 1 from cloudstore_defcol where sysid = '"
+ systemIdArr[i] + "' and pageuid='" + pageUid + "'"
+ " and userId = " + user.getUID();
// logger.error("frist select sql is :" + sql);
if (!rst.executeSql(sql)) {
logger.error("updateShowCol select sql false :" + sql);
return false;
}
if (rst.next()) {// 更新
sql = "update cloudstore_defcol set display=0,orders="
+ orders + " where sysid='" + systemIdArr[i]
+ "' and pageuid='" + pageUid + "'"
+ " and userId = '" + user.getUID() + "'";
// logger.error("second update sql is :" + sql);
rst.executeSql(sql);
} else {
sql = "insert into cloudstore_defcol (id,sysid,pageUid,userid,orders,display"
+ ") values(cloudstore_defcol_seq.nextval,'"
+ systemIdArr[i] + "','" + pageUid + "','"
+ user.getUID() + "'," + orders + ",0)";
// logger.error("second insert sql is :" + sql);
rst.executeSql(sql);
}
}
rst.commit();
// 添加成功
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
rst.rollback();
e.printStackTrace();
return false;
}
}
/**
* TODO
*
* @param user
* @param pageUid
* @param i
* @return
*/
@Override
public JSONObject getDestTable(User user, String pageUid, int i) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
JSONObject rObj = new JSONObject();
rObj.put("status", false);
if (null != pageUid && !"".equals(pageUid)) {
JSONArray getRlist = new JSONArray();
StringBuilder sbl = new StringBuilder();
String dbname = " cloudstore_defcol ";
// " user_default_col ";
// if (!"".equals(pageUid) && 0 == type)
// dbname = " cloudstore_defcol ";
sbl.append("select distinct sdc.orders,udc.id,udc.sysid,sdc.text,sdc.key from ");
sbl.append(dbname).append(" udc");
sbl.append(" , cloudstore_sdfcol sdc where udc.sysid = sdc.uuid ");
// sql.append(" left outer join table_col_base tcb on sdc.col_base_id = tcb.id");
sbl.append(" and udc.userid = '").append(user.getUID())
.append("' and sdc.pageUid='").append(pageUid)
.append("' and udc.display=0");
sbl.append(" order by sdc.orders");
sql = sbl.toString();
// json.put("currentPage", "1");
// json.put("totalPage", "1");
if (!rs.execute(sql)) {
logger.error("getDestTable Awrong sql :" + sql);
return rObj;
}
while (rs.next()) {
JSONObject tmp = new JSONObject();
tmp.put("id", rs.getString("sysid"));
tmp.put("name", rs.getString("text"));
tmp.put("key", rs.getString("key"));
getRlist.add(tmp);
}
if (getRlist.size() == 0) {
// if (0 == type) {
// getRlist.addAll(getDestTable(user, excludeId, includeId,
// pageId, pageUid, 1));
// } else {
// 用户没有设置自定义列
sbl = new StringBuilder();
sbl.append(
"select id,uuid,text,key from cloudstore_sdfcol where display=0 and pageuid='")
.append(pageUid).append("'");
sbl.append(" order by orders");
sql = sbl.toString();
if (!rs.execute(sql)) {
logger.error("getDestTable Bwrong sql :" + sql);
return rObj;
}
while (rs.next()) {
JSONObject tmp = new JSONObject();
tmp.put("id", rs.getString("uuid"));
tmp.put("name", rs.getString("text"));
tmp.put("key", rs.getString("key"));
getRlist.add(tmp);
}
// }
if (getRlist.size() == 0) {
// 系统表不存在这个表单,需要保存一次记录
rObj.put("msg", "needInit");
return rObj;
}
}
rObj.put("status", true);
rObj.put("datas", getRlist);
}
return rObj;
}
/**
* TODO
*
* @param user
* @param pageUid
* @param i
* @return
*/
@Override
public JSONArray getSrcTable(User user, String pageUid, int i) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
JSONArray getRlist = new JSONArray();
StringBuilder sql2 = new StringBuilder();
String dbname = " cloudstore_defcol ";
// " user_default_col ";
// if (!"".equals(pageUid) && 0 == type)
// dbname = " cloudstore_defcol ";
StringBuilder sbl = new StringBuilder();
sbl.append("select distinct sdc.orders,udc.id,udc.sysid,sdc.text,udc.display,sdc.key from ");
sbl.append(dbname).append(" udc");
sbl.append(" , cloudstore_sdfcol sdc where udc.sysid = sdc.uuid ");
// sql.append(" left outer join table_col_base tcb on sdc.col_base_id = tcb.id");
sbl.append(" and udc.userid = '").append(user.getUID())
.append("' and sdc.pageUid='").append(pageUid)
.append("' order by sdc.orders");
sql = sbl.toString();
// json.put("currentPage", "1");
// json.put("totalPage", "1");
// logger.error("getSrcTable A sql :" + sql);
if (!rs.execute(sql)) {
logger.error("getSrcTable Awrong sql :" + sql);
return getRlist;
}
String usingIds = "";
while (rs.next()) {
String id = rs.getString("sysid");
if ("1".equals(rs.getString("display"))) {
JSONObject tmp = new JSONObject();
tmp.put("id", id);
tmp.put("key", rs.getString("key"));
tmp.put("name", rs.getString("text"));
getRlist.add(tmp);
}
usingIds += "'" + id + "',";
}
sql2.append("select sdc.id,sdc.uuid,sdc.text,sdc.key from cloudstore_sdfcol sdc");
// sql2.append(" left outer join table_col_base tcb on tcb.id = sdc.col_base_id");
sql2.append(" where sdc.pageuid='").append(pageUid).append("'");
if (!"".equals(usingIds)) {
usingIds = usingIds.substring(0, usingIds.length() - 1);
sql2.append(" and sdc.uuid not in (").append(usingIds).append(")");
} else {
sql2.append(" and sdc.display=1");
}
sql2.append(" order by sdc.orders");
sql = sql2.toString();
// logger.error("sql2 src sql :" + sql);
if (!rs.executeSql(sql)) {
logger.error("getSrcTable Bwrong sql :" + sql);
return getRlist;
}
while (rs.next()) {
JSONObject tmp = new JSONObject();
String id = rs.getString("uuid");
tmp.put("id", id);
tmp.put("key", rs.getString("key"));
tmp.put("name", rs.getString("text"));
getRlist.add(tmp);
}
// if (getRlist.size() == 0 && 0 == type) {
// //logger.error("run second");
// getRlist.addAll(getSrcTable(user, excludeId, includeId, pageId,
// pageUid, 1));
// }
return getRlist;
}
/**
* TODO
*
* @param heads
* @param pageUid
* @return
*/
@Override
public boolean insertShowCol(JSONArray heads, String pageUid) {
// TODO Auto-generated method stub
RecordSetTrans rst = new RecordSetTrans();
try {
rst.setAutoCommit(false);
Map IndexMap = new HashMap();
if ("".equals(pageUid)) {
return false;
}
for (int i = 0; i < heads.size(); i++) {
// 先判断当前列是否存在DataIndex
JSONObject jo = heads.getJSONObject(i);
if (jo.containsKey("dataIndex")
&& !"".equals((jo.getString("dataIndex")))
&& !IndexMap.containsKey(jo.getString("dataIndex"))) {
IndexMap.put(jo.getString("dataIndex"), "used");
sql = "insert into cloudstore_sdfcol (id,uuid,pageuid,key,display,orders,orderkey,text)values(cloudstore_sdfcol_seq.nextval,'"
+ UUID.randomUUID()
+ "','"
+ pageUid
+ "','"
+ jo.getString("dataIndex")
+ "','"
+ ("true".equals(jo.getString("display")) ? "0"
: "1")
+ "','"
+ i
+ "','"
+ jo.getString("orderkey")
+ "','"
+ jo.getString("title") + "')";
if (!rst.execute(sql)) {
logger.error("insertShowCol WrongSql :" + sql);
return false;
}
} else {
return false;
}
}
rst.commit();
return true;
} catch (Exception e) {
rst.rollback();
e.printStackTrace();
return false;
}
}
/**
* TODO
*
* @param heads
* @param pageUid
* @param i
* @return
*/
@Override
public boolean insertShowCol4Obj(JSONObject heads, String pageUid, int i) {
// TODO Auto-generated method stub
RecordSetTrans rst = new RecordSetTrans();
try {
rst.setAutoCommit(false);
if ("".equals(pageUid)) {
return false;
}
// 先判断当前列是否存在DataIndex
JSONObject jo = heads;
if (jo.containsKey("dataIndex")
&& !"".equals((jo.getString("dataIndex")))) {
RecordSet rs = new RecordSet();
String checksql = "select _text from cloudstore_sdfcol where pageUid = '"
+ pageUid
+ "' and _text='"
+ jo.getString("title").trim() + "'";
rs.executeSql(checksql);
if (!rs.next()) {
sql = "insert into cloudstore_sdfcol (id,uuid,pageuid,key,display,orders,orderkey,text)values(cloudstore_sdfcol_seq.nextval,'"
+ UUID.randomUUID()
+ "','"
+ pageUid
+ "','"
+ jo.getString("dataIndex")
+ "','"
+ ("true".equals(jo.getString("display")) ? "0"
: "1")
+ "','"
+ i
+ "','"
+ jo.getString("orderkey")
+ "','"
+ jo.getString("title") + "')";
if (!rst.execute(sql)) {
logger.error("insertShowCol WrongSql :" + sql);
return false;
}
}
} else {
return false;
}
rst.commit();
return true;
} catch (Exception e) {
rst.rollback();
e.printStackTrace();
return false;
}
}
/**
* TODO
*
* @param title
* @param dataIndex
* @param pageUid
* @param i
* @return
*/
@Override
public boolean updateShowCol4Obj(String title, String dataIndex,
String pageUid, int i) {
// TODO Auto-generated method stub
RecordSetTrans rst = new RecordSetTrans();
try {
rst.setAutoCommit(false);
if ("".equals(pageUid)) {
return false;
}
// 先判断当前列是否存在DataIndex
if (!"".equals(dataIndex)) {
sql = "update cloudstore_sdfcol set text='" + title
+ "' where pageuid = '" + pageUid + "' and key='"
+ dataIndex + "'";
if (!rst.execute(sql)) {
logger.error("update WrongSql :" + sql);
return false;
}
} else {
return false;
}
rst.commit();
return true;
} catch (Exception e) {
rst.rollback();
e.printStackTrace();
return false;
}
}
/**
* TODO
*
* @param uid
* @param isload
* @return
*/
@Override
public void insertUserSetting(int uid, String isload) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
sql = "insert into HrmUserSetting(id,resourceid,rtxOnload,isCoworkHead,skin,cutoverWay,transitionTime,transitionWay) values(HRMUSERSETTING_ID.nextval,"
+ uid + "," + isload + ",1,'','','','')";
if (!rs.executeSql(sql)) {
logger.error("insertUserSetting Bwrong sql :" + sql);
}
}
/**
* TODO
*
* @param uid
* @param pageId
* @return
*/
@Override
public String getPageSize(int uid, String pageId) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
sql = "select pagesize from ecology_pagesize where pageId = '" + pageId
+ "' and userid=" + uid;
if (!rs.executeSql(sql)) {
logger.error("getPageSize wrong sql :" + sql);
return "";
}
if (rs.next()) {
return rs.getString(1);
}
return "";
}
/**
* TODO
*
* @param uid
* @param pageId
* @param usedPageSize
* @return
*/
@Override
public boolean insertPageSize(int uid, String pageId, int usedPageSize) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
sql = "insert into ecology_pagesize(id,pageId,pageSize,userid) values(ECOLOGY_PAGESIZE_ID.nextval,'"
+ pageId + "'," + usedPageSize + "," + uid + ")";
if (!rs.executeSql(sql)) {
logger.error("insertPageSize wrong sql :" + sql);
return false;
}
return true;
}
/**
* TODO
*
* @param uid
* @param pageId
* @param usedPageSize
* @return
*/
@Override
public boolean updatePageSize(int uid, String pageId, int usedPageSize) {
// TODO Auto-generated method stub
RecordSet rs = new RecordSet();
sql = "update ecology_pagesize set pageSize= " + usedPageSize
+ " where pageId='" + pageId + "' and userid=" + uid;
if (!rs.executeSql(sql)) {
logger.error("updatePageSize wrong sql :" + sql);
return false;
}
return true;
}
@Override
public Map<String, String> getSqlSum(JSONObject sp, String[] sumlist,
Map<String, String> allSumMap) {
// TODO Auto-generated method stub
return d.getSqlSum(sp, sumlist, allSumMap);
}
@Override
public boolean clearShowCol(String pageUid) {
return d.clearShowCol(pageUid);
}
@Override
public boolean clearShowCol(String pageUid, int uid) {
return d.clearShowCol(pageUid, uid);
}
@Override
public List<UserDefCol> getUserDefColumns(String pageUid, int uid) {
return d.getUserDefColumns(pageUid, uid);
}
@Override
public void insertShowCol(List<UserDefCol> choosedDefCols, List<UserDefCol> unchoosedDefCols) {
if (choosedDefCols != null && choosedDefCols.size() > 0) {
batchInsert(choosedDefCols);
}
if (unchoosedDefCols != null && unchoosedDefCols.size() > 0) {
batchInsert(unchoosedDefCols);
}
/*SqlSession session = sqlSessionFactory.openSession();
try {
Dao_TableMapper mapper = session.getMapper(Dao_TableMapper.class);
if (choosedDefCols != null && choosedDefCols.size() > 0) {
mapper.insertUserDefCol(choosedDefCols);
}
if (unchoosedDefCols != null && unchoosedDefCols.size() > 0) {
mapper.insertUserDefCol(unchoosedDefCols);
}
session.commit();
} finally{
session.close();
}*/
}
@Override
public boolean synCols(BizLogContext bizLogContext, List<UserDefCol> choosedDefCols, List<UserDefCol> unchoosedDefCols, OrgType orgType, String orgId, int def) {
try {
String pageuid="";
String sysid="nullSysId";
if (def==1) sysid="def";
RecordSet rs=new RecordSet();
String sqlWhere="";
String sqlWhereAll="";
List params=new ArrayList();
if (OrgType.COMPANY==orgType){
List<String> depList=d.getDepList(orgId);
sqlWhere=" subcompanyid1 in "+ WeaCommon.createWhereInSQL(orgId,params);
sqlWhereAll=" where "+sqlWhere ;
if (def==2)
rs.executeQuery("delete from cloudstore_defcol where pageuid=? "+sqlWhere,pageuid);
else
rs.executeQuery("delete from cloudstore_defcol where sysid<>? and pageuid=? "+sqlWhere,def,pageuid);
//logger.info("清除设置:"+pageuid);
}
if (OrgType.DEPARTMENT==orgType){
List<String> depList=getDepList(orgId);
sqlWhere=" where departmentid in "+WeaCommon.createWhereInSQL(depList,params);
sqlWhereAll=" where "+sqlWhere ;
if (def==2)
rs.executeQuery("delete from cloudstore_defcol where pageuid=? "+sqlWhere,pageuid);
else
rs.executeQuery("delete from cloudstore_defcol where sysid<>'def' and pageuid=? "+sqlWhere,pageuid);
}
if (OrgType.PERSON==orgType){
sqlWhere=" where id in "+WeaCommon.createWhereInSQL(orgId,params);
sqlWhereAll=" where "+sqlWhere ;
if (def==2)
rs.executeQuery("delete from cloudstore_defcol where pageuid=? "+sqlWhere,pageuid);
else
rs.executeQuery("delete from cloudstore_defcol where sysid<>'def' and pageuid=? "+sqlWhere,pageuid);
}
int i=0;
for(UserDefCol col : choosedDefCols) {
String dataIndex=col.getDataIndex();
ArrayList<Object> paramsReal=new ArrayList<>();
i++;
paramsReal.add(sysid);
paramsReal.add(pageuid);
paramsReal.add(i);
paramsReal.add(dataIndex);
String sql;
sql=" Insert into cloudstore_defcol(id,userid,sysid,pageuid,orders,display,dataindex,width) ";
sql+=" select cloudstore_defcol_seq.nextval,id,?,?,?,1,?,'' from HrmResource "+sqlWhereAll;
rs.executeUpdate(sql,paramsReal);
logger.info("SQL执行成功def"+def+":"+sql);
if (def==2){
ArrayList<Object> paramsDef=new ArrayList<>();
paramsDef.add("def");
paramsDef.add(pageuid);
paramsDef.add(i);
paramsDef.add(dataIndex);
rs.executeUpdate(sql,paramsDef);
}
}
i=0;
for(UserDefCol col : unchoosedDefCols) {
i++;
String dataIndex=col.getDataIndex();
ArrayList<Object> paramsReal=new ArrayList<>();
paramsReal.add(sysid);
paramsReal.add(pageuid);
paramsReal.add(i);
paramsReal.add(dataIndex);
String sql;
sql=" Insert into cloudstore_defcol(id,userid,sysid,pageuid,orders,display,dataindex,width) ";
sql+=" select cloudstore_defcol_seq.nextval,id,?,?,?,0,?,'' from HrmResource "+sqlWhereAll;
rs.executeUpdate(sql,paramsReal);
logger.info("SQL执行成功def"+def+":"+sql);
if (def==2){
ArrayList<Object> paramsDef=new ArrayList<>();
paramsDef.add("def");
paramsDef.add(pageuid);
paramsDef.add(i);
paramsDef.add(dataIndex);
rs.executeUpdate(sql,paramsDef);
}
}
logger.info("SQL执行成功"+pageuid);
LogUtil.writeBizLog(bizLogContext);
}
catch (Exception ex ) {
logger.error(ex.getMessage());
return false;
}
return true;
}
@Override
public List<String> getDepList(String departmentIds) throws Exception {
return d.getDepList(departmentIds);
}
/*@Override
public void setExpandOperate(int uid, String pageId, String value) {
RecordSet rs=new RecordSet();
boolean hasOperate=false;
String sql = "select Operate from ecology_pagesize where pageId = ? and userid= ? ";
if (rs.executeQuery(sql,uid,pageId))
hasOperate=rs.next();
if (!hasOperate) {
sql = "insert into ecology_pagesize(id,pageId,Operate,userid) values(ECOLOGY_PAGESIZE_ID.nextval,?,?,?)";
if (!rs.executeQuery(sql, pageId, value, uid)) {
logger.error("insertPageSize wrong sql :" + sql);
}
}
else{
sql = "update ecology_pagesize set Operate=? where pageId=? and userid=?";
if (!rs.executeQuery(sql,value,pageId,uid)) {
logger.error("updatePageSize wrong sql :" + sql);
}
}
}
@Override
public String getExpandOperate(int uid, String pageId) {
return d.getExpandOperate(uid,pageId);
}*/
private void batchInsert(List<UserDefCol> cols) {
RecordSet rs = new RecordSet();
for (UserDefCol col : cols) {
StringBuilder builder = new StringBuilder("insert into cloudstore_defcol ( id, dataIndex,sysid, orders, display, pageUid,userid,width) values ");
List<Object> params = Lists.newArrayList();
builder.append("(cloudstore_defcol_seq.nextval,?,'nullSysId',?,?,?,?,?)");
params.add(col.getDataIndex());
params.add(col.getOrders());
params.add(col.getDisplay());
params.add(col.getPageUid());
params.add(col.getUserId());
params.add(col.getWidth());
rs.executeUpdate(builder.toString(), params.toArray());
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,365 @@
package com.engine.msgcenter.dao;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.msgcenter.constant.HrmPracticalConstant;
import com.engine.msgcenter.constant.PageUidConstant;
import com.engine.msgcenter.entity.HrmType;
import com.engine.msgcenter.util.MsgECToEM;
import com.engine.msgcenter.util.MsgPushLogUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.DBUtil;
import weaver.conn.RecordSet;
import weaver.conn.constant.DBConstant;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
* @ Date Created in 2019/1/15 14:50 by mhw
*/
public class MsgTypeConfigDao {
public WeaResultMsg contextConfig(Map<String, Object> params, User user) {
WeaResultMsg resultMsg = new WeaResultMsg(false);
RecordSet recordSet = new RecordSet();
String guid = java.util.UUID.randomUUID().toString().replace("-", "");
String date = MsgPushLogUtil.getNowDate();
String time = MsgPushLogUtil.getNowTime();
String flag = Util.null2String(params.get("flag"));
//params
// String id = Util.null2String(params.get("id"));
String config_id = Util.null2String(params.get("config_id"));
String contextType = Util.null2String(params.get("contextType"));
String detailType = Util.null2String(params.get("detailType"));
String contextPath = Util.null2String(params.get("contextPath"));
try {
if (StringUtils.equals(flag, "add")) {
String sql = "insert into ecology_biz_mobile_context (id,config_id,contexttype,detailtype,contextpath,creater,createdate,createtime,modifydate,modifytime) values(?,?,?,?,? ,?,?,?,?,?)";
recordSet.executeUpdate(sql, guid, config_id, contextType, detailType, contextPath, user.getUID(), date, time, date, time);
return resultMsg.success();
} else if (StringUtils.equals(flag, "update")) {
if (StringUtils.isBlank(config_id))
return resultMsg.fail("id is empty");
String sql = "update ecology_biz_mobile_context set contexttype=?,contextpath=?,detailtype=? where config_id=?";
recordSet.executeUpdate(sql, contextType, contextPath, detailType, config_id);
return resultMsg.success();
}
} catch (Exception e) {
e.printStackTrace();
return resultMsg.fail(e.getMessage());
}
return resultMsg;
}
public boolean hasAgentid(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select agentid from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
if (org.apache.commons.lang.StringUtils.isNotBlank(recordSet.getString("agentid")))
return true;
return false;
}
public String getMsgTypeids(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select messagetypeid from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("messagetypeid");
}
public String getAgentid(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select agentid from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("agentid");
}
public static String getStatus(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select status from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("status");
}
public static String getEMStatus(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select em_status from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("em_status");
}
public static String getPC_Dialogurl(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select dialogurl from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("dialogurl");
}
public static String getAPP_Dialogurl(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select em_app_url from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("em_app_url");
}
public static String getAgentids(String ids) {
RecordSet recordSet = new RecordSet();
String sql = "select agentid from ecology_biz_mobile_config where id=?";
String[] idString = Util.splitString(ids, ",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < idString.length; i++) {
recordSet.executeQuery(sql, idString[i]);
recordSet.next();
if ("n".equals(recordSet.getString("isdefault")))
sb.append(recordSet.getString("agentid")).append(",");
}
return sb.toString();
}
public void insertContextConfig(String config_id, String contextType, String detailType, String contextPath, String otherparam, String userid) {
RecordSet recordSet = new RecordSet();
String date = MsgPushLogUtil.getNowDate();
String time = MsgPushLogUtil.getNowTime();
String sql = "insert into ecology_biz_mobile_context " +
"(id, config_id, contexttype, detailtype, contextpath, otherparam, creater, createdate, createtime, modifydate, modifytime) " +
"values(?,?,?,?,? ,?,?,?,?,?, ?)";
recordSet.executeUpdate(sql, config_id, config_id, contextType, detailType, contextPath, otherparam, userid, date, time, date, time);
return;
}
public void updateCC(String config_id, String contextType, String contextPath, String detailType, String otherparam) {
RecordSet recordSet = new RecordSet();
String date = MsgPushLogUtil.getNowDate();
String time = MsgPushLogUtil.getNowTime();
String sql = "update ecology_biz_mobile_context set contexttype=?, contextpath=?, detailtype=?, otherparam=?, modifydate=?, modifytime=? where config_id=?";
recordSet.executeUpdate(sql, contextType, contextPath, detailType, otherparam, date, time, config_id);
return;
}
public String backfields() {
RecordSet recordSet = new RecordSet();
String fields = " t.em_status,t.id, t.name, t.isdefault,t.broadcaster,t.sendrange, t2.groupname, t3.name as gname, t.messagetypeid, t.moduleid, t.agentid, t.dialogurl, t.imgurl, t.enable, t.enableem, t.enablepc, t.sendmobile, t.config, t.description, concat(concat(t.createdate, ' '),t.createtime) as tcretime, concat(concat(t.modifydate, ' '),t.modifytime) as tmodtime";
if (DBConstant.DB_TYPE_SQLSERVER.equalsIgnoreCase(recordSet.getDBType())) {
fields = " t.em_status,t.id, t.name, t.isdefault,t.broadcaster,t.sendrange, t2.groupname, t3.name as gname, t.messagetypeid, t.moduleid, t.agentid, t.dialogurl, t.imgurl, t.enable, t.enableem, t.enablepc, t.sendmobile, t.config, t.description, t.createdate+' '+t.createtime as tcretime, t.modifydate+' '+t.modifytime as tmodtime";
}
return fields;
}
public String sqlForm(String radioType, Map<String, Object> params) {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String sql = "ecology_biz_mobile_config t left join ecology_message_group t2 on t.moduleid=t2.id left join ecology_biz_mobile_group t3 on t.groupid=cast(t3.id as varchar)";
bb.writeLog("rs.getDBType():"+rs.getDBType());
if ("mysql".equalsIgnoreCase(rs.getDBType())){
sql = "ecology_biz_mobile_config t left join ecology_message_group t2 on t.moduleid=t2.id left join ecology_biz_mobile_group t3 on t.groupid=cast(t3.id as char)";
} else if ("oracle".equalsIgnoreCase(rs.getDBType())) {
sql = "ecology_biz_mobile_config t left join ecology_message_group t2 on t.moduleid= to_char(t2.id) left join ecology_biz_mobile_group t3 on t.groupid= to_char(t3.id) ";
}
bb.writeLog("sql:"+sql);
if (HrmPracticalConstant.RADIO_TYPE.equals(radioType)) {
String objectValue = Util.null2String(params.get("objectValue"));
String objectType = Util.null2String(params.get("objectType"));
if (StringUtils.isNotBlank(objectValue) || "6".equals(objectType))
sql += " inner join ";
else
sql += " left join ";
sql += " ( SELECT DISTINCT configid from ECOLOGY_HRMRESOURCE_PERMISSION t4 where 1 =1 ";
if ("6".equals(objectType)){
sql += " and t4.permissionType='broadCaster' and t4.objectType=" + objectType + "";
}
else if (org.apache.commons.lang.StringUtils.isNotBlank(objectType) && StringUtils.isNotBlank(objectValue)) {
sql += " and t4.permissionType='broadCaster'";
sql += " and t4.objectType=" + objectType + "";
if (HrmType.EVERYONE != HrmType.getHrmType(objectType))
sql += " and t4.objectValue in ('" + objectValue.replaceAll(",", "','") + "')";
}
sql += ") t5 on t.id = t5.configid";
}
return sql;
}
public Map<String, Object> selectMapById(String id) {
Map<String, Object> datas = new HashMap<>();
if (org.apache.commons.lang.StringUtils.isBlank(id))
return datas;
RecordSet recordSet = new RecordSet();
String sql = "select * from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
if (recordSet.next()) {
datas.put("id", id);
datas.put("name", Util.null2String(recordSet.getString("name")));
datas.put("biztypeid", Util.null2String(recordSet.getString("biztypeid")));
datas.put("groupid", Util.null2String(recordSet.getString("groupid")));
datas.put("moduleid", Util.null2String(recordSet.getString("moduleid")));
datas.put("messagetypeid", Util.null2String(recordSet.getString("messagetypeid")));
datas.put("agentid", Util.null2String(recordSet.getString("agentid")));
datas.put("dialogurl", Util.null2String(recordSet.getString("dialogurl")));
datas.put("imgurl", Util.null2String(recordSet.getString("imgurl")));
datas.put("enable", Util.null2String(recordSet.getString("enable")));
datas.put("enableem", Util.null2String(recordSet.getString("enableem")));
datas.put("enablepc", Util.null2String(recordSet.getString("enablepc")));
datas.put("sendmobile", Util.null2String(recordSet.getString("sendmobile")));
datas.put("desc", Util.null2String(recordSet.getString("description")));
datas.put("status", Util.null2String(recordSet.getString("status")));
datas.put("createrid", Util.null2String(recordSet.getString("createrid")));
datas.put("createtime", Util.null2String(recordSet.getString("createdate")) + " " + Util.null2String(recordSet.getString("createtime")));
datas.put("latest_modifytime", Util.null2String(recordSet.getString("modifydate")) + " " + Util.null2String(recordSet.getString("modifytime")));
}
sql = "select contexttype,contextpath,detailtype,otherparam from ecology_biz_mobile_context where config_id=?";
recordSet.executeQuery(sql, id);
if (recordSet.next()) {
datas.put("contexttype", Util.null2String(recordSet.getString("contexttype")));
datas.put("contextpath", Util.null2String(recordSet.getString("contextpath")));
datas.put("detailtype", Util.null2String(recordSet.getString("detailtype")));
datas.put("otherparam", Util.null2String(recordSet.getString("otherparam")));
}
return datas;
}
public String mtcAddSql() {
StringBuffer sb = new StringBuffer();
String opType = "insert into ecology_biz_mobile_config ";
String backfields = "(id, name, moduleid, groupid, messagetypeid, agentid, dialogurl, belongid, imgurl, config, enable, enablepc, enableem, sendmobile, isdefault, isShow, status, createrid, createdate, createtime, modifydate, modifytime)";
String values = "(?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?)";
String sql = sb.append(opType).append(backfields).append("values").append(values).toString();
return sql;
}
public String mtcUpdateSql() {
StringBuffer sb = new StringBuffer();
String opType = "update ecology_biz_mobile_config set ";
String backfields = "agentid=?, name=?, groupid=?, moduleid=?, messagetypeid=?, imgurl=?, picture_url=?, enable=?, enablepc=?, enableem=?, sendmobile=?, modifydate=?, modifytime=?,em_status = ?,pc_url = ? ,dialogurl = ? ,em_app_url = ? ";
String sqlWhere = "id=?";
String sql = sb.append(opType).append(backfields).append("where ").append(sqlWhere).toString();
return sql;
}
/**
* @description ids=>ids
*/
public String getWfpath(String typeids) {
StringBuffer sb = new StringBuffer();
sb.append(",");
RecordSet recordSet = new RecordSet();
List<String> params = new ArrayList<>();
Object[] objects = DBUtil.transListIn(typeids, params);
String sql = "select distinct a.id,a.workflowname as name from workflow_base a where a.workflowtype in (" + objects[0] + ")";
recordSet.executeQuery(sql, params);
while (recordSet.next()) {
sb.append(recordSet.getInt("id")).append(",");
}
return sb.toString();
}
public String deleteGroupSql(Object obj) {
return "delete from ecology_biz_mobile_group where status='n' and id in (" + obj + ")";
}
public String batchCs(String flat, Object obj) {
return "update ecology_biz_mobile_config set modifydate=?,modifytime=?,enable='" + flat + "' where id in (" + obj + ")";
}
public String getBelongid(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select belongid from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
if (recordSet.next())
return recordSet.getString("belongid");
return "";
}
public int getShowNum() {
RecordSet recordSet = new RecordSet();
String sql = "select max(shownum) as shownum from ecology_biz_mobile_group";
recordSet.executeQuery(sql);
recordSet.next();
int shownum = recordSet.getInt("shownum");
return ++shownum;
}
public String getTab(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select istab from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
recordSet.next();
return recordSet.getString("istab");
}
public void updateEnableAndAgentid(String id, String agentid) {
RecordSet recordSet = new RecordSet();
String sql = "update ecology_biz_mobile_config set enable='y',agentid=? where id=?";
recordSet.executeUpdate(sql, agentid, id);
return;
}
public void updateAgentid(String id, String agentid) {
RecordSet recordSet = new RecordSet();
String sql = "update ecology_biz_mobile_config set agentid=? where id=?";
recordSet.executeUpdate(sql, agentid, id);
return;
}
public void updateEnable(String id, String enable) {
RecordSet recordSet = new RecordSet();
String sql = "update ecology_biz_mobile_config set enable=?,modifydate=?,modifytime=? where id=?";
recordSet.executeUpdate(sql, PageUidConstant.ABLE_EM.equals(enable) ? PageUidConstant.DISABLE_EM : PageUidConstant.ABLE_EM, MsgPushLogUtil.getNowDate(), MsgPushLogUtil.getNowTime(), id);
return;
}
public boolean checkMTCApp(String id) {
RecordSet recordSet = new RecordSet();
String sql = "select agentid,istab,imgurl,dialogurl,em_app_url,name,sendmobile from ecology_biz_mobile_config where id=?";
recordSet.executeQuery(sql, id);
String agentid = recordSet.getString("agentid");
String istab = recordSet.getString("istab");
String imgurl = recordSet.getString("imgurl");
String name = recordSet.getString("istab");
String sendmobile = recordSet.getString("sendmobile");
// String dialogurl = MsgECToEM.getDialog_Url(id, istab);
String app_Dialogurl = recordSet.getString("em_app_url");
String pc_Dialogurl = recordSet.getString("dialogurl");
if (StringUtils.isBlank(agentid)) {
//创建em应用
try {
MsgECToEM msgECToEM = new MsgECToEM();
agentid = msgECToEM.CreateMsgTypeApp(imgurl, name, null, app_Dialogurl, pc_Dialogurl, sendmobile);
if (StringUtils.isNotBlank(agentid)) {
updateAgentid(id, agentid);
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
return true;
}
return false;
}
public void updateMsgConfigStatus(String id, String config) throws Exception {
if (StringUtils.isBlank(id))
throw new Exception("invalid params");
if ("y".equals(config) || "n".equals(config)) {
} else
throw new Exception("invalid params");
RecordSet rs = new RecordSet();
String sql = "update ecology_biz_mobile_config set config = ? where id = ?";
rs.executeUpdate(sql, config, id);
}
}

@ -0,0 +1,164 @@
package com.engine.voting.cmd.VotingForm;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import com.api.browser.bean.BrowserBean;
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption;
import com.api.browser.util.ConditionType;
import com.api.voting.util.BrowserType;
import com.api.voting.util.ConditionUtil;
import com.api.voting.util.VotingCommonUtil;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.google.common.collect.Maps;
/**
* -
*/
public class VotingFormConditionCmd extends AbstractCommonCommand<Map<String, Object>> {
public VotingFormConditionCmd(User user, Map<String,Object> params) {
this.user = user;
this.params = params;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> apidatas = Maps.newHashMap();
String istemplate = Util.null2s(Util.null2String(this.params.get("istemplate")), "0");
try {
String votingtype = Util.null2String(this.params.get("votingtype"));
RecordSet rs = new RecordSet();
List<Map<String,Object>> grouplist = new ArrayList<Map<String,Object>>();
Map<String,Object> groupitem1 = new HashMap<String,Object>();
List<SearchConditionItem> itemlist1 = new ArrayList<SearchConditionItem>();
groupitem1.put("title", SystemEnv.getHtmlLabelNames(ConditionUtil.COMMON_CONDITION, user.getLanguage()));
groupitem1.put("defaultshow", true);
groupitem1.put("items", itemlist1);
grouplist.add(groupitem1);
//itemlist1.add(ConditionUtil.getCondition(DocCondition.DOC_SUBJECT,user));
int lanaguage = user.getLanguage();
//调查名称
itemlist1.add(getInput(lanaguage,"33439","subject"));
//创建人
itemlist1.add(getBrowser(lanaguage,"882","createrid",BrowserType.USER));
//调查类型
List<SearchConditionOption> typeOptions = new ArrayList<SearchConditionOption>();
List<SearchConditionOption> typeOptionsOfAdd = new ArrayList<SearchConditionOption>();
String where = "" ;
if(StringUtils.isNotBlank(votingtype)){
where = " and id in ("+votingtype+") " ;
}
rs.executeQuery("select * from voting_type "+where);
typeOptions.add(new SearchConditionOption("",""));
typeOptionsOfAdd.add(new SearchConditionOption("",""));
while(rs.next()) {
typeOptions.add(new SearchConditionOption(rs.getString("id"),rs.getString("typename")));
typeOptionsOfAdd.add(new SearchConditionOption(rs.getString("id"),rs.getString("typename")));
}
itemlist1.add(getSelect(lanaguage,"24111","votingtype",typeOptions));
//状态
if(!"1".equals(istemplate)) {
List<SearchConditionOption> statusOptions = new ArrayList<SearchConditionOption>();
statusOptions.add(new SearchConditionOption("",""));
statusOptions.add(new SearchConditionOption("0",SystemEnv.getHtmlLabelName(83443,weaver.general.Util.getIntValue(user.getLanguage()))));
statusOptions.add(new SearchConditionOption("3",SystemEnv.getHtmlLabelName(30835, user.getLanguage())));
statusOptions.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(18600, user.getLanguage())));
statusOptions.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(405, user.getLanguage())));
itemlist1.add(getSelect(lanaguage,"602","status",statusOptions));
//开始日期
//itemlist1.add(getDate(lanaguage,"740","begindate"));
//截止日期
//itemlist1.add(getDate(lanaguage,"741","enddate"));
//调查时间(时间选择)
itemlist1.add(new SearchConditionItem(ConditionType.DATE, SystemEnv.getHtmlLabelName(500889, user.getLanguage()), "", new String[]{"datetype", "begindate", "enddate"},
VotingCommonUtil.getDateSelectOption(user.getLanguage(), false, false), 6, 18, null));
} else {
itemlist1.add(getInput(lanaguage, "433","descr"));
}
apidatas.put("condition", grouplist);
Map<String,BrowserBean> btnBrowser = new HashMap<String,BrowserBean>();
btnBrowser.put("votingMould", new BrowserBean(BrowserType.votingMould));
apidatas.put("btnBrowser",btnBrowser );
apidatas.put("votingType", getSelect(lanaguage,"24111","votingtype",typeOptionsOfAdd));
}catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
return apidatas;
}
apidatas.put("api_status", true);
return apidatas;
}
public SearchConditionItem getInput(int language,String labelids,String domkey){
SearchConditionItem searchConditionItem = new SearchConditionItem(ConditionType.INPUT, SystemEnv.getHtmlLabelNames(labelids,language),
new String[]{domkey});
searchConditionItem.setLabelcol(6);
searchConditionItem.setFieldcol(18);
return searchConditionItem;
}
public SearchConditionItem getBrowser(int language,String labelids,String domkey,String browserType){
SearchConditionItem searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelNames(labelids,language),
new String[]{domkey});
BrowserBean browserBean= new BrowserBean(browserType);
searchConditionItem.setBrowserConditionParam(browserBean);
searchConditionItem.setLabelcol(6);
searchConditionItem.setFieldcol(18);
return searchConditionItem;
}
public SearchConditionItem getSelect(int language,String labelids,String domkey,List<SearchConditionOption> options){
SearchConditionItem searchConditionItem = new SearchConditionItem(ConditionType.SELECT, SystemEnv.getHtmlLabelNames(labelids,language),
new String[]{domkey});
searchConditionItem.setLabelcol(6);
searchConditionItem.setFieldcol(18);
searchConditionItem.setOptions(options);
Map<String, Object> otherParams = new HashMap<String, Object>();
otherParams.put("dropdownMatchSelectWidth", true);
searchConditionItem.setOtherParams(otherParams);
return searchConditionItem;
}
public SearchConditionItem getDate(int language,String labelids,String domkey){
SearchConditionItem searchConditionItem = new SearchConditionItem(ConditionType.DATEPICKER, SystemEnv.getHtmlLabelNames(labelids,language),
new String[]{domkey});
searchConditionItem.setLabelcol(6);
searchConditionItem.setFieldcol(18);
return searchConditionItem;
}
@Override
public BizLogContext getLogContext() {
return null;
}
}

@ -0,0 +1,332 @@
package com.engine.voting.cmd.VotingForm;
//import com.api.voting.service.VotingListService;
import com.cloudstore.dev.api.util.Util_TableMap;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.voting.util.CheckVotingFormPermission;
import com.engine.voting.util.VotingDetach;
import com.engine.voting.util.VotingPageUidFactory;
import com.google.common.collect.Maps;
import weaver.conn.RecordSet;
import weaver.general.PageIdConst;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* -
*/
public class VotingFormTableCmd
extends
AbstractCommonCommand<Map<String, Object>> {
public VotingFormTableCmd() {
}
public VotingFormTableCmd(Map<String, Object> params, User user) {
this.params = params;
this.user = user;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> apidatas = Maps.newHashMap();
try {
String userid = user.getUID() + "";
String loginType = user.getLogintype();
//用户是否有删除权限
boolean canDelete = HrmUserVarify.checkUserRight("voting:delete", user); //调查删除权限
boolean canmaint = HrmUserVarify.checkUserRight("Voting:Maint", user); //调查维护权限
boolean canmaintview = canmaint;
boolean cancreate = false;
//boolean canapprove = false ;
RecordSet rs = new RecordSet();
rs.executeQuery("select id from votingmaintdetail where createrid=? or approverid=?", userid, userid);
if (rs.next()) {
cancreate = true;
}
if (canmaint) {
cancreate = true;
}
boolean canCommit = false;
if (canmaint) {
canCommit = true;
}else{
rs.executeQuery("select id from votingmaintdetail where approverid=?", userid);
if (rs.next()) {
canCommit = true;
}
}
//设置好搜索条件
String backFields = " id,descr, subject,begindate,begintime,enddate,endtime,createrid,approverid,status,createdate ,createtime,istemplate,votingtype ";
String fromSql = " voting ";
String sqlWhere = "";
if (canmaintview) {
sqlWhere = " where 1=1 ";
} else if (cancreate) {
sqlWhere = " where (createrid=" + userid + " or approverid=" + userid + ") ";
} else {
sqlWhere = " where 1 != 1 "; //没有调查维护权限,且没有被设置调查授权则不展示数据
// VotingListService votingListService = new VotingListService();
// sqlWhere = " where id in(" + votingListService.getVotingIdByShare(user) + ") and status in (1,2) ";
}
sqlWhere += " and (istemplate <> '1' or istemplate is null)";
if(!"1".equals(userid)){
sqlWhere += " and createrid = "+ userid ;
}
//调查名称
String subject = Util.null2String(params.get("subject")).replace("'", "''");
if (!subject.equals("")) {
sqlWhere += " and subject like '%" + subject + "%'";
}
//创建人
String createrid = Util.null2String(params.get("createrid"));
if (!createrid.equals("")) {
sqlWhere += " and createrid in (" + createrid + ")";
}
//调查类型
String votingtype = Util.null2String(params.get("votingtype"));
if (!votingtype.equals("")) {
sqlWhere += " and votingtype in (" + votingtype + ")";
}
//状态
String status = Util.null2String(params.get("status"));
if (!status.equals("")) {
sqlWhere += " and status in (" + status + ")";
}
// //开始日期
// String begindate = Util.null2String(params.get("begindate"));
// if (!begindate.equals("")) {
// sqlWhere += " and begindate >= '" + begindate + "'";
// }
// //截止日期
// String enddate = Util.null2String(params.get("enddate"));
// if (!enddate.equals("")) {
// sqlWhere += " and enddate <= '" + enddate + "'";
// }
// 开始日期 截止日期
String datetype = Util.null2String(params.get("datetype")); // 时间(全部:空;今天:1;本周:2;本月:3;本季:4;本年:5;指定日期范围:6;)
String begindate = Util.null2String(params.get("begindate")); // 开始日期
String enddate = Util.null2String(params.get("enddate")); // 截止日期
if (!"0".equals(datetype) && !"".equals(datetype) && !"6".equals(datetype)) {
sqlWhere += " and begindate >= '" + TimeUtil.getDateByOption(datetype + "", "0") + "'";
sqlWhere += " and enddate <= '" + TimeUtil.getDateByOption(datetype + "", "") + "'";
}
if ("6".equals(datetype) && !"".equals(begindate)) {
sqlWhere += " and begindate >= '" + begindate + "'";
}
if ("6".equals(datetype) && !"".equals(enddate)) {
sqlWhere += " and enddate <= '" + enddate + "'";
}
boolean detach = VotingDetach.isDetach(); //是否开启知识-管理分权
if (detach) {
String subcompanyid = Util.null2String(params.get("subcompanyid"));
if (!subcompanyid.isEmpty()) {
sqlWhere += " and subcompanyid=" + subcompanyid;
} else if (user.getUID() != 1) { //系统管理默认分权所有分部,不做过滤
String suncompanyids = Util.null2String(VotingDetach.getSubcompanyids(user));
suncompanyids = suncompanyids.startsWith(",") ? suncompanyids.substring(1) : suncompanyids;
suncompanyids = suncompanyids.endsWith(",") ? suncompanyids.substring(0, suncompanyids.length() - 1) : suncompanyids;
if(suncompanyids.isEmpty()){
sqlWhere += " and 1 <> 1 ";
}else {
sqlWhere += " and (" + Util.getSubINClause(suncompanyids, "subcompanyid", "in") + ")";
}
}
rs.executeQuery("select count(id) num from voting where subcompanyid is null or subcompanyid =0 or subcompanyid =''");
if (rs.next()) {
if (rs.getInt("num") > 0) {
String defaultId = VotingDetach.getDefaultId();
if (Util.getIntValue(defaultId) > 0) {
rs.execute("update voting set subcompanyid=" + defaultId + " where subcompanyid is null or subcompanyid =0 or subcompanyid =''");
}
}
}
}
//当前是 批量删除页还是批量批准页
String viewType = Util.null2String(params.get("viewType"));
//writeLog("viewType---:"+viewType);
String checkboxpopedom = "";
String checkboxpopedompara= "";
String pageId = PageIdConst.Voting_VotingListTable;
String pageUid = VotingPageUidFactory.getPageUid(pageId);
if("batchApprove".equals(viewType)){ //批量批准
checkboxpopedompara = "column:status+" + canCommit+ "+column:votingtype";
checkboxpopedom = "<checkboxpopedom id=\"checkbox\" popedompara=\""+checkboxpopedompara+"\" showmethod=\"com.engine.voting.biz.VotingTransMethod4E9.getVotingListCheckBoxRight\" />";
}else{ //批量删除
checkboxpopedompara = "column:status+" + canDelete;
checkboxpopedom = "<checkboxpopedom id=\"checkbox\" popedompara=\""+checkboxpopedompara+"\" showmethod=\"com.engine.voting.biz.VotingTransMethod4E9.getVotingListCheckBoxRightDel\" />";
}
String orderBy = "id";
String operatepopedompara = "column:status+" + cancreate + "+" + canDelete + "+column:id" + "+" + user.getUID() + "+column:votingtype";
String operateString = "";
operateString = " <operates>";
operateString +=" <popedom column=\"id\" transmethod=\"com.engine.voting.cmd.VotingForm.VotingFormTableCmd.getVotingFormOperate\" otherpara=\""+operatepopedompara+"\" ></popedom> ";
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(93, user.getLanguage()) + "\" index=\"0\"/>";
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(142, user.getLanguage()) + "\" index=\"1\"/>"; //批准
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(725, user.getLanguage()) + "\" index=\"2\"/>"; //提交
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(91, user.getLanguage()) + "\" index=\"3\"/>";
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(33832, user.getLanguage()) + "\" index=\"4\"/>";
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(382638, user.getLanguage())+ "\" index=\"5\"/>";// 参与范围
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(20043, user.getLanguage()) + "\" index=\"6\"/>";
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(500603, user.getLanguage()) + "\" index=\"7\"/>";// 复制调查
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(19468, user.getLanguage()) + "\" index=\"8\"/>"; //另存为模板
operateString +=" <operate text=\"" + SystemEnv.getHtmlLabelName(83, user.getLanguage()) + "\" index=\"9\"/>"; //日志
operateString +=" </operates>";
String tableString = "";
tableString="<table pageUid=\""+pageUid+"\" pageId=\""+pageId+"\" pagesize=\""+PageIdConst.getPageSize(pageId,user.getUID(), PageIdConst.VOTING)+"\" tabletype=\"checkbox\">";
tableString += checkboxpopedom;
tableString +="<sql backfields=\""+backFields+"\" sqlform=\""+Util.toHtmlForSplitPage(fromSql)+"\" sqlorderby=\""+orderBy+"\" sqlprimarykey=\"id\" sqlsortway=\"Desc\" sqlwhere=\""+Util.toHtmlForSplitPage(sqlWhere)+"\" />";
tableString += operateString;
tableString += "<head>"+
"<col width=\"8%\" text=\""+SystemEnv.getHtmlLabelName(15486,user.getLanguage())+"\" column=\"id\" orderkey=\"id\" />"+
"<col width=\"28%\" text=\""+SystemEnv.getHtmlLabelName(195,user.getLanguage())+"\" column=\"subject\" orderkey=\"subject\" />"+
"<col width=\"28%\" text=\""+SystemEnv.getHtmlLabelName(24111,user.getLanguage())+"\" column=\"votingtype\" orderkey=\"votingtype\" transmethod=\"com.engine.voting.cmd.VotingForm.VotingFormTableCmd.getVotingTypeName\" />"+ //调查类型
"<col width=\"10%\" text=\""+SystemEnv.getHtmlLabelName(882,user.getLanguage())+"\" column=\"createrid\" orderkey=\"createrid\" transmethod=\"weaver.hrm.resource.ResourceComInfo.getMutiResourceLink\" />"+
"<col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(740,user.getLanguage())+"\" column=\"begindate\" orderkey=\"begindate\" otherpara=\"column:begintime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"+
"<col width=\"20%\" text=\""+SystemEnv.getHtmlLabelName(741,user.getLanguage())+"\" column=\"enddate\" orderkey=\"enddate\" otherpara=\"column:endtime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"+
"<col width=\"12%\" text=\""+SystemEnv.getHtmlLabelName(602,user.getLanguage())+"\" column=\"status\" orderkey=\"status\" otherpara=\""+user.getLanguage()+"\" transmethod=\"weaver.voting.VotingManager.getStatus\"/>"+
"</head>"+
"</table>";
String sessionkey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
Util_TableMap.setVal(sessionkey, tableString);
apidatas.put("sessionkey", sessionkey);
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
return apidatas;
}
apidatas.put("api_status", true);
return apidatas;
}
/**
*
* @param id
* @param params
* @return
*/
public List<String> getVotingFormOperate(String id, String params) {
List<String> result = new ArrayList<String>();
List ps = Util.TokenizerString(params, "+");
String votingstatus = ps.get(0) + "";
String canCreate = ps.get(1) + "";
String canDelete = ps.get(2) + "";
String votingid = ps.get(3) + "";
String userid = ps.get(4) + "";
String votingtype = ps.get(5) + "";
String canEdit = "false";
if ("0".equals(votingstatus) && "true".equals(canCreate)) {
canEdit = "true";
}
String canapprove = "false";
User user = User.getUser(Util.getIntValue(userid), 0);
if ("0".equals(votingstatus) && CheckVotingFormPermission.checkCanApprove(user, Util.getIntValue(votingid))) {
canapprove = "true";
}
String tijiao = "false";
if("true".equals(canapprove) && Util.getIntValue(votingtype) > 0) {
RecordSet rs = new RecordSet();
rs.executeQuery("select approver from voting_type where id = ?", votingtype);
if(rs.next() && rs.getInt("approver") > 0) {
tijiao = "true";
canapprove = "false";
}
}
//1、有调查删除权限 voting:delete 2、非进行中状态 (创建 和 结束状态) 才可以删除。
canDelete = "true".equals(canDelete) && (!"1".equals(votingstatus)&& !"3".equals(votingstatus)) ? "true" : "false";
result.add(canEdit);
result.add(canapprove);
result.add(tijiao);
result.add(canDelete);
result.add(canCreate);
result.add(canCreate);
result.add(canCreate);
result.add(canCreate);
result.add(canCreate);
result.add(canCreate); //日志
return result;
}
/**
*
* @param params
* @return
*/
public String getVotingListCheckBoxRight(String params) {
List ps = Util.TokenizerString(params, "+");
String status = ps.get(0) + "";
String canCommit = ps.get(1) + "";
String votingtype = ps.get(2) + "";
String realCommit = "false";
if ("0".equals(status) && "true".equals(canCommit)) { //创建状态
realCommit = "true";
}
if("true".equals(realCommit) && Util.getIntValue(votingtype) > 0){
RecordSet rs = new RecordSet();
rs.executeQuery("select approver from voting_type where id = ?", votingtype);
if(rs.next() && rs.getInt("approver") > 0) {
realCommit = "false";
}
}
return realCommit;
}
/**
* id
* @param votingtypeId
* @return
*/
public String getVotingTypeName(String votingtypeId) {
String typename = "";
if(Util.getIntValue(votingtypeId) > 0) {
RecordSet rs = new RecordSet();
rs.executeQuery("select typename from voting_type where id = ?", votingtypeId);
if(rs.next()) {
typename = rs.getString("typename");
}
}
return typename;
}
@Override
public BizLogContext getLogContext() {
return null;
}
}

@ -0,0 +1,235 @@
package com.engine.voting.cmd.VotingList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.PageIdConst;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import weaver.systeminfo.setting.HrmUserSettingComInfo;
import com.alibaba.fastjson.JSON;
import com.api.voting.util.ConditionUtil;
import com.api.voting.util.VotingTableType;
import com.cloudstore.dev.api.bean.SplitMobileDataBean;
import com.cloudstore.dev.api.util.Util_TableMap;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.voting.util.VotingPageUidFactory;
import com.engine.voting.biz.VotingCreateMobileTemplate;
import com.engine.voting.biz.VotingGetSqlWhere;
import com.engine.voting.biz.VotingGetVotingIdByShare;
/**
* tabinfo
*
* @author ZH
*
*/
public class VotingGetMyVotingCmd extends AbstractCommonCommand<Map<String, Object>> {
protected int tabInfo;
private static final String JSON_CONFIG = "[ \n" + "]";
public VotingGetMyVotingCmd(User user, Map<String, Object> params, int tabInfo) {
this.user = user;
this.params = params;
this.tabInfo = tabInfo;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
VotingGetSqlWhere votinggetsqlwhere = new VotingGetSqlWhere();
VotingCreateMobileTemplate votingcreatemobiletemplate = new VotingCreateMobileTemplate();
VotingGetVotingIdByShare votinggetvotingidbyshare = new VotingGetVotingIdByShare();
Map<String, Object> apidatas = new HashMap<String, Object>();
params = params == null ? new HashMap<String, Object>() : params;
String backFields = " id,descr, subject,begindate,begintime,enddate,endtime,createrid,approverid,status,createdate ,createtime,istemplate,id countid,id picid ";
String fromSql = " voting ";
String sqlWhere = "";
VotingTableType tableType;
String pageId = "";
if (tabInfo == 2) {// 我发起的
tableType = VotingTableType.VOTING_ME_CREATE;
pageId = "VOTING_ME_CREATE";
sqlWhere = " where (istemplate <> '1' or istemplate is null) and status in (1,2) and createrid ="
+ user.getUID();
sqlWhere += votinggetsqlwhere.getSqlWhere(params);
} else if (tabInfo == 3) {// 与我有关的
tableType = VotingTableType.VOTING_ME_RELATED;
pageId = "VOTING_ME_RELATED";
sqlWhere = " where (istemplate <> '1' or istemplate is null) and status in(1,2) and (id in("
+ votinggetvotingidbyshare.getJoinVotingIdByShare(user) + ") or createrid =" + user.getUID() + ")";
String votingCurrentDate = TimeUtil.getCurrentDateString();
String votingCurrentTime = TimeUtil.getOnlyCurrentTimeString();
sqlWhere += " and (beginDate<'" + votingCurrentDate + "' or (beginDate='" + votingCurrentDate
+ "' and (beginTime is null or beginTime='' or beginTime<='" + votingCurrentTime + "')))";
sqlWhere += votinggetsqlwhere.getSqlWhere(params);
} else {
sqlWhere = " where id in(" + votinggetvotingidbyshare.getJoinVotingIdByShare(user) + ")";
HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo();
String belongtoshow = userSetting.getBelongtoshowByUserId(user.getUID() + "");
String account_type = user.getAccount_type();
String belongtoids = user.getBelongtoids();
if (belongtoshow.equals("1") && account_type.equals("0") && !belongtoids.equals("")) {
belongtoids += "," + user.getUID();
} else {
belongtoids = user.getUID() + "";
}
sqlWhere += " and (istemplate <> '1' or istemplate is null)";
sqlWhere += votinggetsqlwhere.getSqlWhere(params);
if (tabInfo == ConditionUtil.TAB_VOTING_DO) { // 已参与
tableType = VotingTableType.VOTING_HAS_DOWN;
pageId = "VOTING_HAS_DOWN";
sqlWhere += " and status in(1,2) ";// 已参与只可能是进行中,已结束
sqlWhere += " and exists";
sqlWhere += " (select 1 from VotingRemark where votingid=voting.id and resourceid"
+ (belongtoids.contains(",") ? (" in (" + belongtoids + ")") : ("=" + belongtoids)) + ")";
} else {// 未参与
tableType = VotingTableType.VOTING_UN_DO;
pageId = "VOTING_UN_DO";
String votingCurrentDate = TimeUtil.getCurrentDateString();
String votingCurrentTime = TimeUtil.getOnlyCurrentTimeString();
sqlWhere += " and status=1 ";
sqlWhere += " and (beginDate<'" + votingCurrentDate + "' or (beginDate='" + votingCurrentDate
+ "' and (beginTime is null or beginTime='' or beginTime<='" + votingCurrentTime + "')))";
sqlWhere += " and (";
List<String> belongtoidsList = Util.TokenizerString(belongtoids, ",");
for (int k = 0; k < belongtoidsList.size(); k++) {// 次账号存在于参与人范围又不存在提交remark表
if (k == 0) {
sqlWhere += " (exists(select 1 from VotingShareDetail where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + ")";
sqlWhere += " and not exists(select 1 from VotingRemark where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + "))";
} else {
sqlWhere += " or (exists(select 1 from VotingShareDetail where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + ")";
sqlWhere += " and not exists(select 1 from VotingRemark where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + "))";
}
}
sqlWhere += ") ";
}
}
BaseBean bb = new BaseBean();
String voting_type = Util.null2String(params.get("votingtype"));
bb.writeLog("voting_type:"+voting_type);
if(StringUtils.isNotBlank(voting_type)){
sqlWhere += " and votingtype in("+voting_type+")";
}
bb.writeLog("sqlWhere:"+sqlWhere);
boolean isSys = true;
RecordSet rs = new RecordSet();
rs.executeQuery("select 1 from hrmresource where id=" + user.getUID());
if (rs.next()) {
isSys = false;
}
if (isSys && user.getUID() != 1) {
sqlWhere = " 1=2";
}
String mobileTemplate = votingcreatemobiletemplate.createMobileTemplate(JSON.parseArray(JSON_CONFIG,
SplitMobileDataBean.class));
String pageUid = VotingPageUidFactory.getPageUid(pageId);
String tableString = "<table mobileshowtemplate=\"" + mobileTemplate + "\" pageUid=\"" + pageUid
+ "\" pageId=\"" + pageId + "\" pagesize=\""
+ PageIdConst.getPageSize(pageId, user.getUID(), PageIdConst.VOTING) + "\" tabletype=\"none\">";
tableString += "<sql backfields=\""
+ backFields
+ "\" sqlform=\""
+ Util.toHtmlForSplitPage(fromSql)
+ "\" sqlorderby=\"begindate ,begintime \" sqlprimarykey=\"id\" sqlsortway=\"Desc\" sqlwhere=\""
+ Util.toHtmlForSplitPage(sqlWhere)
+ "\" />"
+ "<head>"
+ "<col width=\"8%\" text=\""
+ SystemEnv.getHtmlLabelName(15486, user.getLanguage())
+ "\" column=\"id\" orderkey=\"id\" />"
+ "<col width=\"30%\" text=\""
+ SystemEnv.getHtmlLabelName(195, user.getLanguage())
+ "\" column=\"subject\" orderkey=\"subject\" />"
+ "<col width=\"10%\" text=\""
+ SystemEnv.getHtmlLabelName(882, user.getLanguage())
+ "\" column=\"createrid\" orderkey=\"createrid\" transmethod=\"weaver.hrm.resource.ResourceComInfo.getMulResourcename1\"/>"
+ "<col width=\"20%\" text=\""
+ SystemEnv.getHtmlLabelName(740, user.getLanguage())
+ "\" column=\"begindate\" orderkey=\"begindate\" otherpara=\"column:begintime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"
+ "<col width=\"20%\" text=\""
+ SystemEnv.getHtmlLabelName(741, user.getLanguage())
+ "\" column=\"enddate\" orderkey=\"enddate\" otherpara=\"column:endtime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"
+ "<col width=\"12%\" text=\"" + SystemEnv.getHtmlLabelName(602, user.getLanguage())
+ "\" column=\"status\" orderkey=\"status\" otherpara=\"" + user.getLanguage()
+ "\" transmethod=\"weaver.voting.VotingManager.getStatus\"/>";
String isFromMobile = Util.null2String(params.get("_ec_ismobile"));
if ("true".equals(isFromMobile) && tabInfo == 0) {
tableString += "<col text=\"\" column=\"begintime\" orderkey=\"begintime\" />"
+ "<col text=\"\" column=\"endtime\" orderkey=\"endtime\" />"
+ "<col text=\"\" column=\"countid\" orderkey=\"countid\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingRemarkCount\" />"
+ "<col text=\"\" column=\"picid\" orderkey=\"picid\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingPathPic\" />"
+ "<col text=\"\" column=\"enddate\" _key=\"countDownTime\" otherpara=\"column:endtime+"
+ user.getLanguage()
+ "\" transmethod=\"com.api.voting.util.VotingCommonUtil.getCountDownTime2\" />"
+ "<col text=\"\" column=\"id\" _key=\"joinStatus\" otherpara=\"" + user.getUID()
+ "\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingUserJoinStatus\" />";
} else if ("true".equals(isFromMobile) && tabInfo != 0) {
tableString += "<col text=\"\" column=\"begintime\" orderkey=\"begintime\" />"
+ "<col text=\"\" column=\"endtime\" orderkey=\"endtime\" />"
+ "<col text=\"\" column=\"countid\" orderkey=\"countid\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingRemarkCount\" />"
+ "<col text=\"\" column=\"id\" _key=\"joinStatus\" otherpara=\"" + user.getUID()
+ "\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingUserJoinStatus\" />";
}
tableString += "</head>" + "</table>";
String sessionkey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
Util_TableMap.setVal(sessionkey, tableString);
apidatas.put("sessionkey", sessionkey);
// String isFromMobile = Util.null2String(params.get("_ec_ismobile"));
// if("true".equals(isFromMobile)){
// if(tabInfo == ConditionUtil.TAB_VOTING_DO){ //已参与
// //已参与调查中的已参与人数
// Map<String, String> remarkMap = getVotingRemarkCount(votingShareSql, votingCurrentDate,
// votingCurrentTime, 1);
// apidatas.put("remarkMap", remarkMap);
//
// }else if(tabInfo == ConditionUtil.TAB_VOTING_UN_DO){//未参与
// //未参与调查中的已参与人数
// Map<String, String> remarkMap = getVotingRemarkCount(votingShareSql, votingCurrentDate,
// votingCurrentTime, 0);
// apidatas.put("remarkMap", remarkMap);
// Map<String, String> votingPicMap = getVotingPathPic(votingShareSql, votingCurrentDate,
// votingCurrentTime);
// apidatas.put("votingPicMap", votingPicMap);
// }
// }
return apidatas;
}
@Override
public BizLogContext getLogContext() {
return null;
}
}

@ -0,0 +1,147 @@
package com.engine.voting.cmd.VotingList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.systeminfo.setting.HrmUserSettingComInfo;
import weaver.conn.RecordSet;
import weaver.general.TimeUtil;
import weaver.general.Util;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.voting.biz.VotingGetVotingIdByShare;
/**
*
* @author ZH
*
*/
public class VotingGetMyVotingNumCmd extends AbstractCommonCommand<Map<String, Object>> {
public VotingGetMyVotingNumCmd(User user, Map<String, Object> params) {
this.user = user;
this.params = params;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
VotingGetVotingIdByShare votinggetvotingidbyshare = new VotingGetVotingIdByShare();
Map<String, Object> apidatas = new HashMap<String, Object>();
Map<String, Object> data = new HashMap<String, Object>();
RecordSet rs = new RecordSet();
String votingCurrentDate = TimeUtil.getCurrentDateString();
String votingCurrentTime = TimeUtil.getOnlyCurrentTimeString();
HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo();
String belongtoshow = userSetting.getBelongtoshowByUserId(user.getUID() + "");
String account_type = user.getAccount_type();
String belongtoids = user.getBelongtoids();
if (belongtoshow.equals("1") && account_type.equals("0") && !belongtoids.equals("")) {
belongtoids += "," + user.getUID();
} else {
belongtoids = user.getUID() + "";
}
String sql = "select count(id) voteNum from Voting where id in("
+ votinggetvotingidbyshare.getJoinVotingIdByShare(user)
+ ") and (istemplate <> '1' or istemplate is null)";
sql += " and status=1 ";
sql += " and (beginDate<'" + votingCurrentDate + "' or (beginDate='" + votingCurrentDate
+ "' and (beginTime is null or beginTime='' or beginTime<='" + votingCurrentTime + "')))";
sql += " and (";
List<String> belongtoidsList = Util.TokenizerString(belongtoids, ",");
for (int k = 0; k < belongtoidsList.size(); k++) {// 次账号存在于参与人范围又不存在提交remark表
if (k == 0) {
sql += " (exists(select 1 from VotingShareDetail where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + ")";
sql += " and not exists(select 1 from VotingRemark where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + "))";
} else {
sql += " or (exists(select 1 from VotingShareDetail where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + ")";
sql += " and not exists(select 1 from VotingRemark where votingid=voting.id and resourceid="
+ belongtoidsList.get(k) + "))";
}
}
sql += ") ";
BaseBean bb = new BaseBean();
String voting_type = Util.null2String(params.get("votingtype"));
bb.writeLog("voting_type:"+voting_type);
if(StringUtils.isNotBlank(voting_type)){
sql += " and votingtype in("+voting_type+")";
}
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if (rs.next()) {// 未参与
String voteNum = rs.getString("voteNum");
data.put("unjoin", voteNum);
}
sql = "select count(id) voteNum from Voting where id in("
+ votinggetvotingidbyshare.getJoinVotingIdByShare(user)
+ ") and (istemplate <> '1' or istemplate is null)";
sql += " and exists";
sql += " (select 1 from VotingRemark where votingid=voting.id and resourceid"
+ (belongtoids.contains(",") ? (" in (" + belongtoids + ")") : ("=" + belongtoids)) + ")";
if(StringUtils.isNotBlank(voting_type)){
sql += " and votingtype in("+voting_type+")";
}
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if (rs.next()) {// 我参与
String voteNum = rs.getString("voteNum");
data.put("join", voteNum);
}
sql = "select count(id) voteNum from Voting where (istemplate <> '1' or istemplate is null) and status in(1,2) and createrid ="
+ user.getUID();
if(StringUtils.isNotBlank(voting_type)){
sql += " and votingtype in("+voting_type+")";
}
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if (rs.next()) {// 我发起
String voteNum = rs.getString("voteNum");
data.put("create", voteNum);
}
sql = "select count(id) voteNum from Voting where (istemplate <> '1' or istemplate is null) and status in(1,2)";
sql += " and (beginDate<'" + votingCurrentDate + "' or (beginDate='" + votingCurrentDate
+ "' and (beginTime is null or beginTime='' or beginTime<='" + votingCurrentTime + "')))";
sql += " and (id in(" + votinggetvotingidbyshare.getJoinVotingIdByShare(user) + ") or createrid ="
+ user.getUID() + ")";
// System.out.println("sql--------:"+sql);
if(StringUtils.isNotBlank(voting_type)){
sql += " and votingtype in("+voting_type+")";
}
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if (rs.next()) {// 与我有关
String voteNum = rs.getString("voteNum");
data.put("related", voteNum);
}
apidatas.put("data", data);
return apidatas;
}
public BizLogContext getLogContext() {
return null;
}
}

@ -0,0 +1,106 @@
package com.engine.voting.cmd.VotingList;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import weaver.general.PageIdConst;
import weaver.general.Util;
import com.alibaba.fastjson.JSON;
import com.api.voting.util.VotingTableType;
import com.cloudstore.dev.api.bean.SplitMobileDataBean;
import com.cloudstore.dev.api.util.Util_TableMap;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.voting.util.VotingPageUidFactory;
import com.engine.voting.biz.VotingGetSqlWhere;
import com.engine.voting.biz.VotingCreateMobileTemplate;
import com.engine.voting.biz.VotingGetVotingIdByShare;
/**
*
*/
public class VotingGetVotingResultListCmd extends AbstractCommonCommand<Map<String, Object>>{
public VotingGetVotingResultListCmd(User user, Map<String, Object> params) {
this.user = user;
this.params = params;
}
private static final String JSON_CONFIG = "[ \n" + "]";
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> apidatas = new HashMap<String, Object>();
params = params == null ? new HashMap<String, Object>() : params;
String loginType = user.getLogintype();
String backFields = " id,descr, subject,begindate,begintime,enddate,endtime,createrid,approverid,status,createdate ,createtime,istemplate,id countid ";
String fromSql = " voting ";
VotingGetVotingIdByShare votinggetvotingidbyshare = new VotingGetVotingIdByShare();
String sqlWhere = " where id in(" + votinggetvotingidbyshare.getVotingIdByShare(user) + ")";
sqlWhere += " and status in (1,2) ";
sqlWhere += " and (istemplate <> '1' or istemplate is null)";
BaseBean bb = new BaseBean();
String voting_type = Util.null2String(params.get("votingtype"));
bb.writeLog("voting_type:"+voting_type);
if(StringUtils.isNotBlank(voting_type)){
sqlWhere += " and votingtype in("+voting_type+")";
}
bb.writeLog("sqlWhere:"+sqlWhere);
VotingGetSqlWhere votinggetsqlwhere = new VotingGetSqlWhere();
sqlWhere += votinggetsqlwhere.getSqlWhere(params);
String orderBy = "id";
String operateString = "";
VotingTableType tableType = VotingTableType.VOTING_RESULT;
String pageId = "VOTING_RESULT";
String pageUid = VotingPageUidFactory.getPageUid(pageId);
VotingCreateMobileTemplate votingcreatemobiletemplate = new VotingCreateMobileTemplate();
String mobileTemplate = votingcreatemobiletemplate.createMobileTemplate(JSON.parseArray(JSON_CONFIG,
SplitMobileDataBean.class));
String tableString = "";
tableString = "<table mobileshowtemplate=\"" + mobileTemplate + "\" pageUid=\"" + pageUid + "\" pageId=\""
+ pageId + "\" pagesize=\"" + PageIdConst.getPageSize(pageId, user.getUID(), PageIdConst.VOTING)
+ "\" tabletype=\"none\">";
// tableString
// +="<checkboxpopedom id=\"checkbox\" popedompara=\""+checkboxpopedompara+"\" showmethod=\"weaver.voting.VotingManager.getVotingListCheckBoxRight\" />";
tableString += "<sql backfields=\"" + backFields + "\" sqlform=\"" + Util.toHtmlForSplitPage(fromSql)
+ "\" sqlorderby=\"" + orderBy + "\" sqlprimarykey=\"id\" sqlsortway=\"Desc\" sqlwhere=\""
+ Util.toHtmlForSplitPage(sqlWhere) + "\" />";
tableString += operateString;
tableString += "<head>"
+ "<col width=\"8%\" text=\""+ SystemEnv.getHtmlLabelName(15486, user.getLanguage())+ "\" column=\"id\" orderkey=\"id\" />"
+ "<col width=\"30%\" text=\""+ SystemEnv.getHtmlLabelName(195, user.getLanguage())+ "\" column=\"subject\" orderkey=\"subject\" />"
+ "<col width=\"10%\" text=\""+ SystemEnv.getHtmlLabelName(882, user.getLanguage())+ "\" column=\"createrid\" orderkey=\"createrid\" transmethod=\"weaver.splitepage.transform.SptmForDoc.getName\" otherpara=\""+ loginType+ "\" />"
+ "<col width=\"20%\" text=\""+ SystemEnv.getHtmlLabelName(740, user.getLanguage())+ "\" column=\"begindate\" orderkey=\"begindate\" otherpara=\"column:begintime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"
+ "<col width=\"20%\" text=\""+ SystemEnv.getHtmlLabelName(741, user.getLanguage())+ "\" column=\"enddate\" orderkey=\"enddate\" otherpara=\"column:endtime\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getDateAndTime\" />"
+ "<col width=\"12%\" text=\"" + SystemEnv.getHtmlLabelName(602, user.getLanguage())+ "\" column=\"status\" orderkey=\"status\" otherpara=\"" + user.getLanguage()+ "\" transmethod=\"weaver.voting.VotingManager.getStatus\"/>";
String isFromMobile = Util.null2String(params.get("_ec_ismobile"));
if ("true".equals(isFromMobile)) {
tableString += "<col text=\"\" column=\"begintime\" orderkey=\"begintime\" />"
+ "<col text=\"\" column=\"endtime\" orderkey=\"endtime\" />"
+ "<col text=\"\" column=\"countid\" orderkey=\"countid\" transmethod=\"com.api.voting.service.VotingTransMethod4E9.getVotingRemarkCount\" />";
}
tableString += "</head>" + "</table>";
String sessionkey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
Util_TableMap.setVal(sessionkey, tableString);
apidatas.put("sessionkey", sessionkey);
// String isFromMobile = Util.null2String(params.get("_ec_ismobile"));
// if("true".equals(isFromMobile)){
// //已参与调查中的已参与人数
// Map<String, String> remarkMap = getVotingResultRemarkCount(votingShareSql, params);
// apidatas.put("remarkMap", remarkMap);
// }
return apidatas;
}
public BizLogContext getLogContext() {
return null;
}
}

@ -0,0 +1,280 @@
package com.engine.voting.web;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import com.alibaba.fastjson.JSONObject;
import com.api.browser.bean.BrowserBean;
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption;
import com.api.browser.util.ConditionType;
import com.api.voting.bean.RightMenu;
import com.api.voting.util.BrowserType;
import com.api.voting.util.ConditionUtil;
import com.api.voting.util.RightMenuType;
import com.api.voting.util.VotingCommonUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.voting.service.VotingListService;
import com.engine.voting.service.impl.VotingListServiceImpl;
import com.engine.workflow.util.CommonUtil;
/**
*
* */
@Path("/voting/list")
public class VotingListAction {
private VotingListService getService(HttpServletRequest request, HttpServletResponse response) {
return ServiceUtil.getService(VotingListServiceImpl.class, CommonUtil.getUserByRequest(request, response));
}
/**
*
* */
@GET
@Path("/result")
@Produces(MediaType.TEXT_PLAIN)
public String result(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception {
Map<String, Object> apidatas = new HashMap<String, Object>();
try {
User user = HrmUserVarify.getUser(request, response);
Map<String, Object> params = getRequestMap(request);
apidatas = getService(request, response).getResultList(user, params);
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* */
@GET
@Path("/myVoting")
@Produces(MediaType.TEXT_PLAIN)
public String myVoting(@Context HttpServletRequest request, @Context HttpServletResponse response)
throws Exception {
Map<String, Object> apidatas = new HashMap<String, Object>();
try {
User user = HrmUserVarify.getUser(request, response);
//当前选中tab
int tabInfo = Util.getIntValue(request.getParameter(ConditionUtil.TAB_REQ_NAME), ConditionUtil.TAB_VOTING_DEFAULT);
apidatas = getService(request, response).getMyVoting(user, this.getRequestMap(request), tabInfo);
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* */
@GET
@Path("/myVotingNum")
@Produces(MediaType.TEXT_PLAIN)
public String myVotingNum(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser (request , response) ;
Map<String,Object> params = getRequestMap(request);
apidatas = getService(request, response).getMyVotingNum(user, params);
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
/**
* TAB
* @author wangqs
* */
@GET
@Path("/tabInfo")
@Produces(MediaType.TEXT_PLAIN)
public String getTabInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser (request , response) ;
int _default = ConditionUtil.TAB_VOTING_DEFAULT;
List<Map<String,Object>> groupinfo = new ArrayList<Map<String,Object>>();
Map<String,Object> undo = new HashMap<String,Object>();
undo.put("color","");
undo.put("selected",ConditionUtil.TAB_ALL_VALUE == _default);
undo.put("groupid","undo");
undo.put("editable",false);
undo.put("showcount",false);
undo.put("title",SystemEnv.getHtmlLabelName(33850,user.getLanguage()));
undo.put(ConditionUtil.TAB_REQ_NAME, ConditionUtil.TAB_VOTING_UN_DO);
groupinfo.add(undo);
Map<String,Object> hasDown = new HashMap<String,Object>();
hasDown.put("color","");
hasDown.put("selected",ConditionUtil.TAB_TODAY_VALUE == _default);
hasDown.put("groupid","hasDown");
hasDown.put("editable",false);
hasDown.put("showcount",false);
hasDown.put("title",SystemEnv.getHtmlLabelName(33849,user.getLanguage()));
hasDown.put(ConditionUtil.TAB_REQ_NAME, ConditionUtil.TAB_VOTING_DO);
groupinfo.add(hasDown);
apidatas.put("groupinfo",groupinfo);
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* @author wangqs
* */
@GET
@Path("/rightMenu")
@Produces(MediaType.TEXT_PLAIN)
public String getRightMenu(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser (request , response) ;
List<RightMenu> rightMenus = new ArrayList<RightMenu>();
String listType = request.getParameter("listType");// --result:调查结果myVoting-参与调查
int tabInfo = Util.getIntValue(request.getParameter(ConditionUtil.TAB_REQ_NAME),ConditionUtil.TAB_VOTING_DEFAULT);
int language = user.getLanguage();
//if("result".equals(listType) || ("myVoting".equals(listType) && tabInfo == ConditionUtil.TAB_VOTING_DO)){
rightMenus.add(new RightMenu(language, RightMenuType.BTN_SEARCH, "", false));
//}
rightMenus.add(new RightMenu(language, RightMenuType.BTN_STORE, "", false));
rightMenus.add(new RightMenu(language, RightMenuType.BTN_HELP, "", false));
apidatas.put("rightMenus", rightMenus);
//当前选中tab
}catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
/**
*
* */
@GET
@Path("/condition")
@Produces(MediaType.TEXT_PLAIN)
public String getConDition(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception {
Map<String,Object> apidatas = new HashMap<String,Object>();
try{
User user = HrmUserVarify.getUser (request , response) ;
String listType = request.getParameter("listType");// --result:调查结果myVoting-参与调查
int tabInfo = Util.getIntValue(request.getParameter(ConditionUtil.TAB_REQ_NAME),ConditionUtil.TAB_VOTING_DEFAULT);
String isFromMobile = Util.null2String(request.getParameter("_ec_ismobile"));
int viewcondition = Util.getIntValue(request.getParameter("viewcondition"), 1); //0:未参与列表1已参与列表
List<Map<String,Object>> grouplist = new ArrayList<Map<String,Object>>();
Map<String,Object> groupitem1 = new HashMap<String,Object>();
List<SearchConditionItem> itemlist1 = new ArrayList<SearchConditionItem>();
groupitem1.put("title", SystemEnv.getHtmlLabelNames(ConditionUtil.COMMON_CONDITION, user.getLanguage()));
groupitem1.put("defaultshow", true);
groupitem1.put("items", itemlist1);
grouplist.add(groupitem1);
SearchConditionItem titleItem = new SearchConditionItem(ConditionType.INPUT, SystemEnv.getHtmlLabelName(33439,
user.getLanguage()), new String[]{"subject"});
titleItem.setIsQuickSearch(true);
itemlist1.add(titleItem);
BrowserBean createUser = new BrowserBean(BrowserType.USER);
if("result".equals(listType) || "true".equals(isFromMobile)){
itemlist1.add(new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelName(882,
user.getLanguage()), new String[]{"createrid"},createUser));
List<SearchConditionOption> options = new ArrayList<SearchConditionOption>();
List<Map<String,String>> votingTypes = getService(request, response).getVotingTypes();
for(Map<String,String> votingType : votingTypes){
options.add(new SearchConditionOption(votingType.get("id"),votingType.get("name")));
}
// SearchConditionItem votingTypeItem = new SearchConditionItem(ConditionType.SELECT, SystemEnv.getHtmlLabelName(24111,
// user.getLanguage()), new String[]{"votingtype"});
// votingTypeItem.setOptions(options);
// itemlist1.add(votingTypeItem);
} else if("myVoting".equals(listType)) { //未参与列表才有创建
// 创建人
itemlist1.add(new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelName(882, user.getLanguage()), new String[]{"createrid"}, createUser));
}
List<SearchConditionOption> statusOptions = new ArrayList<SearchConditionOption>();
statusOptions.add(new SearchConditionOption("",""));
//statusOptions.add(new SearchConditionOption("3",SystemEnv.getHtmlLabelNames("30835",user.getLanguage())));
statusOptions.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(18600,weaver.general.Util.getIntValue(user.getLanguage())))); //进行
statusOptions.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(405,weaver.general.Util.getIntValue(user.getLanguage())))); //结束
SearchConditionItem votingStatusItem = new SearchConditionItem(ConditionType.SELECT, SystemEnv.getHtmlLabelName(602, user.getLanguage()), new String[]{"status"});
votingStatusItem.setOptions(statusOptions);
itemlist1.add(votingStatusItem);
//调查时间(时间选择)
itemlist1.add(new SearchConditionItem(ConditionType.DATE, SystemEnv.getHtmlLabelName(500889, user.getLanguage()), "", new String[]{"datetype", "begindate", "enddate"},
VotingCommonUtil.getDateSelectOption(user.getLanguage(), false, false), 6, 18, null));
if("myVoting".equals(listType) && tabInfo == ConditionUtil.TAB_VOTING_UN_DO){
//grouplist = new ArrayList<Map<String,Object>>();
}
if("true".equals(isFromMobile)){
apidatas.put("conditioninfo", grouplist);
}else{
apidatas.put("condition", grouplist);
}
} catch (Exception e) {
e.printStackTrace();
apidatas.put("api_status", false);
apidatas.put("api_errormsg", "系统内部异常");
}
return JSONObject.toJSONString(apidatas);
}
public Map<String,Object> getRequestMap(HttpServletRequest request){
Map<String,Object> dataMap = new HashMap<String,Object>();
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String paramValue = Util.null2String(request.getParameter(paramName));
dataMap.put(paramName,paramValue);
}
return dataMap;
}
}

@ -0,0 +1,111 @@
package com.engine.zjrb.pattern.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class PatternUnlockingAddCmd extends AbstractCommonCommand<Map<String,Object>> {
public PatternUnlockingAddCmd(Map<String,Object> params, User user) {
this.params = params;
this.user = user;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> returnMap = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
int userid = user.getUID();
int departmentid = user.getUserDepartment();
int subcompanyid = user.getUserSubCompany1();
bb.writeLog("departmentid:"+departmentid);
bb.writeLog("subcompanyid:"+subcompanyid);
RecordSet rs = new RecordSet();
boolean data = false;
String uftable = "uf_pattern";
String patternvalue = Util.null2String(params.get("patternvalue"));
try{
String id = "";
String sql = " select id from "+uftable+" where ry = ? " ;
rs.executeQuery(sql,new Object[]{userid});
if(rs.next()){
id = Util.null2String(rs.getString("id"));
}
if(StringUtils.isNotBlank(id)){
sql = " update "+uftable+" set taz = ?,ryszbm=?,ryszfb=? where id = ?";
boolean isTrue = rs.executeUpdate(sql,new Object[]{patternvalue,departmentid,subcompanyid,id});
if(isTrue){
data = true;
}
}else{
ModeRightInfo modeRightInfo = new ModeRightInfo();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
int formmodeid = 0 ;
String modedatacreater = "1" ;
String modedatacreatertype = "0" ;
String modedatacreatedate = sdf1.format(new Date());
String modedatacreatetime = sdf2.format(new Date());
String uuid = UUID.randomUUID().toString();
sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = ? " ;
rs.executeQuery(sql,new Object[]{uftable});
if(rs.next()){
formmodeid = Util.getIntValue(Util.null2String(rs.getString("id")));
}
sql = " insert into "+uftable+"(uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,ry,taz,ryszbm,ryszfb)" +
" values(?,?,?,?,?,?,?,?,?,?)" ;
boolean flag = rs.executeUpdate(sql,new Object[]{uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,userid,patternvalue,departmentid,subcompanyid});
bb.writeLog("sql;"+sql);
if(flag){
String dataid = "";
sql = " select * from "+uftable+" where uuid=? ";
bb.writeLog("sql:" + sql);
rs.executeQuery(sql,new Object[]{uuid});
if (rs.next()) {
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("sql:" + sql);
bb.writeLog("dataid:" + dataid);
bb.writeLog("modeid:" + formmodeid);
if (StringUtils.isNotEmpty(dataid))
{
modeRightInfo.setNewRight(true);
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), formmodeid, Integer.parseInt(dataid));
data = true;
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("e:"+e);
}
returnMap.put("data",data);
return returnMap;
}
}

@ -0,0 +1,61 @@
package com.engine.zjrb.pattern.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.util.*;
public class PatternUnlockingQueryCmd extends AbstractCommonCommand<Map<String,Object>> {
public PatternUnlockingQueryCmd(Map<String,Object> params, User user) {
this.params = params;
this.user = user;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> returnMap = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
int userid = user.getUID();
RecordSet rs = new RecordSet();
String id = "";
String ry = "" ;
String taz = "";
List<Integer> tazList = new ArrayList<Integer>();
try{
String sql = " select id,taz,ry from uf_pattern where ry = ? " ;
rs.executeQuery(sql,new Object[]{userid});
if(rs.next()){
id = Util.null2String(rs.getString("id"));
ry = Util.null2String(rs.getString("ry"));
taz = Util.null2String(rs.getString("taz"));
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("e:"+e);
}
returnMap.put("id",id);
returnMap.put("ry",ry);
if(StringUtils.isNotBlank(taz)){
String[] tazArray = taz.split(",");
for(int i=0;i<tazArray.length;i++){
String tazVal = tazArray[i];
if(StringUtils.isNotBlank(tazVal)){
tazList.add(Integer.parseInt(tazVal));
}
}
}
returnMap.put("patternvalue",tazList);
return returnMap;
}
}

@ -0,0 +1,55 @@
package com.engine.zjrb.pattern.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class PatternUnlockingResetCmd extends AbstractCommonCommand<Map<String,Object>> {
public PatternUnlockingResetCmd(Map<String,Object> params, User user) {
this.params = params;
this.user = user;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> returnMap = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
int userid = user.getUID();
String name = "";
int departmentid = user.getUserDepartment();
int subcompanyid = user.getUserSubCompany1();
bb.writeLog("departmentid:"+departmentid);
bb.writeLog("subcompanyid:"+subcompanyid);
RecordSet rs = new RecordSet();
try{
}catch (Exception e){
e.printStackTrace();
bb.writeLog("e:"+e);
}
if(StringUtils.isBlank(name)){
name = "系统管理员";
}
returnMap.put("name",name);
return returnMap;
}
}

@ -0,0 +1,115 @@
package com.engine.zjrb.pattern.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class PatternUnlockingUpdateCmd extends AbstractCommonCommand<Map<String,Object>> {
public PatternUnlockingUpdateCmd(Map<String,Object> params, User user) {
this.params = params;
this.user = user;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> returnMap = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
int userid = user.getUID();
int departmentid = user.getUserDepartment();
int subcompanyid = user.getUserSubCompany1();
bb.writeLog("departmentid:"+departmentid);
bb.writeLog("subcompanyid:"+subcompanyid);
RecordSet rs = new RecordSet();
boolean data = false;
String uftable = "uf_pattern";
String patternvalue = Util.null2String(params.get("patternvalue"));
try{
String id = "";
String sql = " select id from "+uftable+" where ry = ? " ;
rs.executeQuery(sql,new Object[]{userid});
if(rs.next()){
id = Util.null2String(rs.getString("id"));
}
bb.writeLog("id:"+id);
if(StringUtils.isNotBlank(id)){
sql = " update "+uftable+" set taz = ?,ryszbm=?,ryszfb=? where id = ?";
boolean isTrue = rs.executeUpdate(sql,new Object[]{patternvalue,departmentid,subcompanyid,id});
if(isTrue){
data = true;
}
}else{
ModeRightInfo modeRightInfo = new ModeRightInfo();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
int formmodeid = 0 ;
String modedatacreater = "1" ;
String modedatacreatertype = "0" ;
String modedatacreatedate = sdf1.format(new Date());
String modedatacreatetime = sdf2.format(new Date());
String uuid = UUID.randomUUID().toString();
sql = " select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = ? " ;
rs.executeQuery(sql,new Object[]{uftable});
if(rs.next()){
formmodeid = Util.getIntValue(Util.null2String(rs.getString("id")));
}
sql = " insert into "+uftable+"(uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,ry,taz,ryszbm,ryszfb)" +
" values(?,?,?,?,?,?,?,?,?,?)" ;
boolean flag = rs.executeUpdate(sql,new Object[]{uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,userid,patternvalue,departmentid,subcompanyid});
bb.writeLog("sql;"+sql);
if(flag){
String dataid = "";
sql = " select * from "+uftable+" where uuid=? ";
bb.writeLog("sql:" + sql);
rs.executeQuery(sql,new Object[]{uuid});
if (rs.next()) {
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("sql:" + sql);
bb.writeLog("dataid:" + dataid);
bb.writeLog("modeid:" + formmodeid);
if (StringUtils.isNotEmpty(dataid))
{
modeRightInfo.setNewRight(true);
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), formmodeid, Integer.parseInt(dataid));
data = true;
}
}
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("e:"+e);
}
returnMap.put("data",data);
return returnMap;
}
}

@ -0,0 +1,13 @@
package com.engine.zjrb.pattern.service;
import weaver.hrm.User;
import java.util.Map;
public interface PatternUnlockingService {
Map<String,Object> query(Map<String,Object> params, User user);
Map<String,Object> add(Map<String,Object> params, User user);
Map<String,Object> update(Map<String,Object> params, User user);
Map<String,Object> getrestinfo(Map<String,Object> params, User user);
}

@ -0,0 +1,33 @@
package com.engine.zjrb.pattern.service.impl;
import com.engine.core.impl.Service;
import com.engine.zjrb.pattern.cmd.PatternUnlockingAddCmd;
import com.engine.zjrb.pattern.cmd.PatternUnlockingQueryCmd;
import com.engine.zjrb.pattern.cmd.PatternUnlockingUpdateCmd;
import com.engine.zjrb.pattern.service.PatternUnlockingService;
import weaver.hrm.User;
import java.util.Map;
public class PatternUnlockingServiceImpl extends Service implements PatternUnlockingService {
@Override
public Map<String, Object> query(Map<String, Object> params, User user) {
return commandExecutor.execute(new PatternUnlockingQueryCmd(params,user));
}
@Override
public Map<String, Object> add(Map<String, Object> params, User user) {
return commandExecutor.execute(new PatternUnlockingAddCmd(params,user));
}
@Override
public Map<String, Object> update(Map<String, Object> params, User user) {
return commandExecutor.execute(new PatternUnlockingUpdateCmd(params,user));
}
@Override
public Map<String, Object> getrestinfo(Map<String, Object> params, User user) {
return commandExecutor.execute(new PatternUnlockingUpdateCmd(params,user));
}
}

@ -0,0 +1,125 @@
package com.engine.zjrb.pattern.web;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.zjrb.pattern.service.PatternUnlockingService;
import com.engine.zjrb.pattern.service.impl.PatternUnlockingServiceImpl;
import weaver.general.BaseBean;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
public class PatternUnlockingAction {
public PatternUnlockingService getService(){
return (PatternUnlockingService) ServiceUtil.getService(PatternUnlockingServiceImpl.class);
}
@GET
@Path("/query")
@Produces({MediaType.TEXT_PLAIN})
public String query(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
bb.writeLog("query");
User user = HrmUserVarify.getUser(request , response) ;
try{
Map<String,Object> params = ParamUtil.request2Map(request);
apidatas.putAll(getService().query(params,user));
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
bb.writeLog("apidatas:"+ JSONObject.toJSONString(apidatas));
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/add")
@Produces({MediaType.TEXT_PLAIN})
public String add(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
bb.writeLog("query");
User user = HrmUserVarify.getUser(request , response) ;
try{
Map<String,Object> params = ParamUtil.request2Map(request);
apidatas.putAll(getService().add(params,user));
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
bb.writeLog("apidatas:"+ JSONObject.toJSONString(apidatas));
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/update")
@Produces({MediaType.TEXT_PLAIN})
public String update(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
bb.writeLog("query");
User user = HrmUserVarify.getUser(request , response) ;
try{
Map<String,Object> params = ParamUtil.request2Map(request);
apidatas.putAll(getService().update(params,user));
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
bb.writeLog("apidatas:"+ JSONObject.toJSONString(apidatas));
return JSONObject.toJSONString(apidatas);
}
@GET
@Path("/getrestinfo")
@Produces({MediaType.TEXT_PLAIN})
public String getrestinfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
Map<String,Object> apidatas = new HashMap<String,Object>();
BaseBean bb = new BaseBean();
bb.writeLog("query");
User user = HrmUserVarify.getUser(request , response) ;
try{
Map<String,Object> params = ParamUtil.request2Map(request);
apidatas.putAll(getService().getrestinfo(params,user));
apidatas.put("api_status",true);
}catch (Exception e){
apidatas.put("api_status",false);
apidatas.put("api_errormsg","exception:"+e.getMessage());
}
bb.writeLog("apidatas:"+ JSONObject.toJSONString(apidatas));
return JSONObject.toJSONString(apidatas);
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,209 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSetDataSource;
import weaver.general.BaseBean;
/**
* @Author: shil
* @Date: 2024/8/21
* @Time: 17:23
* @Desc: E9E7
* idcode
* idcodeE9id
* @Version: 1.0
*/
public class HrmSynDaoTime_E92E7 {
public void syn(int days,String dataResource){
// 备份数据
BaseBean bb = new BaseBean();
HrmSynSubcompanyUtil hrmSynSubcompanyUtil = new HrmSynSubcompanyUtil();
HrmSynDepartmentUtil hrmSynDepartmentUtil = new HrmSynDepartmentUtil();
HrmSynJobGroupUtil hrmSynJobGroupUtil = new HrmSynJobGroupUtil();
HrmSynJobActivitiesUtil hrmSynJobActivitiesUtil = new HrmSynJobActivitiesUtil();
HrmSynJobTitlesUtil hrmSynJobTitlesUtil = new HrmSynJobTitlesUtil();
HrmSynResourceUtil hrmSynResourceUtil = new HrmSynResourceUtil();
try {
backDataBaseData(dataResource,"1");
String subcompanyWhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
String mainid = hrmSynSubcompanyUtil.SynHrmSubcompanyData(dataResource,subcompanyWhere);
if(StringUtils.isNotBlank(mainid)){
backDataBaseData(dataResource,"2");
String departmentwhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
hrmSynDepartmentUtil.SynHrmDepartmentData(dataResource,mainid,departmentwhere);
backDataBaseData(dataResource,"3");
String jobgroupWhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
hrmSynJobGroupUtil.SynHrmJobGroupData(dataResource,mainid,jobgroupWhere);
backDataBaseData(dataResource,"4");
String jobactivitiesWhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
hrmSynJobActivitiesUtil.SynHrmJobActivitiesData(dataResource,mainid,jobactivitiesWhere);
backDataBaseData(dataResource,"5");
String jobTitlesWhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
hrmSynJobTitlesUtil.SynHrmJobTitlesData(dataResource,mainid,jobTitlesWhere);
backDataBaseData(dataResource,"6");
String hrmresourceWhere = " and to_char(created,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') or to_char(modified,'yyyy-mm-dd')>=to_char(sysdate-"+days+",'yyyy-mm-dd') ";
hrmSynResourceUtil.SynHrmresourceData(dataResource,mainid,hrmresourceWhere);
}
}catch (Exception e){
bb.writeLog(e);
}
}
public void allSyn(String dataResource){
// 备份数据
BaseBean bb = new BaseBean();
HrmSynSubcompanyUtil hrmSynSubcompanyUtil = new HrmSynSubcompanyUtil();
HrmSynDepartmentUtil hrmSynDepartmentUtil = new HrmSynDepartmentUtil();
HrmSynJobGroupUtil hrmSynJobGroupUtil = new HrmSynJobGroupUtil();
HrmSynJobActivitiesUtil hrmSynJobActivitiesUtil = new HrmSynJobActivitiesUtil();
HrmSynJobTitlesUtil hrmSynJobTitlesUtil = new HrmSynJobTitlesUtil();
HrmSynResourceUtil hrmSynResourceUtil = new HrmSynResourceUtil();
try {
backDataBaseData(dataResource,"1");
String mainid = hrmSynSubcompanyUtil.SynHrmSubcompanyData(dataResource,"");
if(StringUtils.isNotBlank(mainid)){
backDataBaseData(dataResource,"2");
hrmSynDepartmentUtil.SynHrmDepartmentData(dataResource,mainid,"");
backDataBaseData(dataResource,"3");
hrmSynJobGroupUtil.SynHrmJobGroupData(dataResource,mainid,"");
backDataBaseData(dataResource,"4");
hrmSynJobActivitiesUtil.SynHrmJobActivitiesData(dataResource,mainid,"");
backDataBaseData(dataResource,"5");
hrmSynJobTitlesUtil.SynHrmJobTitlesData(dataResource,mainid,"");
backDataBaseData(dataResource,"6");
hrmSynResourceUtil.SynHrmresourceData(dataResource,mainid,"");
}
}catch (Exception e){
bb.writeLog(e);
}
}
public void backDataBaseData(String dataResource,String type){
BaseBean bb = new BaseBean();
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
if("1".equals(type)){
try {
String sql = " delete from hrmsubcompany_bakall ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除分部备份表数据成功");
sql = " INSERT INTO HRMSUBCOMPANY_bakall \n" +
" SELECT * FROM HRMSUBCOMPANY ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份分部表数据成功");
}
}
}catch (Exception e){
bb.writeLog("hrmsubcompany_bakall-Exception");
}
}
if("2".equals(type)){
try {
String sql = " delete from HRMDEPARTMENT_bakall ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除部门备份表数据成功");
sql = " INSERT INTO HRMDEPARTMENT_bakall \n" +
" SELECT * FROM HRMDEPARTMENT h ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份部门表数据成功");
}
}
}catch (Exception e){
bb.writeLog("HRMDEPARTMENT_bakall-Exception");
}
}
if("3".equals(type)){
try {
String sql = " delete from HRMJOBGROUPS_BAKALL ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除人员备份表数据成功");
sql = " INSERT INTO HRMJOBGROUPS_BAKALL \n" +
" SELECT * FROM HRMJOBGROUPS ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份人员表数据成功");
}
}
}catch (Exception e){
bb.writeLog("HRMJOBGROUPS_BAKALL-Exception");
}
}
if("4".equals(type)){
try {
String sql = " delete from HRMJOBACTIVITIES_BAKALL ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除人员备份表数据成功");
sql = " INSERT INTO HRMJOBACTIVITIES_BAKALL \n" +
" SELECT * FROM HRMJOBACTIVITIES ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份人员表数据成功");
}
}
}catch (Exception e){
bb.writeLog("HRMJOBGROUPS_BAKALL-Exception");
}
}
if("5".equals(type)){
try {
String sql = " delete from HRMJOBTITLES_BAKALL ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除人员备份表数据成功");
sql = " INSERT INTO HRMJOBTITLES_BAKALL \n" +
" SELECT * FROM HRMJOBTITLES ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份人员表数据成功");
}
}
}catch (Exception e){
bb.writeLog("HRMJOBTITLES_BAKALL-Exception");
}
}
if("6".equals(type)){
try {
String sql = " delete from HRMRESOURCE_bakall ";
boolean isTrue = rsd.execute(sql);
if(isTrue){
bb.writeLog("删除人员备份表数据成功");
sql = " INSERT INTO HRMRESOURCE_bakall \n" +
" SELECT * FROM HRMRESOURCE ";
boolean isTrue2 = rsd.execute(sql);
if(isTrue2){
bb.writeLog("备份人员表数据成功");
}
}
}catch (Exception e){
}
}
}
}

@ -0,0 +1,732 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynDepartmentUtil {
public void SynHrmDepartmentData(String dataResource,String mainid,String departmentwhere){
BaseBean bb = new BaseBean();
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
RecordSet rs = new RecordSet();
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<String> dataErrorList = new ArrayList<String>();
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
Map<String,String> subCompanyOutkeyMap = getE9SubcompanyOutkey();
Map<String,String> departmentOutkeyMap = getE9DepartmentOutkey();
Map<String,Map<String,String>> E7DepartmentMap = getE7DepartmentData(dataResource);
List<String> E7SubcompanyList = getE7HrmSubcompanyList(dataResource);
bb.writeLog("subCompanyOutkeyMap:"+subCompanyOutkeyMap.size()+"</br>");
bb.writeLog("departmentOutkeyMap:"+departmentOutkeyMap.size()+"</br>");
bb.writeLog("E7DepartmentMap:"+E7DepartmentMap.size()+"</br>");
bb.writeLog("E7SubcompanyList:"+E7SubcompanyList.size()+"</br>");
List<Map<String,Object>> topInsertList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> topUpdateList = new ArrayList<Map<String,Object>>();
List<String> topList = new ArrayList<>();
String sql =" select id,departmentmark,departmentname,subcompanyid1,nvl(supdepid,0) as supdepid,allsupdepid,canceled,departmentcode,outkey,tlevel,showorderoftree,showorder\n" +
" from hrmdepartment \n" +
" where nvl(supdepid,0) = 0 \n" ;
rs.execute(sql);
while(rs.next()) {
totle_count++;
String e9id = Util.null2String(rs.getString("id"));
topList.add(e9id);
String departmentmark = Util.null2String(rs.getString("departmentmark"));
String departmentname = Util.null2String(rs.getString("departmentname"));
String subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
String supdepid = Util.null2String(rs.getString("supdepid"));
String allsupdepid = Util.null2String(rs.getString("allsupdepid"));
String canceled = Util.null2String(rs.getString("canceled"));
String departmentcode = Util.null2String(rs.getString("departmentcode"));
String outkey = Util.null2String(rs.getString("outkey")); //E7的hrmdepartment的ID
String tlevel = Util.null2String(rs.getString("tlevel"));
String showorder = Util.null2String(rs.getString("showorder"));
Map<String,Object> E9Map = new HashMap<String, Object>();
E9Map.put("e9id", e9id);
E9Map.put("departmentname", departmentname);
E9Map.put("departmentmark", departmentmark);
E9Map.put("departmentcode", departmentcode);
E9Map.put("tlevel", tlevel);
E9Map.put("showorder", showorder);
E9Map.put("canceled", canceled);
String subcompanyOutKey = "" ;
if(subCompanyOutkeyMap.containsKey(subcompanyid1)){
subcompanyOutKey = subCompanyOutkeyMap.get(subcompanyid1);
}
String supdepidOutKey = "";
if(StringUtils.isNotBlank(supdepid)){
if("0".equals(supdepid) || "-1".equals(supdepid) || StringUtils.isBlank(supdepid)){
supdepidOutKey = "0";
}else{
if(departmentOutkeyMap.containsKey(supdepid)){
supdepidOutKey = departmentOutkeyMap.get(supdepid);
}
}
}
String allsupdepidOutKey = "";
if(StringUtils.isNotBlank(allsupdepid)){
String[] supdepids = allsupdepid.split(",");
for(int i=0;i<supdepids.length;i++){
if(StringUtils.isNotBlank(supdepids[i])){
if(departmentOutkeyMap.containsKey(supdepids[i])){
String supdepid_OutKey = departmentOutkeyMap.get(supdepids[i]);
allsupdepidOutKey += StringUtils.isBlank(allsupdepidOutKey) ? supdepid_OutKey : ","+supdepid_OutKey ;
}
}
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7DepartmentMap.containsKey(outkey)){
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
Map<String,String> e7DeptMap = E7DepartmentMap.get(outkey);
String e7departmentmark = Util.null2String(e7DeptMap.get("e7departmentmark"));
String e7departmentname = Util.null2String(e7DeptMap.get("e7departmentname"));
String e7subcompanyid1 = Util.null2String(e7DeptMap.get("e7subcompanyid1"));
String e7supdepid = Util.null2String(e7DeptMap.get("e7supdepid"));
String e7allsupdepid = Util.null2String(e7DeptMap.get("e7allsupdepid"));
String e7canceled = Util.null2String(e7DeptMap.get("e7canceled"));
String e7departmentcode = Util.null2String(e7DeptMap.get("e7departmentcode"));
String e7tlevel = Util.null2String(e7DeptMap.get("e7tlevel"));
String e7showorder = Util.null2String(e7DeptMap.get("e7showorder"));
if(!e7departmentmark.equals(departmentmark)
|| !e7departmentname.equals(departmentname)
|| !e7subcompanyid1.equals(subcompanyOutKey)
|| !e7supdepid.equals(supdepidOutKey)
|| !e7canceled.equals(canceled)
|| !e7departmentcode.equals(departmentcode)
|| !e7allsupdepid.equals(allsupdepidOutKey)
|| !e7tlevel.equals(tlevel)
|| !e7showorder.equals(showorder)
){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
E9Map.put("e7id", outkey);
topUpdateList.add(E9Map);
}else{
unchanged_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
topInsertList.add(E9Map);
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}
}else{
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
topInsertList.add(E9Map);
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}
}
bb.writeLog("topUpdateList:"+topUpdateList.size()+"</br>");
bb.writeLog("topInsertList:"+topInsertList.size()+"</br>");
for(Map<String,Object> E9Map : topInsertList){
String e9id = Util.null2String(E9Map.get("e9id"));
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
E9Map.put("uuid",uuid);
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
try{
boolean isTrue2 = false ;
String insert_sql = " insert into hrmdepartment("+keyString+") values("+valueString+")";
String newE7Id = insertE7DepartmentData(rsd,insert_sql,uuid,insert_fail_count);
bb.writeLog("insert_sql:"+insert_sql+" newE7Id:"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
String up_sql = " update hrmdepartment set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(up_sql);
bb.writeLog("up_sql:"+up_sql+" isTrue2:"+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
bb.writeLog("");
insert_exp_count++;
}
}
for(Map<String,Object> E9Map : topUpdateList){
String e7id = Util.null2String(E9Map.get("e7id"));
String e9id = Util.null2String(E9Map.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
}
try{
String update_sql = " update hrmdepartment set "+valuesStr+" where id = '"+e7id+"' ";
boolean isTrue = updateE7DepartmentData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" isTrue:"+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
update_exp_count++;
}
}
List<Map<String,Object>> insertList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateList = new ArrayList<Map<String,Object>>();
for(String departmentid : topList){
if(StringUtils.isNotBlank(departmentid)){
sql = " select id,departmentmark,departmentname,subcompanyid1,nvl(supdepid,0) supdepid,allsupdepid,canceled,departmentcode,outkey,tlevel,showorderoftree,showorder \n" +
" from hrmdepartment \n" +
" where 1=1 " + departmentwhere +
" connect by prior id = supdepid \n" +
" start with supdepid = "+departmentid;
rs.executeQuery(sql);
while (rs.next()){
totle_count++;
String e9id = Util.null2String(rs.getString("id"));
String departmentmark = Util.null2String(rs.getString("departmentmark"));
String departmentname = Util.null2String(rs.getString("departmentname"));
String subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
String supdepid = Util.null2String(rs.getString("supdepid"));
String allsupdepid = Util.null2String(rs.getString("allsupdepid"));
String canceled = Util.null2String(rs.getString("canceled"));
String departmentcode = Util.null2String(rs.getString("departmentcode"));
String outkey = Util.null2String(rs.getString("outkey")); //E7的hrmsubcompany的ID
String tlevel = Util.null2String(rs.getString("tlevel"));
String showorder = Util.null2String(rs.getString("showorder"));
Map<String,Object> E9Map = new HashMap<String, Object>();
E9Map.put("e9id", e9id);
E9Map.put("departmentname", departmentname);
E9Map.put("departmentmark", departmentmark);
E9Map.put("departmentcode", departmentcode);
E9Map.put("tlevel", tlevel);
E9Map.put("showorder", showorder);
E9Map.put("canceled", canceled);
String subcompanyOutKey = "" ;
if(subCompanyOutkeyMap.containsKey(subcompanyid1)){
subcompanyOutKey = subCompanyOutkeyMap.get(subcompanyid1);
}
String supdepidOutKey = "";
if(StringUtils.isNotBlank(supdepid)){
if("0".equals(supdepid) || "-1".equals(supdepid) || StringUtils.isBlank(supdepid)){
supdepidOutKey = "0";
}else{
if(departmentOutkeyMap.containsKey(supdepid)){
supdepidOutKey = departmentOutkeyMap.get(supdepid);
}
}
}else{
supdepidOutKey = "0";
}
String allsupdepidOutKey = "";
if(StringUtils.isNotBlank(allsupdepid)){
String[] supdepids = allsupdepid.split(",");
for(int i=0;i<supdepids.length;i++){
if(StringUtils.isNotBlank(supdepids[i])){
if(departmentOutkeyMap.containsKey(supdepids[i])){
String supdepid_OutKey = departmentOutkeyMap.get(supdepids[i]);
allsupdepidOutKey += StringUtils.isBlank(allsupdepidOutKey) ? supdepid_OutKey : ","+supdepid_OutKey ;
}
}
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7DepartmentMap.containsKey(outkey)){
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
Map<String,String> e7DeptMap = E7DepartmentMap.get(outkey);
String e7departmentmark = Util.null2String(e7DeptMap.get("e7departmentmark"));
String e7departmentname = Util.null2String(e7DeptMap.get("e7departmentname"));
String e7subcompanyid1 = Util.null2String(e7DeptMap.get("e7subcompanyid1"));
String e7supdepid = Util.null2String(e7DeptMap.get("e7supdepid"));
String e7allsupdepid = Util.null2String(e7DeptMap.get("e7allsupdepid"));
String e7canceled = Util.null2String(e7DeptMap.get("e7canceled"));
String e7departmentcode = Util.null2String(e7DeptMap.get("e7departmentcode"));
String e7tlevel = Util.null2String(e7DeptMap.get("e7tlevel"));
String e7showorder = Util.null2String(e7DeptMap.get("e7showorder"));
if(!e7departmentmark.equals(departmentmark)
|| !e7departmentname.equals(departmentname)
|| !e7subcompanyid1.equals(subcompanyOutKey)
|| !e7supdepid.equals(supdepidOutKey)
|| !e7canceled.equals(canceled)
|| !e7departmentcode.equals(departmentcode)
|| !e7allsupdepid.equals(allsupdepidOutKey)
|| !e7tlevel.equals(tlevel)
|| !e7showorder.equals(showorder)
){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
E9Map.put("e7id", outkey);
updateList.add(E9Map);
}else{
unchanged_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
insertList.add(E9Map);
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}
}else{
if(StringUtils.isNotBlank(subcompanyOutKey) && E7SubcompanyList.contains(subcompanyOutKey) ) {
if (StringUtils.isNotBlank(supdepidOutKey) && ("0".equals(supdepidOutKey) || E7DepartmentMap.containsKey(supdepidOutKey))){
E9Map.put("subcompanyid1", subcompanyOutKey);
E9Map.put("supdepid", supdepidOutKey);
insertList.add(E9Map);
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}else{
dataErrorList.add(e9id);
data_error_count++;
}
}
}
}
}
bb.writeLog("insertList:"+insertList.size()+"</br>");
bb.writeLog("updateList:"+updateList.size()+"</br>");
for(Map<String,Object> E9Map : insertList){
String e9id = Util.null2String(E9Map.get("e9id"));
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
E9Map.put("uuid",uuid);
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
boolean isTrue2 = false;
String insert_sql = " insert into hrmdepartment("+keyString+") values("+valueString+")";
String newE7Id = insertE7DepartmentData(rsd,insert_sql,uuid,insert_fail_count);
bb.writeLog("insert_sql:"+insert_sql+" newE7Id:"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
String up_sql = " update hrmdepartment set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(up_sql);
bb.writeLog("up_sql:"+up_sql+" isTrue2:"+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}
for(Map<String,Object> E9Map : updateList){
String e7id = Util.null2String(E9Map.get("e7id"));
String e9id = Util.null2String(E9Map.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
}
String update_sql = "update hrmdepartment set "+valuesStr+" where id = '"+e7id+"' ";
boolean isTrue = updateE7DepartmentData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" isTrue:"+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}
try{
String bmtbjg = "部门共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("bmtbjg",bmtbjg);
if(dataErrorList.size() > 0 ){
if(dataErrorList.size() <= 150){
String bmycsj = String.join(",", dataErrorList);
mainMap.put("bmycsj",bmycsj);
}else{
String bmycsj = String.join(",", dataErrorList.subList(0,150));
mainMap.put("bmycsj",bmycsj);
}
}
recordSynMainlog(mainid,mainMap);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail2(mainid,sqlList);
}
}catch (Exception e){
bb.writeLog(e);
}
}
private String insertE7DepartmentData(RecordSetDataSource rsd,String insert_sql,String uuid,int insert_fail_count){
String newE7Id = "";
boolean isTrue = rsd.execute(insert_sql);
if(isTrue){
String sql = " select id from hrmdepartment where uuid = '"+uuid+"' ";
rsd.executeSql(sql);
if(rsd.next()){
newE7Id = Util.null2String(rsd.getString("id"));
}
}else{
insert_fail_count++;
}
return newE7Id;
}
private boolean updateE7DepartmentData(RecordSetDataSource rsd,String update_sql){
boolean isTrue = rsd.execute(update_sql);
return isTrue;
}
private Map<String,String> getE9SubcompanyOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmsubcompany " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
private Map<String,String> getE9DepartmentOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmdepartment " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
private Map<String,Map<String,String>> getE7DepartmentData(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7DepartmentMap = new HashMap<String,Map<String,String>>();
String sql = " select id,departmentmark,departmentname,subcompanyid1,supdepid,allsupdepid,canceled,departmentcode,tlevel,showorder from hrmdepartment " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String e7departmentmark = Util.null2String(rsd.getString("departmentmark"));
String e7departmentname = Util.null2String(rsd.getString("departmentname"));
String e7subcompanyid1 = Util.null2String(rsd.getString("subcompanyid1"));
String e7supdepid = Util.null2String(rsd.getString("supdepid"));
String e7allsupdepid = Util.null2String(rsd.getString("allsupdepid"));
String e7canceled = Util.null2String(rsd.getString("canceled"));
String e7departmentcode = Util.null2String(rsd.getString("departmentcode"));
String e7tlevel = Util.null2String(rsd.getString("tlevel"));
String e7showorder = Util.null2String(rsd.getString("showorder"));
Map<String,String> deptMap= new HashMap<String,String>();
deptMap.put("e7departmentmark",e7departmentmark);
deptMap.put("e7departmentname",e7departmentname);
deptMap.put("e7subcompanyid1",e7subcompanyid1);
deptMap.put("e7supdepid",e7supdepid);
deptMap.put("e7allsupdepid",e7allsupdepid);
deptMap.put("e7canceled",e7canceled);
deptMap.put("e7departmentcode",e7departmentcode);
deptMap.put("e7tlevel",e7tlevel);
deptMap.put("e7showorder",e7showorder);
E7DepartmentMap.put(id,deptMap);
}
return E7DepartmentMap;
}
/***
*
* @return
*/
private List<String> getE7HrmSubcompanyList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7SubcompanyList = new ArrayList<String>();
String sql = " select id from hrmsubcompany " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7SubcompanyList.add(id);
}
return E7SubcompanyList;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail2(String mainid, List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt2(mainid,bmid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
}

@ -0,0 +1,413 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynJobActivitiesUtil {
public void SynHrmJobActivitiesData(String dataResource,String mainid,String jobactivitiesWhere){
BaseBean bb = new BaseBean();
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
RecordSet rs = new RecordSet();
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<String> dataErrorList = new ArrayList<String>();
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
Map<String,Map<String,String>> E7ActivitiesMap = getE7HrmActivitiesList2(dataResource) ;
Map<String,String> E9GroupMap = getE9HrmGroupData();
List<String> E7GroupMap = getE7HrmGroupData(dataResource);
bb.writeLog("E7ActivitiesMap:"+E7ActivitiesMap.size()+"</br>");
bb.writeLog("E9GroupMap:"+E9GroupMap.size()+"</br>");
bb.writeLog("E7GroupMap:"+E7GroupMap.size()+"</br>");
List<Map<String,Object>> insertGroupList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateGroupList = new ArrayList<Map<String,Object>>();
String sql = " select * from hrmjobactivities where id in(select h.jobactivityid from hrmjobtitles h) " + jobactivitiesWhere;
rs.execute(sql);
while(rs.next()){
totle_count++;
String e9id = Util.null2String(rs.getString("id"));
String jobactivitymark = Util.null2String(rs.getString("jobactivitymark"));
String jobactivityname = Util.null2String(rs.getString("jobactivityname"));
String jobgroupid = Util.null2String(rs.getString("jobgroupid"));
String outkey = Util.null2String(rs.getString("outkey"));
Map<String,Object> groupMap = new HashMap<String,Object>();
groupMap.put("e9id",e9id);
groupMap.put("jobactivitymark",jobactivitymark);
groupMap.put("jobactivityname",jobactivityname);
String E9GroupOutkey = "";
if(StringUtils.isNotBlank(jobgroupid)){
if(E9GroupMap.containsKey(jobgroupid)){
E9GroupOutkey = E9GroupMap.get(jobgroupid);
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7GroupMap.contains(E9GroupOutkey)){
if(E7ActivitiesMap.containsKey(outkey)){
Map<String,String> activitiesMap = E7ActivitiesMap.get(outkey);
String e7jobactivitymark = Util.null2String(activitiesMap.get("e7jobactivitymark"));
String e7jobactivityname = Util.null2String(activitiesMap.get("e7jobactivityname"));
String e7jobgroupid = Util.null2String(activitiesMap.get("e7jobgroupid"));
if(!e7jobactivitymark.equals(jobactivitymark)
|| !e7jobactivityname.equals(jobactivityname)
|| !e7jobgroupid.equals(E9GroupOutkey)
){
groupMap.put("jobgroupid",E9GroupOutkey);
groupMap.put("e7id",outkey);
updateGroupList.add(groupMap);
}else{
unchanged_count++;
}
}else{
insertGroupList.add(groupMap);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
if(E7GroupMap.contains(E9GroupOutkey)){
insertGroupList.add(groupMap);
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}
}
bb.writeLog("updateGroupList:"+updateGroupList.size());
bb.writeLog("insertGroupList:"+insertGroupList.size());
for(Map<String,Object> item : insertGroupList)
{
String e9id = Util.null2String(item.get("e9id"));
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e9id".equals(key) && !"e7id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
boolean isTrue2 = false;
String insert_sql = " insert into hrmjobactivities("+keyString+") values("+valueString+")";
String newE7Id = insertE7Data(rsd,insert_sql,insert_fail_count);
bb.writeLog("newE7Id:"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
sql = "update hrmjobactivities set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(sql);
bb.writeLog("sql:"+sql+" "+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}
for(Map<String,Object> item : updateGroupList) {
String e7id = Util.null2String(item.get("e7id"));
String e9id = Util.null2String(item.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e9id".equals(key) && !"e7id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key + "='" + value + "'" : "," + key + "='" + value + "'";
}
}
String update_sql = "update hrmjobactivities set " + valuesStr + " where id = '" + e7id + "' ";
boolean isTrue = updateE7Data(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" "+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}
try{
String zztbjg = "职责共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("zztbjg",zztbjg);
if(dataErrorList.size() > 0){
if(dataErrorList.size()<=150){
String zzycsj = String.join(",", dataErrorList);
mainMap.put("zzycsj",zzycsj);
}else{
String zzycsj = String.join(",", dataErrorList.subList(0,150));
mainMap.put("zzycsj",zzycsj);
}
}
recordSynMainlog(mainid,mainMap);
bb.writeLog("mainid:"+mainid);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail4(mainid,sqlList);
}
}catch (Exception e){
bb.writeLog(e);
}
}
private List<String> getE7HrmActivitiesList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> groupList = new ArrayList<String>();
String sql = " select id from hrmjobactivities " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
groupList.add(id);
}
return groupList;
}
private List<String> getE7HrmGroupData(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> groupList = new ArrayList<String>();
String sql = " select id from hrmjobgroups " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
groupList.add(id);
}
return groupList;
}
/***
*
* @return
*/
private Map<String,String> getE9HrmGroupData(){
RecordSet rsd = new RecordSet();
Map<String,String> groupMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmjobgroups" ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String outkey = Util.null2String(rsd.getString("outkey"));
groupMap.put(id,outkey);
}
return groupMap;
}
private Map<String,Map<String,String>> getE7HrmActivitiesList2(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7ActivitiesMap = new HashMap<String,Map<String,String>>();
String sql =" select id,jobactivitymark,jobactivityname,jobgroupid \n" +
" from hrmjobactivities \n" ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String e7jobactivitymark = Util.null2String(rsd.getString("jobactivitymark"));
String e7jobactivityname = Util.null2String(rsd.getString("jobactivityname"));
String e7jobgroupid = Util.null2String(rsd.getString("jobgroupid"));
Map<String,String> activitiesMap = new HashMap<String,String>();
activitiesMap.put("e7jobactivitymark",e7jobactivitymark);
activitiesMap.put("e7jobactivityname",e7jobactivityname);
activitiesMap.put("e7jobgroupid",e7jobgroupid);
E7ActivitiesMap.put(id,activitiesMap);
}
return E7ActivitiesMap;
}
private String insertE7Data(RecordSetDataSource rsd,String insert_sql,int insert_fail_count){
String newE7Id = "";
BaseBean bb = new BaseBean();
bb.writeLog("insert-sql:"+insert_sql);
boolean isTrue = rsd.execute(insert_sql);
if(isTrue){
String sql = " select max(id) as id from hrmjobactivities ";
rsd.executeSql(sql);
if(rsd.next()){
newE7Id = Util.null2String(rsd.getString("id"));
}
}else{
insert_fail_count++;
}
return newE7Id;
}
private boolean updateE7Data(RecordSetDataSource rsd,String update_sql){
BaseBean bb = new BaseBean();
bb.writeLog("update-sql:"+update_sql);
boolean isTrue = rsd.execute(update_sql);
return isTrue;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail4(String mainid,List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt4(mainid,zzid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
}

@ -0,0 +1,308 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynJobGroupUtil {
public void SynHrmJobGroupData(String dataResource,String mainid,String jobgroupWhere){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
BaseBean bb = new BaseBean();
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
RecordSet rs = new RecordSet();
Map<String,Map<String,String>> E7GroupMap = getE7HrmGroupList2(dataResource);
List<Map<String,Object>> insertGroupList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateGroupList = new ArrayList<Map<String,Object>>();
String sql = " select id,jobgroupname,jobgroupremark,outkey from hrmjobgroups where 1=1 "+jobgroupWhere;
rs.execute(sql);
while(rs.next()){
totle_count++;
String e9id = Util.null2String(rs.getString("id"));
String jobgroupname = Util.null2String(rs.getString("jobgroupname"));
String jobgroupremark = Util.null2String(rs.getString("jobgroupremark"));
String outkey = Util.null2String(rs.getString("outkey"));
Map<String,Object> groupMap = new HashMap<String,Object>();
groupMap.put("e9id",e9id);
groupMap.put("jobgroupname",jobgroupname);
groupMap.put("jobgroupremark",jobgroupremark);
if(StringUtils.isNotBlank(outkey)){
if(E7GroupMap.containsKey(outkey)){
Map<String,String> e7Map = E7GroupMap.get(outkey);
String e7jobgroupname = e7Map.get("e7jobgroupname");
String e7jobgroupremark = e7Map.get("e7jobgroupremark");
if(!e7jobgroupname.equals(jobgroupname) || !e7jobgroupremark.equals(jobgroupremark)){
groupMap.put("e7id",outkey);
updateGroupList.add(groupMap);
}else{
unchanged_count++;
}
}else{
insertGroupList.add(groupMap);
}
}else{
insertGroupList.add(groupMap);
}
}
bb.writeLog("updateGroupList:"+updateGroupList.size());
bb.writeLog("insertGroupList:"+insertGroupList.size());
for(Map<String,Object> item : insertGroupList)
{
String e9id = Util.null2String(item.get("e9id"));
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
boolean isTrue2 = false;
String insert_sql = " insert into hrmjobgroups("+keyString+") values("+valueString+")";
String newE7Id = insertE7Data(rsd,insert_sql,insert_fail_count);
bb.writeLog("insert_sql:"+insert_sql+" , newE7Id"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
String up_sql = " update hrmjobgroups set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(up_sql);
bb.writeLog("up_sql:"+up_sql+" , isTrue2"+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}
for(Map<String,Object> item : updateGroupList) {
String e7id = Util.null2String(item.get("e7id"));
String e9id = Util.null2String(item.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key + "='" + value + "'" : "," + key + "='" + value + "'";
}
}
String update_sql = " update hrmjobgroups set " + valuesStr + " where id = '" + e7id + "' ";
boolean isTrue = updateE7Data(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" , isTrue:"+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("fbid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}
try{
String zwlxtbjg ="职务类型共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("zwlxtbjg",zwlxtbjg);
recordSynMainlog(mainid,mainMap);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail3(mainid,sqlList);
}
}catch (Exception e){
bb.writeLog(e);
}
}
private Map<String,Map<String,String>> getE7HrmGroupList2(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7GroupMap = new HashMap<String,Map<String,String>>();
String sql = " select id,jobgroupname,jobgroupremark from hrmjobgroups" ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String jobgroupname = Util.null2String(rsd.getString("jobgroupname"));
String jobgroupremark = Util.null2String(rsd.getString("jobgroupremark"));
Map<String,String> groupMap = new HashMap<String,String>();
groupMap.put("e7jobgroupname",jobgroupname);
groupMap.put("e7jobgroupremark",jobgroupremark);
E7GroupMap.put(id,groupMap);
}
return E7GroupMap;
}
private String insertE7Data(RecordSetDataSource rsd,String insert_sql,int insert_fail_count){
String newE7Id = "";
boolean isTrue = rsd.execute(insert_sql);
if(isTrue){
String sql = " select max(id) as id from hrmjobgroups ";
rsd.executeSql(sql);
if(rsd.next()){
newE7Id = Util.null2String(rsd.getString("id"));
}
}else{
insert_fail_count++;
}
return newE7Id;
}
private boolean updateE7Data(RecordSetDataSource rsd,String update_sql){
boolean isTrue = rsd.execute(update_sql);
return isTrue;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail3(String mainid, List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt3(mainid,zwlxid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
}

@ -0,0 +1,457 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynJobTitlesUtil {
public void SynHrmJobTitlesData(String dataResource,String mainid,String jobTitlesWhere){
BaseBean bb = new BaseBean();
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
RecordSet rs = new RecordSet();
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<String> dataErrorList = new ArrayList<String>();
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
List<Map<String,Object>> insertTitleList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateTitleList = new ArrayList<Map<String,Object>>();
Map<String,String> E9JobActivitiesMap = getE9HrmJobActivitiesList();
Map<String,String> E9DepartmentMap = getE9DepartmentOutkey();
List<String> E7HrmactivitiesList = getE7HrmActivitiesList(dataResource);
bb.writeLog("=====E9JobActivitiesMap:"+E9JobActivitiesMap.size()+"</br>");
bb.writeLog("=====E9DepartmentMap:"+E9DepartmentMap.size()+""+"</br>");
bb.writeLog("=====E7HrmactivitiesList:"+E7HrmactivitiesList.size()+""+"</br>");
Map<String,Map<String,String>> E7JobTitlesMap = getE7HrmTitlesList2(dataResource);
bb.writeLog("=====E7JobTitlesMap:"+E7JobTitlesMap.size()+""+"</br>");
String sql =" select t.id,t.jobtitlemark,t.jobtitlename,t.jobactivityid,t.jobdepartmentid,t.outkey,t.jobtitlecode \n" +
" from hrmjobtitles t\n" +
" where t.jobdepartmentid is not null "+jobTitlesWhere ;
bb.writeLog("==SynHrmJobTitlesData===sql:"+sql+""+"</br>");
rs.execute(sql);
while(rs.next()) {
totle_count++;
String e9id = Util.null2String(rs.getString("id"));
String jobtitlename = Util.null2String(rs.getString("jobtitlename")).trim();
String jobtitlemark = Util.null2String(rs.getString("jobtitlemark")).trim();
String jobactivityid = Util.null2String(rs.getString("jobactivityid"));
String jobdepartmentid = Util.null2String(rs.getString("jobdepartmentid"));
String outkey = Util.null2String(rs.getString("outkey"));
String jobtitlecode = Util.null2String(rs.getString("jobtitlecode"));
String departmentid = Util.null2String(rs.getString("jobtitlecode"));
Map<String,Object> E9Map = new HashMap<String,Object>();
E9Map.put("e9id", e9id);
E9Map.put("jobtitlename", jobtitlename);
E9Map.put("jobtitlemark", jobtitlemark);
E9Map.put("jobtitlecode", jobtitlecode);
String jobactivityOutkey = "";
if(StringUtils.isNotBlank(jobactivityid)){
if(E9JobActivitiesMap.containsKey(jobactivityid)){
jobactivityOutkey = E9JobActivitiesMap.get(jobactivityid);
}
}
String departmentOutkey = "";
if(StringUtils.isNotBlank(jobdepartmentid)){
if(E9DepartmentMap.containsKey(jobdepartmentid)){
departmentOutkey = E9DepartmentMap.get(jobdepartmentid);
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7JobTitlesMap.containsKey(outkey)){
if(StringUtils.isNotBlank(jobactivityOutkey) && E7HrmactivitiesList.contains(jobactivityOutkey)){
Map<String,String> jobTitlesMap = E7JobTitlesMap.get(outkey);
String e7jobtitlemark = Util.null2String(jobTitlesMap.get("e7jobtitlemark")).trim();
String e7jobtitlename = Util.null2String(jobTitlesMap.get("e7jobtitlename")).trim();
String e7jobactivityid = Util.null2String(jobTitlesMap.get("e7jobactivityid")).trim();
String e7jobdepartmentid = Util.null2String(jobTitlesMap.get("e7jobdepartmentid")).trim();
String e7jobtitlecode = Util.null2String(jobTitlesMap.get("e7jobtitlecode")).trim();
if(!e7jobtitlemark.equals(jobtitlemark)
|| !e7jobtitlename.equals(jobtitlename)
|| !e7jobactivityid.equals(jobactivityOutkey)
|| !e7jobdepartmentid.equals(departmentOutkey)
|| !e7jobtitlecode.equals(jobtitlecode)
){
E9Map.put("e7id", outkey);
E9Map.put("jobdepartmentid", departmentOutkey);
E9Map.put("jobactivityid", jobactivityOutkey);
updateTitleList.add(E9Map);
}else{
unchanged_count++;
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
if(StringUtils.isNotBlank(jobactivityOutkey) && E7HrmactivitiesList.contains(jobactivityOutkey)){
E9Map.put("jobdepartmentid", departmentOutkey);
E9Map.put("jobactivityid", jobactivityOutkey);
insertTitleList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}
}else{
if(StringUtils.isNotBlank(jobactivityOutkey) && E7HrmactivitiesList.contains(jobactivityOutkey)){
E9Map.put("jobdepartmentid", departmentOutkey);
E9Map.put("jobactivityid", jobactivityOutkey);
insertTitleList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}
}
bb.writeLog("updateTitleList:"+updateTitleList.size());
bb.writeLog("insertTitleList:"+insertTitleList.size());
for(Map<String,Object> item : insertTitleList)
{
String e9id = Util.null2String(item.get("e9id"));
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
boolean isTrue2 = false;
String insert_sql = " insert into hrmjobtitles("+keyString+") values("+valueString+")";
bb.writeLog("insert_sql:"+insert_sql+"</br>");
String newE7Id = insertE7Data(rsd,insert_sql,insert_fail_count);
bb.writeLog("newE7Id:"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
sql = "update hrmjobtitles set outkey= '"+newE7Id+"' where id = "+e9id;
isTrue2 = rs.executeUpdate(sql);
bb.writeLog("sql:"+sql+" "+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}
for(Map<String,Object> item : updateTitleList) {
String e7id = Util.null2String(item.get("e7id"));
String e9id = Util.null2String(item.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key + "='" + value + "'" : "," + key + "='" + value + "'";
}
}
String update_sql = " update hrmjobtitles set "+valuesStr+" where id = '"+e7id+"' ";
boolean isTrue = updateE7SubcompanyData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" "+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",sql);
sqlMap.put("dataid",update_sql);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}
try{
String gwtbjg = "岗位共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("gwtbjg",gwtbjg);
if(dataErrorList.size() > 0 ){
if(dataErrorList.size() <= 150){
String gwycsj = String.join(",", dataErrorList);
mainMap.put("gwycsj",gwycsj);
}else{
String gwycsj = String.join(",", dataErrorList.subList(0,150));
mainMap.put("gwycsj",gwycsj);
}
}
recordSynMainlog(mainid,mainMap);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail5(mainid,sqlList);
}
}catch (Exception e){
}
}
private Map<String,String> getE9DepartmentOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmdepartment " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
/***
*
* @return
*/
private List<String> getE7HrmActivitiesList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7HrmactivitiesList = new ArrayList<String>();
String sql = " select id from hrmjobactivities " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7HrmactivitiesList.add(id);
}
return E7HrmactivitiesList;
}
private List<String> getE7HrmTitlesList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7JobtitlesList = new ArrayList<String>();
String sql = " select id from hrmjobactivities " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7JobtitlesList.add(id);
}
return E7JobtitlesList;
}
private Map<String,String> getE9HrmJobActivitiesList(){
RecordSet rs = new RecordSet();
Map<String,String> E7JobtitlesMap = new HashMap<String,String>();
String sql =" select id,outkey from hrmjobactivities where id in(select jobactivityid from hrmjobtitles) ";
rs.execute(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
E7JobtitlesMap.put(id,outkey);
}
return E7JobtitlesMap;
}
private Map<String,Map<String,String>> getE7HrmTitlesList2(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7JobtitlesMap = new HashMap<String,Map<String,String>>();
String sql = " select id,jobtitlemark,jobtitlename,jobactivityid,jobdepartmentid,jobtitlecode from hrmjobtitles " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String e7jobtitlemark = Util.null2String(rsd.getString("jobtitlemark"));
String e7jobtitlename = Util.null2String(rsd.getString("jobtitlename"));
String e7jobactivityid = Util.null2String(rsd.getString("jobactivityid"));
String e7jobdepartmentid = Util.null2String(rsd.getString("jobdepartmentid"));
String e7jobtitlecode = Util.null2String(rsd.getString("jobtitlecode"));
Map<String,String> jobtitlesMap = new HashMap<String,String>();
jobtitlesMap.put("e7jobtitlemark",e7jobtitlemark);
jobtitlesMap.put("e7jobtitlename",e7jobtitlename);
jobtitlesMap.put("e7jobactivityid",e7jobactivityid);
jobtitlesMap.put("e7jobdepartmentid",e7jobdepartmentid);
jobtitlesMap.put("e7jobtitlecode",e7jobtitlecode);
E7JobtitlesMap.put(id,jobtitlesMap);
}
return E7JobtitlesMap;
}
private String insertE7Data(RecordSetDataSource rsd,String insert_sql,int insert_fail_count){
String newE7Id = "";
BaseBean bb = new BaseBean();
bb.writeLog("insert-sql:"+insert_sql);
boolean isTrue = rsd.execute(insert_sql);
if(isTrue){
String sql = " select max(id) as id from hrmjobtitles ";
rsd.executeSql(sql);
if(rsd.next()){
newE7Id = Util.null2String(rsd.getString("id"));
}
}else{
insert_fail_count++;
}
return newE7Id;
}
private boolean updateE7SubcompanyData(RecordSetDataSource rsd,String update_sql){
BaseBean bb = new BaseBean();
bb.writeLog("update-sql:"+update_sql);
boolean isTrue = rsd.execute(update_sql);
return isTrue;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail5(String mainid,List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt5(mainid,gwid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
}

@ -0,0 +1,770 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import org.bouncycastle.cert.dane.DANEException;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynResourceUtil {
public void SynHrmresourceData(String dataResource,String mainid,String hrmresourceWhere){
BaseBean bb = new BaseBean();
bb.writeLog("SynHrmresourceData");
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
int modifier = 1;
int creater = 1;
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<String> dataErrorList = new ArrayList<String>();
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
RecordSet rs = new RecordSet();
List<Map<String,Object>> insertResourceList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateResourceList = new ArrayList<Map<String,Object>>();
Map<String,String> E9ResourceMap = getE9ResourceOutkey();
Map<String,String> E9DepartmentMap = getE9DepartmentOutkey();
Map<String,String> E9SubcompanyMap = getE9SubcompanyOutkey();
Map<String,String> E9JobtitleMap = getE9HrmJobTitlesOutkey();
List<String> E7DepartmentList = getE7HrmDepartmentList(dataResource);
List<String> E7SubcompanyList = getE7HrmSubcompanyList(dataResource);
List<String> E7JobTitleList = getE7HrmJobTitlesList(dataResource);
Map<String,Map<String,String>> E7ResourceMap = getE7HrmResourceMap(dataResource);
String sql =" select id,workcode,status,dsporder,mobile,jobtitle,password,lastname,loginid,systemlanguage," +
" sex,birthday,lastmoddate,createdate,jobactivitydesc,departmentid," +
" subcompanyid1,seclevel,accounttype,belongto,managerid,outkey,telephone,email,startdate,enddate " +
" from hrmresource where 1=1 " + hrmresourceWhere+
" connect by prior id = managerid \n" +
" start with managerid is null";
rs.executeQuery(sql);
while(rs.next()) {
totle_count++;
// String managerstr = Util.null2String(rs.getString("managerstr")).trim();
// String locationid = Util.null2String(rs.getString("locationid")).trim();
String e9id = Util.null2String(rs.getString("id"));
String loginid = Util.null2String(rs.getString("loginid")).trim();
String password = Util.null2String(rs.getString("password")).trim();
String lastname = Util.null2String(rs.getString("lastname")).trim();
String sex = Util.null2String(rs.getString("sex")).trim();
String birthday = Util.null2String(rs.getString("birthday")).trim();
String systemlanguage = Util.null2String(rs.getString("systemlanguage")).trim();
String telephone = Util.null2String(rs.getString("telephone")).trim();
String mobile = Util.null2String(rs.getString("mobile")).trim();
String email = Util.null2String(rs.getString("email")).trim();
String jobtitle = Util.null2String(rs.getString("jobtitle")).trim();
String seclevel = Util.null2String(rs.getString("seclevel")).trim();
String departmentid = Util.null2String(rs.getString("departmentid")).trim();
String subcompanyid1 = Util.null2String(rs.getString("subcompanyid1")).trim();
String managerid = Util.null2String(rs.getString("managerid")).trim();
String dsporder = Util.null2String(rs.getString("dsporder")).trim();
String workcode = Util.null2String(rs.getString("workcode")).trim();
String status = Util.null2String(rs.getString("status")).trim();
String lastmoddate = Util.null2String(rs.getString("lastmoddate")).trim();
String createdate = Util.null2String(rs.getString("createdate")).trim();
String jobactivitydesc = Util.null2String(rs.getString("jobactivitydesc")).trim();
String accounttype = Util.null2String(rs.getString("accounttype")).trim();
String belongto = Util.null2String(rs.getString("belongto")).trim();
String outkey = Util.null2String(rs.getString("outkey")).trim();
String startdate = Util.null2String(rs.getString("startdate")).trim();
String enddate = Util.null2String(rs.getString("enddate")).trim();
if(StringUtils.isBlank(systemlanguage)){
systemlanguage = "7";
}
if("-1".equals(accounttype) || StringUtils.isBlank(accounttype)){
accounttype = "0";
}
if("-1".equals(belongto) || "0".equals(belongto)){
belongto = "";
}
if("0".equals(managerid) || "-1".equals(managerid)){
managerid = "";
}
Map<String,Object> ResourceMap = new HashMap<String,Object>();
ResourceMap.put("e9id", e9id);
ResourceMap.put("workcode", workcode);
ResourceMap.put("status", status);
ResourceMap.put("dsporder", dsporder);
ResourceMap.put("mobile", mobile);
ResourceMap.put("password", password);
ResourceMap.put("lastname", lastname);
ResourceMap.put("loginid", loginid);
ResourceMap.put("systemlanguage", systemlanguage);
ResourceMap.put("sex", sex);
ResourceMap.put("birthday", birthday);
ResourceMap.put("lastmoddate", lastmoddate);
ResourceMap.put("createdate", createdate);
ResourceMap.put("jobactivitydesc", jobactivitydesc);
ResourceMap.put("seclevel", seclevel);
ResourceMap.put("accounttype", accounttype);
ResourceMap.put("email", email);
ResourceMap.put("enddate", enddate);
ResourceMap.put("telephone", telephone);
ResourceMap.put("startdate", startdate);
String managerOutkey = "";
if(StringUtils.isNotBlank(managerid)){
if(E9ResourceMap.containsKey(managerid)){
managerOutkey = E9ResourceMap.get(managerid);
}
}
String belongtoOutkey = "";
if(StringUtils.isNotBlank(belongto)){
if(E9ResourceMap.containsKey(belongto)){
belongtoOutkey = E9ResourceMap.get(belongto);
}
}
String departmentOutkey = "";
if(StringUtils.isNotBlank(departmentid+"")){
if(E9DepartmentMap.containsKey(departmentid)){
departmentOutkey = E9DepartmentMap.get(departmentid);
}
}
String subcompanyOutkey = "";
if(StringUtils.isNotBlank(subcompanyid1)){
if(E9SubcompanyMap.containsKey(subcompanyid1)){
subcompanyOutkey = E9SubcompanyMap.get(subcompanyid1);
}
}
String jobtitleOutkey = "";
if(StringUtils.isNotBlank(jobtitle)){
if(E9JobtitleMap.containsKey(jobtitle)){
jobtitleOutkey = E9JobtitleMap.get(jobtitle);
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7ResourceMap.containsKey(outkey)){
if(StringUtils.isNotBlank(departmentOutkey) && E7DepartmentList.contains(departmentOutkey)){
if(StringUtils.isNotBlank(subcompanyOutkey) && E7SubcompanyList.contains(subcompanyOutkey)){
if(StringUtils.isNotBlank(jobtitleOutkey) && E7JobTitleList.contains(jobtitleOutkey)){
Map<String,String> resourceMap = E7ResourceMap.get(outkey);
String e7lastname = Util.null2String(resourceMap.get("e7lastname"));
String e7loginid = Util.null2String(resourceMap.get("e7loginid"));
String e7password = Util.null2String(resourceMap.get("e7password"));
String e7sex = Util.null2String(resourceMap.get("e7sex"));
String e7birthday = Util.null2String(resourceMap.get("e7birthday"));
String e7mobile = Util.null2String(resourceMap.get("e7mobile"));
String e7jobtitle = Util.null2String(resourceMap.get("e7jobtitle"));
String e7departmentid = Util.null2String(resourceMap.get("e7departmentid"));
String e7subcompanyid1 = Util.null2String(resourceMap.get("e7subcompanyid1"));
String e7seclevel = Util.null2String(resourceMap.get("e7seclevel"));
String e7workcode = Util.null2String(resourceMap.get("e7workcode"));
String e7status = Util.null2String(resourceMap.get("e7status"));
String e7dsporder = Util.null2String(resourceMap.get("e7dsporder"));
String e7systemlanguage = Util.null2String(resourceMap.get("e7systemlanguage"));
String e7accounttype = Util.null2String(resourceMap.get("e7accounttype"));
String e7belongto = Util.null2String(resourceMap.get("e7belongto"));
String e7managerid = Util.null2String(resourceMap.get("e7managerid"));
String e7email = Util.null2String(resourceMap.get("e7email"));
String e7jobactivitydesc = Util.null2String(resourceMap.get("e7jobactivitydesc"));
String e7startdate = Util.null2String(resourceMap.get("e7startdate"));
String e7enddate = Util.null2String(resourceMap.get("e7enddate"));
String e7telephone = Util.null2String(resourceMap.get("e7telephone")).trim();
String e7lastmoddate = Util.null2String(resourceMap.get("e7lastmoddate")).trim();
String e7createdate = Util.null2String(resourceMap.get("e7createdate")).trim();
if(!e7lastname.equals(lastname)
|| !e7loginid.equals(loginid)
|| !e7sex.equals(sex)
|| !e7password.equals(password)
|| !e7birthday.equals(birthday)
|| !e7mobile.equals(mobile)
|| !e7jobtitle.equals(jobtitleOutkey)
|| !e7departmentid.equals(departmentOutkey)
|| !e7subcompanyid1.equals(subcompanyOutkey)
|| !e7seclevel.equals(seclevel)
|| !e7workcode.equals(workcode)
|| !e7status.equals(status)
|| !e7dsporder.equals(dsporder)
|| !e7systemlanguage.equals(systemlanguage)
|| !e7accounttype.equals(accounttype)
|| !e7belongto.equals(belongtoOutkey)
|| !e7managerid.equals(managerOutkey)
|| !e7email.equals(email)
|| !e7jobactivitydesc.equals(jobactivitydesc)
|| !e7startdate.equals(startdate)
|| !e7enddate.equals(enddate)
|| !e7telephone.equals(telephone)
|| !e7lastmoddate.equals(lastmoddate)
|| !e7createdate.equals(createdate)
){
ResourceMap.put("e7id", outkey);
ResourceMap.put("jobtitle", jobtitleOutkey);
ResourceMap.put("belongto", belongtoOutkey);
ResourceMap.put("managerid", managerOutkey);
ResourceMap.put("departmentid", departmentOutkey);
ResourceMap.put("subcompanyid1", subcompanyOutkey);
updateResourceList.add(ResourceMap);
}else{
unchanged_count++;
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
if(StringUtils.isNotBlank(departmentOutkey) && E7DepartmentList.contains(departmentOutkey)){
if(StringUtils.isNotBlank(subcompanyOutkey) && E7SubcompanyList.contains(subcompanyOutkey)){
if(StringUtils.isNotBlank(jobtitleOutkey) && E7JobTitleList.contains(jobtitleOutkey)){
ResourceMap.put("jobtitle", jobtitleOutkey);
ResourceMap.put("belongto", belongtoOutkey);
ResourceMap.put("managerid", managerOutkey);
ResourceMap.put("departmentid", departmentOutkey);
ResourceMap.put("subcompanyid1", subcompanyOutkey);
insertResourceList.add(ResourceMap);
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}
}else{
if(StringUtils.isNotBlank(departmentOutkey) && E7DepartmentList.contains(departmentOutkey)){
if(StringUtils.isNotBlank(subcompanyOutkey) && E7SubcompanyList.contains(subcompanyOutkey)){
if(StringUtils.isNotBlank(jobtitleOutkey) && E7JobTitleList.contains(jobtitleOutkey)){
ResourceMap.put("jobtitle", jobtitleOutkey);
ResourceMap.put("belongto", belongtoOutkey);
ResourceMap.put("managerid", managerOutkey);
ResourceMap.put("departmentid", departmentOutkey);
ResourceMap.put("subcompanyid1", subcompanyOutkey);
insertResourceList.add(ResourceMap);
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}else{
data_error_count++;
dataErrorList.add(e9id);
}
}
}
bb.writeLog("insertResourceList:"+insertResourceList.size()+"</br>");
bb.writeLog("updateResourceList:"+updateResourceList.size()+"</br>");
for(int i=0;i<insertResourceList.size();i++) {
int e7newid = getE7HrmResourceId(rsd);
bb.writeLog("e7newid:"+e7newid+"</br>");
if(e7newid > -1){
Map<String, Object> item = insertResourceList.get(i);
String e9id = Util.null2String(item.get("e9id"));
String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();
item.put("lastmodid", modifier);
item.put("createrid", creater);
item.put("textfield1", uuid);
item.put("id", e7newid);
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
boolean isTrue2 = false;
String insert_sql = " insert into hrmresource("+keyString+") values("+valueString+")";
boolean isTrue = insertE7HrmResourceData(rsd,insert_sql,uuid,insert_fail_count);
bb.writeLog("insert_sql:"+insert_sql+" newE7Id:"+e7newid+ ",isTrue:"+isTrue+"</br>");
if(isTrue){
String up_sql = " update hrmresource set outkey="+e7newid+" where id = "+e9id;
isTrue2 = rs.executeUpdate(up_sql);
bb.writeLog("up_sql:"+up_sql+" isTrue2:"+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}
}
for(int i=0;i<updateResourceList.size();i++) {
Map<String, Object> item = updateResourceList.get(i);
String e7id = Util.null2String(item.get("e7id"));
String e9id = Util.null2String(item.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = item.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
}
String update_sql = "update hrmresource set " + valuesStr + " where id = "+e7id+"";
boolean isTrue = updateE7HrmResourceData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" isTrue:"+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}
try{
String rytbjg = "人员共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("rytbjg",rytbjg);
if(dataErrorList.size() > 0){
if(dataErrorList.size() <= 150){
String ryycsj = String.join(",", dataErrorList);
mainMap.put("ryycsj",ryycsj);
}else{
String ryycsj = String.join(",", dataErrorList.subList(0,150));
mainMap.put("ryycsj",ryycsj);
}
}
recordSynMainlog(mainid,mainMap);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail6(mainid,sqlList);
}
}catch (Exception e){
}
}
private Map<String,String> getE9SubcompanyOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmsubcompany " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
private Map<String,String> getE9DepartmentOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmdepartment " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
private Map<String,String> getE9ResourceOutkey(){
Map<String,String> E9ResourceMap = new HashMap<String,String>();
RecordSet rs = new RecordSet();
String sql =" select id,outkey from hrmresource ";
rs.executeQuery(sql);
while(rs.next()) {
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
E9ResourceMap.put(id,outkey);
}
return E9ResourceMap;
}
private Map<String,String> getE9HrmJobTitlesOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> E9JobtitleMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmjobtitles " ;
rs.execute(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
E9JobtitleMap.put(id,outkey);
}
return E9JobtitleMap;
}
private List<String> getE7HrmJobTitlesList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7JobtitlesList = new ArrayList<String>();
String sql = " select id from hrmjobtitles " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7JobtitlesList.add(id);
}
return E7JobtitlesList;
}
private List<String> getE7HrmDepartmentList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7DepartmentList = new ArrayList<String>();
String sql = " select id from hrmdepartment " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7DepartmentList.add(id);
}
return E7DepartmentList;
}
private List<String> getE7HrmSubcompanyList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7SubcompanyList = new ArrayList<String>();
String sql = " select id from hrmsubcompany " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7SubcompanyList.add(id);
}
return E7SubcompanyList;
}
private List<String> getE7HrmResourceList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7ResourceList = new ArrayList<String>();
String sql = " select id from hrmresource " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7ResourceList.add(id);
}
return E7ResourceList;
}
private Map<String,Map<String,String>> getE7HrmResourceMap(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7ResourceMap = new HashMap<String,Map<String,String>>();
String sql =" select id,workcode,status,dsporder,mobile,jobtitle,password,lastname,loginid,systemlanguage," +
" sex,birthday,lastmoddate,createdate,jobactivitydesc,departmentid," +
" subcompanyid1,seclevel,accounttype,belongto,managerid,telephone,email,enddate,startdate " +
" from hrmresource " ;
rsd.execute(sql);
while (rsd.next()){
String e7id = Util.null2String(rsd.getString("id")).trim();
String e7workcode = Util.null2String(rsd.getString("workcode")).trim();
String e7status = Util.null2String(rsd.getString("status")).trim();
String e7dsporder = Util.null2String(rsd.getString("dsporder")).trim();
String e7mobile = Util.null2String(rsd.getString("mobile")).trim();
String e7jobtitle = Util.null2String(rsd.getString("jobtitle")).trim();
String e7password = Util.null2String(rsd.getString("password")).trim();
String e7lastname = Util.null2String(rsd.getString("lastname")).trim();
String e7loginid = Util.null2String(rsd.getString("loginid")).trim();
String e7systemlanguage = Util.null2String(rsd.getString("systemlanguage")).trim();
String e7sex = Util.null2String(rsd.getString("sex")).trim();
String e7birthday = Util.null2String(rsd.getString("birthday")).trim();
String e7lastmoddate = Util.null2String(rsd.getString("lastmoddate")).trim();
String e7createdate = Util.null2String(rsd.getString("createdate")).trim();
String e7jobactivitydesc = Util.null2String(rsd.getString("jobactivitydesc")).trim();
String e7departmentid = Util.null2String(rsd.getString("departmentid")).trim();
String e7subcompanyid1 = Util.null2String(rsd.getString("subcompanyid1")).trim();
String e7seclevel = Util.null2String(rsd.getString("seclevel")).trim();
String e7accounttype = Util.null2String(rsd.getString("accounttype")).trim();
String e7belongto = Util.null2String(rsd.getString("belongto")).trim();
String e7managerid = Util.null2String(rsd.getString("managerid")).trim();
String e7telephone = Util.null2String(rsd.getString("telephone")).trim();
String e7email = Util.null2String(rsd.getString("email")).trim();
String e7startdate = Util.null2String(rsd.getString("startdate")).trim();
String e7enddate = Util.null2String(rsd.getString("enddate")).trim();
if(StringUtils.isBlank(e7systemlanguage)){
e7systemlanguage = "7";
}
if("-1".equals(e7accounttype) || StringUtils.isBlank(e7accounttype)){
e7accounttype = "0";
}
if("-1".equals(e7belongto) || "0".equals(e7belongto)){
e7belongto = "";
}
if("0".equals(e7managerid)){
e7managerid = "";
}
Map<String,String> resourceMap = new HashMap<String,String>();
resourceMap.put("e7lastname",e7lastname);
resourceMap.put("e7loginid",e7loginid);
resourceMap.put("e7password",e7password);
resourceMap.put("e7sex",e7sex);
resourceMap.put("e7birthday",e7birthday);
resourceMap.put("e7mobile",e7mobile);
resourceMap.put("e7jobtitle",e7jobtitle);
resourceMap.put("e7departmentid",e7departmentid);
resourceMap.put("e7subcompanyid1",e7subcompanyid1);
resourceMap.put("e7seclevel",e7seclevel);
resourceMap.put("e7workcode",e7workcode);
resourceMap.put("e7status",e7status);
resourceMap.put("e7dsporder",e7dsporder);
resourceMap.put("e7systemlanguage",e7systemlanguage);
resourceMap.put("e7accounttype",e7accounttype);
resourceMap.put("e7belongto",e7belongto);
resourceMap.put("e7managerid",e7managerid);
resourceMap.put("e7telephone",e7telephone);
resourceMap.put("e7email",e7email);
resourceMap.put("e7lastmoddate",e7lastmoddate);
resourceMap.put("e7createdate",e7createdate);
resourceMap.put("e7jobactivitydesc",e7jobactivitydesc);
resourceMap.put("e7startdate",e7startdate);
resourceMap.put("e7enddate",e7enddate);
E7ResourceMap.put(e7id,resourceMap);
}
return E7ResourceMap;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail6(String mainid,List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt6(mainid,ryid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
private boolean insertE7HrmResourceData(RecordSetDataSource rsd,String insert_sql,String uuid,int insert_fail_count){
boolean isTrue = false;
BaseBean bb = new BaseBean();
try{
isTrue = rsd.execute(insert_sql);
if(!isTrue){
insert_fail_count++;
}
}catch (Exception e){
bb.writeLog(e);
}
return isTrue;
}
private boolean updateE7HrmResourceData(RecordSetDataSource rsd,String update_sql){
BaseBean bb = new BaseBean();
boolean isTrue = false;
try{
isTrue = rsd.execute(update_sql);
}catch (Exception e){
bb.writeLog(e);
}
return isTrue;
}
private int getE7HrmResourceId(RecordSetDataSource rsd){
int id = -1;
BaseBean bb = new BaseBean();
try{
String sql = " update SequenceIndex set currentid = (select currentid from SequenceIndex where indexdesc='resourceid'\n" +
" )+1 where indexdesc='resourceid' ";
boolean isTrue = rsd.executeSql(sql);
if(isTrue){
sql = " select currentid from SequenceIndex where indexdesc='resourceid' ";
rsd.execute(sql);
if(rsd.next()){
id = Util.getIntValue(Util.null2String(rsd.getString("currentid")));
}
}
}catch (Exception e){
bb.writeLog(e);
}
return id;
}
}

@ -0,0 +1,647 @@
package weaver.interfaces.zjrb.job;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetDataSource;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.text.SimpleDateFormat;
import java.util.*;
public class HrmSynSubcompanyUtil {
public String SynHrmSubcompanyData(String dataResource,String subcompanyWhere){
BaseBean bb = new BaseBean();
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
RecordSet rs = new RecordSet();
int totle_count = 0;
int update_success_count = 0;
int update_fail_count = 0;
int update_exp_count = 0;
int insert_success_count = 0;
int insert_fail_count = 0;
int insert_exp_count = 0;
int unchanged_count = 0;
int data_error_count = 0;
List<String> dataErrorList = new ArrayList<String>();
List<Map<String,String>> sqlList = new ArrayList<Map<String,String>>();
Map<String,String> E9SubcompanyOutkey = getE9SubcompanyOutkey();
Map<String,Map<String,String>> E7SubcompanyMap = getE7HrmSubcompanyList2(dataResource);
bb.writeLog("E9SubcompanyOutkey:"+E9SubcompanyOutkey.size());
bb.writeLog("E7SubcompanyMap:"+E7SubcompanyMap.size());
List<Map<String,Object>> topInsertList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> topUpdateList = new ArrayList<Map<String,Object>>();
List<String> topList = new ArrayList<>();
String sql =" select id,subcompanyname,subcompanydesc,supsubcomid,canceled,subcompanycode,outkey,showorder,tlevel " +
" from hrmsubcompany \n" +
" where (supsubcomid is null or supsubcomid = -1 or supsubcomid = 0) \n" ;
rs.execute(sql);
while(rs.next()) {
totle_count++;
String e9Id = Util.null2String(rs.getString("id"));
topList.add(e9Id);
String subcompanyname = Util.null2String(rs.getString("subcompanyname"));
String subcompanydesc = Util.null2String(rs.getString("subcompanydesc"));
String canceled = Util.null2String(rs.getString("canceled"));
String subcompanycode = Util.null2String(rs.getString("subcompanycode"));
String supsubcomid = Util.null2String(rs.getString("supsubcomid")).trim();
String showorder = Util.null2String(rs.getString("showorder"));
String tlevel = Util.null2String(rs.getString("tlevel")).trim();
String outkey = Util.null2String(rs.getString("outkey")); //E7的hrmsubcompany的ID
Map<String,Object> E9Map = new HashMap<String, Object>();
E9Map.put("e9id", e9Id);
E9Map.put("subcompanyname", subcompanyname);
E9Map.put("subcompanydesc", subcompanydesc);
E9Map.put("canceled", canceled);
E9Map.put("showorder", showorder);
E9Map.put("subcompanycode", subcompanycode);
E9Map.put("tlevel", tlevel);
String supsubcomOutKey = "" ;
if("0".equals(supsubcomid) || "-1".equals(supsubcomid) || StringUtils.isBlank(supsubcomid+"")){
supsubcomOutKey = "0";
}else{
if(E9SubcompanyOutkey.containsKey(supsubcomid)){
supsubcomOutKey = E9SubcompanyOutkey.get(supsubcomid);
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7SubcompanyMap.containsKey(outkey)){
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
Map<String,String> E7SubcompanyInfo = E7SubcompanyMap.get(outkey);
String e7subcompanyname = Util.null2String(E7SubcompanyInfo.get("subcompanyname"));
String e7subcompanydesc = Util.null2String(E7SubcompanyInfo.get("subcompanydesc"));
String e7supsubcomid = Util.null2String(E7SubcompanyInfo.get("supsubcomid"));
String e7canceled = Util.null2String(E7SubcompanyInfo.get("canceled"));
String e7subcompanycode = Util.null2String(E7SubcompanyInfo.get("subcompanycode"));
String e7tlevel = Util.null2String(E7SubcompanyInfo.get("tlevel"));
String e7showorder = Util.null2String(E7SubcompanyInfo.get("showorder"));
if(!e7subcompanyname.equals(subcompanyname)
|| !e7subcompanydesc.equals(subcompanydesc)
|| !e7supsubcomid.equals(supsubcomOutKey)
|| !e7canceled.equals(canceled)
|| !e7subcompanycode.equals(subcompanycode)
|| !e7tlevel.equals(tlevel)
|| !e7showorder.equals(showorder)
){
E9Map.put("supsubcomid", supsubcomOutKey);
E9Map.put("e7id", outkey);
topUpdateList.add(E9Map);
}else{
unchanged_count++;
}
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}else{
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
E9Map.put("supsubcomid", supsubcomOutKey);
topInsertList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}
}else{
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
E9Map.put("supsubcomid", supsubcomOutKey);
topInsertList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}
}
bb.writeLog("topUpdateList:"+topUpdateList.size());
bb.writeLog("topInsertList:"+topInsertList.size());
for(Map<String,Object> E9Map : topInsertList){
String e9id = Util.null2String(E9Map.get("e9id"));
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
E9Map.put("url",uuid);
E9Map.put("companyid",1);//默认公司是1
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e7id".equals(key) && !"e9id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
try {
boolean isTrue2 = false;
String insert_sql = " insert into hrmsubcompany("+keyString+") values("+valueString+")";
bb.writeLog("insert_sql:"+insert_sql+"</br>");
String newE7Id = insertE7Data(rsd,insert_sql,uuid,insert_fail_count);
bb.writeLog("newE7Id:"+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
sql = "update hrmsubcompany set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(sql);
bb.writeLog("sql:"+sql+" "+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
bb.writeLog("e:"+e);
insert_exp_count++;
}
}
for(Map<String,Object> E9Map : topUpdateList){
String e7id = Util.null2String(E9Map.get("e7id"));
String e9id = Util.null2String(E9Map.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
}
try{
String update_sql = " update hrmsubcompany set "+valuesStr+" where id = '"+e7id+"' ";
boolean isTrue = updateE7SubcompanyData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" "+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",sql);
sqlMap.put("dataid",update_sql);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
bb.writeLog("e:"+e);
update_exp_count++;
}
}
List<Map<String,Object>> insertList = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> updateList = new ArrayList<Map<String,Object>>();
for(String subcompanyid : topList){
if(StringUtils.isNotBlank(subcompanyid)){
sql = " select id,subcompanyname,subcompanydesc,supsubcomid,showorder,\n" +
" canceled,subcompanycode,outkey,tlevel from hrmsubcompany \n" +
" where 1=1 " + subcompanyWhere +
" connect by prior id = supsubcomid \n" +
" start with supsubcomid = "+subcompanyid;
rs.executeQuery(sql);
while (rs.next()){
totle_count++;
String e9Id = Util.null2String(rs.getString("id"));
String subcompanyname = Util.null2String(rs.getString("subcompanyname"));
String subcompanydesc = Util.null2String(rs.getString("subcompanydesc"));
String canceled = Util.null2String(rs.getString("canceled"));
String subcompanycode = Util.null2String(rs.getString("subcompanycode"));
String supsubcomid = Util.null2String(rs.getString("supsubcomid")).trim();
String showorder = Util.null2String(rs.getString("showorder")).trim();
String outkey = Util.null2String(rs.getString("outkey")); //E7的hrmsubcompany的ID
String tlevel = Util.null2String(rs.getString("tlevel"));
Map<String,Object> E9Map = new HashMap<String, Object>();
E9Map.put("e9id", e9Id);
E9Map.put("subcompanyname", subcompanyname);
E9Map.put("subcompanydesc", subcompanydesc);
E9Map.put("canceled", canceled);
E9Map.put("showorder", showorder);
E9Map.put("subcompanycode", subcompanycode);
E9Map.put("tlevel", tlevel);
String supsubcomOutKey = "" ;
if("0".equals(supsubcomid) || "-1".equals(supsubcomid) || StringUtils.isBlank(supsubcomid+"")){
supsubcomOutKey = "0";
}else{
if(E9SubcompanyOutkey.containsKey(supsubcomid)){
supsubcomOutKey = E9SubcompanyOutkey.get(supsubcomid);
}
}
if(StringUtils.isNotBlank(outkey)){
if(E7SubcompanyMap.containsKey(outkey)){
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
Map<String,String> E7SubcompanyInfo = E7SubcompanyMap.get(outkey);
String e7subcompanyname = Util.null2String(E7SubcompanyInfo.get("subcompanyname"));
String e7subcompanydesc = Util.null2String(E7SubcompanyInfo.get("subcompanydesc"));
String e7supsubcomid = Util.null2String(E7SubcompanyInfo.get("supsubcomid"));
String e7canceled = Util.null2String(E7SubcompanyInfo.get("canceled"));
String e7subcompanycode = Util.null2String(E7SubcompanyInfo.get("subcompanycode"));
String e7tlevel = Util.null2String(E7SubcompanyInfo.get("tlevel"));
String e7showorder = Util.null2String(E7SubcompanyInfo.get("showorder"));
if(!e7subcompanyname.equals(subcompanyname)
|| !e7subcompanydesc.equals(subcompanydesc)
|| !e7supsubcomid.equals(supsubcomOutKey)
|| !e7canceled.equals(canceled)
|| !e7subcompanycode.equals(subcompanycode)
|| !e7tlevel.equals(tlevel)
|| !e7showorder.equals(showorder)
){
E9Map.put("supsubcomid", supsubcomOutKey);
E9Map.put("e7id", outkey);
updateList.add(E9Map);
}else{
unchanged_count++;
}
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}else{
// data_error_count++;
// dataErrorList.add(e9Id);
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
E9Map.put("supsubcomid", supsubcomOutKey);
insertList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}
}else{
if(StringUtils.isNotBlank(supsubcomOutKey) && ("0".equals(supsubcomOutKey) || E7SubcompanyMap.containsKey(supsubcomOutKey))){
E9Map.put("supsubcomid", supsubcomOutKey);
insertList.add(E9Map);
}else{
data_error_count++;
dataErrorList.add(e9Id);
}
}
}
}
}
bb.writeLog("insertList:"+insertList.size()+"</br>");
bb.writeLog("updateList:"+updateList.size()+"</br>");
for(Map<String,Object> E9Map : insertList){
String e9id = Util.null2String(E9Map.get("e9id"));
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
E9Map.put("url",uuid);
E9Map.put("companyid",1);//默认公司是1
String keyString = "";
String valueString = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
if(!"e9id".equals(key) && !"e7id".equals(key)){
keyString += keyString == "" ? key : ","+key ;
valueString += valueString == "" ? "'"+value+"'" : ",'"+value+"' ";
}
}
try {
boolean isTrue2 = false;
String insert_sql = " insert into hrmsubcompany("+keyString+") values("+valueString+")";
String newE7Id = insertE7Data(rsd,insert_sql,uuid,insert_fail_count);
bb.writeLog("insert_sql:"+insert_sql+" "+newE7Id+"</br>");
if(StringUtils.isNotBlank(newE7Id)){
sql = " update hrmsubcompany set outkey="+newE7Id+" where id = "+e9id;
isTrue2 = rs.executeUpdate(sql);
bb.writeLog("sql:"+sql+" "+isTrue2+"</br>");
if(isTrue2){
insert_success_count++;
}else{
insert_exp_count++;
}
}else{
insert_exp_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",insert_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue2 ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
bb.writeLog("e:"+e);
insert_exp_count++;
}
}
for(Map<String,Object> E9Map : updateList){
String e7id = Util.null2String(E9Map.get("e7id"));
String e9id = Util.null2String(E9Map.get("e9id"));
String valuesStr = "";
Iterator<Map.Entry<String, Object>> it = E9Map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = Util.null2String(entry.getKey());
if(!"e7id".equals(key) && !"e9id".equals(key)){
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
}
try{
String update_sql = "update hrmsubcompany set "+valuesStr+" where id = '"+e7id+"' ";
boolean isTrue = updateE7SubcompanyData(rsd,update_sql);
bb.writeLog("update_sql:"+update_sql+" "+isTrue+"</br>");
if(isTrue){
update_success_count++;
}else{
update_fail_count++;
}
Map<String,String> sqlMap = new HashMap<String,String>();
sqlMap.put("zxyj",update_sql);
sqlMap.put("dataid",e9id);
sqlMap.put("zxjg",isTrue ? "true" : "false");
sqlList.add(sqlMap);
}catch (Exception e){
bb.writeLog("e:"+e);
update_exp_count++;
}
}
String mainid = "";
try{
String fbtbjg = "分部共:"+totle_count+"行数据,数据一致工:"+unchanged_count+"。新增成功:"+insert_success_count+",新增失败:"+insert_fail_count+",新增异常:"+insert_exp_count+"。"+
"更新成功:"+update_success_count+",更新失败:"+update_fail_count+",更新异常:"+update_exp_count+"。"+
"数据异常(ID在E7中不存在):"+data_error_count ;
Map<String,String> mainMap = new HashMap<String,String>();
mainMap.put("fbtbjg",fbtbjg);
if(dataErrorList.size() > 0){
if(dataErrorList.size() <= 150){
String bmycsj = String.join(",", dataErrorList);
mainMap.put("fbycsj",bmycsj);
}else{
String bmycsj = String.join(",", dataErrorList.subList(0,150));
mainMap.put("fbycsj",bmycsj);
}
}
mainid = recordSynMainlog("",mainMap);
if(StringUtils.isNotBlank(mainid)){
insertLogDetail1(mainid,sqlList);
}
}catch (Exception e){
bb.writeLog(e);
}
return mainid;
}
private String insertE7Data(RecordSetDataSource rsd,String insert_sql,String uuid,int insert_fail_count){
String newE7Id = "";
BaseBean bb = new BaseBean();
bb.writeLog("insert-sql:"+insert_sql);
boolean isTrue = rsd.execute(insert_sql);
if(isTrue){
String sql = " select id from hrmsubcompany where url = '"+uuid+"' ";
rsd.executeSql(sql);
if(rsd.next()){
newE7Id = Util.null2String(rsd.getString("id"));
}
}else{
insert_fail_count++;
}
return newE7Id;
}
private boolean updateE7SubcompanyData(RecordSetDataSource rsd,String update_sql){
BaseBean bb = new BaseBean();
bb.writeLog("update-sql:"+update_sql);
boolean isTrue = rsd.execute(update_sql);
return isTrue;
}
private Map<String,String> getE9SubcompanyOutkey(){
RecordSet rs = new RecordSet();
Map<String,String> outkeyMap = new HashMap<String,String>();
String sql = " select id,outkey from hrmsubcompany " ;
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String outkey = Util.null2String(rs.getString("outkey"));
outkeyMap.put(id,outkey);
}
return outkeyMap;
}
/***
*
* @return
*/
private List<String> getE7HrmSubcompanyList(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
List<String> E7SubcompanyList = new ArrayList<String>();
Map<String,Map<String,String>> E7SubcompanyMap = new HashMap<String,Map<String,String>>();
String sql = " select id from hrmsubcompany " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
E7SubcompanyList.add(id);
}
return E7SubcompanyList;
}
private Map<String,Map<String,String>> getE7HrmSubcompanyList2(String dataResource){
RecordSetDataSource rsd = new RecordSetDataSource(dataResource);
Map<String,Map<String,String>> E7SubcompanyMap = new HashMap<String,Map<String,String>>();
String sql = " select id,subcompanyname,subcompanydesc,supsubcomid,canceled,subcompanycode,tlevel,showorder from hrmsubcompany " ;
rsd.execute(sql);
while (rsd.next()){
String id = Util.null2String(rsd.getString("id"));
String subcompanyname = Util.null2String(rsd.getString("subcompanyname"));
String subcompanydesc = Util.null2String(rsd.getString("subcompanydesc"));
String supsubcomid = Util.null2String(rsd.getString("supsubcomid"));
String canceled = Util.null2String(rsd.getString("canceled"));
String subcompanycode = Util.null2String(rsd.getString("subcompanycode"));
String tlevel = Util.null2String(rsd.getString("tlevel"));
String showorder = Util.null2String(rsd.getString("showorder"));
Map<String,String> subcompanyMap = new HashMap<>();
subcompanyMap.put("id",id);
subcompanyMap.put("subcompanyname",subcompanyname);
subcompanyMap.put("subcompanydesc",subcompanydesc);
subcompanyMap.put("supsubcomid",supsubcomid);
subcompanyMap.put("canceled",canceled);
subcompanyMap.put("subcompanycode",subcompanycode);
subcompanyMap.put("tlevel",tlevel);
subcompanyMap.put("showorder",showorder);
E7SubcompanyMap.put(id,subcompanyMap);
}
return E7SubcompanyMap;
}
private String recordSynMainlog(String id,Map<String,String> mainMap){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String dataid = "" ;
String uf_table = "uf_zzjgtbrz";
String modedatacreater = "1";
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String modedatacreatedate = sdfDate.format(new Date());
String modedatacreatetime = sdfTime.format(new Date());
String modedatacreatertype = "0";
String formmodeid = "" ;
String sql =" select k.id from modeinfo k \n" +
" inner join workflow_bill l on formid = l.id\n" +
" where l.tablename = '"+uf_table+"' " ;
rs.execute(sql);
if(rs.next()){
formmodeid = Util.null2String(rs.getString("id"));
}
if(StringUtils.isBlank(id)){
ModeRightInfo modeRightInfo = new ModeRightInfo();
modeRightInfo.setNewRight(true);
String uuid = UUID.randomUUID().toString();
mainMap.put("uuid",uuid);
mainMap.put("formmodeid",formmodeid);
mainMap.put("modedatacreater",modedatacreater);
mainMap.put("modedatacreatertype",modedatacreatertype);
mainMap.put("modedatacreatedate",modedatacreatedate);
mainMap.put("modedatacreatetime",modedatacreatetime);
String tablename = "" ;
String tablenvalue = "" ;
for (Map.Entry<String, String> entry : mainMap.entrySet())
{
String fieldname = Util.null2String(entry.getKey()).trim();
String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim();
tablename += tablename==""? fieldname :","+fieldname ;
tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ;
}
if(tablename !="" && tablenvalue !="")
{
sql = " insert into "+uf_table+"("+tablename+") values ("+ tablenvalue +")";
boolean boo = rs.execute(sql);
bb.writeLog("insert-istrue:"+boo);
if(boo)
{
sql = " select * from "+uf_table+" where uuid='"+uuid+"' " ;
bb.writeLog("sql:"+sql);
rs.execute(sql);
if(rs.next()){
dataid = Util.null2String(rs.getString("id"));
}
bb.writeLog("dataid:"+dataid);
if(!"".equals(dataid))
{
modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid));
}
}
}
}else{
dataid = id ;
String valuesStr = "";
Iterator<Map.Entry<String, String>> it = mainMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
String key = Util.null2String(entry.getKey());
String value = Util.null2String(entry.getValue());
valuesStr += valuesStr == "" ? key+"='"+value+"'" : ","+key+"='"+value+"'" ;
}
if(StringUtils.isNotBlank(valuesStr)){
sql = "update "+uf_table+" set " + valuesStr + " where id = "+id+"";
boolean isTrue = rs.execute(sql);
bb.writeLog("update-istrue:"+isTrue);
}
}
return dataid;
}
/***
*
* @param dt1List
* @param mainid
*/
private void insertLogDetail1(String mainid,List<Map<String,String>> dt1List){
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
for(int i=0;i<dt1List.size();i++){
Map<String,String> dt1Map = dt1List.get(i);
String dataid = dt1Map.get("dataid");
String zxyj = dt1Map.get("zxyj");
if(StringUtils.isNotBlank(zxyj) && zxyj.contains("'")){
zxyj = zxyj.replace("'", "''");
}
String zxjg = dt1Map.get("zxjg");
String sql = " insert into uf_zzjgtbrz_dt1(mainid,fbid,zxyj,zxjg) values("+mainid+",'"+dataid+"','"+zxyj+"','"+zxjg+"')" ;
bb.writeLog("sql:"+sql);
boolean istrue = rs.executeUpdate(sql);
bb.writeLog("istrue:"+istrue);
}
}
}

@ -0,0 +1,20 @@
package weaver.interfaces.zjrb.job;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.interfaces.schedule.BaseCronJob;
public class HrmSyn_E92E7_All_Job extends BaseCronJob {
@Override
public void execute() {
String dataResource = "E92E7_ORG";
BaseBean bb = new BaseBean();
HrmSynDaoTime_E92E7 hrmSynDaoTime_E92E7 = new HrmSynDaoTime_E92E7();
bb.writeLog("组织架构E9同步E7定时任务--全量--START--->", TimeUtil.getCurrentTimeString());
hrmSynDaoTime_E92E7.allSyn(dataResource);
bb.writeLog("组织架构E9同步E7定时任务--全量--END--->", TimeUtil.getCurrentTimeString());
}
}

@ -0,0 +1,22 @@
package weaver.interfaces.zjrb.job;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.interfaces.schedule.BaseCronJob;
public class HrmSyn_E92E7_Time_Job extends BaseCronJob {
@Override
public void execute() {
BaseBean bb = new BaseBean();
String dataResource = "E92E7_ORG";
int days = 7;
HrmSynDaoTime_E92E7 hrmSynDaoTime_E92E7 = new HrmSynDaoTime_E92E7();
bb.writeLog("组织架构E9同步E7定时任务---START--->", TimeUtil.getCurrentTimeString());
hrmSynDaoTime_E92E7.syn(days,dataResource);
bb.writeLog("组织架构E9同步E7定时任务---END--->", TimeUtil.getCurrentTimeString());
}
}

@ -0,0 +1,262 @@
package weaver.interfaces.zjrb.mode;
import oracle.sql.CLOB;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.ConnStatement;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import weaver.soa.workflow.request.RequestInfo;
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExaminationPaperModeExpand extends AbstractModeExpandJavaCodeNew {
/**
*
* @param param
* param()
* user
* importtype () 1 2,3(int)param.get("importtype")
* ()a=1param.get("a")
* b=2,param.get("b")
* @return
*/
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<String, String>();
try {
User user = (User)param.get("user");
int billid = -1;//数据id
int modeid = -1;//模块id
RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo");
if(requestInfo!=null){
billid = Util.getIntValue(requestInfo.getRequestid());
modeid = Util.getIntValue(requestInfo.getWorkflowid());
if(billid>0&&modeid>0){
//------请在下面编写业务逻辑代码------
saveUserData2(billid+"");
}
}
} catch (Exception e) {
result.put("errmsg","自定义出错信息");
result.put("flag", "false");
}
return result;
}
// public void saveUserData(String billid){
// RecordSet rs = new RecordSet();
// BaseBean bb = new BaseBean();
// if (("oracle").equals(rs.getDBType())) {
// String ksfw = "";
// ConnStatement statement = null;
// try{
// statement = new ConnStatement();
// String sql = "select ksfw from uf_ks_kjb where id = " + billid;
// statement.setStatementSql(sql, false);
// statement.executeQuery();
// if (statement.next()) {
// CLOB clob = statement.getClob("ksfw");
// String readline = "";
// StringBuffer clobStrBuff = new StringBuffer("");
// BufferedReader clobin = new BufferedReader(clob.getCharacterStream());
// while ((readline = clobin.readLine()) != null)
// clobStrBuff = clobStrBuff.append(readline);
// clobin.close();
// ksfw = clobStrBuff.toString();
// }
// }catch(Exception e){
// bb.writeLog("获取文档内容元素内容异常",e);
// }finally {
// statement.close();
// }
//
// if(StringUtils.isNotBlank(ksfw)){
// String[] userids = ksfw.split(",");
// for(int i=0;i<userids.length;i++){
// String userid = userids[i];
// if(StringUtils.isNotBlank(userid)){
// int count = 0;
// String sql = " select from uf_ks_kjb_dt2 where mainid = "+billid+" and ks = "+userid ;
// rs.executeQuery(sql);
// if(rs.next()){
// count++;
// }
// if(count == 0){
// sql = "insert into uf_ks_kjb_dt2(mainid,ks,zt)values("+billid+","+userid+",0)";
// rs.executeUpdate(sql);
// }
// }
// }
// }
// }
// }
/***
*
* @param billid
*/
public void saveUserData2(String billid){
BaseBean bb = new BaseBean();
long start = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand-"+billid+":"+start);
ResourceComInfo resourceComInfo = null;
try{
resourceComInfo = new ResourceComInfo();
if(StringUtils.isNotBlank(billid)){
RecordSet rs = new RecordSet();
if(("oracle").equals(rs.getDBType())){
bb.writeLog("oracle");
String ksfw = "";
ConnStatement statement = null;
try{
statement = new ConnStatement();
String sql = "select ksfw from uf_ks_kjb where id = " + billid;
statement.setStatementSql(sql, false);
statement.executeQuery();
if (statement.next()) {
CLOB clob = statement.getClob("ksfw");
String readline = "";
StringBuffer clobStrBuff = new StringBuffer("");
BufferedReader clobin = new BufferedReader(clob.getCharacterStream());
while ((readline = clobin.readLine()) != null)
clobStrBuff = clobStrBuff.append(readline);
clobin.close();
ksfw = clobStrBuff.toString();
}
}catch(Exception e){
bb.writeLog("saveUserData2-e:"+e);
}finally {
statement.close();
}
long start2 = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand-"+billid+":"+start2);
if(StringUtils.isNotBlank(ksfw)){
Map<String,Map<String,String>> userMap = new HashMap<String,Map<String,String>>();
String sql = " select id,zgs,fgs,sgs from picc_hrm_org_path_view";
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String zgs = Util.null2String(rs.getString("zgs"));
String fgs = Util.null2String(rs.getString("fgs"));
String sgs = Util.null2String(rs.getString("sgs"));
Map<String,String> gsMap = new HashMap<String,String>();
gsMap.put("zgs",zgs);
gsMap.put("fgs",fgs);
gsMap.put("sgs",sgs);
userMap.put(id,gsMap);
}
sql = " delete from uf_ks_kjb_dt2 where mainid = "+billid ;
boolean isTrue = rs.executeUpdate(sql);
if(isTrue){
String[] userids = ksfw.split(",");
bb.writeLog("userids:"+userids.length);
List<List> batchList = new ArrayList<>(); //存放每条数据更新时需要的参数
for(int i=0;i<userids.length;i++){
String userid = userids[i];
String deptid = "" ;
if(StringUtils.isNotBlank(userid)){
deptid = resourceComInfo.getDepartmentID(userid);
}
String zgs = "";
String fgs = "";
String sgs = "";
if(userMap.containsKey(userid)){
Map<String,String> gsMap =userMap.get(userid);
if(gsMap.containsKey("zgs")){
zgs = gsMap.get("zgs");
}
if(gsMap.containsKey("fgs")){
fgs = gsMap.get("fgs");
}
if(gsMap.containsKey("sgs")){
sgs = gsMap.get("sgs");
}
}
List<String> userList = new ArrayList<String>();
userList.add(billid);
userList.add(userid);
userList.add(deptid);
userList.add("0");
userList.add(zgs);
userList.add(fgs);
userList.add(sgs);
batchList.add(userList);
}
bb.writeLog("batchList:"+batchList.size());
if(batchList.size()>0){
sql = " insert into uf_ks_kjb_dt2(mainid,ks,ksssbm,zt,kssszgs,ksssfgs,kssssgs) values(?,?,?,?,?,?,?)";
boolean isTrue2 = rs.executeBatchSql(sql,batchList);
bb.writeLog("isTrue2:"+isTrue2);
}
}
}
}
long end = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand-"+billid+":"+end);
// else if("mysql".equalsIgnoreCase(rs.getDBType())){
// String ksfw = "";
// try{
// String sql = "select ksfw from uf_ks_kjb where id = " + billid;
// rs.execute(sql);
// if (rs.next()) {
// ksfw = Util.null2String(rs.getString("ksfw"));
// }
// }catch(Exception e){
// bb.writeLog("saveUserData2-e:"+e);
// }finally {
// }
//
// if(StringUtils.isNotBlank(ksfw)){
// String sql = " delete from uf_ks_kjb_dt2 where mainid = "+billid ;
// boolean isTrue = rs.executeUpdate(sql);
// if(isTrue){
// String[] userids = ksfw.split(",");
// bb.writeLog("userids:"+userids.length);
// List<List> batchList = new ArrayList<List>(); //存放每条数据更新时需要的参数
// for(int i=0;i<userids.length;i++){
// String userid = userids[i];
// String deptid = "" ;
// if(StringUtils.isNotBlank(userid)){
// deptid = resourceComInfo.getDepartmentID(userid);
// }
// List<Object> userList = new ArrayList<>();
// userList.add(billid);
// userList.add(userid);
// userList.add(deptid);
// userList.add("0");
// batchList.add(userList);
// }
//
// bb.writeLog("batchList:"+batchList.size());
// if(batchList.size()>0){
// sql = " insert into uf_ks_kjb_dt2(mainid,ks,ksssbm,zt) values(?,?,?,?)";
// boolean isTrue3 = rs.executeBatchSql(sql,batchList);
// bb.writeLog("isTrue2:"+isTrue3);
// }
// }
// }
// }
}
}catch (Exception e){
bb.writeLog("e:"+e+"</br>");
}
}
}

@ -0,0 +1,92 @@
package weaver.interfaces.zjrb.mode;
import oracle.sql.CLOB;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.ConnStatement;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.soa.workflow.request.RequestInfo;
import java.io.BufferedReader;
import java.util.HashMap;
import java.util.Map;
public class ExaminationPaperModeExpand2 extends AbstractModeExpandJavaCodeNew {
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<String, String>();
try {
User user = (User)param.get("user");
int billid = -1;//数据id
int modeid = -1;//模块id
RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo");
if(requestInfo!=null){
billid = Util.getIntValue(requestInfo.getRequestid());
modeid = Util.getIntValue(requestInfo.getWorkflowid());
if(billid>0&&modeid>0){
//------请在下面编写业务逻辑代码------
saveUserData2(billid+"");
}
}
} catch (Exception e) {
result.put("errmsg","自定义出错信息");
result.put("flag", "false");
}
return result;
}
public void saveUserData2(String billid){
BaseBean bb = new BaseBean();
long start = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand2-"+billid+":"+start);
try{
if(StringUtils.isNotBlank(billid)){
RecordSet rs = new RecordSet();
if(("oracle").equals(rs.getDBType())){
bb.writeLog("oracle");
String ksfw = "";
ConnStatement statement = null;
try{
statement = new ConnStatement();
String sql = "select ksfw from uf_ks_kjb where id = " + billid;
statement.setStatementSql(sql, false);
statement.executeQuery();
if (statement.next()) {
CLOB clob = statement.getClob("ksfw");
String readline = "";
StringBuffer clobStrBuff = new StringBuffer("");
BufferedReader clobin = new BufferedReader(clob.getCharacterStream());
while ((readline = clobin.readLine()) != null)
clobStrBuff = clobStrBuff.append(readline);
clobin.close();
ksfw = clobStrBuff.toString();
}
}catch(Exception e){
bb.writeLog("saveUserData2-e:"+e);
}finally {
statement.close();
}
long start2 = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand2-"+billid+":"+start2);
if(StringUtils.isNotBlank(ksfw)) {
ExaminationPaperModeExpand2Runnable examinationPaperModeExpand2Runnable = new ExaminationPaperModeExpand2Runnable(ksfw,billid);
new Thread(examinationPaperModeExpand2Runnable).start();
}
long end = System.currentTimeMillis();
bb.writeLog("ExaminationPaperModeExpand2-"+billid+":"+end);
}
}
}catch (Exception e){
bb.writeLog("e:"+e+"</br>");
}
}
}

@ -0,0 +1,98 @@
package weaver.interfaces.zjrb.mode;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.resource.ResourceComInfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExaminationPaperModeExpand2Runnable implements Runnable{
private String ksfw;
private String billid;
public ExaminationPaperModeExpand2Runnable(String ksfw,String billid){
this.ksfw = ksfw;
this.billid = billid;
}
@Override
public void run() {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
ResourceComInfo resourceComInfo = null;
try {
resourceComInfo = new ResourceComInfo();
if(StringUtils.isNotBlank(ksfw)){
Map<String, Map<String,String>> userMap = new HashMap<String,Map<String,String>>();
String sql = " select id,zgs,fgs,sgs from picc_hrm_org_path_view";
rs.executeQuery(sql);
while (rs.next()){
String id = Util.null2String(rs.getString("id"));
String zgs = Util.null2String(rs.getString("zgs"));
String fgs = Util.null2String(rs.getString("fgs"));
String sgs = Util.null2String(rs.getString("sgs"));
Map<String,String> gsMap = new HashMap<String,String>();
gsMap.put("zgs",zgs);
gsMap.put("fgs",fgs);
gsMap.put("sgs",sgs);
userMap.put(id,gsMap);
}
sql = " delete from uf_ks_kjb_dt2 where mainid = "+billid ;
boolean isTrue = rs.executeUpdate(sql);
if(isTrue){
String[] userids = ksfw.split(",");
bb.writeLog("userids:"+userids.length);
List<List> batchList = new ArrayList<>(); //存放每条数据更新时需要的参数
for(int i=0;i<userids.length;i++){
String userid = userids[i];
String deptid = "" ;
if(StringUtils.isNotBlank(userid)){
deptid = resourceComInfo.getDepartmentID(userid);
}
String zgs = "";
String fgs = "";
String sgs = "";
if(userMap.containsKey(userid)){
Map<String,String> gsMap =userMap.get(userid);
if(gsMap.containsKey("zgs")){
zgs = gsMap.get("zgs");
}
if(gsMap.containsKey("fgs")){
fgs = gsMap.get("fgs");
}
if(gsMap.containsKey("sgs")){
sgs = gsMap.get("sgs");
}
}
List<String> userList = new ArrayList<String>();
userList.add(billid);
userList.add(userid);
userList.add(deptid);
userList.add("0");
userList.add(zgs);
userList.add(fgs);
userList.add(sgs);
batchList.add(userList);
}
bb.writeLog("batchList:"+batchList.size());
if(batchList.size()>0){
sql = " insert into uf_ks_kjb_dt2(mainid,ks,ksssbm,zt,kssszgs,ksssfgs,kssssgs) values(?,?,?,?,?,?,?)";
boolean isTrue2 = rs.executeBatchSql(sql,batchList);
bb.writeLog("isTrue2:"+isTrue2);
}
}
}
}catch (Exception e){
}
}
}

@ -0,0 +1,627 @@
package weaver.system;
import java.util.*;
import org.apache.commons.lang.StringUtils;
import com.cloudstore.dev.api.bean.MessageBean;
import com.cloudstore.dev.api.bean.MessageType;
import com.cloudstore.dev.api.util.Util_Message;
import com.engine.msgcenter.biz.ConfigManager;
import com.engine.msgcenter.biz.WeaMessageTypeConfig;
import com.google.common.collect.Sets;
import com.weaver.general.TimeUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.resource.ResourceComInfo;
import weaver.sms.SMSManager;
import weaver.sms.SmsFromMouldEnum;
import weaver.systeminfo.SystemEnv;
import weaver.voting.VotingMailReminder;
import weaver.voting.VotingManager;
/**
* -
*/
public class VotingThreadManager
extends
BaseBean implements ThreadWork {
private SMSManager smsManager;
private ResourceComInfo resourceComInfo;
private SysRemindWorkflow sysRemindWorkflow ;
public VotingThreadManager() {
}
private void init() {
try {
//调查短信提醒,分权由创建人所在分部进行提醒
smsManager = new SMSManager();
smsManager.setFromMould(SmsFromMouldEnum.VOTING);
sysRemindWorkflow = new SysRemindWorkflow();
resourceComInfo = new ResourceComInfo();
} catch (Exception ex) {
}
}
/**
* 1
* 2
* 3
* 4
*/
public void doThreadWork() {
//writeLog("VotingThreadManager-------------");
this.init(); //初始化发送方法
String resourceID = "";
String ID = "";
String subject = "";
String begindate = "";
String begintime = "";
String enddate = "";
String endtime = "";
String mailstrs = "";
int createrid = 1;
//描述
String descr = "";
//调查提醒类型
String remindtype = "";
String messageTitle = "";
String messageBody = "";
String messageTitleSMS = "";
StringBuffer stringBuffer = new StringBuffer();
RecordSet recordSet = new RecordSet();
RecordSet recordSet2 = new RecordSet();
boolean isoracle = (recordSet2.getDBType()).equals("oracle");
/* ================== 开始前提醒 ================== */
//将所有在进行中的、设置了开始前提醒的、还未提醒的 调查过滤出来。
if (isoracle) {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND NVL(remindtimebeforestart,'0') <>'0'");
stringBuffer.append(" AND NVL(hasremindedbeforestart,'0')='0' ");
stringBuffer.append(" AND status = '1' ");
} else {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND remindtimebeforestart <>'' and remindtimebeforestart is not null ");
stringBuffer.append(" AND (hasremindedbeforestart is null OR hasremindedbeforestart = '')");
stringBuffer.append(" AND status = 1 ");
}
//writeLog("stringBuffer---remindtimebeforestart---:"+stringBuffer.toString());
recordSet.executeQuery(stringBuffer.toString());
String currentTime = TimeUtil.getCurrentTimeString();
while (recordSet.next()) {
ID = recordSet.getString("id");
createrid = recordSet.getInt("createrid");
//对比时间,
begindate = recordSet.getString("begindate");
begintime = recordSet.getString("begintime");
if("".equals(begindate)){
continue;
}
enddate = recordSet.getString("enddate");
endtime = recordSet.getString("endtime");
//begindate begintime组合值 与 datenow timenow 组合值相减,的值 如果<= remindtimebeforestart的话就提醒
String startTime = begindate+" "+begintime+":00";
//提醒类型
remindtype = "," + recordSet.getString("remindtype") + ",";
//调查 标题
subject = recordSet.getString("subject");
//备注
descr = recordSet.getString("descr");
mailstrs = "";
double ddStart = Util.getDoubleValue(recordSet.getString("remindtimebeforestart"),0) * 60;
if (TimeUtil.timeInterval(currentTime, startTime) <= ddStart) {
recordSet2.executeUpdate("update voting set hasremindedbeforestart='1' where id= ?", ID);//修改该调查已提醒
VotingManager votingManager = new VotingManager();
Set<String> undoUserSet = votingManager.getUndoUserSetAll(ID); //对还没进行投票的人提醒
smsManager.setMouldkey(ID);
smsManager.setSubcompanyid(resourceComInfo.getSubCompanyID(createrid+""));
writeLog("调查开始前短信提醒提醒调查ID"+ID+"-----createrid:"+createrid+"-----subcompanyid:"+resourceComInfo.getSubCompanyID(createrid+""));
for (Iterator<String> iter = undoUserSet.iterator(); iter.hasNext();) {
resourceID = iter.next();
if (remindtype.contains(",1,")) { //短信提醒
try {
messageTitleSMS = SystemEnv.getHtmlLabelName(507472, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID))) + " " + subject + " "
+ begindate + " " + begintime + " " + SystemEnv.getHtmlLabelName(530, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)))
+ " " + SystemEnv.getHtmlLabelName(507473, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)));
smsManager.sendSMS(resourceComInfo.getMobile(resourceID), "" + messageTitleSMS);
//writeLog("调查发送开始前短信提醒:" + resourceID + ".TEL" + resourceComInfo.getMobile(resourceID) + "内容:" + messageTitle);
// poppupRemindInfoUtil.addPoppupRemindInfo(Integer.parseInt(resourceID), 12, String.valueOf(0), Integer.parseInt(ID));
} catch (Exception e) {}
}
if (remindtype.contains(",2,")) {//邮件提醒
if (Util.null2String(resourceComInfo.getEmail(resourceID)).equals("")) continue;
if (mailstrs.equals("")) {
mailstrs = resourceComInfo.getEmail(resourceID);
} else {
mailstrs = mailstrs + "," + resourceComInfo.getEmail(resourceID);
}
//poppupRemindInfoUtil.addPoppupRemindInfo(Integer.parseInt(resourceID), 12, String.valueOf(0), Integer.parseInt(ID));
}
}
if (remindtype.contains(",2,")) {//邮件提醒
if(!"".equals(mailstrs)) {
messageTitle = SystemEnv.getHtmlLabelName(20051, 7) + " " + subject + " "
+ begindate + " " + begintime + " " + SystemEnv.getHtmlLabelName(530, 7);
String detailOne=SystemEnv.getHtmlLabelName(505764, 7);
new VotingMailReminder().sendMail(ID, mailstrs, messageTitle, detailOne);
}
writeLog("调查发送开始前邮件提醒,收件人:" + mailstrs + "标题:" + subject);
}
// if (remindtype.contains(",3,")) {//流程提醒
// try {
// String toIds = StringUtils.join(undoUserSet, ",");
// if(!undoUserSet.isEmpty()) {
// sysRemindWorkflow.setSysRemindInfo(messageTitle, 0, 0, 0, 0, 1, toIds, messageTitle);
// }
// writeLog("调查发送开始前流程提醒:toIds=" + toIds + "内容:" + messageTitle);
// } catch (Exception e) {
// writeLog(e);
// }
// }
//消息中心提醒
if (remindtype.contains(",4,")) {
try {
String toIds = StringUtils.join(undoUserSet, ",");
if (!undoUserSet.isEmpty()) {
String detailTitle = "505764"; //您有新的网上调查即将开始,请注意及时参与
String content = ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505766,weaver.general.ThreadVarLanguage.getLang())+"" + Util.formatMultiLang(resourceComInfo.getLastname(createrid + ""));
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505767,weaver.general.ThreadVarLanguage.getLang())+"" + begindate + " " + begintime;
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505768,weaver.general.ThreadVarLanguage.getLang())+"" + enddate + " " + endtime;
sendToMessageCenter(ID, toIds, createrid, subject, detailTitle, content);
}
writeLog("调查发送开始前前消息中心提醒:toIds=" + toIds + "内容:" + subject);
} catch (Exception e) {
writeLog(e);
}
}
}
}
/* ================== 开始时提醒 ================== */
//将所有在进行中的、设置了开始时提醒的、还未提醒的 调查过滤出来。
stringBuffer = new StringBuffer();
if (isoracle) {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND NVL(remindBeginTime,0) <> 0");
stringBuffer.append(" AND NVL(hasRemindBeginTime,0)=0 ");
stringBuffer.append(" AND status = 1 ");
}else if((recordSet2.getDBType()).equals("postgresql"))
{
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" and remindBeginTime <> 0 and remindBeginTime is not null ");
stringBuffer.append(" AND (hasRemindBeginTime is null OR hasRemindBeginTime = 0)");
stringBuffer.append(" AND status = 1 ");
}
else {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND remindBeginTime <>'' and remindBeginTime <> 0 and remindBeginTime is not null ");
stringBuffer.append(" AND (hasRemindBeginTime is null OR hasRemindBeginTime = '' or hasRemindBeginTime = 0)");
stringBuffer.append(" AND status = 1 ");
}
//writeLog("stringBuffer---remindBeginTime---:"+stringBuffer.toString());
recordSet.executeQuery(stringBuffer.toString());
currentTime = TimeUtil.getCurrentTimeString();
while (recordSet.next()) {
ID = recordSet.getString("id");
createrid = recordSet.getInt("createrid");
//对比时间,
begindate = recordSet.getString("begindate");
begintime = recordSet.getString("begintime");
if("".equals(begindate)){
continue;
}
enddate = recordSet.getString("enddate");
endtime = recordSet.getString("endtime");
String startTime = begindate+" "+begintime+":00";
//提醒类型
remindtype = "," + recordSet.getString("remindtype") + ",";
//调查 标题
subject = recordSet.getString("subject");
//备注
descr = recordSet.getString("descr");
mailstrs = "";
if (TimeUtil.timeInterval(startTime, currentTime) >= 0) {
recordSet2.executeUpdate("update voting set hasRemindBeginTime=1 where id= ?", ID);//修改该调查已提醒
VotingManager votingManager = new VotingManager();
Set<String> undoUserSet = votingManager.getUndoUserSetAll(ID); //对还没进行投票的人提醒
smsManager.setMouldkey(ID);
smsManager.setSubcompanyid(resourceComInfo.getSubCompanyID(createrid+""));
writeLog("调查开始时短信提醒提醒调查ID"+ID+"-----createrid:"+createrid+"-----subcompanyid:"+resourceComInfo.getSubCompanyID(createrid+""));
for (Iterator<String> iter = undoUserSet.iterator(); iter.hasNext();) {
resourceID = iter.next();
if (remindtype.contains(",1,")) { //短信提醒
try {
messageTitleSMS = SystemEnv.getHtmlLabelName(507472, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID))) + " " + subject + " "
+ begindate + " " + begintime + " " + SystemEnv.getHtmlLabelName(530, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)))
+ " " + SystemEnv.getHtmlLabelName(507473, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)));
smsManager.sendSMS(resourceComInfo.getMobile(resourceID), "" + messageTitleSMS);
//writeLog("发送开始时短信提醒:" + resourceID + ".TEL" + resourceComInfo.getMobile(resourceID) + "内容:" + messageTitle);
// poppupRemindInfoUtil.addPoppupRemindInfo(Integer.parseInt(resourceID), 12, String.valueOf(0), Integer.parseInt(ID));
} catch (Exception e) {}
}
if (remindtype.contains(",2,")) {//邮件提醒
if (Util.null2String(resourceComInfo.getEmail(resourceID)).equals("")) continue;
if (mailstrs.equals("")) {
mailstrs = resourceComInfo.getEmail(resourceID);
} else {
mailstrs = mailstrs + "," + resourceComInfo.getEmail(resourceID);
}
//poppupRemindInfoUtil.addPoppupRemindInfo(Integer.parseInt(resourceID), 12, String.valueOf(0), Integer.parseInt(ID));
}
}
if (remindtype.contains(",2,")) {//邮件提醒
if(!"".equals(mailstrs)) {
messageTitle = SystemEnv.getHtmlLabelName(20051, 7) + " " + subject + " "
+ begindate + " " + begintime + " " + SystemEnv.getHtmlLabelName(530, 7);
String detailOne=SystemEnv.getHtmlLabelName(505763, 7);
new VotingMailReminder().sendMail(ID, mailstrs, messageTitle, detailOne);
}
writeLog("调查发送开始时邮件提醒,收件人:" + mailstrs + "标题:" + subject);
}
// if (remindtype.contains(",3,")) {//流程提醒
// try {
// String toIds = StringUtils.join(undoUserSet, ",");
// if(!undoUserSet.isEmpty()) {
// sysRemindWorkflow.setSysRemindInfo(messageTitle, 0, 0, 0, 0, 1, toIds, messageTitle);
// }
// writeLog("调查发送开始时流程提醒:toIds=" + toIds + "内容:" + messageTitle);
// } catch (Exception e) {
// writeLog(e);
// }
// }
//消息中心提醒
if (remindtype.contains(",4,")) {
try {
String toIds = StringUtils.join(undoUserSet, ",");
if (!undoUserSet.isEmpty()) {
String detailTitle = "505763"; //您有新的网上调查需要填写
String content = ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505766,weaver.general.ThreadVarLanguage.getLang())+"" + Util.formatMultiLang(resourceComInfo.getLastname(createrid + ""));
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505767,weaver.general.ThreadVarLanguage.getLang())+"" + begindate + " " + begintime;
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505768,weaver.general.ThreadVarLanguage.getLang())+"" + enddate + " " + endtime;
sendToMessageCenter(ID, toIds, createrid, subject, detailTitle, content);
}
writeLog("调查发送开始时前消息中心提醒:toIds=" + toIds + "内容:" + subject);
} catch (Exception e) {
writeLog(e);
}
}
}
}
/* ================== 结束前提醒 ================== */
//将所有在进行中的、设置了开始前提醒的、还未提醒的 调查过滤出来。
stringBuffer = new StringBuffer();
if (isoracle) {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND NVL(remindtimebeforeend,'0') <>'0' ");
stringBuffer.append(" AND NVL(hasremindedbeforeend,'0') ='0' ");
stringBuffer.append(" AND status = 1 ");
} else {
stringBuffer.append("SELECT * FROM voting WHERE ");
stringBuffer.append(" remindtype is not null ");
stringBuffer.append(" AND remindtimebeforeend <>'' and remindtimebeforeend is not null ");
stringBuffer.append(" AND (hasremindedbeforeend is null OR hasremindedbeforeend = '')");
stringBuffer.append(" AND status = 1 ");
}
//writeLog("stringBuffer---remindtimebeforeend---:"+stringBuffer.toString());
recordSet.executeQuery(stringBuffer.toString());
currentTime = TimeUtil.getCurrentTimeString();
while (recordSet.next()) {
ID = recordSet.getString("ID");
createrid = recordSet.getInt("createrid");
begindate = recordSet.getString("begindate");
begintime = recordSet.getString("begintime");
//对比时间,
enddate = Util.null2String(recordSet.getString("enddate")).trim();
endtime = Util.null2String(recordSet.getString("endtime")).trim();
if("".equals(enddate)){
continue;
}
String votingEndTime = enddate+" "+endtime+":00";
//提醒类型
remindtype = "," + recordSet.getString("remindtype") + ",";
//调查 标题
subject = recordSet.getString("subject");
//备注
descr = recordSet.getString("descr");
mailstrs = "";
double ddEnd = Util.getDoubleValue(recordSet.getString("remindtimebeforeend"),0) * 60;
if (TimeUtil.timeInterval(currentTime, votingEndTime) <= ddEnd) {
recordSet2.executeUpdate("update voting set hasremindedbeforeend='1' where id=?", ID); //修改该调查已提醒
VotingManager votingManager = new VotingManager();
Set<String> undoUserSet = votingManager.getUndoUserSetAll(ID);
smsManager.setMouldkey(ID);
smsManager.setSubcompanyid(resourceComInfo.getSubCompanyID(createrid+""));
writeLog("调查结束前短信提醒提醒调查ID"+ID+"-----createrid:"+createrid+"-----subcompanyid:"+resourceComInfo.getSubCompanyID(createrid+""));
for (Iterator<String> iter = undoUserSet.iterator(); iter.hasNext();) {
resourceID = iter.next();
if (remindtype.contains(",1,")) { //短信提醒
try {
messageTitleSMS = SystemEnv.getHtmlLabelName(507472, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID))) + " " + subject + " "
+ begindate + " " + begintime + " " + SystemEnv.getHtmlLabelName(530, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)))
+ " " + SystemEnv.getHtmlLabelName(507473, Integer.parseInt(resourceComInfo.getSystemLanguage(resourceID)));
smsManager.sendSMS(resourceComInfo.getMobile(resourceID), "" + messageTitleSMS);
//writeLog("发送结束前短信提醒" + resourceID + ".TEL" + resourceComInfo.getMobile(resourceID) + "内容:" + messageTitle);
} catch (Exception e) {}
}
if (remindtype.contains(",2,")) {//邮件提醒
if (Util.null2String(resourceComInfo.getEmail(resourceID)).equals("")) continue;
if (mailstrs.equals("")) {
mailstrs = resourceComInfo.getEmail(resourceID);
} else {
mailstrs = mailstrs + "," + resourceComInfo.getEmail(resourceID);
}
}
}
if (remindtype.contains(",2,")) {//邮件提醒
if(!"".equals(mailstrs)) {
messageTitle = SystemEnv.getHtmlLabelName(20051, 7)
+ " " + subject + " " + enddate + " " + endtime + " " + SystemEnv.getHtmlLabelName(405, 7);
String detailOne=SystemEnv.getHtmlLabelName(505765, 7);
new VotingMailReminder().sendMail(ID, mailstrs, messageTitle, detailOne);
}
writeLog("调查发送结束前邮件提醒,收件人:" + mailstrs + "标题:" + subject);
}
// if (remindtype.contains(",3,")) { //流程提醒
// try {
// String toIds = StringUtils.join(undoUserSet, ",");
// if(!undoUserSet.isEmpty()) {
// sysRemindWorkflow.setSysRemindInfo(messageTitle, 0, 0, 0, 0, 1, toIds, messageTitle);
// }
// writeLog("调查发送结束前流程提醒:toIds=" + toIds + "内容:" + messageTitle);
// } catch (Exception e) {
// writeLog(e);
// }
// }
//消息中心提醒
if (remindtype.contains(",4,")) {
try {
String toIds = StringUtils.join(undoUserSet, ",");
if(!undoUserSet.isEmpty()) {
String detailTitle = "505765"; //您有新的网上调查即将结束,请注意及时参与
String content = ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505766,weaver.general.ThreadVarLanguage.getLang())+"" + Util.formatMultiLang(resourceComInfo.getLastname(createrid + ""));
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505767,weaver.general.ThreadVarLanguage.getLang())+"" + begindate + " " + begintime;
content += "<br/>";
content += ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(505768,weaver.general.ThreadVarLanguage.getLang())+"" + enddate + " " + endtime;
sendToMessageCenter(ID, toIds, createrid, subject, detailTitle, content);
}
writeLog("调查发送结束前消息中心提醒:toIds=" + toIds + "内容:" + subject);
} catch (Exception e) {
writeLog(e);
}
}
}
}
}
/**
*
* @param allUsers
* @param createrId
* @param title
* @param detailTitle
* @param content
* @throws Exception
*/
public void sendToMessageCenter(String votingId, String allUsers, int createrId, String title, String detailTitle, String content) throws Exception {
String pcUrl = "/voting/votingPcRedirect.jsp?id=" + votingId + "&comefrom=msg";
String mobileUrl = "/voting/mobile/votingMobileRedirect.jsp?id=" + votingId + "&comefrom=msg";
ConfigManager configManager = new ConfigManager();
// 2、默认规则检查用户配置,返回后台自定义消息类型和对应通过配置的用户
// @param singPath 与需求变更之前的path参数含义一致,代表该消息类型详细配置中唯一标志值,各模块参考自己的值(有疑问请联系云商店-田泽法)
// @param userid 按默认规则检查的用户配置信息(检查多人参考重载方法)
BaseBean bb = new BaseBean();
bb.writeLog("sendToMessageCenter-votingId:"+votingId);
bb.writeLog("sendToMessageCenter-allUsers:"+allUsers);
if(StringUtils.isNotBlank(votingId)) {
String votingType = getVotingType(votingId);
if(StringUtils.isNotBlank(votingType)){
if ("90".equals(votingType)) {
Map<WeaMessageTypeConfig, List<String>> accessConfig = configManager.defaultRuleCheckConfig(MessageType.SURVEY_REMIND, allUsers, null);
// 3、遍历自定义消息类型集合
for (Map.Entry<WeaMessageTypeConfig, List<String>> entry : accessConfig.entrySet()) {
// 4、构造消息实体
MessageBean bean = Util_Message.createMessage(MessageType.SURVEY_REMIND, 0, title, detailTitle, content, pcUrl, mobileUrl, createrId);
// 5、获取新的自定义消息类型
WeaMessageTypeConfig config = entry.getKey();
// 6、新的自定义消息类型相关信息通知到消息实体bean上
bean.setMessageConfig(config);
// 7、设置检查配置通过需要发送消息的用户
bean.setUserList(Sets.newHashSet(entry.getValue()));
// 8、发送消息
Util_Message.sendAndpublishMessage(bean);
}
} else {
int votingcode = 0;
try {
votingcode = Util.getIntValue(votingType);
} catch (Exception e) {
}
bb.writeLog("sendToMessageCenter-votingcode:"+votingcode);
if (votingcode > 0) {
MessageType messageType = MessageType.newInstance(votingcode); // 消息来源(见文档第四点补充 必填)
Map<WeaMessageTypeConfig, List<String>> accessConfig = configManager.defaultRuleCheckConfig(messageType, allUsers, null);
bb.writeLog("sendToMessageCenter-accessConfig:"+accessConfig.size());
// 3、遍历自定义消息类型集合
for (Map.Entry<WeaMessageTypeConfig, List<String>> entry : accessConfig.entrySet()) {
// 4、构造消息实体
MessageBean bean = Util_Message.createMessage(messageType, 0, title, detailTitle, content, pcUrl, mobileUrl, createrId);
// 5、获取新的自定义消息类型
WeaMessageTypeConfig config = entry.getKey();
bb.writeLog("sendToMessageCenter-config:"+config.isEnablePc() );
// 6、新的自定义消息类型相关信息通知到消息实体bean上
bean.setMessageConfig(config);
// 7、设置检查配置通过需要发送消息的用户
bb.writeLog("sendToMessageCenter-user:"+Sets.newHashSet(entry.getValue()).toString());
bean.setUserList(Sets.newHashSet(entry.getValue()));
// 8、发送消息
Util_Message.sendAndpublishMessage(bean);
}
}
}
}else{
Map<WeaMessageTypeConfig, List<String>> accessConfig = configManager.defaultRuleCheckConfig(MessageType.SURVEY_REMIND, allUsers, null);
// 3、遍历自定义消息类型集合
for (Map.Entry<WeaMessageTypeConfig, List<String>> entry : accessConfig.entrySet()) {
// 4、构造消息实体
MessageBean bean = Util_Message.createMessage(MessageType.SURVEY_REMIND, 0, title, detailTitle, content, pcUrl, mobileUrl, createrId);
// 5、获取新的自定义消息类型
WeaMessageTypeConfig config = entry.getKey();
// 6、新的自定义消息类型相关信息通知到消息实体bean上
bean.setMessageConfig(config);
// 7、设置检查配置通过需要发送消息的用户
bean.setUserList(Sets.newHashSet(entry.getValue()));
// 8、发送消息
Util_Message.sendAndpublishMessage(bean);
}
}
}else{
Map<WeaMessageTypeConfig, List<String>> accessConfig = configManager.defaultRuleCheckConfig(MessageType.SURVEY_REMIND, allUsers, null);
// 3、遍历自定义消息类型集合
for (Map.Entry<WeaMessageTypeConfig, List<String>> entry : accessConfig.entrySet()) {
// 4、构造消息实体
MessageBean bean = Util_Message.createMessage(MessageType.SURVEY_REMIND, 0, title, detailTitle, content, pcUrl, mobileUrl, createrId);
// 5、获取新的自定义消息类型
WeaMessageTypeConfig config = entry.getKey();
// 6、新的自定义消息类型相关信息通知到消息实体bean上
bean.setMessageConfig(config);
// 7、设置检查配置通过需要发送消息的用户
bean.setUserList(Sets.newHashSet(entry.getValue()));
// 8、发送消息
Util_Message.sendAndpublishMessage(bean);
}
}
}
/***
*
* @param votingId
* @return
*/
public String getVotingType(String votingId){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
String xxid = "";
try{
String sql =" select xxid from uf_votingmsg where dclx in(\n" +
" select votingtype from voting where id = " + votingId +
" ) " ;
bb.writeLog("getVotingType-sql:"+sql);
rs.executeQuery(sql);
if(rs.next()){
xxid = Util.null2String(rs.getString("xxid"));
}
}catch (Exception e){
e.printStackTrace();
bb.writeLog("getVotingType-e:"+e);
}
bb.writeLog("getVotingType-xxid:"+xxid);
return xxid;
}
}
Loading…
Cancel
Save