Bladeren bron

公告管理

hexiao 2 jaren geleden
bovenliggende
commit
9b3f8c6a3e

+ 133 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeController.java

@@ -0,0 +1,133 @@
+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.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import com.ozs.base.vo.BaseNoticePageReqVo;
+import com.ozs.base.vo.BaseNoticeTypePageReqVo;
+import com.ozs.base.vo.BaseNoticeVo;
+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 io.swagger.annotations.Api;
+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 javax.validation.constraints.NotEmpty;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api(tags = ModularConstans.notice)
+@RestController
+@RequestMapping("/base/notice")
+public class BaseNoticeController extends BaseController {
+
+
+    @Autowired
+    private BaseNoticeService baseNoticeService;
+    @Autowired
+    private BaseNoticeTypeService baseNoticeTypeService;
+
+    @ApiOperation(value = "分页查询公告信息")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:notice:list')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                               @RequestBody BaseNoticePageReqVo vo) {
+        LambdaQueryWrapper<BaseNotice> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getTitle())){
+            lw.like(BaseNotice::getTitle,vo.getTitle());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.ge(BaseNotice::getReleaseTime,vo.getStartTime());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.le(BaseNotice::getReleaseTime,vo.getEntTime());
+        }
+        IPage<BaseNotice> page = baseNoticeService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+        IPage<BaseNoticeVo> pagev = new Page<>();
+        pagev.setTotal(page.getTotal());
+        pagev.setCurrent(page.getCurrent());
+        pagev.setPages(page.getPages());
+
+        if(!ObjectUtils.isEmpty(page) && page.getRecords().size()>0){
+            List<BaseNoticeType> list = baseNoticeTypeService.list();
+            List<Long> ids = list.stream().map(BaseNoticeType::getId).collect(Collectors.toList());
+            List<BaseNoticeVo> collect = page.getRecords().stream().map(o -> {
+                BaseNoticeVo baseNoticeVo = new BaseNoticeVo();
+                BeanUtils.copyProperties(o, baseNoticeVo);
+                if (ids.contains(o.getType())) {
+                    List<BaseNoticeType> collect1 = list.stream().filter(tdto -> tdto.getId().equals(o.getType())).collect(Collectors.toList());
+                    if(!ObjectUtils.isEmpty(collect1)){
+                        baseNoticeVo.setTypeName(collect1.get(0).getName());
+                    }
+
+                }
+                return baseNoticeVo;
+            }).collect(Collectors.toList());
+            pagev.setRecords(collect);
+        }else {
+            pagev.setRecords(null);
+        }
+        return success(pagev);
+
+    }
+
+
+
+    @ApiOperation(value = "新增公告信息")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:notice:add')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BaseNotice vo) {
+        vo.setCreated(getUserId().toString());
+        vo.setCreateTime(new Date());
+        vo.setUpdated(vo.getCreated());
+        vo.setUpdateTime(vo.getCreateTime());
+        return toAjax(baseNoticeService.save(vo));
+    }
+
+    @ApiOperation(value = "删除公告信息")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:notice:remove')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody List<Long> ids) {
+        return toAjax(baseNoticeService.removeBatchByIds(ids));
+    }
+
+    @ApiOperation(value = "查看公告信息")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:notice:query')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        BaseNotice vo = baseNoticeService.getById(id);
+
+        BaseNoticeVo baseNoticeVo = new BaseNoticeVo();
+        if(!ObjectUtils.isEmpty(vo)){
+            BeanUtils.copyProperties(vo, baseNoticeVo);
+            List<BaseNoticeType> list = baseNoticeTypeService.list();
+            List<BaseNoticeType> collect1 = list.stream().filter(tdto -> tdto.getId().equals(vo.getType())).collect(Collectors.toList());
+            if(!ObjectUtils.isEmpty(collect1)){
+                baseNoticeVo.setTypeName(collect1.get(0).getName());
+            }
+        }
+
+        return success(baseNoticeVo);
+    }
+}

+ 8 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeTypeController.java

@@ -80,4 +80,12 @@ public class BaseNoticeTypeController extends BaseController {
                              @RequestBody List<Long> ids) {
         return toAjax(baseNoticeTypeService.removeBatchByIds(ids));
     }
+
+
+    @ApiOperation(value = "查询公告类型信息-下拉")
+    @PostMapping("/list")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.QUERY)
+    public AjaxResult list() {
+        return success(baseNoticeTypeService.list());
+    }
 }

+ 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  notice = "公告管理";
+
     public static final String  noticeType = "公告类型管理";
 
     public static final String agency = "招标代理机构管理";

+ 75 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseNotice.java

@@ -0,0 +1,75 @@
+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;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 公告管理对象 base_notice
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("公告管理对象")
+public class BaseNotice extends BaseDto {
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    @ApiModelProperty("项目名称")
+    @NotBlank(message = "项目名称不能为空")
+    private String name;
+
+    /** 公告标题 */
+    @Excel(name = "公告标题")
+    @ApiModelProperty("公告标题")
+    @NotBlank(message = "公告标题不能为空")
+    private String title;
+
+    /** 公告类型 */
+    @Excel(name = "公告类型")
+    @ApiModelProperty("公告类型")
+    @NotEmpty(message = "公告类型不能为空")
+    private Long type;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("发布时间")
+    @NotEmpty(message = "发布时间不能为空")
+    private Date releaseTime;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    @ApiModelProperty("附件名称")
+    @NotBlank(message = "附件名称不能为空")
+    private String fileName;
+
+    /** 附件下载地址 */
+    @Excel(name = "附件下载地址")
+    @ApiModelProperty("附件下载地址")
+    @NotBlank(message = "附件下载地址不能为空")
+    private String fileUrl;
+
+}

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

@@ -0,0 +1,18 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseNotice;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 公告管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BaseNoticeMapper extends BaseMapper<BaseNotice>
+{
+
+}

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

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

+ 16 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseNoticeServiceImpl.java

@@ -0,0 +1,16 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.mapper.BaseNoticeMapper;
+import com.ozs.base.mapper.BaseNoticeTypeMapper;
+import com.ozs.base.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class BaseNoticeServiceImpl extends ServiceImpl<BaseNoticeMapper, BaseNotice> implements BaseNoticeService {
+}

+ 33 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticePageReqVo.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 = "BaseNoticePageReqVo", description = ModularConstans.notice+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseNoticePageReqVo extends PageVo {
+
+    @ApiModelProperty("公告标题")
+    private String title;
+
+    // 开始时间
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    // 结束时间
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date entTime;
+
+}

+ 32 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticeVo.java

@@ -0,0 +1,32 @@
+package com.ozs.base.vo;
+
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 公告管理对象 base_notice
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("公告管理对象vo")
+public class BaseNoticeVo extends BaseNotice
+{
+
+    /** 项目名称 */
+    @Excel(name = "公告类型名称")
+    @ApiModelProperty("公告类型名称")
+    private String typeName;
+
+
+
+}