Browse Source

Merge remote-tracking branch 'origin/master'

suntianwu 2 years ago
parent
commit
d7896b501b
18 changed files with 341 additions and 98 deletions
  1. 7 7
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseExpertController.java
  2. 8 4
      purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanQuarterController.java
  3. 7 3
      purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java
  4. 192 36
      purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java
  5. 17 2
      purchase-admin/src/main/java/com/ozs/web/controller/statisticalAnalysis/StatisticalAnalysisController.java
  6. 57 0
      purchase-admin/src/main/resources/application-druid-prod.yml
  7. 1 1
      purchase-admin/src/main/resources/application-druid.yml
  8. 23 30
      purchase-admin/src/main/resources/application-prod.yml
  9. 3 1
      purchase-system/src/main/java/com/ozs/base/domain/BaseExpert.java
  10. 3 1
      purchase-system/src/main/java/com/ozs/base/domain/BaseProfessional.java
  11. 3 1
      purchase-system/src/main/java/com/ozs/base/domain/BaseSupplier.java
  12. 2 0
      purchase-system/src/main/java/com/ozs/base/domain/vo/BaseExpertVo.java
  13. 2 1
      purchase-system/src/main/java/com/ozs/base/mapper/BaseExpertMapper.java
  14. 1 1
      purchase-system/src/main/java/com/ozs/base/service/BaseExpertService.java
  15. 11 7
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseExpertServiceImpl.java
  16. 2 1
      purchase-system/src/main/java/com/ozs/plan/service/PlanYearsService.java
  17. 1 1
      purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java
  18. 1 1
      purchase-system/src/main/resources/mapper/base/BaseExpertMapper.xml

+ 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")
     @PostMapping("/insertExpert")
     @PreAuthorize("@ss.hasPermi('base:expert:insertExpert')")
     @PreAuthorize("@ss.hasPermi('base:expert:insertExpert')")
     @Log(title = ModularConstans.policy, businessType = BusinessType.INSERT)
     @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("专家库名称不能为空");
             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")
     @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<>();
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         try {
         try {
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
+            lw.eq(PlanQuarter::getPlanType, "0");
+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
             }
             }
@@ -77,8 +79,6 @@ public class PlanQuarterController extends BaseController {
             }
             }
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
-            } else {
-                lw.in(PlanQuarter::getProjectStatus, "1,3");
             }
             }
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanQuarter::getPlanDemandSubTime, 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");
                 Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
             }
             }
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
 
             LoginUser loginUser = tokenService.getLoginUser(request);
             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);
             List<PlanQuarter> list = quarterService.list(lw);
             planQuarterList = quarterServiceImpl.changeTo(list);
             planQuarterList = quarterServiceImpl.changeTo(list);
         } catch (Exception e) {
         } catch (Exception e) {
@@ -146,6 +146,8 @@ public class PlanQuarterController extends BaseController {
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>();
         try {
         try {
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
             LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>();
+            lw.eq(PlanQuarter::getPlanType, "0");
+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
                 lw.like(PlanQuarter::getProjectName, vo.getProjectName());
             }
             }
@@ -157,6 +159,8 @@ public class PlanQuarterController extends BaseController {
             }
             }
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
             if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
                 lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus());
+            } else {
+                lw.apply("  project_status IN (1,3)", "");
             }
             }
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanQuarter::getPlanDemandSubTime, 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");
                 Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999");
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
                 lw.le(PlanQuarter::getPlanDemandSubTime, parse);
             }
             }
-            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
 
             LoginUser loginUser = tokenService.getLoginUser(request);
             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);
             List<PlanQuarter> list = quarterService.list(lw);
             planQuarterList = quarterServiceImpl.changeTo(list);
             planQuarterList = quarterServiceImpl.changeTo(list);
         } catch (Exception e) {
         } 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);
             List<PlanYears> planYears = planYearsService.list(lw);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
         } catch (Exception e) {
         } catch (Exception e) {
@@ -144,7 +145,6 @@ public class PlanYearsController extends BaseController {
     @Log(title = ModularConstans.planYear, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.planYear, businessType = BusinessType.QUERY)
     public AjaxResult examineList(@RequestBody PlanYearsStandardVo vo, HttpServletRequest request) {
     public AjaxResult examineList(@RequestBody PlanYearsStandardVo vo, HttpServletRequest request) {
         List<PlanYearsResponseVo> planYearsList = new ArrayList<>();
         List<PlanYearsResponseVo> planYearsList = new ArrayList<>();
-
         try {
         try {
             LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
             LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
             if (!ObjectUtils.isEmpty(vo.getProjectName())) {
@@ -156,7 +156,11 @@ public class PlanYearsController extends BaseController {
             if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
             if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
                 lw.eq(PlanYears::getIsExcess, 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())) {
             if (!ObjectUtils.isEmpty(vo.getBeginTime())) {
                 lw.ge(PlanYears::getPlanDemandSubTime, vo.getBeginTime());
                 lw.ge(PlanYears::getPlanDemandSubTime, vo.getBeginTime());
             }
             }
@@ -168,7 +172,6 @@ public class PlanYearsController extends BaseController {
             }
             }
             lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
             lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
 
 
-
             LoginUser loginUser = tokenService.getLoginUser(request);
             LoginUser loginUser = tokenService.getLoginUser(request);
             // 添加数据权限
             // 添加数据权限
             List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList());
             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);
             List<PlanYears> planYears = planYearsService.list(lw);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
             planYearsList = planYearsServiceImpl.changeTo(planYears);
         } catch (Exception e) {
         } 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;
 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.github.pagehelper.PageInfo;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.Constants;
 import com.ozs.common.constant.ModularConstans;
 import com.ozs.common.constant.ModularConstans;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 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.core.domain.model.LoginUser;
 import com.ozs.common.enums.BusinessType;
 import com.ozs.common.enums.BusinessType;
+import com.ozs.common.enums.DataIsDelete;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.exception.ServiceException;
+import com.ozs.common.utils.PageUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.framework.web.service.TokenService;
 import com.ozs.framework.web.service.TokenService;
+import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 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.ProvisionalPlanService;
+import com.ozs.plan.service.impl.PlanQuarterServiceImpl;
+import com.ozs.system.service.ISysDeptService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 临时计划
  * 临时计划
@@ -38,14 +55,20 @@ import java.util.List;
 @RequestMapping("/plan/provisionalPlan")
 @RequestMapping("/plan/provisionalPlan")
 public class ProvisionalPlanController extends BaseController {
 public class ProvisionalPlanController extends BaseController {
 
 
+    @Autowired
+    private PlanQuarterService quarterService;
+    @Autowired
+    private PlanQuarterServiceImpl quarterServiceImpl;
     @Autowired
     @Autowired
     private ProvisionalPlanService provisionalPlanService;
     private ProvisionalPlanService provisionalPlanService;
     @Autowired
     @Autowired
     private TokenService tokenService;
     private TokenService tokenService;
+    @Autowired
+    private ISysDeptService iSysDeptService;
 
 
     @ApiOperation(value = "新增临时计划")
     @ApiOperation(value = "新增临时计划")
     @PostMapping("/insertProvisionalPlan")
     @PostMapping("/insertProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:insertProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:insertProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     public AjaxResult insertProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan, HttpServletRequest request) {
     public AjaxResult insertProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan, HttpServletRequest request) {
         //获取采购单位
         //获取采购单位
@@ -62,7 +85,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "删除临时计划", notes = "必传 plan_practical_id")
     @ApiOperation(value = "删除临时计划", notes = "必传 plan_practical_id")
     @PostMapping("/deleteProvisionalPlan")
     @PostMapping("/deleteProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:deleteProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:deleteProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.DELETE)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.DELETE)
     public AjaxResult deleteProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan) {
     public AjaxResult deleteProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
@@ -73,7 +96,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "修改临时计划", notes = "必传 plan_year_id 及修改数据")
     @ApiOperation(value = "修改临时计划", notes = "必传 plan_year_id 及修改数据")
     @PostMapping("/updateProvisionalPlan")
     @PostMapping("/updateProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:updateProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:updateProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult updateProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlan) {
     public AjaxResult updateProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlan) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) {
@@ -84,49 +107,179 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "查询临时计划")
     @ApiOperation(value = "查询临时计划")
     @PostMapping("/selectProvisionalPlan")
     @PostMapping("/selectProvisionalPlan")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
     @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 = "查询临时计划-审核单位")
     @ApiOperation(value = "查询临时计划-审核单位")
     @PostMapping("/selectProvisionalPlanAudit")
     @PostMapping("/selectProvisionalPlanAudit")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlanAudit')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
     @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 = "查询临时计划详情")
     @ApiOperation(value = "查询临时计划详情")
     @PostMapping("/selectById")
     @PostMapping("/selectById")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectById')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY)
     public AjaxResult selectById(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
     public AjaxResult selectById(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -137,7 +290,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "导入临时计划")
     @ApiOperation(value = "导入临时计划")
     @PostMapping("/importProvisionalPlan")
     @PostMapping("/importProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:importProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:importProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT)
     public AjaxResult importProvisionalPlan(MultipartFile file, boolean updateSupport) throws Exception {
     public AjaxResult importProvisionalPlan(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class);
         ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class);
@@ -153,6 +306,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "导出临时计划")
     @ApiOperation(value = "导出临时计划")
     @PostMapping("/exportProvisionalPlan")
     @PostMapping("/exportProvisionalPlan")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:exportProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.EXPORT)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.EXPORT)
     public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo) throws Exception {
     public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo) throws Exception {
         List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo);
         List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo);
@@ -162,7 +316,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "提交临时计划")
     @ApiOperation(value = "提交临时计划")
     @PostMapping("/commitProvisionalPlan")
     @PostMapping("/commitProvisionalPlan")
-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:commitProvisionalPlan')")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:commitProvisionalPlan')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult commitProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
     public AjaxResult commitProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -173,6 +327,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "审核通过")
     @ApiOperation(value = "审核通过")
     @PostMapping("/auditPass")
     @PostMapping("/auditPass")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditPass')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult auditPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
     public AjaxResult auditPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
@@ -185,6 +340,7 @@ public class ProvisionalPlanController extends BaseController {
 
 
     @ApiOperation(value = "审核不通过")
     @ApiOperation(value = "审核不通过")
     @PostMapping("/auditNoPass")
     @PostMapping("/auditNoPass")
+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditNoPass')")
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE)
     public AjaxResult auditNoPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
     public AjaxResult auditNoPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) {
         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) {
         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.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFRun;
 import org.apache.poi.xwpf.usermodel.XWPFRun;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
@@ -36,14 +37,14 @@ import java.util.Map;
 @RestController
 @RestController
 @RequestMapping("/statistical")
 @RequestMapping("/statistical")
 public class StatisticalAnalysisController extends BaseController {
 public class StatisticalAnalysisController extends BaseController {
-    @Resource
-    private PlanYearsService planYearsService;
+
     @Resource
     @Resource
     private IPmDemandService pmDemandService;
     private IPmDemandService pmDemandService;
 
 
 
 
     @ApiOperation(value = "项目属性分布")
     @ApiOperation(value = "项目属性分布")
     @PostMapping("/countByProjectAttr")
     @PostMapping("/countByProjectAttr")
+    @PreAuthorize("@ss.hasPermi('statistical:countByProjectAttr')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countByProjectAttr(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult countByProjectAttr(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照项目属性统计所有的项目
         //按照项目属性统计所有的项目
@@ -56,6 +57,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "项目金额分布")
     @ApiOperation(value = "项目金额分布")
     @PostMapping("/countByEvaluation")
     @PostMapping("/countByEvaluation")
+    @PreAuthorize("@ss.hasPermi('statistical:countByEvaluation')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countByEvaluation(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult countByEvaluation(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照概算金额统计所有的项目
         //按照概算金额统计所有的项目
@@ -69,6 +71,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "执行滞后采购项目情况")
     @ApiOperation(value = "执行滞后采购项目情况")
     @PostMapping("/countProjectExceed")
     @PostMapping("/countProjectExceed")
+    @PreAuthorize("@ss.hasPermi('statistical:countProjectExceed')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countProjectExceed(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult countProjectExceed(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //执行滞后采购项目:本年度所有的逾期项目数
         //执行滞后采购项目:本年度所有的逾期项目数
@@ -82,6 +85,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "滞后项目数量分析")
     @ApiOperation(value = "滞后项目数量分析")
     @PostMapping("/exceedAnalysis")
     @PostMapping("/exceedAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:exceedAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult exceedAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult exceedAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //统计不同时间维度的逾期项目
         //统计不同时间维度的逾期项目
@@ -97,6 +101,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "滞后项目时长分析")
     @ApiOperation(value = "滞后项目时长分析")
     @PostMapping("/exceedMarketAnalysis")
     @PostMapping("/exceedMarketAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:exceedMarketAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult exceedMarketAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult exceedMarketAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //按照滞后时长统计项目数量
         //按照滞后时长统计项目数量
@@ -109,6 +114,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "采购项目信息统计")
     @ApiOperation(value = "采购项目信息统计")
     @PostMapping("/purchaseProjectStatistical")
     @PostMapping("/purchaseProjectStatistical")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectStatistical')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectStatistical(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectStatistical(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -121,6 +127,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "重大规划采购任务专项计划管理情况")
     @ApiOperation(value = "重大规划采购任务专项计划管理情况")
     @PostMapping("/countMajorProject")
     @PostMapping("/countMajorProject")
+    @PreAuthorize("@ss.hasPermi('statistical:countMajorProject')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countMajorProject(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult countMajorProject(@RequestBody PmDemandReqVo pmDemandReqVo) {
         if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
         if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
@@ -132,6 +139,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "任务数量趋势分析")
     @ApiOperation(value = "任务数量趋势分析")
     @PostMapping("/taskQuantityAnalysis")
     @PostMapping("/taskQuantityAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:taskQuantityAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult taskQuantityAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult taskQuantityAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
         //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
@@ -156,6 +164,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "各阶段采购任务数量分布")
     @ApiOperation(value = "各阶段采购任务数量分布")
     @PostMapping("/countEveryStatusNum")
     @PostMapping("/countEveryStatusNum")
+    @PreAuthorize("@ss.hasPermi('statistical:countEveryStatusNum')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult countEveryStatusNum(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult countEveryStatusNum(@RequestBody PmDemandReqVo pmDemandReqVo) {
         //指项目进行到各个阶段的数量
         //指项目进行到各个阶段的数量
@@ -169,6 +178,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "采购项目--项目数量分析")
     @ApiOperation(value = "采购项目--项目数量分析")
     @PostMapping("/purchaseProjectNumber")
     @PostMapping("/purchaseProjectNumber")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectNumber')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -181,6 +191,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "项目执行进度统计")
     @ApiOperation(value = "项目执行进度统计")
     @PostMapping("/purchaseProjectExecute")
     @PostMapping("/purchaseProjectExecute")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectExecute')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectExecute(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectExecute(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -193,6 +204,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "已完成项目数量统计")
     @ApiOperation(value = "已完成项目数量统计")
     @PostMapping("/purchaseProjectCompleteNumber")
     @PostMapping("/purchaseProjectCompleteNumber")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectCompleteNumber')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectCompleteNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectCompleteNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -208,6 +220,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "各阶段项目数量分布")
     @ApiOperation(value = "各阶段项目数量分布")
     @PostMapping("/purchaseProjectDistribution")
     @PostMapping("/purchaseProjectDistribution")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectDistribution')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectDistribution(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectDistribution(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -220,6 +233,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "项目数量分析")
     @ApiOperation(value = "项目数量分析")
     @PostMapping("/purchaseProjectNumberAnalysis")
     @PostMapping("/purchaseProjectNumberAnalysis")
+    @PreAuthorize("@ss.hasPermi('statistical:purchaseProjectNumberAnalysis')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult purchaseProjectNumberAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
     public AjaxResult purchaseProjectNumberAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
         // 需求单位可查看本单位及其下属单位的统计数据
         // 需求单位可查看本单位及其下属单位的统计数据
@@ -235,6 +249,7 @@ public class StatisticalAnalysisController extends BaseController {
 
 
     @ApiOperation(value = "生成分析报告")
     @ApiOperation(value = "生成分析报告")
     @PostMapping("/generateAnalysisReport")
     @PostMapping("/generateAnalysisReport")
+    @PreAuthorize("@ss.hasPermi('statistical:generateAnalysisReport')")
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     @Log(title = ModularConstans.statisticalAnalysis, businessType = BusinessType.QUERY)
     public AjaxResult generateAnalysisReport(@RequestBody SysFileInfo file) {
     public AjaxResult generateAnalysisReport(@RequestBody SysFileInfo file) {
         //  创建一个document对象,相当于新建一个word文档(后缀名为.docx)。
         //  创建一个document对象,相当于新建一个word文档(后缀名为.docx)。

+ 57 - 0
purchase-admin/src/main/resources/application-druid-prod.yml

@@ -0,0 +1,57 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            # 主库数据源
+            master:
+                url: jdbc:mysql://127.0.0.1:3306/purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                username: admin
+                password: 106aD>>ql95K5S
+            # 从库数据源
+            slave:
+                # 从数据源开关/默认关闭
+                enabled: false
+                url:
+                username:
+                password:
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: purchase
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true

+ 1 - 1
purchase-admin/src/main/resources/application-druid.yml

@@ -43,7 +43,7 @@ spring:
                 allow:
                 allow:
                 url-pattern: /druid/*
                 url-pattern: /druid/*
                 # 控制台管理用户名和密码
                 # 控制台管理用户名和密码
-                login-username: ruoyi
+                login-username: purchase
                 login-password: 123456
                 login-password: 123456
             filter:
             filter:
                 stat:
                 stat:

+ 23 - 30
purchase-admin/src/main/resources/application-prod.yml

@@ -9,8 +9,7 @@ purchase:
   # 实例演示开关
   # 实例演示开关
   demoEnabled: true
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/purchase/uploadPath,Linux配置 /home/purchase/uploadPath)
   # 文件路径 示例( Windows配置D:/purchase/uploadPath,Linux配置 /home/purchase/uploadPath)
-  profile: C:/purchase/uploadPath
-#  profile: /Users/sunhuanhuan/Documents/project/106/文档/purchase/uploadPath
+  profile: /home/purchase/uploadPath
   # 获取ip地址开关
   # 获取ip地址开关
   addressEnabled: false
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
   # 验证码类型 math 数组计算 char 字符验证
@@ -20,11 +19,6 @@ purchase:
 
 
 # 开发环境配置
 # 开发环境配置
 server:
 server:
-  # 服务器的HTTP端口,默认为8080
-  port: 8080
-  servlet:
-    # 应用的访问路径
-    context-path: /
   tomcat:
   tomcat:
     # tomcat的URI编码
     # tomcat的URI编码
     uri-encoding: UTF-8
     uri-encoding: UTF-8
@@ -56,15 +50,13 @@ spring:
   messages:
   messages:
     # 国际化资源文件路径
     # 国际化资源文件路径
     basename: i18n/messages
     basename: i18n/messages
-  profiles:
-    active: druid
   # 文件上传
   # 文件上传
   servlet:
   servlet:
-     multipart:
-       # 单个文件大小
-       max-file-size:  10MB
-       # 设置总上传的文件大小
-       max-request-size:  20MB
+    multipart:
+      # 单个文件大小
+      max-file-size:  10MB
+      # 设置总上传的文件大小
+      max-request-size:  20MB
   # 服务模块
   # 服务模块
   devtools:
   devtools:
     restart:
     restart:
@@ -73,14 +65,15 @@ spring:
   # redis 配置
   # redis 配置
   redis:
   redis:
     # 地址
     # 地址
-    host: 124.70.58.209
+    host: 127.0.0.1
     # 端口,默认为6379
     # 端口,默认为6379
     port: 7001
     port: 7001
     # 数据库索引
     # 数据库索引
     database: 0
     database: 0
     # 密码
     # 密码
     password: 106@qwe123
     password: 106@qwe123
-    # 连接超时时间    timeout: 100s
+    # 连接超时时间
+    timeout: 100s
     lettuce:
     lettuce:
       pool:
       pool:
         # 连接池中的最小空闲连接
         # 连接池中的最小空闲连接
@@ -94,21 +87,21 @@ spring:
 
 
 # token配置
 # token配置
 token:
 token:
-    # 令牌自定义标识
-    header: Authorization
-    # 令牌密钥
-    secret: abcdefghijklmnopqrstuvwxyz
-    # 令牌有效期(默认30分钟)
-    expireTime: 30
+  # 令牌自定义标识
+  header: Authorization
+  # 令牌密钥
+  secret: abcdefghijklmnopqrstuvwxyz
+  # 令牌有效期(默认30分钟)
+  expireTime: 30
 
 
 # MyBatis配置
 # MyBatis配置
 mybatis:
 mybatis:
-    # 搜索指定包别名
-    typeAliasesPackage: com.ozs.**.domain
-    # 配置mapper的扫描,找到所有的mapper.xml映射文件
-    mapperLocations: classpath*:mapper/**/*Mapper.xml
-    # 加载全局的配置文件
-    configLocation: classpath:mybatis/mybatis-config.xml
+  # 搜索指定包别名
+  typeAliasesPackage: com.ozs.**.domain
+  # 配置mapper的扫描,找到所有的mapper.xml映射文件
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 加载全局的配置文件
+  configLocation: classpath:mybatis/mybatis-config.xml
 
 
 # MyBatis-plus配置
 # MyBatis-plus配置
 mybatis-plus:
 mybatis-plus:
@@ -127,7 +120,7 @@ swagger:
   # 是否开启swagger
   # 是否开启swagger
   enabled: true
   enabled: true
   # 请求前缀
   # 请求前缀
-#  pathMapping: /dev-api
+  #  pathMapping: /dev-api
   pathMapping: /
   pathMapping: /
 
 
 # 防止XSS攻击
 # 防止XSS攻击
@@ -141,7 +134,7 @@ xss:
 
 
 
 
 elasticsearch:
 elasticsearch:
-  host: 124.70.58.209
+  host: 127.0.0.1
   port: 9121
   port: 9121
 #  host: 127.0.0.1
 #  host: 127.0.0.1
 #  port: 9200
 #  port: 9200

+ 3 - 1
purchase-system/src/main/java/com/ozs/base/domain/BaseExpert.java

@@ -1,6 +1,8 @@
 package com.ozs.base.domain;
 package com.ozs.base.domain;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.base.domain.vo.BaseExpertVo;
@@ -19,7 +21,7 @@ public class BaseExpert extends BaseDto {
      * 主键ID
      * 主键ID
      */
      */
     @ApiModelProperty(value = "id")
     @ApiModelProperty(value = "id")
-    @TableField("id")
+    @TableId(type = IdType.AUTO)
     private Integer id;
     private Integer id;
 
 
     /**
     /**

+ 3 - 1
purchase-system/src/main/java/com/ozs/base/domain/BaseProfessional.java

@@ -1,6 +1,8 @@
 package com.ozs.base.domain;
 package com.ozs.base.domain;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
@@ -14,7 +16,7 @@ public class BaseProfessional {
      * 主键ID
      * 主键ID
      */
      */
     @ApiModelProperty(value = "id")
     @ApiModelProperty(value = "id")
-    @TableField("id")
+    @TableId(type = IdType.AUTO)
     private Integer id;
     private Integer id;
 
 
     /**
     /**

+ 3 - 1
purchase-system/src/main/java/com/ozs/base/domain/BaseSupplier.java

@@ -1,6 +1,8 @@
 package com.ozs.base.domain;
 package com.ozs.base.domain;
 
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
@@ -19,7 +21,7 @@ import java.util.Date;
 public class BaseSupplier {
 public class BaseSupplier {
 
 
     @ApiModelProperty(value = "主键id")
     @ApiModelProperty(value = "主键id")
-    @TableField("id")
+    @TableId(type = IdType.AUTO)
     private Integer id;
     private Integer id;
 
 
     @NotBlank(message = "供应商名称不能为空")
     @NotBlank(message = "供应商名称不能为空")

+ 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 lombok.Data;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Data
 @Data
 public class BaseExpertVo extends PageVo {
 public class BaseExpertVo extends PageVo {
@@ -114,6 +115,7 @@ public class BaseExpertVo extends PageVo {
      */
      */
     @ApiModelProperty(value = "所在区域(行政区域表的code)")
     @ApiModelProperty(value = "所在区域(行政区域表的code)")
     private String localArea;
     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.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.base.domain.BaseExpert;
 import com.ozs.base.domain.BaseExpert;
 import com.ozs.base.domain.BaseUnitInformation;
 import com.ozs.base.domain.BaseUnitInformation;
+import com.ozs.base.domain.vo.BaseExpertVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -10,7 +11,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface BaseExpertMapper extends BaseMapper<BaseExpert> {
 public interface BaseExpertMapper extends BaseMapper<BaseExpert> {
-    int insertExpert(BaseExpert baseExpert);
+    int insertExpert(BaseExpertVo baseExpertVo);
 
 
     List<BaseUnitInformation> selectByUnitInformation(@Param("unitInformation") String unitInformation);
     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;
 import com.ozs.common.core.domain.AjaxResult;
 
 
 public interface BaseExpertService  extends IService<BaseExpert> {
 public interface BaseExpertService  extends IService<BaseExpert> {
-    int insertExpert(BaseExpert baseExpert);
+    int insertExpert(BaseExpertVo baseExpertVo);
 
 
     int updateSupplierType(BaseExpert baseExpert);
     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;
     private ISysDictDataService dictDataService;
 
 
     @Override
     @Override
-    public int insertExpert(BaseExpert baseExpert) {
+    public int insertExpert(BaseExpertVo baseExpertVo) {
         // base_unit_information 单位信息表
         // 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) {
             if (baseUnitInformationList.size() <= 0) {
                 BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
                 BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
-                baseUnitInformation.setUnitName(baseExpert.getUnitInformation());
-                baseUnitInformation.setCreated(baseExpert.getExpertName());
+                baseUnitInformation.setUnitName(baseExpertVo.getUnitInformation());
+                baseUnitInformation.setCreated(baseExpertVo.getExpertName());
                 baseUnitInformation.setCreateTime(new Date());
                 baseUnitInformation.setCreateTime(new Date());
                 Integer i = baseExpertMapper.insertBaseUnitInformation(baseUnitInformation);
                 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
     @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查询项目
      * 通过年度ID,查询季度、临时计划详情,通过季度、临时计划ID查询项目
-     * @param planYearId
+     *
+     * @param yearsStandardVo
      * @return
      * @return
      */
      */
     AjaxResult projectDetails(PlanYearsStandardVo yearsStandardVo);
     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();
             PlanYears ofYears = new PlanYears();
             BeanUtils.copyProperties(byId, ofYears);
             BeanUtils.copyProperties(byId, ofYears);
             planYearsMapper.insertPlanYears(ofYears);
             planYearsMapper.insertPlanYears(ofYears);
-            Long planYearId = ofYears.getPlanYearId();
             byId.setPlanYearId(ofYears.getPlanYearId().intValue());
             byId.setPlanYearId(ofYears.getPlanYearId().intValue());
         }
         }
         PmDemand demand = new PmDemand();
         PmDemand demand = new PmDemand();
         BeanUtils.copyProperties(byId, demand);
         BeanUtils.copyProperties(byId, demand);
         demand.setPlanId(Long.valueOf(byId.getPlanPracticalId()));
         demand.setPlanId(Long.valueOf(byId.getPlanPracticalId()));
+        demand.setEvaluation(byId.getEvaluation().doubleValue());
         //同步到项目管理状态为需求待填制
         //同步到项目管理状态为需求待填制
         demand.setProjectStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
         demand.setProjectStatus(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
         demand.setCreateTime(new Date());
         demand.setCreateTime(new Date());

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

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