Ver código fonte

Merge remote-tracking branch 'origin/V0.1.0' into V0.1.0

jingyuanchao 1 ano atrás
pai
commit
396a2c1e5d

+ 5 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/SystemParameterConstant.java

@@ -113,6 +113,11 @@ public class SystemParameterConstant {
 
 
     /**
+     * 演练推优评优 没有办事处的地区 直接有省联社处理
+     */
+    public static final String NO_BSC_AREA = "NO_BSC_AREA";
+
+    /**
      * 是否强制删除计划及其下属任务数据 0:否,1:是
      */
     public static final String FORCE_DELETE_PLAN_DATA = "FORCE_DELETE_PLAN_DATA";

+ 4 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskDetailVo.java

@@ -123,6 +123,10 @@ public class CoreDrillTaskDetailVo {
     @ApiModelProperty(value = "推荐状态",example = "0:正常案例、1:行社优秀案例、2:已推荐地区优秀案例、3:地区优秀案例、4:已推荐省级优秀案例、5:省级优秀案例")
     private Integer recStatus;
 
+    @ApiModelProperty(value = "不推荐状态",example = "6 不推荐(保留普通案例) 7   不推荐(保留行社优秀案例) 8 不推荐(保留地区优秀案例)")
+    private Integer unRecStatus;
+
+
     private Integer status;
 
     @ApiModelProperty(value = "推荐状态名称")

+ 5 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillTaskRecPageVo.java

@@ -35,6 +35,10 @@ public class CoreDrillTaskRecPageVo {
     @ApiModelProperty(value = "推荐状态", example = "不推荐标识: null 未设置不推荐,6 不推荐(保留普通案例) 7   不推荐(保留行社优秀案例) 8 不推荐(保留地区优秀案例)")
     private Integer unrecStatus;
 
-
     private String title;
+
+    // true : 当前机构没有办事处
+    private Boolean noBscArea;
+
+    private String orgPath;
 }

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/mapper/CoreDrillTaskMapper.java

@@ -50,6 +50,7 @@ public interface CoreDrillTaskMapper extends BaseMapper<CoreDrillTask> {
 
     List<PanelListVo> selectWaitEvaluateTaskList(@Param("request") PanelListDto panelListDto);
     List<PanelListVo> selectWaitRecTaskList(@Param("request") PanelListDto panelListDto);
+    List<PanelListVo> selectSpecialWaitRecTaskList(@Param("request") PanelListDto panelListDto);
 
     Integer updateTaskStatus(@Param("status") int status);
 

+ 66 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -991,6 +991,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         dealRecListParam(request);
 
         IPage<CoreDrillTaskRecPageVo> page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request);
+        SysConfig noBscAreaConfig = remoteConfigService.findSysConfigByCode(SystemParameterConstant.NO_BSC_AREA, SecurityConstants.INNER);
         for (CoreDrillTaskRecPageVo record : page.getRecords()) {
             //处理演练任务类型字典
             record.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, record.getType()));
@@ -1006,12 +1007,32 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 record.setRecStatusText(DictUtils.getDictLabel(DictConstants.DRILL_TASK_REC_STATUS, record.getRecStatus()));
             }
             record.setOrgName(orgService.concatOrgName(record.getOrgId(), SecurityConstants.INNER));
-
+            record.setNoBscArea(isNoBSCAreaSubOrg(record.getOrgPath(),ObjectUtil.isNotNull(noBscAreaConfig)?noBscAreaConfig.getConfigValue():StringUtil.EMPTY_STRING));
 
         }
         return TableDataInfo.build(page);
     }
 
+    private boolean isNoBSCAreaSubOrg(String orgPath,String noBscAreaConfig)
+    {
+        if(StringUtil.isNullOrEmpty(noBscAreaConfig))
+        {
+            return false;
+        }
+        if(StringUtil.isNullOrEmpty(orgPath))
+        {
+            return false;
+        }
+        String[] noBscAreaOrgIds = noBscAreaConfig.split(",");
+        for (int i=0 ; i<noBscAreaOrgIds.length;i++) {
+             boolean isContains = orgPath.contains(noBscAreaOrgIds[i]);
+             if(isContains) {
+                 return true;
+             }
+        }
+        return false;
+    }
+
     /**
      * 优秀案例学习列表查询
      *
@@ -1294,8 +1315,16 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                             remoteConfigService.findSysConfigByCode(SystemParameterConstant.AREA_REC_DRILL_TASK_MAX, SecurityConstants.INNER),
                     ErrorMsgConstants.QUERY_CONFIG_ERROR);
 
-            SysOrg sysOrg = sysOrgList.stream().filter(org -> ObjectUtil.equal(org.getType(), OrgTypeEnum.BAN_SHI_CHU.getCode()))
-                    .findFirst().orElseThrow(() -> new SystemException(ErrorMsgConstants.QUERY_ORG_DATA_ERROR));
+            Optional<SysOrg> first = sysOrgList.stream().filter(org -> ObjectUtil.equal(org.getType(), OrgTypeEnum.BAN_SHI_CHU.getCode())).findFirst();
+            SysOrg sysOrg = null;
+            if(first.isPresent())
+            {
+                sysOrg =first.get();
+            }
+            else {
+                // 厦门、 莆田没有办事处
+                sysOrg = sysOrgList.stream().filter(org -> org.getShortName().endsWith("地区行社")).findFirst().orElseThrow(() -> new SystemException(ErrorMsgConstants.QUERY_ORG_DATA_ERROR));
+            }
 
             DateRange range = DateUtils.getStartAndEnd(new Date(), CycleCommonEnum.QUARTERLY);
             List<CoreDrillTask> coreDrillTasks = coreDrillTaskMapper.selectList(new LambdaQueryWrapper<CoreDrillTask>()
@@ -1381,6 +1410,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             }
             //查询待评价与待推优数据
             waitRecTaskList = coreDrillTaskMapper.selectWaitRecTaskList(panelListDto);
+
+            waitRecTaskList.addAll(getSpecialWaitRecTaskList(panelListDto,sysOrg));
+
             waitRecTaskList.forEach(item -> {
                 if (ObjectUtil.isNotNull(item.getRecStatus())) {
                     item.setStatus(10);
@@ -1395,6 +1427,37 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         return waitRecTaskList;
     }
 
+    //省联社用户 查询没有办事处的特殊 地区评优推优待办
+    private List<PanelListVo> getSpecialWaitRecTaskList(PanelListDto panelListDto, SysOrg sysOrg)
+    {
+        List<PanelListVo> waitRecTaskList = new ArrayList<>();
+        //是否为省联社用户
+        if(OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(sysOrg.getType()))
+        {
+            SysConfig noBscAreaConfig = remoteConfigService.findSysConfigByCode(SystemParameterConstant.NO_BSC_AREA, SecurityConstants.INNER);
+            if(ObjectUtil.isNotNull(noBscAreaConfig) && !StringUtil.isNullOrEmpty(noBscAreaConfig.getConfigValue()))
+            {
+
+                String[] noBscAreaOrgIds = noBscAreaConfig.getConfigValue().split(",");
+                List<Long> orgIds=new ArrayList<>();
+                for (int i=0 ; i<noBscAreaOrgIds.length;i++) {
+
+                    orgIds.add(Long.parseLong(noBscAreaOrgIds[i]));
+                }
+
+                List<SysOrg> sysOrgs = orgService.selectOrgByIdList(orgIds, SecurityConstants.INNER);
+                if(ObjectUtil.isNotEmpty(sysOrgs))
+                {
+                    for (SysOrg x : sysOrgs) {
+                        panelListDto.setOrgPath(x.getPath());
+                        waitRecTaskList.addAll(coreDrillTaskMapper.selectSpecialWaitRecTaskList(panelListDto));
+                    }
+                }
+            }
+        }
+        return waitRecTaskList;
+    }
+
     @Override
     public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
         String date = LocalDate.now().format(DateTimeFormatter.ofPattern(Constants.DAILY_FORMAT));

+ 31 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml

@@ -184,6 +184,7 @@
                t.pdf_url          as pdfUrl,
                t.file_list        as file,
                t.rec_status       as recStatus,
+               t.unrec_status       as unRecStatus,
                t.status           as status
 
         from core_drill_task t
@@ -194,7 +195,17 @@
     </select>
 
     <select id="selectRecPage" resultType="com.xunmei.common.core.domain.drill.vo.CoreDrillTaskRecPageVo">
-        select * from core_drill_task t
+        select t.id,
+               t.org_id,
+               o.short_name as orgName,
+               o.path as orgPath,
+               t.title,
+               t.unrec_status,
+               t.rec_status,
+               t.comment_score,
+               t.type
+        from core_drill_task t
+        left join sys_org o ON t.org_id =o.id
         where t.rec_status is not null
         <if test="request.recStatus!=null and request.unRecStatus==null">
             and t.rec_status = #{request.recStatus} AND t.unrec_status is null
@@ -343,6 +354,25 @@
         order by  t.drill_end_time desc
     </select>
 
+<!--    省联社查询地区评优推优待办-->
+    <select id="selectSpecialWaitRecTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
+        select distinct t.id as id, title as taskName,t.start_date startTime,t.end_date as endTime,t.status,t.rec_status
+        from core_drill_task t
+        where t.org_path like concat(#{request.orgPath},'%')
+        <include refid="timeRangeSql"/>
+<!--        <if test="request.orgType==3">-->
+<!--            and t.rec_status =0 and t.unrec_status is null-->
+<!--        </if>-->
+<!--        <if test="request.orgType==2">-->
+<!--            and t.rec_status =2-->
+<!--        </if>-->
+        <if test="request.orgType==1">
+            and t.rec_status =2
+        </if>
+        order by  t.drill_end_time desc
+    </select>
+
+
     <select id="checkHasTaskIsExecuteByPlanParentId" resultType="java.lang.Integer">
         select 1
         from core_drill_task