Browse Source

首页公告

hexiao 2 years ago
parent
commit
a04a6cabf1

+ 18 - 47
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeController.java

@@ -149,58 +149,29 @@ public class BaseNoticeController extends BaseController {
     @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
     public AjaxResult homePage(@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());
-        }
-
-        // 添加数据权限
-        List<String> roleKeys = getLoginUser().getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
-        if (roleKeys.contains(Constants.DEMAND_UNIT)) {
-            // 需求单位
-            /*(purchase_dept_id = 当前用户deptID) */
-            lw.eq(BaseNotice::getDeptId, getDeptId());
-        } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
-                || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
-            // 采购管理部门  或  采购办
-            SysDept sysDept = new SysDept();
-            sysDept.setParentId(getDeptId());
-            sysDept.setStatus("0");
-            List<Long> childDeptIds = iSysDeptService.selectDeptList(sysDept)
-                    .stream()
-                    .map(SysDept::getDeptId)
-                    .collect(Collectors.toList());
-            if(ObjectUtils.isEmpty(childDeptIds)){
-                lw.and((wrapper) -> {
-                    wrapper.eq(BaseNotice::getIsExcess, 0);
-                    wrapper.eq(BaseNotice::getDeptId, getDeptId());
-                });
-            }else {
-                lw.and((wrapper) -> {
-                    wrapper.eq(BaseNotice::getIsExcess, 0);
-                    wrapper.eq(BaseNotice::getDeptId, getDeptId());
-                })
-                        .or((wrapper) -> {
-                            wrapper.eq(BaseNotice::getIsExcess, 1);
-                            wrapper.in(BaseNotice::getDeptId, childDeptIds);
-                        });
-            }
-        }
-
-
-        IPage<BaseNotice> page = baseNoticeService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+//        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());
+//        }
+//        if (!ObjectUtils.isEmpty(vo.getType())) {
+//            lw.eq(BaseNotice::getType, vo.getType());
+//        }
+//        lw.orderByDesc(BaseNotice::getReleaseTime);
+        vo.setUserId(getUserId());
+        vo.setDeptId(getDeptId());
+        IPage<BaseNotice> page = baseNoticeService.queryPage(vo);
         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){
+        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 -> {

+ 16 - 2
purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeMapper.java

@@ -3,7 +3,12 @@ package com.ozs.base.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.vo.BaseNoticePageReqVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.w3c.dom.stylesheets.LinkStyle;
+
+import java.util.List;
 
 /**
  * 公告管理Mapper接口
@@ -12,7 +17,16 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2023-01-14
  */
 @Mapper
-public interface BaseNoticeMapper extends BaseMapper<BaseNotice>
-{
+public interface BaseNoticeMapper extends BaseMapper<BaseNotice> {
 
+    @Select("select b.* from " +
+            " base_notice b left join pm_audit_dept_ref r " +
+            " on b.demand_id = r.ref_id   " +
+            " where (#{userId} = 1  or  (r.dept_id = #{deptId} and  r.ref_type = 2) )    " +
+            " and (#{title} is null  or   b.title like concat('%',#{title},'%'))  " +
+            " and (#{type} is null  or   b.type = #{type})  " +
+            " and (#{startTime} is null  or   to_days(b.release_time) >= to_days(#{startTime}) ) " +
+            " and (#{entTime} is null  or   to_days(b.release_time) <= to_days(#{entTime}) ) " +
+            "  ")
+    List<BaseNotice> query(BaseNoticePageReqVo vo);
 }

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

@@ -1,10 +1,13 @@
 package com.ozs.base.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.vo.BaseNoticePageReqVo;
 
 
 public interface BaseNoticeService extends IService<BaseNotice> {
 
 
+    IPage<BaseNotice> queryPage(BaseNoticePageReqVo vo);
 }

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

@@ -1,16 +1,42 @@
 package com.ozs.base.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
 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 com.ozs.base.vo.BaseNoticePageReqVo;
+import com.ozs.plan.doman.MonthlyReconciliation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 @Slf4j
 public class BaseNoticeServiceImpl extends ServiceImpl<BaseNoticeMapper, BaseNotice> implements BaseNoticeService {
+
+
+    @Autowired
+    private BaseNoticeMapper baseNoticeMapper;
+
+    @Override
+    public IPage<BaseNotice> queryPage(BaseNoticePageReqVo vo) {
+        int pageNum = Integer.parseInt(vo.getPageNum().toString());
+        int pageSize = Integer.parseInt(vo.getPageSize().toString());
+        vo.setTitle(StringUtils.isBlank(vo.getTitle()) ? null : vo.getTitle());
+        Page<BaseNotice> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> baseNoticeMapper.query(vo));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseNotice> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
+
+    }
 }

+ 5 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticePageReqVo.java

@@ -37,4 +37,9 @@ public class BaseNoticePageReqVo extends PageVo {
      */
     @ApiModelProperty("公告类型")
     private Long type;
+
+    private Long deptId;
+
+    private Long userId;
+
 }