13 Commits

Author SHA1 Message Date
hanjian
a719d62deb Merge remote-tracking branch 'origin/v1.0' into v1.0 2024-09-02 11:08:54 +08:00
hanjian
29ce3e1ce9 update 2024-09-02 11:08:42 +08:00
pan
a2b843bdf3 1、部门名称 2024-09-02 10:41:34 +08:00
hanjian
2e06c76916 update 2024-09-02 08:39:58 +08:00
pan
10ee4fbc4d 1、文档中心权限调整
2、下载权限调整
3、消息中心
4、修复预览关闭窗口时视屏播放暂停不了问题
2024-09-01 10:58:06 +08:00
晴朗
7820d4907f 增加文件统计后端 2024-08-31 17:58:10 +08:00
pan
2561546ac2 Merge remote-tracking branch 'origin/v1.0' into v1.0 2024-08-31 16:11:30 +08:00
pan
b6a66db6cb 统计代码 2024-08-31 16:11:20 +08:00
晴朗
9331b57b58 新增菜单,业务字典,去掉导出按钮;在字典类型列表不能新增、修改、删除; 点击类型进入字典列表内可以操作 2024-08-31 15:18:27 +08:00
pan
d732771032 1、新增评论、回复功能
2、工具发布权限完善一部分
2024-08-30 19:47:45 +08:00
pan
f0a14bcd3c 1、发布工具流程-关联工具细节调整
2、文档资源管理调整
2024-08-29 22:01:03 +08:00
pan
f1b84cb823 Merge remote-tracking branch 'origin/v1.0_lukg' into v1.0 2024-08-28 17:41:26 +08:00
pan
a272e06018 1、新增文档分类管理
2、新增资源管理开发
2024-08-28 17:40:03 +08:00
78 changed files with 4687 additions and 540 deletions

View File

@@ -1,18 +1,5 @@
package com.rzdata.web.controller.common; package com.rzdata.web.controller.common;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.rzdata.common.config.JaConfig; import com.rzdata.common.config.JaConfig;
import com.rzdata.common.constant.Constants; import com.rzdata.common.constant.Constants;
import com.rzdata.common.core.domain.AjaxResult; import com.rzdata.common.core.domain.AjaxResult;
@@ -20,6 +7,22 @@ import com.rzdata.common.utils.StringUtils;
import com.rzdata.common.utils.file.FileUploadUtils; import com.rzdata.common.utils.file.FileUploadUtils;
import com.rzdata.common.utils.file.FileUtils; import com.rzdata.common.utils.file.FileUtils;
import com.rzdata.framework.config.ServerConfig; import com.rzdata.framework.config.ServerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.util.*;
/** /**
* 通用请求处理 * 通用请求处理
@@ -84,7 +87,8 @@ public class CommonController
String url = serverConfig.getUrl() + fileName; String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("url", url); ajax.put("url", url);
ajax.put("fileName", fileName); ajax.put("filePath", fileName);
ajax.put("suffixType", FileUploadUtils.extractSuffix(fileName));
ajax.put("newFileName", FileUtils.getName(fileName)); ajax.put("newFileName", FileUtils.getName(fileName));
ajax.put("originalFilename", file.getOriginalFilename()); ajax.put("originalFilename", file.getOriginalFilename());
return ajax; return ajax;
@@ -160,4 +164,70 @@ public class CommonController
log.error("下载文件失败", e); log.error("下载文件失败", e);
} }
} }
@PostMapping("/initUpload")
public ResponseEntity<Map<String, String>> initUpload(@RequestParam("fileName") String fileName) {
// 上传文件路径
String filePath = JaConfig.getUploadPath();
String uploadId = UUID.randomUUID().toString();
// 创建临时目录用于存放分片文件
new File(filePath + "/" + uploadId).mkdirs();
Map<String, String> response = new HashMap<>();
response.put("uploadId", uploadId);
return ResponseEntity.ok(response);
}
@PostMapping("/uploadChunk")
public ResponseEntity<Map<String, String>> uploadChunk(
@RequestParam("chunkFile") MultipartFile chunkFile,
@RequestParam("uploadId") String uploadId,
@RequestParam("chunkId") int chunkId) {
String filePath = JaConfig.getUploadPath();
String chunkFilePath = filePath + "/" + uploadId + "/" + chunkId;
try {
chunkFile.transferTo(new File(chunkFilePath));
Map<String, String> response = new HashMap<>();
response.put("status", "200");
return ResponseEntity.ok(response);
} catch (IOException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
@PostMapping("/mergeFile")
public ResponseEntity<Map<String, String>> mergeFile(@RequestParam("uploadId") String uploadId,
@RequestParam("fileName") String fileName) {
String filePath = JaConfig.getUploadPath();
//String finalFilePath = FileUploadUtils.generateMergedFilePath(filePath, fileName);
String fileNamePath = FileUploadUtils.getFilePath(filePath, fileName);
String finalFilePath = filePath + fileNamePath.replace("profile/upload/", "") ;
File dir = new File(filePath + "/" + uploadId);
File[] chunkFiles = dir.listFiles();
// 按文件名即chunkId排序
Arrays.sort(chunkFiles, Comparator.comparingInt(f -> Integer.parseInt(f.getName())));
try (FileOutputStream fos = new FileOutputStream(finalFilePath)) {
for (File chunk : chunkFiles) {
Files.copy(chunk.toPath(), fos);
}
Map<String, String> response = new HashMap<>();
String url = serverConfig.getUrl() + fileNamePath;
response.put("url", url);
response.put("filePath", fileNamePath);
response.put("suffixType", FileUploadUtils.extractSuffix(fileNamePath));
response.put("newFileName", FileUtils.getName(fileNamePath));
response.put("originalFilename", fileName);
return ResponseEntity.ok(response);
} catch (IOException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
} finally {
// 清理临时文件
Arrays.stream(chunkFiles).forEach(File::delete);
dir.delete();
}
}
} }

View File

@@ -0,0 +1,115 @@
package com.rzdata.web.controller.document;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.common.core.domain.DocumentCategory;
import com.rzdata.web.service.IDocumentCategoryService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 文档资源分类管理Controller
*
* @author spongepan
* @date 2024-08-27
*/
@RestController
@RequestMapping("/system/category")
public class DocumentCategoryController extends BaseController
{
@Autowired
private IDocumentCategoryService documentCategoryService;
/**
* 查询文档资源分类管理列表
*/
@PreAuthorize("@ss.hasPermi('system:category:list')")
@GetMapping("/list")
public TableDataInfo list(DocumentCategory documentCategory)
{
startPage();
List<DocumentCategory> list = documentCategoryService.selectDocumentCategoryList(documentCategory);
return getDataTable(list);
}
/**
* 导出文档资源分类管理列表
*/
@PreAuthorize("@ss.hasPermi('system:category:export')")
@Log(title = "文档资源分类管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, DocumentCategory documentCategory)
{
List<DocumentCategory> list = documentCategoryService.selectDocumentCategoryList(documentCategory);
ExcelUtil<DocumentCategory> util = new ExcelUtil<DocumentCategory>(DocumentCategory.class);
util.exportExcel(response, list, "文档资源分类管理数据");
}
/**
* 获取文档资源分类管理详细信息
*/
@PreAuthorize("@ss.hasPermi('system:category:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(documentCategoryService.selectDocumentCategoryById(id));
}
/**
* 新增文档资源分类管理
*/
@PreAuthorize("@ss.hasPermi('system:category:add')")
@Log(title = "文档资源分类管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody DocumentCategory documentCategory)
{
return toAjax(documentCategoryService.insertDocumentCategory(documentCategory));
}
/**
* 修改文档资源分类管理
*/
@PreAuthorize("@ss.hasPermi('system:category:edit')")
@Log(title = "文档资源分类管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody DocumentCategory documentCategory)
{
return toAjax(documentCategoryService.updateDocumentCategory(documentCategory));
}
/**
* 删除文档资源分类管理
*/
@PreAuthorize("@ss.hasPermi('system:category:remove')")
@Log(title = "文档资源分类管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(documentCategoryService.deleteDocumentCategoryByIds(ids));
}
/**
* 获取文档分类树列表
*/
@GetMapping("/documentTree")
public AjaxResult deptTree(DocumentCategory documentCategory)
{
return success(documentCategoryService.selectDocumentTreeList(documentCategory));
}
}

View File

@@ -32,6 +32,7 @@ public class DocumentController extends BaseController
/** /**
* 查询【文档资源信息】列表 * 查询【文档资源信息】列表
*/ */
@PreAuthorize("@ss.hasPermi('document:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(Document Document) public TableDataInfo list(Document Document)
{ {
@@ -44,12 +45,13 @@ public class DocumentController extends BaseController
* 导出【文档资源信息】列表 * 导出【文档资源信息】列表
*/ */
@Log(title = "【文档资源信息】", businessType = BusinessType.EXPORT) @Log(title = "【文档资源信息】", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('document:export')")
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, Document Document) public void export(HttpServletResponse response, Document document)
{ {
List<Document> list = documentService.selectDocumentList(Document); List<Document> list = documentService.selectDocumentList(document);
ExcelUtil<Document> util = new ExcelUtil<Document>(Document.class); ExcelUtil<Document> util = new ExcelUtil<Document>(Document.class);
util.exportExcel(response, list, "【文档资源信息】数据"); util.exportExcel(response, list, "【文档资源信息】数据", document.getExcludeFields());
} }
/** /**
@@ -65,6 +67,7 @@ public class DocumentController extends BaseController
* 新增【文档资源信息】 * 新增【文档资源信息】
*/ */
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@PreAuthorize("@ss.hasPermi('document:add')")
@PostMapping @PostMapping
public AjaxResult add(@RequestBody Document Document) public AjaxResult add(@RequestBody Document Document)
{ {
@@ -79,6 +82,7 @@ public class DocumentController extends BaseController
* 修改【文档资源信息】 * 修改【文档资源信息】
*/ */
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('document:edit')")
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody Document Document) public AjaxResult edit(@RequestBody Document Document)
{ {
@@ -88,10 +92,32 @@ public class DocumentController extends BaseController
/** /**
* 删除【文档资源信息】 * 删除【文档资源信息】
*/ */
@Log(title = "请填写功能名称", businessType = BusinessType.DELETE) @Log(title = "逻辑删除-文档资源信息", businessType = BusinessType.DELETE)
@PreAuthorize("@ss.hasPermi('document:remove')")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) public AjaxResult remove(@PathVariable String[] ids)
{ {
return toAjax(documentService.deleteDocumentByIds(ids)); return toAjax(documentService.deleteDocumentByIds(ids));
} }
/**
* 发布文档
*/
@Log(title = "【发布逻辑】", businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('document:push')")
@PutMapping("/pushDoc/{ids}")
public AjaxResult pushDoc(@PathVariable String[] ids)
{
return toAjax(documentService.pushDoc(ids));
}
/**
* 文档统计,涉及文档类别统计、文档来源统计
*/
@GetMapping("/statistics")
public AjaxResult statistics()
{
return AjaxResult.success(documentService.statistics());
}
} }

View File

@@ -43,6 +43,16 @@ public class SysDictTypeController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
@PreAuthorize("@ss.hasPermi('system:bizlist:list')")
@GetMapping("/bizlist")
public TableDataInfo bizlist(SysDictType dictType)
{
startPage();
List<SysDictType> list = dictTypeService.selectBizDictTypeList(dictType);
return getDataTable(list);
}
@Log(title = "字典类型", businessType = BusinessType.EXPORT) @Log(title = "字典类型", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')") @PreAuthorize("@ss.hasPermi('system:dict:export')")
@PostMapping("/export") @PostMapping("/export")

View File

@@ -55,7 +55,6 @@ public class SysUserController extends BaseController
/** /**
* 获取用户列表 * 获取用户列表
*/ */
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(SysUser user) public TableDataInfo list(SysUser user)
{ {
@@ -246,7 +245,7 @@ public class SysUserController extends BaseController
/** /**
* 获取部门树列表 * 获取部门树列表
*/ */
@PreAuthorize("@ss.hasPermi('system:user:list')") //@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/deptTree") @GetMapping("/deptTree")
public AjaxResult deptTree(SysDept dept) public AjaxResult deptTree(SysDept dept)
{ {

View File

@@ -0,0 +1,105 @@
package com.rzdata.web.controller.tool;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.web.domain.Attachment;
import com.rzdata.web.service.IAttachmentService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 附件Controller
*
* @author panchichun
* @date 2024-08-28
*/
@RestController
@RequestMapping("/system/attachment")
public class AttachmentController extends BaseController
{
@Autowired
private IAttachmentService attachmentService;
/**
* 查询附件列表
*/
@PreAuthorize("@ss.hasPermi('system:attachment:list')")
@GetMapping("/list")
public TableDataInfo list(Attachment attachment)
{
startPage();
List<Attachment> list = attachmentService.selectAttachmentList(attachment);
return getDataTable(list);
}
/**
* 导出附件列表
*/
@PreAuthorize("@ss.hasPermi('system:attachment:export')")
@Log(title = "附件", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Attachment attachment)
{
List<Attachment> list = attachmentService.selectAttachmentList(attachment);
ExcelUtil<Attachment> util = new ExcelUtil<Attachment>(Attachment.class);
util.exportExcel(response, list, "附件数据");
}
/**
* 获取附件详细信息
*/
@PreAuthorize("@ss.hasPermi('system:attachment:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(attachmentService.selectAttachmentById(id));
}
/**
* 新增附件
*/
@PreAuthorize("@ss.hasPermi('system:attachment:add')")
@Log(title = "附件", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Attachment attachment)
{
return toAjax(attachmentService.insertAttachment(attachment));
}
/**
* 修改附件
*/
@PreAuthorize("@ss.hasPermi('system:attachment:edit')")
@Log(title = "附件", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Attachment attachment)
{
return toAjax(attachmentService.updateAttachment(attachment));
}
/**
* 删除附件
*/
@PreAuthorize("@ss.hasPermi('system:attachment:remove')")
@Log(title = "附件", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(attachmentService.deleteAttachmentByIds(ids));
}
}

View File

@@ -0,0 +1,102 @@
package com.rzdata.web.controller.tool;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.web.domain.Discussions;
import com.rzdata.web.service.IDiscussionsService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 讨论Controller
*
* @author panchichun
* @date 2024-08-30
*/
@RestController
@RequestMapping("/discussions")
public class DiscussionsController extends BaseController
{
@Autowired
private IDiscussionsService discussionsService;
/**
* 查询讨论列表
*/
@GetMapping("/list")
public TableDataInfo list(Discussions discussions)
{
List<Discussions> list = discussionsService.selectDiscussionsList(discussions);
return getDataTable(list);
}
/**
* 导出讨论列表
*/
@PreAuthorize("@ss.hasPermi('system:discussions:export')")
@Log(title = "讨论", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Discussions discussions)
{
List<Discussions> list = discussionsService.selectDiscussionsList(discussions);
ExcelUtil<Discussions> util = new ExcelUtil<Discussions>(Discussions.class);
util.exportExcel(response, list, "讨论数据");
}
/**
* 获取讨论详细信息
*/
@PreAuthorize("@ss.hasPermi('system:discussions:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(discussionsService.selectDiscussionsById(id));
}
/**
* 新增讨论
*/
@Log(title = "讨论", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Discussions discussions)
{
return toAjax(discussionsService.insertDiscussions(discussions));
}
/**
* 修改讨论
*/
@PreAuthorize("@ss.hasPermi('system:discussions:edit')")
@Log(title = "讨论", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Discussions discussions)
{
return toAjax(discussionsService.updateDiscussions(discussions));
}
/**
* 删除讨论
*/
@PreAuthorize("@ss.hasPermi('system:discussions:remove')")
@Log(title = "讨论", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(discussionsService.deleteDiscussionsByIds(ids));
}
}

View File

@@ -0,0 +1,118 @@
package com.rzdata.web.controller.tool;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.web.domain.DownloadCount;
import com.rzdata.web.service.IDownloadCountService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.core.page.TableDataInfo;
import java.util.List;
/**
* 工具下载统计Controller
*
* @author 潘驰春
* @date 2024-08-31
*/
@RestController
@RequestMapping("/system/count")
public class DownloadCountController extends BaseController
{
@Autowired
private IDownloadCountService downloadCountService;
/**
* 查询工具下载统计列表
*/
@GetMapping("/list")
public TableDataInfo list(DownloadCount downloadCount)
{
startPage();
List<DownloadCount> list = downloadCountService.selectDownloadCountList(downloadCount);
return getDataTable(list);
}
/**
* 根据详情统计
*/
@GetMapping("/user/down/list")
public TableDataInfo userDownList(DownloadCount downloadCount)
{
startPage();
List<DownloadCount> list = downloadCountService.userDownList(downloadCount);
return getDataTable(list);
}
/**
* 导出工具下载统计列表
*/
@PreAuthorize("@ss.hasPermi('system:count:export')")
@Log(title = "工具下载统计", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, DownloadCount downloadCount)
{
List<DownloadCount> list = downloadCountService.selectDownloadCountList(downloadCount);
ExcelUtil<DownloadCount> util = new ExcelUtil<DownloadCount>(DownloadCount.class);
util.exportExcel(response, list, "工具下载统计数据");
}
/**
* 获取工具下载统计详细信息
*/
@PreAuthorize("@ss.hasPermi('system:count:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(downloadCountService.selectDownloadCountById(id));
}
/**
* 新增工具下载统计
*/
@PreAuthorize("@ss.hasPermi('system:count:add')")
@Log(title = "工具下载统计", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody DownloadCount downloadCount)
{
return toAjax(downloadCountService.insertDownloadCount(downloadCount));
}
/**
* 修改工具下载统计
*/
@PreAuthorize("@ss.hasPermi('system:count:edit')")
@Log(title = "工具下载统计", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody DownloadCount downloadCount)
{
return toAjax(downloadCountService.updateDownloadCount(downloadCount));
}
/**
* 删除工具下载统计
*/
@PreAuthorize("@ss.hasPermi('system:count:remove')")
@Log(title = "工具下载统计", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(downloadCountService.deleteDownloadCountByIds(ids));
}
}

View File

@@ -0,0 +1,104 @@
package com.rzdata.web.controller.tool;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.web.domain.Replies;
import com.rzdata.web.service.IRepliesService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 回复Controller
*
* @author panchichun
* @date 2024-08-30
*/
@RestController
@RequestMapping("/replies")
public class RepliesController extends BaseController
{
@Autowired
private IRepliesService repliesService;
/**
* 查询回复列表
*/
@PreAuthorize("@ss.hasPermi('system:replies:list')")
@GetMapping("/list")
public TableDataInfo list(Replies replies)
{
startPage();
List<Replies> list = repliesService.selectRepliesList(replies);
return getDataTable(list);
}
/**
* 导出回复列表
*/
@PreAuthorize("@ss.hasPermi('system:replies:export')")
@Log(title = "回复", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Replies replies)
{
List<Replies> list = repliesService.selectRepliesList(replies);
ExcelUtil<Replies> util = new ExcelUtil<Replies>(Replies.class);
util.exportExcel(response, list, "回复数据");
}
/**
* 获取回复详细信息
*/
@PreAuthorize("@ss.hasPermi('system:replies:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(repliesService.selectRepliesById(id));
}
/**
* 新增回复
*/
@Log(title = "回复", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Replies replies)
{
return toAjax(repliesService.insertReplies(replies));
}
/**
* 修改回复
*/
@PreAuthorize("@ss.hasPermi('system:replies:edit')")
@Log(title = "回复", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Replies replies)
{
return toAjax(repliesService.updateReplies(replies));
}
/**
* 删除回复
*/
@PreAuthorize("@ss.hasPermi('system:replies:remove')")
@Log(title = "回复", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(repliesService.deleteRepliesByIds(ids));
}
}

View File

@@ -0,0 +1,175 @@
package com.rzdata.web.controller.tool;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.blueland.bpmclient.model.BpmClientInputModel;
import com.blueland.bpmclient.model.ProcessInstanceModel;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.core.page.TableDataInfo;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.enums.RecordStatusEnum;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.StringUtils;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.domain.bo.BpmClientInputModelBo;
import com.rzdata.web.service.IToolApplyService;
import com.rzdata.web.service.IUseApplyItemService;
import com.rzdata.web.service.WorkflowService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 申请Controller
*
* @author ja
* @date 2024-08-21
*/
@RestController
@RequestMapping("/tool/apply")
public class ToolApplyController extends BaseController
{
@Autowired
private IToolApplyService toolApplyService;
@Autowired
private WorkflowService workflowService;
@Autowired
private IUseApplyItemService useApplyItemService;
/**
* 查询使用申请列表
*/
@PreAuthorize("@ss.hasPermi('system:apply:list')")
@GetMapping("/list")
public TableDataInfo list(ToolApply toolApply)
{
startPage();
List<ToolApply> list = toolApplyService.selectToolApplyList(toolApply);
return getDataTable(list);
}
/**
* 获取工具信息详细信息
*/
@GetMapping(value = "/bpmc/{bpmcId}")
public AjaxResult getInfoByBpmcId(@PathVariable("bpmcId") String bpmcId)
{
return success(toolApplyService.getInfoByBpmcId(bpmcId));
}
/**
* 导出使用申请列表
*/
@PreAuthorize("@ss.hasPermi('system:apply:export')")
@Log(title = "使用申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, ToolApply toolApply)
{
List<ToolApply> list = toolApplyService.selectToolApplyList(toolApply);
ExcelUtil<ToolApply> util = new ExcelUtil<ToolApply>(ToolApply.class);
util.exportExcel(response, list, "使用申请数据");
}
/**
* 获取使用申请详细信息
*/
@PreAuthorize("@ss.hasPermi('system:apply:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(toolApplyService.selectToolApplyById(id));
}
/**
* 新增使用申请
*/
@Log(title = "使用申请", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody ToolApply toolApply)
{
boolean add = false;
if (StringUtils.isEmpty(toolApply.getId())) {
toolApply.setId(IdUtil.simpleUUID());
add = true;
}
ProcessInstanceModel processInstanceModel = null;
try {
if(StringUtils.equals(toolApply.getRecordStatus(), RecordStatusEnum.DRAFT.getCode())){
processInstanceModel = workflowService.saveExecute(toolApply.getBpmClientInputModel(), toolApply.getId());
}else if (StringUtils.equals(toolApply.getRecordStatus(), RecordStatusEnum.CANCEL.getCode())){
processInstanceModel = workflowService.cancelExecute(toolApply.getBpmClientInputModel(), toolApply.getId());
}else{
processInstanceModel = workflowService.nextExecute(toolApply.getBpmClientInputModel(), toolApply.getId());
}
} catch (Exception e) {
e.printStackTrace();
}
if (processInstanceModel != null && StringUtils.isNotEmpty(processInstanceModel.getProcInstId())) {
if (add) {
BpmClientInputModelBo bpmClientInputModelBo = toolApply.getBpmClientInputModel();
if(null != bpmClientInputModelBo){
BpmClientInputModel bpmClientInputModel = bpmClientInputModelBo.getModel();
toolApply.setProcTitle(StrUtil.isNotEmpty(bpmClientInputModel.getWf_procTitle()) ? bpmClientInputModel.getWf_procTitle() : "");
}
if(toolApply.getItemList().size() > 0){
toolApply.setToolId(toolApply.getItemList().get(0).getToolId());
}
toolApply.setApplyType(Constants.TOOL_APPLY_TYPE_USE);
toolApply.setProcInstId(processInstanceModel.getProcInstId());
toolApplyService.insertToolApply(toolApply);
useApplyItemService.updateItemList(toolApply.getItemList(), toolApply.getId());
}else if (BooleanUtil.isTrue(toolApply.getEditStatus())){
toolApplyService.updateToolApply(toolApply);
useApplyItemService.updateItemList(toolApply.getItemList(), toolApply.getId());
}else {
ToolApply updateStatus = new ToolApply();
updateStatus.setId(toolApply.getId());
updateStatus.setRecordStatus(toolApply.getRecordStatus());
if("done".equals(toolApply.getRecordStatus())){
toolApply.setEndTime(DateUtils.getNowDate());
}
toolApplyService.updateToolApply(updateStatus);
}
//办结
if(RecordStatusEnum.DONE.getCode().equals(toolApply)){
//给消息中心发送消息
toolApplyService.sendTzMessage(toolApply);
}
return AjaxResult.success("操作成功",processInstanceModel);
}else {
return AjaxResult.error();
}
}
/**
* 修改使用申请
*/
@Log(title = "使用申请", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody ToolApply toolApply)
{
return toAjax(toolApplyService.updateToolApply(toolApply));
}
/**
* 删除使用申请
*/
@PreAuthorize("@ss.hasPermi('system:apply:remove')")
@Log(title = "使用申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(toolApplyService.deleteToolApplyByIds(ids));
}
}

View File

@@ -1,5 +1,6 @@
package com.rzdata.web.controller.tool; package com.rzdata.web.controller.tool;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.blueland.bpmclient.model.ProcessInstanceModel; import com.blueland.bpmclient.model.ProcessInstanceModel;
@@ -10,21 +11,25 @@ import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.core.page.TableDataInfo; import com.rzdata.common.core.page.TableDataInfo;
import com.rzdata.common.enums.BusinessType; import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.enums.RecordStatusEnum; import com.rzdata.common.enums.RecordStatusEnum;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.common.utils.StringUtils; import com.rzdata.common.utils.StringUtils;
import com.rzdata.common.utils.poi.ExcelUtil; import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.system.service.ISysDeptService; import com.rzdata.system.service.ISysDeptService;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.service.IDocumentService;
import com.rzdata.web.service.IToolApplyService;
import com.rzdata.web.service.IToolService; import com.rzdata.web.service.IToolService;
import com.rzdata.web.service.IUseApplyService;
import com.rzdata.web.service.WorkflowService; import com.rzdata.web.service.WorkflowService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 工具信息Controller * 工具信息Controller
@@ -43,14 +48,21 @@ public class ToolController extends BaseController
private WorkflowService workflowService; private WorkflowService workflowService;
@Autowired @Autowired
private IUseApplyService iUseApplyService; private IToolApplyService iToolApplyService;
@Autowired @Autowired
private ISysDeptService iSysDeptService; private ISysDeptService iSysDeptService;
@Autowired
private IDocumentService iDocumentService;
@Autowired
private IToolApplyService toolApplyService;
/** /**
* 查询工具信息列表 * 查询工具信息列表
*/ */
@PreAuthorize("@ss.hasPermi('tool:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(Tool tool) public TableDataInfo list(Tool tool)
{ {
@@ -64,7 +76,7 @@ public class ToolController extends BaseController
vo.setDownloadStatus(RecordStatusEnum.DONE.getCode().equals(vo.getRecordStatus())&& vo.setDownloadStatus(RecordStatusEnum.DONE.getCode().equals(vo.getRecordStatus())&&
(userId.equals(vo.getCreateBy())|| (userId.equals(vo.getCreateBy())||
SecurityUtils.hasPermi(Constants.DOWNLOAD_TOOL_PERMISSION)|| SecurityUtils.hasPermi(Constants.DOWNLOAD_TOOL_PERMISSION)||
iUseApplyService.checkUseApply(vo.getToolId(),userId))); iToolApplyService.checkToolApply(vo.getToolId(),userId)));
} }
} }
return getDataTable(list); return getDataTable(list);
@@ -132,18 +144,41 @@ public class ToolController extends BaseController
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (processInstanceModel!=null&&StringUtils.isNotEmpty(processInstanceModel.getProcInstId())) { if (processInstanceModel != null && StringUtils.isNotEmpty(processInstanceModel.getProcInstId())) {
if (add) { if (add) {
tTool.setProcInstId(processInstanceModel.getProcInstId()); tTool.setProcInstId(processInstanceModel.getProcInstId());
toolService.insertTool(tTool); toolService.insertTool(tTool);
}else if (BooleanUtil.isTrue(tTool.getEditStatus())){ //保存文档和附件
toolService.addDocAndAtt(tTool);
//记录申请数据
toolService.recordToolApply(tTool);
} else if (BooleanUtil.isTrue(tTool.getEditStatus())){
toolService.updateTool(tTool); toolService.updateTool(tTool);
}else { //删除文档和附件
toolService.deleteDocAndAtt(tTool);
//保存文档和附件
toolService.addDocAndAtt(tTool);
} else {
Tool tool = new Tool(); Tool tool = new Tool();
tool.setToolId(tTool.getToolId()); tool.setToolId(tTool.getToolId());
tool.setRecordStatus(tTool.getRecordStatus()); tool.setRecordStatus(tTool.getRecordStatus());
if("done".equals(tTool.getRecordStatus())){
ToolApply toolApply = toolApplyService.getInfoByBpmcId(tTool.getProcInstId());
toolApply.setRecordStatus(tTool.getRecordStatus());
toolApply.setEndTime(DateUtils.getNowDate());
toolApplyService.updateToolApply(toolApply);
}
toolService.updateTool(tool); toolService.updateTool(tool);
} }
//办结
if(RecordStatusEnum.DONE.getCode().equals(tTool.getRecordStatus())){
//更新文档状态
toolService.updateDocPushStatus(tTool);
//给消息中心发送消息
toolService.sendTzMessage(tTool);
}
return AjaxResult.success("操作成功",processInstanceModel); return AjaxResult.success("操作成功",processInstanceModel);
}else { }else {
return AjaxResult.error(); return AjaxResult.error();
@@ -169,4 +204,14 @@ public class ToolController extends BaseController
{ {
return toAjax(toolService.deleteToolByToolIds(toolIds)); return toAjax(toolService.deleteToolByToolIds(toolIds));
} }
/**
* 工具统计
*/
@GetMapping("/statistics")
public AjaxResult statistics()
{
return AjaxResult.success(toolService.statistics());
}
} }

View File

@@ -0,0 +1,112 @@
package com.rzdata.web.controller.tool;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.rzdata.web.domain.TzMessage;
import com.rzdata.web.service.ITzMessageService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 消息Controller
*
* @author ja
* @date 2024-08-31
*/
@RestController
@RequestMapping("/system/message")
public class TzMessageController extends BaseController
{
@Autowired
private ITzMessageService tzMessageService;
/**
* 查询消息列表
*/
@PreAuthorize("@ss.hasPermi('system:message:list')")
@GetMapping("/list")
public TableDataInfo list(TzMessage tzMessage)
{
startPage();
List<TzMessage> list = tzMessageService.selectTzMessageList(tzMessage);
return getDataTable(list);
}
/**
* 导出消息列表
*/
@Log(title = "消息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, TzMessage tzMessage)
{
List<TzMessage> list = tzMessageService.selectTzMessageList(tzMessage);
ExcelUtil<TzMessage> util = new ExcelUtil<TzMessage>(TzMessage.class);
util.exportExcel(response, list, "消息数据");
}
/**
* 获取消息详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(tzMessageService.selectTzMessageById(id));
}
/**
* 新增消息
*/
@PreAuthorize("@ss.hasPermi('system:message:add')")
@Log(title = "消息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody TzMessage tzMessage)
{
return toAjax(tzMessageService.insertTzMessage(tzMessage));
}
/**
* 修改消息
*/
@Log(title = "消息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody TzMessage tzMessage)
{
return toAjax(tzMessageService.updateTzMessage(tzMessage));
}
/**
* 删除消息
*/
@Log(title = "消息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(tzMessageService.deleteTzMessageByIds(ids));
}
/**
* 全部标记已读
*/
@Log(title = "全部标记已读", businessType = BusinessType.UPDATE)
@PostMapping("/allMarkedRead")
public AjaxResult allMarkedRead(@RequestBody TzMessage tzMessage)
{
return toAjax(tzMessageService.allMarkedRead(tzMessage));
}
}

View File

@@ -1,162 +0,0 @@
package com.rzdata.web.controller.tool;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil;
import com.blueland.bpmclient.model.ProcessInstanceModel;
import com.rzdata.common.enums.RecordStatusEnum;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.StringUtils;
import com.rzdata.web.domain.Tool;
import com.rzdata.web.service.IUseApplyItemService;
import com.rzdata.web.service.WorkflowService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.rzdata.common.annotation.Log;
import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.enums.BusinessType;
import com.rzdata.web.domain.UseApply;
import com.rzdata.web.service.IUseApplyService;
import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.common.core.page.TableDataInfo;
/**
* 使用申请Controller
*
* @author ja
* @date 2024-08-21
*/
@RestController
@RequestMapping("/use/apply")
public class UseApplyController extends BaseController
{
@Autowired
private IUseApplyService useApplyService;
@Autowired
private WorkflowService workflowService;
@Autowired
private IUseApplyItemService useApplyItemService;
/**
* 查询使用申请列表
*/
@PreAuthorize("@ss.hasPermi('system:apply:list')")
@GetMapping("/list")
public TableDataInfo list(UseApply useApply)
{
startPage();
List<UseApply> list = useApplyService.selectUseApplyList(useApply);
return getDataTable(list);
}
/**
* 获取工具信息详细信息
*/
@GetMapping(value = "/bpmc/{bpmcId}")
public AjaxResult getInfoByBpmcId(@PathVariable("bpmcId") String bpmcId)
{
return success(useApplyService.getInfoByBpmcId(bpmcId));
}
/**
* 导出使用申请列表
*/
@PreAuthorize("@ss.hasPermi('system:apply:export')")
@Log(title = "使用申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, UseApply useApply)
{
List<UseApply> list = useApplyService.selectUseApplyList(useApply);
ExcelUtil<UseApply> util = new ExcelUtil<UseApply>(UseApply.class);
util.exportExcel(response, list, "使用申请数据");
}
/**
* 获取使用申请详细信息
*/
@PreAuthorize("@ss.hasPermi('system:apply:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return success(useApplyService.selectUseApplyById(id));
}
/**
* 新增使用申请
*/
@Log(title = "使用申请", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody UseApply useApply)
{
boolean add = false;
if (StringUtils.isEmpty(useApply.getId())) {
useApply.setId(IdUtil.simpleUUID());
add = true;
}
ProcessInstanceModel processInstanceModel = null;
try {
if(StringUtils.equals(useApply.getRecordStatus(), RecordStatusEnum.DRAFT.getCode())){
processInstanceModel = workflowService.saveExecute(useApply.getBpmClientInputModel(), useApply.getId());
}else if (StringUtils.equals(useApply.getRecordStatus(), RecordStatusEnum.CANCEL.getCode())){
processInstanceModel = workflowService.cancelExecute(useApply.getBpmClientInputModel(), useApply.getId());
}else{
processInstanceModel = workflowService.nextExecute(useApply.getBpmClientInputModel(), useApply.getId());
}
} catch (Exception e) {
e.printStackTrace();
}
if (processInstanceModel!=null&&StringUtils.isNotEmpty(processInstanceModel.getProcInstId())) {
if (add) {
useApply.setProcInstId(processInstanceModel.getProcInstId());
useApplyService.insertUseApply(useApply);
useApplyItemService.updateItemList(useApply.getItemList(),useApply.getId());
}else if (BooleanUtil.isTrue(useApply.getEditStatus())){
useApplyService.updateUseApply(useApply);
useApplyItemService.updateItemList(useApply.getItemList(),useApply.getId());
}else {
UseApply updateStatus = new UseApply();
updateStatus.setId(useApply.getId());
updateStatus.setRecordStatus(useApply.getRecordStatus());
useApplyService.updateUseApply(updateStatus);
}
return AjaxResult.success("操作成功",processInstanceModel);
}else {
return AjaxResult.error();
}
}
/**
* 修改使用申请
*/
@Log(title = "使用申请", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody UseApply useApply)
{
return toAjax(useApplyService.updateUseApply(useApply));
}
/**
* 删除使用申请
*/
@PreAuthorize("@ss.hasPermi('system:apply:remove')")
@Log(title = "使用申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(useApplyService.deleteUseApplyByIds(ids));
}
}

View File

@@ -0,0 +1,83 @@
package com.rzdata.web.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* 附件对象 t_attachment
*
* @author panchichun
* @date 2024-08-28
*/
@Data
public class Attachment extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private String id;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String fileType;
/** 业务类型 */
@Excel(name = "业务类型")
private String bizType;
/** 文件URL */
@Excel(name = "文件URL")
private String fileUrl;
/** 文件源名称 */
@Excel(name = "文件源名称")
private String fileOldName;
/** 文件新名称 */
@Excel(name = "文件新名称")
private String fileNewName;
/** 文件后缀 */
@Excel(name = "文件后缀")
private String suffixType;
/** 文件大小 */
@Excel(name = "文件大小")
private Long fileSize;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String businessId;
/** 序号 */
@Excel(name = "序号")
private Long sorts;
/** 删除;1是, 0:否 */
@Excel(name = "删除;1是, 0:否")
private String del;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createDate;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updateDate;
/** 失效时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "失效时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date failureTime;
private List<String> businessIds;
}

View File

@@ -0,0 +1,51 @@
package com.rzdata.web.domain;
import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.List;
/**
* 讨论对象 t_discussions
*
* @author panchichun
* @date 2024-08-30
*/
@Data
public class Discussions extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private String id;
/** 业务id */
@Excel(name = "业务id")
private String businessId;
/** 业务类型;doc:文档tool:工具) */
@Excel(name = "业务类型;", readConverterExp = "d=oc:文档tool:工具")
private String type;
/** 内容 */
@Excel(name = "内容")
private String content;
/** 逻辑删除;1删除0未删除 */
@Excel(name = "逻辑删除;", readConverterExp = "1=删除0未删除")
private String isDelete;
/** 创建人id */
@Excel(name = "创建人id")
private String createById;
/** 更新人id */
@Excel(name = "更新人id")
private String updateById;
private String nickName;
private List<Replies> repliesList;
}

View File

@@ -1,17 +1,24 @@
package com.rzdata.web.domain; package com.rzdata.web.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rzdata.common.annotation.Excel; import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity; import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/** /**
* 【请填写功能名称】对象 t_document * 【请填写功能名称】对象 t_document
* *
* @author ja * @author ja
* @date 2024-07-08 * @date 2024-07-08
*/ */
@Data
public class Document extends BaseEntity { public class Document extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键 */ /** 主键 */
@@ -26,129 +33,75 @@ public class Document extends BaseEntity {
private String docName; private String docName;
/** 文档类别 */ /** 文档类别 */
@Excel(name = "文档类别") @Excel(name = "类别", dictType="doc_class")
private String docType; private String docType;
/** 文档负责人 */ /** 文档负责人 */
@Excel(name = "文档负责人") @Excel(name = "负责人")
private String docPrincipals; private String docPrincipals;
/** 归属单位 **/
@Excel(name = "归属单位")
private String docRespDeptName;
/** 文档归属部门 */ /** 文档归属部门 */
@Excel(name = "文档归属部门")
private String docRespDept; private String docRespDept;
/** 文档来源 */ /** 文档来源 */
@Excel(name = "文档来源") @Excel(name = "来源", dictType="doc_source")
private String docSource; private String docSource;
/**
* 工具名称
*/
@Excel(name = "工具名称")
private String toolName;
/** 文档状态 */ /** 文档状态 */
@Excel(name = "文档状态") @Excel(name = "上传状态", dictType="doc_upload_status")
private String docStatus; private String docStatus;
/** 文档地址 */ /** 文档地址 */
@Excel(name = "文档地址")
private String docUrl; private String docUrl;
public void setDocId(String docId) /** 备注 */
{ private String remark;
this.docId = docId;
}
public String getDocId() /** 文档分类id */
{ private String docCategoryId;
return docId;
}
public void setDocCode(String docCode)
{
this.docCode = docCode;
}
public String getDocCode() /** 创建人id */
{ private String createById;
return docCode; /** 更新人id */
} private String updateById;
public void setDocName(String docName) /** 逻辑删除1删除0未删除 */
{ private String isDeleted;
this.docName = docName;
}
public String getDocName() /** 主键 **/
{ private List<String> ids;
return docName;
}
public void setDocType(String docType)
{
this.docType = docType;
}
public String getDocType() /** 附件名称 **/
{ private Attachment attachment;
return docType;
}
public void setDocPrincipals(String docPrincipals)
{
this.docPrincipals = docPrincipals;
}
public String getDocPrincipals() /** 关联工具id对象 */
{ private String toolId;
return docPrincipals;
}
public void setDocRespDept(String docRespDept)
{
this.docRespDept = docRespDept;
}
public String getDocRespDept() /** 工具信息 **/
{ private Tool tool;
return docRespDept;
}
public void setDocSource(String docSource)
{
this.docSource = docSource;
}
public String getDocSource() /** 创建时间 */
{ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
return docSource; @Excel(name = "创建时间", dateFormat="yyyy-MM-dd")
} private Date createTime;
public void setDocStatus(String docStatus)
{
this.docStatus = docStatus;
}
public String getDocStatus() private List<String> excludeFields;
{
return docStatus;
}
public void setDocUrl(String docUrl) private Boolean downloadCheck;
{
this.docUrl = docUrl;
}
public String getDocUrl() private Boolean downloadStatus;
{
return docUrl;
}
@Override private Boolean permissionCheck;
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) private Boolean permission;
.append("docId", getDocId())
.append("docCode", getDocCode())
.append("docName", getDocName())
.append("docType", getDocType())
.append("docPrincipals", getDocPrincipals())
.append("docRespDept", getDocRespDept())
.append("docSource", getDocSource())
.append("docStatus", getDocStatus())
.append("docUrl", getDocUrl())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
} }

View File

@@ -0,0 +1,43 @@
package com.rzdata.web.domain;
import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 工具下载统计对象 t_download_count
*
* @author 潘驰春
* @date 2024-08-31
*/
@Data
public class DownloadCount extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private String id;
/** 工具id */
@Excel(name = "工具id")
private String toolId;
/** 创建人id */
@Excel(name = "创建人id")
private String createById;
/** 更新人id */
@Excel(name = "更新人id")
private String updateById;
/** 工具code */
private String toolCode;
/** 工具名称 */
private String toolName;
/** 工具下载数量 */
private String toolDownNum;
private String nickName;
}

View File

@@ -0,0 +1,46 @@
package com.rzdata.web.domain;
import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.List;
/**
* 回复对象 t_replies
*
* @author panchichun
* @date 2024-08-30
*/
@Data
public class Replies extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private String id;
/** 讨论表id */
@Excel(name = "讨论表id")
private String discussionId;
/** 内容 */
@Excel(name = "内容")
private String content;
/** 逻辑删除;1删除0未删除 */
@Excel(name = "逻辑删除;", readConverterExp = "1=删除0未删除")
private String isDelete;
/** 创建人id */
@Excel(name = "创建人id")
private String createById;
/** 更新人id */
@Excel(name = "更新人id")
private String updateById;
private String nickName;
private List<String> discussionIdList;
}

View File

@@ -1,13 +1,9 @@
package com.rzdata.web.domain; package com.rzdata.web.domain;
import com.rzdata.common.annotation.Excel; import com.rzdata.common.annotation.Excel;
import com.rzdata.common.annotation.Excels;
import com.rzdata.common.core.domain.BaseEntity; import com.rzdata.common.core.domain.BaseEntity;
import com.rzdata.common.core.domain.entity.SysDept;
import com.rzdata.web.domain.bo.BpmClientInputModelBo; import com.rzdata.web.domain.bo.BpmClientInputModelBo;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List; import java.util.List;
@@ -86,6 +82,7 @@ public class Tool extends BaseEntity
private BpmClientInputModelBo bpmClientInputModel; private BpmClientInputModelBo bpmClientInputModel;
/** done办结doing进行中**/
private String recordStatus; private String recordStatus;
private Boolean editStatus; private Boolean editStatus;
@@ -101,4 +98,6 @@ public class Tool extends BaseEntity
private Boolean downloadStatus; private Boolean downloadStatus;
private List<String> excludeFields; private List<String> excludeFields;
private List<Document> documentList;
} }

View File

@@ -1,10 +1,12 @@
package com.rzdata.web.domain; package com.rzdata.web.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rzdata.common.annotation.Excel; import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity; import com.rzdata.common.core.domain.BaseEntity;
import com.rzdata.web.domain.bo.BpmClientInputModelBo; import com.rzdata.web.domain.bo.BpmClientInputModelBo;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -14,7 +16,7 @@ import java.util.List;
* @date 2024-08-21 * @date 2024-08-21
*/ */
@Data @Data
public class UseApply extends BaseEntity public class ToolApply extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -25,6 +27,15 @@ public class UseApply extends BaseEntity
@Excel(name = "申请人id") @Excel(name = "申请人id")
private String userId; private String userId;
@Excel(name = "工具ID")
private String toolId;
@Excel(name = "流程标题")
private String procTitle;
@Excel(name = "申请类型")
private String applyType;
@Excel(name = "申请人名称") @Excel(name = "申请人名称")
private String nickName; private String nickName;
@@ -39,6 +50,9 @@ public class UseApply extends BaseEntity
@Excel(name = "申请理由") @Excel(name = "申请理由")
private String reason; private String reason;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
private BpmClientInputModelBo bpmClientInputModel; private BpmClientInputModelBo bpmClientInputModel;
private String recordStatus; private String recordStatus;

View File

@@ -0,0 +1,38 @@
package com.rzdata.web.domain;
import com.rzdata.common.annotation.Excel;
import com.rzdata.common.core.domain.BaseEntity;
import lombok.Data;
/**
* 消息对象 tz_message
*
* @author ja
* @date 2024-08-31
*/
@Data
public class TzMessage extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 消息id */
private String id;
/** 消息接收者id */
@Excel(name = "消息接收者id")
private String receiverId;
/** 状态2已读1未读 */
@Excel(name = "状态", readConverterExp = "2=已读1未读")
private Integer states;
/** 消息推送内容 */
@Excel(name = "消息推送内容")
private String content;
/** 逻辑删除标记:1删除;0未删除 */
@Excel(name = "逻辑删除标记:1删除;0未删除")
private String deleted;
private String createById;
private String updateById;
}

View File

@@ -0,0 +1,71 @@
package com.rzdata.web.mapper;
import com.rzdata.web.domain.Attachment;
import java.util.List;
/**
* 附件Mapper接口
*
* @author panchichun
* @date 2024-08-28
*/
public interface AttachmentMapper
{
/**
* 查询附件
*
* @param id 附件主键
* @return 附件
*/
public Attachment selectAttachmentById(String id);
/**
* 查询附件列表
*
* @param attachment 附件
* @return 附件集合
*/
public List<Attachment> selectAttachmentList(Attachment attachment);
/**
* 新增附件
*
* @param attachment 附件
* @return 结果
*/
public int insertAttachment(Attachment attachment);
/**
* 修改附件
*
* @param attachment 附件
* @return 结果
*/
public int updateAttachment(Attachment attachment);
/**
* 根据业务id更新附件
* @param attachment
* @return
*/
public int updateAttachmentByBusinessId(Attachment attachment);
/**
* 删除附件
*
* @param id 附件主键
* @return 结果
*/
public int deleteAttachmentById(String id);
/**
* 批量删除附件
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteAttachmentByIds(String[] ids);
public int deleteAttachmentByBusinessId(List<String> list);
}

View File

@@ -0,0 +1,62 @@
package com.rzdata.web.mapper;
import com.rzdata.web.domain.Discussions;
import java.util.List;
/**
* 讨论Mapper接口
*
* @author panchichun
* @date 2024-08-30
*/
public interface DiscussionsMapper
{
/**
* 查询讨论
*
* @param id 讨论主键
* @return 讨论
*/
public Discussions selectDiscussionsById(String id);
/**
* 查询讨论列表
*
* @param discussions 讨论
* @return 讨论集合
*/
public List<Discussions> selectDiscussionsList(Discussions discussions);
/**
* 新增讨论
*
* @param discussions 讨论
* @return 结果
*/
public int insertDiscussions(Discussions discussions);
/**
* 修改讨论
*
* @param discussions 讨论
* @return 结果
*/
public int updateDiscussions(Discussions discussions);
/**
* 删除讨论
*
* @param id 讨论主键
* @return 结果
*/
public int deleteDiscussionsById(String id);
/**
* 批量删除讨论
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteDiscussionsByIds(String[] ids);
}

View File

@@ -0,0 +1,62 @@
package com.rzdata.web.mapper;
import com.rzdata.common.core.domain.DocumentCategory;
import java.util.List;
/**
* 文档资源分类管理Mapper接口
*
* @author spongepan
* @date 2024-08-27
*/
public interface DocumentCategoryMapper
{
/**
* 查询文档资源分类管理
*
* @param id 文档资源分类管理主键
* @return 文档资源分类管理
*/
public DocumentCategory selectDocumentCategoryById(String id);
/**
* 查询文档资源分类管理列表
*
* @param documentCategory 文档资源分类管理
* @return 文档资源分类管理集合
*/
public List<DocumentCategory> selectDocumentCategoryList(DocumentCategory documentCategory);
/**
* 新增文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
public int insertDocumentCategory(DocumentCategory documentCategory);
/**
* 修改文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
public int updateDocumentCategory(DocumentCategory documentCategory);
/**
* 删除文档资源分类管理
*
* @param id 文档资源分类管理主键
* @return 结果
*/
public int deleteDocumentCategoryById(String id);
/**
* 批量删除文档资源分类管理
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteDocumentCategoryByIds(String[] ids);
}

View File

@@ -3,6 +3,7 @@ package com.rzdata.web.mapper;
import com.rzdata.web.domain.Document; import com.rzdata.web.domain.Document;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 【请填写功能名称】Mapper接口 * 【请填写功能名称】Mapper接口
@@ -53,10 +54,18 @@ public interface DocumentMapper
public int deleteDocumentById(String id); public int deleteDocumentById(String id);
/** /**
* 批量删除【请填写功能名称】 * 逻辑删除
* *
* @param ids 需要删除的数据主键集合 * @param Document 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteDocumentByIds(String[] ids); public int isDeleteDocumentByIds(Document Document);
public int updatePushDoc(Document doc);
public int batchDeleteById(List<String> list);
List<Map<String, Object>> countType();
List<Map<String, Object>> countSource();
} }

View File

@@ -0,0 +1,64 @@
package com.rzdata.web.mapper;
import com.rzdata.web.domain.DownloadCount;
import java.util.List;
/**
* 工具下载统计Mapper接口
*
* @author 潘驰春
* @date 2024-08-31
*/
public interface DownloadCountMapper
{
/**
* 查询工具下载统计
*
* @param id 工具下载统计主键
* @return 工具下载统计
*/
public DownloadCount selectDownloadCountById(String id);
/**
* 查询工具下载统计列表
*
* @param downloadCount 工具下载统计
* @return 工具下载统计集合
*/
public List<DownloadCount> selectDownloadCountList(DownloadCount downloadCount);
/**
* 新增工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
public int insertDownloadCount(DownloadCount downloadCount);
/**
* 修改工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
public int updateDownloadCount(DownloadCount downloadCount);
/**
* 删除工具下载统计
*
* @param id 工具下载统计主键
* @return 结果
*/
public int deleteDownloadCountById(String id);
/**
* 批量删除工具下载统计
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteDownloadCountByIds(String[] ids);
List<DownloadCount> userDownList(DownloadCount downloadCount);
}

View File

@@ -0,0 +1,62 @@
package com.rzdata.web.mapper;
import com.rzdata.web.domain.Replies;
import java.util.List;
/**
* 回复Mapper接口
*
* @author panchichun
* @date 2024-08-30
*/
public interface RepliesMapper
{
/**
* 查询回复
*
* @param id 回复主键
* @return 回复
*/
public Replies selectRepliesById(String id);
/**
* 查询回复列表
*
* @param replies 回复
* @return 回复集合
*/
public List<Replies> selectRepliesList(Replies replies);
/**
* 新增回复
*
* @param replies 回复
* @return 结果
*/
public int insertReplies(Replies replies);
/**
* 修改回复
*
* @param replies 回复
* @return 结果
*/
public int updateReplies(Replies replies);
/**
* 删除回复
*
* @param id 回复主键
* @return 结果
*/
public int deleteRepliesById(String id);
/**
* 批量删除回复
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteRepliesByIds(String[] ids);
}

View File

@@ -1,17 +1,17 @@
package com.rzdata.web.mapper; package com.rzdata.web.mapper;
import java.util.List; import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.domain.UseApply;
import com.rzdata.web.domain.Tool;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 使用申请Mapper接口 * 使用申请Mapper接口
* *
* @author ja * @author ja
* @date 2024-08-21 * @date 2024-08-21
*/ */
public interface UseApplyMapper public interface ToolApplyMapper
{ {
/** /**
* 查询使用申请 * 查询使用申请
@@ -19,33 +19,33 @@ public interface UseApplyMapper
* @param id 使用申请主键 * @param id 使用申请主键
* @return 使用申请 * @return 使用申请
*/ */
public UseApply selectUseApplyById(String id); public ToolApply selectToolApplyById(String id);
UseApply getInfoByBpmcId(String bpmcId); ToolApply getInfoByBpmcId(String bpmcId);
/** /**
* 查询使用申请列表 * 查询使用申请列表
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 使用申请集合 * @return 使用申请集合
*/ */
public List<UseApply> selectUseApplyList(UseApply useApply); public List<ToolApply> selectToolApplyList(ToolApply toolApply);
/** /**
* 新增使用申请 * 新增使用申请
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 结果 * @return 结果
*/ */
public int insertUseApply(UseApply useApply); public int insertToolApply(ToolApply toolApply);
/** /**
* 修改使用申请 * 修改使用申请
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 结果 * @return 结果
*/ */
public int updateUseApply(UseApply useApply); public int updateToolApply(ToolApply toolApply);
/** /**
* 删除使用申请 * 删除使用申请
@@ -53,7 +53,7 @@ public interface UseApplyMapper
* @param id 使用申请主键 * @param id 使用申请主键
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyById(String id); public int deleteToolApplyById(String id);
/** /**
* 批量删除使用申请 * 批量删除使用申请
@@ -61,7 +61,7 @@ public interface UseApplyMapper
* @param ids 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyByIds(String[] ids); public int deleteToolApplyByIds(String[] ids);
int checkUseApply(@Param("toolId") String toolId, @Param("userId") String userId); int checkToolApply(@Param("toolId") String toolId, @Param("userId") String userId);
} }

View File

@@ -3,6 +3,7 @@ package com.rzdata.web.mapper;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 工具信息Mapper接口 * 工具信息Mapper接口
@@ -63,4 +64,8 @@ public interface ToolMapper
* @return 结果 * @return 结果
*/ */
public int deleteToolByToolIds(String[] toolIds); public int deleteToolByToolIds(String[] toolIds);
List<Map<String, Object>> countToolType();
List<Map<String, Object>> toolSource();
List<Map<String, Object>> recordStatus();
} }

View File

@@ -0,0 +1,77 @@
package com.rzdata.web.mapper;
import com.rzdata.web.domain.TzMessage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 消息Mapper接口
*
* @author ja
* @date 2024-08-31
*/
public interface TzMessageMapper
{
/**
* 查询消息
*
* @param id 消息主键
* @return 消息
*/
public TzMessage selectTzMessageById(String id);
/**
* 查询消息列表
*
* @param tzMessage 消息
* @return 消息集合
*/
public List<TzMessage> selectTzMessageList(TzMessage tzMessage);
/**
* 新增消息
*
* @param tzMessage 消息
* @return 结果
*/
public int insertTzMessage(TzMessage tzMessage);
/**
* 修改消息
*
* @param tzMessage 消息
* @return 结果
*/
public int updateTzMessage(TzMessage tzMessage);
/**
* 删除消息
*
* @param id 消息主键
* @return 结果
*/
public int deleteTzMessageById(String id);
/**
* 批量删除消息
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteTzMessageByIds(String[] ids);
/**
* 更新所有的消息为已读
* @param tzMessage
* @return
*/
public int updateAllMarkedRead(TzMessage tzMessage);
/**
* 批量插入
* @param tzMessageList
* @return
*/
public int batchInsert(@Param("tzMessageList") List<TzMessage> tzMessageList);
}

View File

@@ -0,0 +1,70 @@
package com.rzdata.web.service;
import com.rzdata.web.domain.Attachment;
import java.util.List;
/**
* 附件Service接口
*
* @author panchichun
* @date 2024-08-28
*/
public interface IAttachmentService
{
/**
* 查询附件
*
* @param id 附件主键
* @return 附件
*/
public Attachment selectAttachmentById(String id);
/**
* 查询附件列表
*
* @param attachment 附件
* @return 附件集合
*/
public List<Attachment> selectAttachmentList(Attachment attachment);
/**
* 新增附件
*
* @param attachment 附件
* @return 结果
*/
public int insertAttachment(Attachment attachment);
/**
* 修改附件
*
* @param attachment 附件
* @return 结果
*/
public int updateAttachment(Attachment attachment);
public int updateAttachmentByBusinessId(Attachment attachment);
/**
* 批量删除附件
*
* @param ids 需要删除的附件主键集合
* @return 结果
*/
public int deleteAttachmentByIds(String[] ids);
/**
* 根据业务id批量删除
* @param businessIds
* @return
*/
public int deleteAttachmentByBusinessId(List<String> businessIds);
/**
* 删除附件信息
*
* @param id 附件主键
* @return 结果
*/
public int deleteAttachmentById(String id);
}

View File

@@ -0,0 +1,62 @@
package com.rzdata.web.service;
import com.rzdata.web.domain.Discussions;
import java.util.List;
/**
* 讨论Service接口
*
* @author panchichun
* @date 2024-08-30
*/
public interface IDiscussionsService
{
/**
* 查询讨论
*
* @param id 讨论主键
* @return 讨论
*/
public Discussions selectDiscussionsById(String id);
/**
* 查询讨论列表
*
* @param discussions 讨论
* @return 讨论集合
*/
public List<Discussions> selectDiscussionsList(Discussions discussions);
/**
* 新增讨论
*
* @param discussions 讨论
* @return 结果
*/
public int insertDiscussions(Discussions discussions);
/**
* 修改讨论
*
* @param discussions 讨论
* @return 结果
*/
public int updateDiscussions(Discussions discussions);
/**
* 批量删除讨论
*
* @param ids 需要删除的讨论主键集合
* @return 结果
*/
public int deleteDiscussionsByIds(String[] ids);
/**
* 删除讨论信息
*
* @param id 讨论主键
* @return 结果
*/
public int deleteDiscussionsById(String id);
}

View File

@@ -0,0 +1,71 @@
package com.rzdata.web.service;
import com.rzdata.common.core.domain.TreeSelect;
import com.rzdata.common.core.domain.DocumentCategory;
import java.util.List;
/**
* 文档资源分类管理Service接口
*
* @author spongepan
* @date 2024-08-27
*/
public interface IDocumentCategoryService
{
/**
* 查询文档资源分类管理
*
* @param id 文档资源分类管理主键
* @return 文档资源分类管理
*/
public DocumentCategory selectDocumentCategoryById(String id);
/**
* 查询文档资源分类管理列表
*
* @param documentCategory 文档资源分类管理
* @return 文档资源分类管理集合
*/
public List<DocumentCategory> selectDocumentCategoryList(DocumentCategory documentCategory);
/**
* 新增文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
public int insertDocumentCategory(DocumentCategory documentCategory);
/**
* 修改文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
public int updateDocumentCategory(DocumentCategory documentCategory);
/**
* 批量删除文档资源分类管理
*
* @param ids 需要删除的文档资源分类管理主键集合
* @return 结果
*/
public int deleteDocumentCategoryByIds(String[] ids);
/**
* 删除文档资源分类管理信息
*
* @param id 文档资源分类管理主键
* @return 结果
*/
public int deleteDocumentCategoryById(String id);
/**
* 获取文档资源树
* @param documentCategory
* @return
*/
List<TreeSelect> selectDocumentTreeList(DocumentCategory documentCategory);
}

View File

@@ -3,6 +3,7 @@ package com.rzdata.web.service;
import com.rzdata.web.domain.Document; import com.rzdata.web.domain.Document;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 【请填写功能名称】Service接口 * 【请填写功能名称】Service接口
@@ -28,6 +29,9 @@ public interface IDocumentService
*/ */
public List<Document> selectDocumentList(Document document); public List<Document> selectDocumentList(Document document);
public List<Document> selectDocumentListAll(Document document);
/** /**
* 新增【请填写功能名称】 * 新增【请填写功能名称】
* *
@@ -62,4 +66,15 @@ public interface IDocumentService
* @return 结果 * @return 结果
*/ */
public int deleteDocumentById(String id); public int deleteDocumentById(String id);
/**
* 发布文档
* @param ids
* @return
*/
int pushDoc(String[] ids);
public int batchDeleteById(List<String> docIds);
Map<String, Object> statistics();
} }

View File

@@ -0,0 +1,69 @@
package com.rzdata.web.service;
import com.rzdata.web.domain.DownloadCount;
import java.util.List;
/**
* 工具下载统计Service接口
*
* @author 潘驰春
* @date 2024-08-31
*/
public interface IDownloadCountService
{
/**
* 查询工具下载统计
*
* @param id 工具下载统计主键
* @return 工具下载统计
*/
public DownloadCount selectDownloadCountById(String id);
/**
* 查询工具下载统计列表
*
* @param downloadCount 工具下载统计
* @return 工具下载统计集合
*/
public List<DownloadCount> selectDownloadCountList(DownloadCount downloadCount);
/**
* 新增工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
public int insertDownloadCount(DownloadCount downloadCount);
/**
* 修改工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
public int updateDownloadCount(DownloadCount downloadCount);
/**
* 批量删除工具下载统计
*
* @param ids 需要删除的工具下载统计主键集合
* @return 结果
*/
public int deleteDownloadCountByIds(String[] ids);
/**
* 删除工具下载统计信息
*
* @param id 工具下载统计主键
* @return 结果
*/
public int deleteDownloadCountById(String id);
/**
* 用户下载列表
* @param downloadCount
* @return
*/
List<DownloadCount> userDownList(DownloadCount downloadCount);
}

View File

@@ -0,0 +1,62 @@
package com.rzdata.web.service;
import com.rzdata.web.domain.Replies;
import java.util.List;
/**
* 回复Service接口
*
* @author panchichun
* @date 2024-08-30
*/
public interface IRepliesService
{
/**
* 查询回复
*
* @param id 回复主键
* @return 回复
*/
public Replies selectRepliesById(String id);
/**
* 查询回复列表
*
* @param replies 回复
* @return 回复集合
*/
public List<Replies> selectRepliesList(Replies replies);
/**
* 新增回复
*
* @param replies 回复
* @return 结果
*/
public int insertReplies(Replies replies);
/**
* 修改回复
*
* @param replies 回复
* @return 结果
*/
public int updateReplies(Replies replies);
/**
* 批量删除回复
*
* @param ids 需要删除的回复主键集合
* @return 结果
*/
public int deleteRepliesByIds(String[] ids);
/**
* 删除回复信息
*
* @param id 回复主键
* @return 结果
*/
public int deleteRepliesById(String id);
}

View File

@@ -1,8 +1,7 @@
package com.rzdata.web.service; package com.rzdata.web.service;
import java.util.List; import java.util.List;
import com.rzdata.web.domain.UseApply; import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.domain.Tool;
/** /**
* 使用申请Service接口 * 使用申请Service接口
@@ -10,7 +9,7 @@ import com.rzdata.web.domain.Tool;
* @author ja * @author ja
* @date 2024-08-21 * @date 2024-08-21
*/ */
public interface IUseApplyService public interface IToolApplyService
{ {
/** /**
* 查询使用申请 * 查询使用申请
@@ -18,33 +17,33 @@ public interface IUseApplyService
* @param id 使用申请主键 * @param id 使用申请主键
* @return 使用申请 * @return 使用申请
*/ */
public UseApply selectUseApplyById(String id); public ToolApply selectToolApplyById(String id);
UseApply getInfoByBpmcId(String bpmcId); ToolApply getInfoByBpmcId(String bpmcId);
/** /**
* 查询使用申请列表 * 查询使用申请列表
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 使用申请集合 * @return 使用申请集合
*/ */
public List<UseApply> selectUseApplyList(UseApply useApply); public List<ToolApply> selectToolApplyList(ToolApply toolApply);
/** /**
* 新增使用申请 * 新增使用申请
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 结果 * @return 结果
*/ */
public int insertUseApply(UseApply useApply); public int insertToolApply(ToolApply toolApply);
/** /**
* 修改使用申请 * 修改使用申请
* *
* @param useApply 使用申请 * @param toolApply 使用申请
* @return 结果 * @return 结果
*/ */
public int updateUseApply(UseApply useApply); public int updateToolApply(ToolApply toolApply);
/** /**
* 批量删除使用申请 * 批量删除使用申请
@@ -52,7 +51,7 @@ public interface IUseApplyService
* @param ids 需要删除的使用申请主键集合 * @param ids 需要删除的使用申请主键集合
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyByIds(String[] ids); public int deleteToolApplyByIds(String[] ids);
/** /**
* 删除使用申请信息 * 删除使用申请信息
@@ -60,7 +59,9 @@ public interface IUseApplyService
* @param id 使用申请主键 * @param id 使用申请主键
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyById(String id); public int deleteToolApplyById(String id);
boolean checkUseApply(String toolId, String userId); boolean checkToolApply(String toolId, String userId);
void sendTzMessage(ToolApply toolApply);
} }

View File

@@ -3,6 +3,7 @@ package com.rzdata.web.service;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 工具信息Service接口 * 工具信息Service接口
@@ -63,4 +64,24 @@ public interface IToolService
* @return 结果 * @return 结果
*/ */
public int deleteToolByToolId(String toolId); public int deleteToolByToolId(String toolId);
/**
* 删除文档和附件
* @param tool
*/
public void deleteDocAndAtt(Tool tool);
/**
* 新增文档和附件
* @param tool
*/
public void addDocAndAtt(Tool tool);
void recordToolApply(Tool tool);
void updateDocPushStatus(Tool tTool);
void sendTzMessage(Tool tTool);
Map<String, Object> statistics();
} }

View File

@@ -0,0 +1,67 @@
package com.rzdata.web.service;
import com.rzdata.web.domain.TzMessage;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 消息Service接口
*
* @author ja
* @date 2024-08-31
*/
public interface ITzMessageService
{
/**
* 查询消息
*
* @param id 消息主键
* @return 消息
*/
public TzMessage selectTzMessageById(String id);
/**
* 查询消息列表
*
* @param tzMessage 消息
* @return 消息集合
*/
public List<TzMessage> selectTzMessageList(TzMessage tzMessage);
/**
* 新增消息
*
* @param tzMessage 消息
* @return 结果
*/
public int insertTzMessage(TzMessage tzMessage);
/**
* 修改消息
*
* @param tzMessage 消息
* @return 结果
*/
public int updateTzMessage(TzMessage tzMessage);
/**
* 批量删除消息
*
* @param ids 需要删除的消息主键集合
* @return 结果
*/
public int deleteTzMessageByIds(String[] ids);
/**
* 删除消息信息
*
* @param id 消息主键
* @return 结果
*/
public int deleteTzMessageById(String id);
int allMarkedRead(TzMessage tzMessage);
public int batchInsert(List<TzMessage> tzMessageList);
}

View File

@@ -1,8 +1,6 @@
package com.rzdata.web.service; package com.rzdata.web.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
@@ -10,10 +8,12 @@ import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.blueland.bpmclient.BpmClient; import com.blueland.bpmclient.BpmClient;
import com.blueland.bpmclient.model.*; import com.blueland.bpmclient.model.*;
import com.rzdata.common.core.domain.entity.SysUser;
import com.rzdata.common.utils.SecurityUtils; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.common.utils.StringUtils; import com.rzdata.common.utils.StringUtils;
import com.rzdata.system.service.ISysConfigService; import com.rzdata.system.service.ISysConfigService;
import com.rzdata.system.service.ISysDeptService; import com.rzdata.system.service.ISysDeptService;
import com.rzdata.system.service.ISysUserService;
import com.rzdata.web.core.config.BpmcConfig; import com.rzdata.web.core.config.BpmcConfig;
import com.rzdata.web.domain.WorkFlowInfo; import com.rzdata.web.domain.WorkFlowInfo;
import com.rzdata.web.domain.bo.BpmClientInputModelBo; import com.rzdata.web.domain.bo.BpmClientInputModelBo;
@@ -23,9 +23,10 @@ import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.rmi.ServerException; import java.util.ArrayList;
import java.util.*; import java.util.HashMap;
import java.util.stream.Collectors; import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@Service("workflowService") @Service("workflowService")
@@ -48,6 +49,9 @@ public class WorkflowService {
@Autowired @Autowired
ISysDeptService sysDeptService; ISysDeptService sysDeptService;
@Autowired
ISysUserService sysUserService;
@Autowired @Autowired
IWorkflowLogService iWorkflowLogService; IWorkflowLogService iWorkflowLogService;
private final static String CUR_ACT_DEF_KEY = "curActDef"; private final static String CUR_ACT_DEF_KEY = "curActDef";
@@ -359,6 +363,16 @@ public class WorkflowService {
pageVo.setPageNumber(pageResultModel.getThisPageNumber()); pageVo.setPageNumber(pageResultModel.getThisPageNumber());
pageVo.setTotalCount(pageResultModel.getTotalCount()); pageVo.setTotalCount(pageResultModel.getTotalCount());
List<WorkFlowInfo> workFlowInfos = JSONUtil.toList(JSONUtil.toJsonStr(pageResultModel.getResult()), WorkFlowInfo.class); List<WorkFlowInfo> workFlowInfos = JSONUtil.toList(JSONUtil.toJsonStr(pageResultModel.getResult()), WorkFlowInfo.class);
for(WorkFlowInfo workFlowInfo : workFlowInfos){
SysUser startSysUser = sysUserService.selectUserByUserName(workFlowInfo.getStartUserId());
if(null != startSysUser){
workFlowInfo.setStartUserName(startSysUser.getUserName());
}
SysUser sendSysUser = sysUserService.selectUserByUserName(workFlowInfo.getSendUserId());
if(null != sendSysUser){
workFlowInfo.setSendUserName(sendSysUser.getUserName());
}
}
pageVo.setResult(workFlowInfos); pageVo.setResult(workFlowInfos);
return pageVo; return pageVo;
} catch (Exception ex) { } catch (Exception ex) {

View File

@@ -0,0 +1,117 @@
package com.rzdata.web.service.impl;
import java.util.List;
import com.rzdata.web.domain.Attachment;
import com.rzdata.web.mapper.AttachmentMapper;
import com.rzdata.web.service.IAttachmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 附件Service业务层处理
*
* @author panchichun
* @date 2024-08-28
*/
@Service
public class AttachmentServiceImpl implements IAttachmentService
{
@Autowired
private AttachmentMapper attachmentMapper;
/**
* 查询附件
*
* @param id 附件主键
* @return 附件
*/
@Override
public Attachment selectAttachmentById(String id)
{
return attachmentMapper.selectAttachmentById(id);
}
/**
* 查询附件列表
*
* @param attachment 附件
* @return 附件
*/
@Override
public List<Attachment> selectAttachmentList(Attachment attachment)
{
return attachmentMapper.selectAttachmentList(attachment);
}
/**
* 新增附件
*
* @param attachment 附件
* @return 结果
*/
@Override
public int insertAttachment(Attachment attachment)
{
return attachmentMapper.insertAttachment(attachment);
}
/**
* 修改附件
*
* @param attachment 附件
* @return 结果
*/
@Override
public int updateAttachment(Attachment attachment)
{
return attachmentMapper.updateAttachment(attachment);
}
/**
* 修改附件
*
* @param attachment 附件
* @return 结果
*/
@Override
public int updateAttachmentByBusinessId(Attachment attachment)
{
return attachmentMapper.updateAttachmentByBusinessId(attachment);
}
/**
* 批量删除附件
*
* @param ids 需要删除的附件主键
* @return 结果
*/
@Override
public int deleteAttachmentByIds(String[] ids)
{
return attachmentMapper.deleteAttachmentByIds(ids);
}
/**
* 批量删除附件
*
* @param ids 需要删除的附件主键
* @return 结果
*/
@Override
public int deleteAttachmentByBusinessId(List<String> businessIds)
{
return attachmentMapper.deleteAttachmentByBusinessId(businessIds);
}
/**
* 删除附件信息
*
* @param id 附件主键
* @return 结果
*/
@Override
public int deleteAttachmentById(String id)
{
return attachmentMapper.deleteAttachmentById(id);
}
}

View File

@@ -0,0 +1,142 @@
package com.rzdata.web.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Snowflake;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.Discussions;
import com.rzdata.web.domain.Replies;
import com.rzdata.web.mapper.DiscussionsMapper;
import com.rzdata.web.service.IDiscussionsService;
import com.rzdata.web.service.IRepliesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 讨论Service业务层处理
*
* @author panchichun
* @date 2024-08-30
*/
@Service
public class DiscussionsServiceImpl implements IDiscussionsService
{
@Autowired
private DiscussionsMapper discussionsMapper;
@Autowired
private Snowflake snowflake;
@Autowired
private IRepliesService iRepliesService;
/**
* 查询讨论
*
* @param id 讨论主键
* @return 讨论
*/
@Override
public Discussions selectDiscussionsById(String id)
{
return discussionsMapper.selectDiscussionsById(id);
}
/**
* 查询讨论列表
*
* @param discussions 讨论
* @return 讨论
*/
@Override
public List<Discussions> selectDiscussionsList(Discussions discussions)
{
List<Discussions> discussionsList = discussionsMapper.selectDiscussionsList(discussions);
//组装回复对象数据
assembleReplies(discussionsList);
return discussionsList;
}
/**
* 组装回复对象数据
* @param discussionsList
*/
private void assembleReplies(List<Discussions> discussionsList) {
List<String> idList = discussionsList.stream().map(Discussions::getId).collect(Collectors.toList());
Replies replies = new Replies();
replies.setDiscussionIdList(idList);
List<Replies> repliesList = iRepliesService.selectRepliesList(replies);
if(CollUtil.isNotEmpty(repliesList)){
for (Discussions disItem : discussionsList) {
List<Replies> addList = new ArrayList<>();
for (Replies repItem : repliesList) {
if(repItem.getDiscussionId().equals(disItem.getId())){
addList.add(repItem);
}
}
if(CollUtil.isNotEmpty(addList)){
disItem.setRepliesList(addList);
}
}
}
}
/**
* 新增讨论
*
* @param discussions 讨论
* @return 结果
*/
@Override
public int insertDiscussions(Discussions discussions)
{
discussions.setId(String.valueOf(snowflake.nextId()));
discussions.setCreateTime(DateUtils.getNowDate());
discussions.setCreateBy(SecurityUtils.getLoginUser().getUsername());
discussions.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
discussions.setIsDelete(Constants.STR_ZERO);
return discussionsMapper.insertDiscussions(discussions);
}
/**
* 修改讨论
*
* @param discussions 讨论
* @return 结果
*/
@Override
public int updateDiscussions(Discussions discussions)
{
discussions.setUpdateTime(DateUtils.getNowDate());
return discussionsMapper.updateDiscussions(discussions);
}
/**
* 批量删除讨论
*
* @param ids 需要删除的讨论主键
* @return 结果
*/
@Override
public int deleteDiscussionsByIds(String[] ids)
{
return discussionsMapper.deleteDiscussionsByIds(ids);
}
/**
* 删除讨论信息
*
* @param id 讨论主键
* @return 结果
*/
@Override
public int deleteDiscussionsById(String id)
{
return discussionsMapper.deleteDiscussionsById(id);
}
}

View File

@@ -0,0 +1,183 @@
package com.rzdata.web.service.impl;
import cn.hutool.core.lang.Snowflake;
import com.rzdata.common.core.domain.TreeSelect;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.common.utils.StringUtils;
import com.rzdata.common.core.domain.DocumentCategory;
import com.rzdata.web.mapper.DocumentCategoryMapper;
import com.rzdata.web.service.IDocumentCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
/**
* 文档资源分类管理Service业务层处理
*
* @author spongepan
* @date 2024-08-27
*/
@Service
public class DocumentCategoryServiceImpl implements IDocumentCategoryService
{
@Autowired
private DocumentCategoryMapper documentCategoryMapper;
@Autowired
private Snowflake snowflake;
/**
* 查询文档资源分类管理
*
* @param id 文档资源分类管理主键
* @return 文档资源分类管理
*/
@Override
public DocumentCategory selectDocumentCategoryById(String id)
{
return documentCategoryMapper.selectDocumentCategoryById(id);
}
/**
* 查询文档资源分类管理列表
*
* @param documentCategory 文档资源分类管理
* @return 文档资源分类管理
*/
@Override
public List<DocumentCategory> selectDocumentCategoryList(DocumentCategory documentCategory)
{
return documentCategoryMapper.selectDocumentCategoryList(documentCategory);
}
/**
* 新增文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
@Override
public int insertDocumentCategory(DocumentCategory documentCategory)
{
documentCategory.setId(String.valueOf(snowflake.nextId()));
documentCategory.setCreateTime(DateUtils.getNowDate());
documentCategory.setCreateBy(SecurityUtils.getLoginUser().getUsername());
documentCategory.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
return documentCategoryMapper.insertDocumentCategory(documentCategory);
}
/**
* 修改文档资源分类管理
*
* @param documentCategory 文档资源分类管理
* @return 结果
*/
@Override
public int updateDocumentCategory(DocumentCategory documentCategory)
{
documentCategory.setUpdateTime(DateUtils.getNowDate());
return documentCategoryMapper.updateDocumentCategory(documentCategory);
}
/**
* 批量删除文档资源分类管理
*
* @param ids 需要删除的文档资源分类管理主键
* @return 结果
*/
@Override
public int deleteDocumentCategoryByIds(String[] ids)
{
return documentCategoryMapper.deleteDocumentCategoryByIds(ids);
}
/**
* 删除文档资源分类管理信息
*
* @param id 文档资源分类管理主键
* @return 结果
*/
@Override
public int deleteDocumentCategoryById(String id)
{
return documentCategoryMapper.deleteDocumentCategoryById(id);
}
@Override
public List<TreeSelect> selectDocumentTreeList(DocumentCategory documentCategory) {
List<DocumentCategory> documentCategoryList = documentCategoryMapper.selectDocumentCategoryList(documentCategory);
return buildDeptTreeSelect(documentCategoryList);
}
public List<TreeSelect> buildDeptTreeSelect(List<DocumentCategory> documentCategory)
{
List<DocumentCategory> docCategoryTree = buildDeptTree(documentCategory);
return docCategoryTree.stream().map(TreeSelect::new).collect(Collectors.toList());
}
public List<DocumentCategory> buildDeptTree(List<DocumentCategory> documentCategoryList)
{
List<DocumentCategory> returnList = new ArrayList<DocumentCategory>();
List<String> tempList = documentCategoryList.stream().map(DocumentCategory::getId).collect(Collectors.toList());
for (DocumentCategory documentCategory : documentCategoryList)
{
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(documentCategory.getParentId()))
{
recursionFn(documentCategoryList, documentCategory);
returnList.add(documentCategory);
}
}
if (returnList.isEmpty())
{
returnList = documentCategoryList;
}
return returnList;
}
/**
* 递归列表
*/
private void recursionFn(List<DocumentCategory> list, DocumentCategory t)
{
// 得到子节点列表
List<DocumentCategory> childList = getChildList(list, t);
t.setChildren(childList);
for (DocumentCategory tChild : childList)
{
if (hasChild(list, tChild))
{
recursionFn(list, tChild);
}
}
}
private List<DocumentCategory> getChildList(List<DocumentCategory> list, DocumentCategory t)
{
List<DocumentCategory> tlist = new ArrayList<DocumentCategory>();
Iterator<DocumentCategory> it = list.iterator();
while (it.hasNext())
{
DocumentCategory n = (DocumentCategory) it.next();
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().equals(t.getId()))
{
tlist.add(n);
}
}
return tlist;
}
/**
* 判断是否有子节点
*/
private boolean hasChild(List<DocumentCategory> list, DocumentCategory t)
{
return getChildList(list, t).size() > 0;
}
}

View File

@@ -1,14 +1,28 @@
package com.rzdata.web.service.impl; package com.rzdata.web.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.core.domain.entity.SysDictData;
import com.rzdata.common.core.domain.entity.SysUser;
import com.rzdata.common.utils.DateUtils; import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.system.service.ISysDictTypeService;
import com.rzdata.web.domain.Attachment;
import com.rzdata.web.domain.Document; import com.rzdata.web.domain.Document;
import com.rzdata.web.domain.Tool;
import com.rzdata.web.mapper.DocumentMapper; import com.rzdata.web.mapper.DocumentMapper;
import com.rzdata.web.service.IDocumentService; import com.rzdata.web.service.IDocumentService;
import com.rzdata.web.service.IToolApplyService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 【请填写功能名称】Service业务层处理 * 【请填写功能名称】Service业务层处理
@@ -21,6 +35,16 @@ public class DocumentServiceImpl implements IDocumentService
{ {
@Autowired @Autowired
private DocumentMapper documentMapper; private DocumentMapper documentMapper;
@Autowired
private AttachmentServiceImpl attachmentService;
@Autowired
private ToolServiceImpl toolService;
@Autowired
private IToolApplyService iUseApplyService;
@Autowired
private ISysDictTypeService sysDictTypeService;
/** /**
* 查询【请填写功能名称】 * 查询【请填写功能名称】
@@ -31,19 +55,85 @@ public class DocumentServiceImpl implements IDocumentService
@Override @Override
public Document selectDocumentById(String docId) public Document selectDocumentById(String docId)
{ {
return documentMapper.selectDocumentById(docId); Document document = documentMapper.selectDocumentById(docId);
if(StrUtil.isNotBlank(document.getToolId())){
Tool tool = toolService.selectToolByToolId(document.getToolId());
document.setToolName(tool.getToolName());
}
Attachment attachment = new Attachment();
attachment.setBusinessId(document.getDocId());
attachment.setDel(Constants.STR_ZERO);
List<Attachment> attachments = attachmentService.selectAttachmentList(attachment);
if(CollUtil.isNotEmpty(attachments)){
document.setAttachment(attachments.get(0));
}
return document;
} }
/** /**
* 查询【请填写功能名称】列表 * 查询【请填写功能名称】列表
* *
* @param Document 【请填写功能名称】 * @param document 【请填写功能名称】
* @return 【请填写功能名称】 * @return 【请填写功能名称】
*/ */
@Override @Override
public List<Document> selectDocumentList(Document Document) public List<Document> selectDocumentList(Document document)
{ {
return documentMapper.selectDocumentList(Document); if (BooleanUtil.isTrue(document.getPermissionCheck())) {
if(!SysUser.isAdmin(SecurityUtils.getUserId())){
document.setPermission(SecurityUtils.hasPermi(Constants.DOC_VIEW_PERMISSION));
}
}
List<Document> documents = documentMapper.selectDocumentList(document);
if(CollUtil.isEmpty(documents)){
return documents;
}
List<String> docIds = documents.stream().map(Document::getDocId).collect(Collectors.toList());
Attachment attachment = new Attachment();
attachment.setBusinessIds(docIds);
attachment.setDel(Constants.STR_ZERO);
List<Attachment> attachments = attachmentService.selectAttachmentList(attachment);
if(CollUtil.isEmpty(attachments)){
return documents;
}
for (Document doc : documents) {
for (Attachment att : attachments) {
if(doc.getDocId().equals(att.getBusinessId())){
doc.setAttachment(att);
break;
}
}
}
//前端传传参开启下载权限验证
if (BooleanUtil.isTrue(document.getDownloadCheck())) {
String userId = SecurityUtils.getUserId().toString();
for (Document dc: documents) {
//文档中 是创建人 或者 配置了下载权限
boolean downStatus = false;
if(SecurityUtils.hasPermi(Constants.DOC_DOWNLOAD_PERMISSION) || userId.equals(dc.getCreateById()) || SysUser.isAdmin(SecurityUtils.getUserId())){
downStatus = true;
}else if(StrUtil.isNotBlank(dc.getToolId()) && iUseApplyService.checkToolApply(dc.getToolId(),userId)){
downStatus = true;
}
dc.setDownloadStatus(downStatus);
}
}
return documents;
}
/**
* 查询【请填写功能名称】列表
*
* @param document 【请填写功能名称】
* @return 【请填写功能名称】
*/
@Override
public List<Document> selectDocumentListAll(Document document)
{
List<Document> documents = documentMapper.selectDocumentList(document);
return documents;
} }
/** /**
@@ -60,11 +150,26 @@ public class DocumentServiceImpl implements IDocumentService
return documentMapper.insertDocument(document); return documentMapper.insertDocument(document);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public String saveDocument(Document document){ public String saveDocument(Document document){
document.setCreateTime(DateUtils.getNowDate());
String docId = IdUtil.simpleUUID(); String docId = IdUtil.simpleUUID();
document.setDocId(docId); document.setDocId(docId);
document.setCreateBy(SecurityUtils.getLoginUser().getUsername());
document.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
document.setIsDeleted(Constants.STR_ZERO);
document.setCreateTime(new Date());
int result = documentMapper.insertDocument(document); int result = documentMapper.insertDocument(document);
if(ObjectUtil.isNotEmpty(document.getAttachment())){
Attachment attachment = document.getAttachment();
attachment.setId(IdUtil.simpleUUID());
attachment.setCreateBy(SecurityUtils.getLoginUser().getUsername());
attachment.setBusinessId(docId);
attachment.setBizType(Constants.DOC_TYPE_DOC);
attachment.setDel(Constants.STR_ZERO);
attachment.setCreateDate(new Date());
attachmentService.insertAttachment(attachment);
}
if(result > 0){ if(result > 0){
return docId; return docId;
} }
@@ -74,14 +179,36 @@ public class DocumentServiceImpl implements IDocumentService
/** /**
* 修改【请填写功能名称】 * 修改【请填写功能名称】
* *
* @param Document 【请填写功能名称】 * @param document 【请填写功能名称】
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateDocument(Document Document) @Transactional(rollbackFor = Exception.class)
public int updateDocument(Document document)
{ {
Document.setUpdateTime(DateUtils.getNowDate()); document.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
return documentMapper.updateDocument(Document); document.setUpdateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
document.setUpdateTime(new Date());
int result = documentMapper.updateDocument(document);
Attachment attParam = document.getAttachment();
if(ObjectUtil.isNotEmpty(attParam) && StrUtil.isBlank(attParam.getId())){
Attachment att = new Attachment();
att.setBusinessId(document.getDocId());
att.setDel(Constants.STR_ONE);
attachmentService.updateAttachmentByBusinessId(att);
Attachment attachment = document.getAttachment();
attachment.setId(IdUtil.simpleUUID());
attachment.setCreateBy(SecurityUtils.getLoginUser().getUsername());
attachment.setBusinessId(document.getDocId());
attachment.setBizType(Constants.DOC_TYPE_DOC);
attachment.setDel(Constants.STR_ZERO);
attachment.setCreateDate(new Date());
attachmentService.insertAttachment(attachment);
}
return result;
} }
/** /**
@@ -93,7 +220,12 @@ public class DocumentServiceImpl implements IDocumentService
@Override @Override
public int deleteDocumentByIds(String[] ids) public int deleteDocumentByIds(String[] ids)
{ {
return documentMapper.deleteDocumentByIds(ids); Document doc = new Document();
doc.setIds(Arrays.asList(ids));
doc.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
doc.setUpdateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
doc.setUpdateTime(new Date());
return documentMapper.isDeleteDocumentByIds(doc);
} }
/** /**
@@ -107,5 +239,71 @@ public class DocumentServiceImpl implements IDocumentService
{ {
return documentMapper.deleteDocumentById(id); return documentMapper.deleteDocumentById(id);
} }
/**
* 发布文档
* @param ids
* @return
*/
@Override
public int pushDoc(String[] ids) {
Document doc = new Document();
doc.setIds(Arrays.asList(ids));
doc.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
doc.setUpdateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
doc.setDocStatus(Constants.DOC_STATUS_YFB);
doc.setUpdateTime(new Date());
return documentMapper.updatePushDoc(doc);
}
/**
* 删除附件
* @param docIds
* @return
*/
@Override
public int batchDeleteById(List<String> docIds){
return documentMapper.batchDeleteById(docIds);
}
@Override
public Map<String, Object> statistics() {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> countType = this.documentMapper.countType();
List<Map<String, Object>> countSource = this.documentMapper.countSource();
//组织数据
assembleData(countType, countSource);
result.put("countType", countType);
result.put("countSource", countSource);
return result;
}
private void assembleData(List<Map<String, Object>> countType, List<Map<String, Object>> countSource) {
//
List<SysDictData> toolTypeList = sysDictTypeService.selectDictDataByType("doc_class");
List<SysDictData> toolSourceList = sysDictTypeService.selectDictDataByType("doc_source");
if(CollUtil.isNotEmpty(countType)){
for (Map<String, Object> map : countType) {
map.put("value", map.get("statistics"));
for (SysDictData sysDictData : toolTypeList) {
if(sysDictData.getDictValue().equals(map.get("types"))){
map.put("name", sysDictData.getDictLabel());
break;
}
}
}
}
if(CollUtil.isNotEmpty(countSource)){
for (Map<String, Object> map : countSource) {
map.put("value", map.get("statistics"));
for (SysDictData sysDictData : toolSourceList) {
if(sysDictData.getDictValue().equals(map.get("types"))){
map.put("name", sysDictData.getDictLabel());
break;
}
}
}
}
}
} }

View File

@@ -0,0 +1,110 @@
package com.rzdata.web.service.impl;
import java.util.List;
import cn.hutool.core.lang.Snowflake;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.DownloadCount;
import com.rzdata.web.mapper.DownloadCountMapper;
import com.rzdata.web.service.IDownloadCountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 工具下载统计Service业务层处理
*
* @author 潘驰春
* @date 2024-08-31
*/
@Service
public class DownloadCountServiceImpl implements IDownloadCountService
{
@Autowired
private DownloadCountMapper downloadCountMapper;
@Autowired
private Snowflake snowflake;
/**
* 查询工具下载统计
*
* @param id 工具下载统计主键
* @return 工具下载统计
*/
@Override
public DownloadCount selectDownloadCountById(String id)
{
return downloadCountMapper.selectDownloadCountById(id);
}
/**
* 查询工具下载统计列表
*
* @param downloadCount 工具下载统计
* @return 工具下载统计
*/
@Override
public List<DownloadCount> selectDownloadCountList(DownloadCount downloadCount)
{
return downloadCountMapper.selectDownloadCountList(downloadCount);
}
/**
* 新增工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
@Override
public int insertDownloadCount(DownloadCount downloadCount)
{
downloadCount.setId(String.valueOf(snowflake.nextId()));
downloadCount.setCreateTime(DateUtils.getNowDate());
downloadCount.setCreateBy(SecurityUtils.getLoginUser().getUsername());
downloadCount.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
return downloadCountMapper.insertDownloadCount(downloadCount);
}
/**
* 修改工具下载统计
*
* @param downloadCount 工具下载统计
* @return 结果
*/
@Override
public int updateDownloadCount(DownloadCount downloadCount)
{
downloadCount.setUpdateTime(DateUtils.getNowDate());
return downloadCountMapper.updateDownloadCount(downloadCount);
}
/**
* 批量删除工具下载统计
*
* @param ids 需要删除的工具下载统计主键
* @return 结果
*/
@Override
public int deleteDownloadCountByIds(String[] ids)
{
return downloadCountMapper.deleteDownloadCountByIds(ids);
}
/**
* 删除工具下载统计信息
*
* @param id 工具下载统计主键
* @return 结果
*/
@Override
public int deleteDownloadCountById(String id)
{
return downloadCountMapper.deleteDownloadCountById(id);
}
@Override
public List<DownloadCount> userDownList(DownloadCount downloadCount) {
return downloadCountMapper.userDownList(downloadCount);
}
}

View File

@@ -0,0 +1,108 @@
package com.rzdata.web.service.impl;
import java.util.Date;
import java.util.List;
import cn.hutool.core.lang.Snowflake;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.Replies;
import com.rzdata.web.mapper.RepliesMapper;
import com.rzdata.web.service.IRepliesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 回复Service业务层处理
*
* @author panchichun
* @date 2024-08-30
*/
@Service
public class RepliesServiceImpl implements IRepliesService
{
@Autowired
private RepliesMapper repliesMapper;
@Autowired
private Snowflake snowflake;
/**
* 查询回复
*
* @param id 回复主键
* @return 回复
*/
@Override
public Replies selectRepliesById(String id)
{
return repliesMapper.selectRepliesById(id);
}
/**
* 查询回复列表
*
* @param replies 回复
* @return 回复
*/
@Override
public List<Replies> selectRepliesList(Replies replies)
{
return repliesMapper.selectRepliesList(replies);
}
/**
* 新增回复
*
* @param replies 回复
* @return 结果
*/
@Override
public int insertReplies(Replies replies)
{
replies.setId(String.valueOf(snowflake.nextId()));
replies.setCreateBy(SecurityUtils.getLoginUser().getUsername());
replies.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
replies.setCreateTime(new Date());
replies.setIsDelete(Constants.STR_ZERO);
return repliesMapper.insertReplies(replies);
}
/**
* 修改回复
*
* @param replies 回复
* @return 结果
*/
@Override
public int updateReplies(Replies replies)
{
replies.setUpdateTime(DateUtils.getNowDate());
return repliesMapper.updateReplies(replies);
}
/**
* 批量删除回复
*
* @param ids 需要删除的回复主键
* @return 结果
*/
@Override
public int deleteRepliesByIds(String[] ids)
{
return repliesMapper.deleteRepliesByIds(ids);
}
/**
* 删除回复信息
*
* @param id 回复主键
* @return 结果
*/
@Override
public int deleteRepliesById(String id)
{
return repliesMapper.deleteRepliesById(id);
}
}

View File

@@ -0,0 +1,151 @@
package com.rzdata.web.service.impl;
import cn.hutool.core.lang.Snowflake;
import com.rzdata.common.core.domain.entity.SysUser;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.system.service.ISysUserService;
import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.domain.TzMessage;
import com.rzdata.web.domain.UseApplyItem;
import com.rzdata.web.mapper.ToolApplyMapper;
import com.rzdata.web.service.IToolApplyService;
import com.rzdata.web.service.ITzMessageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 使用申请Service业务层处理
*
* @author ja
* @date 2024-08-21
*/
@Slf4j
@Service
public class ToolApplyServiceImpl implements IToolApplyService
{
@Autowired
private ToolApplyMapper toolApplyMapper;
@Autowired
private ISysUserService sysUserService;
@Autowired
private Snowflake snowflake;
@Autowired
private ITzMessageService tzMessageService;
/**
* 查询使用申请
*
* @param id 使用申请主键
* @return 使用申请
*/
@Override
public ToolApply selectToolApplyById(String id)
{
return toolApplyMapper.selectToolApplyById(id);
}
@Override
public ToolApply getInfoByBpmcId(String bpmcId){
return toolApplyMapper.getInfoByBpmcId(bpmcId);
}
/**
* 查询使用申请列表
*
* @param toolApply 使用申请
* @return 使用申请
*/
@Override
public List<ToolApply> selectToolApplyList(ToolApply toolApply)
{
return toolApplyMapper.selectToolApplyList(toolApply);
}
/**
* 新增使用申请
*
* @param toolApply 使用申请
* @return 结果
*/
@Override
public int insertToolApply(ToolApply toolApply)
{
toolApply.setCreateBy(SecurityUtils.getUserId().toString());
toolApply.setCreateTime(DateUtils.getNowDate());
return toolApplyMapper.insertToolApply(toolApply);
}
/**
* 修改使用申请
*
* @param toolApply 使用申请
* @return 结果
*/
@Override
public int updateToolApply(ToolApply toolApply)
{
toolApply.setUpdateBy(SecurityUtils.getUserId().toString());
toolApply.setUpdateTime(DateUtils.getNowDate());
return toolApplyMapper.updateToolApply(toolApply);
}
/**
* 批量删除使用申请
*
* @param ids 需要删除的使用申请主键
* @return 结果
*/
@Override
public int deleteToolApplyByIds(String[] ids)
{
return toolApplyMapper.deleteToolApplyByIds(ids);
}
/**
* 删除使用申请信息
*
* @param id 使用申请主键
* @return 结果
*/
@Override
public int deleteToolApplyById(String id)
{
return toolApplyMapper.deleteToolApplyById(id);
}
public boolean checkToolApply(String toolId, String userId){
return toolApplyMapper.checkToolApply(toolId, userId)>0;
}
@Override
public void sendTzMessage(ToolApply toolApply) {
try{
SysUser sysUser = sysUserService.selectUserById(Long.valueOf(toolApply.getUserId()));
UseApplyItem useApplyItem = toolApply.getItemList().get(0);
String toolName = useApplyItem.getToolName();
String content = toolName + "下载权限已通过";
TzMessage tzMessage = new TzMessage();
//雪花
tzMessage.setId(String.valueOf(snowflake.nextId()));
tzMessage.setReceiverId(String.valueOf(sysUser.getUserId()));
tzMessage.setStates(1);
tzMessage.setContent(content);
tzMessage.setDeleted("0");
tzMessageService.insertTzMessage(tzMessage);
}catch (Exception e){
log.error("UseApplyServiceImpl-->sendTzMessage--发送消息中心异常--e###", e);
}
}
}

View File

@@ -1,17 +1,39 @@
package com.rzdata.web.service.impl; package com.rzdata.web.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.blueland.bpmclient.model.BpmClientInputModel;
import com.rzdata.common.annotation.DataScope;
import com.rzdata.common.constant.Constants; import com.rzdata.common.constant.Constants;
import com.rzdata.common.core.domain.entity.SysDept;
import com.rzdata.common.core.domain.entity.SysDictData;
import com.rzdata.common.core.domain.entity.SysUser;
import com.rzdata.common.utils.DateUtils; import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.system.service.ISysDeptService;
import com.rzdata.system.service.ISysDictTypeService;
import com.rzdata.system.service.ISysUserService;
import com.rzdata.web.domain.Document;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import com.rzdata.web.domain.ToolApply;
import com.rzdata.web.domain.TzMessage;
import com.rzdata.web.domain.bo.BpmClientInputModelBo;
import com.rzdata.web.mapper.ToolMapper; import com.rzdata.web.mapper.ToolMapper;
import com.rzdata.web.service.IToolService; import com.rzdata.web.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/** /**
* 工具信息Service业务层处理 * 工具信息Service业务层处理
@@ -19,12 +41,40 @@ import java.util.List;
* @author ja * @author ja
* @date 2024-07-15 * @date 2024-07-15
*/ */
@Slf4j
@Service @Service
public class ToolServiceImpl implements IToolService public class ToolServiceImpl implements IToolService
{ {
@Autowired @Autowired
private ToolMapper toolMapper; private ToolMapper toolMapper;
@Autowired
private IAttachmentService iAttachmentService;
@Autowired
private IDocumentService documentService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private Snowflake snowflake;
@Autowired
private ITzMessageService tzMessageService;
@Autowired
private ISysDictTypeService sysDictTypeService;
@Autowired
private IToolApplyService toolApplyService;
@Autowired
private ISysDeptService sysDeptService;
/** /**
* 查询工具信息 * 查询工具信息
* *
@@ -34,7 +84,9 @@ public class ToolServiceImpl implements IToolService
@Override @Override
public Tool selectToolByToolId(String toolId) public Tool selectToolByToolId(String toolId)
{ {
return toolMapper.selectToolByToolId(toolId); Tool tool = toolMapper.selectToolByToolId(toolId);
tool.setToolRespDeptName(sysDeptService.getDeptName(tool.getToolRespDept()));
return tool;
} }
@Override @Override
@@ -49,6 +101,7 @@ public class ToolServiceImpl implements IToolService
* @return 工具信息 * @return 工具信息
*/ */
@Override @Override
@DataScope(deptAlias = "d")
public List<Tool> selectToolList(Tool tool) public List<Tool> selectToolList(Tool tool)
{ {
if (BooleanUtil.isTrue(tool.getPermissionCheck())) { if (BooleanUtil.isTrue(tool.getPermissionCheck())) {
@@ -84,11 +137,71 @@ public class ToolServiceImpl implements IToolService
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public int updateTool(Tool tool) public int updateTool(Tool tool)
{ {
tool.setUpdateBy(SecurityUtils.getUserId().toString()); tool.setUpdateBy(SecurityUtils.getUserId().toString());
tool.setUpdateTime(DateUtils.getNowDate()); tool.setUpdateTime(DateUtils.getNowDate());
return toolMapper.updateTool(tool); int result = toolMapper.updateTool(tool);
deleteDocAndAtt(tool);
addDocAndAtt(tool);
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteDocAndAtt(Tool tool) {
List<Document> documentList = tool.getDocumentList();
if(CollUtil.isEmpty(documentList)){
return;
}
//先删除,后新增
List<String> docIds = documentList.stream().map(Document::getDocId).collect(Collectors.toList());
iAttachmentService.deleteAttachmentByBusinessId(docIds);
documentService.batchDeleteById(docIds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void addDocAndAtt(Tool tool) {
List<Document> documentList = tool.getDocumentList();
if(CollUtil.isEmpty(documentList)){
return;
}
//新增
for (Document document : documentList) {
document.setToolId(tool.getToolId());
document.setDocStatus(Constants.DOC_STATUS_SHZ);
documentService.saveDocument(document);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void recordToolApply(Tool tool) {
ToolApply toolApply = new ToolApply();
toolApply.setId(IdUtil.simpleUUID());
toolApply.setApplyType(Constants.TOOL_APPLY_TYPE_PUBLISH);
toolApply.setToolId(tool.getToolId());
toolApply.setDeptId(String.valueOf(SecurityUtils.getDeptId()));
toolApply.setProcInstId(tool.getProcInstId());
toolApply.setRecordStatus(tool.getRecordStatus());
toolApply.setUserId(String.valueOf(SecurityUtils.getUserId()));
BpmClientInputModelBo bpmClientInputModelBo = tool.getBpmClientInputModel();
if(null != bpmClientInputModelBo){
BpmClientInputModel bpmClientInputModel = bpmClientInputModelBo.getModel();
toolApply.setProcTitle(StrUtil.isNotEmpty(bpmClientInputModel.getWf_procTitle()) ? bpmClientInputModel.getWf_procTitle() : "");
}
SysDept sysDept = sysDeptService.selectDeptById(SecurityUtils.getDeptId());
if(null != sysDept){
toolApply.setDeptName(sysDept.getDeptName());
}
SysUser sysUser = sysUserService.selectUserById(SecurityUtils.getUserId());
if(null != sysUser){
toolApply.setNickName(sysUser.getNickName());
}
toolApplyService.insertToolApply(toolApply);
} }
/** /**
@@ -114,4 +227,116 @@ public class ToolServiceImpl implements IToolService
{ {
return toolMapper.deleteToolByToolId(toolId); return toolMapper.deleteToolByToolId(toolId);
} }
@Override
public void updateDocPushStatus(Tool tTool) {
Document document = new Document();
document.setToolId(tTool.getToolId());
List<Document> documents = documentService.selectDocumentListAll(document);
if(CollUtil.isEmpty(documents)){
return;
}
List<String> ids = documents.stream().map(Document::getDocId).collect(Collectors.toList());
String[] idsArray = ids.stream().toArray(String[]::new);
documentService.pushDoc(idsArray);
}
/**
* 给消息中心发送消息
*/
@Override
public void sendTzMessage(Tool tTool) {
try{
SysUser sysUser = new SysUser();
sysUser.setStatus("0");
sysUser.setDelFlag("0");
String content = tTool.getToolName() + "已发布";
List<SysUser> sysUsers = sysUserService.selectUserList(sysUser);
List<TzMessage> addList = new ArrayList<>();
for (SysUser user : sysUsers) {
TzMessage tzMessage = new TzMessage();
//雪花
tzMessage.setId(String.valueOf(snowflake.nextId()));
tzMessage.setReceiverId(String.valueOf(user.getUserId()));
tzMessage.setStates(1);
tzMessage.setContent(content);
tzMessage.setDeleted("0");
tzMessage.setCreateTime(DateUtils.getNowDate());
tzMessage.setCreateBy(SecurityUtils.getLoginUser().getUsername());
tzMessage.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
addList.add(tzMessage);
}
// 使用AtomicInteger来跟踪索引
AtomicInteger counter = new AtomicInteger(0);
// 使用Stream API进行分组
Map<Integer, List<TzMessage>> grouped = addList.stream()
.collect(Collectors.groupingBy(
e -> counter.getAndIncrement() / 500
));
// 对每个子列表进行批量插入
grouped.values().forEach(batch -> tzMessageService.batchInsert(batch));
}catch (Exception e){
log.error("UseApplyServiceImpl-->sendTzMessage--发送消息中心异常--e###", e);
}
}
@Override
public Map<String, Object> statistics() {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> countToolType = toolMapper.countToolType();
List<Map<String, Object>> toolSource = toolMapper.toolSource();
List<Map<String, Object>> recordStatus = toolMapper.recordStatus();
//组织数据
assembleData(countToolType, toolSource, recordStatus);
result.put("countToolType", countToolType);
result.put("toolSource", toolSource);
result.put("recordStatus", recordStatus);
return result;
}
private void assembleData(List<Map<String, Object>> countToolType, List<Map<String, Object>> toolSource, List<Map<String, Object>> recordStatus) {
List<SysDictData> toolTypeList = sysDictTypeService.selectDictDataByType("tool_type");
List<SysDictData> flowStatusList = sysDictTypeService.selectDictDataByType("flow_status");
List<SysDictData> toolSourceList = sysDictTypeService.selectDictDataByType("tool_source");
if(CollUtil.isNotEmpty(countToolType)){
for (Map<String, Object> map : countToolType) {
map.put("value", map.get("statistics"));
for (SysDictData sysDictData : toolTypeList) {
if(sysDictData.getDictValue().equals(map.get("types"))){
map.put("name", sysDictData.getDictLabel());
break;
}
}
}
}
if(CollUtil.isNotEmpty(toolSource)){
for (Map<String, Object> map : toolSource) {
map.put("value", map.get("statistics"));
for (SysDictData sysDictData : toolSourceList) {
if(sysDictData.getDictValue().equals(map.get("types"))){
map.put("name", sysDictData.getDictLabel());
break;
}
}
}
}
if(CollUtil.isNotEmpty(recordStatus)){
for (Map<String, Object> map : recordStatus) {
map.put("value", map.get("statistics"));
for (SysDictData sysDictData : flowStatusList) {
if(sysDictData.getDictValue().equals(map.get("types"))){
map.put("name", sysDictData.getDictLabel());
break;
}
}
}
}
}
} }

View File

@@ -0,0 +1,120 @@
package com.rzdata.web.service.impl;
import java.util.List;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.TzMessage;
import com.rzdata.web.mapper.TzMessageMapper;
import com.rzdata.web.service.ITzMessageService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 消息Service业务层处理
*
* @author ja
* @date 2024-08-31
*/
@Service
public class TzMessageServiceImpl implements ITzMessageService
{
@Autowired
private TzMessageMapper tzMessageMapper;
/**
* 查询消息
*
* @param id 消息主键
* @return 消息
*/
@Override
public TzMessage selectTzMessageById(String id)
{
return tzMessageMapper.selectTzMessageById(id);
}
/**
* 查询消息列表
*
* @param tzMessage 消息
* @return 消息
*/
@Override
public List<TzMessage> selectTzMessageList(TzMessage tzMessage)
{
return tzMessageMapper.selectTzMessageList(tzMessage);
}
/**
* 新增消息
*
* @param tzMessage 消息
* @return 结果
*/
@Override
public int insertTzMessage(TzMessage tzMessage)
{
tzMessage.setCreateTime(DateUtils.getNowDate());
tzMessage.setCreateBy(SecurityUtils.getLoginUser().getUsername());
tzMessage.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
return tzMessageMapper.insertTzMessage(tzMessage);
}
/**
* 修改消息
*
* @param tzMessage 消息
* @return 结果
*/
@Override
public int updateTzMessage(TzMessage tzMessage)
{
tzMessage.setUpdateTime(DateUtils.getNowDate());
tzMessage.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
tzMessage.setUpdateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
return tzMessageMapper.updateTzMessage(tzMessage);
}
/**
* 批量删除消息
*
* @param ids 需要删除的消息主键
* @return 结果
*/
@Override
public int deleteTzMessageByIds(String[] ids)
{
return tzMessageMapper.deleteTzMessageByIds(ids);
}
/**
* 删除消息信息
*
* @param id 消息主键
* @return 结果
*/
@Override
public int deleteTzMessageById(String id)
{
return tzMessageMapper.deleteTzMessageById(id);
}
/**
* 全部标记已读
* @param tzMessage
* @return
*/
@Override
public int allMarkedRead( TzMessage tzMessage) {
tzMessage.setCreateById(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
return tzMessageMapper.updateAllMarkedRead(tzMessage);
}
@Override
public int batchInsert(List<TzMessage> tzMessageList) {
return tzMessageMapper.batchInsert(tzMessageList);
}
}

View File

@@ -1,109 +0,0 @@
package com.rzdata.web.service.impl;
import java.util.List;
import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.Tool;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rzdata.web.mapper.UseApplyMapper;
import com.rzdata.web.domain.UseApply;
import com.rzdata.web.service.IUseApplyService;
/**
* 使用申请Service业务层处理
*
* @author ja
* @date 2024-08-21
*/
@Service
public class UseApplyServiceImpl implements IUseApplyService
{
@Autowired
private UseApplyMapper useApplyMapper;
/**
* 查询使用申请
*
* @param id 使用申请主键
* @return 使用申请
*/
@Override
public UseApply selectUseApplyById(String id)
{
return useApplyMapper.selectUseApplyById(id);
}
@Override
public UseApply getInfoByBpmcId(String bpmcId){
return useApplyMapper.getInfoByBpmcId(bpmcId);
}
/**
* 查询使用申请列表
*
* @param useApply 使用申请
* @return 使用申请
*/
@Override
public List<UseApply> selectUseApplyList(UseApply useApply)
{
return useApplyMapper.selectUseApplyList(useApply);
}
/**
* 新增使用申请
*
* @param useApply 使用申请
* @return 结果
*/
@Override
public int insertUseApply(UseApply useApply)
{
useApply.setCreateBy(SecurityUtils.getUserId().toString());
useApply.setCreateTime(DateUtils.getNowDate());
return useApplyMapper.insertUseApply(useApply);
}
/**
* 修改使用申请
*
* @param useApply 使用申请
* @return 结果
*/
@Override
public int updateUseApply(UseApply useApply)
{
useApply.setUpdateBy(SecurityUtils.getUserId().toString());
useApply.setUpdateTime(DateUtils.getNowDate());
return useApplyMapper.updateUseApply(useApply);
}
/**
* 批量删除使用申请
*
* @param ids 需要删除的使用申请主键
* @return 结果
*/
@Override
public int deleteUseApplyByIds(String[] ids)
{
return useApplyMapper.deleteUseApplyByIds(ids);
}
/**
* 删除使用申请信息
*
* @param id 使用申请主键
* @return 结果
*/
@Override
public int deleteUseApplyById(String id)
{
return useApplyMapper.deleteUseApplyById(id);
}
public boolean checkUseApply(String toolId, String userId){
return useApplyMapper.checkUseApply(toolId, userId)>0;
}
}

View File

@@ -15,6 +15,7 @@ ja:
# 开发环境配置 # 开发环境配置
server: server:
address: 0.0.0.0
# 服务器的HTTP端口默认为8080 # 服务器的HTTP端口默认为8080
port: 8080 port: 8080
servlet: servlet:
@@ -128,7 +129,12 @@ xss:
# 匹配链接 # 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/* urlPatterns: /system/*,/monitor/*,/tool/*
# 用于雪花算法生成id
application:
datacenterId: 2
workerId: 1
bpmc: bpmc:
tenantId: TLTC_SYS tenantId: TLTC_SYS
serviceUrl: http://192.168.2.18:8081/ebpm-process-rest/ serviceUrl: http://124.223.108.21:9081/ebpm-process-rest/
uniteWorkUrl: http://localhost/tool-tech/workflowRouter uniteWorkUrl: http://localhost/tool-tech/workflowRouter

View File

@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.AttachmentMapper">
<resultMap type="Attachment" id="AttachmentResult">
<result property="id" column="id" />
<result property="bizType" column="biz_type" />
<result property="fileUrl" column="file_url" />
<result property="fileOldName" column="file_old_name" />
<result property="fileNewName" column="file_new_name" />
<result property="suffixType" column="suffix_type" />
<result property="fileSize" column="file_size" />
<result property="businessId" column="business_id" />
<result property="sorts" column="sorts" />
<result property="remark" column="remark" />
<result property="del" column="del" />
<result property="createBy" column="create_by" />
<result property="createDate" column="create_date" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
<result property="failureTime" column="failure_time" />
</resultMap>
<sql id="selectAttachmentVo">
select id, biz_type, file_url, file_old_name, file_new_name, suffix_type, file_size, business_id, sorts, remark, del, create_by, create_date, update_by, update_date, failure_time from t_attachment
</sql>
<select id="selectAttachmentList" parameterType="Attachment" resultMap="AttachmentResult">
<include refid="selectAttachmentVo"/>
<where>
<if test="bizType != null and bizType != ''"> and biz_type = #{bizType}</if>
<if test="fileUrl != null and fileUrl != ''"> and file_url = #{fileUrl}</if>
<if test="fileOldName != null and fileOldName != ''"> and file_old_name like concat('%', #{fileOldName}, '%')</if>
<if test="fileNewName != null and fileNewName != ''"> and file_new_name like concat('%', #{fileNewName}, '%')</if>
<if test="suffixType != null and suffixType != ''"> and suffix_type = #{suffixType}</if>
<if test="fileSize != null "> and file_size = #{fileSize}</if>
<if test="businessId != null and businessId != ''"> and business_id = #{businessId}</if>
<if test="sorts != null "> and sorts = #{sorts}</if>
<if test="del != null "> and del = #{del}</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="failureTime != null "> and failure_time = #{failureTime}</if>
<if test="businessIds != null and businessIds.size() > 0">
and business_id in
<foreach item="id" index="index" collection="businessIds" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</select>
<select id="selectAttachmentById" parameterType="String" resultMap="AttachmentResult">
<include refid="selectAttachmentVo"/>
where id = #{id}
</select>
<insert id="insertAttachment" parameterType="Attachment">
insert into t_attachment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="bizType != null">biz_type,</if>
<if test="fileUrl != null">file_url,</if>
<if test="fileOldName != null">file_old_name,</if>
<if test="fileNewName != null">file_new_name,</if>
<if test="suffixType != null">suffix_type,</if>
<if test="fileSize != null">file_size,</if>
<if test="businessId != null">business_id,</if>
<if test="sorts != null">sorts,</if>
<if test="remark != null">remark,</if>
<if test="del != null">del,</if>
<if test="createBy != null">create_by,</if>
<if test="createDate != null">create_date,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateDate != null">update_date,</if>
<if test="failureTime != null">failure_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="bizType != null">#{bizType},</if>
<if test="fileUrl != null">#{fileUrl},</if>
<if test="fileOldName != null">#{fileOldName},</if>
<if test="fileNewName != null">#{fileNewName},</if>
<if test="suffixType != null">#{suffixType},</if>
<if test="fileSize != null">#{fileSize},</if>
<if test="businessId != null">#{businessId},</if>
<if test="sorts != null">#{sorts},</if>
<if test="remark != null">#{remark},</if>
<if test="del != null">#{del},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createDate != null">#{createDate},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateDate != null">#{updateDate},</if>
<if test="failureTime != null">#{failureTime},</if>
</trim>
</insert>
<update id="updateAttachment" parameterType="Attachment">
update t_attachment
<trim prefix="SET" suffixOverrides=",">
<if test="bizType != null">biz_type = #{bizType},</if>
<if test="fileUrl != null">file_url = #{fileUrl},</if>
<if test="fileOldName != null">file_old_name = #{fileOldName},</if>
<if test="fileNewName != null">file_new_name = #{fileNewName},</if>
<if test="suffixType != null">suffix_type = #{suffixType},</if>
<if test="fileSize != null">file_size = #{fileSize},</if>
<if test="businessId != null">business_id = #{businessId},</if>
<if test="sorts != null">sorts = #{sorts},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="del != null">del = #{del},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createDate != null">create_date = #{createDate},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
<if test="failureTime != null">failure_time = #{failureTime},</if>
</trim>
where id = #{id}
</update>
<update id="updateAttachmentByBusinessId" parameterType="Attachment">
update t_attachment
<trim prefix="SET" suffixOverrides=",">
<if test="bizType != null">biz_type = #{bizType},</if>
<if test="fileUrl != null">file_url = #{fileUrl},</if>
<if test="fileOldName != null">file_old_name = #{fileOldName},</if>
<if test="fileNewName != null">file_new_name = #{fileNewName},</if>
<if test="suffixType != null">suffix_type = #{suffixType},</if>
<if test="fileSize != null">file_size = #{fileSize},</if>
<if test="sorts != null">sorts = #{sorts},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="del != null">del = #{del},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createDate != null">create_date = #{createDate},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
<if test="failureTime != null">failure_time = #{failureTime},</if>
</trim>
where business_id = #{businessId}
</update>
<delete id="deleteAttachmentById" parameterType="String">
delete from t_attachment where id = #{id}
</delete>
<delete id="deleteAttachmentByIds" parameterType="String">
delete from t_attachment where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteAttachmentByBusinessId" parameterType="java.util.List">
delete from t_attachment where business_id in
<foreach item="id" collection="list" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.DiscussionsMapper">
<resultMap type="Discussions" id="DiscussionsResult">
<result property="id" column="id" />
<result property="businessId" column="business_id" />
<result property="type" column="type" />
<result property="content" column="content" />
<result property="isDelete" column="is_delete" />
<result property="createBy" column="create_by" />
<result property="createById" column="create_by_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateById" column="update_by_id" />
<result property="updateTime" column="update_time" />
<result property="nickName" column="nick_name" />
</resultMap>
<sql id="selectDiscussionsVo">
select id, business_id, type, content, is_delete, create_by, create_by_id, create_time, update_by, update_by_id, update_time from t_discussions
</sql>
<select id="selectDiscussionsList" parameterType="Discussions" resultMap="DiscussionsResult">
select td.*,su.nick_name
from t_discussions td
left join sys_user su on su.user_id = td.create_by_id
<where>
<if test="businessId != null and businessId != ''"> and td.business_id = #{businessId}</if>
<if test="type != null and type != ''"> and td.type = #{type}</if>
<if test="content != null and content != ''"> and td.content = #{content}</if>
<if test="isDelete != null and isDelete != ''"> and td.is_delete = #{isDelete}</if>
<if test="createById != null and createById != ''"> and td.create_by_id = #{createById}</if>
<if test="updateById != null and updateById != ''"> and td.update_by_id = #{updateById}</if>
and td.is_delete = '0'
</where>
</select>
<select id="selectDiscussionsById" parameterType="String" resultMap="DiscussionsResult">
<include refid="selectDiscussionsVo"/>
where id = #{id}
</select>
<insert id="insertDiscussions" parameterType="Discussions">
insert into t_discussions
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="businessId != null">business_id,</if>
<if test="type != null">type,</if>
<if test="content != null">content,</if>
<if test="isDelete != null">is_delete,</if>
<if test="createBy != null">create_by,</if>
<if test="createById != null">create_by_id,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateById != null">update_by_id,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="businessId != null">#{businessId},</if>
<if test="type != null">#{type},</if>
<if test="content != null">#{content},</if>
<if test="isDelete != null">#{isDelete},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createById != null">#{createById},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateById != null">#{updateById},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateDiscussions" parameterType="Discussions">
update t_discussions
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="type != null">type = #{type},</if>
<if test="content != null">content = #{content},</if>
<if test="isDelete != null">is_delete = #{isDelete},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createById != null">create_by_id = #{createById},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteDiscussionsById" parameterType="String">
delete from t_discussions where id = #{id}
</delete>
<delete id="deleteDiscussionsByIds" parameterType="String">
delete from t_discussions where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.DocumentCategoryMapper">
<resultMap type="DocumentCategory" id="DocumentCategoryResult">
<result property="id" column="id" />
<result property="categoryName" column="category_name" />
<result property="categoryDescription" column="category_description" />
<result property="parentId" column="parent_id" />
<result property="createBy" column="create_by" />
<result property="createById" column="create_by_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateById" column="update_by_id" />
<result property="updateTime" column="update_time" />
<result property="types" column="types" />
</resultMap>
<sql id="selectDocumentCategoryVo">
select id, category_name, category_description, parent_id, create_by, create_by_id, create_time,
update_by, update_by_id, update_time, types from t_document_category
</sql>
<select id="selectDocumentCategoryList" parameterType="DocumentCategory" resultMap="DocumentCategoryResult">
<include refid="selectDocumentCategoryVo"/>
<where>
<if test="categoryName != null and categoryName != ''"> and category_name like concat('%', #{categoryName}, '%')</if>
<if test="categoryDescription != null and categoryDescription != ''"> and category_description = #{categoryDescription}</if>
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
<if test="createById != null and createById != ''"> and create_by_id = #{createById}</if>
<if test="updateById != null and updateById != ''"> and update_by_id = #{updateById}</if>
<if test="types != null and types != ''"> and types = #{types}</if>
</where>
</select>
<select id="selectDocumentCategoryById" parameterType="String" resultMap="DocumentCategoryResult">
<include refid="selectDocumentCategoryVo"/>
where id = #{id}
</select>
<insert id="insertDocumentCategory" parameterType="DocumentCategory">
insert into t_document_category
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="categoryName != null and categoryName != ''">category_name,</if>
<if test="categoryDescription != null">category_description,</if>
<if test="parentId != null">parent_id,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createById != null and createById != ''">create_by_id,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateById != null">update_by_id,</if>
<if test="updateTime != null">update_time,</if>
<if test="types != null">types,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="categoryName != null and categoryName != ''">#{categoryName},</if>
<if test="categoryDescription != null">#{categoryDescription},</if>
<if test="parentId != null">#{parentId},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createById != null and createById != ''">#{createById},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateById != null">#{updateById},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="types != null">#{types},</if>
</trim>
</insert>
<update id="updateDocumentCategory" parameterType="DocumentCategory">
update t_document_category
<trim prefix="SET" suffixOverrides=",">
<if test="categoryName != null and categoryName != ''">category_name = #{categoryName},</if>
<if test="categoryDescription != null">category_description = #{categoryDescription},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createById != null and createById != ''">create_by_id = #{createById},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="types != null">types = #{types},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteDocumentCategoryById" parameterType="String">
delete from t_document_category where id = #{id}
</delete>
<delete id="deleteDocumentCategoryByIds" parameterType="String">
delete from t_document_category where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -18,23 +18,47 @@
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="docCategoryId" column="doc_category_id" />
<result property="isDeleted" column="is_deleted" />
<result property="toolId" column="tool_id" />
<result property="toolName" column="tool_name" />
<result property="docRespDeptName" column="doc_resp_dept_name" />
</resultMap> </resultMap>
<sql id="selectDocumentVo"> <sql id="selectDocumentVo">
select doc_id, doc_code, doc_name, doc_type, doc_principals, doc_resp_dept, doc_source, doc_status, doc_url, create_by, create_time, update_by, update_time from t_document select doc_id, doc_code, doc_name, doc_type, doc_principals, doc_resp_dept,
doc_source, doc_status, doc_url, create_by, create_time,
update_by, update_time, remark, doc_category_id,is_deleted,tool_id from t_document
</sql> </sql>
<select id="selectDocumentList" parameterType="Document" resultMap="DocumentResult"> <select id="selectDocumentList" parameterType="Document" resultMap="DocumentResult">
<include refid="selectDocumentVo"/> select td.*, t_tool.tool_name as tool_name,sys_dept.dept_name as doc_resp_dept_name
from t_document td
left join t_tool on t_tool.tool_id = td.tool_id
left join sys_dept on sys_dept.dept_id = td.doc_resp_dept
<where> <where>
<if test="docCode != null and docCode != ''"> and doc_code = #{docCode}</if> <if test="docCode != null and docCode != ''"> and td.doc_code like concat('%', #{docCode}, '%')</if>
<if test="docName != null and docName != ''"> and doc_name like concat('%', #{docName}, '%')</if> <if test="docName != null and docName != ''"> and td.doc_name like concat('%', #{docName}, '%')</if>
<if test="docType != null and docType != ''"> and doc_type = #{docType}</if> <if test="docType != null and docType != ''"> and td.doc_type = #{docType}</if>
<if test="docPrincipals != null and docPrincipals != ''"> and doc_principals = #{docPrincipals}</if> <if test="docPrincipals != null and docPrincipals != ''"> and td.doc_principals like concat('%', #{docPrincipals}, '%')</if>
<if test="docRespDept != null and docRespDept != ''"> and doc_resp_dept = #{docRespDept}</if> <if test="docRespDept != null and docRespDept != ''"> and td.doc_resp_dept = #{docRespDept}</if>
<if test="docSource != null and docSource != ''"> and doc_source = #{docSource}</if> <if test="docSource != null and docSource != ''"> and td.doc_source = #{docSource}</if>
<if test="docStatus != null and docStatus != ''"> and doc_status = #{docStatus}</if> <if test="docStatus != null and docStatus != ''"> and td.doc_status = #{docStatus}</if>
<if test="toolId != null and toolId != ''"> and td.tool_id = #{toolId}</if>
<if test="docCategoryId != null and docCategoryId != ''"> and td.doc_category_id = #{docCategoryId}</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(td.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(td.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<if test="createById != null and createById != '' and permission != true">
AND (td.create_by_id = #{createById} or td.doc_status = 'yfb')
</if>
and td.is_deleted = '0'
</where> </where>
order by td.create_time desc
</select> </select>
<select id="selectDocumentById" parameterType="String" resultMap="DocumentResult"> <select id="selectDocumentById" parameterType="String" resultMap="DocumentResult">
@@ -58,6 +82,12 @@
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="docCategoryId != null">doc_category_id,</if>
<if test="createById != null and createById != ''">create_by_id,</if>
<if test="updateById != null">update_by_id,</if>
<if test="isDeleted != null">is_deleted,</if>
<if test="toolId != null">tool_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="docId != null">#{docId},</if> <if test="docId != null">#{docId},</if>
@@ -73,6 +103,12 @@
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="docCategoryId != null">#{docCategoryId},</if>
<if test="createById != null and createById != ''">#{createById},</if>
<if test="updateById != null">#{updateById},</if>
<if test="isDeleted != null">#{isDeleted},</if>
<if test="toolId != null">#{toolId},</if>
</trim> </trim>
</insert> </insert>
@@ -91,6 +127,12 @@
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="docCategoryId != null">doc_category_id = #{docCategoryId},</if>
<if test="isDeleted != null">is_deleted = #{isDeleted},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
<if test="createById != null">create_by_id = #{createById},</if>
<if test="toolId != null">tool_id = #{toolId},</if>
</trim> </trim>
where doc_id = #{docId} where doc_id = #{docId}
</update> </update>
@@ -99,10 +141,39 @@
delete from t_document where doc_id = #{id} delete from t_document where doc_id = #{id}
</delete> </delete>
<delete id="deleteDocumentByIds" parameterType="String"> <delete id="isDeleteDocumentByIds" parameterType="Document">
<if test="ids != null and ids.size() > 0">
update t_document set is_deleted = '1' ,update_by_id = #{updateById},update_by = #{updateBy},update_time = #{updateTime} where doc_id in
<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</delete>
<update id="updatePushDoc" parameterType="Document">
<if test="ids != null and ids.size() > 0">
update t_document set doc_status = #{docStatus} ,update_by_id = #{updateById},update_by = #{updateBy},update_time = #{updateTime} where doc_id in
<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</update>
<delete id="batchDeleteById" parameterType="java.util.List">
delete from t_document where doc_id in delete from t_document where doc_id in
<foreach item="id" collection="array" open="(" separator="," close=")"> <foreach item="id" collection="list" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<!-- 文档类型统计-->
<select id="countType" resultType="java.util.Map">
select t.doc_type as types, sum(1) as statistics from t_document t where t.is_deleted = '0' group by t.doc_type;
</select>
<!-- 文档来源统计-->
<select id="countSource" resultType="java.util.Map">
select t.doc_source as types, sum(1) as statistics from t_document t where t.is_deleted = '0' group by t.doc_source;
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.DownloadCountMapper">
<resultMap type="DownloadCount" id="DownloadCountResult">
<result property="id" column="id" />
<result property="toolId" column="tool_id" />
<result property="createBy" column="create_by" />
<result property="createById" column="create_by_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateById" column="update_by_id" />
<result property="updateTime" column="update_time" />
<result property="toolCode" column="tool_code" />
<result property="toolName" column="tool_name" />
<result property="toolDownNum" column="tool_down_num" />
<result property="nickName" column="nick_name" />
</resultMap>
<sql id="selectDownloadCountVo">
select id, tool_id, create_by, create_by_id, create_time, update_by, update_by_id, update_time from t_download_count
</sql>
<select id="selectDownloadCountList" parameterType="DownloadCount" resultMap="DownloadCountResult">
select
tdc.tool_id,tl.tool_code,tl.tool_name,sum(1) as tool_down_num
from t_download_count tdc
left join t_tool tl on tdc.tool_id = tl.tool_id
<where>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(tdc.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(tdc.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
</where>
group by tdc.tool_id,tl.tool_code,tl.tool_name
</select>
<select id="selectDownloadCountById" parameterType="String" resultMap="DownloadCountResult">
<include refid="selectDownloadCountVo"/>
where id = #{id}
</select>
<insert id="insertDownloadCount" parameterType="DownloadCount">
insert into t_download_count
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="toolId != null">tool_id,</if>
<if test="createBy != null">create_by,</if>
<if test="createById != null">create_by_id,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateById != null">update_by_id,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="toolId != null">#{toolId},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createById != null">#{createById},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateById != null">#{updateById},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateDownloadCount" parameterType="DownloadCount">
update t_download_count
<trim prefix="SET" suffixOverrides=",">
<if test="toolId != null">tool_id = #{toolId},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createById != null">create_by_id = #{createById},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteDownloadCountById" parameterType="String">
delete from t_download_count where id = #{id}
</delete>
<delete id="deleteDownloadCountByIds" parameterType="String">
delete from t_download_count where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="userDownList" parameterType="DownloadCount" resultMap="DownloadCountResult">
select
tdc.tool_id,su.nick_name,tdc.create_time,sum(1) as tool_down_num
from t_download_count tdc
left join sys_user su on tdc.create_by_id = su.user_id
<where>
<if test="toolId != null and toolId != ''">
AND tool_id = #{toolId}
</if>
</where>
group by su.nick_name
</select>
</mapper>

View File

@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.RepliesMapper">
<resultMap type="Replies" id="RepliesResult">
<result property="id" column="id" />
<result property="discussionId" column="discussion_id" />
<result property="content" column="content" />
<result property="isDelete" column="is_delete" />
<result property="createBy" column="create_by" />
<result property="createById" column="create_by_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateById" column="update_by_id" />
<result property="updateTime" column="update_time" />
<result property="nickName" column="nick_name" />
</resultMap>
<sql id="selectRepliesVo">
select id, discussion_id, content, is_delete, create_by, create_by_id, create_time, update_by, update_by_id, update_time from t_replies
</sql>
<select id="selectRepliesList" parameterType="Replies" resultMap="RepliesResult">
select tr.*,su.nick_name
from t_replies tr
left join sys_user su on su.user_id = tr.create_by_id
<where>
<if test="discussionId != null and discussionId != ''"> and tr.discussion_id = #{discussionId}</if>
<if test="content != null and content != ''"> and tr.content = #{content}</if>
<if test="createById != null and createById != ''"> and tr.create_by_id = #{createById}</if>
<if test="updateById != null and updateById != ''"> and tr.update_by_id = #{updateById}</if>
<if test="discussionIdList != null and discussionIdList.size() > 0">
and tr.discussion_id in
<foreach item="id" index="index" collection="discussionIdList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
and tr.is_delete = '0'
</where>
</select>
<select id="selectRepliesById" parameterType="String" resultMap="RepliesResult">
<include refid="selectRepliesVo"/>
where id = #{id}
</select>
<insert id="insertReplies" parameterType="Replies">
insert into t_replies
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="discussionId != null">discussion_id,</if>
<if test="content != null">content,</if>
<if test="isDelete != null">is_delete,</if>
<if test="createBy != null">create_by,</if>
<if test="createById != null">create_by_id,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateById != null">update_by_id,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="discussionId != null">#{discussionId},</if>
<if test="content != null">#{content},</if>
<if test="isDelete != null">#{isDelete},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createById != null">#{createById},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateById != null">#{updateById},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateReplies" parameterType="Replies">
update t_replies
<trim prefix="SET" suffixOverrides=",">
<if test="discussionId != null">discussion_id = #{discussionId},</if>
<if test="content != null">content = #{content},</if>
<if test="isDelete != null">is_delete = #{isDelete},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createById != null">create_by_id = #{createById},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteRepliesById" parameterType="String">
delete from t_replies where id = #{id}
</delete>
<delete id="deleteRepliesByIds" parameterType="String">
delete from t_replies where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -2,11 +2,14 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.UseApplyMapper"> <mapper namespace="com.rzdata.web.mapper.ToolApplyMapper">
<resultMap type="UseApply" id="UseApplyResult"> <resultMap type="ToolApply" id="ToolApplyResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="userId" column="user_id" /> <result property="userId" column="user_id" />
<result property="toolId" column="tool_id" />
<result property="procTitle" column="proc_title" />
<result property="applyType" column="apply_type" />
<result property="nickName" column="nick_name" /> <result property="nickName" column="nick_name" />
<result property="deptId" column="dept_id" /> <result property="deptId" column="dept_id" />
<result property="deptName" column="dept_name" /> <result property="deptName" column="dept_name" />
@@ -16,37 +19,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="procInstId" column="proc_inst_id" /> <result property="procInstId" column="proc_inst_id" />
<result property="endTime" column="end_time" />
<result property="recordStatus" column="record_status" /> <result property="recordStatus" column="record_status" />
</resultMap> </resultMap>
<sql id="selectUseApplyVo"> <sql id="selectToolApplyVo">
select id, user_id, nick_name, dept_id, dept_name, reason, create_by, create_time, update_by, update_time from t_use_apply select id, user_id, nick_name, tool_id, apply_type, proc_title, proc_inst_id, end_time, dept_id, record_status, dept_name, reason, create_by, create_time, update_by, update_time from t_tool_apply
</sql> </sql>
<select id="selectUseApplyList" parameterType="UseApply" resultMap="UseApplyResult"> <select id="selectToolApplyList" parameterType="ToolApply" resultMap="ToolApplyResult">
<include refid="selectUseApplyVo"/> <include refid="selectToolApplyVo"/>
<where> <where>
<if test="userId != null and userId != ''"> and user_id like concat('%', #{userId}, '%')</if> <if test="userId != null and userId != ''"> and user_id like concat('%', #{userId}, '%')</if>
<if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if> <if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if>
<if test="applyType != null and applyType != ''"> and apply_type = #{applyType}</if>
<if test="reason != null and reason != ''"> and reason = #{reason}</if> <if test="reason != null and reason != ''"> and reason = #{reason}</if>
<if test="recordStatus != null and recordStatus != ''"> and record_status = #{recordStatus}</if>
<if test="procTitle != null and procTitle != ''"> and proc_title like concat('%', #{procTitle}, '%')</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectUseApplyById" parameterType="String" resultMap="UseApplyResult"> <select id="selectToolApplyById" parameterType="String" resultMap="ToolApplyResult">
<include refid="selectUseApplyVo"/> <include refid="selectToolApplyVo"/>
where id = #{id} where id = #{id}
</select> </select>
<select id="getInfoByBpmcId" parameterType="String" resultMap="UseApplyResult"> <select id="getInfoByBpmcId" parameterType="String" resultMap="ToolApplyResult">
<include refid="selectUseApplyVo"/> <include refid="selectToolApplyVo"/>
where proc_inst_id = #{bpmcId} where proc_inst_id = #{bpmcId}
</select> </select>
<insert id="insertUseApply" parameterType="UseApply"> <insert id="insertToolApply" parameterType="ToolApply">
insert into t_use_apply insert into t_tool_apply
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if> <if test="id != null">id,</if>
<if test="userId != null">user_id,</if> <if test="userId != null">user_id,</if>
<if test="toolId != null">tool_id,</if>
<if test="procTitle != null">proc_title,</if>
<if test="applyType != null">apply_type,</if>
<if test="nickName != null">nick_name,</if> <if test="nickName != null">nick_name,</if>
<if test="deptId != null">dept_id,</if> <if test="deptId != null">dept_id,</if>
<if test="deptName != null">dept_name,</if> <if test="deptName != null">dept_name,</if>
@@ -56,11 +73,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="procInstId != null">proc_inst_id,</if> <if test="procInstId != null">proc_inst_id,</if>
<if test="endTime != null">end_time,</if>
<if test="recordStatus != null">record_status,</if> <if test="recordStatus != null">record_status,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if> <if test="id != null">#{id},</if>
<if test="userId != null">#{userId},</if> <if test="userId != null">#{userId},</if>
<if test="toolId != null">#{toolId},</if>
<if test="procTitle != null">#{procTitle},</if>
<if test="applyType != null">#{applyType},</if>
<if test="nickName != null">#{nickName},</if> <if test="nickName != null">#{nickName},</if>
<if test="deptId != null">#{deptId},</if> <if test="deptId != null">#{deptId},</if>
<if test="deptName != null">#{deptName},</if> <if test="deptName != null">#{deptName},</if>
@@ -69,16 +90,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="endTime != null">#{endTime},</if>
<if test="procInstId != null">#{procInstId},</if> <if test="procInstId != null">#{procInstId},</if>
<if test="recordStatus != null">#{recordStatus},</if> <if test="recordStatus != null">#{recordStatus},</if>
</trim> </trim>
</insert> </insert>
<update id="updateUseApply" parameterType="UseApply"> <update id="updateToolApply" parameterType="ToolApply">
update t_use_apply update t_tool_apply
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if> <if test="userId != null">user_id = #{userId},</if>
<if test="nickName != null">nick_name = #{nickName},</if> <if test="nickName != null">nick_name = #{nickName},</if>
<if test="toolId != null">tool_id = #{toolId},</if>
<if test="procTitle != null">proc_title = #{procTitle},</if>
<if test="applyType != null">apply_type = #{applyType},</if>
<if test="deptId != null">dept_id = #{deptId},</if> <if test="deptId != null">dept_id = #{deptId},</if>
<if test="deptName != null">dept_name = #{deptName},</if> <if test="deptName != null">dept_name = #{deptName},</if>
<if test="reason != null">reason = #{reason},</if> <if test="reason != null">reason = #{reason},</if>
@@ -86,25 +111,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
<if test="recordStatus != null">record_status = #{recordStatus},</if> <if test="recordStatus != null">record_status = #{recordStatus},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
<delete id="deleteUseApplyById" parameterType="String"> <delete id="deleteToolApplyById" parameterType="String">
delete from t_use_apply where id = #{id} delete from t_tool_apply where id = #{id}
</delete> </delete>
<delete id="deleteUseApplyByIds" parameterType="String"> <delete id="deleteToolApplyByIds" parameterType="String">
delete from t_use_apply where id in delete from t_tool_apply where id in
<foreach item="id" collection="array" open="(" separator="," close=")"> <foreach item="id" collection="array" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="checkUseApply" resultType="int"> <select id="checkToolApply" resultType="int">
SELECT count(*) FROM `t_use_apply_item` uai SELECT count(*) FROM `t_tool_apply_item` uai
left join `t_use_apply` ua on uai.apply_id = ua.id left join `t_tool_apply` ua on uai.apply_id = ua.id
WHERE ua.record_status = 'done' WHERE ua.record_status = 'done'
and uai.tool_id = #{toolId} and uai.tool_id = #{toolId}
and ua.user_id = #{userId} and ua.user_id = #{userId}

View File

@@ -145,8 +145,11 @@
<select id="selectToolList" parameterType="Tool" resultMap="ToolResult"> <select id="selectToolList" parameterType="Tool" resultMap="ToolResult">
select u.tool_id, u.tool_code, u.tool_name, u.tool_type, u.tool_source, u.tool_use, u.test_situation, u.function_desc, u.apply_condition, u.operate_explain,u.record_status,u.proc_inst_id, select u.tool_id, u.tool_code, u.tool_name, u.tool_type, u.tool_source, u.tool_use, u.test_situation, u.function_desc, u.apply_condition, u.operate_explain,u.record_status,u.proc_inst_id,
u.tool_principals, u.tool_principals_name, u.tool_resp_dept, u.status, u.create_by, u.create_time, u.remark, d.dept_name as tool_resp_dept_name,u.association from t_tool u u.tool_principals, u.tool_principals_name, u.tool_resp_dept, u.status, u.create_by, u.create_time, u.remark, sd.dept_name as tool_resp_dept_name,u.association
left join sys_dept d on u.tool_resp_dept = d.dept_id from t_tool u
left join sys_user su on u.create_by = su.user_id
left join sys_dept d on d.dept_id = su.dept_Id
left join sys_dept sd on u.tool_resp_dept = sd.dept_id
where 1=1 where 1=1
and u.record_status != 'cancel' and u.record_status != 'cancel'
<if test="toolId != null and toolId != ''"> <if test="toolId != null and toolId != ''">
@@ -176,6 +179,7 @@
<if test="recordStatus != null and recordStatus != ''"> <if test="recordStatus != null and recordStatus != ''">
AND u.record_status = #{recordStatus} AND u.record_status = #{recordStatus}
</if> </if>
${params.dataScope}
order by create_time desc order by create_time desc
</select> </select>
@@ -189,4 +193,14 @@
#{toolId} #{toolId}
</foreach> </foreach>
</delete> </delete>
<select id="countToolType" resultType="java.util.Map">
select tool_type as types,sum(1) as statistics from t_tool where record_status != 'cancel' group by tool_type;
</select>
<select id="toolSource" resultType="java.util.Map">
select tool_source as types,sum(1) as statistics from t_tool where record_status != 'cancel' group by tool_source;
</select>
<select id="recordStatus" resultType="java.util.Map">
select record_status as types,sum(1) as statistics from t_tool where record_status != 'cancel' group by record_status;
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.rzdata.web.mapper.TzMessageMapper">
<resultMap type="TzMessage" id="TzMessageResult">
<result property="id" column="id" />
<result property="receiverId" column="receiver_id" />
<result property="states" column="states" />
<result property="content" column="content" />
<result property="deleted" column="deleted" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="createById" column="create_by_id" />
<result property="updateById" column="update_by_id" />
</resultMap>
<sql id="selectTzMessageVo">
select id, receiver_id, states, content, deleted, create_by, create_time, update_by, update_time, remark,create_by_id,update_by_id from tz_message
</sql>
<select id="selectTzMessageList" parameterType="TzMessage" resultMap="TzMessageResult">
<include refid="selectTzMessageVo"/>
<where>
<if test="receiverId != null and receiverId != ''"> and receiver_id = #{receiverId}</if>
<if test="states != null "> and states = #{states}</if>
<if test="content != null and content != ''"> and content like concat('%', #{content}, '%')</if>
<if test="createById != null and deleted != ''"> and create_by_id = #{createById}</if>
and deleted = '0'
</where>
</select>
<select id="selectTzMessageById" parameterType="String" resultMap="TzMessageResult">
<include refid="selectTzMessageVo"/>
where id = #{id}
</select>
<insert id="insertTzMessage" parameterType="TzMessage">
insert into tz_message
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="receiverId != null">receiver_id,</if>
<if test="states != null">states,</if>
<if test="content != null and content != ''">content,</if>
<if test="deleted != null and deleted != ''">deleted,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="createById != null">create_by_id,</if>
<if test="updateById != null">update_by_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="receiverId != null">#{receiverId},</if>
<if test="states != null">#{states},</if>
<if test="content != null and content != ''">#{content},</if>
<if test="deleted != null and deleted != ''">#{deleted},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="createById != null">#{create_by_id},</if>
<if test="updateById != null">#{update_by_id},</if>
</trim>
</insert>
<update id="updateTzMessage" parameterType="TzMessage">
update tz_message
<trim prefix="SET" suffixOverrides=",">
<if test="receiverId != null">receiver_id = #{receiverId},</if>
<if test="states != null">states = #{states},</if>
<if test="content != null and content != ''">content = #{content},</if>
<if test="deleted != null and deleted != ''">deleted = #{deleted},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createById != null">create_by_id = #{createById},</if>
<if test="updateById != null">update_by_id = #{updateById},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteTzMessageById" parameterType="String">
delete from tz_message where id = #{id}
</delete>
<delete id="deleteTzMessageByIds" parameterType="String">
delete from tz_message where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<update id="updateAllMarkedRead" parameterType="TzMessage">
update tz_message set states = '2' where create_by_id = #{createById}
</update>
<!-- 批量插入 -->
<insert id="batchInsert" parameterType="java.util.List">
insert into tz_message (id, receiver_id, states, content, deleted, create_by, create_time
values
<foreach item="item" index="index" collection="tzMessageList" open="(" separator="),(" close=")">
#{item.id}, #{item.receiverId}, #{item.states}, #{item.content}, #{item.deleted}, #{item.createBy}, #{item.createTime}
</foreach>
</insert>
</mapper>

View File

@@ -0,0 +1,26 @@
package com.rzdata.common.config;
import cn.hutool.core.lang.Snowflake;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 雪花算法订单号生成
* @author lanhai
*/
@Configuration
public class SnowflakeConfig {
@Value("${application.datacenterId}")
private Long datacenterId;
@Value("${application.workerId}")
private Long workerId;
@Bean
public Snowflake snowflake() {
return new Snowflake(workerId, datacenterId);
}
}

View File

@@ -182,4 +182,31 @@ public class Constants
public static final String DOWNLOAD_TOOL_PERMISSION = "download:done:tool"; public static final String DOWNLOAD_TOOL_PERMISSION = "download:done:tool";
/** 文档-状态-已发布 **/
public static final String DOC_STATUS_YFB = "yfb";
/** 文档-状态-已上传 **/
public static final String DOC_STATUS_YSC = "ysc";
/** 文档-状态-审核中 **/
public static final String DOC_STATUS_SHZ = "shz";
/** 文档-doc **/
public static final String DOC_TYPE_DOC = "doc";
public static final String STR_ZERO = "0";
public static final String STR_ONE = "1";
/**
* 申请类型-发布申请
*/
public static final String TOOL_APPLY_TYPE_PUBLISH = "publish";
/**
* 申请类型-使用申请
*/
public static final String TOOL_APPLY_TYPE_USE = "use";
public static final String DOC_DOWNLOAD_PERMISSION = "document:download";
public static final String DOC_VIEW_PERMISSION = "document:query:data:all";
} }

View File

@@ -0,0 +1,54 @@
package com.rzdata.common.core.domain;
import com.rzdata.common.annotation.Excel;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 文档资源分类管理对象 t_document_category
*
* @author spongepan
* @date 2024-08-27
*/
@Data
public class DocumentCategory extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private String id;
/** 分类名称 */
@Excel(name = "分类名称")
private String categoryName;
/** 分类描述 */
@Excel(name = "分类描述")
private String categoryDescription;
/** 父分类ID如果是一级分类则为空 */
@Excel(name = "父分类ID如果是一级分类则为空")
private String parentId;
/** 创建人id */
@Excel(name = "创建人id")
private String createById;
/** 更新人id */
@Excel(name = "更新人id")
private String updateById;
/** 类型system:系统user:用户创建) */
@Excel(name = "类型")
private String types;
/** 文档分类id */
@Excel(name = "文档分类id")
private String docCategoryId;
/** 子分类 */
private List<DocumentCategory> children = new ArrayList<DocumentCategory>();
}

View File

@@ -6,12 +6,14 @@ import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.rzdata.common.core.domain.entity.SysDept; import com.rzdata.common.core.domain.entity.SysDept;
import com.rzdata.common.core.domain.entity.SysMenu; import com.rzdata.common.core.domain.entity.SysMenu;
import lombok.Data;
/** /**
* Treeselect树结构实体类 * Treeselect树结构实体类
* *
* @author ruoyi * @author ruoyi
*/ */
@Data
public class TreeSelect implements Serializable public class TreeSelect implements Serializable
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -22,6 +24,9 @@ public class TreeSelect implements Serializable
/** 节点名称 */ /** 节点名称 */
private String label; private String label;
/** 类型 */
private String types;
/** 子节点 */ /** 子节点 */
@JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<TreeSelect> children; private List<TreeSelect> children;
@@ -45,33 +50,14 @@ public class TreeSelect implements Serializable
this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
} }
public Long getId()
public TreeSelect(DocumentCategory docCategory)
{ {
return id; this.id = Long.valueOf(docCategory.getId());
this.label = docCategory.getCategoryName();
this.types = docCategory.getTypes();
this.children = docCategory.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
} }
public void setId(Long id)
{
this.id = id;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
public List<TreeSelect> getChildren()
{
return children;
}
public void setChildren(List<TreeSelect> children)
{
this.children = children;
}
} }

View File

@@ -5,6 +5,8 @@ import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Objects; import java.util.Objects;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.rzdata.common.listener.PutObjectProgressListener; import com.rzdata.common.listener.PutObjectProgressListener;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@@ -280,4 +282,58 @@ public class FileUploadUtils
} }
return extension; return extension;
} }
/**
* 生成合并后的文件路径
*
* @param baseDir 文件存储根目录
* @param fileName 上传的文件名
* @return 合并后文件的完整路径
*/
public static String generateMergedFilePath(String baseDir, String fileName) {
// 获取当前日期路径
String datePath = DateUtil.today().replace("-", "/");
// 获取文件的基本名称和扩展名
String baseName = StrUtil.subBefore(fileName, ".", true);
String extension = StrUtil.subAfter(fileName, ".", true);
// 生成唯一文件名,使用时间戳
String uniqueFileName = baseName + "_" + System.currentTimeMillis() + "." + extension;
// 合并文件路径: baseDir/yyyy/MM/dd/uploadId/uniqueFileName
String mergedFilePath = Paths.get(baseDir, datePath, uniqueFileName).toString();
return mergedFilePath;
}
/**
* 获取文件名称
*
* @param baseDir 文件存储根目录
* @param fileNames 上传的文件名
* @return 合并后文件的完整路径
*/
public static String getFilePath(String baseDir, String fileNames) {
String extension = StrUtil.subAfter(fileNames, ".", true);
String fileName = StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
FilenameUtils.getBaseName(fileNames), Seq.getId(Seq.uploadSeqType), extension);;
try {
return getPathFileName(baseDir, fileName);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String extractSuffix(String filePath) {
int lastDotIndex = filePath.lastIndexOf('.');
if (lastDotIndex == -1) {
return ""; // 没有后缀
}
return filePath.substring(lastDotIndex + 1); // 去掉点(.
}
} }

View File

@@ -1,14 +1,9 @@
_ _ ______ _ _ __ __ _ ______ _ _ __ __ _
| | | | | ____| (_) | | \ \ / / (_) | ____| (_) | | \ \ / / (_)
| | __ | | __ | |__ _ | | ___ \ \ / / _ ___ __ __ | |__ _ | | ___ \ \ / / _ ___ __ __
| |/ / | |/ / | __| | | | | / _ \ \ \/ / | | / _ \ \ \ /\ / / | __| | | | | / _ \ \ \/ / | | / _ \ \ \ /\ / /
| < | < | | | | | | | __/ \ / | | | __/ \ V V / | | | | | | | __/ \ / | | | __/ \ V V /
|_|\_\ |_|\_\ |_| |_| |_| \___| \/ |_| \___| \_/\_/ |_| |_| |_| \___| \/ |_| \___| \_/\_/
=> Spring Boot :: ${spring-boot.version} => Spring Boot :: ${spring-boot.version}
=> kkFileView :: 4.4.0-beta
=> Home site :: https://kkview.cn
=> Github :: https://github.com/kekingcn/kkFileView
=> Gitee :: https://gitee.com/kekingcn/file-online-preview
=> kk opensource community :: https://t.zsxq.com/09ZHSXbsQ

View File

@@ -38,7 +38,6 @@
该(${fileType})文件,系统暂不支持在线预览,具体原因如下: 该(${fileType})文件,系统暂不支持在线预览,具体原因如下:
<p style="color: red;">${msg}</p> <p style="color: red;">${msg}</p>
</span> </span>
<p>有任何疑问请加入kk开源社区知识星球咨询<a href="https://t.zsxq.com/09ZHSXbsQ">https://t.zsxq.com/09ZHSXbsQ</a><br></p>
</div> </div>
</body> </body>
</html> </html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>kkFileView演示首页</title> <title>tool-tech-file-view演示首页</title>
<link rel="icon" href="./favicon.ico" type="image/x-icon"> <link rel="icon" href="./favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="css/loading.css"/> <link rel="stylesheet" href="css/loading.css"/>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/>
@@ -64,13 +64,11 @@
<nav class="navbar navbar-inverse navbar-fixed-top"> <nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<a class="navbar-brand" href="https://kkview.cn" target='_blank'>kkFileView</a> <a class="navbar-brand" href="#" target='_blank'>ToolTechFileView</a>
</div> </div>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li class="active"><a href="./index">首页</a></li> <li class="active"><a href="./index">首页</a></li>
<li><a href="./integrated">接入说明</a></li> <li><a href="./integrated">接入说明</a></li>
<li><a href="./record">版本发布记录</a></li>
<li><a href="./sponsor">赞助开源</a></li>
</ul> </ul>
</div> </div>
</nav> </nav>
@@ -79,7 +77,6 @@
<#-- 接入说明 --> <#-- 接入说明 -->
<div class="page-header"> <div class="page-header">
<h1>支持的文件类型</h1> <h1>支持的文件类型</h1>
我们一直在扩展支持的文件类型不断优化预览的效果如果您有什么建议欢迎在kk开源社区留意反馈<a target='_blank' href="https://t.zsxq.com/09ZHSXbsQ">https://t.zsxq.com/09ZHSXbsQ</a>。
</div> </div>
<div > <div >
<ol> <ol>

View File

@@ -17,13 +17,11 @@
<nav class="navbar navbar-inverse navbar-fixed-top"> <nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container"> <div class="container">
<div class="navbar-header"> <div class="navbar-header">
<a class="navbar-brand" href="https://kkview.cn" target='_blank'>kkFileView</a> <a class="navbar-brand" href="#" target='_blank'>ToolTechFileView</a>
</div> </div>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="./index">首页</a></li> <li><a href="./index">首页</a></li>
<li class="active"><a href="./integrated">接入说明</a></li> <li class="active"><a href="./integrated">接入说明</a></li>
<li><a href="./record">版本发布记录</a></li>
<li><a href="./sponsor">赞助开源</a></li>
</ul> </ul>
</div> </div>
</nav> </nav>
@@ -32,7 +30,7 @@
<#-- 接入说明 --> <#-- 接入说明 -->
<div class="page-header"> <div class="page-header">
<h1>接入说明</h1> <h1>接入说明</h1>
本文档针对前端项目接入 kkFileView 的说明,并假设 kkFileView 的服务地址为http://127.0.0.1:8012。 本文档针对前端项目接入 ToolTechFileView 的说明,并假设 ToolTechFileView 的服务地址为http://127.0.0.1:8012。
</div> </div>
<div class="well"> <div class="well">

View File

@@ -35,7 +35,6 @@
<img src="images/sorry.jpg" /> <img src="images/sorry.jpg" />
<p> <p>
预览源文件来自未授信的目录,请停止访问!<br> 预览源文件来自未授信的目录,请停止访问!<br>
有任何疑问请加入kk开源社区知识星球咨询<a href="https://t.zsxq.com/09ZHSXbsQ">https://t.zsxq.com/09ZHSXbsQ</a><br>
</p> </p>
</div> </div>
</body> </body>

View File

@@ -33,10 +33,6 @@
<body> <body>
<div class="container"> <div class="container">
<img src="images/sorry.jpg" /> <img src="images/sorry.jpg" />
<p>
预览源文件来自不受信任的站点:<span style="color: red; display: inline;">${current_host}</span> 请联系管理员!<br>
有任何疑问请加入kk开源社区知识星球咨询<a href="https://t.zsxq.com/09ZHSXbsQ">https://t.zsxq.com/09ZHSXbsQ</a><br>
</p>
</div> </div>
</body> </body>
</html> </html>

View File

@@ -105,7 +105,6 @@ html += " <span>";
html += " 该(tif)文件,系统解析错误,具体原因如下:"; html += " 该(tif)文件,系统解析错误,具体原因如下:";
html += " <p style=\"color: red;\">文件[${file.name}]解析失败,请联系系统管理员</p>"; html += " <p style=\"color: red;\">文件[${file.name}]解析失败,请联系系统管理员</p>";
html += " </span>"; html += " </span>";
html += " <p>有任何疑问请加入kk开源社区知识星球咨询<a href=\"https://t.zsxq.com/09ZHSXbsQ\">https://t.zsxq.com/09ZHSXbsQ</a><br></p>";
html += "</div>"; html += "</div>";
html += "</body>"; html += "</body>";
html += "</html>"; html += "</html>";

View File

@@ -18,6 +18,14 @@ public interface SysDictTypeMapper
*/ */
public List<SysDictType> selectDictTypeList(SysDictType dictType); public List<SysDictType> selectDictTypeList(SysDictType dictType);
/**
* 根据条件分页查询字典类型
*
* @param dictType 字典类型信息
* @return 字典类型集合信息
*/
public List<SysDictType> selectBizDictTypeList(SysDictType dictType);
/** /**
* 根据所有字典类型 * 根据所有字典类型
* *

View File

@@ -19,6 +19,14 @@ public interface ISysDictTypeService
*/ */
public List<SysDictType> selectDictTypeList(SysDictType dictType); public List<SysDictType> selectDictTypeList(SysDictType dictType);
/**
* 根据条件分页查询字典类型
*
* @param dictType 字典类型信息
* @return 字典类型集合信息
*/
public List<SysDictType> selectBizDictTypeList(SysDictType dictType);
/** /**
* 根据所有字典类型 * 根据所有字典类型
* *

View File

@@ -42,7 +42,6 @@ public class SysDeptServiceImpl implements ISysDeptService
* @return 部门信息集合 * @return 部门信息集合
*/ */
@Override @Override
@DataScope(deptAlias = "d")
public List<SysDept> selectDeptList(SysDept dept) public List<SysDept> selectDeptList(SysDept dept)
{ {
return deptMapper.selectDeptList(dept); return deptMapper.selectDeptList(dept);
@@ -57,7 +56,7 @@ public class SysDeptServiceImpl implements ISysDeptService
@Override @Override
public List<TreeSelect> selectDeptTreeList(SysDept dept) public List<TreeSelect> selectDeptTreeList(SysDept dept)
{ {
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept); List<SysDept> depts = this.selectDeptList(dept);
return buildDeptTreeSelect(depts); return buildDeptTreeSelect(depts);
} }

View File

@@ -53,6 +53,18 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
return dictTypeMapper.selectDictTypeList(dictType); return dictTypeMapper.selectDictTypeList(dictType);
} }
/**
* 根据条件分页查询字典类型
*
* @param dictType 字典类型信息
* @return 字典类型集合信息
*/
@Override
public List<SysDictType> selectBizDictTypeList(SysDictType dictType)
{
return dictTypeMapper.selectBizDictTypeList(dictType);
}
/** /**
* 根据所有字典类型 * 根据所有字典类型
* *

View File

@@ -69,7 +69,6 @@ public class SysUserServiceImpl implements ISysUserService
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<SysUser> selectUserList(SysUser user) public List<SysUser> selectUserList(SysUser user)
{ {
return userMapper.selectUserList(user); return userMapper.selectUserList(user);

View File

@@ -41,6 +41,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
</select> </select>
<!-- 业务字典查询方法-->
<select id="selectBizDictTypeList" parameterType="SysDictType" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/>
<where>
<if test="dictName != null and dictName != ''">
AND dict_name like concat('%', #{dictName}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="dictType != null and dictType != ''">
AND dict_type like concat('%', #{dictType}, '%')
</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<!-- 锁定某些字段类型 -->
AND dict_type in ('tool_type','msg_status','tool_source','tool_status','doc_class','doc_source','doc_upload_status','flow_status')
</where>
</select>
<select id="selectDictTypeAll" resultMap="SysDictTypeResult"> <select id="selectDictTypeAll" resultMap="SysDictTypeResult">
<include refid="selectDictTypeVo"/> <include refid="selectDictTypeVo"/>
</select> </select>