文档库--列表,文件上传

This commit is contained in:
zhn
2022-02-14 16:43:48 +08:00
parent d2d9fe50c1
commit fa1f3f3d5f
12 changed files with 585 additions and 401 deletions
@@ -1,11 +1,14 @@
package com.jero.modules.oss.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.system.base.entity.JeroEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.jero.common.system.base.entity.JeroEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.Date;
@Data
@TableName("oss_file")
@@ -15,10 +18,30 @@ public class OSSFile extends JeroEntity {
private static final long serialVersionUID = 1L;
@Excel(name = "文件名称")
@ApiModelProperty(value = "文件名称")
private String fileName;
@Excel(name = "文件地址")
@ApiModelProperty(value = "文件路径")
private String url;
@ApiModelProperty(value = "关联ID")
private String connectId;
@ApiModelProperty(value = "创建人登录名称")
private String createBy;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "创建日期")
private Date createTime;
@ApiModelProperty(value = "更新人登录名称")
private String updateBy;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
}
@@ -1,6 +1,7 @@
package com.jero.modules.oss.service;
import java.io.IOException;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.oss.entity.OSSFile;
@@ -9,7 +10,21 @@ import org.springframework.web.multipart.MultipartFile;
public interface IOSSFileService extends IService<OSSFile> {
void upload(MultipartFile multipartFile) throws IOException;
/**
* 本地文件上传
*
* @param mf 文件
* @param bizPath 自定义路径
* @return
*/
public OSSFile uploadLocal(MultipartFile mf, String bizPath);
boolean delete(OSSFile ossFile);
/**
* 批量修改
* @param ossFileList
*/
void updateFileInfo(List<OSSFile> ossFileList);
}
@@ -1,19 +1,33 @@
package com.jero.modules.oss.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.CommonUtils;
import com.jero.common.util.oConvertUtils;
import com.jero.common.util.oss.OssBootUtil;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.mapper.OSSFileMapper;
import com.jero.modules.oss.service.IOSSFileService;
import me.zhyd.oauth.utils.UuidUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
@Service("ossFileService")
public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> implements IOSSFileService {
@Value(value = "${jero.path.upload}")
private String uploadpath;
@Override
public void upload(MultipartFile multipartFile) throws IOException {
String fileName = multipartFile.getOriginalFilename();
@@ -27,6 +41,83 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
//update-end--Author:scott Date:20201227 forJT-361【文件预览】阿里云原生域名可以文件预览,自己映射域名kkfileview提示文件下载失败-------------------
this.save(ossFile);
}
/**
* 本地文件上传
*
* @param mf 文件
* @param bizPath 自定义路径
* @return
*/
@Override
public OSSFile uploadLocal(MultipartFile mf, String bizPath) {
//处理文件大小,大于100M抛出异常
long fileSize = mf.getSize() / 1024 / 1024;
String originalFilename = mf.getOriginalFilename();
if (fileSize >= 100) {
throw new JeroBootException(originalFilename + "文件大小超出100MB限制, 请压缩或降低文件质量!");
}
OSSFile oSSFile = new OSSFile();
try {
String ctxPath = uploadpath;
String fileName = null;
String fileType = null;
File file = new File(ctxPath + File.separator + bizPath + File.separator);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
String orgName = mf.getOriginalFilename();// 获取文件名
orgName = CommonUtils.getFileName(orgName);
if (orgName.indexOf(".") != -1) {
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf("."));
} else {
fileName = orgName + "_" + System.currentTimeMillis();
}
fileType = orgName.substring(orgName.lastIndexOf("."));
//判断文件类型
if (StringUtils.isNotEmpty(fileType)) {
String[] fileTypeArr = {".doc", ".docx", ".xls", ".xlsx", ".pdf", ".png", ".jfif", ".pjpeg", ".jpeg", ".pjp", ".jpg", ".swf", ".bmp",".rar",".zip"};
boolean flag = true;
for (String fileTypeTemp : fileTypeArr) {
if (fileTypeTemp.equalsIgnoreCase(fileType)) {
flag = false;
}
}
if (flag) {
throw new JeroBootException("只能够上传Word、Excel、PDF、静态图片类型的文件。请重新选择文件!");
}
}
String savePath = file.getPath() + File.separator + fileName;
File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile);
String dbpath = null;
if (oConvertUtils.isNotEmpty(bizPath)) {
dbpath = bizPath + File.separator + fileName;
} else {
dbpath = fileName;
}
if (dbpath.contains("\\")) {
dbpath = dbpath.replace("\\", "/");
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//存入文件表
oSSFile.setFileName(orgName);
oSSFile.setId(UuidUtils.getUUID());
oSSFile.setUrl(file.getPath());
oSSFile.setCreateBy(loginUser.getUsername());
oSSFile.setCreateTime(new Date());
this.save(oSSFile);
return oSSFile;
} catch (IOException e) {
log.error(e.getMessage(), e);
}
return oSSFile;
}
@Override
public boolean delete(OSSFile ossFile) {
@@ -40,4 +131,9 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
return true;
}
@Override
public void updateFileInfo(List<OSSFile> ossFileList) {
this.updateBatchById(ossFileList);
}
}
@@ -72,50 +72,82 @@ public class CommonController {
return Result.error("没有权限,请联系管理员授权");
}
// /**
// * 文件上传统一方法
// * @param request
// * @param response
// * @return
// */
// @PostMapping(value = "/upload")
// public Result<OSSFile> upload(HttpServletRequest request, HttpServletResponse response) {
// Result<OSSFile> result = new Result<>();
// String savePath = "";
// String bizPath = request.getParameter("biz");
// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// // 获取上传文件对象
// MultipartFile file = multipartRequest.getFile("file");
// // 文件类型是否处于黑名单
// if(CommonUtils.limitFileSuffix(file.getOriginalFilename(),fileSuffixLimits)){
// result.setMessage("该文件类型不允许上传");
// result.setSuccess(false);
// result.setCode(0);
// return result;
// }
// if(oConvertUtils.isEmpty(bizPath)){
// bizPath = "";
// }
// if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){
// // 本地上传
// savePath = CommonUtils.uploadLocal(file,bizPath,uploadpath);
// }else{
// // minio上传
// savePath = CommonUtils.upload(file, bizPath, uploadType);
// }
// if(oConvertUtils.isNotEmpty(savePath)){
// //上传成功 进行数据库存储
// OSSFile ossFile = new OSSFile();
// // 文件名
// String fileName = file.getOriginalFilename();
// fileName = CommonUtils.getFileName(fileName);
// ossFile.setFileName(fileName);
// ossFile.setUrl(savePath);
// ossFileService.save(ossFile);
// result.setMessage(savePath);
// result.setResult(ossFile);
// result.setSuccess(true);
// }else {
// result.setMessage("上传失败!");
// result.setSuccess(false);
// }
// return result;
// }
/**
* 文件上传统一方法
*
* @param request
* @param response
* @return
*/
@PostMapping(value = "/upload")
public Result<OSSFile> upload(HttpServletRequest request, HttpServletResponse response) {
public Result<?> upload(HttpServletRequest request, HttpServletResponse response) {
Result<OSSFile> result = new Result<>();
String savePath = "";
String bizPath = request.getParameter("biz");
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获取上传文件对象
MultipartFile file = multipartRequest.getFile("file");
// 文件类型是否处于黑名单
if(CommonUtils.limitFileSuffix(file.getOriginalFilename(),fileSuffixLimits)){
result.setMessage("该文件类型不允许上传");
result.setSuccess(false);
result.setCode(0);
return result;
}
if(oConvertUtils.isEmpty(bizPath)){
MultipartFile file = multipartRequest.getFile("file");// 获取上传文件对象
if (oConvertUtils.isEmpty(bizPath)) {
if (CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)) {
//未指定目录,则用阿里云默认目录 upload
bizPath = "upload";
} else {
bizPath = "";
}
}
if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){
// 本地上传
savePath = CommonUtils.uploadLocal(file,bizPath,uploadpath);
}else{
// minio上传
savePath = CommonUtils.upload(file, bizPath, uploadType);
}
if(oConvertUtils.isNotEmpty(savePath)){
//上传成功 进行数据库存储
OSSFile ossFile = new OSSFile();
// 文件名
String fileName = file.getOriginalFilename();
fileName = CommonUtils.getFileName(fileName);
ossFile.setFileName(fileName);
ossFile.setUrl(savePath);
ossFileService.save(ossFile);
result.setMessage(savePath);
result.setResult(ossFile);
OSSFile oSSFile = ossFileService.uploadLocal(file, bizPath);
if (oConvertUtils.isNotEmpty(oSSFile)) {
result.setResult(oSSFile);
result.setSuccess(true);
}else {
} else {
result.setMessage("上传失败!");
result.setSuccess(false);
}
+35 -1
View File
@@ -47,6 +47,40 @@
<artifactId>jero-boot-base-generater</artifactId>
<version>${jero.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier>
<!-- jdk版本 -->
</dependency>
</dependencies>
</project>
</project>
@@ -1,5 +1,6 @@
package com.jero.modules.document.controller;
import cn.hutool.json.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import net.sf.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -67,9 +69,12 @@ public class BussDocumentLibraryEOController extends JeroController<BussDocument
@AutoLog(value = "分页查询")
@ApiOperation(value="分页查询", notes="分页查询")
@GetMapping(value = "/queryPageInfo")
public Result<?> queryPageInfo(@RequestParam(name="parameter",required=false) Map<String,Object> parameter) {
bussDocumentLibraryEOService.getInfoPage(parameter);
return Result.OK();
@ResponseBody
public JSONObject queryPageInfo(@RequestParam(name="parameter",required=false) Map<String,Object> parameter) {
IPage infoPage = bussDocumentLibraryEOService.getInfoPage(parameter);
Result<IPage> ok = Result.OK(infoPage);
JSONObject jsonResult = JSONObject.fromObject(ok);
return jsonResult;
}
/**
@@ -17,7 +17,8 @@ public interface BussDocumentLibraryEOMapper extends BaseMapper<BussDocumentLibr
int insertInfo(@Param("insertField") String insertField,
@Param("insertValue") String insertValue);
IPage getInfoPage(@Param("page") Page page,
IPage getInfoPage(@Param("page") IPage page,
@Param("field") String field,
@Param("condition") String condition);
@@ -40,8 +40,8 @@
values (${insertValue})
</insert>
<select id="getInfoPage" resultType="com.baomidou.mybatisplus.core.metadata.IPage">
select * from buss_document_library
<select id="getInfoPage" resultType="java.util.LinkedHashMap">
select ${field} from buss_document_library
${condition}
</select>
@@ -1,5 +1,6 @@
package com.jero.modules.document.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
@@ -85,7 +86,7 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
*/
void updateInfo(Map<String,Object> map);
void getInfoPage(Map<String,Object> parameter);
IPage getInfoPage(Map<String,Object> parameter);
}
@@ -13,6 +13,8 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.tag.entity.OnlCgformArea;
import com.jero.modules.tag.service.impl.OnlCgformAreaServiceImpl;
import org.apache.commons.lang3.ObjectUtils;
@@ -22,162 +24,173 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* @Description: 文档库信息表
* @Author: jero-boot
* @Date: 2022-01-21
* @Date: 2022-01-21
* @Version: V1.0
*/
@Service
public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLibraryEOMapper, BussDocumentLibraryEO> implements IBussDocumentLibraryEOService {
@Autowired
private OnlCgformFieldServiceImpl onlCgformFieldService;
@Autowired
private OnlCgformAreaServiceImpl onlCgformAreaServiceImpl;
@Autowired
private BussDocumentLibraryEOMapper bussDocumentLibraryEOMapper;
@Autowired
private OnlCgformFieldServiceImpl onlCgformFieldService;
@Autowired
private OnlCgformAreaServiceImpl onlCgformAreaServiceImpl;
@Autowired
private BussDocumentLibraryEOMapper bussDocumentLibraryEOMapper;
@Autowired
private IOSSFileService iOSSFileService;
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public BussDocumentLibraryEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
* 列表查询
*
* @return
*/
@Override
public List<BussDocumentLibraryEO> queryList() {
return list();
}
/**
* 查询条件
* @return
*/
@Override
public List<Map<String, Object>> queryCondition(String flag) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if(fieldList.size() != 0){
//过滤出搜索条件()
fieldList = fieldList.stream().filter(e-> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsQuery()))).collect(Collectors.toList());
}
List<Map<String,Object>> list = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
Map<String,Object> map = new HashMap<>();
map.put("field_show_type",onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
map.put("dict_field",onlCgformField.getDictField());
map.put("db_field_name",onlCgformField.getDbFieldName());//字段
map.put("db_field_txt",onlCgformField.getDbFieldTxt());//字段中文名
map.put("db_field_en_name",onlCgformField.getDbFieldEnName());//字段文名
list.add(map);
}
return list;
}
/**
* 查询条件
*
* @return
*/
@Override
public List<Map<String, Object>> queryCondition(String flag) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if (fieldList.size() != 0) {
//过滤出搜索条件()
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsQuery()))).collect(Collectors.toList());
}
List<Map<String, Object>> list = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
Map<String, Object> map = new HashMap<>();
map.put("field_show_type", onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
map.put("dict_field", onlCgformField.getDictField());
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段文名
map.put("db_field_en_name", onlCgformField.getDbFieldEnName());//字段英文名
list.add(map);
}
return list;
}
/**
* 列表表头
* @return
*/
@Override
public List<Map<String, Object>> getHeader(String flag) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if(fieldList.size() != 0){
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
fieldList = fieldList.stream().filter(e-> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
}
List<Map<String,Object>> list = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
Map<String,Object> map = new HashMap<>();
map.put("db_field_name",onlCgformField.getDbFieldName());//字段
map.put("db_field_txt",onlCgformField.getDbFieldTxt());//字段中文名
map.put("db_field_en_name",onlCgformField.getDbFieldEnName());//字段文名
list.add(map);
}
return list;
}
/**
* 列表表头
*
* @return
*/
@Override
public List<Map<String, Object>> getHeader(String flag) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if (fieldList.size() != 0) {
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
}
List<Map<String, Object>> list = new ArrayList<>();
for (OnlCgformField onlCgformField : fieldList) {
Map<String, Object> map = new HashMap<>();
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段文名
map.put("db_field_en_name", onlCgformField.getDbFieldEnName());//字段英文名
list.add(map);
}
return list;
}
/**
* 新增表单
* @return
*/
@Override
public List<Map<String,Object>> getAddForm(String flag) {
OnlCgformArea onlCgformArea = new OnlCgformArea();
onlCgformArea.setIsModel(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//区域管理
List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList(onlCgformArea);
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
/**
* 新增表单
*
* @return
*/
@Override
public List<Map<String, Object>> getAddForm(String flag) {
OnlCgformArea onlCgformArea = new OnlCgformArea();
onlCgformArea.setIsModel(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//区域管理
List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList(onlCgformArea);
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if(fieldList.size() != 0){
//过滤出表单字段(is_show_form-->表单是否显示0否 1是)
fieldList = fieldList.stream().filter(e-> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))).collect(Collectors.toList());
}
List<Map<String,Object>> result = new ArrayList<>();
for (OnlCgformArea onlCgformAreaTemp : areaList) {
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e->onlCgformAreaTemp.getSort().toString().equals(e.getShowArea())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldListTemp) {
Map<String,Object> map = new HashMap<>();
map.put("field_show_type",onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
map.put("dict_field",onlCgformField.getDictField());
map.put("db_field_name",onlCgformField.getDbFieldName());//字段
map.put("db_field_txt",onlCgformField.getDbFieldTxt());//字段中文名
map.put("db_field_en_name",onlCgformField.getDbFieldEnName());//字段英文名
map.put("area",onlCgformAreaTemp.getShowArea());//区域
map.put("field_must_input",onlCgformField.getFieldMustInput());//区域
result.add(map);
}
}
return result;
}
if (fieldList.size() != 0) {
//过滤出表单字段(is_show_form-->表单是否显示0否 1是)
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowForm()))).collect(Collectors.toList());
}
List<Map<String, Object>> result = new ArrayList<>();
for (OnlCgformArea onlCgformAreaTemp : areaList) {
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getSort().toString().equals(e.getShowArea())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldListTemp) {
Map<String, Object> map = new HashMap<>();
map.put("field_show_type", onlCgformField.getFieldShowType());//类型(判断是下拉还是输入框,等等)
map.put("dict_field", onlCgformField.getDictField());
map.put("db_field_name", onlCgformField.getDbFieldName());//字段
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名
map.put("db_field_en_name", onlCgformField.getDbFieldEnName());//字段英文名
map.put("area", onlCgformAreaTemp.getShowArea());//区域
map.put("field_must_input", onlCgformField.getFieldMustInput());//区域
result.add(map);
}
}
return result;
}
/**
* 详情,编辑数据查询
* @param id
* @return
*/
@Override
public List<Map<String,Object>> getDocumentInfoById(String id) {
LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BussDocumentLibraryEO::getId,id);
//通过id查询数据
List<Map<String, Object>> dateList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
return dateList;
/**
* 详情,编辑数据查询
*
* @param id
* @return
*/
@Override
public List<Map<String, Object>> getDocumentInfoById(String id) {
LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BussDocumentLibraryEO::getId, id);
//通过id查询数据
List<Map<String, Object>> dateList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
return dateList;
// //区域管理
// List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList();
// //字段属性
@@ -208,275 +221,238 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
// result.add(map);
// }
// }
}
}
/**
* 新增数据
* @param map
*/
public void addInfo(Map<String,Object> map){
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//时间类型字段
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e->"Date".equals(e.getDbType())).collect(Collectors.toList());
//文件类型字段
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e->"file".equals(e.getFieldShowType())).collect(Collectors.toList());
//以下3行代码为测试数据(暂时保留)
/**
* 新增数据
*
* @param map
*/
public void addInfo(Map<String, Object> map) {
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//时间类型字段
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> "Date".equals(e.getDbType())).collect(Collectors.toList());
//文件类型字段
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
//以下3行代码为测试数据(暂时保留)
// LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(BussDocumentLibraryEO::getId,"1");
// List<Map<String, Object>> dateList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
String mustValues = getMustValues();
//字段
StringBuilder fieldsBuilder = new StringBuilder();
//数据值
StringBuilder valuesBuilder = new StringBuilder();
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
String mustValues = getMustValues();
//字段
StringBuilder fieldsBuilder = new StringBuilder();
//数据值
StringBuilder valuesBuilder = new StringBuilder();
// for (Map.Entry<String, Object> entry : dateList.get(0).entrySet()) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
List<OnlCgformField> fieldDate = fieldDateList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//处理发布日期,标准实施日期
//以下注释代码为测试数据(暂时保留)
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
List<OnlCgformField> fieldDate = fieldDateList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//处理发布日期,标准实施日期
//以下注释代码为测试数据(暂时保留)
// if(!"id".equals(key)
// &&!"create_by".equals(key)
// &&!"create_time".equals(key)
// &&!"update_by".equals(key)
// &&!"update_time".equals(key)
// &&!"sys_org_code".equals(key)){
if("issue_time".equals(key) || "implement_time".equals(key)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(ObjectUtils.isNotEmpty(value)){
value = "str_to_date('" + sdf.format(value) + "','%Y-%m-%d %H:%i:%s')";
}
valuesBuilder.append("," + value);
}else{
valuesBuilder.append("," + "'" + value + "'");
}
fieldsBuilder.append("," + key);
if ("issue_time".equals(key) || "implement_time".equals(key)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (ObjectUtils.isNotEmpty(value)) {
value = "str_to_date('" + sdf.format(value) + "','%Y-%m-%d %H:%i:%s')";
}
valuesBuilder.append("," + value);
} else {
//处理文件类型
List<OnlCgformField> fieldFile = fieldFileList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
if (fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)) {
String valueTemp = UUID.randomUUID().toString().replace("-", "");
value = valueTemp;
//修改文件表关联信息connect_id
List<OSSFile> oSSFileList = new ArrayList<>();
for (String fileId : value.toString().split(",")) {
OSSFile ossFile = new OSSFile();
ossFile.setId(fileId);
ossFile.setConnectId(valueTemp);
oSSFileList.add(ossFile);
}
iOSSFileService.updateFileInfo(oSSFileList);
}
valuesBuilder.append("," + "'" + value + "'");
}
fieldsBuilder.append("," + key);
// }
}
String insertField = mustFields + fieldsBuilder.toString();
String insertValue = mustValues + valuesBuilder.toString();
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
}
//处理文件类型
List<OnlCgformField> fieldFile = fieldFileList.stream().filter(e->entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
if(fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)){
String valueTemp = UUID.randomUUID().toString().replace("-", "");
//修改文件表关联信息connect_id
}
}
String insertField = mustFields + fieldsBuilder.toString();
String insertValue = mustValues + valuesBuilder.toString();
bussDocumentLibraryEOMapper.insertInfo(insertField,insertValue);
}
/**
* 编辑数据
* @param map
*/
public void updateInfo(Map<String,Object> map){
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//时间类型字段
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e->"Date".equals(e.getDbType())).collect(Collectors.toList());
//文件类型字段
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e->"file".equals(e.getFieldShowType())).collect(Collectors.toList());
//一下3行代码为测试数据(暂时保留)
/**
* 编辑数据
*
* @param map
*/
public void updateInfo(Map<String, Object> map) {
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//时间类型字段
List<OnlCgformField> fieldDateList = fieldList.stream().filter(e -> "Date".equals(e.getDbType())).collect(Collectors.toList());
//文件类型字段
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> "file".equals(e.getFieldShowType())).collect(Collectors.toList());
//一下3行代码为测试数据(暂时保留)
// LambdaQueryWrapper<BussDocumentLibraryEO> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(BussDocumentLibraryEO::getId,"1");
// List<Map<String, Object>> dateList = bussDocumentLibraryEOMapper.selectMaps(queryWrapper);
//字段
StringBuilder fieldsBuilder = new StringBuilder();
//数据值
StringBuilder valuesBuilder = new StringBuilder();
//字段
StringBuilder fieldsBuilder = new StringBuilder();
//数据值
StringBuilder valuesBuilder = new StringBuilder();
// for (Map.Entry<String, Object> entry : dateList.get(0).entrySet()) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
//处理修改人和修改时间
if("update_by".equals(key)){
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
value = sysUser.getUsername();
}
if( "update_time".equals(key)){
value = new Date();
}
List<OnlCgformField> fieldDate = fieldDateList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//处理时间类型
if(fieldDate.size() != 0){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(ObjectUtils.isNotEmpty(value)){
value = "str_to_date('" + sdf.format(value) + "','%Y-%m-%d %H:%i:%s')";
}
valuesBuilder.append(value + ",");
}else{
valuesBuilder.append("'" + value + "'" + ",");
}
fieldsBuilder.append(key + ",");
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
//处理修改人和修改时间
if ("update_by".equals(key)) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
value = sysUser.getUsername();
}
if ("update_time".equals(key)) {
value = new Date();
}
List<OnlCgformField> fieldDate = fieldDateList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//处理时间类型
if (fieldDate.size() != 0) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (ObjectUtils.isNotEmpty(value)) {
value = "str_to_date('" + sdf.format(value) + "','%Y-%m-%d %H:%i:%s')";
}
valuesBuilder.append(value + ",");
} else {
valuesBuilder.append("'" + value + "'" + ",");
}
fieldsBuilder.append(key + ",");
//处理文件类型
List<OnlCgformField> fieldFile = fieldFileList.stream().filter(e->entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
if(fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)){
//处理文件类型
List<OnlCgformField> fieldFile = fieldFileList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
if (fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)) {
String valueTemp = UUID.randomUUID().toString().replace("-", "");
//修改文件表关联信息connect_id
String valueTemp = UUID.randomUUID().toString().replace("-", "");
//修改文件表关联信息connect_id
}
}
String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1);
String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1);
//先删除在新增.
}
}
String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1);
String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1);
//先删除在新增.
// bussDocumentLibraryEOMapper.deleteById((String)dateList.get(0).get("id"));
bussDocumentLibraryEOMapper.deleteById((String)map.get("id"));
bussDocumentLibraryEOMapper.insertInfo(insertField,insertValue);
bussDocumentLibraryEOMapper.deleteById((String) map.get("id"));
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
}
private String getMustValues(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String mustValue = "'"+ UUID.randomUUID().toString().replace("-", "") + "','" + sysUser.getUsername() + "',"
+"str_to_date('" + sdf.format(new Date()) + "','%Y-%m-%d %H:%i:%s')"+ ",'"+sysUser.getUsername() + "',"
+"str_to_date('" + sdf.format(new Date()) + "','%Y-%m-%d %H:%i:%s')"+ ",'"+sysUser.getOrgCode()+ "'";
return mustValue;
}
}
public void getInfoPage(Map<String,Object> parameter){
//过滤查询条件字段类型使用
List<Map<String, Object>> mapList = queryCondition("1");
private String getMustValues() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String mustValue = "'" + UUID.randomUUID().toString().replace("-", "") + "','" + sysUser.getUsername() + "',"
+ "str_to_date('" + sdf.format(new Date()) + "','%Y-%m-%d %H:%i:%s')" + ",'" + sysUser.getUsername() + "',"
+ "str_to_date('" + sdf.format(new Date()) + "','%Y-%m-%d %H:%i:%s')" + ",'" + sysUser.getOrgCode() + "'";
return mustValue;
}
//测试数据(查询条件, 暂时使用mapTemp, 提交代码的时候使用parameter)
Map<String,Object> mapTemp = new HashMap<>();
// mapTemp.put("orderByField","issue_time");//测试数据
// mapTemp.put("orderBy","1");//测试数据
public IPage getInfoPage(Map<String, Object> parameter) {
//过滤查询条件字段类型使用
List<Map<String, Object>> mapList = queryCondition("1");
for (Map<String, Object> map : mapList) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
int a= 0;
if("db_field_name".equals(key)){
mapTemp.put(value,"aaa");//测试数据
}
}
}
//查询条件
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//需要查询的字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1");
if (fieldList.size() != 0) {
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
}
List<String> fieldListTemp = fieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
List<String> fieldListNew = new ArrayList<>();
fieldListNew.add("id");
//转时间格式
for (String field : fieldListTemp) {
if ("issue_time".equals(field) || "implement_time".equals(field)) {
fieldListNew.add("date_format(" + field + ", '%Y-%m-%d %H:%i:%s')");
} else {
fieldListNew.add(field);
}
}
for (Map.Entry<String, Object> entry : mapTemp.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if(StringUtils.isNotBlank(value)){
for (Map<String, Object> map : mapList) {
String fieldName = (String)map.get("db_field_name");//字段
if(key.equals(fieldName)){
//字段类型(判断是输入框还是下拉,等等)
String fieldType = (String) map.get("field_show_type");//字段类型
//查询条件
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
if(FieldTypeEnum.TEXT.getValue().equals(fieldType)){
//输入框
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
if (ObjectUtils.isNotEmpty(parameter)) {
for (Map.Entry<String, Object> entry : parameter.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if (StringUtils.isNotBlank(value)) {
for (Map<String, Object> map : mapList) {
String fieldName = (String) map.get("db_field_name");//字段
if (key.equals(fieldName)) {
//字段类型(判断是输入框还是下拉,等等)
String fieldType = (String) map.get("field_show_type");//字段类型
}else if(FieldTypeEnum.LIST.getValue().equals(fieldType)
|| FieldTypeEnum.LIST_MULTI.getValue().equals(fieldType)){
StringBuilder valueSb = new StringBuilder();
for (String valueTemp : value.split(",")) {
valueSb.append("'" + valueTemp + "',");
}
String substring = valueSb.substring(0, valueSb.length() - 1);
//下拉单选或下拉多选
conditionSb.append(" and " + key + " in("+substring+")");
if (FieldTypeEnum.TEXT.getValue().equals(fieldType)) {
//输入框
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
}else if(FieldTypeEnum.DATE.getValue().equals(fieldType)){
value = "2022-01-24";
//日期(区分单日期还时间范围)
if(value.contains(",")){
conditionSb.append(" and " +"date_format("+ key + ",'%Y-%m-%d') >= '" + value.split(",")[0] + "'"
+ " and " +"date_format("+ key + ",'%Y-%m-%d') <= '" + value.split(",")[1] + "'");
}else{
conditionSb.append(" and " +"date_format("+ key + ",'%Y-%m-%d') = '" + value + "'");
}
}
}
}
}
}
//处理列表表头排序
if(StringUtils.isNotBlank((String) mapTemp.get("orderByField"))){
conditionSb.append(" order by " + (String) mapTemp.get("orderByField"));
if("1".equals((String) mapTemp.get("orderBy"))){
conditionSb.append(" asc");//正序
}else if("2".equals((String) mapTemp.get("orderBy"))){
conditionSb.append(" desc");//倒序
}
}else{
conditionSb.append(" order by create_time desc");
}
int pageNo = 1;
int pageSize = 10;
} else if (FieldTypeEnum.LIST.getValue().equals(fieldType)
|| FieldTypeEnum.LIST_MULTI.getValue().equals(fieldType)) {
StringBuilder valueSb = new StringBuilder();
for (String valueTemp : value.split(",")) {
valueSb.append("'" + valueTemp + "',");
}
String substring = valueSb.substring(0, valueSb.length() - 1);
//下拉单选或下拉多选
conditionSb.append(" and " + key + " in(" + substring + ")");
} else if (FieldTypeEnum.DATE.getValue().equals(fieldType)) {
value = "2022-01-24";
//日期(区分单日期还时间范围)
if (value.contains(",")) {
conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') >= '" + value.split(",")[0] + "'"
+ " and " + "date_format(" + key + ",'%Y-%m-%d') <= '" + value.split(",")[1] + "'");
} else {
conditionSb.append(" and " + "date_format(" + key + ",'%Y-%m-%d') = '" + value + "'");
}
}
}
}
}
}
//处理列表表头排序
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(" order by " + (String) parameter.get("orderByField"));
if ("1".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" asc");//正序
} else if ("2".equals((String) parameter.get("orderBy"))) {
conditionSb.append(" desc");//倒序
}
} else {
conditionSb.append(" order by create_time desc");
}
}
int pageNo = 1;
int pageSize = 10;
// int pageNo = Integer.parseInt(mapTemp.get("pageNo").toString());
// int pageSize = Integer.parseInt(mapTemp.get("pageSize").toString());
Page page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.getInfoPage(page, conditionSb.toString());
int a = 0;
// for (Map<String, Object> map : mapList) {
//
//
// String key = (String) map.get("db_field_name");//字段名
//// String value = (String) map.get("value");//字段值
// String value = "qqqqqq,wwww";//字段值
// String fieldType = (String) map.get("field_show_type");//字段类型
//
// if(StringUtils.isNotBlank(value)){
// if(FieldTypeEnum.TEXT.getValue().equals(fieldType)){
// //输入框
// conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
//// conditionSb.append(" and " + key +"='"+value+"' ");
//
//
// }else if(FieldTypeEnum.LIST.getValue().equals(fieldType)
// || FieldTypeEnum.LIST_MULTI.getValue().equals(fieldType)){
// StringBuilder valueSb = new StringBuilder();
// for (String valueTemp : value.split(",")) {
// valueSb.append("'" + valueTemp + "',");
// }
// String substring = valueSb.substring(0, valueSb.length() - 1);
// //下拉单选或下拉多选
// conditionSb.append(" and " + key + " in("+substring+")");
//
//
// }else if(FieldTypeEnum.DATE.getValue().equals(fieldType)){
// value = "2022-01-24,2022-01-24";
// //日期
// if(value.contains(",")){
// conditionSb.append(" and " +"date_format("+ key + ",'%Y-%m-%d') >= '" + value.split(",")[0] + "'"
// + " and " +"date_format("+ key + ",'%Y-%m-%d') >= '" + value.split(",")[1] + "'");
// }else{
// conditionSb.append(" and " +"date_format("+ key + ",'%Y-%m-%d') >= '" + value + "'");
// }
//
//
//
// }
// }
//
// }
IPage page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.getInfoPage(page, " " + StringUtils.join(fieldListNew, ","), conditionSb.toString());
return infoPage;
// bussDocumentLibraryEOMapper.getInfoPage();
}
}
}
@@ -135,7 +135,8 @@ spring:
# username: root
# password: 123456
# driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://121.36.69.172:3307/laws_weilai?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
url: jdbc:mysql://121.36.69.172:3307/laws_weilai?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
# url: jdbc:mysql://121.36.69.172:3307/laws_weilai?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
password: hzwlsoft.com
driver-class-name: com.mysql.cj.jdbc.Driver
@@ -180,7 +181,7 @@ jero :
uploadType: local
path :
#文件上传根目录 设置
upload: D://opt//upFiles
upload: E://opt//upFiles
#webapp文件路径
webapp: D://opt//webapp
shiro:
+1 -1
View File
@@ -124,7 +124,7 @@
}
getAction(this.url.tableList, params).then((res) => {
if (res.success) {
this.jsonBody = res.result || []
this.jsonBody = res.result.records
}
})
},