Selaa lähdekoodia

更改bug-and调整权限查询

buzhanyi 2 vuotta sitten
vanhempi
commit
f9bc0e0811

+ 2 - 2
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanQuarterController.java

@@ -215,8 +215,8 @@ public class PlanQuarterController extends BaseController {
     @Log(title = ModularConstans.planQuarter, businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('plan:quarter:exportPlan')")
     @PostMapping("/exportPlan")
-    public void exportPlan(HttpServletResponse response, @RequestBody PlanQuarterStandardVo quarterStandardVo) throws Exception {
-        List<PlanQuarterResponseVo> list = quarterService.selectPlanQuarterListEXP(quarterStandardVo);
+    public void exportPlan(HttpServletResponse response, @RequestBody PlanQuarterStandardVo quarterStandardVo, LoginUser loginUser) throws Exception {
+        List<PlanQuarterResponseVo> list = quarterService.selectPlanQuarterListEXP(quarterStandardVo, loginUser);
         ExcelUtil<PlanQuarterResponseVo> util = new ExcelUtil<>(PlanQuarterResponseVo.class);
         util.exportExcel(response, list, "季度计划数据");
     }

+ 7 - 164
purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java

@@ -1,27 +1,18 @@
 package com.ozs.web.controller.plan;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.pagehelper.PageInfo;
 import com.ozs.common.annotation.Log;
-import com.ozs.common.constant.Constants;
 import com.ozs.common.constant.ModularConstans;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
-import com.ozs.common.core.domain.entity.SysDept;
-import com.ozs.common.core.domain.entity.SysRole;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.BusinessType;
-import com.ozs.common.enums.DataIsDelete;
 import com.ozs.common.exception.ServiceException;
-import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.framework.web.service.TokenService;
-import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
-import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo;
 import com.ozs.plan.service.PlanQuarterService;
 import com.ozs.plan.service.ProvisionalPlanService;
 import com.ozs.plan.service.impl.PlanQuarterServiceImpl;
@@ -30,7 +21,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -118,80 +108,8 @@ public class ProvisionalPlanController extends BaseController {
                 || StringUtils.isNull(vo.getPageSize())) {
             throw new ServiceException("分页参数不能为空!");
         }
-        List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
-        try {
-            LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
-            lw.eq(PlanQuarter::getPlanType, "1");
-            if (!ObjectUtils.isEmpty(vo.getProjectName())) {
-                lw.like(PlanQuarter::getProjectName, vo.getProjectName());
-            }
-            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
-                lw.eq(PlanQuarter::getPurchaseServices, vo.getPurchaseServices());
-            }
-            if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
-                lw.eq(PlanQuarter::getIsExcess, vo.getIsExcess());
-            }
-            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
-                lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
-            }
-            if (!ObjectUtils.isEmpty(vo.getStartTime())) {
-                lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getStartTime());
-            }
-            if (!ObjectUtils.isEmpty(vo.getEndTime())) {
-                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
-                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
-                lw.le(PlanQuarter::getPlanDemandSubTime, parse);
-            }
-
-            LoginUser loginUser = tokenService.getLoginUser(request);
-            // 添加数据权限
-            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
-            if (roleKeys.contains(Constants.DEMAND_UNIT)) {
-                // 需求单位
-                /*(purchase_dept_id = 当前用户deptID) */
-                lw.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
-                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
-                // 采购管理部门  或  采购办
-                SysDept sysDept = new SysDept();
-                sysDept.setParentId(loginUser.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(PlanQuarter::getIsExcess, 0);
-                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-                    });
-                } else {
-                    lw.and((wrapper) -> {
-                        wrapper.eq(PlanQuarter::getIsExcess, 0);
-                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-                    })
-                            .or((wrapper) -> {
-                                wrapper.eq(PlanQuarter::getIsExcess, 1);
-                                wrapper.in(PlanQuarter::getPurchaseDeptId, childDeptIds);
-                            });
-                }
-            }
-            lw.orderBy(true, false, PlanQuarter::getCreateTime);
-            List<PlanQuarter> list = quarterService.list(lw);
-            planQuarterList = quarterServiceImpl.changeTo(list);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), planQuarterList);
-        PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
-        if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
-            provisionalPlanPageInfo.setList(pages.getRecords());
-            provisionalPlanPageInfo.setTotal(pages.getTotal());
-            provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
-        }
-        return success(provisionalPlanPageInfo);
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        return provisionalPlanService.selectProvisionalPlan(vo, request, loginUser);
     }
 
     @ApiOperation(value = "查询临时计划-审核单位")
@@ -204,84 +122,8 @@ public class ProvisionalPlanController extends BaseController {
                 || StringUtils.isNull(vo.getPageSize())) {
             throw new ServiceException("分页参数不能为空!");
         }
-        List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
-        try {
-            LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
-            lw.eq(PlanQuarter::getPlanType, "1");
-            if (!ObjectUtils.isEmpty(vo.getProjectName())) {
-                lw.like(PlanQuarter::getProjectName, vo.getProjectName());
-            }
-            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
-                lw.eq(PlanQuarter::getPurchaseServices, vo.getPurchaseServices());
-            }
-            if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
-                lw.eq(PlanQuarter::getIsExcess, vo.getIsExcess());
-            }
-            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
-                lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
-            } else {
-                lw.apply("  project_status IN (1,3)", "");
-            }
-            if (!ObjectUtils.isEmpty(vo.getStartTime())) {
-                lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getStartTime());
-            }
-            if (!ObjectUtils.isEmpty(vo.getEndTime())) {
-                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
-                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
-                lw.le(PlanQuarter::getPlanDemandSubTime, parse);
-            }
-
-            LoginUser loginUser = tokenService.getLoginUser(request);
-            // 添加数据权限
-            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
-            if (roleKeys.contains(Constants.DEMAND_UNIT)) {
-                // 需求单位
-                /*(purchase_dept_id = 当前用户deptID) */
-                lw.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
-                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
-                // 采购管理部门  或  采购办
-                SysDept sysDept = new SysDept();
-                sysDept.setParentId(loginUser.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(PlanQuarter::getIsExcess, 0);
-                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-                    });
-                } else {
-                    lw.and((wrapper) -> {
-                        wrapper.eq(PlanQuarter::getIsExcess, 0);
-                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
-                    })
-                            .or((wrapper) -> {
-                                wrapper.eq(PlanQuarter::getIsExcess, 1);
-                                wrapper.in(PlanQuarter::getPurchaseDeptId, childDeptIds);
-                            });
-                }
-            }
-            lw.orderBy(true, false, PlanQuarter::getCreateTime);
-            List<PlanQuarter> list = quarterService.list(lw);
-            planQuarterList = quarterServiceImpl.changeTo(list);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), planQuarterList);
-        PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
-        if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
-            provisionalPlanPageInfo.setList(pages.getRecords());
-            provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize()));
-            provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent()));
-            provisionalPlanPageInfo.setTotal(pages.getTotal());
-            provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
-        }
-        return AjaxResult.success(provisionalPlanPageInfo);
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        return provisionalPlanService.selectProvisionalPlanAudit(vo, request, loginUser);
     }
 
     @ApiOperation(value = "查询临时计划详情")
@@ -315,8 +157,9 @@ public class ProvisionalPlanController extends BaseController {
     @PostMapping("/exportProvisionalPlan")
     @PreAuthorize("@ss.hasPermi('plan:provisionalPlan:exportProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.EXPORT)
-    public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo) throws Exception {
-        List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo);
+    public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) throws Exception {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo, loginUser);
         ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class);
         util.exportExcel(response, list, "临时计划数据");
     }

+ 1 - 1
purchase-system/src/main/java/com/ozs/plan/service/PlanQuarterService.java

@@ -25,7 +25,7 @@ public interface PlanQuarterService extends IService<PlanQuarter> {
      * @param vo 季度计划请求对象
      * @return 季度计划记录集合
      */
-    public List<PlanQuarterResponseVo> selectPlanQuarterListEXP(PlanQuarterStandardVo vo);
+    public List<PlanQuarterResponseVo> selectPlanQuarterListEXP(PlanQuarterStandardVo vo, LoginUser loginUser);
 
     /**
      * 查询季度计划记录集合(审核单位--导出)

+ 4 - 4
purchase-system/src/main/java/com/ozs/plan/service/ProvisionalPlanService.java

@@ -5,10 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.pagehelper.PageInfo;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.model.LoginUser;
-import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 public interface ProvisionalPlanService extends IService<ProvisionalPlan> {
@@ -18,15 +18,15 @@ public interface ProvisionalPlanService extends IService<ProvisionalPlan> {
 
     String importProvisionalPlan(List<ProvisionalPlan> provisionalPlans, boolean updateSupport, LoginUser loginUser);
 
-    List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo provisionalPlanVo);
+    List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo provisionalPlanVo, LoginUser loginUser);
 
     int commitProvisionalPlan(ProvisionalPlanVo provisionalPlanVo);
 
     AjaxResult seletById(Integer planPracticalId);
 
-    PageInfo<ProvisionalPlan> selectProvisionalPlan(ProvisionalPlanVo provisionalPlanVo);
+    AjaxResult selectProvisionalPlan(ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request, LoginUser loginUser);
 
-    PageInfo<ProvisionalPlan> selectProvisionalPlanAudit(ProvisionalPlanVo provisionalPlanVo);
+    AjaxResult selectProvisionalPlanAudit(ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request, LoginUser loginUser);
 
     AjaxResult auditPass(ProvisionalPlanVo provisionalPlanVo);
 

+ 33 - 1
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanQuarterServiceImpl.java

@@ -84,7 +84,7 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
     private PmDemandMapper pmDemandMapper;
 
     @Override
-    public List<PlanQuarterResponseVo> selectPlanQuarterListEXP(PlanQuarterStandardVo vo) {
+    public List<PlanQuarterResponseVo> selectPlanQuarterListEXP(PlanQuarterStandardVo vo, LoginUser loginUser) {
         List<PlanQuarter> list = new ArrayList<>();
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         try {
@@ -111,6 +111,38 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
                     lw.le(PlanQuarter::getPlanDemandSubTime, vo.getEndTime());
                 }
                 lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
+                // 添加数据权限
+                List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+                if (roleKeys.contains(Constants.DEMAND_UNIT)) {
+                    // 需求单位
+                    /*(purchase_dept_id = 当前用户deptID) */
+                    lw.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
+                } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
+                        || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
+                    // 采购管理部门  或  采购办
+                    SysDept sysDept = new SysDept();
+                    sysDept.setParentId(loginUser.getDeptId());
+                    sysDept.setStatus("0");
+                    List<Long> childDeptIds = deptService.selectDeptList(sysDept)
+                            .stream()
+                            .map(SysDept::getDeptId)
+                            .collect(Collectors.toList());
+                    if (ObjectUtils.isEmpty(childDeptIds)) {
+                        lw.and((wrapper) -> {
+                            wrapper.eq(PlanQuarter::getIsExcess, 0);
+                            wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
+                        });
+                    } else {
+                        lw.and((wrapper) -> {
+                            wrapper.eq(PlanQuarter::getIsExcess, 0);
+                            wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId());
+                        })
+                                .or((wrapper) -> {
+                                    wrapper.eq(PlanQuarter::getIsExcess, 1);
+                                    wrapper.in(PlanQuarter::getPurchaseDeptId, childDeptIds);
+                                });
+                    }
+                }
                 Page<PlanQuarter> page = planQuarterMapper.selectPage(new Page<>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();

+ 196 - 16
purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java

@@ -4,23 +4,24 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.ozs.common.constant.Constants;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
+import com.ozs.common.core.domain.entity.SysRole;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.enums.DataIsDelete;
 import com.ozs.common.enums.PmProjectStatus;
 import com.ozs.common.enums.ProjectStatus;
 import com.ozs.common.enums.ProjectTypes;
 import com.ozs.common.enums.SysFileRefEnum;
 import com.ozs.common.exception.ServiceException;
+import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
-import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
-import com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import com.ozs.plan.mapper.PlanYearsMapper;
 import com.ozs.plan.mapper.ProvisionalPlanMapper;
@@ -39,8 +40,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMapper, ProvisionalPlan> implements ProvisionalPlanService {
@@ -140,7 +144,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     }
 
     @Override
-    public List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo vo) {
+    public List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo vo, LoginUser loginUser) {
         List<ProvisionalPlan> list = new ArrayList<>();
         List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
         try {
@@ -148,6 +152,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
             int size = 200;
             while (size == 200) {
                 LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<ProvisionalPlan>();
+                lw.eq(ProvisionalPlan::getPlanType, "1");
                 if (!ObjectUtils.isEmpty(vo.getProjectName())) {
                     lw.like(ProvisionalPlan::getProjectName, vo.getProjectName());
                 }
@@ -166,6 +171,38 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
                 if (!ObjectUtils.isEmpty(vo.getEndTime())) {
                     lw.le(ProvisionalPlan::getPlanDemandSubTime, vo.getEndTime());
                 }
+                // 添加数据权限
+                List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+                if (roleKeys.contains(Constants.DEMAND_UNIT)) {
+                    // 需求单位
+                    /*(purchase_dept_id = 当前用户deptID) */
+                    lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
+                        || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
+                    // 采购管理部门  或  采购办
+                    SysDept sysDept = new SysDept();
+                    sysDept.setParentId(loginUser.getDeptId());
+                    sysDept.setStatus("0");
+                    List<Long> childDeptIds = deptService.selectDeptList(sysDept)
+                            .stream()
+                            .map(SysDept::getDeptId)
+                            .collect(Collectors.toList());
+                    if (ObjectUtils.isEmpty(childDeptIds)) {
+                        lw.and((wrapper) -> {
+                            wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                            wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                        });
+                    } else {
+                        lw.and((wrapper) -> {
+                            wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                            wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                        })
+                                .or((wrapper) -> {
+                                    wrapper.eq(ProvisionalPlan::getIsExcess, 1);
+                                    wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
+                                });
+                    }
+                }
                 Page<ProvisionalPlan> page = provisionalPlanMapper.selectPage(new Page<ProvisionalPlan>(num, size, false), lw);
                 list.addAll(page.getRecords());
                 size = page.getRecords().size();
@@ -208,22 +245,164 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
         return AjaxResult.success(provisionalPlanVo);
     }
 
+
     @Override
-    public PageInfo<ProvisionalPlan> selectProvisionalPlan(ProvisionalPlanVo provisionalPlanVo) {
-        List<ProvisionalPlan> provisionalPlanList = provisionalPlanMapper.selectProvisionalPlan(provisionalPlanVo);
-        provisionalPlanList = changeTo(provisionalPlanList);
-        PageHelper.startPage(provisionalPlanVo.getPageNum().intValue(), provisionalPlanVo.getPageSize().intValue());
-        PageInfo<ProvisionalPlan> pageInfo = new PageInfo<>(provisionalPlanList);
-        return pageInfo;
+    public AjaxResult selectProvisionalPlan(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) {
+        List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
+        try {
+            LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<>();
+            lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
+            lw.eq(ProvisionalPlan::getPlanType, "1");
+            if (!ObjectUtils.isEmpty(vo.getProjectName())) {
+                lw.like(ProvisionalPlan::getProjectName, vo.getProjectName());
+            }
+            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
+                lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices());
+            }
+            if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
+                lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess());
+            }
+            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
+                lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus());
+            }
+            if (!ObjectUtils.isEmpty(vo.getStartTime())) {
+                lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime());
+            }
+            if (!ObjectUtils.isEmpty(vo.getEndTime())) {
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
+                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
+                lw.le(ProvisionalPlan::getPlanDemandSubTime, parse);
+            }
+
+            // 添加数据权限
+            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+            if (roleKeys.contains(Constants.DEMAND_UNIT)) {
+                // 需求单位
+                /*(purchase_dept_id = 当前用户deptID) */
+                lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
+                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
+                // 采购管理部门  或  采购办
+                SysDept sysDept = new SysDept();
+                sysDept.setParentId(loginUser.getDeptId());
+                sysDept.setStatus("0");
+                List<Long> childDeptIds = deptService.selectDeptList(sysDept)
+                        .stream()
+                        .map(SysDept::getDeptId)
+                        .collect(Collectors.toList());
+                if (ObjectUtils.isEmpty(childDeptIds)) {
+                    lw.and((wrapper) -> {
+                        wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                        wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                    });
+                } else {
+                    lw.and((wrapper) -> {
+                        wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                        wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                    })
+                            .or((wrapper) -> {
+                                wrapper.eq(ProvisionalPlan::getIsExcess, 1);
+                                wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
+                            });
+                }
+            }
+            lw.orderBy(true, false, ProvisionalPlan::getCreateTime);
+            List<ProvisionalPlan> list = provisionalPlanMapper.selectList(lw);
+            provisionalPlanList = changeTo(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList);
+        PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
+        if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
+            provisionalPlanPageInfo.setList(pages.getRecords());
+            provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize()));
+            provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent()));
+            provisionalPlanPageInfo.setTotal(pages.getTotal());
+            provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
+        }
+        return AjaxResult.success(provisionalPlanPageInfo);
     }
 
     @Override
-    public PageInfo<ProvisionalPlan> selectProvisionalPlanAudit(ProvisionalPlanVo provisionalPlanVo) {
-        List<ProvisionalPlan> provisionalPlanList = provisionalPlanMapper.selectProvisionalPlanAudit(provisionalPlanVo);
-        provisionalPlanList = changeTo(provisionalPlanList);
-        PageHelper.startPage(provisionalPlanVo.getPageNum().intValue(), provisionalPlanVo.getPageSize().intValue());
-        PageInfo<ProvisionalPlan> pageInfo = new PageInfo<>(provisionalPlanList);
-        return pageInfo;
+    public AjaxResult selectProvisionalPlanAudit(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) {
+        List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
+        try {
+            LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<>();
+            lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
+            lw.eq(ProvisionalPlan::getPlanType, "1");
+            if (!ObjectUtils.isEmpty(vo.getProjectName())) {
+                lw.like(ProvisionalPlan::getProjectName, vo.getProjectName());
+            }
+            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
+                lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices());
+            }
+            if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
+                lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess());
+            }
+            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
+                lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus());
+            } else {
+                lw.apply("  project_status IN (1,3)", "");
+            }
+            if (!ObjectUtils.isEmpty(vo.getStartTime())) {
+                lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime());
+            }
+            if (!ObjectUtils.isEmpty(vo.getEndTime())) {
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
+                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
+                lw.le(ProvisionalPlan::getPlanDemandSubTime, parse);
+            }
+            // 添加数据权限
+            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+            if (roleKeys.contains(Constants.DEMAND_UNIT)) {
+                // 需求单位
+                /*(purchase_dept_id = 当前用户deptID) */
+                lw.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
+                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
+                // 采购管理部门  或  采购办
+                SysDept sysDept = new SysDept();
+                sysDept.setParentId(loginUser.getDeptId());
+                sysDept.setStatus("0");
+                List<Long> childDeptIds = deptService.selectDeptList(sysDept)
+                        .stream()
+                        .map(SysDept::getDeptId)
+                        .collect(Collectors.toList());
+                if (ObjectUtils.isEmpty(childDeptIds)) {
+                    lw.and((wrapper) -> {
+                        wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                        wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                    });
+                } else {
+                    lw.and((wrapper) -> {
+                        wrapper.eq(ProvisionalPlan::getIsExcess, 0);
+                        wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
+                    })
+                            .or((wrapper) -> {
+                                wrapper.eq(ProvisionalPlan::getIsExcess, 1);
+                                wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
+                            });
+                }
+            }
+            lw.orderBy(true, false, ProvisionalPlan::getCreateTime);
+            List<ProvisionalPlan> list = provisionalPlanMapper.selectList(lw);
+            provisionalPlanList = changeTo(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList);
+        PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
+        if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
+            provisionalPlanPageInfo.setList(pages.getRecords());
+            provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize()));
+            provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent()));
+            provisionalPlanPageInfo.setTotal(pages.getTotal());
+            provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
+        }
+        return AjaxResult.success(provisionalPlanPageInfo);
     }
 
     @Override
@@ -232,6 +411,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
         if (ObjectUtils.isEmpty(byId.getPlanYearId())) {
             PlanYears ofYears = new PlanYears();
             BeanUtils.copyProperties(byId, ofYears);
+            ofYears.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
             planYearsMapper.insertPlanYears(ofYears);
             byId.setPlanYearId(ofYears.getPlanYearId().intValue());
         }