Kaynağa Gözat

Merge branch 'master' of http://124.70.58.209:3000/ytrd-project-management/purchase

hexiao 2 yıl önce
ebeveyn
işleme
755ec4b342

+ 7 - 7
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseExpertController.java

@@ -50,15 +50,15 @@ public class BaseExpertController extends BaseController {
     @PostMapping("/insertExpert")
     @PreAuthorize("@ss.hasPermi('base:expert:insertExpert')")
     @Log(title = ModularConstans.policy, businessType = BusinessType.INSERT)
-    public AjaxResult insertExpert(@RequestBody BaseExpert baseExpert) {
-        if (StringUtils.isNull(baseExpert) || StringUtils.isNull(baseExpert.getExpertName())) {
+    public AjaxResult insertExpert(@RequestBody BaseExpertVo baseExpertVo) {
+        if (StringUtils.isNull(baseExpertVo) || StringUtils.isNull(baseExpertVo.getExpertName())) {
             return error("专家库名称不能为空");
         }
-        baseExpert.setCreated(getUserId().toString());
-        baseExpert.setCreateTime(new Date());
-        baseExpert.setUpdated(baseExpert.getCreated());
-        baseExpert.setUpdateTime(baseExpert.getCreateTime());
-        return toAjax(baseExpertService.insertExpert(baseExpert));
+        baseExpertVo.setCreated(getUserId().toString());
+        baseExpertVo.setCreateTime(new Date());
+        baseExpertVo.setUpdated(baseExpertVo.getCreated());
+        baseExpertVo.setUpdateTime(baseExpertVo.getCreateTime());
+        return toAjax(baseExpertService.insertExpert(baseExpertVo));
     }
 
     @ApiOperation(value = "删除专家库", notes = "必传 id")

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

@@ -66,6 +66,8 @@ public class PlanQuarterController extends BaseController {
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         try {
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
+            lw.eq(PlanQuarter::getPlanType, "0");
+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
             }
@@ -77,8 +79,6 @@ public class PlanQuarterController extends BaseController {
             }
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
-            } else {
-                lw.in(PlanQuarter::getProjectStatus, "1,3");
             }
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getBeginTime());
@@ -89,7 +89,6 @@ public class PlanQuarterController extends BaseController {
                 Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
             }
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
             LoginUser loginUser = tokenService.getLoginUser(request);
             // 添加数据权限
@@ -128,6 +127,7 @@ public class PlanQuarterController extends BaseController {
                             });
                 }
             }
+            lw.orderBy(true, false, PlanQuarter::getCreateTime);
             List<PlanQuarter> list = quarterService.list(lw);
             planQuarterList = quarterServiceImpl.changeTo(list);
         } catch (Exception e) {
@@ -146,6 +146,8 @@ public class PlanQuarterController extends BaseController {
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         try {
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
+            lw.eq(PlanQuarter::getPlanType, "0");
+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
             }
@@ -157,6 +159,8 @@ public class PlanQuarterController extends BaseController {
             }
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
+            } else {
+                lw.apply("  project_status IN (1,3)", "");
             }
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getBeginTime());
@@ -167,7 +171,6 @@ public class PlanQuarterController extends BaseController {
                 Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
             }
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
             LoginUser loginUser = tokenService.getLoginUser(request);
             // 添加数据权限
@@ -206,6 +209,7 @@ public class PlanQuarterController extends BaseController {
                             });
                 }
             }
+            lw.orderBy(true, false, PlanQuarter::getCreateTime);
             List<PlanQuarter> list = quarterService.list(lw);
             planQuarterList = quarterServiceImpl.changeTo(list);
         } catch (Exception e) {

+ 7 - 3
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java

@@ -128,6 +128,7 @@ public class PlanYearsController extends BaseController {
                             });
                 }
             }
+            lw.orderBy(true, false, PlanYears::getCreateTime);
             List<PlanYears> planYears = planYearsService.list(lw);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
         } catch (Exception e) {
@@ -144,7 +145,6 @@ public class PlanYearsController extends BaseController {
     @Log(title = ModularConstans.planYear, businessType = BusinessType.QUERY)
     public AjaxResult examineList(@RequestBody PlanYearsStandardVo vo, HttpServletRequest request) {
         List<PlanYearsResponseVo> planYearsList = new ArrayList<>();
-
         try {
             LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
@@ -156,7 +156,11 @@ public class PlanYearsController extends BaseController {
             if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
                 lw.eq(PlanYears::getIsExcess, vo.getIsExcess());
             }
-
+            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
+                lw.eq(PlanYears::getProjectStatus, vo.getProjectStatus());
+            } else {
+                lw.apply("  project_status IN (1,3)", "");
+            }
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanYears::getPlanDemandSubTime, vo.getBeginTime());
             }
@@ -168,7 +172,6 @@ public class PlanYearsController extends BaseController {
             }
             lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
-
             LoginUser loginUser = tokenService.getLoginUser(request);
             // 添加数据权限
             List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
@@ -206,6 +209,7 @@ public class PlanYearsController extends BaseController {
                             });
                 }
             }
+            lw.orderBy(true, false, PlanYears::getCreateTime);
             List<PlanYears> planYears = planYearsService.list(lw);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
         } catch (Exception e) {

+ 192 - 36
purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java

@@ -1,32 +1,49 @@
 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;
+import com.ozs.system.service.ISysDeptService;
 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;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 临时计划
@@ -38,14 +55,20 @@ import java.util.List;
 @RequestMapping("/plan/provisionalPlan")
 public class ProvisionalPlanController extends BaseController {
 
+    @Autowired
+    private PlanQuarterService quarterService;
+    @Autowired
+    private PlanQuarterServiceImpl quarterServiceImpl;
     @Autowired
     private ProvisionalPlanService provisionalPlanService;
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private ISysDeptService iSysDeptService;
 
     @ApiOperation(value = "新增临时计划")
     @PostMapping("/insertProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:insertProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:insertProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     public AjaxResult insertProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan, HttpServletRequest request) {
         //获取采购单位
@@ -62,7 +85,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "删除临时计划", notes = "必传 plan_practical_id")
     @PostMapping("/deleteProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:deleteProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:deleteProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.DELETE)
     public AjaxResult deleteProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
@@ -73,7 +96,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "修改临时计划", notes = "必传 plan_year_id 及修改数据")
     @PostMapping("/updateProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:updateProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:updateProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult updateProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlan) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
@@ -84,49 +107,179 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "查询临时计划")
     @PostMapping("/selectProvisionalPlan")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
-    public AjaxResult selectProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
-//        LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<ProvisionalPlan>();
-//        // planType计划类型(0:季度计划,1:临时计划)
-//        lw.eq(ProvisionalPlan::getPlanType, "1");
-//        if (!StringUtils.isBlank(provisionalPlanVo.getProjectName())) {
-//            lw.like(ProvisionalPlan::getProjectName, provisionalPlanVo.getProjectName());
-//        }
-//        if (!StringUtils.isBlank(provisionalPlanVo.getPurchaseServices())) {
-//            lw.eq(ProvisionalPlan::getPurchaseServices, provisionalPlanVo.getPurchaseServices());
-//        }
-//        if (!ObjectUtils.isEmpty(provisionalPlanVo.getProjectStatus())) {
-//            lw.eq(ProvisionalPlan::getProjectStatus, provisionalPlanVo.getProjectStatus());
-//        }
-//        if (!ObjectUtils.isEmpty(provisionalPlanVo.getStartTime()) || !ObjectUtils.isEmpty(provisionalPlanVo.getEndTime())) {
-//            lw.between(ProvisionalPlan::getPlanDemandSubTime, provisionalPlanVo.getStartTime(), provisionalPlanVo.getEndTime());
-//        }
-//        IPage<ProvisionalPlan> page = provisionalPlanService.page(new Page<ProvisionalPlan>(provisionalPlanVo.getPageNum(), provisionalPlanVo.getPageSize()), lw);
-//        return success(page);
-        if (StringUtils.isNull(provisionalPlanVo)
-                || StringUtils.isNull(provisionalPlanVo.getPageNum())
-                || StringUtils.isNull(provisionalPlanVo.getPageSize())) {
-            throw new ServiceException("查询条件及分页不能为空!");
+    public AjaxResult selectProvisionalPlan(@RequestBody ProvisionalPlanVo vo, HttpServletRequest request) {
+        if (StringUtils.isNull(vo)
+                || StringUtils.isNull(vo.getPageNum())
+                || 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)) {
+                // 采购管理部门  或  采购办
+            /*  (purchase_dept_id = 当前用户deptID  AND  is_excess = 0)
+                OR
+                (purchase_dept_id IN (当前用户 子deptId 集合) and AND  is_excess = 1)
+             */
+                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();
         }
-        PageInfo<ProvisionalPlan> page = provisionalPlanService.selectProvisionalPlan(provisionalPlanVo);
-        return success(page);
+        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), planQuarterList);
+
+        return AjaxResult.success(pages);
     }
 
     @ApiOperation(value = "查询临时计划-审核单位")
     @PostMapping("/selectProvisionalPlanAudit")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlanAudit')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
-    public AjaxResult selectProvisionalPlanAudit(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
-        if (StringUtils.isNull(provisionalPlanVo)
-                || StringUtils.isNull(provisionalPlanVo.getPageNum())
-                || StringUtils.isNull(provisionalPlanVo.getPageSize())) {
-            throw new ServiceException("查询条件及分页不能为空!");
+    public AjaxResult selectProvisionalPlanAudit(@RequestBody ProvisionalPlanVo vo, HttpServletRequest request) {
+        if (StringUtils.isNull(vo)
+                || StringUtils.isNull(vo.getPageNum())
+                || StringUtils.isNull(vo.getPageSize())) {
+            throw new ServiceException("分页参数不能为空!");
         }
-        PageInfo<ProvisionalPlan> page = provisionalPlanService.selectProvisionalPlanAudit(provisionalPlanVo);
-        return success(page);
+        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)) {
+                // 采购管理部门  或  采购办
+            /*  (purchase_dept_id = 当前用户deptID  AND  is_excess = 0)
+                OR
+                (purchase_dept_id IN (当前用户 子deptId 集合) and AND  is_excess = 1)
+             */
+                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);
+
+        return AjaxResult.success(pages);
     }
 
     @ApiOperation(value = "查询临时计划详情")
     @PostMapping("/selectById")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectById')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
     public AjaxResult selectById(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -137,7 +290,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "导入临时计划")
     @PostMapping("/importProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:importProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:importProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     public AjaxResult importProvisionalPlan(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class);
@@ -153,6 +306,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "导出临时计划")
     @PostMapping("/exportProvisionalPlan")
+    @PreAuthorize("@ss.hasPermi('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);
@@ -162,7 +316,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "提交临时计划")
     @PostMapping("/commitProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:commitProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:commitProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult commitProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -173,6 +327,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "审核通过")
     @PostMapping("/auditPass")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditPass')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult auditPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -185,6 +340,7 @@ public class ProvisionalPlanController extends BaseController {
 
     @ApiOperation(value = "审核不通过")
     @PostMapping("/auditNoPass")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditNoPass')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult auditNoPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {

+ 17 - 2
purchase-admin/src/main/java/com/ozs/web/controller/statisticalAnalysis/StatisticalAnalysisController.java

@@ -18,6 +18,7 @@ import org.apache.poi.util.Units;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFRun;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -36,14 +37,14 @@ import java.util.Map;
 @RestController
 @RequestMapping("/statistical")
 public class StatisticalAnalysisController extends BaseController {
-    @Resource
-    private PlanYearsService planYearsService;
+
     @Resource
     private IPmDemandService pmDemandService;
 
 
     @ApiOperation(value = "项目属性分布")
     @PostMapping("/countByProjectAttr")
+    @PreAuthorize("@ss.hasPermi('statistical:countByProjectAttr')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countByProjectAttr(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照项目属性统计所有的项目
@@ -56,6 +57,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "项目金额分布")
     @PostMapping("/countByEvaluation")
+    @PreAuthorize("@ss.hasPermi('statistical:countByEvaluation')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countByEvaluation(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照概算金额统计所有的项目
@@ -69,6 +71,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "执行滞后采购项目情况")
     @PostMapping("/countProjectExceed")
+    @PreAuthorize("@ss.hasPermi('statistical:countProjectExceed')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countProjectExceed(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //执行滞后采购项目:本年度所有的逾期项目数
@@ -82,6 +85,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "滞后项目数量分析")
     @PostMapping("/exceedAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:exceedAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult exceedAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //统计不同时间维度的逾期项目
@@ -97,6 +101,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "滞后项目时长分析")
     @PostMapping("/exceedMarketAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:exceedMarketAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult exceedMarketAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照滞后时长统计项目数量
@@ -109,6 +114,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "采购项目信息统计")
     @PostMapping("/purchaseProjectStatistical")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectStatistical')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectStatistical(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -121,6 +127,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "重大规划采购任务专项计划管理情况")
     @PostMapping("/countMajorProject")
+    @PreAuthorize("@ss.hasPermi('statistical:countMajorProject')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countMajorProject(@RequestBody PmDemandReqVo pmDemandReqVo) {
         if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
@@ -132,6 +139,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "任务数量趋势分析")
     @PostMapping("/taskQuantityAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:taskQuantityAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult taskQuantityAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
@@ -156,6 +164,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "各阶段采购任务数量分布")
     @PostMapping("/countEveryStatusNum")
+    @PreAuthorize("@ss.hasPermi('statistical:countEveryStatusNum')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countEveryStatusNum(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //指项目进行到各个阶段的数量
@@ -169,6 +178,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "采购项目--项目数量分析")
     @PostMapping("/purchaseProjectNumber")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectNumber')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -181,6 +191,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "项目执行进度统计")
     @PostMapping("/purchaseProjectExecute")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectExecute')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectExecute(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -193,6 +204,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "已完成项目数量统计")
     @PostMapping("/purchaseProjectCompleteNumber")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectCompleteNumber')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectCompleteNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -208,6 +220,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "各阶段项目数量分布")
     @PostMapping("/purchaseProjectDistribution")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectDistribution')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectDistribution(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -220,6 +233,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "项目数量分析")
     @PostMapping("/purchaseProjectNumberAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectNumberAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectNumberAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -235,6 +249,7 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "生成分析报告")
     @PostMapping("/generateAnalysisReport")
+    @PreAuthorize("@ss.hasPermi('statistical:generateAnalysisReport')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult generateAnalysisReport(@RequestBody SysFileInfo file) {
         //  创建一个document对象,相当于新建一个word文档(后缀名为.docx)。

+ 2 - 0
purchase-system/src/main/java/com/ozs/base/domain/vo/BaseExpertVo.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class BaseExpertVo extends PageVo {
@@ -114,6 +115,7 @@ public class BaseExpertVo extends PageVo {
      */
     @ApiModelProperty(value = "所在区域(行政区域表的code)")
     private String localArea;
+    private List<String> localAreaList;
 
     /**
      * 所在区域

+ 2 - 1
purchase-system/src/main/java/com/ozs/base/mapper/BaseExpertMapper.java

@@ -3,6 +3,7 @@ package com.ozs.base.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.base.domain.BaseExpert;
 import com.ozs.base.domain.BaseUnitInformation;
+import com.ozs.base.domain.vo.BaseExpertVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -10,7 +11,7 @@ import java.util.List;
 
 @Mapper
 public interface BaseExpertMapper extends BaseMapper<BaseExpert> {
-    int insertExpert(BaseExpert baseExpert);
+    int insertExpert(BaseExpertVo baseExpertVo);
 
     List<BaseUnitInformation> selectByUnitInformation(@Param("unitInformation") String unitInformation);
 

+ 1 - 1
purchase-system/src/main/java/com/ozs/base/service/BaseExpertService.java

@@ -7,7 +7,7 @@ import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.common.core.domain.AjaxResult;
 
 public interface BaseExpertService  extends IService<BaseExpert> {
-    int insertExpert(BaseExpert baseExpert);
+    int insertExpert(BaseExpertVo baseExpertVo);
 
     int updateSupplierType(BaseExpert baseExpert);
 

+ 11 - 7
purchase-system/src/main/java/com/ozs/base/service/impl/BaseExpertServiceImpl.java

@@ -50,20 +50,24 @@ public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExp
     private ISysDictDataService dictDataService;
 
     @Override
-    public int insertExpert(BaseExpert baseExpert) {
+    public int insertExpert(BaseExpertVo baseExpertVo) {
         // base_unit_information 单位信息表
-        if (StringUtils.isNotNull(baseExpert.getUnitInformation())) {
-            List<BaseUnitInformation> baseUnitInformationList = baseExpertMapper.selectByUnitInformation(baseExpert.getUnitInformation());
+        if (StringUtils.isNotNull(baseExpertVo.getUnitInformation())) {
+            List<BaseUnitInformation> baseUnitInformationList = baseExpertMapper.selectByUnitInformation(baseExpertVo.getUnitInformation());
             if (baseUnitInformationList.size() <= 0) {
                 BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
-                baseUnitInformation.setUnitName(baseExpert.getUnitInformation());
-                baseUnitInformation.setCreated(baseExpert.getExpertName());
+                baseUnitInformation.setUnitName(baseExpertVo.getUnitInformation());
+                baseUnitInformation.setCreated(baseExpertVo.getExpertName());
                 baseUnitInformation.setCreateTime(new Date());
                 Integer i = baseExpertMapper.insertBaseUnitInformation(baseUnitInformation);
             }
         }
-
-        return baseExpertMapper.insertExpert(baseExpert);
+        // 区域list转字符串
+        if (StringUtils.isNotNull(baseExpertVo.getLocalAreaList())) {
+            String stringFromList = String.join(",", baseExpertVo.getLocalAreaList());
+            baseExpertVo.setLocalArea(stringFromList);
+        }
+        return baseExpertMapper.insertExpert(baseExpertVo);
     }
 
     @Override

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

@@ -246,7 +246,8 @@ public interface PlanYearsService extends IService<PlanYears> {
 
     /**
      * 通过年度ID,查询季度、临时计划详情,通过季度、临时计划ID查询项目
-     * @param planYearId
+     *
+     * @param yearsStandardVo
      * @return
      */
     AjaxResult projectDetails(PlanYearsStandardVo yearsStandardVo);

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

@@ -233,12 +233,12 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
             PlanYears ofYears = new PlanYears();
             BeanUtils.copyProperties(byId, ofYears);
             planYearsMapper.insertPlanYears(ofYears);
-            Long planYearId = ofYears.getPlanYearId();
             byId.setPlanYearId(ofYears.getPlanYearId().intValue());
         }
         PmDemand demand = new PmDemand();
         BeanUtils.copyProperties(byId, demand);
         demand.setPlanId(Long.valueOf(byId.getPlanPracticalId()));
+        demand.setEvaluation(byId.getEvaluation().doubleValue());
         //同步到项目管理状态为需求待填制
         demand.setProjectStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
         demand.setCreateTime(new Date());

+ 1 - 0
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -1223,6 +1223,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         //新增
         PmBidWinning pmBidWinning = new PmBidWinning();
         BeanUtils.copyProperties(pmBidWinninglist.get(0),pmBidWinning);
+        pmBidWinning.setId(null);
         pmBidWinning.setBidWinningAmount(pmBidWinningReqVo.getBidWinningAmount());
         pmBidWinning.setStatus(BidWinningStatus.NORMAL.getCode());
         pmBidWinning.setUpdateBy(pmBidWinningReqVo.getUpdateBy());

+ 1 - 1
purchase-system/src/main/resources/mapper/base/BaseExpertMapper.xml

@@ -19,7 +19,7 @@
         <result property="idNumber" column="id_number"/>
     </resultMap>
 
-    <insert id="insertExpert" parameterType="com.ozs.base.domain.BaseExpert">
+    <insert id="insertExpert" parameterType="com.ozs.base.domain.vo.BaseExpertVo">
         insert into base_expert
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="expertName != null and expertName != '' ">