<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>cn.liuykxl</groupId>
<artifactId>demoLearn</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>demoLearn</name>
<url>http://maven.apache.org</url>
<!-- 父级项目 -->
<!-- 必须加,否则版本为null-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath />
</parent>
<!-- 属性设置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version><!-- jdK版本 -->
</properties>
<dependencies>
<!-- springboot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 移除内嵌Tomcat需要重新添加servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- jsp解析器 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<!-- 编译 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
<dependencies>
<!--springloaded hot deploy -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package cn.liuyk.web.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.map.util.JSONPObject;
/** 接口参数校验
* 修改日期:2015/11/2
*/
public class AppUtil {
protected static Logger logger = Logger.getLogger(AppUtil.class);
/**检查参数是否完整
* @param method
* @param pd
* @return
*/
public static boolean checkParam(String method, PageData pd){
boolean result = false;
int falseCount = 0;
String[] paramArray = new String[20];
String[] valueArray = new String[20];
String[] tempArray = new String[20]; //临时数组
if(method=="registered"){// 注册
paramArray = Const.APP_REGISTERED_PARAM_ARRAY; //参数
valueArray = Const.APP_REGISTERED_VALUE_ARRAY; //参数名称
}else if(method=="getAppuserByUsernmae"){//根据用户名获取会员信息
paramArray = Const.APP_GETAPPUSER_PARAM_ARRAY;
valueArray = Const.APP_GETAPPUSER_VALUE_ARRAY;
}
int size = paramArray.length;
for(int i=0;i<size;i++){
String param = paramArray[i];
if(!pd.containsKey(param)){
tempArray[falseCount] = valueArray[i]+"--"+param;
falseCount += 1;
}
}
if(falseCount>0){
logger.error(method+"接口,请求协议中缺少 "+falseCount+"个 参数");
for(int j=1;j<=falseCount;j++){
logger.error(" 第"+j+"个:"+ tempArray[j-1]);
}
} else {
result = true;
}
return result;
}
/**
* 设置分页的参数
* @param pd
* @return
*/
public static PageData setPageParam(PageData pd){
String page_now_str = pd.get("page_now").toString();
int pageNowInt = Integer.parseInt(page_now_str)-1;
String page_size_str = pd.get("page_size").toString(); //每页显示记录数
int pageSizeInt = Integer.parseInt(page_size_str);
String page_now = pageNowInt+"";
String page_start = (pageNowInt*pageSizeInt)+"";
pd.put("page_now", page_now);
pd.put("page_start", page_start);
return pd;
}
/**设置list中的distance
* @param list
* @param pd
* @return
*/
public static List<PageData> setListDistance(List<PageData> list, PageData pd){
List<PageData> listReturn = new ArrayList<PageData>();
String user_longitude = "";
String user_latitude = "";
try{
user_longitude = pd.get("user_longitude").toString(); //"117.11811";
user_latitude = pd.get("user_latitude").toString(); //"36.68484";
} catch(Exception e){
logger.error("缺失参数--user_longitude和user_longitude");
logger.error("lost param:user_longitude and user_longitude");
}
PageData pdTemp = new PageData();
int size = list.size();
for(int i=0;i<size;i++){
pdTemp = list.get(i);
String longitude = pdTemp.get("longitude").toString();
String latitude = pdTemp.get("latitude").toString();
String distance = MapDistance.getDistance(
user_longitude, user_latitude,
longitude, latitude
);
pdTemp.put("distance", distance);
pdTemp.put("size", distance.length());
listReturn.add(pdTemp);
}
return listReturn;
}
/**
* @param pd
* @param map
* @return
*/
public static Object returnObject(PageData pd, Map map){
if(pd.containsKey("callback")){
String callback = pd.get("callback").toString();
return new JSONPObject(callback, map);
}else{
return map;
}
}
}
package cn.liuyk.web.util;
import org.springframework.context.ApplicationContext;
/**
* 项目名称:
* 修改日期:2015/11/2
*/
public class Const {
public static final String SESSION_SECURITY_CODE = "sessionSecCode";//验证码
public static final String SESSION_USER = "sessionUser"; //session用的用户
public static final String SESSION_ROLE_RIGHTS = "sessionRoleRights";
public static final String sSESSION_ROLE_RIGHTS = "sessionRoleRights";
public static final String SESSION_menuList = "menuList"; //当前菜单
public static final String SESSION_allmenuList = "allmenuList"; //全部菜单
public static final String SESSION_QX = "QX";
public static final String SESSION_userpds = "userpds";
public static final String SESSION_USERROL = "USERROL"; //用户对象
public static final String SESSION_USERNAME = "USERNAME"; //用户名
public static final String SESSION_NUMBER = "NUMBER"; //编号
public static final String TRUE = "T";
public static final String FALSE = "F";
public static final String COUNTRY_CHINA = "中国";
public static final String BLOOD_TYPE_A = "A型血";
public static final String BLOOD_TYPE_B = "B型血";
public static final String BLOOD_TYPE_AB = "AB型血";
public static final String BLOOD_TYPE_O = "O型血";
public static final String LOGIN = "/login_toLogin.do"; //登录地址
public static final String SYSNAME = "admin/config/SYSNAME.txt"; //系统名称路径
public static final String PASSWORD = "admin/config/PASSWORD.txt"; //系统名称路径
public static final String DB_TYPE = "admin/config/DB_TYPE.txt"; //数据源
public static final String COMPANY_ID = "admin/config/COMPANY_ID.txt"; //机构的主键
public static final String PAGE = "admin/config/PAGE.txt"; //分页条数配置路径
public static final String EMAIL = "admin/config/EMAIL.txt"; //邮箱服务器配置路径
public static final String SMS1 = "admin/config/SMS1.txt"; //短信账户配置路径1
public static final String SMS2 = "admin/config/SMS2.txt"; //短信账户配置路径2
public static final String FWATERM = "admin/config/FWATERM.txt"; //文字水印配置路径
public static final String IWATERM = "admin/config/IWATERM.txt"; //图片水印配置路径
public static final String WEIXIN = "admin/config/WEIXIN.txt"; //微信配置路径
public static final String WEBSOCKET = "admin/config/WEBSOCKET.txt";//WEBSOCKET配置路径
public static final String FILEPATHIMG = "uploadFiles/uploadImgs/"; //图片上传路径
public static final String FILEPATHFILE = "uploadFiles/file/"; //文件上传路径
public static final String FILEPATHMOULD = "uploadFiles/mouldFile/"; //模具文件上传路径
public static final String FILEPATHTWODIMENSIONCODE = "uploadFiles/twoDimensionCode/"; //二维码存放路径
public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)|(app)|(weixin)|(static)|(main)|(changeCompanyByDB)|(websocket)).*"; //不对匹配该值的访问路径拦截(正则)
public static ApplicationContext WEB_APP_CONTEXT = null; //该值会在web容器启动时由WebAppContextListener初始化
/**
* APP Constants
*/
//app注册接口_请求协议参数)
public static final String[] APP_REGISTERED_PARAM_ARRAY = new String[]{"countries","uname","passwd","title","full_name","company_name","countries_code","area_code","telephone","mobile"};
public static final String[] APP_REGISTERED_VALUE_ARRAY = new String[]{"国籍","邮箱帐号","密码","称谓","名称","公司名称","国家编号","区号","电话","手机号"};
//app根据用户名获取会员信息接口_请求协议中的参数
public static final String[] APP_GETAPPUSER_PARAM_ARRAY = new String[]{"USERNAME"};
public static final String[] APP_GETAPPUSER_VALUE_ARRAY = new String[]{"用户名"};
}
package cn.liuyk.web.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* 说明:日期处理
*
* 修改时间:2015年11月24日
* @version
*/
public class DateUtil {
private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
private final static SimpleDateFormat sdfDayFormat = new SimpleDateFormat("yyyy.MM.dd");
private final static SimpleDateFormat sdfDays = new SimpleDateFormat("yyyyMMdd");
private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private final static SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyyMMddHHmmss");
/**
* 获取YYYY格式
* @return
*/
public static String getSdfTimes() {
return sdfTimes.format(new Date());
}
/**
* 获取YYYY格式
* @return
*/
public static String getYear() {
return sdfYear.format(new Date());
}
/**
* 获取YYYY-MM-DD格式
* @return
*/
public static String getDay() {
return sdfDay.format(new Date());
}
/**
* 获取YYYYMMDD格式
* @return
*/
public static String getDays(){
return sdfDays.format(new Date());
}
/**
* 获取YYYY.MM.DD格式
* @return
*/
public static String getFormat(){
return sdfDayFormat.format(new Date());
}
/**
* 获取YYYY-MM-DD HH:mm:ss格式
* @return
*/
public static String getTime() {
return sdfTime.format(new Date());
}
/**
* @Title: compareDate
* @Description: TODO(日期比较,如果s>=e 返回true 否则返回false)
* @param s
* @param e
* @return boolean
* @throws
*/
public static boolean compareDate(String s, String e) {
if(fomatDate(s)==null||fomatDate(e)==null){
return false;
}
return fomatDate(s).getTime() >=fomatDate(e).getTime();
}
/**
* 格式化日期
* @return
*/
public static Date fomatDate(String date) {
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
try {
return fmt.parse(date);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
/**
* 校验日期是否合法
* @return
*/
public static boolean isValidDate(String s) {
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
try {
fmt.parse(s);
return true;
} catch (Exception e) {
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return false;
}
}
/**
* @param startTime
* @param endTime
* @return
*/
public static int getDiffYear(String startTime,String endTime) {
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
try {
//long aa=0;
int years=(int) (((fmt.parse(endTime).getTime()-fmt.parse(startTime).getTime())/ (1000 * 60 * 60 * 24))/365);
return years;
} catch (Exception e) {
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return 0;
}
}
/**
* <li>功能描述:时间相减得到天数
* @param beginDateStr
* @param endDateStr
* @return
* long
* @author Administrator
*/
public static long getDaySub(String beginDateStr,String endDateStr){
long day=0;
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate = null;
java.util.Date endDate = null;
try {
beginDate = format.parse(beginDateStr);
endDate= format.parse(endDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
//System.out.println("相隔的天数="+day);
return day;
}
/**
* 得到n天之后的日期
* @param days
* @return
*/
public static String getAfterDayDate(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdfd.format(date);
return dateStr;
}
/**
* 得到n天之后是周几
* @param days
* @return
*/
public static String getAfterDayWeek(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("E");
String dateStr = sdf.format(date);
return dateStr;
}
/**
* 获取当月的 天数
*/
public static int getCurrentMonthDay(){
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
* 根据 年、月 获取对应的月份 的 天数
*/
public static int getDaysByYearMonth(int year, int month){
Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
* 根据分类导入基础数据
* @param group_cd
* @return
*/
public static List<PageData> exportRSM(String group_cd){
List<PageData> list = new ArrayList<>();
if (group_cd.equals("1")) {
PageData pd1 = new PageData();
pd1.put("AREA_ID", "1");
pd1.put("AREA_NM", "基础资源");
PageData pd2 = new PageData();
pd2.put("AREA_ID", "2");
pd2.put("AREA_NM", "厂商组合");
PageData pd3 = new PageData();
pd3.put("AREA_ID", "3");
pd3.put("AREA_NM", "客户组合");
PageData pd4 = new PageData();
pd4.put("AREA_ID", "4");
pd4.put("AREA_NM", "作业组合");
PageData pd5 = new PageData();
pd5.put("AREA_ID", "5");
pd5.put("AREA_NM", "工序分类");
PageData pd6 = new PageData();
pd6.put("AREA_ID", "6");
pd6.put("AREA_NM", "工序类型");
PageData pd7 = new PageData();
pd7.put("AREA_ID", "7");
pd7.put("AREA_NM", "科目区分");
PageData pd8 = new PageData();
pd8.put("AREA_ID", "8");
pd8.put("AREA_NM", "销项区分");
PageData pd9 = new PageData();
pd9.put("AREA_ID", "9");
pd9.put("AREA_NM", "成本区分");
PageData pd10 = new PageData();
pd10.put("AREA_ID", "10");
pd10.put("AREA_NM", "预算区分");
PageData pd11 = new PageData();
pd11.put("AREA_ID", "11");
pd11.put("AREA_NM", "费率区分");
PageData pd12 = new PageData();
pd12.put("AREA_ID", "12");
pd12.put("AREA_NM", "物料区分");
PageData pd13 = new PageData();
pd13.put("AREA_ID", "13");
pd13.put("AREA_NM", "成本区分");
PageData pd14 = new PageData();
pd14.put("AREA_ID", "14");
pd14.put("AREA_NM", "供应区分");
PageData pd15 = new PageData();
pd15.put("AREA_ID", "15");
pd15.put("AREA_NM", "订单区分");
PageData pd16 = new PageData();
pd16.put("AREA_ID", "16");
pd16.put("AREA_NM", "环境参数");
PageData pd17 = new PageData();
pd17.put("AREA_ID", "17");
pd17.put("AREA_NM", "标签分类");
PageData pd18 = new PageData();
pd18.put("AREA_ID", "18");
pd18.put("AREA_NM", "单据流程");
list.add(pd1);
list.add(pd2);
list.add(pd3);
list.add(pd4);
list.add(pd5);
list.add(pd6);
list.add(pd7);
list.add(pd8);
list.add(pd9);
list.add(pd10);
list.add(pd11);
list.add(pd12);
list.add(pd13);
list.add(pd14);
list.add(pd15);
list.add(pd16);
list.add(pd17);
list.add(pd18);
} else {
PageData pd1 = new PageData();
pd1.put("AREA_ID", "1");
pd1.put("GROUP_CD", "1");
pd1.put("FILTERED", "0");
pd1.put("GROUP_NM", "员工信息");
PageData pd2 = new PageData();
pd2.put("AREA_ID", "1");
pd2.put("GROUP_CD", "2");
pd2.put("FILTERED", "0");
pd2.put("GROUP_NM", "设备信息");
PageData pd3 = new PageData();
pd3.put("AREA_ID", "1");
pd3.put("GROUP_CD", "3");
pd3.put("FILTERED", "0");
pd3.put("GROUP_NM", "联系人名");
PageData pd4 = new PageData();
pd4.put("AREA_ID", "1");
pd4.put("GROUP_CD", "4");
pd4.put("FILTERED", "0");
pd4.put("GROUP_NM", "厂商信息");
PageData pd5 = new PageData();
pd5.put("AREA_ID", "1");
pd5.put("GROUP_CD", "5");
pd5.put("FILTERED", "0");
pd5.put("GROUP_NM", "客户信息");
PageData pd6 = new PageData();
pd6.put("AREA_ID", "1");
pd6.put("GROUP_CD", "6");
pd6.put("FILTERED", "0");
pd6.put("GROUP_NM", "国别信息");
PageData pd7 = new PageData();
pd7.put("AREA_ID", "1");
pd7.put("GROUP_CD", "7");
pd7.put("FILTERED", "0");
pd7.put("GROUP_NM", "时区信息");
PageData pd8 = new PageData();
pd8.put("AREA_ID", "1");
pd8.put("GROUP_CD", "8");
pd8.put("FILTERED", "0");
pd8.put("GROUP_NM", "语言版本");
PageData pd9 = new PageData();
pd9.put("AREA_ID", "1");
pd9.put("GROUP_CD", "9");
pd9.put("FILTERED", "0");
pd9.put("GROUP_NM", "部门信息");
PageData pd10 = new PageData();
pd10.put("AREA_ID", "1");
pd10.put("GROUP_CD", "10");
pd10.put("FILTERED", "0");
pd10.put("GROUP_NM", "货币符号");
PageData pd11 = new PageData();
pd11.put("AREA_ID", "1");
pd11.put("GROUP_CD", "11");
pd11.put("FILTERED", "0");
pd11.put("GROUP_NM", "运用工序");
PageData pd12 = new PageData();
pd12.put("AREA_ID", "1");
pd12.put("GROUP_CD", "12");
pd12.put("FILTERED", "0");
pd12.put("GROUP_NM", "车间部署");
PageData pd13 = new PageData();
pd13.put("AREA_ID", "1");
pd13.put("GROUP_CD", "13");
pd13.put("FILTERED", "0");
pd13.put("GROUP_NM", "成本项目");
PageData pd14 = new PageData();
pd14.put("AREA_ID", "1");
pd14.put("GROUP_CD", "14");
pd14.put("FILTERED", "0");
pd14.put("GROUP_NM", "费率信息");
PageData pd15 = new PageData();
pd15.put("AREA_ID", "1");
pd15.put("GROUP_CD", "15");
pd15.put("FILTERED", "0");
pd15.put("GROUP_NM", "物料信息");
PageData pd16 = new PageData();
pd16.put("AREA_ID", "1");
pd16.put("GROUP_CD", "16");
pd16.put("FILTERED", "0");
pd16.put("GROUP_NM", "标准产品");
PageData pd17 = new PageData();
pd17.put("AREA_ID", "1");
pd17.put("GROUP_CD", "17");
pd17.put("FILTERED", "0");
pd17.put("GROUP_NM", "仓库信息");
PageData pd18 = new PageData();
pd18.put("AREA_ID", "1");
pd18.put("GROUP_CD", "18");
pd18.put("FILTERED", "0");
pd18.put("GROUP_NM", "计量单位");
PageData pd19 = new PageData();
pd19.put("AREA_ID", "2");
pd19.put("GROUP_CD", "1");
pd19.put("FILTERED", "0");
pd19.put("GROUP_NM", "厂商分类");
PageData pd20 = new PageData();
pd20.put("AREA_ID", "2");
pd20.put("GROUP_CD", "2");
pd20.put("FILTERED", "0");
pd20.put("GROUP_NM", "厂商组别");
PageData pd21 = new PageData();
pd21.put("AREA_ID", "3");
pd21.put("GROUP_CD", "1");
pd21.put("FILTERED", "0");
pd21.put("GROUP_NM", "客户分类");
PageData pd22 = new PageData();
pd22.put("AREA_ID", "3");
pd22.put("GROUP_CD", "2");
pd22.put("FILTERED", "0");
pd22.put("GROUP_NM", "客户组别");
PageData pd23 = new PageData();
pd23.put("AREA_ID", "4");
pd23.put("GROUP_CD", "1");
pd23.put("FILTERED", "0");
pd23.put("GROUP_NM", "作业部署");
PageData pd24 = new PageData();
pd24.put("AREA_ID", "4");
pd24.put("GROUP_CD", "2");
pd24.put("FILTERED", "0");
pd24.put("GROUP_NM", "备用部署");
PageData pd25 = new PageData();
pd25.put("AREA_ID", "4");
pd25.put("GROUP_CD", "3");
pd25.put("FILTERED", "0");
pd25.put("GROUP_NM", "备用部署");
PageData pd26 = new PageData();
pd26.put("AREA_ID", "4");
pd26.put("GROUP_CD", "4");
pd26.put("FILTERED", "0");
pd26.put("GROUP_NM", "外包部署");
PageData pd27 = new PageData();
pd27.put("AREA_ID", "4");
pd27.put("GROUP_CD", "5");
pd27.put("FILTERED", "0");
pd27.put("GROUP_NM", "项目节点");
PageData pd28 = new PageData();
pd28.put("AREA_ID", "5");
pd28.put("GROUP_CD", "1");
pd28.put("FILTERED", "0");
pd28.put("GROUP_NM", "设计类");
PageData pd29 = new PageData();
pd29.put("AREA_ID", "5");
pd29.put("GROUP_CD", "2");
pd29.put("FILTERED", "0");
pd29.put("GROUP_NM", "普通类");
PageData pd30 = new PageData();
pd30.put("AREA_ID", "5");
pd30.put("GROUP_CD", "3");
pd30.put("FILTERED", "0");
pd30.put("GROUP_NM", "自动类");
PageData pd31 = new PageData();
pd31.put("AREA_ID", "5");
pd31.put("GROUP_CD", "4");
pd31.put("FILTERED", "0");
pd31.put("GROUP_NM", "装配类");
PageData pd32 = new PageData();
pd32.put("AREA_ID", "5");
pd32.put("GROUP_CD", "5");
pd32.put("FILTERED", "0");
pd32.put("GROUP_NM", "外发类");
PageData pd33 = new PageData();
pd33.put("AREA_ID", "5");
pd33.put("GROUP_CD", "6");
pd33.put("FILTERED", "0");
pd33.put("GROUP_NM", "计划外1");
PageData pd34 = new PageData();
pd34.put("AREA_ID", "5");
pd34.put("GROUP_CD", "7");
pd34.put("FILTERED", "0");
pd34.put("GROUP_NM", "计划外2");
PageData pd35 = new PageData();
pd35.put("AREA_ID", "5");
pd35.put("GROUP_CD", "8");
pd35.put("FILTERED", "0");
pd35.put("GROUP_NM", "计划外3");
PageData pd36 = new PageData();
pd36.put("AREA_ID", "5");
pd36.put("GROUP_CD", "9");
pd36.put("FILTERED", "0");
pd36.put("GROUP_NM", "采购类");
PageData pd37 = new PageData();
pd37.put("AREA_ID", "5");
pd37.put("GROUP_CD", "10");
pd37.put("FILTERED", "0");
pd37.put("GROUP_NM", "配送类");
PageData pd38 = new PageData();
pd38.put("AREA_ID", "5");
pd38.put("GROUP_CD", "11");
pd38.put("FILTERED", "0");
pd38.put("GROUP_NM", "协助类");
PageData pd39 = new PageData();
pd39.put("AREA_ID", "5");
pd39.put("GROUP_CD", "12");
pd39.put("FILTERED", "0");
pd39.put("GROUP_NM", "简介类");
PageData pd40 = new PageData();
pd40.put("AREA_ID", "5");
pd40.put("GROUP_CD", "13");
pd40.put("FILTERED", "0");
pd40.put("GROUP_NM", "大计划");
PageData pd41 = new PageData();
pd41.put("AREA_ID", "6");
pd41.put("GROUP_CD", "1");
pd41.put("FILTERED", "0");
pd41.put("GROUP_NM", "放电(程序)");
PageData pd42 = new PageData();
pd42.put("AREA_ID", "6");
pd42.put("GROUP_CD", "2");
pd42.put("FILTERED", "0");
pd42.put("GROUP_NM", "编程");
PageData pd43 = new PageData();
pd43.put("AREA_ID", "6");
pd43.put("GROUP_CD", "3");
pd43.put("FILTERED", "0");
pd43.put("GROUP_NM", "CNC(程序)");
PageData pd44 = new PageData();
pd44.put("AREA_ID", "6");
pd44.put("GROUP_CD", "4");
pd44.put("FILTERED", "0");
pd44.put("GROUP_NM", "热处理");
PageData pd45 = new PageData();
pd45.put("AREA_ID", "6");
pd45.put("GROUP_CD", "5");
pd45.put("FILTERED", "0");
pd45.put("GROUP_NM", "装配");
PageData pd46 = new PageData();
pd46.put("AREA_ID", "6");
pd46.put("GROUP_CD", "6");
pd46.put("FILTERED", "0");
pd46.put("GROUP_NM", "调试");
PageData pd47 = new PageData();
pd47.put("AREA_ID", "6");
pd47.put("GROUP_CD", "7");
pd47.put("FILTERED", "0");
pd47.put("GROUP_NM", "线切割");
PageData pd48 = new PageData();
pd48.put("AREA_ID", "6");
pd48.put("GROUP_CD", "8");
pd48.put("FILTERED", "0");
pd48.put("GROUP_NM", "手动");
PageData pd49 = new PageData();
pd49.put("AREA_ID", "6");
pd49.put("GROUP_CD", "9");
pd49.put("FILTERED", "0");
pd49.put("GROUP_NM", "均分");
PageData pd50 = new PageData();
pd50.put("AREA_ID", "6");
pd50.put("GROUP_CD", "10");
pd50.put("FILTERED", "0");
pd50.put("GROUP_NM", "其他");
PageData pd51 = new PageData();
pd51.put("AREA_ID", "6");
pd51.put("GROUP_CD", "11");
pd51.put("FILTERED", "0");
pd51.put("GROUP_NM", "计划外");
PageData pd52 = new PageData();
pd52.put("AREA_ID", "6");
pd52.put("GROUP_CD", "12");
pd52.put("FILTERED", "0");
pd52.put("GROUP_NM", "限制");
PageData pd53 = new PageData();
pd53.put("AREA_ID", "6");
pd53.put("GROUP_CD", "13");
pd53.put("FILTERED", "0");
pd53.put("GROUP_NM", "项目工序");
PageData pd54 = new PageData();
pd54.put("AREA_ID", "6");
pd54.put("GROUP_CD", "14");
pd54.put("FILTERED", "0");
pd54.put("GROUP_NM", "断点工序");
PageData pd55 = new PageData();
pd55.put("AREA_ID", "7");
pd55.put("GROUP_CD", "1");
pd55.put("FILTERED", "0");
pd55.put("GROUP_NM", "销项分类");
PageData pd56 = new PageData();
pd56.put("AREA_ID", "7");
pd56.put("GROUP_CD", "2");
pd56.put("FILTERED", "0");
pd56.put("GROUP_NM", "应收分类");
PageData pd57 = new PageData();
pd57.put("AREA_ID", "7");
pd57.put("GROUP_CD", "3");
pd57.put("FILTERED", "0");
pd57.put("GROUP_NM", "应付分类");
PageData pd58 = new PageData();
pd58.put("AREA_ID", "7");
pd58.put("GROUP_CD", "5");
pd58.put("FILTERED", "0");
pd58.put("GROUP_NM", "成本分类");
PageData pd59 = new PageData();
pd59.put("AREA_ID", "8");
pd59.put("GROUP_CD", "1");
pd59.put("FILTERED", "0");
pd59.put("GROUP_NM", "产品");
PageData pd60 = new PageData();
pd60.put("AREA_ID", "8");
pd60.put("GROUP_CD", "2");
pd60.put("FILTERED", "0");
pd60.put("GROUP_NM", "服务");
PageData pd61 = new PageData();
pd61.put("AREA_ID", "8");
pd61.put("GROUP_CD", "3");
pd61.put("FILTERED", "0");
pd61.put("GROUP_NM", "其他");
PageData pd62 = new PageData();
pd62.put("AREA_ID", "9");
pd62.put("GROUP_CD", "1");
pd62.put("FILTERED", "0");
pd62.put("GROUP_NM", "原材费");
PageData pd63 = new PageData();
pd63.put("AREA_ID", "9");
pd63.put("GROUP_CD", "2");
pd63.put("FILTERED", "0");
pd63.put("GROUP_NM", "采购费");
PageData pd64 = new PageData();
pd64.put("AREA_ID", "9");
pd64.put("GROUP_CD", "3");
pd64.put("FILTERED", "0");
pd64.put("GROUP_NM", "外包费");
PageData pd65 = new PageData();
pd65.put("AREA_ID", "9");
pd65.put("GROUP_CD", "4");
pd65.put("FILTERED", "0");
pd65.put("GROUP_NM", "制造费");
PageData pd66 = new PageData();
pd66.put("AREA_ID", "9");
pd66.put("GROUP_CD", "5");
pd66.put("FILTERED", "0");
pd66.put("GROUP_NM", "期间费");
PageData pd67 = new PageData();
pd67.put("AREA_ID", "10");
pd67.put("GROUP_CD", "1");
pd67.put("FILTERED", "0");
pd67.put("GROUP_NM", "预算收入");
PageData pd68 = new PageData();
pd68.put("AREA_ID", "10");
pd68.put("GROUP_CD", "2");
pd68.put("FILTERED", "0");
pd68.put("GROUP_NM", "预算支出");
PageData pd69 = new PageData();
pd69.put("AREA_ID", "11");
pd69.put("GROUP_CD", "1");
pd69.put("FILTERED", "0");
pd69.put("GROUP_NM", "作业部署");
PageData pd70 = new PageData();
pd70.put("AREA_ID", "11");
pd70.put("GROUP_CD", "2");
pd70.put("FILTERED", "0");
pd70.put("GROUP_NM", "员工设备");
PageData pd71 = new PageData();
pd71.put("AREA_ID", "11");
pd71.put("GROUP_CD", "3");
pd71.put("FILTERED", "0");
pd71.put("GROUP_NM", "运用工序");
PageData pd72 = new PageData();
pd72.put("AREA_ID", "12");
pd72.put("GROUP_CD", "1");
pd72.put("FILTERED", "1");
pd72.put("GROUP_NM", "原材料");
PageData pd73 = new PageData();
pd73.put("AREA_ID", "12");
pd73.put("GROUP_CD", "2");
pd73.put("FILTERED", "1");
pd73.put("GROUP_NM", "购入品");
PageData pd74 = new PageData();
pd74.put("AREA_ID", "12");
pd74.put("GROUP_CD", "3");
pd74.put("FILTERED", "1");
pd74.put("GROUP_NM", "外包品");
PageData pd75 = new PageData();
pd75.put("AREA_ID", "12");
pd75.put("GROUP_CD", "4");
pd75.put("FILTERED", "1");
pd75.put("GROUP_NM", "消耗品");
PageData pd76 = new PageData();
pd76.put("AREA_ID", "12");
pd76.put("GROUP_CD", "5");
pd76.put("FILTERED", "2");
pd76.put("GROUP_NM", "费用类");
PageData pd77 = new PageData();
pd77.put("AREA_ID", "12");
pd77.put("GROUP_CD", "6");
pd77.put("FILTERED", "3");
pd77.put("GROUP_NM", "半成品");
PageData pd78 = new PageData();
pd78.put("AREA_ID", "12");
pd78.put("GROUP_CD", "7");
pd78.put("FILTERED", "3");
pd78.put("GROUP_NM", "制成品");
PageData pd79 = new PageData();
pd79.put("AREA_ID", "13");
pd79.put("GROUP_CD", "1");
pd79.put("FILTERED", "0");
pd79.put("GROUP_NM", "按分类展开");
PageData pd80 = new PageData();
pd80.put("AREA_ID", "13");
pd80.put("GROUP_CD", "2");
pd80.put("FILTERED", "0");
pd80.put("GROUP_NM", "按分组展开");
PageData pd81 = new PageData();
pd81.put("AREA_ID", "13");
pd81.put("GROUP_CD", "3");
pd81.put("FILTERED", "0");
pd81.put("GROUP_NM", "按费用展开");
PageData pd82 = new PageData();
pd82.put("AREA_ID", "14");
pd82.put("GROUP_CD", "1");
pd82.put("FILTERED", "0");
pd82.put("GROUP_NM", "客户");
PageData pd83 = new PageData();
pd83.put("AREA_ID", "14");
pd83.put("GROUP_CD", "2");
pd83.put("FILTERED", "0");
pd83.put("GROUP_NM", "厂商");
PageData pd84 = new PageData();
pd84.put("AREA_ID", "14");
pd84.put("GROUP_CD", "3");
pd84.put("FILTERED", "0");
pd84.put("GROUP_NM", "员工");
PageData pd85 = new PageData();
pd85.put("AREA_ID", "15");
pd85.put("GROUP_CD", "1");
pd85.put("FILTERED", "0");
pd85.put("GROUP_NM", "在制品");
PageData pd86 = new PageData();
pd86.put("AREA_ID", "15");
pd86.put("GROUP_CD", "2");
pd86.put("FILTERED", "1");
pd86.put("GROUP_NM", "标准品");
PageData pd87 = new PageData();
pd87.put("AREA_ID", "15");
pd87.put("GROUP_CD", "3");
pd87.put("FILTERED", "2");
pd87.put("GROUP_NM", "完工品");
PageData pd88 = new PageData();
pd88.put("AREA_ID", "16");
pd88.put("GROUP_CD", "1");
pd88.put("FILTERED", "0");
pd88.put("GROUP_NM", "全局参数");
PageData pd89 = new PageData();
pd89.put("AREA_ID", "16");
pd89.put("GROUP_CD", "2");
pd89.put("FILTERED", "1");
pd89.put("GROUP_NM", "基础模块");
PageData pd90 = new PageData();
pd90.put("AREA_ID", "16");
pd90.put("GROUP_CD", "3");
pd90.put("FILTERED", "2");
pd90.put("GROUP_NM", "销售模块");
PageData pd91 = new PageData();
pd91.put("AREA_ID", "17");
pd91.put("GROUP_CD", "1");
pd91.put("FILTERED", "10");
pd91.put("GROUP_NM", "地区");
PageData pd92 = new PageData();
pd92.put("AREA_ID", "17");
pd92.put("GROUP_CD", "2");
pd92.put("FILTERED", "10");
pd92.put("GROUP_NM", "行业");
PageData pd93 = new PageData();
pd93.put("AREA_ID", "17");
pd93.put("GROUP_CD", "3");
pd93.put("FILTERED", "10");
pd93.put("GROUP_NM", "职称");
PageData pd94 = new PageData();
pd94.put("AREA_ID", "17");
pd94.put("GROUP_CD", "4");
pd94.put("FILTERED", "10");
pd94.put("GROUP_NM", "性别");
PageData pd95 = new PageData();
pd95.put("AREA_ID", "17");
pd95.put("GROUP_CD", "201");
pd95.put("FILTERED", "10");
pd95.put("GROUP_NM", "付款方式");
PageData pd96 = new PageData();
pd96.put("AREA_ID", "17");
pd96.put("GROUP_CD", "202");
pd96.put("FILTERED", "10");
pd96.put("GROUP_NM", "任务分类");
PageData pd97 = new PageData();
pd97.put("AREA_ID", "18");
pd97.put("GROUP_CD", "1");
pd97.put("FILTERED", "20");
pd97.put("GROUP_NM", "合同单据状态");
PageData pd98 = new PageData();
pd98.put("AREA_ID", "18");
pd98.put("GROUP_CD", "2");
pd98.put("FILTERED", "20");
pd98.put("GROUP_NM", "制造编号单据状态");
list.add(pd1);
list.add(pd2);
list.add(pd3);
list.add(pd4);
list.add(pd5);
list.add(pd6);
list.add(pd7);
list.add(pd8);
list.add(pd9);
list.add(pd10);
list.add(pd11);
list.add(pd12);
list.add(pd13);
list.add(pd14);
list.add(pd15);
list.add(pd16);
list.add(pd17);
list.add(pd18);
list.add(pd19);
list.add(pd20);
list.add(pd21);
list.add(pd22);
list.add(pd23);
list.add(pd24);
list.add(pd25);
list.add(pd26);
list.add(pd27);
list.add(pd28);
list.add(pd29);
list.add(pd30);
list.add(pd31);
list.add(pd32);
list.add(pd33);
list.add(pd34);
list.add(pd35);
list.add(pd36);
list.add(pd37);
list.add(pd38);
list.add(pd39);
list.add(pd40);
list.add(pd41);
list.add(pd42);
list.add(pd43);
list.add(pd44);
list.add(pd45);
list.add(pd46);
list.add(pd47);
list.add(pd48);
list.add(pd49);
list.add(pd50);
list.add(pd51);
list.add(pd52);
list.add(pd53);
list.add(pd54);
list.add(pd55);
list.add(pd56);
list.add(pd57);
list.add(pd58);
list.add(pd59);
list.add(pd60);
list.add(pd61);
list.add(pd62);
list.add(pd63);
list.add(pd64);
list.add(pd65);
list.add(pd66);
list.add(pd67);
list.add(pd68);
list.add(pd69);
list.add(pd70);
list.add(pd71);
list.add(pd72);
list.add(pd73);
list.add(pd74);
list.add(pd75);
list.add(pd76);
list.add(pd77);
list.add(pd78);
list.add(pd79);
list.add(pd80);
list.add(pd81);
list.add(pd82);
list.add(pd83);
list.add(pd84);
list.add(pd85);
list.add(pd86);
list.add(pd87);
list.add(pd88);
list.add(pd89);
list.add(pd90);
list.add(pd91);
list.add(pd92);
list.add(pd93);
list.add(pd94);
list.add(pd95);
list.add(pd96);
list.add(pd97);
list.add(pd98);
}
return list;
}
/**
* 根据分类导入应收应付科目分类
* @param group_cd
* @return
*/
public static List<PageData> exportValue(String group_cd){
List<PageData> list = new ArrayList<>();
if (group_cd.equals("1")) {
PageData pd1 = new PageData();
pd1.put("KIND", "0");
pd1.put("CODE", "10");
pd1.put("NAME", "期初单");
pd1.put("DIRECT_ID", "0");
PageData pd2 = new PageData();
pd2.put("KIND", "1");
pd2.put("CODE", "20");
pd2.put("NAME", "应收单");
pd2.put("DIRECT_ID", "1");
PageData pd3 = new PageData();
pd3.put("KIND", "2");
pd3.put("CODE", "21");
pd3.put("NAME", "折让单");
pd3.put("DIRECT_ID", "1");
PageData pd4 = new PageData();
pd4.put("KIND", "3");
pd4.put("CODE", "22");
pd4.put("NAME", "坏账单");
pd4.put("DIRECT_ID", "1");
PageData pd5 = new PageData();
pd5.put("KIND", "4");
pd5.put("CODE", "40");
pd5.put("NAME", "收款单A");
pd5.put("DIRECT_ID", "2");
PageData pd6 = new PageData();
pd6.put("KIND", "4");
pd6.put("CODE", "41");
pd6.put("NAME", "收款单B");
pd6.put("DIRECT_ID", "2");
PageData pd7 = new PageData();
pd7.put("KIND", "4");
pd7.put("CODE", "42");
pd7.put("NAME", "收款单C");
pd7.put("DIRECT_ID", "2");
PageData pd8 = new PageData();
pd8.put("KIND", "4");
pd8.put("CODE", "43");
pd8.put("NAME", "收款单D");
pd8.put("DIRECT_ID", "2");
PageData pd9 = new PageData();
pd9.put("KIND", "4");
pd9.put("CODE", "44");
pd9.put("NAME", "退款单");
pd9.put("DIRECT_ID", "2");
PageData pd10 = new PageData();
pd10.put("KIND", "4");
pd10.put("CODE", "45");
pd10.put("NAME", "坏账收回");
pd10.put("DIRECT_ID", "2");
PageData pd11 = new PageData();
pd11.put("KIND", "5");
pd11.put("CODE", "50");
pd11.put("NAME", "预收单");
pd11.put("DIRECT_ID", "0");
list.add(pd1);
list.add(pd2);
list.add(pd3);
list.add(pd4);
list.add(pd5);
list.add(pd6);
list.add(pd7);
list.add(pd8);
list.add(pd9);
list.add(pd10);
list.add(pd11);
} else {
PageData pd1 = new PageData();
pd1.put("KIND", "0");
pd1.put("CODE", "10");
pd1.put("NAME", "期初单");
pd1.put("DIRECT_ID", "0");
PageData pd2 = new PageData();
pd2.put("KIND", "1");
pd2.put("CODE", "20");
pd2.put("NAME", "应付单");
pd2.put("DIRECT_ID", "1");
PageData pd3 = new PageData();
pd3.put("KIND", "2");
pd3.put("CODE", "21");
pd3.put("NAME", "折让单");
pd3.put("DIRECT_ID", "1");
PageData pd4 = new PageData();
pd4.put("KIND", "3");
pd4.put("CODE", "22");
pd4.put("NAME", "坏账单");
pd4.put("DIRECT_ID", "1");
PageData pd5 = new PageData();
pd5.put("KIND", "4");
pd5.put("CODE", "40");
pd5.put("NAME", "支付单A");
pd5.put("DIRECT_ID", "2");
PageData pd6 = new PageData();
pd6.put("KIND", "4");
pd6.put("CODE", "41");
pd6.put("NAME", "支付单B");
pd6.put("DIRECT_ID", "2");
PageData pd7 = new PageData();
pd7.put("KIND", "4");
pd7.put("CODE", "42");
pd7.put("NAME", "支付单C");
pd7.put("DIRECT_ID", "2");
PageData pd8 = new PageData();
pd8.put("KIND", "4");
pd8.put("CODE", "43");
pd8.put("NAME", "支付单D");
pd8.put("DIRECT_ID", "2");
PageData pd9 = new PageData();
pd9.put("KIND", "4");
pd9.put("CODE", "44");
pd9.put("NAME", "退款单");
pd9.put("DIRECT_ID", "2");
PageData pd10 = new PageData();
pd10.put("KIND", "4");
pd10.put("CODE", "45");
pd10.put("NAME", "坏账收回");
pd10.put("DIRECT_ID", "2");
PageData pd11 = new PageData();
pd11.put("KIND", "5");
pd11.put("CODE", "50");
pd11.put("NAME", "预付单");
pd11.put("DIRECT_ID", "0");
list.add(pd1);
list.add(pd2);
list.add(pd3);
list.add(pd4);
list.add(pd5);
list.add(pd6);
list.add(pd7);
list.add(pd8);
list.add(pd9);
list.add(pd10);
list.add(pd11);
}
return list;
}
public static void main(String[] args) {
System.out.println(getDays());
System.out.println(getAfterDayWeek("3"));
System.out.println(getCurrentMonthDay());
System.out.println(getDaysByYearMonth(2018,10));
}
}
package cn.liuyk.web.util;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
/** 文件处理
*
* 创建时间:2014年12月23日
*/
public class FileUtil {
/**获取文件大小 返回 KB 保留3位小数 没有文件时返回0
* @param filepath 文件完整路径,包括文件名
* @return
*/
public static Double getFilesize(String filepath){
File backupath = new File(filepath);
return Double.valueOf(backupath.length())/1000.000;
}
/**
* 创建目录
* @param destDirName目标目录名
* @return
*/
public static Boolean createDir(String destDirName) {
File dir = new File(destDirName);
if(!dir.getParentFile().exists()){ //判断有没有父路径,就是判断文件整个路径是否存在
return dir.getParentFile().mkdirs(); //不存在就全部创建
}
return false;
}
/**
* 删除文件
* @param filePathAndName
* String 文件路径及名称 如c:/fqf.txt
* @param fileContent
* String
* @return boolean
*/
public static void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
} catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();
}
}
/**
* 读取到字节数组0
* @param filePath //路径
* @throws IOException
*/
public static byte[] getContent(String filePath) throws IOException {
File file = new File(filePath);
long fileSize = file.length();
if (fileSize > Integer.MAX_VALUE) {
System.out.println("file too big...");
return null;
}
FileInputStream fi = new FileInputStream(file);
byte[] buffer = new byte[(int) fileSize];
int offset = 0;
int numRead = 0;
while (offset < buffer.length
&& (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {
offset += numRead;
}
// 确保所有数据均被读取
if (offset != buffer.length) {
throw new IOException("Could not completely read file " + file.getName());
}
fi.close();
return buffer;
}
/**
* 读取到字节数组1
*
* @param filePath
* @return
* @throws IOException
*/
public static byte[] toByteArray(String filePath) throws IOException {
File f = new File(filePath);
if (!f.exists()) {
throw new FileNotFoundException(filePath);
}
ByteArrayOutputStream bos = new ByteArrayOutputStream((int) f.length());
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(f));
int buf_size = 1024;
byte[] buffer = new byte[buf_size];
int len = 0;
while (-1 != (len = in.read(buffer, 0, buf_size))) {
bos.write(buffer, 0, len);
}
return bos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
bos.close();
}
}
/**
* 读取到字节数组2
*
* @param filePath
* @return
* @throws IOException
*/
public static byte[] toByteArray2(String filePath) throws IOException {
File f = new File(filePath);
if (!f.exists()) {
throw new FileNotFoundException(filePath);
}
FileChannel channel = null;
FileInputStream fs = null;
try {
fs = new FileInputStream(f);
channel = fs.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size());
while ((channel.read(byteBuffer)) > 0) {
// do nothing
// System.out.println("reading");
}
return byteBuffer.array();
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
channel.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Mapped File way MappedByteBuffer 可以在处理大文件时,提升性能
*
* @param filename
* @return
* @throws IOException
*/
public static byte[] toByteArray3(String filePath) throws IOException {
FileChannel fc = null;
RandomAccessFile rf = null;
try {
rf = new RandomAccessFile(filePath, "r");
fc = rf.getChannel();
MappedByteBuffer byteBuffer = fc.map(MapMode.READ_ONLY, 0,
fc.size()).load();
//System.out.println(byteBuffer.isLoaded());
byte[] result = new byte[(int) fc.size()];
if (byteBuffer.remaining() > 0) {
// System.out.println("remain");
byteBuffer.get(result, 0, byteBuffer.remaining());
}
return result;
} catch (IOException e) {
e.printStackTrace();
throw e;
} finally {
try {
rf.close();
fc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package cn.liuyk.web.util;
import java.util.ArrayList;
import org.springframework.stereotype.Service;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
@Service("jsonUtil")
public final class JsonUtil {
private static final Gson singleton = new Gson();
private JsonUtil() {
}
public static Gson getInstance() {
return singleton;
}
public String toJson(Object obj) {
Tools.setRespJsonIntoRequest(obj);
return singleton.toJson(obj);
}
public String toJsonTree(Object obj) {
JsonElement je = singleton.toJsonTree(obj);
Tools.setRespJsonIntoRequest(obj);
return singleton.toJson(je);
}
public String toJsonWithEmptyArray() {
return singleton.toJson(new ArrayList());
}
}
package cn.liuyk.web.util;
/**
* 说明:日志处理
*
* 修改时间:2014年9月20日
* @version
*/
public class Logger {
private org.apache.log4j.Logger logger;
/**
* 构造方法,初始化Log4j的日志对象
*/
private Logger(org.apache.log4j.Logger log4jLogger) {
logger = log4jLogger;
}
/**
* 获取构造器,根据类初始化Logger对象
*
* @param Class
* Class对象
* @return Logger对象
*/
public static Logger getLogger(Class classObject) {
return new Logger(org.apache.log4j.Logger.getLogger(classObject));
}
/**
* 获取构造器,根据类名初始化Logger对象
*
* @param String
* 类名字符串
* @return Logger对象
*/
public static Logger getLogger(String loggerName) {
return new Logger(org.apache.log4j.Logger.getLogger(loggerName));
}
public void debug(Object object) {
logger.debug(object);
}
public void debug(Object object, Throwable e) {
logger.debug(object, e);
}
public void info(Object object) {
logger.info(object);
}
public void info(Object object, Throwable e) {
logger.info(object, e);
}
public void warn(Object object) {
logger.warn(object);
}
public void warn(Object object, Throwable e) {
logger.warn(object, e);
}
public void error(Object object) {
logger.error(object);
}
public void error(Object object, Throwable e) {
logger.error(object, e);
}
public void fatal(Object object) {
logger.fatal(object);
}
public String getName() {
return logger.getName();
}
public org.apache.log4j.Logger getLog4jLogger() {
return logger;
}
public boolean equals(Logger newLogger) {
return logger.equals(newLogger.getLog4jLogger());
}
}
package cn.liuyk.web.util;
import java.util.HashMap;
import java.util.Map;
/**
* 说明:经纬度处理
*
* 修改时间:2014年9月20日
* @version
*/
public class MapDistance {
private static double EARTH_RADIUS = 6378.137;
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 根据两个位置的经纬度,来计算两地的距离(单位为KM)
* 参数为String类型
* @param lat1 用户经度
* @param lng1 用户纬度
* @param lat2 商家经度
* @param lng2 商家纬度
* @return
*/
public static String getDistance(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
Double lat1 = Double.parseDouble(lat1Str);
Double lng1 = Double.parseDouble(lng1Str);
Double lat2 = Double.parseDouble(lat2Str);
Double lng2 = Double.parseDouble(lng2Str);
double patm = 2;
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double difference = radLat1 - radLat2;
double mdifference = rad(lng1) - rad(lng2);
double distance = patm * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / patm), patm)
+ Math.cos(radLat1) * Math.cos(radLat2)
* Math.pow(Math.sin(mdifference / patm), patm)));
distance = distance * EARTH_RADIUS;
String distanceStr = String.valueOf(distance);
return distanceStr;
}
/**
* 获取当前用户一定距离以内的经纬度值
* 单位米 return minLat
* 最小经度 minLng
* 最小纬度 maxLat
* 最大经度 maxLng
* 最大纬度 minLat
*/
public static Map getAround(String latStr, String lngStr, String raidus) {
Map map = new HashMap();
Double latitude = Double.parseDouble(latStr);// 传值给经度
Double longitude = Double.parseDouble(lngStr);// 传值给纬度
Double degree = (24901 * 1609) / 360.0; // 获取每度
double raidusMile = Double.parseDouble(raidus);
Double mpdLng = Double.parseDouble((degree * Math.cos(latitude * (Math.PI / 180))+"").replace("-", ""));
Double dpmLng = 1 / mpdLng;
Double radiusLng = dpmLng * raidusMile;
//获取最小经度
Double minLat = longitude - radiusLng;
// 获取最大经度
Double maxLat = longitude + radiusLng;
Double dpmLat = 1 / degree;
Double radiusLat = dpmLat * raidusMile;
// 获取最小纬度
Double minLng = latitude - radiusLat;
// 获取最大纬度
Double maxLng = latitude + radiusLat;
map.put("minLat", minLat+"");
map.put("maxLat", maxLat+"");
map.put("minLng", minLng+"");
map.put("maxLng", maxLng+"");
return map;
}
public static void main(String[] args) {
//济南国际会展中心经纬度:117.11811 36.68484
//趵突泉:117.00999000000002 36.66123
System.out.println(getDistance("116.97265","36.694514","116.597805","36.738024"));
System.out.println(getAround("117.11811", "36.68484", "13000"));
//117.01028712333508(Double), 117.22593287666493(Double),
//36.44829619896034(Double), 36.92138380103966(Double)
}
}
package cn.liuyk.web.util;
import java.io.File;
import java.security.MessageDigest;
/**
* 说明:MD5处理
*
* 修改时间:2014年9月20日
* @version
*/
public class MD5 {
public static String md5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
str = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public static void main(String[] args) {
/*System.out.println(md5("[email protected] "+"123456"));
System.out.println(md5("mj1"));
System.out.println(md5("1"));
System.out.println(md5("qiu1234"));
String filePath = FileUpload.getFile();
System.out.println(filePath);
System.out.println(Tools.convertBase64ToStr("5LiJ5qyh"));
System.out.println(Tools.convertStrToBase64("三次"));
System.out.println(Tools.convertStrToBase64("1"));
String dsd = "11-10-2016-05-01";
String d = dsd.replace("-", ",");
String[] ds = d.split(",");
System.out.println(ds[0]);
System.out.println(ds[1]);*/
}
}
package cn.liuyk.web.util;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
/**
* 说明:参数封装Map
*
* 修改时间:2014年9月20日
* @version
*/
public class PageData extends HashMap implements Map{
private static final long serialVersionUID = 1L;
Map map = null;
HttpServletRequest request;
public PageData(HttpServletRequest request){
this.request = request;
Map properties = request.getParameterMap();
Map returnMap = new HashMap();
Iterator entries = properties.entrySet().iterator();
Map.Entry entry;
String name = "";
String value = "";
while (entries.hasNext()) {
entry = (Map.Entry) entries.next();
name = (String) entry.getKey();
Object valueObj = entry.getValue();
if(null == valueObj){
value = "";
}else if(valueObj instanceof String[]){
String[] values = (String[])valueObj;
for(int i=0;i<values.length;i++){
value = values[i] + ",";
}
value = value.substring(0, value.length()-1);
}else{
value = valueObj.toString();
}
returnMap.put(name, value);
}
map = returnMap;
}
public PageData() {
map = new HashMap();
}
@Override
public Object get(Object key) {
Object obj = null;
if(map.get(key) instanceof Object[]) {
Object[] arr = (Object[])map.get(key);
obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]);
} else {
obj = map.get(key);
}
return obj;
}
public String getString(Object key) {
return (String)get(key);
}
public Date getDate(Object key) {
return (Date)get(key);
}
public Integer getInteger(Object key) {
return (Integer)get(key);
}
public Double getDouble(Object key) {
return (Double)get(key);
}
public Float getFloat(Object key) {
return (Float)get(key);
}
public Short getShort(Object key) {
return (Short)get(key);
}
public BigDecimal getBigDecimal(Object key) {
return (BigDecimal)get(key);
}
@Override
public Object put(Object key, Object value) {
return map.put(key, value);
}
@Override
public Object remove(Object key) {
return map.remove(key);
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
// TODO Auto-generated method stub
return map.containsKey(key);
}
public boolean containsValue(Object value) {
// TODO Auto-generated method stub
return map.containsValue(value);
}
public Set entrySet() {
// TODO Auto-generated method stub
return map.entrySet();
}
public boolean isEmpty() {
// TODO Auto-generated method stub
return map.isEmpty();
}
public Set keySet() {
// TODO Auto-generated method stub
return map.keySet();
}
@SuppressWarnings("unchecked")
public void putAll(Map t) {
// TODO Auto-generated method stub
map.putAll(t);
}
public int size() {
// TODO Auto-generated method stub
return map.size();
}
public Collection values() {
// TODO Auto-generated method stub
return map.values();
}
}
package cn.liuyk.web.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
/**
* 说明:常用工具
*
* 修改时间:2015年11月24日
* @version
*/
public class Tools {
/**
* 随机生成六位数验证码
* @return
*/
public static int getRandomNum(){
Random r = new Random();
return r.nextInt(900000)+100000;//(Math.random()*(999999-100000)+100000)
}
/**
* 检测字符串是否不为空(null,"","null")
* @param s
* @return 不为空则返回true,否则返回false
*/
public static boolean notEmpty(String s){
return s!=null && !"".equals(s) && !"null".equals(s);
}
/**
* 检测字符串是否为空(null,"","null")
* @param s
* @return 为空则返回true,不否则返回false
*/
public static boolean isEmpty(String s){
return s==null || "".equals(s) || "null".equals(s);
}
/**
* 字符串转换为字符串数组
* @param str 字符串
* @param splitRegex 分隔符
* @return
*/
public static String[] str2StrArray(String str,String splitRegex){
if(isEmpty(str)){
return null;
}
return str.split(splitRegex);
}
/**
* 用默认的分隔符(,)将字符串转换为字符串数组
* @param str 字符串
* @return
*/
public static String[] str2StrArray(String str){
return str2StrArray(str,",\\s*");
}
/**
* 按照yyyy-MM-dd HH:mm:ss的格式,日期转字符串
* @param date
* @return yyyy-MM-dd HH:mm:ss
*/
public static String date2Str(Date date){
return date2Str(date,"yyyy-MM-dd HH:mm:ss");
}
/**
* 按照yyyy-MM-dd HH:mm:ss的格式,字符串转日期
* @param date
* @return
*/
public static Date str2Date(String date){
if(notEmpty(date)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
}else{
return null;
}
}
/**
* 按照参数format的格式,日期转字符串
* @param date
* @param format
* @return
*/
public static String date2Str(Date date,String format){
if(date!=null){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}else{
return "";
}
}
/**
* 把时间根据时、分、秒转换为时间段
* @param StrDate
*/
public static String getTimes(String StrDate){
String resultTimes = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now;
try {
now = new Date();
java.util.Date date=df.parse(StrDate);
long times = now.getTime()-date.getTime();
long day = times/(24*60*60*1000);
long hour = (times/(60*60*1000)-day*24);
long min = ((times/(60*1000))-day*24*60-hour*60);
long sec = (times/1000-day*24*60*60-hour*60*60-min*60);
StringBuffer sb = new StringBuffer();
//sb.append("发表于:");
if(hour>0 ){
sb.append(hour+"小时前");
} else if(min>0){
sb.append(min+"分钟前");
} else{
sb.append(sec+"秒前");
}
resultTimes = sb.toString();
} catch (ParseException e) {
e.printStackTrace();
}
return resultTimes;
}
/**
* 写本地txt里的单行内容
* @param filePath 文件路径
* @param content 写入的内容
*/
public static void writeFile(String fileP,String content){
String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../"; //项目路径
filePath = (filePath.trim() + fileP.trim()).substring(6).trim();
if(filePath.indexOf(":") != 1){
filePath = File.separator + filePath;
}
try {
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");
BufferedWriter writer=new BufferedWriter(write);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 验证邮箱
* @param email
* @return
*/
public static boolean checkEmail(String email){
boolean flag = false;
try{
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(email);
flag = matcher.matches();
}catch(Exception e){
flag = false;
}
return flag;
}
/**
* 验证手机号码
* @param mobiles
* @return
*/
public static boolean checkMobileNumber(String mobileNumber){
boolean flag = false;
try{
Pattern regex = Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$");
Matcher matcher = regex.matcher(mobileNumber);
flag = matcher.matches();
}catch(Exception e){
flag = false;
}
return flag;
}
/**
* 检测KEY是否正确
* @param paraname 传入参数
* @param FKEY 接收的 KEY
* @return 为空则返回true,不否则返回false
*/
public static boolean checkKey(String paraname, String FKEY){
paraname = (null == paraname)? "":paraname;
return MD5.md5(paraname+DateUtil.getDays()+",fh,").equals(FKEY);
}
/**
* 读取本地txt里的单行内容
* @param filePath 文件路径
*/
public static String readTxtFile(String fileP) {
try {
String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../"; //项目路径
filePath = filePath.replaceAll("file:/", "");
filePath = filePath.replaceAll("%20", " ");
filePath = filePath.trim() + fileP.trim();
if(filePath.indexOf(":") != 1){
filePath = File.separator + filePath;
}
String encoding = "utf-8";
File file = new File(filePath);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding); // 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
return lineTxt;
}
read.close();
}else{
System.out.println("找不到指定的文件,查看此路径是否正确:"+filePath);
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
}
return "";
}
public static void setRespJsonIntoRequest(Object obj) {
getCurrentRequest().setAttribute("responseJson", obj);
}
public static HttpServletRequest getCurrentRequest() {
return ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
}
//身份证
public static boolean isIdCard(String idCardString)
{
String idCardPattern = "^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$";
return Pattern.matches(idCardPattern, idCardString);
}
//手机
public static boolean isMobile(String mobileString){
String mobilePattern = "^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$";
return Pattern.matches(mobilePattern, mobileString);
}
//遍历指定路径下的各个txt文本
public static List<String> getFileList(File file) {
List<String> result = new ArrayList<String>();
if (!file.isDirectory()) {
System.out.println(file.getAbsolutePath());
result.add(file.getAbsolutePath());
} else {
File[] directoryList = file.listFiles(new FileFilter() {
public boolean accept(File file) {
if (file.isFile() && file.getName().indexOf("txt") > -1) {
return true;
} else {
return false;
}
}
});
for (int i = 0; i < directoryList.length; i++) {
result.add(directoryList[i].getPath());
}
}
return result;
}
//读取mai_config一个参数值
public static String getStringFromEnvconfig(String name) {
ResourceBundle resourceBundle = ResourceBundle.getBundle("mail_config");
return resourceBundle.getString(name);
}
public static String getCnASCII(String cnStr) {
StringBuffer strBuf = new StringBuffer();
byte[] bGBK = cnStr.getBytes();
for (int i = 0; i < bGBK.length; i++) {
strBuf.append(Integer.toHexString(bGBK[i] & 0xff) + " ");
}
return strBuf.toString();
}
//随机产生6位数字
public static String getRandomSixNum() {
String strs = "";
for (int i = 0; i < 6; i++) {
Random random = new Random();
String str = String.valueOf(random.nextInt(10));
strs += str;
}
return strs;
}
//加密处理
public static String string2MD5(String inStr) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
char[] charArray = inStr.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];
byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16)
hexValue.append("0");
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
public static String formatDate(Date date){
return formatDate(date,"yyyy-MM-dd HH:mm:ss");
}
public static String formatDate(Date date, String pattern){
SimpleDateFormat dateFormat=new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
public static Date parseDate(String dateString) throws ParseException{
return parseDate(dateString,"yyyy-MM-dd HH:mm:ss");
}
public static Date parseDate(String dateString, String pattern) throws ParseException{
SimpleDateFormat dateFormat=new SimpleDateFormat(pattern);
return dateFormat.parse(dateString);
}
public static String convertCountry(String countryId){
return countryId==Const.COUNTRY_CHINA?"中国":"其他";
}
public static String convertBloodType(String bloodType){
if(bloodType.equals("A")){
return Const.BLOOD_TYPE_A;
}else if(bloodType.equals("B")){
return Const.BLOOD_TYPE_B;
}else if(bloodType.equals("C")){
return Const.BLOOD_TYPE_AB;
}else {
return Const.BLOOD_TYPE_O;
}
}
//文件后缀名
public static String getFileSuffix(String fullName) {
return fullName.substring(fullName.lastIndexOf("."));
}
//判断图片的格式
public static boolean isPic(File file) {
String suffix=Tools.getFileSuffix(file.getName());
if (suffix.equalsIgnoreCase(".png")) {
return true;
} else {
return false;
}
}
//当前日期减1
public static String beforeDate(){
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String date = "";
int dayval = 0;
if (day!=1) {
dayval = day+(-1);
String monthval = "";
if (month<10) {
monthval = "0"+String.valueOf(month);
}else{
monthval = String.valueOf(month);
}
String dayvalue = "";
if (dayval<10) {
dayvalue = "0"+String.valueOf(dayval);
}else{
dayvalue = String.valueOf(dayval);
}
date = String.valueOf(year)+"-"+monthval+"-"+dayvalue;
}else{
month = month + (-1);
dayval = getMaxDays(year,month);
String monthval = "";
if (month<10) {
monthval = "0"+String.valueOf(month);
}else{
monthval = String.valueOf(month);
}
String dayvalue = "";
if (dayval<10) {
dayvalue = "0"+String.valueOf(dayval);
}else{
dayvalue = String.valueOf(dayval);
}
date = String.valueOf(year)+"-"+monthval+"-"+dayvalue;
}
return date;
}
//设置月份的天数
public static int getMaxDays(int year,int month){
int days = -1;
switch (month) {
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
//判断该年是否闰年
if(isLeapYear(year)){//是闰年
days = 29;
}else{
days = 28;
}
break;
default:
System.out.println("对不起,您的输入不合法!");
break;
}
return days;
}
/**
* 判断某年是否为闰年
*/
public static boolean isLeapYear(int year){
//内置的判断闰年的方法
if((year%4==0 && year%100!=0)||year%400==0){
return true;
}
return false;
}
/**
* 获取指定年份2010到至今
*/
public static List<Integer> getStartYearAndCurrentYear(){
List<Integer> list = new ArrayList<>();
int year = Integer.valueOf(DateUtil.getYear());
for (int i = 2010; i <= year; i++) {
list.add(i);
}
return list;
}
//测试
public static void main(String[] args) throws IOException {
System.out.println(getRandomNum());
System.out.println("**********************");
//读取指定文件下各个txt文本里的内容
/*String encoding="GBK";
String dfs = FileUpload.getTXTFile();
File filesd = new File(dfs);
List<String> result = new ArrayList<String>();
result = getFileList(filesd);
//File[] files=filesd.listFiles();
for (String string : result) {
InputStreamReader read = new InputStreamReader(new FileInputStream(string),encoding);//考虑到编码格式
BufferedReader br = new BufferedReader(read);
//String filename = string.getName();
String line=null;
while((line = br.readLine())!=null){
line = line.replaceAll(" +", ",");
if (line.equals(",")) {
break;
}else{
String[] arr = line.split(",");
//System.out.println("这是第"+filename.substring(0, 1)+"号机床的电流检测");
System.out.println("电流检测时间:"+"20"+arr[0].replace("/", "-")+" "+arr[1]);
System.out.println("a电流的值:"+arr[2]);
System.out.println("b电流的值:"+arr[3]);
System.out.println("c电流的值:"+arr[4]);
System.out.println("三相电流的最大电流的值:"+arr[5]);
System.out.println("机床的状态:"+arr[6]);
System.out.println("机床状态的名称:"+arr[7]);
System.out.println("停机时间:"+arr[8]);
System.out.println("待机时间:"+arr[9]);
System.out.println("加工时间:"+arr[10]);
System.out.println("*****#####********");
}
}
}*/
System.out.println(getCnASCII("你好"));
System.out.println(getRandomSixNum());
System.out.println(string2MD5("1"));
String date = beforeDate();
System.out.println(date);
}
}
package cn.liuyk.web.util;
import java.util.UUID;
public class UuidUtil {
public static String get32UUID() {
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
return uuid;
}
public static void main(String[] args) {
System.out.println(get32UUID());
}
}
控制层继承类BaseController/cn.liuykxl.web.base
package cn.liuykxl.web.base;
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.springframework.context.MessageSource;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;
import cn.liuyk.web.util.JsonUtil;
import cn.liuyk.web.util.Logger;
import cn.liuyk.web.util.PageData;
import cn.liuyk.web.util.UuidUtil;
import cn.liuykxl.web.entity.Json;
import cn.liuykxl.web.entity.Page;
/**
* 修改时间:2015、12、11
*/
public class BaseController {
protected Logger logger = Logger.getLogger(this.getClass());
private static final long serialVersionUID = 6357869213649815390L;
private MessageSource bundle;
private JsonUtil jsonUtil;
/** new PageData对象
* @return
*/
public PageData getPageData(){
return new PageData(this.getRequest());
}
/**得到ModelAndView
* @return
*/
public ModelAndView getModelAndView(){
return new ModelAndView();
}
/**得到request对象
* @return
*/
public HttpServletRequest getRequest() {
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
/**得到32位的uuid
* @return
*/
public String get32UUID(){
return UuidUtil.get32UUID();
}
/**得到分页列表的信息
* @return
*/
public Page getPage(){
return new Page();
}
public static void logBefore(Logger logger, String interfaceName){
logger.info("");
logger.info("start");
logger.info(interfaceName);
}
public static void logAfter(Logger logger){
logger.info("end");
logger.info("");
}
public String toFile(String fileName){
String newFileName = null;
try {
newFileName = new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return newFileName;
}
protected String getMessage(String code, Object... args) {
return bundle.getMessage(code, args, Locale.getDefault());
}
protected String getMessage(String code) {
return bundle.getMessage(code, new Object[] {}, Locale.getDefault());
}
protected String responseSuccessJson() {
Json json = new Json();
json.setSuccess(true);
json.setMsg(getMessage("console.operation.success"));
return jsonUtil.toJson(json);
}
protected String responseSysFailJson() {
Json json = new Json();
json.setMsg(getMessage("console.sys.error"));
return jsonUtil.toJson(json);
}
protected String responseFailJson(String code, Object data) {
Json json = new Json();
json.setMsg(getMessage(code));
json.setObj(data);
return jsonUtil.toJson(json);
}
}
实体类工具类Json/cn.liuykxl.web.entity
package cn.liuykxl.web.entity;
/**
* JSON模型
*/
public class Json implements java.io.Serializable {
private boolean success = false;// 是否成功
private String msg = "";// 提示信息
private Object obj = null;// 其他信息
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
}
实体类工具类Page/cn.liuykxl.web.entity
package cn.liuykxl.web.entity;
import java.util.ArrayList;
import java.util.List;
import cn.liuyk.web.util.Const;
import cn.liuyk.web.util.PageData;
import cn.liuyk.web.util.Tools;
/**
* 分页类
* 创建时间:2014年6月28日
*/
public class Page {
private int showCount; //每页显示记录数
private int totalPage; //总页数
private int totalResult; //总记录数
private int currentPage; //当前页
private int currentResult; //当前记录起始索引
private boolean entityOrField; //true:需要分页的地方,传入的参数就是Page实体;false:需要分页的地方,传入的参数所代表的实体拥有Page属性
private String pageStr; //最终页面显示的底部翻页导航,详细见:getPageStr();
private PageData pd = new PageData();
public Page(){
try {
this.showCount = Integer.parseInt(Tools.readTxtFile(Const.PAGE));
} catch (Exception e) {
this.showCount = 15;
}
}
public int getTotalPage() {
if(totalResult%showCount==0)
totalPage = totalResult/showCount;
else
totalPage = totalResult/showCount+1;
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalResult() {
return totalResult;
}
public void setTotalResult(int totalResult) {
this.totalResult = totalResult;
}
public int getCurrentPage() {
if(currentPage<=0)
currentPage = 1;
if(currentPage>getTotalPage())
currentPage = getTotalPage();
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
//拼接分页 页面及JS函数
public String getPageStr() {
StringBuffer sb = new StringBuffer();
if(totalResult>0){
sb.append(" <ul class=\"pagination pull-right no-margin\">\n");
if(currentPage==1){
sb.append(" <li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n");
sb.append(" <li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n");
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">跳转</a></li>\n");
sb.append(" <li><a>首页</a></li>\n");
sb.append(" <li><a>上页</a></li>\n");
}else{
sb.append(" <li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n");
sb.append(" <li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n");
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">跳转</a></li>\n");
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage(1)\">首页</a></li>\n");
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage-1)+")\">上页</a></li>\n");
}
int showTag = 5;//分页标签显示数量
int startTag = 1;
if(currentPage>showTag){
startTag = currentPage-1;
}
int endTag = startTag+showTag-1;
for(int i=startTag; i<=totalPage && i<=endTag; i++){
if(currentPage==i)
sb.append("<li class=\"active\"><a><font color='white'>"+i+"</font></a></li>\n");
else
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+i+")\">"+i+"</a></li>\n");
}
if(currentPage==totalPage){
sb.append(" <li><a>下页</a></li>\n");
sb.append(" <li><a>尾页</a></li>\n");
}else{
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage+1)+")\">下页</a></li>\n");
sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+totalPage+")\">尾页</a></li>\n");
}
sb.append(" <li><a>共"+totalPage+"页</a></li>\n");
sb.append(" <li><select title='显示条数' style=\"width:55px;float:left;margin-top:1px;\" onchange=\"changeCount(this.value)\">\n");
sb.append(" <option value='"+showCount+"'>"+showCount+"</option>\n");
sb.append(" <option value='10'>10</option>\n");
sb.append(" <option value='20'>20</option>\n");
sb.append(" <option value='30'>30</option>\n");
sb.append(" <option value='40'>40</option>\n");
sb.append(" <option value='50'>50</option>\n");
sb.append(" <option value='60'>60</option>\n");
sb.append(" <option value='70'>70</option>\n");
sb.append(" <option value='80'>80</option>\n");
sb.append(" <option value='90'>90</option>\n");
sb.append(" <option value='99'>99</option>\n");
sb.append(" </select>\n");
sb.append(" </li>\n");
sb.append("</ul>\n");
sb.append("<script type=\"text/javascript\">\n");
//换页函数
sb.append("function nextPage(page){");
sb.append(" top.jzts();");
sb.append(" if(true && document.forms[0]){\n");
sb.append(" var url = document.forms[0].getAttribute(\"action\");\n");
sb.append(" if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n");
sb.append(" document.forms[0].action = url;\n");
sb.append(" document.forms[0].submit();\n");
sb.append(" }else{\n");
sb.append(" var url = document.location+'';\n");
sb.append(" if(url.indexOf('?')>-1){\n");
sb.append(" if(url.indexOf('currentPage')>-1){\n");
sb.append(" var reg = /currentPage=\\d*/g;\n");
sb.append(" url = url.replace(reg,'currentPage=');\n");
sb.append(" }else{\n");
sb.append(" url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n");
sb.append(" }\n");
sb.append(" }else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n");
sb.append(" document.location = url;\n");
sb.append(" }\n");
sb.append("}\n");
//调整每页显示条数
sb.append("function changeCount(value){");
sb.append(" top.jzts();");
sb.append(" if(true && document.forms[0]){\n");
sb.append(" var url = document.forms[0].getAttribute(\"action\");\n");
sb.append(" if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" url = url + \"1&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n");
sb.append(" document.forms[0].action = url;\n");
sb.append(" document.forms[0].submit();\n");
sb.append(" }else{\n");
sb.append(" var url = document.location+'';\n");
sb.append(" if(url.indexOf('?')>-1){\n");
sb.append(" if(url.indexOf('currentPage')>-1){\n");
sb.append(" var reg = /currentPage=\\d*/g;\n");
sb.append(" url = url.replace(reg,'currentPage=');\n");
sb.append(" }else{\n");
sb.append(" url += \"1&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n");
sb.append(" }\n");
sb.append(" }else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n");
sb.append(" url = url + \"&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n");
sb.append(" document.location = url;\n");
sb.append(" }\n");
sb.append("}\n");
//跳转函数
sb.append("function toTZ(){");
sb.append("var toPaggeVlue = document.getElementById(\"toGoPage\").value;");
sb.append("if(toPaggeVlue == ''){document.getElementById(\"toGoPage\").value=1;return;}");
sb.append("if(isNaN(Number(toPaggeVlue))){document.getElementById(\"toGoPage\").value=1;return;}");
sb.append("nextPage(toPaggeVlue);");
sb.append("}\n");
sb.append("</script>\n");
}
pageStr = sb.toString();
return pageStr;
}
public void setPageStr(String pageStr) {
this.pageStr = pageStr;
}
public int getShowCount() {
return showCount;
}
public void setShowCount(int showCount) {
this.showCount = showCount;
}
public int getCurrentResult() {
currentResult = (getCurrentPage()-1)*getShowCount();
if(currentResult<0)
currentResult = 0;
return currentResult;
}
public void setCurrentResult(int currentResult) {
this.currentResult = currentResult;
}
public boolean isEntityOrField() {
return entityOrField;
}
public void setEntityOrField(boolean entityOrField) {
this.entityOrField = entityOrField;
}
public PageData getPd() {
return pd;
}
public void setPd(PageData pd) {
this.pd = pd;
}
}