zss
2023-11-07 3c34085a21511610477f555cebf3f6fa42272402
mes-technology/src/main/java/com/chinaztt/mes/technology/excel/StructureUploadListener.java
@@ -21,16 +21,14 @@
    * 假设这个是一个DAO,当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。
    */
   private StructureService structureService;
   private DictUtils dictUtils;
   /**
    * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
    *
    * @param structureService
    */
   public StructureUploadListener(StructureService structureService,DictUtils dictUtils) {
   public StructureUploadListener(StructureService structureService) {
      this.structureService = structureService;
      this.dictUtils = dictUtils;
   }
   /**
@@ -41,23 +39,6 @@
    */
   @Override
   public void invoke(StructureData data, AnalysisContext context) {
      Map<String, String> dicbomtype = dictUtils.getDicKey("bom_type_db");
      if (StringUtils.isEmpty(data.getAlternativeNo())) {
         data.setAlternativeNo("*");
      }
      //if (StringUtils.isEmpty(data.getChildPartNo()) || StringUtils.isEmpty(data.getChildVersion()) || StringUtils.isEmpty(data.getFatherPartNo()) || StringUtils.isEmpty(data.getFatherVersion())) {
      //   throw new RuntimeException("缺少零件数据编号或者版本");
      //}
      //if (StringUtils.isEmpty(data.getQpa())) {
      //   throw new RuntimeException("缺少数量");
      //}
      //if (StringUtils.isEmpty(data.getLineItemNo())) {
      //   throw new RuntimeException("缺少行项号");
      //}
      //if (StringUtils.isEmpty(data.getOperationName())) {
      //   throw new RuntimeException("缺少工序");
      //}
      data.setStructureType(StringUtils.isEmpty(data.getStructureType()) ? "M" : dicbomtype.get(data.getStructureType()));
      list.add(data);
      // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
      if (list.size() >= BATCH_COUNT) {