Browse Source

项目管理 地域

suntianwu 2 years ago
parent
commit
86ef542476

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

@@ -89,6 +89,7 @@ public class BaseExpertController extends BaseController {
             lw.eq(BaseExpert::getMajorGrade, baseExpertVo.getMajorGrade());
         }
         IPage<BaseExpert> page = baseExpertService.page(new Page<BaseExpert>(baseExpertVo.getPageNum(), baseExpertVo.getPageSize()), lw);
+        // todo 把 localArea 翻译为 省/市/县,存localAreaName中,(使用SysRegionService的getParentAdministrativeDivisionNames方法)
         return success(page);
     }
 

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

@@ -103,7 +103,7 @@ public class BaseExpert extends BaseDto {
     /**
      * 所在区域
      */
-    @ApiModelProperty(value = "所在区域")
+    @ApiModelProperty(value = "所在区域(行政区域表的code)")
     @TableField("local_area")
     private String localArea;
 

+ 7 - 1
purchase-system/src/main/java/com/ozs/base/domain/vo/BaseExpertVo.java

@@ -94,9 +94,15 @@ public class BaseExpertVo extends PageVo {
     /**
      * 所在区域
      */
-    @ApiModelProperty(value = "所在区域")
+    @ApiModelProperty(value = "所在区域(行政区域表的code)")
     private String localArea;
 
+    /**
+     * 所在区域
+     */
+    @ApiModelProperty(value = "所在区域名(省/市/县)")
+    private String localAreaName;
+
     /**
      * 身份证号
      */

+ 28 - 15
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -24,11 +24,9 @@ import com.ozs.pm.mapper.PmDemandMapper;
 import com.ozs.pm.service.*;
 import com.ozs.system.domain.SysFileInfo;
 import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.vo.SysRegionVO;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
-import com.ozs.system.service.ISysDeptService;
-import com.ozs.system.service.ISysDictDataService;
-import com.ozs.system.service.SysFileRefService;
-import com.ozs.system.service.SysFileService;
+import com.ozs.system.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -77,8 +75,6 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     private PmBidWinningOpeningRefService pmBidWinningOpeningRefService;
     @Autowired
     private PmContractInfoService pmContractInfoService;
-    @Autowired
-    private BaseSupplierService baseSupplierService;
 
     @Autowired
     private BaseAgencyService baseAgencyService;
@@ -92,6 +88,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     @Autowired
     private BaseNoticeService baseNoticeService;
 
+    @Autowired
+    private ISysRegionService iSysRegionService;
+
 
     /**
      * 查询采购需求
@@ -475,7 +474,6 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     @Override
     public PmFlowChartResVo getModuleInfo(Long demandId,String moduleName){
         PmDemand pmDemand = this.getById(demandId);
-        String projectType = pmDemand.getProjectType();
 
         LambdaQueryWrapper<PmFlowChart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(PmFlowChart::getModuleName,moduleName);
@@ -835,20 +833,35 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
        if(spareExpertNumber > 0 && ObjectUtils.isEmpty(professional)){
            throw new Exception("抽取备用专家必须选择专家专业");
        }
-       String  localArea = pmBaseExpertExtractReqVo.getLocalArea();
-       if(spareExpertNumber > 0 && ObjectUtils.isEmpty(localArea)){
-           throw new Exception("抽取备用专家必须选择所在区域");
-       }
 
        PmDemand pmDemand = this.getById(pmBaseExpertExtractReqVo.getDemandId());
        if(ObjectUtils.isEmpty(pmDemand)){
            throw new Exception("参数错误");
        }
 
-       //从专家库中查询符合项目类型的以及是白名单的全部列表
-       LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<BaseExpert>();
+
+        String localArea = pmBaseExpertExtractReqVo.getLocalArea();
+        if(!StringUtils.isNumeric(localArea)){
+            throw new Exception("地域必须传数字代码");
+        }
+       List<String> sysRegionCodeList = new ArrayList<>();
+       if(!ObjectUtils.isEmpty(localArea)) {
+           sysRegionCodeList.add(localArea);
+           //找到该地域code对应的子列表
+           List<SysRegionVO> sysRegionVOList = iSysRegionService.findChildDivisions(localArea);
+           if(!ObjectUtils.isEmpty(sysRegionVOList)){
+               for(SysRegionVO vo : sysRegionVOList) {
+                   sysRegionCodeList.add(vo.getCode());
+               }
+           }
+       }
+
+        //从专家库中查询符合项目类型的以及是白名单的全部列表
+       LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<>();
        lw.eq(BaseExpert::getVarietyPurchase,pmDemand.getProjectType())
-               .eq(BaseExpert::getStatus,NameListType.WHITE.getCode());
+               .eq(BaseExpert::getStatus,NameListType.WHITE.getCode())
+               .in(!ObjectUtils.isEmpty(sysRegionCodeList), BaseExpert::getLocalArea,sysRegionCodeList);
+
        List<BaseExpert> baseExpertList = baseExpertService.list(lw);
        if(ObjectUtils.isEmpty(baseExpertList)){
            throw new Exception("没抽取到符合条件的专家");
@@ -860,7 +873,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
        List<BaseExpert> legalAffairsExpertList = new ArrayList<>();
        List<BaseExpert> spareExpertList = new ArrayList<>();
 
-       //TODO 所在区域判读
+
 
        for(BaseExpert baseExpert : baseExpertList){
            if(technicalExpertNumber > 0) {

+ 0 - 5
purchase-system/src/main/java/com/ozs/system/domain/SysRegion.java

@@ -52,9 +52,4 @@ public class SysRegion implements Serializable {
     private Integer level;
 
 
-    @ApiModelProperty("汇总状态,0不需要, 1待汇总")
-    @TableField("COLLECT_STATUS")
-    private String collectStatus;
-
-
 }

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

@@ -3,9 +3,14 @@ package com.ozs.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.system.domain.SysRegion;
+import com.ozs.system.domain.vo.SysRegionVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 @Mapper
 public interface SysRegionMapper extends BaseMapper<SysRegion> {
+    List<SysRegionVO> findChildDivisions(@Param("pcode") String pcode);
 }

+ 3 - 2
purchase-system/src/main/java/com/ozs/system/service/ISysRegionService.java

@@ -2,8 +2,10 @@ package com.ozs.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.system.domain.SysRegion;
+import com.ozs.system.domain.vo.SysRegionVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 
 
 /**
@@ -12,6 +14,5 @@ import org.springframework.stereotype.Service;
  * @since 2021-05-21 00:08:38
  */
 public interface ISysRegionService extends IService<SysRegion> {
-
-
+    List<SysRegionVO> findChildDivisions(String pCode);
 }

+ 7 - 1
purchase-system/src/main/java/com/ozs/system/service/impl/SysRegionServiceImpl.java

@@ -2,11 +2,17 @@ package com.ozs.system.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ozs.system.domain.SysRegion;
+import com.ozs.system.domain.vo.SysRegionVO;
 import com.ozs.system.mapper.SysRegionMapper;
 import com.ozs.system.service.ISysRegionService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class SysRegionServiceImpl extends ServiceImpl<SysRegionMapper, SysRegion> implements ISysRegionService {
-
+    @Override
+    public List<SysRegionVO> findChildDivisions(String pcode){
+        return this.baseMapper.findChildDivisions(pcode);
+    }
 }

+ 23 - 0
purchase-system/src/main/resources/mapper/system/SysRegionMapper.xml

@@ -0,0 +1,23 @@
+<?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">
+<mapper namespace="com.ozs.system.mapper.SysRegionMapper">
+
+    <resultMap type="com.ozs.system.domain.vo.SysRegionVO" id="divisionList">
+        <id property="id" column="id" />
+        <result property="administrativeDivision" column="administrative_division" />
+        <result property="pid" column="pid" />
+        <result property="code" column="code" />
+        <result property="level" column="level" />
+        <collection property="children"
+                    ofType="com.ozs.system.domain.vo.SysRegionVO"
+                    select="findChildDivisions"
+                    column="code" />
+    </resultMap>
+
+    <select id="findChildDivisions" resultMap="divisionList">
+        SELECT  m.id,m.administrative_division,m.pid,m.code,m.level
+        FROM sys_region m
+        WHERE pid= (select n.id from sys_region n where n.code = #{pcode})
+    </select>
+
+</mapper>