buzhanyi 2 éve
szülő
commit
1d98845fc4

+ 34 - 22
purchase-admin/src/main/java/com/ozs/web/controller/home/HomeNoticeController.java

@@ -13,6 +13,7 @@ import com.ozs.common.utils.SecurityUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.home.domain.HomeNotice;
 import com.ozs.home.domain.vo.HomeNoticeVo;
+import com.ozs.home.domain.vo.HomeToDoQueryResVo;
 import com.ozs.home.service.HomeNoticeService;
 import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.PlanYears;
@@ -20,6 +21,8 @@ import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.service.PlanQuarterService;
 import com.ozs.plan.service.PlanYearsService;
 import com.ozs.pm.doman.PmDemand;
+import com.ozs.pm.doman.PmDemandExpertRef;
+import com.ozs.pm.service.IPmDemandService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,6 +55,8 @@ public class HomeNoticeController extends BaseController {
     private PlanYearsService planYearsService;
     @Autowired
     private PlanQuarterService planQuarterService;
+    @Autowired
+    private IPmDemandService demandService;
 
     @ApiOperation(value = "查询首页公告")
     @PostMapping("/selectHomeNotice")
@@ -81,44 +86,51 @@ public class HomeNoticeController extends BaseController {
     @ApiOperation(value = "搜索项目列表")
     @PostMapping("/listPlanYears")
     public AjaxResult listPlanYears(@RequestBody PlanYearsStandardVo yearsStandardVo) {
-        if (StringUtils.isNull(yearsStandardVo.getProjectName())) {
+        if (ObjectUtils.isEmpty(yearsStandardVo.getProjectName())) {
             return error("查询项目名称不能为空!");
         }
         LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
-        if (!StringUtils.isBlank(yearsStandardVo.getProjectName())) {
-            lw.like(PlanYears::getProjectName, "%" + yearsStandardVo.getProjectName() + "%");
-            lw.eq(PlanYears::getDelFlay, 0);
-            if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
-                lw.eq(PlanYears::getPurchaseDeptId, SecurityUtils.getDeptId());
+        lw.like(PlanYears::getProjectName, "%" + yearsStandardVo.getProjectName() + "%");
+        lw.eq(PlanYears::getDelFlay, 0);
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+            //查出不在季度计划表中的id
+            List<Integer> ids = planYearsService.idNotInQuarter();
+            if (ObjectUtils.isEmpty(ids)) {
+                lw.in(PlanYears::getPlanYearId, ids);
             }
+            lw.eq(PlanYears::getPurchaseDeptId, SecurityUtils.getDeptId());
         }
-        //如果年度计划已添加到季度计划,或临时计划同步到年度计划,就不展示年度计划数据
         List<PlanYears> list = planYearsService.list(lw);
-        for (PlanYears years : list) {
-            LambdaQueryWrapper<PlanQuarter> qw = new LambdaQueryWrapper<>();
-            qw.eq(PlanQuarter::getPlanYearId, years.getPlanYearId());
-            if (planQuarterService.count(qw) > 1) {
-                list.remove(years);
-            }
-        }
 
-        //项目搜索的结果中要包含临时计划
+        //项目搜索的结果中要包含季度、临时计划(过滤掉已同步到项目管理的临时、季度计划)
         LambdaQueryWrapper<PlanQuarter> ls = new LambdaQueryWrapper<PlanQuarter>();
-        if (!StringUtils.isBlank(yearsStandardVo.getProjectName())) {
-            ls.like(PlanQuarter::getProjectName, "%" + yearsStandardVo.getProjectName() + "%");
-            ls.eq(PlanQuarter::getDelFlay, 0);
-            ls.eq(PlanQuarter::getPlanType, 1);
-            if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
-                ls.eq(PlanQuarter::getPurchaseDeptId, SecurityUtils.getDeptId());
+        ls.like(PlanQuarter::getProjectName, "%" + yearsStandardVo.getProjectName() + "%");
+        ls.eq(PlanQuarter::getDelFlay, 0);
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+            //查出不在项目表中的季度、临时id
+            List<Integer> ids = planQuarterService.idNotDemand();
+            if (ObjectUtils.isEmpty(ids)) {
+                ls.in(PlanQuarter::getPlanPracticalId, ids);
             }
+            ls.eq(PlanQuarter::getPurchaseDeptId, SecurityUtils.getDeptId());
         }
         List<PlanQuarter> lists = planQuarterService.list(ls);
+        //年度计划融合季度、临时计划
         for (PlanYears year : list) {
             PlanQuarter quarter = new PlanQuarter();
             BeanUtils.copyProperties(year, quarter);
             lists.add(quarter);
         }
-        return AjaxResult.success(lists);
+        //查询项目信息,
+        LambdaQueryWrapper<PmDemand> lq = new LambdaQueryWrapper<PmDemand>();
+        lq.like(PmDemand::getProjectName, "%" + yearsStandardVo.getProjectName() + "%");
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+            lq.eq(PmDemand::getPurchaseDeptId, SecurityUtils.getDeptId());
+        }
+        List<PmDemand> demandList = demandService.list(lq);
+        //放在同一个列表里返回
+        List<HomeToDoQueryResVo> home = planYearsService.listToHome(lists, demandList);
+        return AjaxResult.success(home);
     }
 
     @ApiOperation(value = "搜索项目--选择项目查看详情")

+ 0 - 8
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java

@@ -19,33 +19,25 @@ import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.core.domain.entity.SysProcurementStandard;
 import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.PageUtils;
-import com.ozs.common.utils.StringUtils;
-import com.ozs.common.utils.file.FileUtils;
 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.PlanYears;
 import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.responseVo.PlanYearsResponseVo;
 import com.ozs.plan.service.PlanYearsService;
-import com.ozs.plan.service.impl.PlanYearsServiceImpl;
-import com.ozs.pm.doman.PmAuditDeptRef;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.SysProcurementStandardService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.math.BigDecimal;

+ 5 - 0
purchase-system/src/main/java/com/ozs/plan/mapper/PlanQuarterMapper.java

@@ -6,6 +6,7 @@ import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -97,4 +98,8 @@ public interface PlanQuarterMapper extends BaseMapper<PlanQuarter> {
     Integer sendLetter(Long planPracticalId);
 
     List<PlanQuarter> query(PlanQuarterStandardVo vo);
+
+    @Select("SELECT plan_practical_id  FROM plan_practical WHERE plan_practical_id not in " +
+            " (SELECT IFNULL(demand_id,-1) FROM pm_demand)  AND del_flay=0")
+    List<Integer> idNotDemand();
 }

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

@@ -177,4 +177,6 @@ public interface PlanQuarterService extends IService<PlanQuarter> {
      * 是否可以执行发函
      */
     public boolean sendLetterDo(String projectStatus);
+
+    List<Integer> idNotDemand();
 }

+ 12 - 0
purchase-system/src/main/java/com/ozs/plan/service/PlanYearsService.java

@@ -5,10 +5,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.home.domain.vo.HomeToDoQueryResVo;
+import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo;
 import com.ozs.plan.doman.vo.responseVo.PlanYearsResponseVo;
+import com.ozs.pm.doman.PmDemand;
 
 import java.text.ParseException;
 import java.util.List;
@@ -296,4 +299,13 @@ public interface PlanYearsService extends IService<PlanYears> {
      * @return
      */
     List<Integer> idNotInQuarter();
+
+    /**
+     * 计划数据和项目数据一起返回给 首页--搜索项目
+     *
+     * @return
+     */
+    public List<HomeToDoQueryResVo> listToHome(List<PlanQuarter> plans, List<PmDemand> demands);
+
+
 }

+ 5 - 0
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanQuarterServiceImpl.java

@@ -907,6 +907,11 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
         return ls.contains(projectStatus);
     }
 
+    @Override
+    public List<Integer> idNotDemand() {
+        return planQuarterMapper.idNotDemand();
+    }
+
     /**
      * 根据季度计划在各个季度提报时间的阈值进行提示
      *

+ 27 - 0
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -943,6 +943,33 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         return homeRes;
     }
 
+    /**
+     * 计划数据和项目数据一起返回给 首页--搜索项目
+     *
+     * @return
+     */
+    @Override
+    public List<HomeToDoQueryResVo> listToHome(List<PlanQuarter> plans, List<PmDemand> demands) {
+        List<HomeToDoQueryResVo> homeRes = new ArrayList<>();
+        //转为首页table展示数据
+        if (!ObjectUtils.isEmpty(plans) && plans.size() > 0) {
+            for (PlanQuarter planVo : plans) {
+                HomeToDoQueryResVo home = new HomeToDoQueryResVo();
+                BeanUtils.copyProperties(planVo, home);
+                homeRes.add(home);
+            }
+        }
+        if (!ObjectUtils.isEmpty(demands) && demands.size() > 0) {
+            for (PmDemand demandVo : demands) {
+                HomeToDoQueryResVo home = new HomeToDoQueryResVo();
+                home.setEvaluation(BigDecimal.valueOf(demandVo.getEvaluation()));
+                BeanUtils.copyProperties(demandVo, home);
+                homeRes.add(home);
+            }
+        }
+        return homeRes;
+    }
+
     @Override
     public AjaxResult purchasingManagementWillManipulateTotalNum() {
         List<StatisticalChartsResVo> result = new ArrayList<>();