yuxc
2023-12-04 d334ce7945bf6a1243927c3b778d14dd493e9918
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -16,6 +16,7 @@
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.util.LocalFileUtil;
import com.vci.ubcs.starter.util.SaveLogUtil;
import com.vci.ubcs.starter.web.pagemodel.*;
import com.vci.ubcs.starter.web.util.ControllerUtil;
import com.vci.ubcs.starter.web.util.LangBaseUtil;
@@ -55,7 +56,11 @@
    */
   @Autowired
   private MdmIOService mdmIOService;
   /**
    * 日志保存工具类
    */
   @Autowired
   private SaveLogUtil saveLogUtil;
   /**
    * 下载批量申请的导入模板
@@ -76,6 +81,72 @@
            msg = "未知错误";
         }
         ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
      }
   }
   /**
    * 下载批量申请的导入模板
    * @param codeClassifyOid 分类的主键
    * @param response 响应对象
    * @throws IOException 抛出异常
    */
   @GetMapping("/downloadExcelBatchEdit")
   @VciBusinessLog(operateName = "下载批量申请编码的导入模板")
   public void downloadImportExcelBatchEdit(String codeClassifyOid, HttpServletResponse response) throws IOException{
      String excelName = mdmIOService.downloadImportExcelBatchEdit(codeClassifyOid);
      try {
         ControllerUtil.writeFileToResponse(response,excelName);
      } catch (Throwable e) {
         //如果出错,把错误信息写到text
         String msg = LangBaseUtil.getErrorMsg(e);
         if(StringUtils.isBlank(msg)){
            msg = "未知错误";
         }
         ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
      }
   }
   /**
    * 导入批量编辑数据
    * @param codeClassifyOid 分类的主键
    * @param classifyAttr 分类路径使用的属性
    * @param file 文件的内容
    */
   @VciBusinessLog(operateName = "导入批量编辑数据")
   @PostMapping("/batchImportEdit")
   public R batchImportEdit(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable {
      String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename();
      File file1 = new File(excelFileName);
      try {
         file.transferTo(new File(excelFileName));
         CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchImportEdit(codeClassifyOid, classifyAttr,file1);
         if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){
            //放到map里
            R result = R.fail("导入失败");
            if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) {
               String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath());
               codeImProtRusultVO.setFileOid(filedUUid);
            }
            result.setData(codeImProtRusultVO);
            return result;
         }else {
            return R.success("操作成功!");
         }
      }catch (Throwable e) {
         logger.error("导入错误",e);
         String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "错误.txt";
         LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile);
         String uuid=ControllerUtil.putErrorFile(errorFile);
         CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO();
         codeImProtRusultVO.setRedisUuid("");
         codeImProtRusultVO.setFileOid(uuid);
         codeImProtRusultVO.setFilePath(errorFile);
         R r = R.fail("导入失败");
         r.setData(codeImProtRusultVO);
         return r;
      }finally {
         file1.delete();
      }
   }
@@ -144,7 +215,7 @@
   }
   /**
    * 批量申请编码的信息
    * 批量申请编码的信息(当前分类上批量申请)
    * @param secDTOList 申请编码的信息,必须包含码段和分类主键的信息
    * @param file 文件的内容
    */
@@ -237,7 +308,7 @@
   }
   /**
    * 导入历史数据
    * 导入历史数据(从顶层分类导的)
    * @param codeClassifyOid 分类的主键
    * @param classifyAttr 分类路径使用的属性
    * @param file 文件的内容
@@ -302,7 +373,15 @@
   @PostMapping("/addSaveCode")
   @VciBusinessLog(operateName = "申请单个编码")
   public R addSaveCode(@RequestBody CodeOrderDTO orderDTO) throws Exception {
      return R.success(engineService.addSaveCode(orderDTO));
      String s = null;
      try {
         s = engineService.addSaveCode(orderDTO);
         saveLogUtil.operateLog("编码申请",false,orderDTO.toString());
      }catch (Exception e){
         saveLogUtil.operateLog("编码申请",true,e.toString());
         throw e;
      }
      return R.success(s);
   }
   /**
@@ -429,6 +508,7 @@
   public DataGrid<Map<String,String>> gridResemble(String codeClassifyOid,String redisOid){
      return mdmIOService.gridDatas(codeClassifyOid,redisOid);
   }
   /***
    * 导入数据
    * @param codeImprotSaveDatVO//数据对象
@@ -436,11 +516,11 @@
    */
   @PostMapping("/batchImportData")
   public R batchImportData(@RequestBody CodeImprotParmaDatVO codeImprotSaveDatVO){
      return  mdmIOService.batchImportData(codeImprotSaveDatVO.getCodeImprotSaveDatVOList(),codeImprotSaveDatVO.getClassifyAttr(),codeImprotSaveDatVO.getImprot());
      return mdmIOService.batchImportData(codeImprotSaveDatVO.getCodeImprotSaveDatVOList(),codeImprotSaveDatVO.getClassifyAttr(),codeImprotSaveDatVO.getImprot());
   }
   /***
    *根据数据oid从缓存中移除数据
    * 根据数据oid从缓存中移除数据
    * @param redisOid redisid
    * @param codeClassifyOid 存储规则的oid
    * @param dataOids  所需删除的数据
@@ -450,6 +530,7 @@
   public  R deleteDatas(String redisOid,String codeClassifyOid,String dataOids){
      return mdmIOService.deleteDatas(redisOid,codeClassifyOid,dataOids);
   }
   /**
    * 批量保存流程执行页面修改的内容
    * @param orderDTOList 编码相关的信息,不需要码段的信息
@@ -514,7 +595,7 @@
   @PostMapping("/upSaveCode")
   public R upSaveCode(@RequestBody CodeOrderDTO orderDTO){
      engineService.upSaveCode(orderDTO);
      return  R.success("操作成功!");
      return R.success("操作成功!");
   }
   /**
@@ -754,4 +835,26 @@
   public R addSaveBZ (@RequestBody CodeBZApplyDTO codeBZApplyDTO) throws Exception {
      return R.success(engineService.addSaveBZ(codeBZApplyDTO));
   }
   /**
    * 下载批量申请的导入模板
    * @param codeClassifyOid 分类的主键
    * @param response 响应对象
    * @throws IOException 抛出异常
    */
   @GetMapping("/exportGroupCodeExcel")
   @VciBusinessLog(operateName = "导出集团码")
   public void exportGroupCodeExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
      try {
         String excelName = mdmIOService.exportGroupCodeExcel(codeClassifyOid);
      } catch (Throwable e) {
         //如果出错,把错误信息写到text
         String msg = LangBaseUtil.getErrorMsg(e);
         if(StringUtils.isBlank(msg)){
            msg = "未知错误";
         }
         ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
      }
   }
}