| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.uas.eis.task;
- import com.uas.eis.core.TableCreator;
- import com.uas.eis.core.config.SpObserver;
- import com.uas.eis.dao.BaseDao;
- import com.uas.eis.dao.SqlRowList;
- import com.uas.eis.entity.DataChip;
- import com.uas.eis.entity.DataChipTestLog;
- import com.uas.eis.service.FileParseService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- import java.util.List;
- import java.util.concurrent.CountDownLatch;
- import java.util.stream.Collectors;
- /**
- * 赛美特文件对接解析
- * */
- @Component
- public class FileParseTask {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- private BaseDao baseDao;
- @Autowired
- private FileParseService fileParseService;
- @Autowired
- private TableCreator tableCreator;
- public void dataDeal(){
- //wafer_id='BF241002603#01' AND
- List<DataChipTestLog> dataChipTestLogs = baseDao.getJdbcTemplate().query("select wafer_id,lot_id,status,data_path,counter_path from (select wafer_id,lot_id,status,data_path,counter_path from " +
- " DATACENTER$MESFILE WHERE DEALSTATE_=0 ORDER BY DBID_ ASC ) where " +
- " rownum<=10", new BeanPropertyRowMapper<>(DataChipTestLog.class));
- List<String> distinctLotIds = dataChipTestLogs.stream().map(DataChipTestLog::getLot_id).distinct()
- .collect(Collectors.toList());
- SpObserver.putSp("datacenter");
- for (String lotId : distinctLotIds){
- tableCreator.createTable("DATA$"+lotId);
- }
- SpObserver.back();
- logger.info("Data文件解析执行开始:文件数"+dataChipTestLogs.size());
- Date date = new Date();
- if(!dataChipTestLogs.isEmpty()){
- final CountDownLatch countDownLatch = new CountDownLatch(dataChipTestLogs.size());
- try {
- dataChipTestLogs.stream().forEach(dataChipTestLog -> {
- fileParseService.EDCDataDeal(dataChipTestLog,countDownLatch);
- });
- countDownLatch.await();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- // baseDao.execute("INSERT INTO DATACENTER$TASKLOG(NAME_,DURATION_) VALUES ('Data文件解析',"+(new Date().getTime()-date.getTime())/1000+")");
- logger.info("Data文件解析执行结束:用时"+((new Date().getTime()-date.getTime())/1000));
- }
- }
|