Commit 4ec46b6f by whl

源码迁入

parent e5b8638f

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

*.jar
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bsoft</groupId>
<artifactId>ch-jg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!-- <parent>
<groupId>com.bsoft</groupId>
<artifactId>hcms-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>2.6</version>
</parent> -->
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6_g</artifactId>
<version>12.1.0.1</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.5.0</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.bsoft</groupId>
<artifactId>hcms</artifactId>
<version>2.6</version>
<exclusions>
<exclusion>
<artifactId>db2jcc-9.5</artifactId>
<groupId>db2jcc-9.5</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.bsoft.app.analysis.api;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.bsoft.app.analysis.entity.AnalysisResult;
import com.bsoft.app.util.MyVaildateUtil;
import ctd.util.AppContextHolder;
public class AnalysisServiceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// private AnalysisService jxService = null;
//
// public AnalysisService getJxService() {
// return jxService;
// }
//
//
// public void setJxService(AnalysisService jxService) {
// this.jxService = jxService;
// }
public AnalysisServiceServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @Title: init
* @throws ServletException
* @author hurb 2015-9-16 下午3:35:38
* @see javax.servlet.GenericServlet#init()
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
/**
* @Title: JxServiceWebServlet.java
* @Package sqzg.application.jx.resource
* @Description:
* @author hurb
* @date 2015-8-14 下午3:19:11
* @version V1.0
*/
package com.bsoft.app.analysis.api;
import javax.servlet.ServletConfig;
import com.bsoft.app.analysis.manager.AnalysisServiceManagerImpl;
import ctd.util.AppContextHolder;
/**
* 解析服务 不和spring整合的方式
* @ClassName: JxServiceWebServlet
* @Description:
* @author hurb
* @date 2015-8-14 下午3:19:11
*
*/
public class AnalysisServiceWSServlet {
// extends CXFNonSpringServlet
// private static final long serialVersionUID = 1L;
//
// protected void loadBus(ServletConfig servletConfig) {
// super.loadBus(servletConfig);
//
// Bus bus = getBus();
// BusFactory.setDefaultBus(bus);
//// JxServiceManagerImpl sxServiceWS = new JxServiceManagerImpl();// 实现类
// AnalysisServiceManagerImpl sxServiceWS = (AnalysisServiceManagerImpl) AppContextHolder.getBean("sqzg.jxWSManager");
//
// ServerFactoryBean serverFactoryBean = new ServerFactoryBean(); // server工厂
// serverFactoryBean.setServiceClass(JxServiceManager.class);// 接口类
// serverFactoryBean.setAddress("/JxServiceWSPub"); // 服务请求路径
// serverFactoryBean.setServiceBean(sxServiceWS);
// serverFactoryBean.create();
// }
}
/**
* @Title: FlagService.java
* @Package sqzg.application.jx.resource.core
* @Description:
* @author hurb
* @date 2016-1-29 上午9:43:59
* @version V1.0
*/
package com.bsoft.app.analysis.core;
import java.util.Set;
import org.apache.log4j.Logger;
/**
* 标签服务
* @ClassName: FlagService
* @Description:
* @author hurb
* @date 2016-1-29 上午9:43:59
*
*/
@SuppressWarnings("all")
public class FlagService {
private Logger logger = Logger.getLogger(this.getClass());
/**
* 判断是否需要生成均值副主键
* @Title: getAssistantFlag
* @param zSet
* @return boolean
* @author hurb 2015-12-9 下午5:26:52
*/
public boolean getJzKeyFlag(Set<String> zSet){
boolean jzKeyFlag = false;
if(zSet.contains("QQJZ") || zSet.contains("QSJZ")){
jzKeyFlag = true;
}
return jzKeyFlag;
}
/**
* 判断是否需要生成标准值副主键
* @Title: getJzKeyFlag
* @param zSet
* @return
* @return boolean
* @author hurb 2015-12-11 上午11:04:01
*/
public boolean getBzzKeyFlag(Set<String> zSet){
boolean bzzKeyFlag = false;
if(zSet.contains("BZZ") || zSet.contains("BJZ") || zSet.contains("YSZ")){
// if(zSet.contains("BZZ") || zSet.contains("BJZ")){
bzzKeyFlag = true;
}
return bzzKeyFlag;
}
/**
* 判断是否要查询执行值的数据
* @Title: getZxzFlag
* @param zSet
* @return boolean
* @author hurb 2015-12-13 上午11:22:36
*/
public boolean getZxzFlag(Set<String> zSet){
boolean zxzFlag = false;
if(zSet.contains("ZXZ") || zSet.contains("TBZ") || zSet.contains("HBZ") || zSet.contains("PJZ") || zSet.contains("ZWZ")
|| zSet.contains("ZDZ") || zSet.contains("UXZ") || zSet.contains("ZXZBHGZL") || zSet.contains("ZXZJXJJ")){
zxzFlag = true;
}
return zxzFlag;
}
/**
* 判断是否要取属性的数据
* @Title: getPopFlag
* @param zSet
* @return
* @return boolean
* @author hurb 2015-12-25 下午3:43:14
*/
public boolean getPopFlag(Set<String> zSet){
boolean popFlag = false;
if(zSet.contains("PJZ") || zSet.contains("ZWZ")
|| zSet.contains("ZDZ") || zSet.contains("UXZ")){
popFlag = true;
}
return popFlag;
}
/**
* 判断是否需要BHZ、BHDJ的数据
* @Title: getBhzAndBhdjFlag
* @param zSet
* @return boolean
* @author hurb 2016-1-30 下午5:06:02
*/
public boolean getBhzAndBhdjFlag(Set<String> zSet){
boolean bhzAndBhdjFlag = false;
if(zSet.contains("BHZ") || zSet.contains("BHDJ")|| zSet.contains("YSZBHGZL")|| zSet.contains("YSZJXJJ")|| zSet.contains("ZXZBHGZL")|| zSet.contains("ZXZJXJJ")){
bhzAndBhdjFlag = true;
}
return bhzAndBhdjFlag;
}
/**
* 判断是否需要BHZQJ的数据
* @Title: getBhzQjFlag
* @param zSet
* @return
* @return boolean
* @author hurb 2016-3-3 下午7:16:58
*/
public boolean getBhzQjFlag(Set<String> zSet){
boolean bhzQjFlag = false;
if(zSet.contains("BHZQJ")){
bhzQjFlag = true;
}
return bhzQjFlag;
}
/**
* 判断是否要查询执行值的数据
* @Title: getYszFlag
* @param zSet
* @return boolean
* @author hurb 2016-3-21 上午10:34:40
*/
public boolean getYszFlag(Set<String> zSet){
boolean zxzFlag = false;
if(zSet.contains("YSZ") || zSet.contains("YSZBHGZL") || zSet.contains("YSZJXJJ")){
zxzFlag = true;
}
return zxzFlag;
}
/**
* 判断是否需要取执行值标化工作量
* @Title: getZxzbhgzlFlag
* @param zSet
* @return boolean
* @author hurb 2016-3-21 上午10:47:37
*/
public boolean getZxzbhgzlFlag(Set<String> zSet){
boolean zxzbhgzlFlag = false;
if(zSet.contains("ZXZBHGZL")){
zxzbhgzlFlag = true;
}
return zxzbhgzlFlag;
}
/**
* 判断是否需要取执行值绩效奖金
* @Title: getZxzjxjjFlag
* @param zSet
* @return boolean
* @author hurb 2016-3-21 上午10:47:37
*/
public boolean getZxzjxjjFlag(Set<String> zSet){
boolean zxzjxjjFlag = false;
if(zSet.contains("ZXZJXJJ")){
zxzjxjjFlag = true;
}
return zxzjxjjFlag;
}
/**
* 判断是否需要取预算值标化工作量、预算值绩效奖金
* @Title: getYszbhgzlFlag
* @param zSet
* @return boolean
* @author hurb 2016-3-21 上午10:47:37
*/
public boolean getYszbhgzlFlag(Set<String> zSet){
boolean yszbhgzlFlag = false;
if(zSet.contains("YSZBHGZL") || zSet.contains("YSZJXJJ")){
yszbhgzlFlag = true;
}
return yszbhgzlFlag;
}
/**
* 判断是否需要取预算值绩效奖金
* @Title: getYszjxjjFlag
* @param zSet
* @return boolean
* @author hurb 2016-3-21 上午10:47:37
*/
public boolean getYszjxjjFlag(Set<String> zSet){
boolean yszjxjjFlag = false;
if(zSet.contains("YSZJXJJ")){
yszjxjjFlag = true;
}
return yszjxjjFlag;
}
/**
* 判断是否需要BHZSJ的数据
* @Title: getBhzQjFlag
* @param zSet
* @return boolean
* @author hurb 2016-4-13 下午12:21:05
*/
public boolean getBhzSjFlag(Set<String> zSet){
boolean bhzQjFlag = false;
if(zSet.contains("BHZSJ")){
bhzQjFlag = true;
}
return bhzQjFlag;
}
}
package com.bsoft.app.analysis.core.dao;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.Callable;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.bsoft.app.analysis.core.AssembleService;
import com.bsoft.app.analysis.core.DataService;
import com.bsoft.app.util.MyVaildateUtil;
import ctd.controller.exception.ControllerException;
import ctd.dictionary.Dictionary;
import ctd.dictionary.DictionaryController;
import ctd.dictionary.DictionaryItem;
public class AssembleIndicThread implements Callable {
private String themeId;
private Map<String, Map<String, Object>> resultMap;
private JSONArray dataArray;
private Set<String> zSet;
private String config;
private DataService dataService;
private AssembleService assembleService;
private int startIndex;
private int endIndex;
private Dictionary zbDictionary;
private Set<String> indicSet;
private Map<String, JSONObject> extraGroupMap;
public AssembleIndicThread(String themeId, Map<String, Map<String, Object>> resultMap, JSONArray dataArray,
Set<String> zSet, String config, DataService dataService, AssembleService assembleService, int startIndex,
int endIndex, Dictionary zbDictionary, Set<String> indicSet,Map<String, JSONObject> extraGroupMap) {
this.themeId = themeId;
this.resultMap = resultMap;
this.dataArray = dataArray;
this.zSet = zSet;
this.config = config;
this.dataService = dataService;
this.assembleService = assembleService;
this.startIndex = startIndex;
this.endIndex = endIndex;
this.zbDictionary = zbDictionary;
this.indicSet = indicSet;
this.extraGroupMap=extraGroupMap;
}
public Object call() throws Exception {
String msg = "";
Set<String> keySet = new TreeSet<String>();
if (null != resultMap && resultMap.size() > 0) {
keySet.addAll(resultMap.keySet());
}
Map<String, Object> jsonMap = null;
String tempZbid = "";
DictionaryItem tempZbidDictionaryItem = null;
int xsws = 0;
String format;
String jldw = "";
//Set<String> indicSet = this.dataService.getThemeIndic2(themeId);
String[] keyArray = keySet.toArray(new String[0]);
for (int i = startIndex; i < endIndex; i++) {
String key = keyArray[i];
tempZbid = key.substring(0, 4);
//
if (!indicSet.contains(tempZbid)) {
continue;
}
jsonMap = new HashMap<String, Object>();
jsonMap.put("ZBID", tempZbid);
tempZbidDictionaryItem = zbDictionary.getItem(tempZbid);
if (null == tempZbidDictionaryItem) {
continue;
}
jldw = (String) tempZbidDictionaryItem.getProperty("UNITS_OF_MEASUREMENT");
jsonMap.putAll(resultMap.get(key));
try {
xsws = Integer.parseInt(String.valueOf(tempZbidDictionaryItem.getProperty("DECIMAL_DIGITS")));
} catch (Exception e) {
xsws = 0;
}
format = "%." + xsws + "f";
assembleService.formatVal(jldw, format, jsonMap, tempZbidDictionaryItem, zSet, null,extraGroupMap);
boolean needRemNullIndic = false;
try {
if (MyVaildateUtil.validate(config)) {
List<String> removeFlags = dataService.getConfigProperties(config, "indic", "removeEmptyIndic",
null);
if (!removeFlags.isEmpty()) {
boolean removeFlag = Boolean.parseBoolean(removeFlags.get(0));
if (removeFlag) {
List<String> byValueTypes = dataService.getConfigProperties(config, "indic", "valueType",
"z");
if (!byValueTypes.isEmpty()) {
String removeNullFlag = "";
List<String> removeNullFlags = dataService.getConfigProperties(config, "indic",
"removeNullFlag", null);
if (!removeNullFlags.isEmpty()) {
removeNullFlag = removeNullFlags.get(0);
}
boolean nullFlag = assembleService.valueIsNull(zSet, jsonMap, byValueTypes,
removeNullFlag);
needRemNullIndic = true;
if (nullFlag) {
assembleService.removeSuperfluousVal(zSet, jsonMap);
dataArray.put(net.sf.json.JSONObject.fromObject(jsonMap));
}
}
}
}
}
if (!needRemNullIndic) {
assembleService.putDefaultVal(zSet, jsonMap);
assembleService.removeSuperfluousVal(zSet, jsonMap);
dataArray.put(net.sf.json.JSONObject.fromObject(jsonMap));
}
} catch (JSONException e) {
msg = "解析配置参数config出现异常:" + e.getMessage();
return msg;
}
jsonMap = null;
tempZbidDictionaryItem = null;
}
return msg;
}
}
package com.bsoft.app.analysis.core.dao;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import com.bsoft.app.analysis.dao.CommonJdbcDao;
public class ListIndicThread implements Callable {
private CommonJdbcDao commonJdbcDao;
private String themeTable;
private String tableTempId;
private String zxzBaseStartSql;
private String zxzBaseEndSql;
private String zbid;
private String conditionSql;
public ListIndicThread(CommonJdbcDao commonJdbcDao, String themeTable, String tableTempId,String zbid,
String zxzBaseStartSql,String zxzBaseEndSql,String conditionSql) {
this.commonJdbcDao = commonJdbcDao;
this.themeTable = themeTable;
this.tableTempId = tableTempId;
this.zbid=zbid;
this.zxzBaseStartSql=zxzBaseStartSql;
this.zxzBaseEndSql=zxzBaseEndSql;
this.conditionSql=conditionSql;
}
public Object call() throws Exception {
String msg = "";
List<Map<String, Object>> tempList = null;
Map<String, Object> parameters = new LinkedHashMap<String, Object>();
StringBuffer sql = new StringBuffer("");
sql.append(zxzBaseStartSql).append(" from ").append(themeTable).append(" a,INDIC_BASE b,")
.append("TEMP_DIM").append(" tw ")
.append("$tempTableSql$ where $tempJsztSql$ a.ZBID = B.ID and tw.HANDLE_ID='").append(tableTempId)
.append("'").append(zxzBaseEndSql).append(" ")
.append("and a.ZBID=").append(zbid).append(" ").append(conditionSql);
String s = sql.toString();
s = s.replace("$tempJsztSql$", "");
s = s.replace("$tempMonthsSql$", "");
s = s.replace("$tempTableSql$", "");
try {
tempList = commonJdbcDao.queryForList(s, parameters);
} catch (Exception e) {
e.printStackTrace();
msg = "获取指标值出错," + e.getMessage();
}
/*if (null != tempList && tempList.size() > 0) {
resultList.addAll(tempList);
}
tempList = null;*/
return tempList;
}
}
/**
* @Title: ListZxzThread.java
* @Package sqzg.application.jx.resource.dao
* @Description:
* @author hurb
* @date 2015-11-24 下午5:09:51
* @version V1.0
*/
package com.bsoft.app.analysis.core.dao;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
import com.bsoft.app.analysis.dao.CommonJdbcDao;
/**
* @ClassName: ListZxzThread
* @Description:
* @author hurb
* @date 2015-11-24 下午5:09:51
*
*/
public class ListZxzThread implements Callable{
private String tableName;
private String zxzBaseStartSql;
private String zxzBaseEndSql;
private String zxzBaseExtSql;
private Set<String> wdbmSet;
private String monthsWd;
private CommonJdbcDao commonJdbcDao;
private String tableTempId;
private List<Map<String, Object>> resultList;
private Set<String> groupWdSet;
public ListZxzThread(String tableName,String zxzBaseStartSql,String zxzBaseEndSql,String zxzBaseExtSql,Set<String> wdbmSet,String monthsWd,
CommonJdbcDao commonJdbcDao,String tableTempId,List<Map<String, Object>> resultList,Set<String> groupWdSet) {
this.tableName = tableName;
this.zxzBaseStartSql = zxzBaseStartSql;
this.zxzBaseEndSql = zxzBaseEndSql;
this.zxzBaseExtSql = zxzBaseExtSql;
this.wdbmSet = wdbmSet;
this.monthsWd = monthsWd;
this.commonJdbcDao = commonJdbcDao;
this.tableTempId = tableTempId;
this.resultList = resultList;
this.groupWdSet = groupWdSet;
}
/**
* @Title: call
* @return
* @throws Exception
* @author hurb 2015-11-24 下午5:10:26
* @see java.util.concurrent.Callable#call()
*/
public Object call() throws Exception {
String msg = "";
List<Map<String, Object>> tempList = null;
StringBuffer sql = new StringBuffer("");
Map<String, Object> parameters = new LinkedHashMap<String, Object>();
sql.append(zxzBaseStartSql).append(" from ")
.append(tableName).append(" a,INDIC_BASE b,TEMP_INDIC c,")
.append("TEMP_DIM").append(" tw ")
.append("$tempTableSql$ where $tempJsztSql$ a.ZBID = B.ID and a.ZBID = c.INDIC_ID and tw.HANDLE_ID = c.HANDLE_ID and c.HANDLE_ID='")
.append(tableTempId).append("'")
.append(zxzBaseEndSql).append(" ").append(zxzBaseExtSql);
// String groupBySql =" option(hash group) ";
String groupBySql =" ";
String s = sql.toString();
s = s.replace("$tempJsztSql$", "");
s = s.replace("$tempMonthsSql$", "");
s = s.replace("$tempTableSql$", "");
s = s.replace("$tempJsfsSql$", "");
s = s.replace("$tempYwsjSql$", "");
try {
tempList = commonJdbcDao.queryForList(s+groupBySql, parameters);
} catch (Exception e) {
e.printStackTrace();
msg = "获取执行值出错,"+e.getMessage();
throw new Exception(msg);
}
if(null != tempList && tempList.size()>0){
resultList.addAll(tempList);
}
tempList = null;
return resultList;
}
}
/**
* @Title: CommonJdbcDao.java
* @Package core.source.service
* @Description:
* @author hurb
* @date 2015-9-10 下午6:50:37
* @version V1.0
*/
package com.bsoft.app.analysis.dao;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: CommonJdbcDao
* @Description:
* @author hurb
* @date 2015-9-10 下午6:50:37
*
*/
public interface CommonJdbcDao {
public abstract long execute(String sql, Object[] paramArrayOfObject);
public abstract long save(String sql, Map<String, Object> paramsMap);
public List<Map<String, Object>> queryForList(String sql, Map<String, Object> paramsMap);
@Deprecated
public void batchSave(String sql, List<LinkedHashMap<String, Object>> paramsList);
public void batchSaveNew(String sql, List<Map<String, Object>> paramsList);
public Map<String, Object> queryForMap(String sql, Map<String, Object> paramsMap);
}
/**
* @Title: CommonJdbcDaoImpl.java
* @Package core.source.service
* @Description:
* @author hurb
* @date 2015-9-10 下午6:53:07
* @version V1.0
*/
package com.bsoft.app.analysis.dao;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import ctd.util.exp.standard.INT;
/**
* @ClassName: CommonJdbcDaoImpl
* @Description:
* @author hurb
* @date 2015-9-10 下午6:53:07
*
*/
public class CommonJdbcDaoImpl implements CommonJdbcDao {
private Logger logger = LoggerFactory.getLogger(CommonJdbcDaoImpl.class);
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public long execute(String sql, Object[] params) {
if (this.logger.isDebugEnabled()) {
this.logger.debug(sql);
}
return getJdbcTemplate().update(sql, params);
}
public long save(String sql, Map<String, Object> paramsMap) {
if (null != paramsMap && !paramsMap.isEmpty()) {
// Object[] params = new Object[paramsMap.size()];
// int i = 0;
// for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
// sql = sql.replace(":" + entry.getKey(), "?");
// params[i] = entry.getValue();
// i++;
// }
// return getJdbcTemplate().update(sql, params);
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
sql = sql.replace(":" + entry.getKey(), "'"+String.valueOf(entry.getValue())+"'");
sql = sql.replace("$" + entry.getKey(), String.valueOf(entry.getValue()));
}
this.logger.error(sql);
return getJdbcTemplate().update(sql);
}
this.logger.error(sql);
return getJdbcTemplate().update(sql);
}
public List<Map<String, Object>> queryForList(String sql,
Map<String, Object> paramsMap) {
if (null != paramsMap && !paramsMap.isEmpty()) {
// Object[] params = new Object[paramsMap.size()];
// int i = 0;
// for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
// sql = sql.replace(":" + entry.getKey(), "?");
// params[i] = entry.getValue();
// i++;
// }
// return getJdbcTemplate().queryForList(sql, params);
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
sql = sql.replace(":" + entry.getKey(), "'"+String.valueOf(entry.getValue())+"'");
sql = sql.replace("$" + entry.getKey(), String.valueOf(entry.getValue()));
}
this.logger.info(sql);
return getJdbcTemplate().queryForList(sql);
}
this.logger.info(sql);
return getJdbcTemplate().queryForList(sql);
}
@Deprecated
public void batchSave(String sql, List<LinkedHashMap<String, Object>> paramsList) {
if(null != paramsList && paramsList.size()>0){
LinkedHashMap<String, Object> paramsMap = paramsList.get(0);
Map<Integer,String> tempParamsSortMap = new HashMap<Integer,String>();
final Map<String, Integer> paramsSortMap = new HashMap<String, Integer>();
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
tempParamsSortMap.put(sql.indexOf(":" + entry.getKey()),entry.getKey());
}
Set<Integer> paramsSortSet = new TreeSet<Integer>();
paramsSortSet.addAll(tempParamsSortMap.keySet());
int s = 1;
for(Integer sort : paramsSortSet){
if(sort>-1){
paramsSortMap.put(tempParamsSortMap.get(sort), s);
s++;
}
}
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
sql = sql.replace(":" + entry.getKey(), "?");
}
final List<LinkedHashMap<String, Object>> tempParamsList = paramsList;
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
LinkedHashMap<String, Object> tempParamsMap = tempParamsList.get(i);
// int c = 1;
//// Object value = null;
// for (Map.Entry<String, Object> entry : tempParamsMap.entrySet()){
//// value = entry.getValue();
//// if(value instanceof Double){
//// ps.setDouble(c, Double.parseDouble(String.valueOf(entry.getValue())));
//// }else{
//// ps.setObject(c, entry.getValue());
//// }
// ps.setObject(c, entry.getValue());
// c++;
// }
for (Map.Entry<String, Object> entry : tempParamsMap.entrySet()){
if(paramsSortMap.containsKey(entry.getKey())){
ps.setObject(paramsSortMap.get(entry.getKey()), entry.getValue());
}
}
}
public int getBatchSize() {
return tempParamsList.size();
}
});
}
}
/**
* @Title: queryForMap
* @param sql
* @param paramsMap
* @return
* @author hurb 2015-11-6 下午2:27:52
* @see core.source.dao.CommonJdbcDao#queryForMap(java.lang.String, java.util.Map)
*/
public Map<String, Object> queryForMap(String sql,
Map<String, Object> paramsMap) {
if (null != paramsMap && !paramsMap.isEmpty()) {
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
sql = sql.replace(":" + entry.getKey(), "'"+String.valueOf(entry.getValue())+"'");
sql = sql.replace("$" + entry.getKey(), String.valueOf(entry.getValue()));
}
this.logger.error(sql);
return getJdbcTemplate().queryForMap(sql);
}
this.logger.error(sql);
return getJdbcTemplate().queryForMap(sql);
}
/**
* @Title: batchSaveNew
* @param sql
* @param paramsList
* @author hurb 2015-12-9 下午2:41:25
* @see core.source.dao.CommonJdbcDao#batchSaveNew(java.lang.String, java.util.List)
*/
public void batchSaveNew(String sql, List<Map<String, Object>> paramsList) {
if(null != paramsList && paramsList.size()>0){
Map<String, Object> paramsMap = paramsList.get(0);
Map<Integer,String> tempParamsSortMap = new HashMap<Integer,String>();
final Map<String, Integer> paramsSortMap = new HashMap<String, Integer>();
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
tempParamsSortMap.put(sql.indexOf(":" + entry.getKey()),entry.getKey());
}
Set<Integer> paramsSortSet = new TreeSet<Integer>();
paramsSortSet.addAll(tempParamsSortMap.keySet());
int s = 1;
for(Integer sort : paramsSortSet){
if(sort>-1){
paramsSortMap.put(tempParamsSortMap.get(sort), s);
s++;
}
}
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
sql = sql.replace(":" + entry.getKey(), "?");
}
final List<Map<String, Object>> tempParamsList = paramsList;
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
Map<String, Object> tempParamsMap = tempParamsList.get(i);
// int c = 1;
//// Object value = null;
// for (Map.Entry<String, Object> entry : tempParamsMap.entrySet()){
//// value = entry.getValue();
//// if(value instanceof Double){
//// ps.setDouble(c, Double.parseDouble(String.valueOf(entry.getValue())));
//// }else{
//// ps.setObject(c, entry.getValue());
//// }
// ps.setObject(c, entry.getValue());
// c++;
// }
for (Map.Entry<String, Object> entry : tempParamsMap.entrySet()){
if(paramsSortMap.containsKey(entry.getKey())){
ps.setObject(paramsSortMap.get(entry.getKey()), entry.getValue());
}
}
}
public int getBatchSize() {
return tempParamsList.size();
}
});
}
}
}
/*
* @(#)JxResult.java 1.0 2015-6-8
*
* Copyright (c) 2007-2015 Shanghai BSOFT IT, Co., Ltd.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Shanghai BSFOT IT Co., Ltd. ("Confidential Information").
* You shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement you
* entered into with BSOFT.
*/
package com.bsoft.app.analysis.entity;
import java.io.Serializable;
import com.bsoft.app.util.Pager;
/**
* 解析返回结果
* @version 1.0 2015-6-8
* @author hurb
* @history
*
*/
public class AnalysisResult implements Serializable{
/**解析是否成功 1=成功,0=失败*/
private String flag;
/**解析时返回的提示信息 成功时可为空*/
private String msg;
/**解析成功时 返回的信息主体*/
private String body;
/**表格表头*/
private String head;
/**其他的额外的属性*/
private String prop;
/**分页信息*/
private Pager pager;
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public String getProp() {
return prop;
}
public void setProp(String prop) {
this.prop = prop;
}
public Pager getPager() {
return pager;
}
public void setPager(Pager pager) {
this.pager = pager;
}
}
/**
* @Title: JxServiceManager.java
* @Package sqzg.application.jx.resource
* @Description:
* @author hurb
* @date 2015-8-13 下午2:00:12
* @version V1.0
*/
package com.bsoft.app.analysis.manager;
/**
* 解析服务管理
* @ClassName: JxServiceManager
* @Description:
* @author hurb
* @date 2015-8-13 下午2:00:12
*
*/
public interface AnalysisServiceManager {
/**
* 指标解析
* @param zbid 指标的json数组 包含zbid 值为jcsj_zbdy中的指标ID
* ex: [{'zbid':'1000'},{'zbid':1001}]
* @param wd 维度的json数组 包含wdid 值为jcsj_zbwd中的维度ID、值 、是否要聚合(默认Y)、值类型(默认N)
* ex:[{'wdid':'402881ee4d989d22014d99617d50000a','startTime':'2014','endTime':'2015','isGroup':'Y'},{'wdid':'402881ee4d989d22014d996296f5000c','value':[{'v':'1'},{'v':'2'}],
* 'isGroup':'N','multiSel':'Y'}]
* @param z 值的JSON数组 这些指标需要取的列 值有ZXZ,YSZ,TBZ,HBZ,QQJZ,QSJZ
* ex:[{'z':'ZXZ'},{'z':'TBZ'}]
* @param dao
* @param ctx
* @return
* hurb 2015-8-13
*/
public String zbListAnalysis(String zbid,String wd,String z);
}
/**
* @Title: JxServiceManager.java
* @Package sqzg.application.jx.resource
* @Description:
* @author hurb
* @date 2015-8-13 下午2:00:12
* @version V1.0
*/
package com.bsoft.app.analysis.manager;
import com.bsoft.app.analysis.entity.AnalysisResult;
import com.bsoft.app.analysis.service.AnalysisService;
/**
* 解析服务管理
* @ClassName: JxServiceManager
* @Description:
* @author hurb
* @date 2015-8-13 下午2:00:12
*
*/
public class AnalysisServiceManagerImpl implements AnalysisServiceManager{
private AnalysisService jxService;
public AnalysisService getJxService() {
return jxService;
}
public void setJxService(AnalysisService jxService) {
this.jxService = jxService;
}
/**
* 指标解析
* @param zbid 指标的json数组 包含zbid 值为jcsj_zbdy中的指标ID
* ex: [{'zbid':'1000'},{'zbid':1001}]
* @param wd 维度的json数组 包含wdid 值为jcsj_zbwd中的维度ID、值 、是否要聚合(默认Y)、值类型(默认N)
* ex:[{'wdid':'402881ee4d989d22014d99617d50000a','startTime':'2014','endTime':'2015','isGroup':'Y'},
* {'wdid':'402881ee4d989d22014d996296f5000c','value':[{'v':'1'},{'v':'2'}],
* 'isGroup':'N','multiSel':'Y'}]
* @param z 值的JSON数组 这些指标需要取的列 值有ZXZ,YSZ,TBZ,HBZ,QQJZ,QSJZ
* ex:[{'z':'ZXZ'},{'z':'TBZ'}]
* @param dao
* @param ctx
* @return
* hurb 2015-8-13
*/
public String zbListAnalysis(String zbid,String wd,String z){
// JxResult jxResult = this.getJxServiceInstance().zbListAnalysis(zbid, wd, z);
AnalysisResult jxResult = this.jxService.zbListAnalysis(zbid, wd, z,null,null);
String result = net.sf.json.JSONObject.fromObject(jxResult).toString();
return result;
}
}
/**
* 提供数据模型模块相关接口的服务类
* 2017-09-16
* zhaory
*/
package com.bsoft.app.analysis.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.dao.CNDHelper;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.util.context.Context;
import ctd.util.context.ContextUtils;
public class DataModelAnalysisService extends AbstractController{
String themeSchema = "hcms.app.datamodel.schema.DMC_THEME";
String dimSchema = "hcms.app.datamodel.schema.DMC_DIMENSION";
/*public void doTest(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<String> list=new ArrayList<String>();
list.add("COUNTRY");
list.add("YYLX");
list.add("ZGDW");
try {
List list2=this.getDimensionList(list);
System.out.println("sds"+list2.size());
} catch (ModelOperationException e) {
e.printStackTrace();
}
}*/
/**
* 根据主题编码获得主题信息
* @param themeCode:主题编码
* @return
* @throws ModelOperationException
*/
public Map<String, Object> getThemeBycode(String themeCode) throws ModelOperationException{
Context ctx = ContextUtils.getContext();
BaseDAO dao = new BaseDAO(ctx);
List<Object> cnd1=CNDHelper.createSimpleCnd("eq", "status", "s", "2");//状态为2表示启用
List<Object> cnd2=CNDHelper.createSimpleCnd("eq", "code", "s", themeCode);//主题编码
List<Object> cnd=CNDHelper.createArrayCnd("and", cnd1, cnd2);
List<Map<String, Object>> resultList=dao.doQuery(cnd, "ctb1 desc", themeSchema);//按照新增时间排序
Map<String, Object> themeMap=new HashMap<String,Object>();
if(resultList.size()>0){
themeMap=resultList.get(0);
}
return themeMap;
}
/**
* 根据纬度编码集合获得纬度信息集合
* @param dimensionCodeList:纬度编码集合
* @return dimensionList:纬度信息集合
* @throws ModelOperationException
*/
public List<Map<String, Object>> getDimensionList(List<String> dimensionCodeList) throws ModelOperationException{
List<Map<String, Object>> dimensionList = new ArrayList<Map<String, Object>>();
if(null!=dimensionCodeList&&!dimensionCodeList.isEmpty()){
Context ctx = ContextUtils.getContext();
BaseDAO dao = new BaseDAO(ctx);
List<Object> cnd=CNDHelper.createInCnd("code", dimensionCodeList);
dimensionList=dao.doQuery(cnd, "recordId", dimSchema);
}
return dimensionList;
}
}
/*
* @(#)JxjsUtils.java 1.0 2013-4-27
*
* Copyright (c) 2007-2013 Shanghai BSOFT IT, Co., Ltd.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Shanghai BSFOT IT Co., Ltd. ("Confidential Information").
* You shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement you
* entered into with BSOFT.
*/
package com.bsoft.app.analysis.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.apache.commons.lang.StringUtils;
/**
* 绩效计算计算工具类.
* @version 1.0 2013-4-27
* @author 许颜超
* @history
*
*/
public class JxjsUtils {
private static ScriptEngineManager mgr = new ScriptEngineManager();
private static ScriptEngine engine = mgr.getEngineByName("JavaScript");
private static String regstr = "(a>=[0-9.]+\\?[0-9.]+:){1,}[0-9.]+";
private static Pattern pattern = Pattern.compile(regstr);
/***
* 绩效计算
* @param jsgs 计算的公式 eg: a>=0.85?1.0:a>=0.83?0.8:a>=0.8?0.6:0.4
* @param sl 计算的数据,数量 eg :0.84
* @return
*/
public static Double jxjs(String jsgs,Double sl){
double result = 0.0d;
if(StringUtils.isEmpty(jsgs)){
return result;
}
Matcher matcher = pattern.matcher(jsgs);
if(matcher.find()){
jsgs = jsgs.replaceAll("a", String.valueOf(sl));
result = eval(jsgs);
}
return result;
}
/***
* JavaScript中eval方法
* @param jsstr
* @return
*/
public static Double eval(String jsstr){
double result = 0.0d;
try {
result = (Double) engine.eval(jsstr);
} catch (ScriptException e) {
// e.printStackTrace();
}
return result;
}
/***
* 和eval 不同的是 出现异常 返回"" 不返回0
* JavaScript中eval方法
* @param jsstr
* @return
*/
public static String eval2(String jsstr){
// System.out.println(jsstr);
double result = 0.0d;
try {
result = (Double) engine.eval(jsstr);
} catch (ScriptException e) {
// e.printStackTrace();
return "0";
}
if(Double.isNaN(result)){
return "0";
}
if(Double.isInfinite(result)){
return "0";
}
return String.valueOf(result);
}
}
/**
* @Title: ConfigService.java
* @Package com.bsoft.app.config
* @Description:
* @author hurb
* @date 2016-6-13 上午10:47:57
* @version V1.0
*/
package com.bsoft.app.config;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import com.bsoft.app.log.MyLog4jLoggerAdapter;
import com.bsoft.app.log.MyLoggerFactory;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
/**
* 系统配置服务
* @ClassName: ConfigService
* @Description:
* @author hurb
* @date 2016-6-13 上午10:47:57
*
*/
public class ConfigService extends AbstractController {
Logger logger = MyLoggerFactory.getLogger(this.getClass());
/**
* 删除配置
* @Title: doRemove
* @param req
* @param resp
* @param ctx
* @throws ServiceException
* @return void
* @author hurb 2016-6-13 上午10:50:48
* @throws ModelOperationException
*/
public void doRemove(Map<String, Object> req, Map<String, Object> resp, Context ctx) throws ServiceException, ModelOperationException{
Integer pkey = (Integer)req.get("pkey");
String schema = (String)req.get("schema");
Map<String, Object> record = new HashMap<String, Object>(2);
record.put("ID", pkey);
record.put("STATUS", '0');
BaseDAO dao = new BaseDAO(ctx);
dao.doSave("update", schema, record, false);
logger.debug("删除配置信息");
}
}
package com.bsoft.app.config.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
/**
* 系统参数、系统资源工具类
* @ClassName: SystemConfigUtil
* @Description:
* @author hurb
* @date 2015-10-30 上午10:24:58
*
*/
public class SysConfUtil {
static Map<String, String> result = new HashMap<String, String>(100);
/**
* 获取所有的有效的系统参数
* @Title: getAllConf
* @param Code
* @param dao
* @return Map<String,Object>
* @author hurb 2015-10-30 上午10:10:52
*/
private static Map<String, String> getAllConf(BaseDAO dao){
String hql = "FROM CFG_BASE";
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
try {
list = dao.doQuery(hql, null);
} catch (ModelOperationException e) {
e.printStackTrace();
}
if(list.size() > 0) {
for(Map<String, Object> tempMap : list){
result.put(String.valueOf(tempMap.get("CFGCODE")), String.valueOf(tempMap.get("CFGVALUE")));
}
}
return result;
}
/**
* 获取系统内所有的配置信息
* @Title: getAllConf
* @return Map<String,String>
* @author hurb 2015-10-30 上午10:20:26
*/
public static Map<String, String> getAllConf() {
if(result.isEmpty()){
result = getAllConf(new BaseDAO());
}
return result;
}
/**
* 获取系统内某一项的配置信息
* @Title: getOneConf
* @param configCode
* @return String
* @author hurb 2015-10-30 上午10:22:26
*/
public static String getOneConf(String configCode) {
if(result.isEmpty()){
result = getAllConf(new BaseDAO());
}
return result.get(configCode);
}
}
package com.bsoft.app.datamodel;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.bsoft.app.util.MyVaildateUtil;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.controller.ErrorCode;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.dao.CNDHelper;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
public class DataDetailService extends AbstractController {
private Logger logger = Logger.getLogger(this.getClass());
private String schema = "hcms.app.datamodel.schema.DMC_DATADETAIL";
public void doUpdatedd(Map<String, Object> req, Map<String, Object> res, Context ctx) {
BaseDAO dao = new BaseDAO(ctx);
Map<String, Object> record = new HashMap<String, Object>();
if (MyVaildateUtil.validate(req.get("recordId"))) {
record.put("recordId", req.get("recordId"));
}
try {
record.put("name", req.get("name"));
record.put("sqltemplate", req.get("sql"));
record.put("dimension", req.get("dicData"));
record.put("resultset", req.get("resultData"));
record.put("remark", req.get("remark"));
record.put("page", req.get("page"));
record.put("status", req.get("status"));
String op = (String) req.get("op");
dao.doSave(op, schema, record, false);
} catch (Exception e) {
res.put(ErrorCode.CODE, ErrorCode.SERVICE_EXECUTE_FAILED);
e.printStackTrace();
logger.error("保存指标数据明细信息出错," + e.getMessage());
}
}
public void doGetdd(Map<String, Object> req, Map<String, Object> res, Context ctx) {
try {
BaseDAO dao = new BaseDAO(ctx);
String recordId = (String) req.get("recordId");
if (!MyVaildateUtil.validate(recordId)) {
res.put("msg", "主键为空,无法修改");
} else {
Map<String, Object> data=dao.doLoad(schema, recordId);
res.put("body", data);
}
} catch (ModelOperationException e) {
res.put(ErrorCode.CODE, ErrorCode.SERVICE_EXECUTE_FAILED);
res.put("msg", "查询数据出现异常");
e.printStackTrace();
}
}
public void doUpdateStatus(Map<String, Object> req, Map<String, Object> res, Context ctx) throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
Map<String,Object> param=(Map<String, Object>) req.get("body");
dao.doUpdate(schema, param, false);
}
}
/*
* Copyright 2016-2026 Bsoft
* File Name: TestService.java
* Author: Chengyh
* Version: 1.0
* Date: 16/5/26
* Description: 该接口用于定义处理服务请求的具体的执行方法
*
*/
package com.bsoft.app.datamodel;
import java.util.HashMap;
import java.util.Map;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.dao.SimpleDAO;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
public class DataModelDAOService extends AbstractController {
public void doRemoveValid(Map<String, Object> req, Map<String, Object> res, Context ctx) throws ServiceException {
try {
String recordId = (String) req.get("recordId");
if (recordId == null) {
throw new ModelOperationException("不能为空的主键");
}
String schema = (String) req.get("schema");
BaseDAO baseDao = new BaseDAO(ctx);
Map<String, Object> record = new HashMap<String, Object>();
record.put(FIELD_STATUS, STATUS_UNUSED);
record.put(FIELD_RECORDID, recordId);
if (baseDao.doLoad(schema, recordId).size() == 0) {
res.put("body", true);
return;
} else {
res.put("body", false);
return;
}
} catch (Exception e) {
throw new ServiceException(e);
}
}
}
/**
* Copyright 2016-2026 Bsoft
* File Name: ModelService.java
* Author: ChengYuheng
* Version: 1.0
* Date: 16/8/16
* Description: 实现数据模型功能中需要的后台服务
*
*/
package com.bsoft.app.datamodel;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import ctd.controller.exception.ControllerException;
@SuppressWarnings("unchecked")
public class DimensionService extends AbstractController {
private String dimSchema = "hcms.app.datamodel.schema.DMC_DIMENSION";
public void doCheckCode(Map<String, Object> req, Map<String, Object> res, Context ctx)
throws ServiceException, ModelOperationException {
BaseDAO dao = new BaseDAO(ctx);
String code = (String) req.get("code");
StringBuffer sql = new StringBuffer();
sql.append("select * from dmc_dimension where code ='" + code + "' and status = '1'");
List<Map<String, Object>> resultList = dao.doSqlQuery(sql.toString(), null);
if (resultList.size() > 0) {
res.put("result", false);
} else {
res.put("result", true);
}
}
public void doCheckCodeWhenUpdate(Map<String, Object> req, Map<String, Object> res, Context ctx)
throws ServiceException, ModelOperationException {
BaseDAO dao = new BaseDAO(ctx);
String code = (String) req.get("code");
String dimId = (String) req.get("dimId");
StringBuffer sql = new StringBuffer();
sql.append("select recordId as recordId from dmc_dimension where code ='" + code + "' and status = '1'");
List<Map<String, Object>> resultList = dao.doSqlQuery(sql.toString(), null);
if (resultList.size() == 1) {
Map<String, Object> result = resultList.get(0);
String recordId = (String) result.get("RECORDID");
if (recordId.equals(dimId)) {
res.put("result", true);
} else {
res.put("result", false);
}
} else if (resultList.size() == 0) {
if (resultList.size() == 0) {
res.put("result", true);
}
} else {
res.put("result", false);
}
}
public void doCallPro(Map<String, Object> req, Map<String, Object> res, Context ctx) {
Session ss = (Session) ctx.get(Context.DB_SESSION);
SQLQuery query = ss.createSQLQuery("{call temp_dim_create()}");
query.executeUpdate();
}
public void doRemove(Map<String, Object> req, Map<String, Object> res, Context ctx)
throws ValidateException, ModelOperationException {
String recordId = (String) req.get("recordId");
Map<String, Object> recordMap = new HashMap<>();
recordMap.put("recordId", recordId);
recordMap.put("status", "3");
BaseDAO dao = new BaseDAO(ctx);
dao.doUpdate(dimSchema, recordMap, false);
}
}
package com.bsoft.app.datamodel;
public interface ThemeEntryNames {
String DMC_THEME = "hcms.app.datamodel.schema.DMC_THEME";
String DMC_THEME_PROP = "hcms.app.datamodel.schema.DMC_THEME_PROP";
String DMC_THEME_IND_REF = "hcms.app.datamodel.schema.DMC_THEME_IND_REF";
String DMC_THEME_IND_ADD = "hcms.app.datamodel.schema.DMC_THEME_IND_ADD";
String DMC_THEME_DIM = "hcms.app.datamodel.schema.DMC_THEME_DIM";
String DMC_THEME_TABLECFG = "hcms.app.datamodel.schema.DMC_THEME_TABLECFG";
String DMC_THEME_BAR = "hcms.app.datamodel.schema.DMC_THEME_BAR";
String DMC_THEME_ONLYBAR = "hcms.app.datamodel.schema.DMC_THEME_ONLYBAR";
String DMC_THEME_ONLYLINE = "hcms.app.datamodel.schema.DMC_THEME_ONLYLINE";
String DMC_THEME_PIE = "hcms.app.datamodel.schema.DMC_THEME_PIE";
String DMC_THEME_BAR_IND = "hcms.app.datamodel.schema.DMC_THEME_BAR_IND";
String DMC_THEME_ONLYBAR_IND = "hcms.app.datamodel.schema.DMC_THEME_ONLYBAR_IND";
String DMC_THEME_COMPLEXTABLE_COLUMN="hcms.app.datamodel.schema.DMC_THEME_COMPLEXTABLE_COLUMN";
String DMC_THEME_COMPLEXTABLE_HEAD="hcms.app.datamodel.schema.DMC_THEME_COMPLEXTABLE_HEAD";
String DMC_THEME_COMPLEXTABLE="hcms.app.datamodel.schema.DMC_THEME_COMPLEXTABLE";
String DMC_THEME_TOP="hcms.app.datamodel.schema.DMC_THEME_TOP";
String DMC_THEME_ONLYLINE_IND = "hcms.app.datamodel.schema.DMC_THEME_ONLYLINE_IND";
String DMC_THEME_RADAR = "hcms.app.datamodel.schema.DMC_THEME_RADAR";
String DMC_THEME_GUAGE = "hcms.app.datamodel.schema.DMC_THEME_GUAGE";
String DMC_THEME_NOTMAP = "hcms.app.datamodel.schema.DMC_THEME_NOTMAP";
String DMC_THEME_WARN_OPTION = "hcms.app.datamodel.schema.DMC_THEME_WARN_OPTION";
String DMC_THEME_LINK = "hcms.app.datamodel.schema.DMC_THEME_LINK";
String DMC_THEME_LEVEL = "hcms.app.datamodel.schema.DMC_THEME_LEVEL";
String DMC_THEME_DIMLEVEL = "hcms.app.datamodel.schema.DMC_THEME_DIMLEVEL";
String DMC_THEME_RULE = "hcms.app.datamodel.schema.DMC_THEME_ALERT_RULE";
String DMC_THEME_ALERT = "hcms.app.datamodel.schema.DMC_THEME_ALERT";
String DMC_THEME_DATA = "hcms.app.datamodel.schema.DMC_THEME_DATA";
}
package com.bsoft.app.datamodel;
import java.sql.CallableStatement;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.dao.CNDHelper;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
public class ValueTypeService extends AbstractController{
private static String DMC_VALUETYPE_SCHEMAS = "hcms.app.datamodel.schema.DMC_VALUETYPE";
private static String DMC_MODEL_VALUETYPE_SCHEMAS="hcms.app.datamodel.schema.DMC_MODEL_VALUETYPE";
public void doSaveValueType(Map<String, Object> req,Map<String, Object> res, Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao = new BaseDAO(ctx);
Map<String, Object> body = (Map<String, Object>) req.get("body");
String op=(String) req.get("op");
if(("create").equals(op)){
dao.doSave("create", DMC_VALUETYPE_SCHEMAS, body, false);
}
if(("update").equals(op)){
//当值信息的类型为“0”(一般)的时候将计算公式和小数位置为空
String type=(String) body.get("type");
if("0".equals(type)){
body.put("decimal_digits", "");
body.put("formula", "");
}
dao.doSave("update", DMC_VALUETYPE_SCHEMAS, body, false);
}
}
/**
* 新增或者修改的时候要验证编码的唯一性,作唯一性校验时,不考虑已经被删除的数据
*/
public void doCheckCode(Map<String,Object> req,Map<String,Object>res,Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
String op=(String) req.get("op");
List<Object> cnd1=CNDHelper.createSimpleCnd("ne", "status", "s", "0");//状态为“0”,表示已经删除的数据
List<Object> cnd2=CNDHelper.createSimpleCnd("eq", "code", "s", req.get("code"));
List<Object> cnd=CNDHelper.createArrayCnd("and", cnd1, cnd2);
//当为修改操作的时候,校验的时候要除去正在被修改的那条信息
if(("update").equals(op)){
List<Object> cnd3=CNDHelper.createSimpleCnd("ne", "recordid", "s", req.get("recordId"));
cnd=CNDHelper.createArrayCnd("and", cnd, cnd3);
}
List<Map<String,Object>> list=dao.doList(cnd, null, DMC_VALUETYPE_SCHEMAS);
if(list.size()>0){
res.put("result", false);
}else{
res.put("result", true);
}
}
/**
* 修改状态:启用、禁用、删除等
*/
public void doUpdateStatus(Map<String,Object>req,Map<String,Object>res,Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
Map<String,Object> param=(Map<String, Object>) req.get("body");
dao.doUpdate(DMC_VALUETYPE_SCHEMAS, param, false);
}
/**
* 判断值类型是否被数据模型所引用,被引用result为true,否则返回false
*/
public void doIsUsedDataModel(Map<String,Object>req,Map<String,Object>res,Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
String recordId=(String) req.get("recordId");
Map<String,Object> record=dao.doLoad(DMC_VALUETYPE_SCHEMAS, recordId);
List<Object> cnd=CNDHelper.createSimpleCnd("eq", "DICKEY", "s", record.get("code"));
List<Map<String,Object>> valueTypes=dao.doQuery(cnd, null, DMC_MODEL_VALUETYPE_SCHEMAS);
if(valueTypes.size()>0){
res.put("result", true);
}else{
res.put("result", false);
}
}
/**
* 约束编码、类型不允许被修改,状态只允许修改为禁用或者启用
*/
public void doCheckChange(Map<String,Object>req,Map<String,Object>res,Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
Map<String,Object> body=(Map<String, Object>) req.get("body");
String recordId=(String) body.get("recordId");
Map<String,Object> record=dao.doLoad(DMC_VALUETYPE_SCHEMAS, recordId);
String codeDb=(String) record.get("code");
String typeDb=(String) record.get("type");
String codeReq=(String) body.get("code");
String typeReq=(String) body.get("type");
String statusReq=(String)body.get("status");
if(!codeDb.equals(codeReq)){
res.put("proMsg", "code");
return;
}
if(!typeDb.equals(typeReq)){
res.put("proMsg", "type");
return;
}
if(statusReq.equals("0")){
res.put("proMsg", "status");
}
}
/**
* 将值类型的编码当做字段添加到所有的数据模型表和生成的主题表中
*/
public void doUpdateTable(Map<String,Object>req,Map<String,Object>res,Context ctx)throws ServiceException,ModelOperationException{
BaseDAO dao=new BaseDAO(ctx);
String code=(String) req.get("code");
Map<String, Object> parameters = new HashMap<String,Object>();
parameters.put("code",code);
parameters.put("count",java.sql.Types.FLOAT);
dao.doSqlUpdate("{Call mdl_update_vt(:code,:count)}", parameters);
dao.doSqlUpdate("{Call theme_update_vt(:code,:count)}", parameters);
}
}
package com.bsoft.app.dic;
import com.bsoft.app.log.MyLoggerFactory;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.dao.CNDHelper;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.controller.exception.ControllerException;
import ctd.service.core.ServiceException;
import ctd.util.exp.ExpException;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import ctd.util.xml.XMLHelper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings("all")
public class CustomDicService extends AbstractController {
public Logger logger = MyLoggerFactory.getLogger(this.getClass());
private String rootId = "18";
public Document getBusinessTypeDic() throws ControllerException, ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
BaseDAO dao = new BaseDAO();
Document doc = XMLHelper.createDocument();
Element dic = doc.addElement("dic");
getTree(dao, rootId, dic);
return doc;
}
public List<Map<String, Object>> getTree(BaseDAO dao, String rootId, Element dic)
throws ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
Element root = getRoot(dao, rootId, dic);
findChild(dao, rootId, root);
return result;
}
public Element getRoot(BaseDAO dao, String rootId, Element dic) throws ModelOperationException, ExpException {
Map<String, Object> root = new HashMap<String, Object>();
root = dao.doLoad("hcms.app.system.schemas.DIC_BASE", rootId);
Element rootNode = addBusinessType(root, dic);
return rootNode;
}
public void findChild(BaseDAO dao, String parentId, Element parent) throws ExpException, ModelOperationException {
List<?> cnd = CNDHelper
.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','PKEY'],['s','" + parentId + "']]]");
List<Map<String, Object>> childList = dao.doQuery(cnd, "ID", "hcms.app.system.schemas.DIC_BASE");
if (childList.size() == 0) {
return;
}
for (Map<String, Object> childNode : childList) {
Element newParent = addBusinessType(childNode, parent);
findChild(dao, childNode.get("ID").toString(), newParent);
}
}
public Map<String, Object> getRightKey(Map<String, Object> source) {
Map<String, Object> result = new HashMap<String, Object>();
for (String key : source.keySet()) {
}
return result;
}
public Element addBusinessType(Map<String, Object> node, Element parent) {
Element child = parent.addElement("item");
child.addAttribute("key", "DIC_BASE" + node.get("ID").toString());
child.addAttribute("recordId", node.get("ID").toString());
child.addAttribute("text", (String) node.get("DICTEXT"));
child.addAttribute("source", "DIC_BASE");
child.addAttribute("mark", (String) node.get("DICKEY"));
return child;
}
public Element addModel(Map<String, Object> node, Element parent) {
Element child = parent.addElement("item");
child.addAttribute("key", "DMC_MODEL" + (String) node.get("recordId"));
child.addAttribute("recordId", (String) node.get("recordId"));
child.addAttribute("text", (String) node.get("name"));
child.addAttribute("source", "DMC_MODEL");
child.addAttribute("mark", (String) node.get("bus_type"));
child.addAttribute("description", (String) node.get("describ"));
return child;
}
public Element addTheme(Map<String, Object> node, Element parent) {
Element child = parent.addElement("item");
child.addAttribute("key", "DMC_THEME" + (String) node.get("recordId"));
child.addAttribute("recordId", (String) node.get("recordId"));
child.addAttribute("text", (String) node.get("name"));
child.addAttribute("source", "DMC_THEME");
child.addAttribute("mark", (String) node.get("bus_type"));
child.addAttribute("description", (String) node.get("des"));
return child;
}
public Document getModelDic() throws ControllerException, ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
BaseDAO dao = new BaseDAO();
Document doc = XMLHelper.createDocument();
Element dic = doc.addElement("dic");
getModelTree(dao, rootId, dic);
return doc;
}
public List<Map<String, Object>> getModelTree(BaseDAO dao, String rootId, Element dic)
throws ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
Element root = getRoot(dao, rootId, dic);
findModelChild(dao, rootId, root);
return result;
}
public void findModelChild(BaseDAO dao, String parentId, Element parent)
throws ExpException, ModelOperationException {
List<?> modelCnd = CNDHelper.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','bus_type'],['s','"
+ findMarkById(parentId, dao) + "']]]");
List<Map<String, Object>> modelChildList = dao.doQuery(modelCnd, "recordId",
"hcms.app.datamodel.schema.DMC_MODEL");
for (Map<String, Object> model : modelChildList) {
addModel(model, parent);
}
List<?> cnd = CNDHelper
.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','PKEY'],['s','" + parentId + "']]]");
List<Map<String, Object>> childList = dao.doQuery(cnd, "ID", "hcms.app.system.schemas.DIC_BASE");
if (childList.size() == 0) {
return;
}
for (Map<String, Object> childNode : childList) {
Element newParent = addBusinessType(childNode, parent);
findModelChild(dao, childNode.get("ID").toString(), newParent);
}
}
public String findMarkById(String id, BaseDAO dao) throws ModelOperationException, ExpException {
String result = new String();
List<?> cnd = CNDHelper
.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','ID'],['s','" + id + "']]]");
Map<String, Object> record = dao.doLoad(cnd, "hcms.app.system.schemas.DIC_BASE");
result = (String) record.get("DICKEY");
return result;
}
public Document getThemeDic() throws ControllerException, ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
BaseDAO dao = new BaseDAO();
Document doc = XMLHelper.createDocument();
Element dic = doc.addElement("dic");
getThemeTree(dao, rootId, dic);
return doc;
}
public List<Map<String, Object>> getThemeTree(BaseDAO dao, String rootId, Element dic)
throws ModelOperationException, ExpException {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
Element root = getRoot(dao, rootId, dic);
findThemeChild(dao, rootId, root);
return result;
}
public void findThemeChild(BaseDAO dao, String parentId, Element parent)
throws ExpException, ModelOperationException {
List<?> themeCnd = CNDHelper.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','bus_type'],['s','"
+ findMarkById(parentId, dao) + "']]]");
List<Map<String, Object>> themeChildList = dao.doQuery(themeCnd, "recordId",
"hcms.app.datamodel.schema.DMC_THEME");
for (Map<String, Object> theme : themeChildList) {
addTheme(theme, parent);
}
List<?> cnd = CNDHelper
.toListCnd("['and',['eq',['$','status'],['s','2']],['eq',['$','PKEY'],['s','" + parentId + "']]]");
List<Map<String, Object>> childList = dao.doQuery(cnd, "ID", "hcms.app.system.schemas.DIC_BASE");
if (childList.size() == 0) {
return;
}
for (Map<String, Object> childNode : childList) {
Element newParent = addBusinessType(childNode, parent);
findThemeChild(dao, childNode.get("ID").toString(), newParent);
}
}
}
package com.bsoft.app.dic;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ctd.controller.exception.ControllerException;
import ctd.dictionary.Dictionary;
import ctd.dictionary.DictionaryController;
import ctd.service.core.ServiceException;
import ctd.service.dao.DBService;
import ctd.util.context.Context;
import ctd.util.xml.XMLHelper;
public class DicConfigModel extends DBService{
@SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(DicConfigModel.class);
// private final String packageName = "platform";
private final String[] packageNames = {"platform","hcms","base"};
private final String type = ".dic";
public DicConfigModel(){}
@Override
public void execute(Map<String, Object> req, Map<String, Object> res,Context ctx) throws ServiceException {}
public Document dic() throws ControllerException{
Document doc = XMLHelper.createDocument();
Element root=doc.addElement("dic");
List<String> classNames = new ArrayList<String>();
for(String packageName:packageNames){
List<String> classNamesSomething = PackageUtil. getClassName(packageName, type, true);
classNames.addAll(classNamesSomething);
}
//去空
List<String> nullList = new ArrayList<String>();
nullList.add(null);
classNames.removeAll(nullList);
// List<String> classNames = PackageUtil. getClassName(packageName, type, true);
//classNames.addAll(classNames);
for(int i = 0; i < classNames.size() ; i ++) {
String key = classNames.get(i);
Dictionary domainDic = DictionaryController.instance().get(key);
root.addElement("item").addAttribute("key", key).addAttribute("text", domainDic.getAlias());
}
// Dictionary domainDic=DictionaryController.instance().get("platform.reg.dictionary.domain");
return doc;
}
}
/**
* @Title: DicService.java
* @Package com.bsoft.app.dic
* @Description:
* @author hurb
* @date 2016-6-15 下午2:11:02
* @version V1.0
*/
package com.bsoft.app.dic;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.controller.ErrorCode;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
@SuppressWarnings("all")
/**
* 字典服务
* @ClassName: DicService
* @Description:
* @author hurb
* @date 2016-6-15 下午2:11:02
*
*/
public class DicService extends AbstractController {
public void doListDetail(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx) throws ServiceException, ModelOperationException{
Integer nodeId = (Integer) req.get("treeNodeId");
Map<String, Object> params = new HashMap<String, Object>();
StringBuffer sql = new StringBuffer();
sql.append("select ID as ID, DICKEY as DICKEY, DICTEXT as DICTEXT, PKEY as PKEY, TYPE as TYPE, STATUS as STATUS, LEVEL AS LEVEL from SQZG_SJZD where ");
sql.append("STATUS != '0' AND ");
sql.append("pkey = :pkey order by level");
params.put("pkey", nodeId);
List<Map<String, Object>> list = dao.doSqlQuery(sql.toString(), params);
res.put("body", list);
}
public void doLoadDicTree(Map<String, Object> req, Map<String, Object> res, Context ctx) throws ServiceException, ModelOperationException{
Integer nodeId = (Integer) req.get("treeNodeId");
StringBuffer sql = new StringBuffer();
Map<String, Object> params = new HashMap<String, Object>();
sql.append(" select a.ID as ID, a.DICKEY as DICKEY, a.DICTEXT as DICTEXT, a.PKEY as PKEY, a.TYPE as TYPE, a.STATUS as STATUS, a.SORT AS SORT, " );
sql.append(" CASE WHEN (SELECT count(*) FROM DIC_BASE b WHERE b.PKEY = a.ID ) != 0 THEN 'false' ELSE 'true' END AS LEAF" );
sql.append(" from DIC_BASE a where ");
sql.append(" STATUS != '0' AND ");
sql.append(" pkey = :pkey order by SORT");
params.put("pkey", nodeId);
BaseDAO dao = new BaseDAO(ctx);
List<Map<String, Object>> list = dao.doSqlQuery(sql.toString(), params);
res.put("body", list);
}
public void doLoadZddyTree(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx) throws ServiceException, ModelOperationException{
Boolean isRoot = (Boolean)req.get("isRoot");
String pNodeId = (String)req.get("pNodeId");
if(isRoot != null && isRoot) {
pNodeId = "-1";
}
StringBuffer sb = new StringBuffer();
sb.append("SELECT T1.PKEYFIELD AS PKEYFIELD, t1.ID AS ID, t1.ZDBM AS ZDBM, t1.ZDMC AS ZDMC , t1.KEYFIELD AS KEYFIELD ,t1.VALUEFIELD AS VALUEFIELD,");
sb.append("t1.CXSQL AS CXSQL, t1.SFHC AS SFHC, 'true'");
sb.append(" AS LEAF FROM SQZG_SJZDDY t1 WHERE ZT='2'");
List<Map<String, Object>> list = null;
list = dao.doSqlQuery(sb.toString(), null);
res.put("body", list);
}
public void doRemoveZddy(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx) throws ServiceException, ModelOperationException{
Map<String, Object> body = (HashMap<String, Object>)req.get("body");
String ID = (String)body.get("ID");
Map<String, Object> params = new HashMap<String, Object>(1);
params.put("ID", ID);
String sql = "update SQZG_SJZDDY set ZT='0' WHERE ID = :ID";
dao.doSqlUpdate(sql, params);
}
public void doGetStoreData(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx) throws ServiceException, ModelOperationException{
Map<String, Object> body = (HashMap<String, Object>)req.get("body");
String ID = (String)body.get("ID");
Map<String, Object> params = new HashMap<String, Object>(1);
params.put("ID", ID);
String sql = "select PKEYFIELD AS PKEYFIELD, ZDBM AS ZDBM, KEYFIELD AS KEYFIELD, VALUEFIELD AS VALUEFIELD, CXSQL AS CXSQL FROM SQZG_SJZDDY WHERE ID = :ID AND ZT='2'";
List<Map<String, Object>> list = dao.doSqlQuery(sql, params);
if(list.size() == 0) {
Map<String, Object> result = new HashMap<String, Object>(2);
result.put(ErrorCode.CODE, ErrorCode.NOT_FOUND);
result.put("message", "未能找到数据");
res.put("body", result);
return;
}
Map<String, Object> sjzddy = list.get(0);
String storeSql = (String)sjzddy.get("CXSQL");
List<Map<String, Object>> storeList = dao.doSqlQuery(storeSql, null);
res.put("sjzddy", sjzddy);
res.put("storeList", storeList);
}
public void doRemove(Map<String, Object> req, Map<String, Object> res, Context ctx) throws ServiceException, ModelOperationException{
Integer pkey = (Integer)req.get("pkey");
String schema = (String)req.get("schema");
Map<String, Object> record = new HashMap<String, Object>(1);
record.put("ID", pkey);
record.put("STATUS", '0');
BaseDAO dao = new BaseDAO(ctx);
dao.doSave("delete", schema, record, false);
}
}
package com.bsoft.app.dic;
import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class PackageUtil {
public static void main(String[] args) throws Exception {
String packageName = "platform";
String type = ".sc";
List<String> classNames = getClassName(packageName, type, true);
if (classNames != null) {
for (String className : classNames) {
System.out.println(className);
}
}
}
/**
* 获取某包下(包括该包的所有子包)所有类
* @param packageName 包名
* @return 类的完整名称
*/
public static List<String> getClassName(String packageName, String fileType) {
return getClassName(packageName, fileType ,true);
}
/**
* 获取某包下所有类
* @param packageName 包名
* @param childPackage 是否遍历子包
* @return 类的完整名称
*/
public static List<String> getClassName(String packageName, String fileType, boolean childPackage) {
List<String> fileNames = null;
ClassLoader loader = Thread.currentThread().getContextClassLoader();
String packagePath = packageName.replace(".", "/");
URL url = loader.getResource(packagePath);
if (url != null) {
String type = url.getProtocol();
if (type.equals("file")) {
fileNames = getClassNameByFile(url.getPath(), null, childPackage, fileType);
} else if (type.equals("jar")) {
fileNames = getClassNameByJar(url.getPath(), childPackage, fileType);
}
} else {
fileNames = getClassNameByJars(((URLClassLoader) loader).getURLs(), packagePath, childPackage, fileType);
}
return fileNames;
}
/**
* 从项目文件获取某包下所有类
* @param filePath 文件路径
* @param className 类名集合
* @param childPackage 是否遍历子包
* @return 类的完整名称
*/
private static List<String> getClassNameByFile(String filePath, List<String> className, boolean childPackage, String fileType) {
List<String> myClassName = new ArrayList<String>();
File file = new File(filePath);
File[] childFiles = file.listFiles();
for (File childFile : childFiles) {
if (childFile.isDirectory()) {
if (childPackage) {
myClassName.addAll(getClassNameByFile(childFile.getPath(), myClassName, childPackage, fileType));
}
} else {
String childFilePath = childFile.getPath();
if (childFilePath.endsWith(fileType)) {
childFilePath = childFilePath.substring(childFilePath.indexOf("\\classes") + 9, childFilePath.lastIndexOf("."));
childFilePath = childFilePath.replace("\\", ".");
myClassName.add(childFilePath);
}
}
}
return myClassName;
}
/**
* 从jar获取某包下所有类
* @param jarPath jar文件路径
* @param childPackage 是否遍历子包
* @return 类的完整名称
*/
private static List<String> getClassNameByJar(String jarPath, boolean childPackage, String fileType) {
List<String> myClassName = new ArrayList<String>();
String[] jarInfo = jarPath.split("!");
String jarFilePath = jarInfo[0].substring(jarInfo[0].indexOf("/"));
String packagePath = jarInfo[1].substring(1);
try {
JarFile jarFile = new JarFile(jarFilePath);
Enumeration<JarEntry> entrys = jarFile.entries();
while (entrys.hasMoreElements()) {
JarEntry jarEntry = entrys.nextElement();
String entryName = jarEntry.getName();
if (entryName.endsWith(fileType)) {
if (childPackage) {
if (entryName.startsWith(packagePath)) {
entryName = entryName.replace("/", ".").substring(0, entryName.lastIndexOf("."));
myClassName.add(entryName);
}
} else {
int index = entryName.lastIndexOf("/");
String myPackagePath;
if (index != -1) {
myPackagePath = entryName.substring(0, index);
} else {
myPackagePath = entryName;
}
if (myPackagePath.equals(packagePath)) {
entryName = entryName.replace("/", ".").substring(0, entryName.lastIndexOf("."));
myClassName.add(entryName);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return myClassName;
}
/**
* 从所有jar中搜索该包,并获取该包下所有类
* @param urls URL集合
* @param packagePath 包路径
* @param childPackage 是否遍历子包
* @return 类的完整名称
*/
private static List<String> getClassNameByJars(URL[] urls, String packagePath, boolean childPackage, String fileType) {
List<String> myClassName = new ArrayList<String>();
if (urls != null) {
for (int i = 0; i < urls.length; i++) {
URL url = urls[i];
String urlPath = url.getPath();
// 不必搜索classes文件夹
if (urlPath.endsWith("classes/")) {
continue;
}
String jarPath = urlPath + "!/" + packagePath;
myClassName.addAll(getClassNameByJar(jarPath, childPackage, fileType));
}
}
return myClassName;
}
}
/**
* @Title: ReportService.java
* @Package com.bsoft.app.report
* @Description:
* @author Leeson
* @date 2016-9-2 下午4:29:00
* @version V1.0
*/
package com.bsoft.app.favourite;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import com.bsoft.app.favourite.dao.FavouriteDao;
import com.bsoft.app.log.MyLoggerFactory;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.app.Application;
import ctd.app.ApplicationController;
import ctd.app.ApplicationNode;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
/**
* 指标样本填报
* @ClassName: ReportService
* @Description:
* @author Leeson
* @date 2016-9-2 下午4:29:33
*
*/
public class FavouriteService extends AbstractController{
public Logger logger = MyLoggerFactory.getLogger(this.getClass());
private FavouriteDao favouriteDao;
public FavouriteDao getFavouriteDao() {
return favouriteDao;
}
public void setFavouriteDao(FavouriteDao favouriteDao) {
this.favouriteDao = favouriteDao;
}
/**
* 查询收藏夹菜单
* @Title doQueryFavourite
* @param req
* @param res
* @param ctx
*/
@SuppressWarnings("unchecked")
public void doQueryFavourite(Map<String, Object> req, Map<String, Object> res,Context ctx){
logger.info("查询收藏夹菜单");
BaseDAO dao = new BaseDAO(ctx);
Map<String, Object> body = (Map<String, Object>) req.get("body");
String domainType = loginPageType(body.get("fullId").toString());
if("error".equalsIgnoreCase(domainType)){
return;
}
Map<String, Object> params = new HashMap<String,Object>();
try {
StringBuffer sql = new StringBuffer(0);
sql.append("SELECT ID AS ID,MENU_NAME AS MENU_NAME,SORT AS SORT,DOMAIN_TYPE AS DOMAIN_TYPE FROM USER_FAVOURITE_FOLDER WHERE MENU_ID = :menuId AND DOMAIN_TYPE = :domainType AND USER_ID = :useId");
params.put("menuId", body.get("menuId"));
params.put("domainType", domainType);
params.put("useId", ctx.get("user.userId"));
List<Map<String, Object>> list = dao.doSqlQuery(sql.toString(),params);
Map<String, Object> map = new HashMap<String, Object>();
map.put("data", list.size()>0?list.get(0):null);
map.put("domainType", domainType);
res.put("body",map);
} catch (ModelOperationException e) {
logger.error("查询菜单异常:"+e.getMessage());
e.printStackTrace();
}
}
private String loginPageType(String fullId){
String type = "";
if(StringUtils.isBlank(fullId)){
type = "error";
}else{
String [] fullIds = fullId.split("/");
String rootId = fullIds[0];
try {
Application app =ApplicationController.instance().get(rootId);
type = app.getType();
if(!"2".equals(type)){
type = "1";//1:manage,2:index
}
} catch (ControllerException e) {
logger.error("获取登陆页面类型异常:"+e.getMessage());
type = "error";
}
}
return type;
}
/**
* 收藏菜单
* @Title: doSaveFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午4:53:55
*/
@SuppressWarnings("unchecked")
public void doSaveFavourite(Map<String, Object> req, Map<String, Object> res,Context ctx){
logger.info("收藏菜单");
BaseDAO dao = new BaseDAO(ctx);
String userId = ctx.get("user.userId").toString();
Map<String, Object> body = (Map<String, Object>) req.get("body");
Map<String, Object> param = new HashMap<String, Object>();
StringBuffer sql = new StringBuffer(0);
sql.append("SELECT MAX(SORT)+1 AS SORT FROM USER_FAVOURITE_FOLDER WHERE USER_ID='").append(userId).append("'");
int sort = 1;
try {
Map<String, Object> name = dao.doLoad(sql.toString(), param);
if(name!=null){
if(null != name.get("SORT")){
sort = Integer.parseInt(name.get("SORT").toString());
}else{
sort =1;
}
}else{
sort = 1;
}
} catch (ModelOperationException e) {
logger.error("查询最大排序失败");
e.printStackTrace();
}
body.put("SORT", sort);
body.put("USER_ID", userId);
boolean flg = favouriteDao.saveFavourite(req, res, dao, ctx);
res.put("body",flg);
}
/**
* 收藏菜单
* @Title: doRemoveFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午5:13:51
*/
@SuppressWarnings("unchecked")
public void doRemoveFavourite(Map<String, Object> req, Map<String, Object> res,Context ctx){
logger.info("取消收藏菜单");
BaseDAO dao = new BaseDAO(ctx);
String userId = ctx.get("user.userId").toString();
Map<String, Object> body = (Map<String, Object>) req.get("body");
int sort = (int) body.get("SORT");
boolean flg = favouriteDao.removeFavourite(req, res, dao, ctx);
if(flg){
Map<String, Object> parameters = new HashMap<String, Object>();
StringBuffer sql = new StringBuffer();
sql.append("UPDATE USER_FAVOURITE_FOLDER SET SORT = SORT-1 where SORT>").append(sort).append(" AND USER_ID='").append(userId).append("'");
req.put("sql",sql);
req.put("parameters",parameters);
favouriteDao.updateFavouriteSort(req, res, dao, ctx);
}
res.put("body", flg);
}
/**
* 查询登入用户收藏的所有菜单
* @Title: doLoadAllFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午6:13:51
*/
public void doLoadAllFavourite(Map<String, Object> req, Map<String, Object> res,Context ctx){
logger.info("查询登入用户收藏的所有菜单");
BaseDAO dao = new BaseDAO(ctx);
Map<String, Object> params = new HashMap<String,Object>();
try {
StringBuffer sql = new StringBuffer(0);
sql.append("SELECT ID AS ID,MENU_NAME AS MENU_NAME,MENU_ID AS MENU_ID,SORT AS SORT FROM USER_FAVOURITE_FOLDER WHERE USER_ID = :userId ORDER BY SORT ASC");
params.put("userId", ctx.get("user.userId"));
List<Map<String, Object>> list = dao.doSqlQuery(sql.toString(),params);
res.put("body",list);
} catch (ModelOperationException e) {
logger.error("查询登入用户收藏的所有菜单:"+e.getMessage());
e.printStackTrace();
}
}
/**
* 批量删除收藏菜单
* @Title: doRemoveAllFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-12-8 下午3:32:51
*/
public void doRemoveAllFavourite(Map<String, Object> req, Map<String, Object> res,Context ctx){
logger.info("批量取消收藏菜单");
StringBuffer sql = new StringBuffer();
Map<String, Object> parameters = new HashMap<String, Object>();
BaseDAO dao = new BaseDAO(ctx);
String userId = ctx.get("user.userId").toString();
Map<String, Object> body = (Map<String, Object>) req.get("body");
String ids = (String) body.get("ids");
ids = ids.substring(0, ids.length()-1);
int sort = 0;
try {
sql.append("SELECT MAX(SORT) AS SORT FROM USER_FAVOURITE_FOLDER WHERE MENU_ID IN (").append(ids).append(")");
sql.append(" AND USER_ID= '").append(userId).append("'");
Map<String, Object> name = dao.doLoad(sql.toString(), parameters);
sort = Integer.parseInt(name.get("SORT").toString());
} catch (ModelOperationException e) {
logger.error("批量删除异常:"+e.getMessage());
}
sql.setLength(0);
sql.append("DELETE FROM USER_FAVOURITE_FOLDER WHERE MENU_ID IN (").append(ids).append(")");
sql.append(" AND USER_ID= '").append(userId).append("'");
req.put("sql",sql);
req.put("parameters",parameters);
boolean flg = favouriteDao.delFavourite(req, res, dao, ctx);
if(flg){
sql.setLength(0);
sql.append("UPDATE USER_FAVOURITE_FOLDER SET SORT = SORT-1 where SORT>").append(sort).append(" AND USER_ID='").append(userId).append("'");
req.put("sql",sql);
req.put("parameters",parameters);
favouriteDao.updateFavouriteSort(req, res, dao, ctx);
}
res.put("body", flg);
}
}
\ No newline at end of file
/**
* @Title: ReportDao.java
* @Package com.bsoft.app.report.dao
* @Description:
* @author Leeson
* @date 2016-9-2 下午4:26:35
* @version V1.0
*/
package com.bsoft.app.favourite.dao;
import java.util.HashMap;
import java.util.Map;
import org.hibernate.Session;
import org.slf4j.Logger;
import com.bsoft.app.log.MyLoggerFactory;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
/**
* @ClassName: ReportDao
* @Description:
* @author Leeson
* @date 2016-9-2 下午4:26:35
*
*/
public class FavouriteDao {
Logger logger = MyLoggerFactory.getLogger(this.getClass());
private static String USER_FAVOURITE_FOLDER = "hcms.app.favouriteFolder.schemas.USER_FAVOURITE_FOLDER";
/**
* 收藏菜单
* @Title: saveFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午4:56:55
*/
@SuppressWarnings("unchecked")
public boolean saveFavourite(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx){
boolean flag = false;
Session ss = (Session) ctx.get(Context.DB_SESSION);
ss.beginTransaction();
Map<String, Object> body = (Map<String, Object>) req.get("body");
// Map<String, Object> params = new HashMap<String, Object>();
// params.put("USER_ID", body.get("USER_ID"));
// params.put("MENU_ID", body.get("MENU_ID"));
// params.put("SORT", body.get("SORT"));
// params.put("MENU_NAME", body.get("MENU_NAME"));
// params.put("DOMAIN_TYPE", body.get("DOMAIN_TYPE"));
try {
dao.doSave("create",USER_FAVOURITE_FOLDER, body, false);
flag = true;
} catch (ValidateException | ModelOperationException e) {
logger.error("收藏菜单出错,"+e.getMessage());
e.printStackTrace();
}
ss.getTransaction().commit();
return flag;
}
/**
* 取消收藏菜单
* @Title: removeFavourite
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午5:09:00
*/
@SuppressWarnings("unchecked")
public boolean removeFavourite(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx){
Session ss = (Session) ctx.get(Context.DB_SESSION);
boolean flg = false;
ss.beginTransaction();
Map<String, Object> body = (Map<String, Object>) req.get("body");
try {
dao.doRemove(body.get("ID"), USER_FAVOURITE_FOLDER);
flg = true;
} catch (ModelOperationException e) {
logger.error("取消收藏出错,"+e.getMessage());
e.printStackTrace();
}
ss.getTransaction().commit();
return flg;
}
/**
* 修改排序值
* @Title: updateFavouriteSort
* @param req
* @param res
* @param dao
* @param ctx
* @return void
* @author Leeson 2016-11-4 下午6:02:18
*/
@SuppressWarnings("unchecked")
public void updateFavouriteSort(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx){
Object sql = req.get("sql");
Map<String, Object> parameters = (Map<String, Object>) req.get("parameters");
try {
dao.doSqlUpdate(sql.toString(), parameters);
} catch (ModelOperationException e) {
logger.error("修改排序值异常:"+e.getMessage());
e.printStackTrace();
}
}
/**
* 删除收藏夹数据
* @Title: updateFavouriteSort
* @param req
* @param res
* @param dao
* @param ctx
* @return boolean
* @author Leeson 2016-12-8 下午3:12:18
*/
@SuppressWarnings("unchecked")
public boolean delFavourite(Map<String, Object> req, Map<String, Object> res, BaseDAO dao, Context ctx){
Object sql = req.get("sql");
Map<String, Object> parameters = (Map<String, Object>) req.get("parameters");
try {
dao.doSqlUpdate(sql.toString(), parameters);
return true;
} catch (ModelOperationException e) {
logger.error("删除异常:"+e.getMessage());
e.printStackTrace();
return false;
}
}
}
/**
* @Title: DicInitService.java
* @Package com.bsoft.app.init
* @Description:
* @author hurb
* @date 2017年8月21日 下午7:25:37
* @version V1.0
*/
package com.bsoft.app.init;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.bsoft.app.util.MyVaildateUtil;
import ctd.controller.exception.ControllerException;
import ctd.dictionary.Dictionary;
import ctd.dictionary.DictionaryController;
import ctd.dictionary.DictionaryItem;
/**
* @ClassName: DicInitService
* @Description:
* @author hurb
* @date 2017年8月21日 下午7:25:37
*
*/
public class DicFormatService {
private static DicFormatService instance;
public static DicFormatService instance() {
if(instance == null){
instance = new DicFormatService();
}
return instance;
}
public void formatDic(String regex){
if(!MyVaildateUtil.validate(regex)){
regex = ".*(customDic|dssDic).*";
}
Pattern pattern = Pattern.compile(regex);
Dictionary dic = null;
try {
dic = (Dictionary) DictionaryController.instance().get("platform.reg.dictionary.dicConfig");
} catch (ControllerException e) {
e.printStackTrace();
}
if(null != dic && !dic.itemsList().isEmpty()){
Dictionary formatDic = null;
String dicId = "";
List<DictionaryItem> ls = null;
for(DictionaryItem item : dic.itemsList()){
dicId = item.getKey();
Matcher matcher = pattern.matcher(dicId);
if(matcher.matches()){
System.err.println(dicId);
try {
formatDic = (Dictionary) DictionaryController.instance().get(dicId);
} catch (ControllerException e) {
// e.printStackTrace();
System.out.println("字典:"+dicId+"有误");
continue;
}
if(null != formatDic){
ls = formatDic.getSlice(null, 0, null);
formatDic(ls);
}
formatDic = null;
ls = null;
}
}
}
}
private List formatDic(List ls) {
if (ls == null || ls.size() < 2) {
return ls;
}
List<Object> formatLs = new ArrayList<Object>(ls.size());
List<String> firstLevNode = new ArrayList<String>();
Map<String, DictionaryItem> lsMap = new HashMap<String, DictionaryItem>();
for (Object o : ls) {
DictionaryItem item = (DictionaryItem) o;
String key = (String) item.getKey();
if(null == item.getProperties()){
continue;
}
item.getProperties().put("children", new ArrayList<DictionaryItem>());
lsMap.put(key, item);
}
for (Object o : ls) {
DictionaryItem oMap = (DictionaryItem) o;
String pCode = (String) oMap.getProperty("parent");
if (pCode == null || pCode.equals("")) {
firstLevNode.add(oMap.getKey());
continue;
}
DictionaryItem one_node = lsMap.get(pCode);
if (null == one_node) {
firstLevNode.add(oMap.getKey());
continue;
}
ArrayList<Object> children = (ArrayList<Object>) one_node.getProperty("children");
children.add(oMap);
}
for (String code : firstLevNode) {
formatLs.add(lsMap.get(code));
}
return formatLs;
}
}
/**
* @Title: InitService.java
* @Package com.bsoft.app.init
* @Description:
* @author hurb
* @date 2016-11-25 下午5:14:12
* @version V1.0
*/
package com.bsoft.app.init;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import com.bsoft.app.indicator.IndicatorService;
/**
* 初始化的内容放在此处
*
* @ClassName: InitService
* @Description:
* @author hurb
* @date 2016-11-25 下午5:14:12
*
*/
public class InitService {
private IndicatorService indicatorService;
public IndicatorService getIndicatorService() {
return indicatorService;
}
public void setIndicatorService(IndicatorService indicatorService) {
this.indicatorService = indicatorService;
}
/**
* 初始化后操作
* @Title: init
* @return void
* @author hurb 2016-11-25 下午5:15:44
*/
@PostConstruct
public void init() {
System.out.println("加载系统初始化内容..................");
this.indicatorService.createIndicIndex();
DicFormatService.instance().formatDic(null);
}
/**
* 销毁后操作
* @Title: dostory
* @return void
* @author hurb 2016-11-25 下午5:15:18
*/
@PreDestroy
public void dostory() {
}
}
package com.bsoft.app.kbgl.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
public class KbglController extends AbstractController {
public void doUpdateKbgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YW_QMYS_JTMB_COPY0403", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YW_QMYS_JTMB_COPY0403", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
String id = (String)req.get("id");
BaseDAO baseDAO = new BaseDAO();
try {
baseDAO.doRemove(id, "hcms.app.intelligentReport.schemas.T_YW_QMYS_JTMB_COPY0403");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
public class KbglController2 extends AbstractController {
public void doUpdateKbgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YW_QMYS_NDYSMX0108COPY", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YW_QMYS_NDYSMX0108COPY", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
String id = (String)req.get("id");
BaseDAO baseDAO = new BaseDAO();
try {
baseDAO.doRemove(id, "hcms.app.intelligentReport.schemas.T_YW_QMYS_NDYSMX0108COPY");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
/**
*
* KPI管理Controller
*
*/
public class KbkpiglController extends AbstractController {
public void doUpdateKbkpigl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null||bean.get("ID") == ""){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YW_QMYS_KPIPJ", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YW_QMYS_KPIPJ", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbkpigl(Map<String, Object> req, Map<String, Object> res, Context ctx){
ArrayList<String> id = (ArrayList<String>) req.get("id");
if(id.size()<=0){
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id.get(i), "hcms.app.intelligentReport.schemas.T_YW_QMYS_KPIPJ");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
/**
*
* KPI评价管理Controller
*
*/
public class KbkpipjglController extends AbstractController {
public void doUpdateKbkpipjgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null||bean.get("ID") == ""){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YW_QMYS_GP_KPIPJMB", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YW_QMYS_GP_KPIPJMB", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbkpipjgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
ArrayList<String> id = (ArrayList<String>) req.get("id");
if(id.size()<=0){
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id.get(i), "hcms.app.intelligentReport.schemas.T_YW_QMYS_GP_KPIPJMB");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
/**
*
* 科室管理Controller
*
*/
public class KbksglController extends AbstractController {
public void doUpdateKbksgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null||bean.get("ID") == ""){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YW_QMYS_P01", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YW_QMYS_P01", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbksgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
//String id = (String)req.get("id");
@SuppressWarnings("unchecked")
ArrayList<String> id = (ArrayList<String>)req.get("id");
if (id.size()<=0) {
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id, "hcms.app.intelligentReport.schemas.T_YW_QMYS_P01");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
/**
*
* 签约管理Controller
*
*/
public class KbqyglController extends AbstractController {
public void doUpdateKbqygl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.SGTB_QYFX_QYGL", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.SGTB_QYFX_QYGL", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbqygl(Map<String, Object> req, Map<String, Object> res, Context ctx){
ArrayList<String> id = (ArrayList<String>) req.get("id");
if(id.size()<=0){
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id.get(i), "hcms.app.intelligentReport.schemas.SGTB_QYFX_QYGL");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
/**
*
* 预算管理Controller
*
*/
public class KbysglController extends AbstractController {
public void doUpdateKbysgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
@SuppressWarnings("unchecked")
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null||bean.get("ID") == ""){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.T_YS_EXCEL", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.T_YS_EXCEL", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbysgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
@SuppressWarnings("unchecked")
ArrayList<String> id = (ArrayList<String>) req.get("id");
if(id.size()<=0){
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id.get(i), "hcms.app.intelligentReport.schemas.T_YS_EXCEL");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bsoft.app.kbgl.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
import ctd.validator.ValidateException;
import com.bsoft.core.controller.AbstractController;
public class KbzdglController extends AbstractController {
public void doUpdateKbzdgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
List<Map<String, Object>> list = (List<Map<String, Object>>)req.get("dataArr");
BaseDAO baseDAO = new BaseDAO();
for(Map<String, Object> bean : list){
try {
if(bean.get("ID") == null||bean.get("ID") == ""){
baseDAO.doSave("create", "hcms.app.intelligentReport.schemas.COMM_DIC", bean, false);
}else{
baseDAO.doSave("update", "hcms.app.intelligentReport.schemas.COMM_DIC", bean, false);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// } catch (ModelOperationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
public void doRemoveKbzdgl(Map<String, Object> req, Map<String, Object> res, Context ctx){
ArrayList<String> id = (ArrayList<String>) req.get("id");
if(id.size()<=0){
return;
}
BaseDAO baseDAO = new BaseDAO();
try {
for (int i = 0; i < id.size(); i++) {
baseDAO.doRemove(id.get(i), "hcms.app.intelligentReport.schemas.COMM_DIC");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @Title: MyLog4jLoggerFactory.java
* @Package com.bsoft.app.log
* @Description:
* @author hurb
* @date 2016-6-14 下午3:24:00
* @version V1.0
*/
package com.bsoft.app.log;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.LogManager;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @ClassName: MyLog4jLoggerFactory
* @Description:
* @author hurb
* @date 2016-6-14 下午3:24:00
*
*/
public class MyLog4jLoggerFactory implements ILoggerFactory {
Map loggerMap;
public MyLog4jLoggerFactory() {
this.loggerMap = new HashMap();
}
public org.slf4j.Logger getLogger(String name) {
org.slf4j.Logger slf4jLogger = null;
synchronized (this) {
slf4jLogger = (org.slf4j.Logger) this.loggerMap.get(name);
if (slf4jLogger == null) {
org.apache.log4j.Logger log4jLogger;
if (name.equalsIgnoreCase("ROOT")) {
log4jLogger = LogManager.getRootLogger();
} else {
log4jLogger = LogManager.getLogger(name);
}
slf4jLogger = new MyLog4jLoggerAdapter(log4jLogger);
this.loggerMap.put(name, slf4jLogger);
}
}
return slf4jLogger;
}
}
/**
* @Title: MyLog4jLoggerFactory.java
* @Package com.bsoft.app.log
* @Description:
* @author hurb
* @date 2016-6-14 下午3:24:00
* @version V1.0
*/
package com.bsoft.app.log;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
/**
* @ClassName: MyLog4jLoggerFactory
* @Description:
* @author hurb
* @date 2016-6-14 下午3:24:00
*
*/
public class MyLoggerFactory {
Map loggerMap;
public MyLoggerFactory() {
this.loggerMap = new HashMap();
}
public static org.slf4j.Logger getLogger(Class clazz) {
return getLogger(clazz.getName());
}
public static Logger getLogger(String name) {
ILoggerFactory iLoggerFactory = getILoggerFactory();
return iLoggerFactory.getLogger(name);
}
public static ILoggerFactory getILoggerFactory() {
return MyStaticLoggerBinder.getSingleton().getLoggerFactory();
}
}
/**
* @Title: MyStaticLoggerBinder.java
* @Package com.bsoft.app.log
* @Description:
* @author hurb
* @date 2016-6-14 下午4:08:18
* @version V1.0
*/
package com.bsoft.app.log;
import org.apache.log4j.Level;
import org.slf4j.ILoggerFactory;
import org.slf4j.helpers.Util;
import org.slf4j.spi.LoggerFactoryBinder;
/**
* @ClassName: MyStaticLoggerBinder
* @Description:
* @author hurb
* @date 2016-6-14 下午4:08:18
*
*/
public class MyStaticLoggerBinder implements LoggerFactoryBinder {
private static final MyStaticLoggerBinder SINGLETON = new MyStaticLoggerBinder();
public static final MyStaticLoggerBinder getSingleton() {
return SINGLETON;
}
public static String REQUESTED_API_VERSION = "1.6";
private static final String loggerFactoryClassStr = MyLog4jLoggerFactory.class
.getName();
private final ILoggerFactory loggerFactory;
private MyStaticLoggerBinder() {
Level level;
this.loggerFactory = new MyLog4jLoggerFactory();
try {
level = Level.TRACE;
} catch (NoSuchFieldError nsfe) {
Util.report("This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version");
}
}
public ILoggerFactory getLoggerFactory() {
return this.loggerFactory;
}
public String getLoggerFactoryClassStr() {
return loggerFactoryClassStr;
}
}
/*
* @(#)ProcessCondition.java 1.0 2015-5-27
*
* Copyright (c) 2007-2015 Shanghai BSOFT IT, Co., Ltd.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Shanghai BSFOT IT Co., Ltd. ("Confidential Information").
* You shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement you
* entered into with BSOFT.
*/
package com.bsoft.app.process.entity;
import java.io.Serializable;
/**
* 流程参数
*
* @version 1.0 2015-5-27
* @author hurb
* @history
*/
public class ProcessCondition implements Serializable {
/**
* 样表ID
*/
private String cellId;
/**
* 当前要进行操作的流程节点ID 获取流程时不需要传入该参数
*/
private String nodeId;
/**
* 流程操作的用户
*/
private String userId;
/**
* 审核状态 1=通过,0=退回
*/
private String auidtState;
/**
* 是否时流程开始状态 获取流程时不需要传入该参数
*/
private boolean isStartState;
/**
* 模块编码
*/
private String moduleCode;
/**
* 业务类型编码
*/
private String typeCode;
public void setModuleCode(String moduleCode) {
this.moduleCode = moduleCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getModuleCode() {
return moduleCode;
}
public String getTypeCode() {
return typeCode;
}
public String getCellId() {
return cellId;
}
public void setCellId(String cellId) {
this.cellId = cellId;
}
public boolean isStartState() {
return isStartState;
}
public void setStartState(boolean isStartState) {
this.isStartState = isStartState;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getAuidtState() {
return auidtState;
}
public void setAuidtState(String auidtState) {
this.auidtState = auidtState;
}
}
/*
* @(#)ProcessCondition.java 1.0 2015-5-27
*
* Copyright (c) 2007-2015 Shanghai BSOFT IT, Co., Ltd.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Shanghai BSFOT IT Co., Ltd. ("Confidential Information").
* You shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement you
* entered into with BSOFT.
*/
package com.bsoft.app.process.entity;
import java.io.Serializable;
/**
* 流程结果
*
* @author hurb
* @version 1.0 2015-5-27
* @history
*/
public class ProcessResult implements Serializable {
/**
* 获取流程是否成功 1=成功,0=失败
*/
private String flag;
/**
* 获取流程时返回的提示信息 成功时可为空
*/
private String msg;
/**
* 样表ID
*/
private String cellId;
/**
* 能否修改 y=是,n=否
*/
private String canModify;
/**
* 环节名称
*/
private String nowNodeName;
/**
* 下一环节名称
*/
private String nextNodeName;
/**
* 环节type
*/
private String nodeType;
/**
* 下一环节type
*/
private String nextNodeType;
/**
* 功能类型
*/
private String processNodeFuntionType;
/**
* 下一节点功能类型
*/
private String processNextNodeFuntionType;
/**
* 当前进行操作的流程节点ID
*/
private String nodeId;
/**
* 下一步要进行操作的流程节点ID
*/
private String nextNodeId;
/**
* 审核人
*/
private String auidtor;
/**
* 模块编码
*/
private String moduleCode;
/**
* 业务类型编码
*/
private String typeCode;
public void setModuleCode(String moduleCode) {
this.moduleCode = moduleCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getModuleCode() {
return moduleCode;
}
public String getTypeCode() {
return typeCode;
}
public String getAuidtor() {
return auidtor;
}
public void setAuidtor(String auidtState) {
this.auidtor = auidtState;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCellId() {
return cellId;
}
public void setCellId(String cellId) {
this.cellId = cellId;
}
public String getNextNodeId() {
return nextNodeId;
}
public void setNextNodeId(String nextNodeId) {
this.nextNodeId = nextNodeId;
}
public String getNowNodeName() {
return nowNodeName;
}
public void setNowNodeName(String state2) {
this.nowNodeName = state2;
}
public String getCanModify() {
return canModify;
}
public void setCanModify(String canModify) {
this.canModify = canModify;
}
public String getNextNodeName() {
return nextNodeName;
}
public void setNextNodeName(String nextNodeName) {
this.nextNodeName = nextNodeName;
}
public String getNextNodeType() {
return nextNodeType;
}
public void setNextNodeType(String nextNodeType) {
this.nextNodeType = nextNodeType;
}
public String getProcessNodeFuntionType() {
return processNodeFuntionType;
}
public void setProcessNodeFuntionType(String processNodeFuntionType) {
this.processNodeFuntionType = processNodeFuntionType;
}
public String getProcessNextNodeFuntionType() {
return processNextNodeFuntionType;
}
public void setProcessNextNodeFuntionType(String processNextNodeFuntionType) {
this.processNextNodeFuntionType = processNextNodeFuntionType;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public String getNodeType() {
return nodeType;
}
public void setNodeType(String nodeType) {
this.nodeType = nodeType;
}
}
/*
* Copyright 2016-2026 Bsoft
* File Name: TestService.java
* Author: Caob
* Version: 1.0
* Date: 16/5/26
* Description: 该接口用于定义处理服务请求的具体的执行方法
*
*/
package com.bsoft.app.test;
import java.util.HashMap;
import java.util.Map;
import com.bsoft.core.controller.AbstractController;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.dao.SimpleDAO;
import ctd.service.core.ServiceException;
import ctd.util.context.Context;
public class TestService extends AbstractController {
public void doLogOffTest(Map<String, Object> req, Map<String, Object> res,
Context ctx) throws ServiceException {
try {
String recordId = (String)req.get("recordId");
if(recordId == null) {
throw new ModelOperationException("不能为空的主键");
}
String schema = (String)req.get("schema");
BaseDAO baseDao = new BaseDAO(ctx);
Map<String, Object> record = new HashMap<String, Object>();
record.put(FIELD_STATUS, STATUS_UNUSED);
record.put(FIELD_RECORDID, recordId);
res.put("body", baseDao.doUpdate(schema, record, false));
} catch (Exception e) {
throw new ServiceException( e);
}
}
}
/*
* @(#)PEPrefix.java Created on 2013-3-29
*
* ��Ȩ����Ȩ���� B-Soft ��������Ȩ����
*/
package com.bsoft.app.util;
/**
* @fileName PEPrefix.java
* @description
* @author <a href="mailto:liy2@bsoft.com.cn">liyang</a>
*/
public class ExpressionPre {
public final static String SEPARATOR = "#";// �ָ���
public final static String PRE_OP = "o"; // ������
public final static String PRE_DATA = "d";// ���
public final static String PRE_VARIBLE = "v";// ����
public final static String VARIBLE_X = "x";// ����x
public final static String VARIBLE_Y = "y";// ����y
public final static String PRE_IND = "i";// ���Чָ��
public final static String PRE_UNDERLINE = "_";// �»���
public final static String PRE_OP_ = "o_"; // ������ǰ׺
public final static String PRE_DATA_ = "d_";// ���ǰ׺
public final static String PRE_VARIBLE_ = "v_";// ����ǰ׺
public final static String PRE_IND_ = "i_";// ���Чָ��ǰ׺
public final static String OP_ADD = "+";
public final static String OP_SUB = "-";
public final static String OP_MUL = "*";
public final static String OP_DIV = "/";
public final static String OP_L_BRACKET = "(";
public final static String OP_R_BRACKET = ")";
public final static String STR_ADD = "add";
public final static String STR_SUB = "sub";
public final static String STR_GT = "gt";
public final static String STR_GE = "ge";
public final static String STR_EQ = "eq";
public final static String STR_LT = "lt";
public final static String STR_LE = "le";
}
package com.bsoft.app.util;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.apache.commons.lang.StringUtils;
/**
* add by hurb in 20120228 for 检验页面表单元素不为空和null
* @author hurb
*
*/
public class MyCommonUtil {
public static String DAY ="day";
public static String MONTH ="month";
public static String YEAR ="year";
/**
* 对字符串进行判断重组操作
* @param main
* @param info
* @param info2
* @return
*/
public static String formUnit(String main,String info,String info2){
info = StringUtils.isEmpty(info) || "null".equalsIgnoreCase(info)?"":info;
info2 = StringUtils.isEmpty(info2) || "null".equalsIgnoreCase(info2)?"":info2;
main = StringUtils.isEmpty(main) || "null".equalsIgnoreCase(main)?info:info2+main;
main = main.trim();
return main;
}
/**
*字符串转化成BigDecimal
* @param str
* @return
*/
public static BigDecimal converStringToBigDecimal(String str){
BigDecimal bd = new BigDecimal(Float.parseFloat(str));
return bd;
}
/**
* 简单的日期处理 获取当前日期前day天的日期
* @param day
*/
public static String inputDate2(int day){
String date = "";
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
Calendar now= Calendar.getInstance();
now.add(Calendar.DAY_OF_YEAR,-day);
date = ft.format(now.getTime());
return date;
}
/**
* 计算两个日期的时差,假如日期转换出现错误则日期为long的最大值 字符串格式为yyyy-MM-dd
* @param startDate
* @param endDate
* @return
*/
public static long computeDate(String startDate,String endDate){
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
long endTime = ft.parse(endDate).getTime();
long startTime = ft.parse(startDate).getTime();
day = (endTime - startTime)/(3600*24*1000);
} catch (ParseException e) {
day = Long.MAX_VALUE;
e.printStackTrace();
}
return day;
}
/**
* 格式化BigDecimal数据
* @param bd
* @return
*/
public static String formatBigDecimal(BigDecimal bd,String format){
DecimalFormat df;
if(MyVaildateUtil.validate(format)){
df = new DecimalFormat(format);
}else{
df = new DecimalFormat("#.##");
}
return df.format(bd);
}
/**
* 格式化BigDecimal数据 返回BigDecimal
* @param bd
* @return
*/
public static BigDecimal formatBigDecimal2(BigDecimal bd,String format){
DecimalFormat df;
if(MyVaildateUtil.validate(format)){
df = new DecimalFormat(format);
}else{
df = new DecimalFormat("#.##");
}
return new BigDecimal(df.format(bd));
}
/**
* 将给定的String截断为定字节长,常用于保存数据库的长度处理
* 因String中包括中文时,java中中文字的长度占为1,而非字节2,
* 所以用subtring方法的到的长度并非字节长度
* @param str String
* @param length int
* @return String
*/
public static String cutStringByLength(String str, int length) throws Exception
{
if(str == null) return str;
String res = "";
byte[] b = str.getBytes();
int len = b.length;
if(len>length)
{
byte[] tmp = new byte[length];
for(int j = 0; j < length; j++)
{
tmp[j] = b[j];
if(tmp[j]>=0 && tmp[j]<32) tmp[j]=32;
}
res = new String(tmp,"GBK");
}
else res = str;
return res;
}
/**
* 时间获取
* @param type day 天 month月 year年
* @param i type == day && i==0 当天 type == month && i==1 后一个月
* @param format 返回值格式
* @return
* hurb 2014-7-5
*/
public static String getDate(String type,int i,String format){
Calendar cal = Calendar.getInstance();
if(MONTH.equalsIgnoreCase(type)){
cal.add(Calendar.MONTH,i);
if(!MyVaildateUtil.validate(format)){
format = "yyyyMM";
}
}else if(YEAR.equalsIgnoreCase(type)){
cal.add(Calendar.YEAR,i);
if(!MyVaildateUtil.validate(format)){
format = "yyyy";
}
}else{
cal.add(Calendar.DATE,i);
if(!MyVaildateUtil.validate(format)){
format = "yyyyMMdd";
}
}
SimpleDateFormat sf=new SimpleDateFormat(format);
return sf.format(cal.getTime());
}
}
package com.bsoft.app.util;
import java.text.SimpleDateFormat;
import org.apache.commons.lang.StringUtils;
/**
* 常用校验类
*
* @author hurb
* @date Apr 10, 2013
*/
public class MyVaildateUtil {
/**
* 检查是否为空、为null、值为null
*
* @param s
* @return
*/
public static boolean validate(Object s) {
boolean b = false;
String ts = String.valueOf(s);
if (!StringUtils.isEmpty(ts) && !"null".equalsIgnoreCase(ts)) {
b = true;
}
return b;
}
/**
* 判断字符串是否匹配否点数
*
* @param main
* @return
*/
public static boolean validateFloat(String s) {
boolean b;
b = validate(s);
if (!b) {
return b;
}
try {
float f = Float.parseFloat(s);
} catch (Exception ex) {
b = false;
}
return b;
}
/**
* 判断字符串是否匹配整数
*
* @param main
* @return
*/
public static boolean validateInt(String s) {
boolean b;
b = validate(s);
if (!b) {
return b;
}
try {
Long.parseLong(s);
} catch (Exception ex) {
b = false;
}
return b;
}
/**
* 校验是否符合yyyy-MM-dd格式的日期
* @param sourceDate
* @return
* Apr 25, 2013 add by hurb
*/
public static boolean validateDate(String sourceDate) {
if (!validate(sourceDate))
return false;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
dateFormat.parse(sourceDate);
return true;
} catch (Exception e) {
}
return false;
}
}
package com.bsoft.app.util;
import java.io.Serializable;
import java.util.List;
public class Pager implements Serializable{
private List list; //结果集
private int totalNum; //总记录数
private int pageSize = 50; //每页显示多少条数据 默认为50
//private int pageSize = PropertyUtil.defaultPageSize(); //每页显示多少条数据 采用配置信息数据
private int pageNo = 1; //当前第几页
private int totalPages; //总页数
private int firstPage; //第一页
private int previousPage;//上一页
private int nextPage; //下一页
private int lastPage;//最后一页
//得到总页数
public int getTotalPages(){
return totalPages;
}
public void setTotalPages(int totalPages){
this.totalPages = totalPages;
}
//到第一页
public int getFirstPage(){
firstPage = 1;
return firstPage;
}
//到上一页
public int getPreviousPage(){
if(pageNo <= 1){
previousPage = 1;
}else{
previousPage = pageNo-1;
}
return previousPage;
}
//到下一页
public int getNextPage(){
if(pageNo >= getLastPage()){
nextPage = getLastPage();
}else{
nextPage = pageNo+1;
}
return nextPage;
}
//到最后一页
public int getLastPage(){
lastPage = totalPages;
return lastPage;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getTotalNum() {
return totalNum;
}
public void setTotalNum(int totalNum) {
this.totalNum = totalNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public String toString(){
return "--------------------\npageNo = "
+pageNo + "\ntotalNum = "
+totalNum + "\ntotalPages = "
+totalPages;
}
}
\ No newline at end of file
package com.bsoft.app.util;
import java.util.UUID;
/**
* 获得系统唯一识别码
* <P>
* Information Cooperation Platform
* </P>
* <P>
* www.bsoft.com.cn
* </P>
*
* @author BSoft.Fcy
* @version 0.0.1 2010-11-16 新建
*/
public class Seq {
/**
* 生成uuid<BR>
* @return
*/
public static String createUUID()
{
String s = UUID.randomUUID().toString();
String value = s.substring(0,8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23);//拆分字符串,重新拼成一个新字符串.
return value;
}
}
package com.bsoft.core;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
/**
* 解决ajax跨域
* @author yeyu
* @date 2018年4月24日
*/
@Component
public class CORSFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
response.setContentType("textml;charset=UTF-8");
response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.addHeader("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE,OPTIONS");
response.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
response.addHeader("Access-Control-Max-Age", "1800");// 30 min
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addHeader("XDomainRequestAllowed", "1");
filterChain.doFilter(request, response);
}
}
\ No newline at end of file
package com.bsoft.core.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import com.bsoft.core.dao.BaseDAO;
import com.bsoft.core.util.exception.ModelOperationException;
import ctd.account.AccountCenter;
import ctd.account.UserRoleToken;
import ctd.account.user.User;
import ctd.controller.exception.ControllerException;
import ctd.util.context.Context;
public class ChangeIndexController extends AbstractController {
@Autowired
private HttpServletRequest request;
/**寻找用户的角色等相关信息
* @param req
* @param res
* @param ctx
* @author Chanyin 2016-12-13 09:27:33
*/
public void doFindToken(Map<String, Object> req, Map<String, Object> res, Context ctx){
HttpSession httpSession = request.getSession(false);
BaseDAO dao = new BaseDAO(ctx);
Integer urt = 0;
String uid = (String)httpSession.getAttribute("uid");
StringBuffer sql = new StringBuffer();
sql.append("select t.ID as URT from BASE_USERROLES t where t.userid = '"+uid+"'");
try {
List<Map<String, Object>> data = dao.doSqlQuery(sql.toString(), null);
if(data.size() > 0){
for(int j = 0; j < data.size(); j++){
Map<String, Object> map = data.get(j);
String str = String.valueOf(map.get("URT"));
urt = Integer.valueOf(str);
}
}
User user = AccountCenter.getUser(uid);
UserRoleToken token = user.getUserRoleToken(urt.intValue());
res.put("token", token);
res.put("urt", urt);
} catch (ControllerException e) {
e.printStackTrace();
} catch (ModelOperationException e) {
e.printStackTrace();
}
}
/**保存首页linkURL
* @param req
* @param res
* @param ctx
* @author Chanyin 2016-12-12 08:23:17
*/
public void doSaveLink(Map<String, Object> req, Map<String, Object> res, Context ctx){
BaseDAO dao = new BaseDAO(ctx);
HttpSession httpSession = request.getSession(false);
String link = req.get("link").toString();
link = link.substring(1,link.length()-1);
String uid = (String)httpSession.getAttribute("uid");
StringBuffer sql = new StringBuffer();
sql.append("select a.INDEXURL as INDEXURL from BASE_USER_CONFIG a where a.UUID = '"+uid+"'");
try {
List<Map<String, Object>> data = dao.doSqlQuery(sql.toString(), null);
if(data.size() > 0){
sql = new StringBuffer();
sql.append("update BASE_USER_CONFIG a set a.INDEXURL = '"+link+"' where a.UUID = '"+uid+"'");
dao.doSqlUpdate(sql.toString(), null);
}else{
sql = new StringBuffer();
sql.append("insert into BASE_USER_CONFIG(UUID,INDEXURL) values ('"+uid+"','"+link+"')");
dao.doSqlUpdate(sql.toString(), null);
}
} catch (ModelOperationException e) {
e.printStackTrace();
}
}
/**查询首页linkURL
* @param req
* @param res
* @param ctx
* @author Chanyin 2016-12-12 08:31:25
*/
public void doQueryLink(Map<String, Object> req, Map<String, Object> res, Context ctx){
BaseDAO dao = new BaseDAO(ctx);
HttpSession httpSession = request.getSession(false);
String uid = (String)httpSession.getAttribute("uid");
StringBuffer sql = new StringBuffer();
sql.append("select a.INDEXURL as INDEXURL from BASE_USER_CONFIG a where a.UUID = '"+uid+"'");
try {
List<Map<String, Object>> data = dao.doSqlQuery(sql.toString(), null);
if(data.size() > 0){
for(int j = 0; j < data.size(); j++){
Map<String, Object> map = data.get(j);
String INDEXURL = String.valueOf(map.get("INDEXURL"));
res.put("link", INDEXURL);
}
}else{
res.put("link", "null");
}
} catch (ModelOperationException e) {
e.printStackTrace();
}
}
/**添加收藏夹操作
* @param req
* @param res
* @param ctx
* @author Chanyin 2016-12-26 09:11:37
*/
public void doSaveFavorites(Map<String, Object> req, Map<String, Object> res, Context ctx){
BaseDAO dao = new BaseDAO(ctx);
String val = (String)req.get("data");
String[] split = val.split(",");
String userId = split[0];
String menuId = split[1];
String menuName = split[2];
StringBuffer sql = new StringBuffer();
sql.append("select * from USER_FAVOURITE_FOLDER t where t.menu_id = '"+menuId+"'");
List<Map<String, Object>> data;
try {
data = dao.doSqlQuery(sql.toString(), null);
if(data.size() > 0){
res.put("flg", 1);
}else{
sql = new StringBuffer();
sql.append("insert into USER_FAVOURITE_FOLDER t ");
sql.append("(t.user_id,t.menu_id,t.menu_name,t.domain_type) ");
sql.append("values ('"+userId+"','"+menuId+"','"+menuName+"','2')");
dao.doSqlUpdate(sql.toString(), null);
}
} catch (ModelOperationException e) {
e.printStackTrace();
}
}
}
package com.bsoft.core.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author Chanyin
* 解决前台Console的logon/extInfo错误
*/
@Controller
public class LogonExtInfoErr {
@RequestMapping("logon/extInfo")
public void LogExtInfoErr(HttpServletRequest request, HttpServletResponse response){
System.out.println("logon/extInfo已解决!");
}
}
package com.bsoft.core.controller;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.bsoft.core.util.ConfigUtil;
import ctd.util.JSONUtils;
import ctd.util.ServletUtils;
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object arg2) throws Exception {
String check = ConfigUtil.getConfig("CHECKSAFETY");// 是否开启安全检查
System.out.println(request.getRequestURL());
if (!("1".equals(check))) {
return true;// 没有开启安全检测,直接返回true
}
// 开启了安全检测,判断用户账号状态
HttpSession session = request.getSession(false);
if (session == null || (session.getAttribute("uid") == null)) {
HashMap<String, Object> resData = new HashMap();
resData.put("code", 403);// 未登录
boolean gzip = ServletUtils.isAcceptGzip(request);
jsonOutput(response, resData, gzip);
return false;
}
Object uid = session.getAttribute("uid");
HttpSession s1 = (HttpSession) MyMVCSessionListener.getSessions().get(
uid);
if (s1 != null && s1.getId().equals(session.getId())) {
return true;// 同一个账号,sessionid相同
}
if (s1 != null) {
s1.setMaxInactiveInterval(1);// 1秒,设置session立刻过期
}
HashMap<String, Object> resData = new HashMap();
resData.put("code", 409);// 账号被挤下线
resData.put("msg", "AccountWasPushedOffline");
boolean gzip = ServletUtils.isAcceptGzip(request);
jsonOutput(response, resData, gzip);
return false;
}
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
}
private void jsonOutput(HttpServletResponse response, Object resData,
boolean gzip) throws IOException {
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
OutputStream os = null;
if (gzip) {
os = ServletUtils.buildGzipOutputStream(response);
} else {
os = response.getOutputStream();
}
JSONUtils.write(os, resData);
}
}
package com.bsoft.core.controller;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import org.apache.commons.lang.StringUtils;
import ctd.mvc.controller.util.MVCSessionListener;
public class MyMVCSessionListener extends MVCSessionListener {
private static Map<String, Object> sessions = new ConcurrentHashMap();
public void attributeAdded(HttpSessionBindingEvent hsbe) {
super.attributeAdded(hsbe);
if (!hsbe.getName().equals("uid")) {
return;
}
String uid = (String) hsbe.getValue();
if (StringUtils.isEmpty(uid)) {
return;
}
HttpSession session = hsbe.getSession();
sessions.put(uid, session);
}
public static Map<String, Object> getSessions() {
return sessions;
}
public void sessionCreated(HttpSessionEvent ev) {
super.sessionCreated(ev);
System.out.println("session create from MyMVCSessionListener");
}
public void sessionDestroyed(HttpSessionEvent hse) {
super.sessionDestroyed(hse);
System.out.println("session destroy from MyMVCSessionListener");
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment