|
@@ -29,7 +29,6 @@ public class FileParseServiceImpl implements FileParseService {
|
|
|
@Override
|
|
@Override
|
|
|
@Async("taskExecutor")
|
|
@Async("taskExecutor")
|
|
|
public void EDCDataDeal(DataChipTestLog dataChipTestLog, CountDownLatch countDownLatch) {
|
|
public void EDCDataDeal(DataChipTestLog dataChipTestLog, CountDownLatch countDownLatch) {
|
|
|
- //可以
|
|
|
|
|
String TableName = "DATA$" + dataChipTestLog.getLot_id();
|
|
String TableName = "DATA$" + dataChipTestLog.getLot_id();
|
|
|
try {
|
|
try {
|
|
|
this.logger.info(new StringBuilder().append(dataChipTestLog.getWafer_id()).append("Data文件解析开始").toString());
|
|
this.logger.info(new StringBuilder().append(dataChipTestLog.getWafer_id()).append("Data文件解析开始").toString());
|
|
@@ -41,23 +40,17 @@ public class FileParseServiceImpl implements FileParseService {
|
|
|
Workbook book = WorkbookFactory.create(is);
|
|
Workbook book = WorkbookFactory.create(is);
|
|
|
Sheet st = book.getSheetAt(0);
|
|
Sheet st = book.getSheetAt(0);
|
|
|
int labelIndex = 13;
|
|
int labelIndex = 13;
|
|
|
- int mainBeginRow = 14;
|
|
|
|
|
- int dataStart = 24;
|
|
|
|
|
|
|
+ int dataStart = 23;
|
|
|
Row labelRow = st.getRow(labelIndex);
|
|
Row labelRow = st.getRow(labelIndex);
|
|
|
List items = new ArrayList();
|
|
List items = new ArrayList();
|
|
|
- System.out.println(labelRow.getPhysicalNumberOfCells());
|
|
|
|
|
for (int i = 0; i < labelRow.getPhysicalNumberOfCells(); i++) {
|
|
for (int i = 0; i < labelRow.getPhysicalNumberOfCells(); i++) {
|
|
|
items.add(labelRow.getCell(i)!=null?labelRow.getCell(i).getStringCellValue(): "");
|
|
items.add(labelRow.getCell(i)!=null?labelRow.getCell(i).getStringCellValue(): "");
|
|
|
}
|
|
}
|
|
|
- System.out.println(items.size());
|
|
|
|
|
- System.out.println(labelRow.getCell(3));
|
|
|
|
|
- StringBuffer mainBuffer = new StringBuffer();
|
|
|
|
|
List itemCols = new ArrayList();
|
|
List itemCols = new ArrayList();
|
|
|
for (int j = 0; j < items.size(); j++) {
|
|
for (int j = 0; j < items.size(); j++) {
|
|
|
itemCols.add(new StringBuilder().append("ITEM").append(j + 1).toString());
|
|
itemCols.add(new StringBuilder().append("ITEM").append(j + 1).toString());
|
|
|
}
|
|
}
|
|
|
List sqls = new ArrayList();
|
|
List sqls = new ArrayList();
|
|
|
- //sqls.add(new StringBuilder().append("BEGIN ").append(mainBuffer.toString()).append(" END;").toString());
|
|
|
|
|
sqls.add(new StringBuilder().append("DELETE FROM ").append(TableName).append("@SHENAI_EDCDATA WHERE WAFER_ID='").append(dataChipTestLog.getWafer_id()).append("'").toString());
|
|
sqls.add(new StringBuilder().append("DELETE FROM ").append(TableName).append("@SHENAI_EDCDATA WHERE WAFER_ID='").append(dataChipTestLog.getWafer_id()).append("'").toString());
|
|
|
int allRow = st.getLastRowNum() - (dataStart - 1);
|
|
int allRow = st.getLastRowNum() - (dataStart - 1);
|
|
|
int a = allRow / 3000;
|
|
int a = allRow / 3000;
|
|
@@ -72,9 +65,14 @@ public class FileParseServiceImpl implements FileParseService {
|
|
|
detailBuffer.setLength(0);
|
|
detailBuffer.setLength(0);
|
|
|
for (int k = i * 3000; k < (i + 1) * 3000; k++) {
|
|
for (int k = i * 3000; k < (i + 1) * 3000; k++) {
|
|
|
detailBuffer.append(new StringBuilder().append("INSERT INTO ").append(TableName).append("@SHENAI_EDCDATA (WAFER_ID,DETNO_,DATATYPE_,FLAG_,").append(String.join(",", new CharSequence[]{dynamicCols})).append(") VALUES ").append("('")
|
|
detailBuffer.append(new StringBuilder().append("INSERT INTO ").append(TableName).append("@SHENAI_EDCDATA (WAFER_ID,DETNO_,DATATYPE_,FLAG_,").append(String.join(",", new CharSequence[]{dynamicCols})).append(") VALUES ").append("('")
|
|
|
- .append(dataChipTestLog.getWafer_id()).append("',").append(k + 1).append(",").append(1).append(",").append(1).toString());
|
|
|
|
|
|
|
+ .append(dataChipTestLog.getWafer_id()).append("',").append(k).append(",").append((k==0?0:1)).append(",").toString());
|
|
|
ValueSql = "";
|
|
ValueSql = "";
|
|
|
dataRow = st.getRow(k + dataStart);
|
|
dataRow = st.getRow(k + dataStart);
|
|
|
|
|
+ if(dataRow.getCell(0).toString().startsWith("F")){
|
|
|
|
|
+ detailBuffer.append("1").toString();
|
|
|
|
|
+ }else {
|
|
|
|
|
+ detailBuffer.append("0").toString();
|
|
|
|
|
+ }
|
|
|
for (int m = 0; m < items.size(); m++) {
|
|
for (int m = 0; m < items.size(); m++) {
|
|
|
cellValue = dataRow.getCell(m).getStringCellValue();
|
|
cellValue = dataRow.getCell(m).getStringCellValue();
|
|
|
ValueSql = new StringBuilder().append(ValueSql).append(cellValue != null ? new StringBuilder().append("'").append(cellValue.trim()).append("'").toString() : "''").toString();
|
|
ValueSql = new StringBuilder().append(ValueSql).append(cellValue != null ? new StringBuilder().append("'").append(cellValue.trim()).append("'").toString() : "''").toString();
|
|
@@ -91,11 +89,16 @@ public class FileParseServiceImpl implements FileParseService {
|
|
|
detailBuffer.setLength(0);
|
|
detailBuffer.setLength(0);
|
|
|
for (int k = 0; k < b; k++) {
|
|
for (int k = 0; k < b; k++) {
|
|
|
detailBuffer.append(new StringBuilder().append("INSERT INTO ").append(TableName).append("@SHENAI_EDCDATA (WAFER_ID,DETNO_,DATATYPE_,FLAG_,").append(String.join(",", new CharSequence[]{dynamicCols})).append(") VALUES ").append("('")
|
|
detailBuffer.append(new StringBuilder().append("INSERT INTO ").append(TableName).append("@SHENAI_EDCDATA (WAFER_ID,DETNO_,DATATYPE_,FLAG_,").append(String.join(",", new CharSequence[]{dynamicCols})).append(") VALUES ").append("('")
|
|
|
- .append(dataChipTestLog.getWafer_id()).append("',").append(a * 3000 + k + 1).append(",").append(1).append(",").append(1).toString());
|
|
|
|
|
|
|
+ .append(dataChipTestLog.getWafer_id()).append("',").append(a * 3000 + k).append(",").append((k==0?0:1)).append(","));
|
|
|
ValueSql = "";
|
|
ValueSql = "";
|
|
|
dataRow = st.getRow(a * 3000 + k + dataStart);
|
|
dataRow = st.getRow(a * 3000 + k + dataStart);
|
|
|
|
|
+ if(dataRow.getCell(0).toString().startsWith("F")){
|
|
|
|
|
+ detailBuffer.append("1").toString();
|
|
|
|
|
+ }else {
|
|
|
|
|
+ detailBuffer.append("0").toString();
|
|
|
|
|
+ }
|
|
|
for (int m = 0; m < items.size(); m++) {
|
|
for (int m = 0; m < items.size(); m++) {
|
|
|
- cellValue = dataRow.getCell(m ).getStringCellValue();
|
|
|
|
|
|
|
+ cellValue = dataRow.getCell(m).getStringCellValue();
|
|
|
ValueSql = new StringBuilder().append(ValueSql).append(cellValue != null ? new StringBuilder().append("'").append(cellValue.trim()).append("'").toString() : "''").toString();
|
|
ValueSql = new StringBuilder().append(ValueSql).append(cellValue != null ? new StringBuilder().append("'").append(cellValue.trim()).append("'").toString() : "''").toString();
|
|
|
if (m < items.size() - 1) {
|
|
if (m < items.size() - 1) {
|
|
|
ValueSql = new StringBuilder().append(ValueSql).append(",").toString();
|
|
ValueSql = new StringBuilder().append(ValueSql).append(",").toString();
|