package com.vci.web.controller;
|
|
import com.vci.constant.FrameWorkLangCodeConstant;
|
import com.vci.dto.OsAttributeDTO;
|
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.dto.OsStatusDTO;
|
import com.vci.pagemodel.OsLifeCycleVO;
|
import com.vci.pagemodel.OsStatusVO;
|
import com.vci.starter.web.util.ControllerUtil;
|
import com.vci.starter.web.util.LocalFileUtil;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.web.service.OsLifeCycleServiceI;
|
import com.vci.web.service.OsStatusServiceI;
|
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;
|
|
/**
|
* 状态的控制器
|
* @author weidy
|
* @date 2022-2-15
|
*/
|
@RestController
|
@RequestMapping("/statusController")
|
@VciBusinessLog(modelName = "对象建模-状态池")
|
public class VciOsStatusController {
|
|
/**
|
* 状态的服务
|
*/
|
@Autowired
|
private OsStatusServiceI statusService;
|
|
/**
|
* 生命周期的服务
|
*/
|
@Autowired
|
private OsLifeCycleServiceI lifeCycleService;
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 状态的列表
|
* @param queryObject 查询对象
|
* @return 显示对象
|
*/
|
@GetMapping("/gridStatus")
|
@VciBusinessLog(operateName = "查看状态列表")
|
@VciUnCheckRight
|
public BaseResult<OsStatusVO> gridStatus(BaseQueryObject queryObject){
|
try {
|
return BaseResult.dataGrid(statusService.gridStatus(queryObject.getConditionMap(),queryObject.getPageHelper()));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "属性管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 查询状态池的应用范围
|
* @param oid 状态的主键
|
* @return 使用的生命周期的对象
|
*/
|
@GetMapping("/listUsed")
|
@VciBusinessLog(operateName = "查询状态池的应用范围")
|
@VciUnCheckRight
|
public BaseResult<OsLifeCycleVO> listUsed(String oid){
|
try {
|
return BaseResult.dataGrid(lifeCycleService.listStatusUsed(oid));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "属性管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 添加状态
|
* @param statusDTO 状态的数据传输对象
|
* @return 执行结果
|
*/
|
@PostMapping("/addSave")
|
public BaseResult addSave(@RequestBody OsStatusDTO statusDTO){
|
try {
|
return statusService.addSave(statusDTO) ? BaseResult.success("添加状态成功!"):BaseResult.fail("添加状态失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "添加状态时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 修改状态
|
* @param statusDTO 状态的数据传输对象
|
* @return 执行结果
|
*/
|
@PutMapping("/editSave")
|
public BaseResult editSave(@RequestBody OsStatusDTO statusDTO){
|
try {
|
return statusService.editSave(statusDTO) ? BaseResult.success("修改状态成功!"):BaseResult.fail("修改状态失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "修改状态时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 删除状态
|
* @param osStatusDTOS 状态的DTO对象
|
* @return 执行结果
|
*/
|
@DeleteMapping("/deleteStatus")
|
public BaseResult deleteStatus(@RequestBody List<OsStatusDTO> osStatusDTOS){
|
try {
|
return statusService.deleteStatus(osStatusDTOS) ? BaseResult.success("删除状态成功!"):BaseResult.fail("删除状态失败!");
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "删除状态时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 使用主键来获取对象
|
* @param oid 主键
|
* @return 对象的信息
|
*/
|
@GetMapping("/getObjectByOid")
|
public BaseResult<OsStatusVO> getObjectByOid(String oid){
|
return BaseResult.success(statusService.getObjectByOid(oid));
|
}
|
|
/**
|
* 导出状态
|
* @param exportFileName
|
* @param statusOids
|
* @param response
|
*/
|
@GetMapping( "/exportStatus")
|
@VciBusinessLog(operateName = "导出状态")
|
public void exportStatus(String exportFileName,String statusOids, HttpServletResponse response){
|
try {
|
String excelPath = statusService.exportStatus(exportFileName,statusOids);
|
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( "/downloadStatusTemplate")
|
@VciBusinessLog(operateName = "导出状态")
|
public void downloadStatusTemplate(String exportFileName, HttpServletResponse response){
|
try {
|
String excelPath = statusService.downloadStatusTemplate(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
|
*/
|
@PostMapping("/importStatus")
|
@VciBusinessLog(operateName = "导入状态")
|
public BaseResult importStatus(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 statusService.importStatus(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();
|
}
|
}
|
|
}
|