yuxc
2023-05-16 4333081070244058c347daf76e4b11f887178f9a
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -9,8 +9,10 @@
import com.vci.ubcs.code.service.MdmEngineService;
import com.vci.ubcs.code.service.MdmIOService;
import com.vci.ubcs.code.vo.pagemodel.CodeImProtRusultVO;
import com.vci.ubcs.code.vo.pagemodel.MdmUIInfoVO;
import com.vci.ubcs.starter.annotation.VciBusinessLog;
import com.vci.ubcs.starter.util.LocalFileUtil;
import com.vci.ubcs.starter.web.pagemodel.DataGrid;
import com.vci.ubcs.starter.web.util.ControllerUtil;
import com.vci.ubcs.starter.web.util.LangBaseUtil;
import io.swagger.annotations.Api;
@@ -27,121 +29,157 @@
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
@RestController
//@AllArgsConstructor
@RequestMapping("/mdmEngineController")
@Api(value = "编码数据管理", tags = "编码数据管理")
public class MdmEngineController {
//
////  /**
////   * 日志
////   */
// private Logger logger = LoggerFactory.getLogger(getClass());
// /**
//  * 日志
//  * 主数据引擎服务
//  */
   private Logger logger = LoggerFactory.getLogger(getClass());
   /**
    * 主数据引擎服务
    */
   @Autowired
   private MdmEngineService engineService;
   /**
    * 主数据导入导出服务
    */
   @Autowired
   private MdmIOService mdmIOService;
// @Autowired
// private MdmEngineService engineService;
// /**
//  * 主数据导入导出服务
//  */
// @Autowired
// private MdmIOService mdmIOService;
//
// /**
//  * 下载批量申请的导入模板
//  * @param codeClassifyOid 分类的主键
//  * @param response 响应对象
//  * @throws IOException 抛出异常
//  */
// @GetMapping("/downloadImportExcel")
// @VciBusinessLog(operateName = "下载批量申请编码的导入模板")
// public void downloadImportExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
//    String excelName = mdmIOService.createImportExcel(codeClassifyOid,false);
//    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 secDTOList 申请编码的信息,必须包含码段和分类主键的信息
//  * @param file 文件的内容
//  */
// @VciBusinessLog(operateName = "批量申请编码的信息")
// @PostMapping("/batchImportCode")
// public R batchImportCode(String secDTOList, String codeClassifyOid, MultipartFile file, HttpServletResponse response) throws Throwable {
//    CodeOrderDTO orderDTO = new CodeOrderDTO();
//    orderDTO.setCodeClassifyOid(codeClassifyOid);
//    if(StringUtils.isNotBlank(secDTOList)){
//       List<CodeOrderSecDTO> secDTOS = JSONObject.parseArray(secDTOList, CodeOrderSecDTO.class);
//       orderDTO.setSecDTOList(secDTOS);
//    }
//    String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
//    File file1 = new File(excelFileName);
//    try {
//       file.transferTo(new File(excelFileName));
//       CodeImProtRusultVO codeImProtRusultVO = mdmIOService.batchImportCode(orderDTO,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 result = R.fail("导入失败");
//       result.setData(codeImProtRusultVO);
////        result.setObj(codeImProtRusultVO);
//       return result;
//    }finally {
//       file1.delete();
//    }
// }
//
//
// /**
//  * 修改状态
//  * @param baseModelDTO 数据传输对象
//  * @return 执行结果
//  */
// @PostMapping("changeStatus")
// public R changeStatus(BaseModelDTO baseModelDTO) {
//    engineService.changeStatus(baseModelDTO);
//    return R.success("操作成功!");
// }
//
//
// /**
//  * 申请编码保存
//  * @param orderDTO 编码申请相关的信息,需要有属性和码段相关的信息
//  * @return 执行结果
//  */
// @PostMapping("/addSaveCode")
// @VciBusinessLog(operateName = "申请单个编码")
// public R addSaveCode(@RequestBody CodeOrderDTO orderDTO){
//    return R.success(engineService.addSaveCode(orderDTO));
// }
//
//
// /**
//  * 使用模板的主键获取表单的定义
//  * @param templateOid 模板的主键
//  * @param codeClassifyOid 使用模板的分类主键
//  * @return UI相关的信息(仅包含表单)
//  */
// @GetMapping("/getFormDefineByTemplateOid")
// public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid){
//    return engineService.getFormDefineByTemplateOid(templateOid,codeClassifyOid);
// }
//
// /**
//  * 相似项查询
//  * @param orderDTO 编码的相关信息
//  * @return 数据列表
//  */
// @PostMapping("/resembleQuery")
// public DataGrid<Map<String,String>> resembleQuery(@RequestBody CodeOrderDTO orderDTO){
//    return engineService.resembleQuery(orderDTO);
// }
//
// /**
//  * 修改单条主题库的数据
//  * @param orderDTO 编码申请相关的信息,不需要码段的信息
//  * @return 执行结果
//  */
// @PutMapping("/editSaveCode")
// @VciBusinessLog(operateName = "修改编码数据")
// public R editSaveCode(@RequestBody CodeOrderDTO orderDTO){
//    engineService.editSaveCode(orderDTO);
//    return  R.success("修改成功!");
// }
   /**
    * 下载批量申请的导入模板
    * @param codeClassifyOid 分类的主键
    * @param response 响应对象
    * @throws IOException 抛出异常
    */
   @GetMapping("/downloadImportExcel")
   @VciBusinessLog(operateName = "下载批量申请编码的导入模板")
   public void downloadImportExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{
      String excelName = mdmIOService.createImportExcel(codeClassifyOid,false);
      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 secDTOList 申请编码的信息,必须包含码段和分类主键的信息
    * @param file 文件的内容
    */
   @VciBusinessLog(operateName = "批量申请编码的信息")
   @PostMapping("/batchImportCode")
   public R batchImportCode(String secDTOList, String codeClassifyOid, MultipartFile file, HttpServletResponse response) throws Throwable {
      CodeOrderDTO orderDTO = new CodeOrderDTO();
      orderDTO.setCodeClassifyOid(codeClassifyOid);
      if(StringUtils.isNotBlank(secDTOList)){
         List<CodeOrderSecDTO> secDTOS = JSONObject.parseArray(secDTOList, CodeOrderSecDTO.class);
         orderDTO.setSecDTOList(secDTOS);
      }
      String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
      File file1 = new File(excelFileName);
      try {
         file.transferTo(new File(excelFileName));
         CodeImProtRusultVO codeImProtRusultVO = mdmIOService.batchImportCode(orderDTO,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 result = R.fail("导入失败");
         result.setData(codeImProtRusultVO);
//       result.setObj(codeImProtRusultVO);
         return result;
      }finally {
         file1.delete();
      }
   }
   /**
    * 修改状态
    * @param baseModelDTO 数据传输对象
    * @return 执行结果
    */
   @PostMapping("changeStatus")
   public R changeStatus(BaseModelDTO baseModelDTO) {
      engineService.changeStatus(baseModelDTO);
      return R.success("操作成功!");
   }
   /**
    * 申请编码保存
    * @param orderDTO 编码申请相关的信息,需要有属性和码段相关的信息
    * @return 执行结果
    */
   @PostMapping("/addSaveCode")
   @VciBusinessLog(operateName = "申请单个编码")
   public R addSaveCode(@RequestBody CodeOrderDTO orderDTO){
      return R.success(engineService.addSaveCode(orderDTO));
   }
}