Explorar o código

专家库--项目评审--抽取专家

sunhh %!s(int64=2) %!d(string=hai) anos
pai
achega
3fb35b5559

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

@@ -109,7 +109,7 @@ public class BaseExpertController extends BaseController {
         return toAjax(baseExpertService.updateSupplierType(baseExpert));
     }
 
-    @ApiOperation(value = "评审项目", notes = "非必传 查询条件:品目名称")
+    @ApiOperation(value = "评审项目", notes = "必传:分页,专家ID")
     @PostMapping("/selectReviewProject")
     public AjaxResult selectReviewProject(@RequestBody BaseExpertVo baseExpertVo) {
         if (StringUtils.isNull(baseExpertVo)
@@ -120,4 +120,15 @@ public class BaseExpertController extends BaseController {
         }
         return baseExpertService.selectReviewProject(baseExpertVo);
     }
+
+    @ApiOperation(value = "抽取专家", notes = "必传:分页;非必传:专家名称,开始结束时间")
+    @PostMapping("/selectExtractionExpert")
+    public AjaxResult selectExtractionExpert(@RequestBody BaseExpertVo baseExpertVo) {
+        if (StringUtils.isNull(baseExpertVo)
+                || StringUtils.isNull(baseExpertVo.getPageNum())
+                || StringUtils.isNull(baseExpertVo.getPageSize())) {
+            return error("分页 不能为空");
+        }
+        return baseExpertService.selectExtractionExpert(baseExpertVo);
+    }
 }

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

@@ -6,8 +6,18 @@ import com.ozs.common.vo.PageVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class BaseExpertVo extends PageVo {
+
+    /**
+     * 查询抽取专家列表条件:项目名称,开始时间,结束时间
+     */
+    private String projectName;
+    private Date startTime;
+    private Date endTime;
+
     /**
      * 主键ID
      */

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

@@ -12,4 +12,6 @@ public interface BaseExpertService  extends IService<BaseExpert> {
     int updateSupplierType(BaseExpert baseExpert);
 
     AjaxResult selectReviewProject(BaseExpertVo baseExpertVo);
+
+    AjaxResult selectExtractionExpert(BaseExpertVo baseExpertVo);
 }

+ 93 - 3
purchase-system/src/main/java/com/ozs/base/service/impl/BaseExpertServiceImpl.java

@@ -2,6 +2,7 @@ package com.ozs.base.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
@@ -12,19 +13,27 @@ import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.base.mapper.BaseExpertMapper;
 import com.ozs.base.service.BaseExpertService;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.*;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.plan.doman.PlanQuarter;
 import com.ozs.plan.doman.ProvisionalPlan;
 import com.ozs.pm.doman.PmDemand;
 import com.ozs.pm.doman.PmDemandExpertRef;
+import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
 import com.ozs.pm.service.PmDemandExpertRefService;
+import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
+import com.ozs.system.service.ISysDeptService;
+import com.ozs.system.service.ISysDictDataService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExpert> implements BaseExpertService {
@@ -35,11 +44,15 @@ public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExp
     private PmDemandExpertRefService pmDemandExpertRefService;
     @Autowired
     private IPmDemandService pmDemandService;
+    @Autowired
+    private ISysDeptService deptService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
     @Override
     public int insertExpert(BaseExpert baseExpert) {
         // base_unit_information 单位信息表
-        if(StringUtils.isNotNull(baseExpert.getUnitInformation())) {
+        if (StringUtils.isNotNull(baseExpert.getUnitInformation())) {
             List<BaseUnitInformation> baseUnitInformationList = baseExpertMapper.selectByUnitInformation(baseExpert.getUnitInformation());
             if (baseUnitInformationList.size() <= 0) {
                 BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
@@ -67,12 +80,89 @@ public class BaseExpertServiceImpl extends ServiceImpl<BaseExpertMapper, BaseExp
     public AjaxResult selectReviewProject(BaseExpertVo baseExpertVo) {
         // 通过专家ID查询 与专家库关联的采购执行管理ID
         List<Integer> demandIdList = pmDemandExpertRefService.selectByExpertId(baseExpertVo.getId());
-        if (StringUtils.isNull(demandIdList) && demandIdList.size() <=0) {
+        if (demandIdList.size() == 0) {
             return AjaxResult.error("当前专家还有有被抽取!");
         }
         List<PmDemand> pmDemandList = pmDemandService.selectByDemandIdList(demandIdList);
+        List<PmDemandResVo> pmDemandResponseVoList = changTo(pmDemandList);
         PageHelper.startPage(baseExpertVo.getPageNum().intValue(), baseExpertVo.getPageSize().intValue());
-        PageInfo<PmDemand> pageInfo = new PageInfo<>(pmDemandList);
+        PageInfo<PmDemandResVo> pageInfo = new PageInfo<>(pmDemandResponseVoList);
         return AjaxResult.success(pageInfo);
     }
+
+    @Override
+    public AjaxResult selectExtractionExpert(BaseExpertVo baseExpertVo) {
+        List<PmDemand> pmDemandList = pmDemandService.selectExtractionExpert(baseExpertVo);
+        List<PmDemandResVo> pmDemandResponseVoList = changTo(pmDemandList);
+        PageHelper.startPage(baseExpertVo.getPageNum().intValue(), baseExpertVo.getPageSize().intValue());
+        PageInfo<PmDemandResVo> pageInfo = new PageInfo<>(pmDemandResponseVoList);
+        return AjaxResult.success(pageInfo);
+    }
+
+    private List<PmDemandResVo> changTo(List<PmDemand> pmDemandList) {
+        List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
+        if (pmDemandList != null && pmDemandList.size() > 0) {
+            for (PmDemand pmDemand1 : pmDemandList) {
+                PmDemandResVo vo = new PmDemandResVo();
+                BeanUtils.copyProperties(pmDemand1, vo);
+                if (vo.getPurchaseDeptId() != null) {
+                    Map<String, Object> deptMap = deptService.selectDeptById(vo.getPurchaseDeptId());
+                    if (deptMap != null) {
+                        SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptMap.get("sysDept");
+                        if (sysDeptResponseVo != null) {
+                            vo.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
+                        }
+                    }
+                }
+                String purchaseServicesName = dictDataService.selectDictLabel("purchase_services", vo.getPurchaseServices());
+                if (StringUtils.isNotEmpty(purchaseServicesName)) {
+                    vo.setPurchaseServicesName(purchaseServicesName);
+                }
+                //项目类型
+                for (ProjectTypes value : ProjectTypes.values()) {
+                    if (vo.getProjectType() != null && vo.getProjectType().equals(value.getCode())) {
+                        vo.setProjectTypeName(value.getInfo());
+                        break;
+                    }
+                }
+                //是否为超限额计划
+                for (IsExcess value : IsExcess.values()) {
+                    if (vo.getIsExcess() != null && vo.getIsExcess().equals(value.getCode())) {
+                        vo.setIsExcessName(value.getInfo());
+                        break;
+                    }
+                }
+                //采购方式
+                for (PlanPurchaseMode value : PlanPurchaseMode.values()) {
+                    if (vo.getPurchaseMode() != null && vo.getPurchaseMode().equals(value.getCode())) {
+                        vo.setPurchaseModeName(value.getInfo());
+                        break;
+                    }
+                }
+                //项目属性
+                for (ProjectAttribute value : ProjectAttribute.values()) {
+                    if (vo.getProjectAttr() != null && vo.getProjectAttr().equals(value.getCode())) {
+                        vo.setProjectAttrName(value.getInfo());
+                        break;
+                    }
+                }
+                //预警状态
+                for (WarnStatus value : WarnStatus.values()) {
+                    if (vo.getWarnStatus() != null && vo.getWarnStatus().equals(value.getCode())) {
+                        vo.setWarnStatusName(value.getInfo());
+                        break;
+                    }
+                }
+                //项目状态
+                for (PmProjectStatus value : PmProjectStatus.values()) {
+                    if (vo.getProjectStatus() != null && vo.getProjectStatus().equals(value.getCode())) {
+                        vo.setProjectStatusName(value.getInfo());
+                        break;
+                    }
+                }
+                pmDemandResponseVoList.add(vo);
+            }
+        }
+        return pmDemandResponseVoList;
+    }
 }

+ 9 - 1
purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java

@@ -2,6 +2,7 @@ package com.ozs.pm.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.pm.doman.PmDemand;
 import org.apache.ibatis.annotations.Param;
 
@@ -49,9 +50,16 @@ public interface PmDemandMapper extends BaseMapper<PmDemand>
     public int updatePmDemand(PmDemand pmDemand);
 
     /**
-     * 通过需求ID列表,查询采购执行列表
+     * 通过需求ID列表,查询采购执行列表 sunhh
      * @param demandIdList
      * @return
      */
     List<PmDemand> selectByDemandIdList(@Param("demandIdList") List<Integer> demandIdList);
+
+    /**
+     * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh
+     * @param baseExpertVo
+     * @return
+     */
+    List<PmDemand> selectExtractionExpert(BaseExpertVo baseExpertVo);
 }

+ 8 - 0
purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java

@@ -3,6 +3,7 @@ package com.ozs.pm.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.pm.doman.PmDemand;
 import com.ozs.pm.doman.vo.requestVo.*;
 import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
@@ -119,4 +120,11 @@ public interface IPmDemandService extends IService<PmDemand>
      * @return
      */
     List<PmDemand> selectByDemandIdList(List<Integer> demandIdList);
+
+    /**
+     * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh
+     * @param baseExpertVo
+     * @return
+     */
+    List<PmDemand> selectExtractionExpert(BaseExpertVo baseExpertVo);
 }

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

@@ -11,6 +11,7 @@ import com.ozs.base.domain.BaseAgency;
 import com.ozs.base.domain.BaseExpert;
 import com.ozs.base.domain.BaseSupplier;
 import com.ozs.base.domain.BaseUnitInformation;
+import com.ozs.base.domain.vo.BaseExpertVo;
 import com.ozs.base.service.BaseAgencyService;
 import com.ozs.base.service.BaseExpertService;
 import com.ozs.base.service.BaseSupplierService;
@@ -97,6 +98,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
     @Autowired
     private PmProjectConstructionService pmProjectConstructionService;
+    @Autowired
+    private PmDemandMapper pmDemandMapper;
 
 
     /**
@@ -1380,8 +1383,23 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         }
     }
 
+    /**
+     * 通过需求ID列表 查询采购执行列表 sunhh
+     * @param demandIdList
+     * @return
+     */
     @Override
     public List<PmDemand> selectByDemandIdList(List<Integer> demandIdList) {
         return pmDemandMapper.selectByDemandIdList(demandIdList);
     }
+
+    /**
+     * 专家库--查询抽取专家列表 非必传条件:专家名称,开始结束时间 sunhh
+     * @param baseExpertVo
+     * @return
+     */
+    @Override
+    public List<PmDemand> selectExtractionExpert(BaseExpertVo baseExpertVo) {
+        return pmDemandMapper.selectExtractionExpert(baseExpertVo);
+    }
 }

+ 21 - 5
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -1,11 +1,27 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ozs.pm.mapper.PmDemandMapper">
 
-    <select id="selectByDemandIdList" parameterType="java.util.ArrayList" resultMap="PmDemandResult">
-        <include refid="selectPmDemandVo"/>
-        where demand_id in #{demandIdList}
+    <select id="selectByDemandIdList" parameterType="java.util.List" resultType="com.ozs.pm.doman.PmDemand">
+        select * from pm_demand where project_status = 15 and demand_id in
+        <foreach item="item" collection="demandIdList" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="selectExtractionExpert" parameterType="com.ozs.base.domain.vo.BaseExpertVo"
+            resultType="com.ozs.pm.doman.PmDemand">
+        select * from pm_demand where project_status = 13
+        <if test="projectName != null and projectName != ''">
+            and project_name like '%' + #{projectName} + '%'
+        </if>
+        <if test="startTime != null  "><!-- 开始时间检索 -->
+            and date_format(plan_demand_sub_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
+        </if>
+        <if test="endTime != null  "><!-- 结束时间检索 -->
+            and date_format(plan_demand_sub_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+        </if>
     </select>
 </mapper>