package com.cmb.app.driverhome.util;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
import javax.servlet.http.HttpServletRequest;
public class CommonUtils {
public static void main(String[] args) {
//Wed Jul 20 20:00:00 CST 2016
String str = "Wed Jul 20 20:00:00 CST 2016";
str = "NUll ";
System.out.println(nullValueAsBlank(str));
String numberFormatPattern = "0.00";
String formatNumber = NumberFormatUtil.format(numberFormatPattern, 2d);
System.out.println(formatNumber);
String value = "2.3621245%";
String tempVal = value.substring(0, value.length()-1);
System.out.println(tempVal);
String resource = "aa,vvv";
String[] array = CommonUtils.split2array(resource);
for(String s : array) {
System.out.println(s);
}
String successRate = "69.99%";
float rate = Float.parseFloat(successRate.substring(0, successRate.length() - 1));
System.out.println("rate:" + rate);
System.out.println(rate < 70f);
}
/**
* 按照各种分隔符将字符串分割
* @param source 待分割的字符串
* @return
*/
public static String[] split2array(String source) {
Set<String> set = split2set(source);
if(set == null || set.size() <= 0) return null;
String[] array = new String[set.size()];
int index = 0;
for (String s : set) {
array[index++] = s;
}
return array;
}
/**
* 按照各种分隔符将字符串分割
* @param source 待分割的字符串
* @return
*/
public static Set<String> split2set(String source) {
if (source == null || source.equals("") || source.trim().length() == 0) {
return null;
}
source = source.trim();
Set<String> results = new TreeSet<String>();
String split = " ";
if (source.contains("\n")) {
source = source.replace("\n", ",");
split = ",";
} else if (source.contains("\r")) {
source = source.replace("\r", ",");
split = ",";
} else if (source.contains(",")) {
split = ",";
} else if (source.contains(",")) {
split = ",";
} else if (source.contains("、")) {
split = "、";
} else if (source.contains("|")) {
split = "\\|";
} else if (source.contains("/")) {
split = "/";
} else if (source.contains("\\")) {
source = source.replace("\\", "/");
split = "/";
} else if (source.contains(".")) {
split = "\\.";
} else if (source.contains("。")) {
split = "。";
} else if (source.contains("-")) {
split = "-";
} else if (source.contains("_")) {
split = "_";
} else if (source.contains("——")) {
split = "——";
} else {
split = " ";
}
String[] names = source.split(split);
for (String s : names) {
if(s.trim().equals("")) {
continue;
}
results.add(s.trim());
}
return results;
}
public static class NumberFormatUtil{
public static String format(String pattern, Number number){
try {
NumberFormat format = new DecimalFormat(pattern);
return format.format(number);
} catch (Exception e) {
return null;
}
}
}
/*****************************/
/**
* EEE MMM dd HH:mm:ss zzz yyyy格式转GMT格式
*
* @param str
* @param pattern
* @return
*/
public static String formatCST2GMT(String str, String pattern) {
Date date = parse(str, "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
SimpleDateFormat format = null;
if (null == pattern) format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
else format = new SimpleDateFormat(pattern);
try {
return format.format(date);
} catch (Exception e) {
return null;
}
}
public static Date parse(String str, String pattern, Locale locale) {
if (str == null || pattern == null) {
return null;
}
try {
return new SimpleDateFormat(pattern, locale).parse(str);
} catch (ParseException e) {
return null;
}
}
public static String format(Date date, String pattern, Locale locale) {
if (date == null || pattern == null) {
return null;
}
return new SimpleDateFormat(pattern, locale).format(date);
}
/*****************************/
/**
* 毫秒数转字符串
*
* @param millis 毫秒数
* @param pattern 要输出的日期字符串格式
*/
public static String longToDateStr(long millis, String pattern) {
Date date = new Date(millis);
DateFormat format = new SimpleDateFormat(pattern);
try {
return format.format(date);
} catch (Exception e) {
return null;
}
}
/**
* 毫秒数转字符串
*
* @param millis 1453338000000格式时间
* @return yyyyMMddhhmm格式字符串
*/
public static String longToDateStr(long millis) {
return dateToStr(new Date(millis));
}
/**
* 日期转字符串
*
* @param date 日期
* @return yyyyMMddhhmm格式字符串
*/
public static String dateToStr(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return year + addZero(month) + addZero(day) + addZero(hour) + addZero(minute);
}
/**
* 日期转字符串
*
* @param date 日期
* @param pattern 字符串格式 如yyyy/MM/dd hh:mm
*/
public static String dateToStr(Date date, String pattern) {
try {
DateFormat format = new SimpleDateFormat(pattern);
return format.format(date);
} catch (Exception e) {
return null;
}
}
/**
* 得到星期几:星期日0,星期一至星期六1~6
*
* @param dateStr 日期字符串
* @return
*/
public static String getDay(String dateStr) {
return getDay(strToDate(dateStr));
}
/**
* 得到星期几:星期日0,星期一至星期六1~6
*
* @param date 日期
* @return
*/
public static String getDay(Date date) {
if (null == date) {
return null;
}
return Integer.toString(date.getDay());
}
/**
* 得到兼容的日期格式:yyyy/MM/dd或yyyy-MM-dd或yyyy.MM.dd或yyyyMMdd
*
* @param dateStr 日期字符串
* @return
*/
public static Date strToDate(String dateStr) {
Date date = strToDate(dateStr, "yyyy/MM/dd");
if (null == date) {
date = strToDate(dateStr, "yyyy-MM-dd");
}
if (null == date) {
date = strToDate(dateStr, "yyyy.MM.dd");
}
if (null == date) {
date = strToDate(dateStr, "yyyyMMdd");
}
return date;
}
/**
* 得到兼容的时间格式:yyyy/MM/dd HH:mm或yyyy-MM-dd HH:mm或yyyy.MM.dd HH:mm或yyyyMMdd
* HH:mm
*
* @param dateStr 日期字符串
* @return
*/
public static Date strToDatetime(String dateStr) {
Date date = strToDate(dateStr, "yyyy/MM/dd HH:mm");
if (null == date) {
date = strToDate(dateStr, "yyyy-MM-dd HH:mm");
}
if (null == date) {
date = strToDate(dateStr, "yyyy.MM.dd HH:mm");
}
if (null == date) {
date = strToDate(dateStr, "yyyyMMdd HH:mm");
}
return date;
}
/**
* 字符串转日期
*
* @param dateStr 日期字符串
* @param pattern 默认的日期格式:yyyy/MM/dd HH:mm 2016/05/25 20:10
* @return
*/
public static Date strToDateDefaultPattern(String dateStr) {
return strToDate(dateStr, "yyyy/MM/dd HH:mm");
}
/**
* 字符串转日期
*
* @param dateStr 日期字符串
* @param pattern 日期的格式
* @return
*/
public static Date strToDate(String dateStr, String pattern) {
DateFormat format = new SimpleDateFormat(pattern);
try {
return format.parse(dateStr);
} catch (ParseException e) {
return null;
}
}
/**
* 字符串转日期
*
* @param dateStr 待转换的日期字符串
* @param oldFormat 待转换字符串的日期格式
* @param newFormat 目标日期格式
* @return
*/
public static Date strToDate(String dateStr, String oldFormat, String newFormat) {
return strToDate(dateStr, oldFormat, newFormat, 0);
}
/**
* 字符串转日期
*
* @param dateStr 待转换的日期字符串
* @param oldFormat 待转换字符串的日期格式
* @param newFormat 目标日期格式
* @param index 从字符串第几位开始解析
*/
public static Date strToDate(String dateStr, String oldFormat, String newFormat, int index) {
ParsePosition pos = new ParsePosition(index);
DateFormat sdf = new SimpleDateFormat(oldFormat);
Date date;
try {
date = sdf.parse(dateStr, pos);
} catch (Exception e) {
return null;
}
return date;
}
/**
* 重新格式化日期字符串
*
* @param dateStr 原始日期字符串
* @param oldFormat 原始字符串的日期格式
* @param newFormat 返回字符串的日期格式
*/
public static String dateTrans(String dateStr, String oldFormat, String newFormat) {
return dateTrans(dateStr, oldFormat, newFormat, 0);
}
/**
* 重新格式化日期字符串
*
* @param dateStr 原始日期字符串
* @param oldFormat 原始字符串的日期格式
* @param newFormat 返回字符串的日期格式
* @param index 从字符串第几位开始解析
*/
public static String dateTrans(String dateStr, String oldFormat, String newFormat, int index) {
ParsePosition pos = new ParsePosition(index);
DateFormat format = new SimpleDateFormat(oldFormat);
Date date;
try {
date = format.parse(dateStr, pos);
} catch (Exception e) {
return null;
}
format = new SimpleDateFormat(newFormat);
try {
return format.format(date);
} catch (Exception e) {
return null;
}
}
/**
* @param targetDiff 相差
* @param target 天/小时/分 (参见Calendar中常量)
*/
public static Date getDate(Date date, int targetDiff, int... target) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
if (target.length == 1) {
calendar.add(target[0], targetDiff);
} else {
calendar.add(Calendar.DATE, targetDiff);
}
return calendar.getTime();
}
/***********************************************************/
/***********************************************************/
/**
* double值保留2位小数
*
* @param number double值
*/
public static Double getDoubleRadix(double number) {
return getDoubleRadix(number, 2);
}
/**
* 保留n为小数
*
* @param number double数值
* @param radix 小数位
* @return
*/
public static double getDoubleRadix(double number, int radix) {
if (radix > 0) {
String radixformat = "0.";
for (int i = 0; i < radix; i++) {
radixformat += "0";
}
NumberFormat df = new DecimalFormat(radixformat);
return new Double(df.format(number).toString());
}
return number;
}
/**
* 字符串出现次数
*
* @param sub 子串
* @param source 原串
*/
public static int countInStr(String sub, String source) {
int count = 0;
int start = 0;
while (source.indexOf(sub, start) >= 0 && start < source.length()) {
count++;
start = source.indexOf(sub, start) + sub.length();
}
return count;
}
/**
* 格式化2位数字为00格式,如9格式化为09
*
* @param num 待格式话的数字
*/
public static String addZero(int num) {
return num <= 9 ? ("0" + num) : ("" + num);
}
/***********************************************************/
public static String nullValueAsBlank(String str) {
if (isEmpty(str)) {
return null;
}
str = trim(str);
return "null".equalsIgnoreCase(str) ? null : str;
}
/**
* 去空格
*/
public static String trim(String str, String... defaultValue) {
if (str == null) return defaultValue.length == 0 ? "" : defaultValue[0] == null ? "" : defaultValue[0].trim();
return str.toString().trim();
}
/**
* 判断是否空字符
*/
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
/**
* 判断是否空数组
*/
public static boolean isEmpty(Object[] array) {
return array == null || array.length == 0;
}
/***********************************************************/
/**
* 从请求中获取某参数值
*/
public static String getParamValue(String paramName, HttpServletRequest request) {
return getParamValueDefault(paramName, request, "");
}
/**
* 从请求中获取某参数值
*/
public static String getParamValueDefault(String paramName, HttpServletRequest request, String... defaultValue) {
String paramValue = request.getParameter(paramName);
String value = trim(paramValue);
if ("".equals(value) && defaultValue.length > 0) {
return defaultValue[0];
}
return value;
}
/***********************************************************/
/***
* 计算总页数
*
* @param records 记录总数
* @param pageSize 每页显示数量
* @return 总页数
*/
public static int calcuTotalPage(int records, int pageSize) {
return (records / pageSize) + (records % pageSize == 0 ? 0 : 1);
}
}
package com.cmb.app.driverhome.util.excelHandle;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.cmb.app.driverhome.util.ExcelUtil;
public abstract class ExcelCreateHandle {
private static final Logger logger = LoggerFactory.getLogger(ExcelCreateHandle.class);
public static String classPath = ExcelUtil.class.getResource("").getPath();
public abstract void creatExcel(List list);
/**
* 生成表格标题
* @param workbook
* @param sheet
* @param style 标题样式
* @param headers 标题:{{"列名","列宽"},{"列名","列宽"},...}
* @throws Exception
*/
public void createHeader(Workbook workbook, Sheet sheet, CellStyle style, String[][] headers) throws Exception {
Row row = sheet.createRow(0);
row.setHeightInPoints(28);
// row.setRowStyle(style);
for (int i = 0, len = headers.length; i < len; i++) {
String[] header = headers[i];
Cell cell = row.createCell(i);
sheet.setColumnWidth(i, Integer.valueOf(header[1]) * 256);
// sheet.autoSizeColumn(0, true);
cell.setCellValue(header[0]);
cell.setCellStyle(style);
}
}
/**
* 表格标题style
* @param workbook
* @return
*/
public CellStyle createHeaderStyle(Workbook workbook) {
Font font = workbook.createFont();
font.setBoldweight(Font.BOLDWEIGHT_BOLD); // 字体加粗
font.setFontHeightInPoints((short)11);
font.setFontName("宋体"); // 设置单元格字体
//font.setColor(Font.COLOR_NORMAL); // 设置单元格字体的颜色
CellStyle style = workbook.createCellStyle();
style.setWrapText(true);
//背景前景色
//style.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
style.setFillForegroundColor(HSSFColor.GREY_40_PERCENT.index);
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
// 边框
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setBorderTop(CellStyle.BORDER_THIN);
style.setBorderBottom(CellStyle.BORDER_THIN);
// 居中
// style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
// 字体
style.setFont(font);
return style;
}
/**
* 表格style
* @param workbook
* @return
*/
public CellStyle createRowStyle(Workbook workbook) {
Font font = workbook.createFont();
font.setFontName("宋体"); // 设置单元格字体
font.setColor(Font.COLOR_NORMAL); // 设置单元格字体的颜色
CellStyle style = workbook.createCellStyle();
style.setWrapText(true);
// 背景前景
// style.setFillForegroundColor(Color.LIME.index);
// style.setFillBackgroundColor(Color.GREEN.index);
// 边框
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setBorderTop(CellStyle.BORDER_THIN);
style.setBorderBottom(CellStyle.BORDER_THIN);
// 居中
// style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
// 字体
style.setFont(font);
return style;
}
/**
* 冻结第一列
* @param sheet
*/
public void createFreezePaneFirstCol(Sheet sheet) {
sheet.createFreezePane(1, 0, 1, 0);
}
/**
* 冻结第一行
* @param sheet
*/
public void createFreezePaneFirstRow(Sheet sheet) {
sheet.createFreezePane(0, 1, 0, 1);
}
/**
* 为单元格赋值并设置样式
* @param workbook
* @param row
* @param cellValues
* @param fontSize
*/
public void setFontStyle(Workbook workbook, Row row, String[] cellValues, short fontSize) {
Font font = workbook.createFont();
font.setFontHeightInPoints(fontSize);// 字号
font.setBoldweight(Font.BOLDWEIGHT_NORMAL);// 加粗
font.setFontName("宋体");
CellStyle style = workbook.createCellStyle();
style.setWrapText(true);
style.setFont(font);
setPublicStyle(style);
Cell cell = null;
for (int i = 0; i < cellValues.length; i++) {
cell = row.createCell(i);
cell.setCellValue(cellValues[i]);
cell.setCellStyle(style);
}
}
/**
* 设置公共样式:细边框,居中
* @param style 公共样式:细边框,居中
*/
public void setPublicStyle(CellStyle style) {
setBorderStyle(style);
setAlignmentCenter(style);
}
/**
* 细边框
* @param style
*/
public void setBorderStyle(CellStyle style) {
style.setBorderTop(CellStyle.BORDER_THIN);// 上边框
style.setBorderRight(CellStyle.BORDER_THIN);// 右边框
style.setBorderBottom(CellStyle.BORDER_THIN);// 下边框
style.setBorderLeft(CellStyle.BORDER_THIN);// 左边框
}
/**
* 上下左右居中
* @param style
*/
public void setAlignmentCenter(CellStyle style) {
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 上下居中
style.setAlignment(CellStyle.ALIGN_CENTER);// 左右居中
}
/**
* 设置列宽
* <p>Set the width (in units of 1/256th of a character width) </p>
* @param sheet
* @param columnWidths 列宽数组
*/
public void setColumnWidth(Sheet sheet, int[] columnWidths) {
for (int i = 0; i < columnWidths.length; i++) {
sheet.setColumnWidth(i, columnWidths[i] * 256);
}
}
/**
* 生成excel
* @param workbook
* @param filename 文件名
*/
public void outPutExcel(Workbook workbook, String filename) {
try {
FileOutputStream os = new FileOutputStream(filename);
workbook.write(os);
os.close();
} catch (FileNotFoundException e) {
logger.error("生成excel文件到指定路径.FileNotFoundException:" + e.getMessage());
} catch (IOException e) {
logger.error("生成excel文件到指定路径.IOException:" + e.getMessage());
}
}
/**
* 删除Excel
* @param pathname
* @return
*/
public static boolean deleteExcel(String pathname) {
File file = new File(pathname);
// 判断目录或文件是否存在
if (!file.exists()) { // 不存在返回 false
return false;
} else {
// 判断是否为文件
if (file.isFile() && file.exists()) {
file.delete();
return true;
} else {
return false;
}
}
}
}
package com.cmb.app.driverhome.util;
import com.cmb.app.driverhome.iodj.vo.GradeVO;
import com.cmb.app.driverhome.ticket.vo.SuddenTicketVO;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.List;
public class ExcelUtil {
public static String classPath = ExcelUtil.class.getResource("").getPath() + "\\workbook.xls";
public static String fileName = "ticket.xls";
public static String gradeExcelName = "总设评审积分查询.xls";
private static String[] excelTitle = {"TICKET数据表单"};
private static String[] fieldName = {"ID", "TICKET标题", "状态", "优先级", "ticket类型", "发生时间", "状所属系统", "创建人", "创建时间", "简要描述",};
private static String[] gradeName = {"团队", "AS400", "S390", "DBA", "RS6000", "WINDOWS"};
private static String[] gradeType = {"参与度积分", "有效建议积分"};
public static void createIODJGradeExcel(List<String> reason, List<GradeVO> vos, Date beginTime, Date endTime) {
System.out.println("**********classPath ==" + classPath);
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 如要新建一名为"TICKET"的工作表,其语句为:
HSSFSheet sheet = workbook.createSheet("总设评审团队积分表");
setGradeWidth(sheet);
//合并单元格 起始行 起始列 结束行 结束咧
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, gradeName.length * 2 - 2));
for (int i = 0; i < 5; i++) {
sheet.addMergedRegion(new CellRangeAddress(1, 1, i * 2 + 1, i * 2 + 2));
}
HSSFRow row = sheet.createRow(0);
row.setHeight((short) (3 * 256));
String title = DateUtil.dateToString(beginTime) + "至" + DateUtil.dateToString(endTime) + "总设得分详情";
titleStyle(workbook, row, new String[]{title});
row = sheet.createRow(1);
gradeTitleStyle(workbook, row, gradeName);
row = sheet.createRow(2);
gradeTypeStyle(workbook, row, gradeType);
String[] dataAddStr = new String[gradeName.length * 2 - 1];
String[] dataSubStr = new String[gradeName.length * 2 - 1];
for (int i = 0; i < vos.size(); i++) {
GradeVO vo = vos.get(i);
dataAddStr[0] = "得分";
dataSubStr[0] = "扣分";
dataAddStr[i + 1] = vo.getAddGrade();
dataSubStr[i + 1] = vo.getSubGrade();
}
dataStyle(workbook, sheet.createRow(3), dataAddStr);
dataStyle(workbook, sheet.createRow(4), dataSubStr);
FileOutputStream os;
try {
os = new FileOutputStream(classPath);
workbook.write(os);
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void createTicketExcel(List<SuddenTicketVO> list) {
System.out.println("**********classPath ==" + classPath);
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 如要新建一名为"TICKET"的工作表,其语句为:
HSSFSheet sheet = workbook.createSheet("TICKET");
setWidth(sheet);
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, fieldName.length - 1));
HSSFRow row = sheet.createRow(0);
row.setHeight((short) (3 * 256));
titleStyle(workbook, row, excelTitle);
row = sheet.createRow(1);
fieldStyle(workbook, row, fieldName);
String[] dataStr = new String[fieldName.length];
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 2);
SuddenTicketVO vo = list.get(i);
dataStr[0] = String.valueOf(vo.getId());
dataStr[1] = vo.getTitle();
dataStr[2] = vo.getStatus();
dataStr[3] = vo.getPriority();
dataStr[4] = vo.getTicketClass();
dataStr[5] = vo.getHappenTimeStr();
dataStr[6] = vo.getSystemClass();
dataStr[7] = vo.getCreateBy();
dataStr[8] = vo.getCreateTime();
dataStr[9] = vo.getExpatiation();
dataStyle(workbook, row, dataStr);
}
FileOutputStream os;
try {
os = new FileOutputStream(classPath);
workbook.write(os);
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 填充一行
* @param row
* @param str 要填充内容的数组
public static void fillRow(HSSFRow row,String[] str,HSSFCell cell){
for (int i = 0; i < str.length; i++) {
cell = row.createCell(i);
cell.setCellValue(str[i]);
}
}
*/
/**
* 标题格式
*
* @param cell
*/
public static void titleStyle(HSSFWorkbook wb, HSSFRow row, String[] str) {
HSSFCell cell = null;
HSSFCellStyle style = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 18);//字号
f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗
style.setFont(f);
publicStyle(style);
for (int i = 0; i < str.length; i++) {
cell = row.createCell(i);
cell.setCellValue(str[i]);
cell.setCellStyle(style);
}
}
public static void fieldStyle(HSSFWorkbook wb, HSSFRow row, String[] str) {
HSSFCell cell = null;
HSSFCellStyle style = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 14);//字号
style.setFont(f);
publicStyle(style);
for (int i = 0; i < str.length; i++) {
cell = row.createCell(i);
cell.setCellValue(str[i]);
cell.setCellStyle(style);
}
}
public static void gradeTitleStyle(HSSFWorkbook wb, HSSFRow row, String[] str) {
HSSFCell cell = null;
HSSFCellStyle style = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 14);//字号
style.setFont(f);
publicStyle(style);
cell = row.createCell(0);
cell.setCellValue(str[0]);
cell.setCellStyle(style);
for (int i = 1; i < str.length * 2 - 1; i = i + 2) {
cell = row.createCell(i);
cell.setCellValue(str[i / 2 + 1]);
cell.setCellStyle(style);
cell = row.createCell(i + 1);
//cell.setCellValue(str[i/2+1]);
cell.setCellStyle(style);
}
}
public static void gradeTypeStyle(HSSFWorkbook wb, HSSFRow row, String[] str) {
HSSFCell cell = null;
HSSFCellStyle style = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 12);//字号
style.setFont(f);
publicStyle(style);
cell = row.createCell(0);
cell.setCellValue("");
cell.setCellStyle(style);
for (int i = 1; i < gradeName.length * 2 - 1; i++) {
cell = row.createCell(i);
cell.setCellValue(i % 2 == 1 ? str[0] : str[1]);
cell.setCellStyle(style);
}
}
public static void dataStyle(HSSFWorkbook wb, HSSFRow row, String[] str) {
HSSFCell cell = null;
HSSFCellStyle style = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 11);//字号
style.setFont(f);
publicStyle(style);
for (int i = 0; i < str.length; i++) {
cell = row.createCell(i);
cell.setCellValue(str[i]);
cell.setCellStyle(style);
}
}
public static void publicStyle(HSSFCellStyle style) {
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
}
public static void setWidth(HSSFSheet sheet) {
sheet.setColumnWidth(0, 10 * 256);
sheet.setColumnWidth(1, 30 * 256);
sheet.setColumnWidth(2, 15 * 256);
sheet.setColumnWidth(3, 10 * 256);
sheet.setColumnWidth(4, 10 * 256);
sheet.setColumnWidth(5, 15 * 256);
sheet.setColumnWidth(6, 15 * 256);
sheet.setColumnWidth(7, 12 * 256);
sheet.setColumnWidth(8, 35 * 256);
sheet.setColumnWidth(9, 40 * 256);
}
public static void setGradeWidth(HSSFSheet sheet) {
sheet.setColumnWidth(0, 10 * 256);
sheet.setColumnWidth(1, 15 * 256);
sheet.setColumnWidth(2, 15 * 256);
sheet.setColumnWidth(3, 15 * 256);
sheet.setColumnWidth(4, 15 * 256);
sheet.setColumnWidth(5, 15 * 256);
sheet.setColumnWidth(6, 15 * 256);
sheet.setColumnWidth(7, 15 * 256);
sheet.setColumnWidth(8, 15 * 256);
sheet.setColumnWidth(9, 15 * 256);
sheet.setColumnWidth(10, 15 * 256);
}
/**
* 删除单元格
*
* @param classPath
* @return
*/
public static boolean deleteExcel(String classPath) {
File file = new File(classPath);
// 判断目录或文件是否存在
if (!file.exists()) { // 不存在返回 false
return false;
} else {
// 判断是否为文件
if (file.isFile() && file.exists()) {
file.delete();
return true;
} else {
return false;
}
}
}
}
package com.cmb.app.driverhome.onlineplan.domain;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.cmb.app.driverhome.common.BaseDomain;
/**
* 发布工前会内容(风险警示)
*/
public class OnlineRiskWarn extends BaseDomain{
private Integer onlineProjectId;//项目表t_online_project主键id
private String updateContent;//本次项目上线要更新的内容:此字段取消
private String newContent;//本次上线内容是否为新业务:是/否
private String riskWarnContent;//风险预警:项目如果发布失败,最坏的影响
private String riskWarnBusiness;//风险预警:项目如果发布失败,影响的具体业务
private String emergencyPlan;//应急方案:项目如果发布失败,应对措施
private String prepareWorkSysenv;//系统环境准备: 上线前必须完成系统环境准备的工作有哪些,是否已经准备妥当: 如网络路由开通,服务器、加密机准备等
private String prepareWorkAppenv;//应用环境准备: 上线前必须完成应用环境的准备工作有哪些,是否已经准备妥当: 增加业务参数、增加作业条等
private String applyContent;//上线申请:投产组长或相关的系统管理员是否已经清楚知道上线的时间
private String businessCheck;//业务验证:业务部门的验证测试人员是否已经联系确认清楚
private String innerNote;//行内通知:项目上线相关的业务通知是否已经发出
private String outerNote;//行外通知:是否已经向项目涉及的第三方发出通知
private String funcOutside;//本次上线功能是否对外开放:对外开放/不对外开放(即仅部署代码至服务器)
private String channelCodeOperate;//是否涉及渠道码增删改:否/(如有请列出)
private String jobBarOperate;//是否涉及作业条增删改:否/(如有请列出)
public Integer getOnlineProjectId() {
return onlineProjectId;
}
public void setOnlineProjectId(Integer onlineProjectId) {
this.onlineProjectId = onlineProjectId;
}
public String getUpdateContent() {
return updateContent;
}
public void setUpdateContent(String updateContent) {
this.updateContent = updateContent;
}
public String getNewContent() {
return newContent;
}
public void setNewContent(String newContent) {
this.newContent = newContent;
}
public String getRiskWarnContent() {
return riskWarnContent;
}
public void setRiskWarnContent(String riskWarnContent) {
this.riskWarnContent = riskWarnContent;
}
public String getRiskWarnBusiness() {
return riskWarnBusiness;
}
public void setRiskWarnBusiness(String riskWarnBusiness) {
this.riskWarnBusiness = riskWarnBusiness;
}
public String getEmergencyPlan() {
return emergencyPlan;
}
public void setEmergencyPlan(String emergencyPlan) {
this.emergencyPlan = emergencyPlan;
}
public String getPrepareWorkSysenv() {
return prepareWorkSysenv;
}
public void setPrepareWorkSysenv(String prepareWorkSysenv) {
this.prepareWorkSysenv = prepareWorkSysenv;
}
public String getPrepareWorkAppenv() {
return prepareWorkAppenv;
}
public void setPrepareWorkAppenv(String prepareWorkAppenv) {
this.prepareWorkAppenv = prepareWorkAppenv;
}
public String getApplyContent() {
return applyContent;
}
public void setApplyContent(String applyContent) {
this.applyContent = applyContent;
}
public String getBusinessCheck() {
return businessCheck;
}
public void setBusinessCheck(String businessCheck) {
this.businessCheck = businessCheck;
}
public String getInnerNote() {
return innerNote;
}
public void setInnerNote(String innerNote) {
this.innerNote = innerNote;
}
public String getOuterNote() {
return outerNote;
}
public void setOuterNote(String outerNote) {
this.outerNote = outerNote;
}
public String getFuncOutside() {
return funcOutside;
}
public void setFuncOutside(String funcOutside) {
this.funcOutside = funcOutside;
}
public String getChannelCodeOperate() {
return channelCodeOperate;
}
public void setChannelCodeOperate(String channelCodeOperate) {
this.channelCodeOperate = channelCodeOperate;
}
public String getJobBarOperate() {
return jobBarOperate;
}
public void setJobBarOperate(String jobBarOperate) {
this.jobBarOperate = jobBarOperate;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
package com.cmb.app.driverhome.common;
import com.cmb.app.driverhome.util.CustomDateSerializer;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import java.io.Serializable;
import java.util.Date;
/**
* @Description:
* @Author: XiongLiangSheng
* @CreateDate: 2014年1月10日 上午8:32:42
* @Version: v1.0
* Date CR/DEFECT Modified By Description of change
*/
@SuppressWarnings("serial")
public abstract class BaseDomain implements Serializable {
private Date createTime;//创建时间
private Integer createBy;//创建人
private Date updateTime;//修改时间
private Integer updateBy;//修改人
private Integer version;//版本
private Boolean isActive;//true-未删除,-false-已删除
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getCreateBy() {
return createBy;
}
public void setCreateBy(Integer createBy) {
this.createBy = createBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getUpdateBy() {
return updateBy;
}
public void setUpdateBy(Integer updateBy) {
this.updateBy = updateBy;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public Boolean getIsActive() {
return isActive;
}
public void setIsActive(Boolean isActive) {
this.isActive = isActive;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
package com.cmb.app.driverhome.onlineplan.domain;
import com.cmb.app.driverhome.common.BaseDomain;
import com.cmb.app.driverhome.iodj.domain.User;
import com.cmb.app.driverhome.mbankGrayRelease.constant.GrayStatusEnum;
import com.cmb.app.driverhome.mbankGrayRelease.domain.DevPlatformCheck;
import com.cmb.app.driverhome.onlineplan.constant.ProjectReleaseMainPlatformEnum;
import com.cmb.app.driverhome.onlineplan.constant.ProjectReleaseRegionAreaEnum;
import com.cmb.app.driverhome.onlineplan.constant.ProjectReleaseStatusEnum;
import com.cmb.app.driverhome.onlineplan.constant.ProjectReleaseTypeEnum;
import com.cmb.app.driverhome.util.CustomDateSerializer;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import java.util.Date;
import java.util.List;
/**
* @Description:
* @Author: XiongLiangSheng
* @CreateDate: 2014年4月1日 下午4:02:56
* @Version: v1.0 Date CR/DEFECT Modified By Description of change
*/
public class OnlineProject extends BaseDomain {
private static final long serialVersionUID = 5333789004284569253L;
private Integer onlineProjectId;//主键
private Integer onlinePeriodId;//期数主键
private String projectNo;//项目编号
private String projectName;//项目名称
private Date onlineDate;//计划上线时间
private String personInCharge;//负责人
private String productionTeamLeader;//投产组长
private Boolean impactCredit;//是否影响信用卡业务
private String impactCreditBusinessContent;//影响信用卡业务内容
private String teamName;//团队名称
private Boolean cancelOnlinePlan;//取消上线计划
private String errorInputMsg;//程序用来保存excel输入错误的提示信息
private Integer status;//导入的时候,如果格式正确2,如果上线时间格式错误1
private String processInstanceId;
private String applyUpdateType;
private String originalOnlineDate;//原始上线日期,不论格式对错
private Boolean riskAssess;//是否进行了风险评估
private String riskComment;//风险评估备注
private Boolean isProblem; //是否存在问题
private Boolean isGrayRelease;//是否灰度发布
private Integer releaseType;//发布类型
private Integer releaseStatus;//发布状态
private String releaseStatusComment;//发布状态不是正常的时候,需要填写
private Integer mainPlatform;//主办平台
private Integer regionArea;//所属片区
private Boolean batchImport;//项目是否来源于批量导入
private Integer grayStatus;//灰度状态
private Integer releaseScheduleId;//灰度发布日程安排表主键id
/**
* 整表导入新增的字段
*/
private Boolean onMeeting;//是否上会
private Date expectOnlineDate;//项目经理期望上线时间
private String relatedProject;//关联项目
private String timeDifference;//时间差(天)
private String productionPerson;//上线投产人员
private String qualityPerson;//质量管理员
private String demandSubmitPerson;//需求提交人
private String demandSubmitDepartment;//需求提交部门
private String uatCheckConclusion;//UAT验收结论
private String businessApply;//业务申请
//扩展字段
private String reportPeriod;//用于详情页面显示期数
private String statusDesc;//status字段对应的描述信息
private double riskScore;//风险评估得分
private String riskGrade;//风险等级
private int conditionId; //1=top35A重大发布;2=top35B重要发布
private String releaseTypeDesc;//releaseType字段对应的描述信息
private String releaseStatusDesc;//releaseStatus字段对应的描述信息
private String mainPlatformDesc;//mainPlatform字段对应的描述信息
private String regionAreaDesc;//regionArea字段对应的描述信息
private String involvePlatform;//涉及平台
private String grayStatusDesc;//grayStatus字段对应的描述信息
private String taskId;
private String taskName;
private String judgeResult;
//关联属性
private List<OnlineProgram> onlinePrograms;
private List<OnlineProblem> onlineProblems;
private User dutyPerson;//负责人
private List<DevPlatformCheck> devCheckList;//开发验证意见
private List<DevPlatformCheck> platformCheckList;//平台管理员意见
private OnlineRiskWarn onlineRiskWarn;//发布工前会内容(风险警示内容)
public Boolean getIsProblem() {
return isProblem;
}
public void setIsProblem(Boolean isProblem) {
this.isProblem = isProblem;
}
public String getRiskComment() {
return riskComment;
}
public void setRiskComment(String riskComment) {
this.riskComment = riskComment;
}
public String getApplyUpdateType() {
return applyUpdateType;
}
public void setApplyUpdateType(String applyUpdateType) {
this.applyUpdateType = applyUpdateType;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public Integer getOnlineProjectId() {
return onlineProjectId;
}
public void setOnlineProjectId(Integer onlineProjectId) {
this.onlineProjectId = onlineProjectId;
}
public Integer getOnlinePeriodId() {
return onlinePeriodId;
}
public void setOnlinePeriodId(Integer onlinePeriodId) {
this.onlinePeriodId = onlinePeriodId;
}
public String getProjectNo() {
return projectNo;
}
public void setProjectNo(String projectNo) {
this.projectNo = projectNo;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
@JsonSerialize(using = CustomDateSerializer.class)
public Date getOnlineDate() {
return onlineDate;
}
public void setOnlineDate(Date onlineDate) {
this.onlineDate = onlineDate;
}
public String getPersonInCharge() {
return personInCharge;
}
public void setPersonInCharge(String personInCharge) {
this.personInCharge = personInCharge;
}
public String getProductionTeamLeader() {
return productionTeamLeader;
}
public void setProductionTeamLeader(String productionTeamLeader) {
this.productionTeamLeader = productionTeamLeader;
}
public Boolean getImpactCredit() {
return impactCredit;
}
public void setImpactCredit(Boolean impactCredit) {
this.impactCredit = impactCredit;
}
public String getImpactCreditBusinessContent() {
return impactCreditBusinessContent;
}
public void setImpactCreditBusinessContent(String impactCreditBusinessContent) {
this.impactCreditBusinessContent = impactCreditBusinessContent;
}
public String getTeamName() {
return teamName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
public Boolean getCancelOnlinePlan() {
return cancelOnlinePlan;
}
public void setCancelOnlinePlan(Boolean cancelOnlinePlan) {
this.cancelOnlinePlan = cancelOnlinePlan;
}
public String getErrorInputMsg() {
return errorInputMsg;
}
public void setErrorInputMsg(String errorInputMsg) {
this.errorInputMsg = errorInputMsg;
}
public List<OnlineProgram> getOnlinePrograms() {
return onlinePrograms;
}
public void setOnlinePrograms(List<OnlineProgram> onlinePrograms) {
this.onlinePrograms = onlinePrograms;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getReportPeriod() {
return reportPeriod;
}
public void setReportPeriod(String reportPeriod) {
this.reportPeriod = reportPeriod;
}
public String getStatusDesc() {
return statusDesc;
}
public void setStatusDesc(String statusDesc) {
this.statusDesc = statusDesc;
}
public Boolean getRiskAssess() {
return riskAssess;
}
public void setRiskAssess(Boolean riskAssess) {
this.riskAssess = riskAssess;
}
public double getRiskScore() {
return riskScore;
}
public void setRiskScore(double riskScore) {
this.riskScore = riskScore;
}
public String getOriginalOnlineDate() {
return originalOnlineDate;
}
public void setOriginalOnlineDate(String originalOnlineDate) {
this.originalOnlineDate = originalOnlineDate;
}
public String getRiskGrade() {
if (this.getRiskScore() == 0) {
this.setRiskGrade("");
} else if (this.getRiskScore() > 18) {
this.setRiskGrade("重大");
} else if (this.getRiskScore() < 14) {
if (this.getConditionId() == 1) {
this.setRiskGrade("重大");
} else if (this.getConditionId() == 2) {
this.setRiskGrade("重要");
} else {
this.setRiskGrade("普通");
}
} else {
if (this.getConditionId() == 1) {
this.setRiskGrade("重大");
} else {
this.setRiskGrade("重要");
}
}
return riskGrade;
}
public void setRiskGrade(String riskGrade) {
this.riskGrade = riskGrade;
}
public int getConditionId() {
return conditionId;
}
public void setConditionId(int conditionId) {
this.conditionId = conditionId;
}
public Boolean getIsGrayRelease() {
return isGrayRelease;
}
public void setIsGrayRelease(Boolean isGrayRelease) {
this.isGrayRelease = isGrayRelease;
}
public Integer getReleaseType() {
return releaseType;
}
public void setReleaseType(Integer releaseType) {
this.releaseType = releaseType;
}
public String getReleaseTypeDesc() {
return ProjectReleaseTypeEnum.getName(releaseType);
}
public void setReleaseTypeDesc(String releaseTypeDesc) {
this.releaseTypeDesc = releaseTypeDesc;
}
public Integer getReleaseStatus() {
return releaseStatus;
}
public void setReleaseStatus(Integer releaseStatus) {
this.releaseStatus = releaseStatus;
}
public String getReleaseStatusDesc() {
return ProjectReleaseStatusEnum.getName(releaseStatus);
}
public void setReleaseStatusDesc(String releaseStatusDesc) {
this.releaseStatusDesc = releaseStatusDesc;
}
public String getReleaseStatusComment() {
return releaseStatusComment;
}
public void setReleaseStatusComment(String releaseStatusComment) {
this.releaseStatusComment = releaseStatusComment;
}
public Integer getMainPlatform() {
return mainPlatform;
}
public void setMainPlatform(Integer mainPlatform) {
this.mainPlatform = mainPlatform;
}
public String getMainPlatformDesc() {
return ProjectReleaseMainPlatformEnum.getName(mainPlatform);
}
public void setMainPlatformDesc(String mainPlatformDesc) {
this.mainPlatformDesc = mainPlatformDesc;
}
public Integer getRegionArea() {
return regionArea;
}
public void setRegionArea(Integer regionArea) {
this.regionArea = regionArea;
}
public String getRegionAreaDesc() {
return ProjectReleaseRegionAreaEnum.getName(regionArea);
}
public void setRegionAreaDesc(String regionAreaDesc) {
this.regionAreaDesc = regionAreaDesc;
}
public String getInvolvePlatform() {
return involvePlatform;
}
public void setInvolvePlatform(String involvePlatform) {
this.involvePlatform = involvePlatform;
}
public Boolean getBatchImport() {
return batchImport;
}
public void setBatchImport(Boolean batchImport) {
this.batchImport = batchImport;
}
public List<OnlineProblem> getOnlineProblems() {
return onlineProblems;
}
public void setOnlineProblems(List<OnlineProblem> onlineProblems) {
this.onlineProblems = onlineProblems;
}
public Integer getGrayStatus() {
return grayStatus;
}
public void setGrayStatus(Integer grayStatus) {
this.grayStatus = grayStatus;
}
public String getGrayStatusDesc() {
return GrayStatusEnum.getName(grayStatus);
}
public void setGrayStatusDesc(String grayStatusDesc) {
this.grayStatusDesc = grayStatusDesc;
}
public User getDutyPerson() {
return dutyPerson;
}
public void setDutyPerson(User dutyPerson) {
this.dutyPerson = dutyPerson;
}
public Boolean getOnMeeting() {
return onMeeting;
}
public void setOnMeeting(Boolean onMeeting) {
this.onMeeting = onMeeting;
}
public Date getExpectOnlineDate() {
return expectOnlineDate;
}
public void setExpectOnlineDate(Date expectOnlineDate) {
this.expectOnlineDate = expectOnlineDate;
}
public String getRelatedProject() {
return relatedProject;
}
public void setRelatedProject(String relatedProject) {
this.relatedProject = relatedProject;
}
public String getTimeDifference() {
return timeDifference;
}
public void setTimeDifference(String timeDifference) {
this.timeDifference = timeDifference;
}
public String getProductionPerson() {
return productionPerson;
}
public void setProductionPerson(String productionPerson) {
this.productionPerson = productionPerson;
}
public String getQualityPerson() {
return qualityPerson;
}
public void setQualityPerson(String qualityPerson) {
this.qualityPerson = qualityPerson;
}
public String getDemandSubmitPerson() {
return demandSubmitPerson;
}
public void setDemandSubmitPerson(String demandSubmitPerson) {
this.demandSubmitPerson = demandSubmitPerson;
}
public String getDemandSubmitDepartment() {
return demandSubmitDepartment;
}
public void setDemandSubmitDepartment(String demandSubmitDepartment) {
this.demandSubmitDepartment = demandSubmitDepartment;
}
public String getUatCheckConclusion() {
return uatCheckConclusion;
}
public void setUatCheckConclusion(String uatCheckConclusion) {
this.uatCheckConclusion = uatCheckConclusion;
}
public String getBusinessApply() {
return businessApply;
}
public void setBusinessApply(String businessApply) {
this.businessApply = businessApply;
}
public Integer getReleaseScheduleId() {
return releaseScheduleId;
}
public void setReleaseScheduleId(Integer releaseScheduleId) {
this.releaseScheduleId = releaseScheduleId;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getJudgeResult() {
return judgeResult;
}
public void setJudgeResult(String judgeResult) {
this.judgeResult = judgeResult;
}
public String getTaskName() {
return taskName;
}
public void setTaskName(String taskName) {
this.taskName = taskName;
}
public List<DevPlatformCheck> getDevCheckList() {
return devCheckList;
}
public void setDevCheckList(List<DevPlatformCheck> devCheckList) {
this.devCheckList = devCheckList;
}
public List<DevPlatformCheck> getPlatformCheckList() {
return platformCheckList;
}
public void setPlatformCheckList(List<DevPlatformCheck> platformCheckList) {
this.platformCheckList = platformCheckList;
}
public OnlineRiskWarn getOnlineRiskWarn() {
return onlineRiskWarn;
}
public void setOnlineRiskWarn(OnlineRiskWarn onlineRiskWarn) {
this.onlineRiskWarn = onlineRiskWarn;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
/**
*
*/
package com.cmb.app.driverhome.onlineplan.domain;
import com.cmb.app.driverhome.common.BaseDomain;
/**
* @Description:
* @Author: XiongLiangSheng
* @CreateDate: 2014年4月1日 下午4:11:56
* @Version: v1.0 Date CR/DEFECT Modified By Description of change
*/
@SuppressWarnings("serial")
public class OnlineProgram extends BaseDomain {
private Integer onlineModuleId;//主键id
private Integer onlineProjectId;//项目id
private String fireFlyRootName;//FireFly根分支名称
private String label;//Label名称
private String onlineScope;//使用范围
/**
* 整表导入新增的字段
*/
private Integer serOfProject;//序号:label在项目中的序号
private String programDutyPerson;//程序负责人
private String labelType;//Label类型:源代码/执行码/文档基线
private String systemPlatform;//系统平台
public Integer getOnlineModuleId() {
return onlineModuleId;
}
public void setOnlineModuleId(Integer onlineModuleId) {
this.onlineModuleId = onlineModuleId;
}
public Integer getOnlineProjectId() {
return onlineProjectId;
}
public void setOnlineProjectId(Integer onlineProjectId) {
this.onlineProjectId = onlineProjectId;
}
public String getFireFlyRootName() {
return fireFlyRootName;
}
public void setFireFlyRootName(String fireFlyRootName) {
this.fireFlyRootName = fireFlyRootName;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getOnlineScope() {
return onlineScope;
}
public void setOnlineScope(String onlineScope) {
this.onlineScope = onlineScope;
}
public Integer getSerOfProject() {
return serOfProject;
}
public void setSerOfProject(Integer serOfProject) {
this.serOfProject = serOfProject;
}
public String getProgramDutyPerson() {
return programDutyPerson;
}
public void setProgramDutyPerson(String programDutyPerson) {
this.programDutyPerson = programDutyPerson;
}
public String getLabelType() {
return labelType;
}
public void setLabelType(String labelType) {
this.labelType = labelType;
}
public String getSystemPlatform() {
return systemPlatform;
}
public void setSystemPlatform(String systemPlatform) {
this.systemPlatform = systemPlatform;
}
}
package com.cmb.app.driverhome.onlineplan.util;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import com.cmb.app.driverhome.iodj.domain.User;
import com.cmb.app.driverhome.onlineplan.domain.OnlineProgram;
import com.cmb.app.driverhome.onlineplan.domain.OnlineProject;
import com.cmb.app.driverhome.util.CommonUtils;
import com.cmb.app.driverhome.util.excelHandle.ExcelCreateHandle;
public class RiskWarnProjectExcelhandle extends ExcelCreateHandle {
private static Logger logger = LoggerFactory.getLogger(RiskWarnProjectExcelhandle.class);
String[][] headers = new String[][]{
{"序号", "5"}, {"项目编号", "9"}, {"项目名称", "30"}, {"上线日期", "11"}, {"负责人", "16"}, {"投产组长", "16"},
{"序号", "5"}, {"FireFly根分支名称", "20"}, {"Label名称", "34"}, {"程序负责人", "16"}};
private String excelname = "";
public void setExcelname(String excelname) {
this.excelname = excelname;
}
@Override
public void creatExcel(List list) {
String excelpath = classPath + "\\" + excelname + ".xlsx";
// 产生表格
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
// 表头行
CellStyle headerStyle = createHeaderStyle(workbook);
try {
createHeader(workbook, sheet, headerStyle, headers);
} catch (Exception e) {
logger.error("createExcel.setHeader.Exception:" + e.getMessage());
}
// 内容行
CellStyle rowStyle = createRowStyle(workbook);
for (int i = 0; i < list.size(); i++) {
OnlineProject project = (OnlineProject) list.get(i);
try {
setRowContent(workbook, sheet, rowStyle, project);
} catch (Exception e) {
logger.error("createExcel.setRowContent.Exception:" + e.getMessage());
}
}
// 冻结单元格
createFreezePaneFirstRow(sheet);
// 输出excel
outPutExcel(workbook, excelpath);
}
private void setRowContent(Workbook workbook, Sheet sheet, CellStyle style, OnlineProject project) throws Exception {
List<OnlineProgram> onlinePrograms = project.getOnlinePrograms();
if (CollectionUtils.isEmpty(onlinePrograms)) {
return;
}
String projectNo = project.getProjectNo();
String projectName = project.getProjectName();
String onlineDate = CommonUtils.dateToStr(project.getOnlineDate(), "yyyy-MM-dd");
String personInCharge = project.getPersonInCharge();
String productionTeamLeader = project.getProductionTeamLeader();
User dutyPerson = project.getDutyPerson();
for (int i = 0; i < onlinePrograms.size(); i++) {
OnlineProgram program = onlinePrograms.get(i);
String serOfProject = program.getSerOfProject() == null ? "" : program.getSerOfProject().toString();
String fireFlyRootName = program.getFireFlyRootName();
String label = program.getLabel();
String programDutyPerson = program.getProgramDutyPerson() == null ? "" : program.getProgramDutyPerson();
int index = sheet.getLastRowNum() + 1;
Row row = sheet.createRow(index);
row.setHeightInPoints(28);
Cell cell = row.createCell(0);// 序号
cell.setCellValue(index);
cell.setCellStyle(style);
cell = row.createCell(1);// 项目编号
cell.setCellValue(projectNo);
cell.setCellStyle(style);
cell = row.createCell(2);// 项目名称
cell.setCellValue(projectName);
cell.setCellStyle(style);
cell = row.createCell(3);// 上线日期
cell.setCellValue(onlineDate);
cell.setCellStyle(style);
cell = row.createCell(4);// 负责人
if (dutyPerson == null || CommonUtils.isEmpty(dutyPerson.getMobile())) {
cell.setCellValue(personInCharge);
} else {
cell.setCellValue(personInCharge + "/" + dutyPerson.getMobile());
}
cell.setCellStyle(style);
cell = row.createCell(5);// 投产组长
cell.setCellValue(productionTeamLeader);
cell.setCellStyle(style);
cell = row.createCell(6);// label序号
cell.setCellValue(serOfProject);
cell.setCellStyle(style);
cell = row.createCell(7);// FireFly根分支名称
cell.setCellValue(fireFlyRootName);
cell.setCellStyle(style);
cell = row.createCell(8);// Label名称
cell.setCellValue(label);
cell.setCellStyle(style);
cell = row.createCell(9);// 程序负责人
cell.setCellValue(programDutyPerson);
cell.setCellStyle(style);
}
}
private void setRowContent(Workbook workbook, Sheet sheet, List list) throws Exception {
if (list == null || list.size() < 1) {
return;
}
Font font = workbook.createFont();
font.setFontName("宋体"); // 设置单元格字体
font.setColor(Font.COLOR_NORMAL); // 设置单元格字体的颜色.
CellStyle style = workbook.createCellStyle();
style.setWrapText(true); // 自动换行
// 背景前景
// style.setFillForegroundColor(Color.LIME.index);
// style.setFillBackgroundColor(Color.GREEN.index);
// 边框
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setBorderTop(CellStyle.BORDER_THIN);
style.setBorderBottom(CellStyle.BORDER_THIN);
//居中
// style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
// 字体
style.setFont(font);
Row row = null;
Cell cell = null;
/*
设定合并单元格区域范围
firstRow 0-based
lastRow 0-based
firstCol 0-based
lastCol 0-based
CellRangeAddress cra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
*/
int firstRow = 1, lastRow = 1, firstCol = 0, lastCol = 0;
for (int i = 0, len = list.size(); i < len; i++) {
OnlineProject project = (OnlineProject) list.get(i);
List<OnlineProgram> onlinePrograms = project.getOnlinePrograms();
if (CollectionUtils.isEmpty(onlinePrograms)) {
return;
}
int programCount = onlinePrograms.size();
int projectIndex = sheet.getLastRowNum() + 1;
int rowIndex = 1;
row = sheet.createRow(projectIndex);
for (OnlineProgram program : onlinePrograms) {
row.setHeight((short) (500 * programCount));
// row.setRowStyle(style);
lastRow += programCount - 2;
CellRangeAddress rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(0);// 序号
cell.setCellValue(projectIndex);
cell.setCellStyle(style);
firstCol = 1;
lastCol = 1;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(1);// 项目编号
cell.setCellValue(project.getProjectNo());
cell.setCellStyle(style);
firstCol = 2;
lastCol = 2;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(2);// 项目名称
cell.setCellValue(project.getProjectName());
cell.setCellStyle(style);
firstCol = 3;
lastCol = 3;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(3);// 上线日期
cell.setCellValue(CommonUtils.dateToStr(project.getOnlineDate(), "yyyy-MM-dd"));
cell.setCellStyle(style);
firstCol = 4;
lastCol = 4;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(4);// 负责人
User dutyPerson = project.getDutyPerson();
if (null != dutyPerson && !CommonUtils.isEmpty(dutyPerson.getMobile())) {
cell.setCellValue(project.getPersonInCharge() + "/" + dutyPerson.getMobile());
} else {
cell.setCellValue(project.getPersonInCharge());
}
cell.setCellStyle(style);
firstCol = 5;
lastCol = 5;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(5);// 投产组长
cell.setCellValue(project.getProductionTeamLeader());
cell.setCellStyle(style);
cell = row.createCell(6);// label序号
cell.setCellValue(program.getSerOfProject());
cell.setCellStyle(style);
cell = row.createCell(7);// FireFly根分支名称
cell.setCellValue(program.getFireFlyRootName());
cell.setCellStyle(style);
cell = row.createCell(8);// Label名称
cell.setCellValue(program.getLabel());
cell.setCellStyle(style);
cell = row.createCell(9);// 程序负责人
cell.setCellValue(program.getProgramDutyPerson());
cell.setCellStyle(style);
//风险警示行
row = sheet.createRow(lastRow++);
row.setHeight((short) (500 * 13));
firstRow = lastRow;
lastRow = firstRow;
firstCol = 0;
lastCol = 0;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(1);// 风险警示
cell.setCellValue("风险警示");
cell.setCellStyle(style);
firstCol = 1;
lastCol = 9;
rowCra = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(rowCra);
cell = row.createCell(2);// 风险警示具体内容
cell.setCellValue("风险警示具体内容");
cell.setCellStyle(style);
}
}
}
private List createList(){
List<OnlineProject> list = new ArrayList<OnlineProject>();
OnlineProject project = new OnlineProject();
project.setOnlineProjectId(1);
project.setProjectNo("P1600641");
project.setProjectName("供应链金融系统二期第一阶段(风险)");
project.setOnlineDate(new Date("2016/07/25"));
project.setPersonInCharge("黄锋/80274620");
project.setProductionTeamLeader("赵浩宇/01076540");
List<OnlineProgram> programs = new LinkedList<OnlineProgram>();
OnlineProgram program = new OnlineProgram();
//program.setSerOfProject(1);
program.setFireFlyRootName("风险_信用风险_SCM");
program.setLabel("LU52_P1600641_UAT_20160630_01");
//program.setProgramDutyPerson("黄锋/80274620");
programs.add(program);
program = new OnlineProgram();
//program.setSerOfProject(2);
program.setFireFlyRootName("风险_信用风险_SCM");
program.setLabel("P1600642_供应链_LR02.07_GTB_UAT_01_20160718_01");
program.setProgramDutyPerson("项军洲/80274720");
programs.add(program);
project.setOnlinePrograms(programs);
list.add(project);
project = new OnlineProject();
project.setOnlineProjectId(2);
project.setProjectNo("T1600642");
project.setProjectName("供应链");
project.setOnlineDate(new Date("2016/07/26"));
project.setPersonInCharge("黎桂林/80174782");
project.setProductionTeamLeader("王俊麟/01039165");
programs = new LinkedList<OnlineProgram>();
program = new OnlineProgram();
program.setSerOfProject(5);
program.setFireFlyRootName("对公_企业年金_SCM");
program.setLabel("LA04_MBank_UAT_803_V04.00_20160707_02");
program.setProgramDutyPerson("邬丹/80274840");
programs.add(program);
program = new OnlineProgram();
program.setSerOfProject(6);
program.setFireFlyRootName("风险_信用风险_SCM");
program.setLabel("LU34_UAT_20160719_01_T1615241");
program.setProgramDutyPerson("顾才泉/00010951");
programs.add(program);
program = new OnlineProgram();
program.setSerOfProject(4);
program.setFireFlyRootName("风险_信贷_SCM");
program.setLabel("RTCSAV03/S160630040(T1609961_R1M1_XD_UAT_03_20160630_01)");
program.setProgramDutyPerson("郭涛/80074150");
programs.add(program);
project.setOnlinePrograms(programs);
list.add(project);
return list;
}
public static void main(String[] args) {
RiskWarnProjectExcelhandle handle = new RiskWarnProjectExcelhandle();
List list = handle.createList();
String filename = "上线项目风险警示-2016年7月第4周";
String excelpath = "C:\\Users\\20483\\Desktop\\" + filename + ".xlsx";
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
// 表头行
CellStyle headerStyle = handle.createHeaderStyle(workbook);
try {
handle.createHeader(workbook, sheet, headerStyle, handle.headers);
} catch (Exception e) {
logger.error("createExcel.setHeader.Exception:" + e.getMessage());
}
// 内容行
CellStyle rowStyle = handle.createRowStyle(workbook);
for (int i = 0; i < list.size(); i++) {
OnlineProject project = (OnlineProject) list.get(i);
try {
handle.setRowContent(workbook, sheet, rowStyle, project);
} catch (Exception e) {
logger.error("createExcel.setRowContent.Exception:" + e.getMessage());
}
}
// 冻结单元格
handle.createFreezePaneFirstRow(sheet);
// 输出excel
handle.outPutExcel(workbook, excelpath);
System.out.println("done.");
}
}
- 浏览: 16545 次
- 性别:
- 来自: 深圳
最新评论
-
ms143014:
open in explorer + easy explore ...
eclipse插件之Easy Explorer (打开在eclipse中选定文件所在的目录。) -
chenhailong:
很好 我知道的 这个插件真的很强大。。。他们都不知道 哈哈 ...
eclipse插件之Easy Explorer (打开在eclipse中选定文件所在的目录。) -
buyajun:
swt Designer 有没有安装程序,也发上来吧。
我 公 ...
eclipse插件swtDesigner的注册码,java反编译工具(有使用说明图示),灵格斯免安装版本,JAVA面试宝典 -
qq123zhz:
大哥 你的是ibatis2的。。
jquery中文api,iBatis_API
相关推荐
标题"ios-随便写写.zip"虽然没有提供具体的技术细节,但可以推测其中可能包含了关于iOS平台上实现社交分享功能的相关代码或教程。 在iOS应用中实现社交分享,通常会用到苹果的Social框架,该框架提供了与系统分享...
【标题】:“随便写写,绘图”是一个个人创作的小型绘图程序,可能是由开发者“dream2fly”编写的。这个程序可能旨在提供一个简单的图形界面,让用户能够轻松地进行基本的绘画操作,比如绘制线条、形状,填充颜色等...
【标题】"尬哥随想曲8:随便写写叭钢琴曲谱双手数字简谱钢琴曲谱.pdf" 提供的是一首由“尬哥”创作的钢琴曲谱,名为“尬哥随想曲8”,其特点是采用了双手数字简谱的形式。这种简谱是一种将音乐符号简化,便于初学者...
条件随机场介绍,但是介绍必须大于50,我就随便写写吧
本文将围绕“TestTV:kotlin随便写写”这一主题,结合TestAV和Paging Library的分页功能,深入探讨Kotlin在实际项目中的应用。 首先,让我们了解一下Kotlin。Kotlin是由JetBrains开发的一种现代、静态类型的编程语言...
"whitebird-s-Diary:随便写写"很可能是一个个人开发者或IT爱好者用来存储和展示其想法与技术探索的平台。虽然描述"喜欢的东西就一直坚持下去吧!!!"并未直接提供具体的技术细节,但我们可以从中看出作者对技术的...
随便写的了随便写的了随便写的了随便写的了
随便写写
随便写的日历
随便写的一个微信管理系统作为毕设,为了速度开发,没用框架 随便写的一个微信管理系统作为毕设,为了速度开发,没用框架 随便写的一个微信管理系统作为毕设,为了速度开发,没用框架 随便写的一个微信管理系统作为...
测试1 项目设置 npm install 编译和热重装以进行开发 npm run serve 编译并最小化生产 npm run build 运行测试 npm run test 整理和修复文件 npm run lint
上投影课时不能用粉笔了,又想随便写写画画,所以写了这个软件可随手涂鸦,可打字,觉得画流程图比较方便懒得打字,有些功能自己试吧特别在画图时,按住Ctrl,Shift,Alt键,都试试就知道了实在不明白了,EMAIL给我m_...
【标题】:“随便写的代码,大家随便看看” 在这个标题中,虽然没有明确指出具体的技术细节,但是我们可以推测这可能是一个代码分享或者示例代码集合。作者可能是为了展示某个功能、解决某一问题,或者是进行技术...
这个系列也写了足足有一年多了,开始随便写写,后来越写越多,最后就成一个系列了。在这年里来,风风雨雨,体验了人生的种种无奈。曾经在人生的低潮时,厌弃过摄影。最后,能留下往日的一点记忆的,也只有摄影了。...
如果您想增加网络电视地址,那么您要辛苦一下了,全部文件都要改(由于是随便写写,没有精简ASP,不好意思啊,下个版本一定会更简单方便). 如果想和我交流论坛技术和网站经验,请加QQ:47710000(验证时请写明理由...
linux 架构了一个简单的通讯服务器 简单介绍如下: 1.本实例使用了最基本的linux信号量。 2.本实例建造了一个简单的基类线程,供派生建造...另外,这个DEME没有严格的测试过,是本人闲来无事随便写写的,仅供参考。
随便写写玩玩,嘻嘻嘻,大佬大大们不喜吻喷哟~~ Dev-C++写的 因为C语言中,存在文本属性,其实就是颜色属性,有背景色和前景色(就是字符的颜色)两类,每一类只提供三原色(红,绿,蓝)和加强色(灰色,可与其他...
随便写写 写写心情 发表文章 写写管理 短信管理 文章管理 网站管理 相册管理 留言管理 评论管理 友情链接 网站设置 设置文章类型 设置个人信息 设置网站信息 设置首页问候语 安装提示: 1、把网站上传到服务器,...
随便写个球1.exe
随便写写练习