hexiao 2 лет назад
Родитель
Сommit
3b1f66bcfb

+ 134 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BasePolicyController.java

@@ -0,0 +1,134 @@
+package com.ozs.web.controller.base;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.domain.BasePolicy;
+import com.ozs.base.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import com.ozs.base.service.BasePolicyService;
+import com.ozs.base.vo.BaseNoticePageReqVo;
+import com.ozs.base.vo.BaseNoticeVo;
+import com.ozs.base.vo.BasePolicyPageReqVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.file.FileUploadUtils;
+import com.ozs.common.utils.file.FileUtils;
+import com.ozs.common.utils.uuid.UUID;
+import com.ozs.common.vo.EsMessage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api(tags = ModularConstans.policy)
+@RestController
+@RequestMapping("/base/policy")
+public class BasePolicyController extends BaseController {
+
+
+    @Autowired
+    private BasePolicyService basePolicyService;
+
+    @ApiOperation(value = "分页查询政策法规")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:policy:list')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                               @RequestBody BasePolicyPageReqVo vo) {
+        LambdaQueryWrapper<BasePolicy> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getName())){
+            List<EsMessage> maps = null;
+            try {
+                maps = FileUtils.eSearch(vo.getName());
+            } catch (UnknownHostException e) {
+                e.printStackTrace();
+            }
+            List<String> ids = maps.stream().map(EsMessage::getId).collect(Collectors.toList());
+//            lw.like(BasePolicy::getName,vo.getName());
+            lw.in(BasePolicy::getEsId,ids);
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.ge(BasePolicy::getReleaseTime,vo.getStartTime());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.le(BasePolicy::getReleaseTime,vo.getEntTime());
+        }
+        IPage<BasePolicy> page = basePolicyService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+        return success(page);
+
+    }
+
+
+    @ApiOperation("PDF上传")
+    @ApiImplicitParam(name = "file", value = "文件", required = true, dataTypeClass = MultipartFile.class)
+    @PostMapping("/pdfUpload")
+    public AjaxResult pdfUpload(MultipartFile file) {
+        try {
+            // 上传到服务器,返回一个服务器硬盘地址
+            String esId = UUID.randomUUID().toString();
+            String upload = FileUploadUtils.uploadPdfToEs(file,esId );
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", upload);
+            ajax.put("fileName", file.getName());
+            ajax.put("esId", esId);
+            ajax.put("originalFilename", file.getOriginalFilename());
+            return ajax;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+
+    }
+
+    @ApiOperation(value = "新增政策法规")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:policy:add')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BasePolicy vo) {
+        vo.setCreated(getUserId().toString());
+        vo.setCreateTime(new Date());
+        vo.setUpdated(vo.getCreated());
+        vo.setUpdateTime(vo.getCreateTime());
+        return toAjax(basePolicyService.save(vo));
+    }
+
+    @ApiOperation(value = "删除政策法规")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:policy:remove')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody List<Long> ids) {
+        return toAjax(basePolicyService.removeBatchByIds(ids));
+    }
+
+    @ApiOperation(value = "查看政策法规")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:policy:query')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        return success(basePolicyService.getById(id));
+    }
+
+}

+ 28 - 39
purchase-admin/src/main/java/com/ozs/web/controller/common/CommonController.java

@@ -1,9 +1,16 @@
 package com.ozs.web.controller.common;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ozs.common.core.domain.R;
+import com.ozs.common.utils.uuid.UUID;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +33,10 @@ import com.ozs.framework.config.ServerConfig;
  *
  * @author ruoyi
  */
+@Api(tags = "统用功能")
 @RestController
 @RequestMapping("/common")
-public class CommonController
-{
+public class CommonController {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
     @Autowired
@@ -41,15 +48,12 @@ public class CommonController
      * 通用下载请求
      *
      * @param fileName 文件名称
-     * @param delete 是否删除
+     * @param delete   是否删除
      */
     @GetMapping("/download")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(fileName))
-            {
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+        try {
+            if (!FileUtils.checkAllowDownload(fileName)) {
                 throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
             }
             String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
@@ -58,13 +62,10 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, realFileName);
             FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
+            if (delete) {
                 FileUtils.deleteFile(filePath);
             }
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }
@@ -73,10 +74,8 @@ public class CommonController
      * 通用上传请求(单个)
      */
     @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFile(MultipartFile file) throws Exception {
+        try {
             // 上传文件路径
             String filePath = PurchaseConfig.getUploadPath();
             // 上传并返回新文件名称
@@ -88,29 +87,26 @@ public class CommonController
             ajax.put("newFileName", FileUtils.getName(fileName));
             ajax.put("originalFilename", file.getOriginalFilename());
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
 
+
+
     /**
      * 通用上传请求(多个)
      */
     @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+        try {
             // 上传文件路径
             String filePath = PurchaseConfig.getUploadPath();
             List<String> urls = new ArrayList<String>();
             List<String> fileNames = new ArrayList<String>();
             List<String> newFileNames = new ArrayList<String>();
             List<String> originalFilenames = new ArrayList<String>();
-            for (MultipartFile file : files)
-            {
+            for (MultipartFile file : files) {
                 // 上传并返回新文件名称
                 String fileName = FileUploadUtils.upload(filePath, file);
                 String url = serverConfig.getUrl() + fileName;
@@ -125,9 +121,7 @@ public class CommonController
             ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
             ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -137,12 +131,9 @@ public class CommonController
      */
     @GetMapping("/download/resource")
     public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(resource))
-            {
+            throws Exception {
+        try {
+            if (!FileUtils.checkAllowDownload(resource)) {
                 throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
             }
             // 本地资源路径
@@ -154,9 +145,7 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, downloadName);
             FileUtils.writeBytes(downloadPath, response.getOutputStream());
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }

+ 2 - 0
purchase-common/src/main/java/com/ozs/common/constant/ModularConstans.java

@@ -2,6 +2,8 @@ package com.ozs.common.constant;
 
 public class ModularConstans {
 
+    public static final String policy = "政策法规";
+
     public static final String  notice = "公告管理";
 
     public static final String  noticeType = "公告类型管理";

+ 84 - 0
purchase-system/src/main/java/com/ozs/base/domain/BasePolicy.java

@@ -0,0 +1,84 @@
+package com.ozs.base.domain;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 政策法规对象 base_policy
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("政策法规对象")
+public class BasePolicy extends BaseDto
+{
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 法律条文名称 */
+    @Excel(name = "法律条文名称")
+    @ApiModelProperty("法律条文名称")
+    @NotBlank(message = "法律条文名称不能为空")
+    private String name;
+
+    /** 发文字号 */
+    @Excel(name = "发文字号")
+    @ApiModelProperty("发文字号")
+    private String issuedNumber;
+
+    /** 发布机关 */
+    @Excel(name = "发布机关")
+    @ApiModelProperty("发布机关")
+    private String issuingAuthority;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("发布时间")
+    private Date releaseTime;
+
+    /** 收录时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "收录时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("收录时间")
+    private Date includedTime;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    @ApiModelProperty("附件名称")
+    @NotBlank(message = "附件名称不能为空")
+    private String fileName;
+
+    /** 附件下载地址 */
+    @Excel(name = "附件下载地址")
+    @ApiModelProperty("附件下载地址")
+    @NotBlank(message = "附件下载地址不能为空")
+    private String fileUrl;
+
+    /** es */
+    @Excel(name = "es存储id")
+    @ApiModelProperty("es存储id")
+    @NotBlank(message = "es存储id")
+    private String esId;
+
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BasePolicyMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BasePolicy;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 政策法规Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BasePolicyMapper extends BaseMapper<BasePolicy>
+{
+
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/base/service/BasePolicyService.java

@@ -0,0 +1,10 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BasePolicy;
+
+
+public interface BasePolicyService extends IService<BasePolicy> {
+
+
+}

+ 14 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BasePolicyServiceImpl.java

@@ -0,0 +1,14 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BasePolicy;
+import com.ozs.base.mapper.BasePolicyMapper;
+import com.ozs.base.service.BasePolicyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class BasePolicyServiceImpl extends ServiceImpl<BasePolicyMapper, BasePolicy> implements BasePolicyService {
+
+}

+ 33 - 0
purchase-system/src/main/java/com/ozs/base/vo/BasePolicyPageReqVo.java

@@ -0,0 +1,33 @@
+package com.ozs.base.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@ApiModel(value = "BasePolicyPageReqVo", description = ModularConstans.policy+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BasePolicyPageReqVo extends PageVo {
+
+    @ApiModelProperty("法律条文或内容")
+    private String name;
+
+    // 开始时间
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    // 结束时间
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date entTime;
+
+}