package com.vci.ubcs.code.controller;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.nacos.common.utils.StringUtils;
|
import com.vci.ubcs.code.dto.CodeOrderDTO;
|
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
|
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
|
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.starter.annotation.VciBusinessLog;
|
import com.vci.ubcs.starter.util.LocalFileUtil;
|
import com.vci.ubcs.starter.web.util.ControllerUtil;
|
import com.vci.ubcs.starter.web.util.LangBaseUtil;
|
import io.swagger.annotations.Api;
|
import lombok.AllArgsConstructor;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springblade.core.tool.api.R;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.io.IOException;
|
import java.nio.charset.StandardCharsets;
|
import java.util.List;
|
|
@RestController
|
//@AllArgsConstructor
|
@RequestMapping("/mdmEngineController")
|
@Api(value = "编码数据管理", tags = "编码数据管理")
|
public class MdmEngineController {
|
|
// /**
|
// * 日志
|
// */
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
/**
|
* 主数据引擎服务
|
*/
|
@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));
|
}
|
}
|