package com.vci.web.controller;
|
|
import com.vci.constant.FrameWorkLangCodeConstant;
|
import com.vci.dto.OsEnumDTO;
|
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
|
import com.vci.starter.web.annotation.log.VciBusinessLog;
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.BaseQueryObject;
|
import com.vci.starter.web.pagemodel.BaseResult;
|
import com.vci.starter.web.pagemodel.DataGrid;
|
import com.vci.pagemodel.KeyValue;
|
import com.vci.pagemodel.OsEnumItemVO;
|
import com.vci.pagemodel.OsEnumVO;
|
import com.vci.starter.web.util.ControllerUtil;
|
import com.vci.starter.web.util.LangBaseUtil;
|
import com.vci.starter.web.util.LocalFileUtil;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.web.service.OsEnumServiceI;
|
import com.vci.web.util.Func;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
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.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* 枚举服务
|
* @author weidy
|
* @date 2021-1-10
|
*/
|
@VciBusinessLog(modelName="枚举服务")
|
@RestController
|
@RequestMapping("/webEnumController")
|
public class WebEnumController {
|
|
/**
|
* 注入枚举服务
|
*/
|
@Autowired
|
private OsEnumServiceI enumService;
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 获取枚举的下拉框
|
* @param comboxKey 枚举的名称
|
* @return 枚举的下拉值
|
*/
|
@VciBusinessLog(notStore=true,operateName="获取枚举")
|
@GetMapping("/getEnum")
|
public BaseResult<List<KeyValue>> getEnum(String comboxKey){
|
return BaseResult.success(enumService.getEnum(comboxKey));
|
}
|
|
/**
|
* 参照枚举列表
|
* @param baseQueryObject 查询条件
|
* @return 列表的内容
|
*/
|
@GetMapping( "/referDataGrid")
|
@VciBusinessLog(operateName = "参照枚举列表")
|
public DataGrid<OsEnumVO> referDataGrid(BaseQueryObject baseQueryObject){
|
return enumService.referDataGrid(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper());
|
}
|
|
/**
|
* 获取枚举的明细
|
* @param pkEnum 枚举的主键
|
* @return 枚举的选项
|
*/
|
@GetMapping("/gridEnumItemByOid")
|
@VciBusinessLog(operateName = "获取枚举的明细")
|
public DataGrid<OsEnumItemVO> gridEnumItemByOid(String pkEnum){
|
return enumService.gridEnumItemByOid(pkEnum);
|
}
|
|
/**
|
* 获取数据的密级
|
* @param oid 主键
|
* @param btmname 业务类型
|
* @return 这个数据包含的密级的信息
|
*/
|
@VciBusinessLog(notStore = true,operateName = "获取数据的密级的下拉框")
|
@GetMapping("/getDataEnum")
|
public BaseResult<List<KeyValue>> getDataEnum(String oid,String btmname){
|
return BaseResult.success(enumService.getDataEnum(oid,btmname));
|
}
|
|
/**
|
* 根据枚举类型获取枚举
|
* @param enumType 查询条件name
|
* @return 列表的内容
|
*/
|
@GetMapping( "/getEnumMapByType")
|
@VciBusinessLog(operateName = "枚举列表")
|
public BaseResult getEnumMapByType(String enumType) {
|
try {
|
return BaseResult.dataList(enumService.getEnumMapByType(enumType));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "枚举管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 枚举列表
|
* @param enumName 查询条件name
|
* @return 列表的内容
|
*/
|
@GetMapping( "/getEnumTypeList")
|
@VciBusinessLog(operateName = "枚举列表")
|
public BaseResult<List<OsEnumVO>> getEnumTypeList(String enumName) {
|
try {
|
return BaseResult.dataList(enumService.getEnumTypeList(enumName));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "枚举管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 添加单条枚举
|
* @param osEnumDTO
|
* @return 列表的内容
|
*/
|
@PostMapping( "/addEnumType")
|
@VciBusinessLog(operateName = "添加枚举")
|
public BaseResult addEnumType(@RequestBody OsEnumDTO osEnumDTO) {
|
try {
|
return enumService.addEnumType(osEnumDTO) ? BaseResult.success("枚举类型添加成功!"):BaseResult.fail("枚举类型添加失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "增加枚举类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 修改单条枚举(带修改枚举项功能)
|
* @param osEnumDTO
|
* @return 列表的内容
|
*/
|
@PutMapping( "/updateEnumType")
|
@VciBusinessLog(operateName = "修改枚举")
|
public BaseResult updateEnumType(@RequestBody OsEnumDTO osEnumDTO) {
|
try {
|
return enumService.updateEnumType(osEnumDTO) ? BaseResult.success("枚举类型修改成功!"):BaseResult.fail("枚举类型修改失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "修改枚举类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 删除枚举
|
* @param osEnumDTOS
|
* @return 列表的内容
|
*/
|
@DeleteMapping( "/deleteEnumTypes")
|
@VciBusinessLog(operateName = "删除枚举")
|
public BaseResult deleteEnumTypes(@RequestBody List<OsEnumDTO> osEnumDTOS) {
|
try {
|
return enumService.deleteEnumTypes(osEnumDTOS) ? BaseResult.success("枚举类型删除成功!"):BaseResult.fail("枚举类型删除失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "删除枚举类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 查看枚举的使用范围
|
* @param enumName 枚举名称
|
* @return map对象
|
*/
|
@GetMapping( "/getUsedEnumList")
|
@VciBusinessLog(operateName = "查看枚举的使用范围")
|
public BaseResult getUsedEnumList(String enumName) {
|
try {
|
return BaseResult.dataList(enumService.getUsedEnumList(enumName));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "获取枚举的使用范围时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 导出选中的枚举类型
|
* @param exportFileName 导出的文件名
|
* @param enumNames 需要导出的枚举名称
|
* @param response
|
*/
|
@GetMapping( "/exportEnumTypes")
|
@VciBusinessLog(operateName = "导出枚举类型")
|
public void exportEnumTypes(String exportFileName,String enumNames, HttpServletResponse response){
|
try {
|
String excelPath = enumService.exportEnumTypes(exportFileName,enumNames,false);
|
ControllerUtil.writeFileToResponse(response,excelPath);
|
} catch (Exception e) {
|
String msg = "导出枚举时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
try {
|
//出错时
|
e.printStackTrace();
|
ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null);
|
} catch (IOException ioException) {
|
ioException.printStackTrace();
|
}
|
}
|
}
|
|
/**
|
* 下载导入模板
|
* @param exportFileName
|
* @param response
|
*/
|
@GetMapping( "/downloadEnumTemplate")
|
@VciBusinessLog(operateName = "导出枚举类型")
|
public void downloadEnumTemplate(String exportFileName, HttpServletResponse response){
|
try {
|
String excelPath = enumService.downloadEnumTemplate(exportFileName);
|
ControllerUtil.writeFileToResponse(response,excelPath);
|
} catch (Exception e) {
|
String msg = "下载枚举导入模板时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
try {
|
//出错时
|
e.printStackTrace();
|
ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null);
|
} catch (IOException ioException) {
|
ioException.printStackTrace();
|
}
|
}
|
}
|
|
/**
|
* 导入枚举
|
* @param file
|
* @return
|
*/
|
@RequestMapping(value = "/importEnumTypes",method = RequestMethod.POST)
|
public BaseResult importEnumTypes(MultipartFile file){
|
String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
|
File file1 = new File(excelFileName);
|
try {
|
file.transferTo(new File(excelFileName));
|
if (file != null) {
|
return enumService.importEnumTypes(file1);
|
} else {
|
return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"无导入的文件"});
|
}
|
}catch (Throwable e) {
|
throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e);
|
}finally {
|
file1.delete();
|
}
|
}
|
|
}
|