yangys
2025-07-08 ef4a26bca3552aed5865e5ef3ef2804b8509d31b
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
@@ -9,6 +9,7 @@
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.compress.utils.SeekableInMemoryByteChannel;
import org.springblade.core.mp.base.BizEntity;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
@@ -17,6 +18,8 @@
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.IoUtil;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.service.ApproveRecordService;
import org.springblade.mdm.flow.service.CureFlowService;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.entity.NcProgram;
@@ -48,6 +51,7 @@
   private final CureFlowService cureFlowService;
   private final NcProgramService ncProgramService;
   private final NcNodeService ncNodeService;
   private final ApproveRecordService approveRecordService;
   private final BladeRedis bladeRedis;
   private final OssTemplate ossTemplate;
@@ -214,6 +218,8 @@
      List<NcNode> nodeList = new ArrayList<>();
      List<NcProgram> progList = new ArrayList<>();
      List<ApproveRecord> recordList = new ArrayList<>();
      try (SeekableInMemoryByteChannel channel = new SeekableInMemoryByteChannel(bytes);
          ZipFile zipFile = new ZipFile(channel)) {
@@ -249,6 +255,8 @@
                        d.setPartNo(jsonObject.getString("partNo"));
                        d.setProcessEdition(jsonObject.getString("processEdition"));
                        setBaseProperties(d,jsonObject);
                        progList.add(d);
                     }
@@ -271,7 +279,27 @@
                        node.setParentIds(jsonObject.getString("parentIds"));
                        node.setIsCured(jsonObject.getInteger("isCured"));
                        setBaseProperties(node,jsonObject);
                        nodeList.add(node);
                     }
                  }
               }else if(entryName.equals(NcProgramExportDNCService.APPROVE_RECORD_JSON_FILE)){
                  try (InputStream insJson = zipFile.getInputStream(entry)) {
                     String jsonStr = IoUtil.readToString(insJson);
                     JSONArray jsonArray = JSONArray.parseArray(jsonStr);
                     for (int i = 0; i < jsonArray.size(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        ApproveRecord record = new ApproveRecord();
                        record.setId(jsonObject.getLong("id"));
                        record.setNcProgramId(jsonObject.getLong("ncProgramId"));
                        record.setUserId(jsonObject.getLong("userId"));
                        record.setUserNickname(jsonObject.getString("userNickname"));
                        record.setOperateResult(jsonObject.getString("operateResult"));
                        record.setOperateTime(jsonObject.getDate("operateTime"));
                        setBaseProperties(record,jsonObject);
                        recordList.add(record);
                     }
                  }
               }
@@ -327,5 +355,22 @@
         }
      }
      for(ApproveRecord record:recordList) {
         ApproveRecord recordTemp = this.approveRecordService.getById(record.getId());
         if (recordTemp == null) {
            approveRecordService.save(record);
         } else {
            approveRecordService.updateById(record);
         }
      }
   }
   void setBaseProperties(BizEntity entity,JSONObject jsonObject){
      entity.setCreateTime(jsonObject.getDate("createTime"));
      entity.setUpdateTime(jsonObject.getDate("updateTime"));
      entity.setStatus(jsonObject.getInteger("status"));
      entity.setCreateUser(jsonObject.getLong("createUser"));
      entity.setUpdateUser(jsonObject.getLong("updateUser"));
   }
}