|
|
@ -61,10 +61,12 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
import org.jacorb.idl.runtime.int_token;
|
|
|
|
import org.jacorb.idl.runtime.int_token;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//import com.connor.dfl.plm.dfl038.MyComparator;
|
|
|
|
import com.connor.dfl.plm.util.DataBaseControl;
|
|
|
|
import com.connor.dfl.plm.util.DataBaseControl;
|
|
|
|
import com.connor.dfl.plm.util.ProgressBar;
|
|
|
|
import com.connor.dfl.plm.util.ProgressBar;
|
|
|
|
import com.connor.dfl.plm.util.ProgressBarThread;
|
|
|
|
import com.connor.dfl.plm.util.ProgressBarThread;
|
|
|
|
import com.lowagie.text.Row;
|
|
|
|
import com.lowagie.text.Row;
|
|
|
|
|
|
|
|
//import com.sun.javafx.image.IntPixelAccessor;
|
|
|
|
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
|
|
|
|
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponent;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponent;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponentQuery;
|
|
|
|
import com.teamcenter.rac.kernel.TCComponentQuery;
|
|
|
@ -142,7 +144,7 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
private JButton cancelButton;
|
|
|
|
private JButton cancelButton;
|
|
|
|
private JPanel centerPanel1;
|
|
|
|
private JPanel centerPanel1;
|
|
|
|
|
|
|
|
|
|
|
|
private String[] title = new String[] { "产品部门", "产品名称", "变更通知单号", "产品型号", "客户名称", "更改类型", "更改原因", "图纸更改类型", "责任部门",
|
|
|
|
private String[] title = new String[] { "产品部门", "产品名称", "变更通知单号", "产品型号", "客户名称", "申请人","更改类型", "更改原因", "图纸更改类型", "责任部门",
|
|
|
|
"责任人", "品号", "品名", "原版本", "现版本", "变更数量", "产品类型", "错误类型", "价格预告", "销售分类", "是否产生成本损失", "项目阶段", "料件领用分类",
|
|
|
|
"责任人", "品号", "品名", "原版本", "现版本", "变更数量", "产品类型", "错误类型", "价格预告", "销售分类", "是否产生成本损失", "项目阶段", "料件领用分类",
|
|
|
|
"图纸发至", "项目编号", "通知紧急程度", "申请时间", "账套", "流程阶段" };
|
|
|
|
"图纸发至", "项目编号", "通知紧急程度", "申请时间", "账套", "流程阶段" };
|
|
|
|
|
|
|
|
|
|
|
@ -480,7 +482,7 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
"jdbc:oracle:thin:@192.168.1.138:1521/tc12", "infodba", "infodba");
|
|
|
|
"jdbc:oracle:thin:@192.168.1.138:1521/tc12", "infodba", "infodba");
|
|
|
|
control.openDataBase();
|
|
|
|
control.openDataBase();
|
|
|
|
|
|
|
|
|
|
|
|
String colString = " F.PRODUCTDEPARTMENT,F.PRODUCTNAME,F.CHANGELISTCODE,F.PROJECTMODEL,F.CLIENTNAME,F.CHANGETYPE,F.CHANGEREASON,F.TZGGLX,F.DUTYDEPARTMENT,F.DUTYMAN,D.PH,D.PM,D.YBB,D.XBB,D.BGSL,F.PRODUCTTYPE,F.ERRORTYPE,F.PRICEBOOKING,F.SALSECLASSIFY,F.ISNOTPRODUCTLOSS,F.XMJD,F.RECEIVECLASSIFY,F.DRAWINGTO,F.PROJECTCODE,F.NOTIFYEMERGENCYPROCEDURES,F.APPLYDATE,F.ACCOUNTSET ";
|
|
|
|
String colString = " F.PRODUCTDEPARTMENT,F.PRODUCTNAME,F.CHANGELISTCODE,F.PROJECTMODEL,F.CLIENTNAME,F.APPLYNAME,F.CHANGETYPE,F.CHANGEREASON,F.TZGGLX,F.DUTYDEPARTMENT,F.DUTYMAN,D.PH,D.PM,D.YBB,D.XBB,D.BGSL,F.PRODUCTTYPE,F.ERRORTYPE,F.PRICEBOOKING,F.SALSECLASSIFY,F.ISNOTPRODUCTLOSS,F.XMJD,F.RECEIVECLASSIFY,F.DRAWINGTO,F.PROJECTCODE,F.NOTIFYEMERGENCYPROCEDURES,F.APPLYDATE,F.ACCOUNTSET ";
|
|
|
|
|
|
|
|
|
|
|
|
// 获取需要判断的列
|
|
|
|
// 获取需要判断的列
|
|
|
|
|
|
|
|
|
|
|
@ -491,21 +493,24 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ startTime
|
|
|
|
+ startTime
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions
|
|
|
|
|
|
|
|
+ " order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
if (depart == null || depart.trim().equals("")) {
|
|
|
|
if (depart == null || depart.trim().equals("")) {
|
|
|
|
sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + leftConditions
|
|
|
|
sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON "
|
|
|
|
+ " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND "
|
|
|
|
+ leftConditions + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND "
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ startTime
|
|
|
|
+ startTime
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions
|
|
|
|
|
|
|
|
+ " order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
} else if (depart != null && "全部".equals(depart)) {
|
|
|
|
} else if (depart != null && "全部".equals(depart)) {
|
|
|
|
sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + leftConditions
|
|
|
|
sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON "
|
|
|
|
+ " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND "
|
|
|
|
+ leftConditions + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND "
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('"
|
|
|
|
+ startTime
|
|
|
|
+ startTime
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('"
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
+ endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions
|
|
|
|
|
|
|
|
+ " order by F.PRODUCTDEPARTMENT,F.APPLYDATE";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
System.out.println(sql1);
|
|
|
|
System.out.println(sql1);
|
|
|
|
|
|
|
|
|
|
|
@ -584,11 +589,11 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
XSSFRow Row = sheet2.createRow(i);
|
|
|
|
XSSFRow Row = sheet2.createRow(i);
|
|
|
|
String changeFormId = dbQuery.getString(3);
|
|
|
|
String changeFormId = dbQuery.getString(3);
|
|
|
|
if (changeFormId!=null && !changeFormId.equals(lastChangeFormId)) {
|
|
|
|
if (changeFormId != null && !changeFormId.equals(lastChangeFormId)) {
|
|
|
|
List<TCComponent> queryObject = queryObject("零组件 ID", new String[] { "零组件 ID" },
|
|
|
|
List<TCComponent> queryObject = queryObject("零组件 ID", new String[] { "零组件 ID" },
|
|
|
|
new String[] { changeFormId });
|
|
|
|
new String[] { changeFormId });
|
|
|
|
System.out.println(changeFormId);
|
|
|
|
System.out.println(changeFormId);
|
|
|
|
if (queryObject!=null && queryObject.size() > 0) {
|
|
|
|
if (queryObject != null && queryObject.size() > 0) {
|
|
|
|
TCComponent component = queryObject.get(0);
|
|
|
|
TCComponent component = queryObject.get(0);
|
|
|
|
AIFComponentContext[] versions = component.getChildren("revision_list");
|
|
|
|
AIFComponentContext[] versions = component.getChildren("revision_list");
|
|
|
|
TCComponent versionComponent = (TCComponent) versions[0].getComponent();
|
|
|
|
TCComponent versionComponent = (TCComponent) versions[0].getComponent();
|
|
|
@ -623,8 +628,11 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Set<String> set = new HashSet<String>();
|
|
|
|
Set<String> set = new HashSet<String>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int db2 = 0;
|
|
|
|
|
|
|
|
|
|
|
|
while (dbQuery2.next()) {
|
|
|
|
while (dbQuery2.next()) {
|
|
|
|
set.add(dbQuery2.getString(3));
|
|
|
|
set.add(dbQuery2.getString(3));
|
|
|
|
|
|
|
|
db2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
dbQuery2.first();
|
|
|
|
dbQuery2.first();
|
|
|
|
dbQuery2.previous();
|
|
|
|
dbQuery2.previous();
|
|
|
@ -664,29 +672,18 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(dbQuery2.getRow()+"--1--"+changeType.length);
|
|
|
|
System.out.println(dbQuery2.getRow() + "--1--" + changeType.length);
|
|
|
|
int[][] CTN = new int[list.size()][changeType.length];
|
|
|
|
int[][] CTN = new int[list.size()][changeType.length];
|
|
|
|
|
|
|
|
int[] countNum = null;
|
|
|
|
String year = list.get(0).substring(0,4);
|
|
|
|
int countYear = 0;
|
|
|
|
int lastRN = list.size()+1;
|
|
|
|
String year = list.get(0).substring(0, 4);
|
|
|
|
|
|
|
|
int rowY = 0;
|
|
|
|
|
|
|
|
int lastRN = list.size() + 1;
|
|
|
|
|
|
|
|
int current = 0;
|
|
|
|
while (dbQuery2.next()) {
|
|
|
|
while (dbQuery2.next()) {
|
|
|
|
|
|
|
|
current++;
|
|
|
|
for (int j = 0; j < list.size(); j++) {
|
|
|
|
for (int j = 0; j < list.size(); j++) {
|
|
|
|
|
|
|
|
|
|
|
|
// System.out.println(year+"-----2------"+rows[j].getCell(0).getStringCellValue().substring(0,4));
|
|
|
|
|
|
|
|
// if(!year.equals(rows[j].getCell(0).getStringCellValue().substring(0,4))) {
|
|
|
|
|
|
|
|
// System.out.println(year);
|
|
|
|
|
|
|
|
// year = rows[j].getCell(0).getStringCellValue().substring(0,4);
|
|
|
|
|
|
|
|
// System.out.println("after"+year);
|
|
|
|
|
|
|
|
// XSSFRow row = sheet1.createRow(lastRN++);
|
|
|
|
|
|
|
|
// row.createCell(0).setCellValue("合计:");
|
|
|
|
|
|
|
|
// for(int o=0;o<changeType.length;o++) {
|
|
|
|
|
|
|
|
// row.createCell(o+1).setCellValue(CTN[j][o]);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// row.createCell(changeType.length+1).setCellValue(getArrayCount(CTN[j]));
|
|
|
|
|
|
|
|
// sheet1.shiftRows(j, lastRN-1, 1, true, false);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (dbQuery2.getString(3).equals(list.get(j))) {
|
|
|
|
if (dbQuery2.getString(3).equals(list.get(j))) {
|
|
|
|
System.out.println(dbQuery2.getString(3));
|
|
|
|
System.out.println(dbQuery2.getString(3));
|
|
|
|
for (int n = 0; n < changeType.length; n++) {
|
|
|
|
for (int n = 0; n < changeType.length; n++) {
|
|
|
@ -696,134 +693,80 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
createCell.setCellValue(dbQuery2.getString(1));
|
|
|
|
createCell.setCellValue(dbQuery2.getString(1));
|
|
|
|
num[n] += Integer.parseInt(dbQuery2.getString(1));
|
|
|
|
num[n] += Integer.parseInt(dbQuery2.getString(1));
|
|
|
|
|
|
|
|
if (!year.equals(rows[j].getCell(0).getStringCellValue().substring(0, 4))) {
|
|
|
|
|
|
|
|
System.out.println(list);
|
|
|
|
|
|
|
|
System.out.println(year);
|
|
|
|
|
|
|
|
XSSFRow row = sheet1.createRow(lastRN++);
|
|
|
|
|
|
|
|
XSSFCell cell = row.createCell(0);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(year + "合计:");
|
|
|
|
|
|
|
|
year = rows[j].getCell(0).getStringCellValue().substring(0, 4);
|
|
|
|
|
|
|
|
System.out.println("after" + year);
|
|
|
|
|
|
|
|
for (int o = 0; o < changeType.length; o++) {
|
|
|
|
|
|
|
|
cell = row.createCell(o + 1);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(CTN[j - 1][o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
cell = row.createCell(changeType.length + 1);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(getArrayCount(CTN[j - 1]));
|
|
|
|
|
|
|
|
countNum = arrayAdd(CTN[j - 1], countNum);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sheet1.shiftRows(j, lastRN-1, 1, true, false);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (int n = 0; n < changeType.length; n++) {
|
|
|
|
for (int n = 0; n < changeType.length; n++) {
|
|
|
|
CTN[j][n] = num[n];
|
|
|
|
CTN[j][n] = num[n];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lastYearDetail[] = null;
|
|
|
|
|
|
|
|
int yearNum=1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j <=list.size(); j++) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(j==list.size()) {
|
|
|
|
|
|
|
|
sheet1.shiftRows(j+yearNum, lastRN++, 1, true, false);
|
|
|
|
|
|
|
|
XSSFRow row = sheet1.createRow(j+yearNum);
|
|
|
|
|
|
|
|
XSSFCell createCell2 = row.createCell(0);
|
|
|
|
|
|
|
|
createCell2.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell2.setCellValue("合计:");
|
|
|
|
|
|
|
|
if(lastYearDetail ==null) {
|
|
|
|
|
|
|
|
for(int o=0;o<changeType.length;o++) {
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(o+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(CTN[j-1][o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(changeType.length+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(getArrayCount(CTN[j-1]));
|
|
|
|
|
|
|
|
lastYearDetail = CTN[j-1];
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
for(int o=0;o<changeType.length;o++) {
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(o+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(CTN[j-1][o]-lastYearDetail[o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(changeType.length+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(getArrayCount(CTN[j-1])-getArrayCount(lastYearDetail));
|
|
|
|
|
|
|
|
lastYearDetail = CTN[j-1];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
yearNum++;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(current == db2) {
|
|
|
|
// System.out.println(year+"-----2------"+rows[j].getCell(0).getStringCellValue().substring(0,4));
|
|
|
|
if(countNum!=null) {
|
|
|
|
if(!year.equals(rows[j].getCell(0).getStringCellValue().substring(0,4))) {
|
|
|
|
XSSFRow row = sheet1.createRow(lastRN++);
|
|
|
|
System.out.println(year);
|
|
|
|
XSSFCell cell = row.createCell(0);
|
|
|
|
year = rows[j].getCell(0).getStringCellValue().substring(0,4);
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
System.out.println("after"+year);
|
|
|
|
cell.setCellValue(list.get(list.size()-1).substring(0,4)+"合计:");
|
|
|
|
sheet1.shiftRows(j+1, lastRN++, 1, true, false);
|
|
|
|
for (int o = 0; o < changeType.length; o++) {
|
|
|
|
XSSFRow row = sheet1.createRow(j+1);
|
|
|
|
cell = row.createCell(o + 1);
|
|
|
|
XSSFCell createCell2 = row.createCell(0);
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
createCell2.setCellStyle(cellStyle);
|
|
|
|
System.out.println("cell=>"+(null==cell));
|
|
|
|
createCell2.setCellValue("合计:");
|
|
|
|
System.out.println("CTN[CTN.length-1]=>"+(null==CTN[CTN.length-1]));
|
|
|
|
if(lastYearDetail ==null) {
|
|
|
|
System.out.println("CTN[CTN.length-1][o]=>"+CTN[CTN.length-1][o]);
|
|
|
|
for(int o=0;o<changeType.length;o++) {
|
|
|
|
System.out.println("countNum[o]=>"+countNum[o]);
|
|
|
|
XSSFCell createCell = row.createCell(o+1);
|
|
|
|
cell.setCellValue(CTN[CTN.length-1][o]-countNum[o]);
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(CTN[j][o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(changeType.length+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(getArrayCount(CTN[j]));
|
|
|
|
|
|
|
|
lastYearDetail = CTN[j];
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
for(int o=0;o<changeType.length;o++) {
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(o+1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(CTN[j][o]-lastYearDetail[o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
XSSFCell createCell = row.createCell(changeType.length+1);
|
|
|
|
cell = row.createCell(changeType.length + 1);
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
createCell.setCellValue(getArrayCount(CTN[j])-getArrayCount(lastYearDetail));
|
|
|
|
cell.setCellValue(getArrayCount(CTN[CTN.length-1])-getArrayCount(countNum));
|
|
|
|
lastYearDetail = CTN[j];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// sheet1.createRow(j+1);
|
|
|
|
XSSFRow row = sheet1.createRow(lastRN++);
|
|
|
|
yearNum++;
|
|
|
|
XSSFCell cell = row.createCell(0);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue("合计:");
|
|
|
|
|
|
|
|
for (int o = 0; o < changeType.length; o++) {
|
|
|
|
|
|
|
|
cell = row.createCell(o + 1);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(CTN[CTN.length-1][o]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
cell = row.createCell(changeType.length + 1);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(getArrayCount(CTN[CTN.length-1]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for(int p=0;p<list.size();p++) {
|
|
|
|
for (int p = 0; p < list.size(); p++) {
|
|
|
|
System.out.println(Arrays.toString(CTN[p]));
|
|
|
|
System.out.println(Arrays.toString(CTN[p]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
XSSFRow row = sheet1.createRow(list.size()+yearNum);
|
|
|
|
|
|
|
|
XSSFCell createCell2 = row.createCell(0);
|
|
|
|
|
|
|
|
createCell2.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell2.setCellValue("合计:");
|
|
|
|
|
|
|
|
for (int j = 0; j < num.length; j++) {
|
|
|
|
|
|
|
|
XSSFCell cell = row.createCell(j + 1);
|
|
|
|
|
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
cell.setCellValue(num[j]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
|
|
|
|
for (int q : num) {
|
|
|
|
|
|
|
|
count += q;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
XSSFCell createCell = row.createCell(num.length + 1);
|
|
|
|
|
|
|
|
createCell.setCellStyle(cellStyle);
|
|
|
|
|
|
|
|
createCell.setCellValue(count);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int m = 0; m <= changeType.length; m++) {
|
|
|
|
|
|
|
|
sheet1.setColumnWidth(m, 10 * 256);
|
|
|
|
|
|
|
|
// sheet1.autoSizeColumn(m);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j <= title.length; j++) {
|
|
|
|
|
|
|
|
sheet2.setColumnWidth(j, 20 * 256);
|
|
|
|
|
|
|
|
// sheet2.autoSizeColumn(j);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FileOutputStream fos = FileUtils.openOutputStream(new File(absoluteFilePath));
|
|
|
|
FileOutputStream fos = FileUtils.openOutputStream(new File(absoluteFilePath));
|
|
|
|
workbook.write(fos);
|
|
|
|
workbook.write(fos);
|
|
|
|
if (fos != null) {
|
|
|
|
if (fos != null) {
|
|
|
|
fos.close();
|
|
|
|
fos.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// listByYear(CTN,list.size(),absoluteFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e2) {
|
|
|
|
} catch (Exception e2) {
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
e2.printStackTrace();
|
|
|
|
e2.printStackTrace();
|
|
|
@ -992,28 +935,27 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
XSSFSheet sheet = (XSSFSheet) workbook.getSheet("月份清单");
|
|
|
|
XSSFSheet sheet = (XSSFSheet) workbook.getSheet("月份清单");
|
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
|
int[] num = new int[changeType.length];
|
|
|
|
int[] num = new int[changeType.length];
|
|
|
|
for(int i=0;i<changeType.length;i++) {
|
|
|
|
for (int i = 0; i < changeType.length; i++) {
|
|
|
|
num[i] = 0;
|
|
|
|
num[i] = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String year = sheet.getRow(1).getCell(0).getStringCellValue().substring(0,4);
|
|
|
|
String year = sheet.getRow(1).getCell(0).getStringCellValue().substring(0, 4);
|
|
|
|
|
|
|
|
|
|
|
|
for(int i=1;i<=lastRowNum;i++) {
|
|
|
|
for (int i = 1; i <= lastRowNum; i++) {
|
|
|
|
XSSFRow row = sheet.getRow(i);
|
|
|
|
XSSFRow row = sheet.getRow(i);
|
|
|
|
if(!year.equals(row.getCell(0).getStringCellValue().substring(0,4))) {
|
|
|
|
if (!year.equals(row.getCell(0).getStringCellValue().substring(0, 4))) {
|
|
|
|
sheet.shiftRows(i, lastRowNum, 1,true,false);
|
|
|
|
sheet.shiftRows(i, lastRowNum, 1, true, false);
|
|
|
|
XSSFRow row2 = sheet.createRow(++lastRowNum);
|
|
|
|
XSSFRow row2 = sheet.createRow(++lastRowNum);
|
|
|
|
for(int n=0;n<=changeType.length+1;n++) {
|
|
|
|
for (int n = 0; n <= changeType.length + 1; n++) {
|
|
|
|
XSSFCell cell = row2.createCell(n);
|
|
|
|
XSSFCell cell = row2.createCell(n);
|
|
|
|
if(n==0) {
|
|
|
|
if (n == 0) {
|
|
|
|
cell.setCellValue("合计:");
|
|
|
|
cell.setCellValue("合计1:");
|
|
|
|
}else if(n<=changeType.length){
|
|
|
|
} else if (n <= changeType.length) {
|
|
|
|
cell.setCellValue(num[n-1]);
|
|
|
|
cell.setCellValue(num[n - 1]);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
cell.setCellValue(getArrayCount(num));
|
|
|
|
cell.setCellValue(getArrayCount(num));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1026,7 +968,7 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
int startRow = 1;
|
|
|
|
int startRow = 1;
|
|
|
|
XSSFSheet sheet = (XSSFSheet) workbook.getSheet("详细清单");
|
|
|
|
XSSFSheet sheet = (XSSFSheet) workbook.getSheet("详细清单");
|
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
|
int lastRowNum = sheet.getLastRowNum();
|
|
|
|
if(lastRowNum<=0) {
|
|
|
|
if (lastRowNum <= 0) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String merginId = sheet.getRow(1).getCell(2).getStringCellValue();
|
|
|
|
String merginId = sheet.getRow(1).getCell(2).getStringCellValue();
|
|
|
@ -1035,8 +977,8 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
if (!merginId.equals(currentId)) {
|
|
|
|
if (!merginId.equals(currentId)) {
|
|
|
|
CellRangeAddress region = new CellRangeAddress(startRow, i - 1, 0, 0);
|
|
|
|
CellRangeAddress region = new CellRangeAddress(startRow, i - 1, 0, 0);
|
|
|
|
sheet.addMergedRegion(region);
|
|
|
|
sheet.addMergedRegion(region);
|
|
|
|
for(int j=1;j<title.length;j++) {
|
|
|
|
for (int j = 1; j < title.length; j++) {
|
|
|
|
if(j==10 || j==11 || j==12 || j==13 || j==14) {
|
|
|
|
if (j == 10 || j == 11 || j == 12 || j == 13 || j == 14) {
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
region = new CellRangeAddress(startRow, i - 1, j, j);
|
|
|
|
region = new CellRangeAddress(startRow, i - 1, j, j);
|
|
|
@ -1049,8 +991,8 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
if (i == lastRowNum) {
|
|
|
|
if (i == lastRowNum) {
|
|
|
|
CellRangeAddress region = new CellRangeAddress(startRow, lastRowNum, 0, 0);
|
|
|
|
CellRangeAddress region = new CellRangeAddress(startRow, lastRowNum, 0, 0);
|
|
|
|
sheet.addMergedRegion(region);
|
|
|
|
sheet.addMergedRegion(region);
|
|
|
|
for(int j=1;j<title.length;j++) {
|
|
|
|
for (int j = 1; j < title.length; j++) {
|
|
|
|
if(j==10 || j==11 || j==12 || j==13 || j==14) {
|
|
|
|
if (j == 10 || j == 11 || j == 12 || j == 13 || j == 14) {
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
region = new CellRangeAddress(startRow, lastRowNum, j, j);
|
|
|
|
region = new CellRangeAddress(startRow, lastRowNum, j, j);
|
|
|
@ -1065,12 +1007,26 @@ public class DFL038Jframe extends JFrame {
|
|
|
|
|
|
|
|
|
|
|
|
public int getArrayCount(int[] args) {
|
|
|
|
public int getArrayCount(int[] args) {
|
|
|
|
int count = 0;
|
|
|
|
int count = 0;
|
|
|
|
for(int i=0;i<args.length;i++) {
|
|
|
|
for (int i = 0; i < args.length; i++) {
|
|
|
|
count+=args[i];
|
|
|
|
count += args[i];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return count;
|
|
|
|
return count;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static int[] arrayAdd(int[] array,int [] val) {
|
|
|
|
|
|
|
|
int[] back = new int[array.length];
|
|
|
|
|
|
|
|
for(int i=0;i<array.length;i++) {
|
|
|
|
|
|
|
|
if(val == null) {
|
|
|
|
|
|
|
|
back[i] = array[i];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
back[i] = array[i]+val[i];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return back;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
public static void main(String[] args) {
|
|
|
|
new DFL038Jframe();
|
|
|
|
new DFL038Jframe();
|
|
|
|
// Date date = new Date();
|
|
|
|
// Date date = new Date();
|
|
|
|