123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package cn.com.qmth.im.bean;
- import java.io.IOException;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import org.apache.log4j.LogManager;
- import org.apache.log4j.Logger;
- import org.apache.poi.xssf.usermodel.XSSFRow;
- import org.apache.poi.xssf.usermodel.XSSFSheet;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import cn.com.qmth.im.config.Param;
- import cn.com.qmth.im.multithread.Producer;
- public class MyProducer extends Producer<ConsumerDto, MyConsumer> {
- private static Logger logger = LogManager.getLogger(MyProducer.class);
- @Override
- protected void produce(Map<String, Object> param) throws Exception {
- logger.info("***************************任务生产开始");
- String sourceDir = Param.dataDir + "/";
- String batch = param.get("batch").toString();
- // List<Course> cs = readSubject();
- Map<String, CourseDto> ics = readSubjectCodes(sourceDir);
- if (ics.size() == 0) {
- logger.debug("无数据导入");
- return;
- } else {
- logger.debug(ics.size() + "个课程");
- }
- for (CourseDto ic : ics.values()) {
- offer(new ConsumerDto(ic, batch));
- }
- logger.info("***************************任务生产结束");
- }
- private static Map<String, CourseDto> readSubjectCodes(String sourceDir) {
- Map<String, CourseDto> map = new LinkedHashMap<>();
- XSSFWorkbook wb = null;
- try {
- wb = new XSSFWorkbook(sourceDir + "subject_info.xlsx");
- XSSFSheet sheet = wb.getSheetAt(0);
- int rows = sheet.getLastRowNum();
- for (int i = 1; i <= rows; i++) {
- Course c = new Course();
- XSSFRow row = sheet.getRow(i);
- String ecCode = row.getCell(0).getStringCellValue().trim();
- String yunCode;
- try {
- yunCode = row.getCell(1).getStringCellValue().trim();
- } catch (Exception e) {
- yunCode = (row.getCell(1).getNumericCellValue() + "").trim();
- }
- String name = row.getCell(2).getStringCellValue().trim();
- c.setCode(ecCode);
- c.setName(name);
- CourseDto ic = map.get(yunCode);
- if (ic == null) {
- ic = new CourseDto();
- ic.setSubjectCode(yunCode);
- map.put(yunCode, ic);
- }
- ic.addCourse(c);
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- if (wb != null) {
- try {
- wb.close();
- } catch (IOException e) {
- }
- }
- }
- return map;
- }
- @Override
- protected String getTaskName() {
- return "试题导入";
- }
- // private List<Course> readSubject() {
- // List<Course> list = new ArrayList<>();
- // XSSFWorkbook wb = null;
- // try {
- // wb = new XSSFWorkbook(sourceDir + "subject.xlsx");
- // XSSFSheet sheet = wb.getSheetAt(0);
- // int rows = sheet.getLastRowNum();
- // for (int i = 1; i <= rows; i++) {
- // Course c = new Course();
- // XSSFRow row = sheet.getRow(i);
- // String id = row.getCell(0).getStringCellValue().trim();
- // String name = row.getCell(1).getStringCellValue().trim();
- // String code = row.getCell(2).getStringCellValue().trim();
- // c.setId(Long.valueOf(id));
- // c.setCode(code);
- // c.setName(name);
- // list.add(c);
- // }
- // } catch (IOException e) {
- // throw new RuntimeException(e);
- // } finally {
- // if (wb != null) {
- // try {
- // wb.close();
- // } catch (IOException e) {
- // }
- // }
- // }
- // return list;
- // }
- }
|