SMT-ERP 项目初始提交
This commit is contained in:
@@ -0,0 +1,370 @@
|
||||
package com.reallin.smt.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.reallin.smt.base.BaseController;
|
||||
import com.reallin.smt.base.TableDataInfo;
|
||||
import com.reallin.smt.datasource.entities.SystemConfig;
|
||||
import com.reallin.smt.service.SystemConfigService;
|
||||
import com.reallin.smt.utils.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.HandlerMapping;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reallin.smt.utils.ResponseJsonUtil.returnJson;
|
||||
import static com.reallin.smt.utils.ResponseJsonUtil.returnStr;
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @Author: jishenghua
|
||||
* @Date: 2021-3-13 0:01
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping(value = "/systemConfig")
|
||||
@Api(tags = {"系统参数"})
|
||||
public class SystemConfigController extends BaseController {
|
||||
private Logger logger = LoggerFactory.getLogger(SystemConfigController.class);
|
||||
|
||||
@Resource
|
||||
private SystemConfigService systemConfigService;
|
||||
|
||||
@Value(value="${file.uploadType}")
|
||||
private Long fileUploadType;
|
||||
|
||||
@Value(value="${file.path}")
|
||||
private String filePath;
|
||||
|
||||
@Value(value="${spring.servlet.multipart.max-file-size}")
|
||||
private Long maxFileSize;
|
||||
|
||||
@Value(value="${spring.servlet.multipart.max-request-size}")
|
||||
private Long maxRequestSize;
|
||||
|
||||
@GetMapping(value = "/info")
|
||||
@ApiOperation(value = "根据id获取信息")
|
||||
public String getList(@RequestParam("id") Long id,
|
||||
HttpServletRequest request) throws Exception {
|
||||
SystemConfig systemConfig = systemConfigService.getSystemConfig(id);
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
if(systemConfig != null) {
|
||||
objectMap.put("info", systemConfig);
|
||||
return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
|
||||
} else {
|
||||
return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping(value = "/list")
|
||||
@ApiOperation(value = "获取信息列表")
|
||||
public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search,
|
||||
HttpServletRequest request)throws Exception {
|
||||
String companyName = StringUtil.getInfo(search, "companyName");
|
||||
List<SystemConfig> list = systemConfigService.select(companyName);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PostMapping(value = "/add")
|
||||
@ApiOperation(value = "新增")
|
||||
public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception {
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
int insert = systemConfigService.insertSystemConfig(obj, request);
|
||||
return returnStr(objectMap, insert);
|
||||
}
|
||||
|
||||
@PutMapping(value = "/update")
|
||||
@ApiOperation(value = "修改")
|
||||
public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception {
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
int update = systemConfigService.updateSystemConfig(obj, request);
|
||||
return returnStr(objectMap, update);
|
||||
}
|
||||
|
||||
@DeleteMapping(value = "/delete")
|
||||
@ApiOperation(value = "删除")
|
||||
public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception {
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
int delete = systemConfigService.deleteSystemConfig(id, request);
|
||||
return returnStr(objectMap, delete);
|
||||
}
|
||||
|
||||
@DeleteMapping(value = "/deleteBatch")
|
||||
@ApiOperation(value = "批量删除")
|
||||
public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception {
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
int delete = systemConfigService.batchDeleteSystemConfig(ids, request);
|
||||
return returnStr(objectMap, delete);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/checkIsNameExist")
|
||||
@ApiOperation(value = "检查名称是否存在")
|
||||
public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name,
|
||||
HttpServletRequest request)throws Exception {
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
int exist = systemConfigService.checkIsNameExist(id, name);
|
||||
if(exist > 0) {
|
||||
objectMap.put("status", true);
|
||||
} else {
|
||||
objectMap.put("status", false);
|
||||
}
|
||||
return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前租户的配置信息
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getCurrentInfo")
|
||||
@ApiOperation(value = "获取当前租户的配置信息")
|
||||
public BaseResponseInfo getCurrentInfo(HttpServletRequest request) throws Exception {
|
||||
BaseResponseInfo res = new BaseResponseInfo();
|
||||
try{
|
||||
List<SystemConfig> list = systemConfigService.getSystemConfig();
|
||||
res.code = 200;
|
||||
if(list.size()>0) {
|
||||
res.data = list.get(0);
|
||||
}
|
||||
} catch(Exception e){
|
||||
logger.error(e.getMessage(), e);
|
||||
res.code = 500;
|
||||
res.data = "获取数据失败";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件大小限制
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@GetMapping(value = "/fileSizeLimit")
|
||||
@ApiOperation(value = "获取文件大小限制")
|
||||
public BaseResponseInfo fileSizeLimit(HttpServletRequest request) throws Exception {
|
||||
BaseResponseInfo res = new BaseResponseInfo();
|
||||
try{
|
||||
Long limit = 0L;
|
||||
if(maxFileSize<maxRequestSize) {
|
||||
limit = maxFileSize;
|
||||
} else {
|
||||
limit = maxRequestSize;
|
||||
}
|
||||
res.code = 200;
|
||||
res.data = limit;
|
||||
} catch(Exception e){
|
||||
logger.error(e.getMessage(), e);
|
||||
res.code = 500;
|
||||
res.data = "获取数据失败";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传统一方法
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/upload")
|
||||
@ApiOperation(value = "文件上传统一方法")
|
||||
public BaseResponseInfo upload(HttpServletRequest request, HttpServletResponse response) {
|
||||
BaseResponseInfo res = new BaseResponseInfo();
|
||||
try {
|
||||
String savePath = "";
|
||||
String bizPath = request.getParameter("biz");
|
||||
if ("bill".equals(bizPath) || "financial".equals(bizPath) || "material".equals(bizPath)) {
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
MultipartFile file = multipartRequest.getFile("file");// 获取上传文件对象
|
||||
if(fileUploadType == 1) {
|
||||
savePath = systemConfigService.uploadLocal(file, bizPath, request);
|
||||
} else if(fileUploadType == 2) {
|
||||
savePath = systemConfigService.uploadAliOss(file, bizPath, request);
|
||||
}
|
||||
if(StringUtil.isNotEmpty(savePath)){
|
||||
res.code = 200;
|
||||
res.data = savePath;
|
||||
}else {
|
||||
res.code = 500;
|
||||
res.data = "上传失败!";
|
||||
}
|
||||
} else {
|
||||
res.code = 505;
|
||||
res.data = "文件分类错误!";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
res.code = 500;
|
||||
res.data = "上传失败!";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览图片&下载文件
|
||||
* 请求地址:http://localhost:8080/common/static/{financial/afsdfasdfasdf_1547866868179.txt}
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
*/
|
||||
@GetMapping(value = "/static/**")
|
||||
@ApiOperation(value = "预览图片&下载文件")
|
||||
public void view(HttpServletRequest request, HttpServletResponse response) {
|
||||
// ISO-8859-1 ==> UTF-8 进行编码转换
|
||||
String imgPath = extractPathFromPattern(request);
|
||||
if(StringUtil.isEmpty(imgPath) || imgPath=="null"){
|
||||
return;
|
||||
}
|
||||
// 其余处理略
|
||||
InputStream inputStream = null;
|
||||
OutputStream outputStream = null;
|
||||
try {
|
||||
imgPath = imgPath.replace("..", "");
|
||||
if (imgPath.endsWith(",")) {
|
||||
imgPath = imgPath.substring(0, imgPath.length() - 1);
|
||||
}
|
||||
String fileUrl = "";
|
||||
if(fileUploadType == 1) {
|
||||
fileUrl = systemConfigService.getFileUrlLocal(imgPath);
|
||||
inputStream = new BufferedInputStream(new FileInputStream(fileUrl));
|
||||
} else if(fileUploadType == 2) {
|
||||
fileUrl = systemConfigService.getFileUrlAliOss(imgPath);
|
||||
URL url = new URL(fileUrl);
|
||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||
conn.setRequestMethod("GET");
|
||||
conn.setConnectTimeout(5 * 1000);
|
||||
inputStream = conn.getInputStream();// 通过输入流获取图片数据
|
||||
}
|
||||
outputStream = response.getOutputStream();
|
||||
byte[] buf = new byte[1024];
|
||||
int len;
|
||||
while ((len = inputStream.read(buf)) > 0) {
|
||||
outputStream.write(buf, 0, len);
|
||||
}
|
||||
response.flushBuffer();
|
||||
} catch (IOException e) {
|
||||
logger.error("预览文件失败" + e.getMessage());
|
||||
response.setStatus(404);
|
||||
logger.error(e.getMessage(), e);
|
||||
} catch (Exception e) {
|
||||
response.setStatus(404);
|
||||
logger.error(e.getMessage(), e);
|
||||
} finally {
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
if (outputStream != null) {
|
||||
try {
|
||||
outputStream.close();
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览缩略图&下载文件
|
||||
* @param request
|
||||
* @param response
|
||||
*/
|
||||
@GetMapping(value = "/static/mini/**")
|
||||
@ApiOperation(value = "预览缩略图&下载文件")
|
||||
public void viewMini(HttpServletRequest request, HttpServletResponse response) {
|
||||
// ISO-8859-1 ==> UTF-8 进行编码转换
|
||||
String imgPath = extractPathFromPattern(request);
|
||||
if(StringUtil.isEmpty(imgPath) || imgPath=="null"){
|
||||
return;
|
||||
}
|
||||
InputStream inputStream = null;
|
||||
OutputStream outputStream = null;
|
||||
try {
|
||||
imgPath = imgPath.replace("..", "");
|
||||
if (imgPath.endsWith(",")) {
|
||||
imgPath = imgPath.substring(0, imgPath.length() - 1);
|
||||
}
|
||||
String fileUrl = "";
|
||||
if(fileUploadType == 1) {
|
||||
fileUrl = systemConfigService.getFileUrlLocal(imgPath);
|
||||
inputStream = new BufferedInputStream(new FileInputStream(fileUrl));
|
||||
} else if(fileUploadType == 2) {
|
||||
fileUrl = systemConfigService.getFileUrlAliOss(imgPath);
|
||||
URL url = new URL(fileUrl);
|
||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||
conn.setRequestMethod("GET");
|
||||
conn.setConnectTimeout(5 * 1000);
|
||||
inputStream = conn.getInputStream();// 通过输入流获取图片数据
|
||||
}
|
||||
int index = fileUrl.lastIndexOf(".");
|
||||
String ext = fileUrl.substring(index + 1);
|
||||
BufferedImage image = systemConfigService.getImageMini(inputStream, 80);
|
||||
outputStream = response.getOutputStream();
|
||||
ImageIO.write(image, ext, outputStream);
|
||||
response.flushBuffer();
|
||||
} catch (Exception e) {
|
||||
response.setStatus(404);
|
||||
logger.error(e.getMessage(), e);
|
||||
} finally {
|
||||
if (outputStream != null) {
|
||||
try {
|
||||
outputStream.close();
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Excel导出统一接口
|
||||
* @param response
|
||||
*/
|
||||
@PostMapping(value = "/exportExcelByParam")
|
||||
@ApiOperation(value = "生成excel表格")
|
||||
public void exportExcelByParam(@RequestBody JSONObject jsonObject,
|
||||
HttpServletResponse response) {
|
||||
try {
|
||||
String title = jsonObject.getString("title");
|
||||
String head = jsonObject.getString("head");
|
||||
String tip = jsonObject.getString("tip");
|
||||
JSONArray arr = jsonObject.getJSONArray("list");
|
||||
systemConfigService.exportExcelByParam(title, head, tip, arr, response);
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 把指定URL后的字符串全部截断当成参数
|
||||
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
private static String extractPathFromPattern(final HttpServletRequest request) {
|
||||
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
|
||||
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
|
||||
return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user