1 yıl önce
ebeveyn
işleme
5c514e00a3

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobVO.java

@@ -24,6 +24,7 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 public class CheckJobVO implements Serializable{
+    private Integer subWaitNum;
     private List<SbInfoVO> sbInfoVOS;
 
     private Integer MonthNum;

+ 2 - 1
platform-dao/src/main/resources/mapper/check/CheckJobMapper.xml

@@ -207,12 +207,13 @@
         sbinfo.name sbName, sbinfo.no sbNo, sbinfo.level sbLevel,sbinfo.id,
         partinfo.name partName,
         standard.no standardNo, standard.name standardName,standard.level standardLevel,
-        standard.period period, standard.period_type periodType
+        standard.period period, standard.period_type periodType,position .id as positionId,position .name as positionName
         from t_check_job as checkjob
         left join t_sb_info sbinfo on sbinfo.id = checkjob.sb_id
         left join t_part_info partinfo on partinfo.id = checkjob.part_id
         left join t_check_standard standard on standard.id = checkjob.standard_id
         left join t_sys_user u on checkjob.check_user_id = u.user_id
+        left join t_sb_position position on position.id = sbinfo.position_id
         <where>
             <include refid="List_Condition"/>
         </where>

+ 9 - 5
platform-dao/src/main/resources/mapper/sb/SbPositionMapper.xml

@@ -59,17 +59,21 @@
 
     <select id="getCheckJobNums" parameterType="com.platform.dao.dto.check.CheckJobDTO" resultType="com.platform.dao.vo.query.check.CheckJobVO">
         select
-        position.name as positionName, position.id as positionId,count(1) as waitNum
+        position.name as positionName, position.id as positionId
         from t_sb_position position left join t_sb_info info on position.id=info.position_id left join t_check_job job
         on info.id = job.sb_id
         <where>
-        and (job.status = 1 or job.status =2) and position .id in
-        <foreach item="item" index="index" collection="positionIds" open="(" close=")" separator=",">
-            #{item}
-        </foreach>
+        <if test="positionIds!=null and positionIds.size>0">
+            and (job.status = 1 or job.status =2) and position .id in
+            <foreach item="item" index="index" collection="positionIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+
         <if test="searchEndTime!=null">
             and job.start_time <![CDATA[<=]]> #{searchEndTime}
         </if>
         </where>
+        group by position .id
     </select>
 </mapper>

+ 25 - 7
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -294,11 +294,18 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
         List<CheckJobVO> checkJobVOS = getJobVO(checkJobDTO);
         Integer waitNum = 0;
         Integer compaleteNum = 0;
+        Integer monthNum = 0;
         for (CheckJobVO vo:checkJobVOS){
-            if (vo.getStatus()==1||vo.getStatus()==2){
+            if ((vo.getStatus()==1||vo.getStatus()==2)&&vo.getPositionId()!=null){
                 waitNum++;
-            }else if (vo.getStatus()==3){
+                monthNum++;
+            }else if (vo.getStatus()==3&&vo.getPositionId()!=null){
                 compaleteNum++;
+                monthNum++;
+            }else if (vo.getPositionId()==null){
+                System.out.println(vo.getPositionId());
+            }else if (!vo.getPositionId().equals("1")&&!vo.getPositionId().equals("2")){
+                System.out.println(vo.getPositionId());
             }
         }
         List<String> sbIds = checkJobVOS.stream().map(CheckJobVO::getSbId).distinct().collect(Collectors.toList());
@@ -309,8 +316,8 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
         List<SbInfoVO> sbInfoVOS = sbInfoMapper.getByIds(sbIds);
         List<String> positionIds = sbInfoVOS.stream().map(SbInfoVO::getPositionId).distinct().collect(Collectors.toList());
         List<CheckJobVO> checkJobVOS1 = new ArrayList<>();
+        checkJobDTO.setPositionIds(positionIds);
         if (dto.getTimeFlag()!=null){
-            checkJobDTO.setPositionIds(positionIds);
             if (dto.getTimeFlag()==1){
                 checkJobDTO.setSearchEndTime(DateUtils.getTodayEndTime());
             }else if (dto.getTimeFlag()==2){
@@ -318,15 +325,26 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
             }else if (dto.getTimeFlag()==3){
                 checkJobDTO.setSearchEndTime(DateUtils.getLastDayOfThisMonth());
             }
-            checkJobVOS1 = sbPositionMapper.getCheckJobNums(checkJobDTO);
-        }else {
-            checkJobVOS1 = sbPositionMapper.getByIds(positionIds);
         }
+        checkJobVOS1 = sbPositionMapper.getCheckJobNums(checkJobDTO);
+        if (checkJobVOS1!=null&&checkJobVOS!=null){
+            for (CheckJobVO vo1:checkJobVOS1){
+                Integer subWaitNum = 0;
+                for (CheckJobVO vo:checkJobVOS){
+                    if (vo1.getPositionId()!=null&&vo1.getPositionId().equals(vo.getPositionId())&&
+                            (vo.getStatus()!=null&&vo.getStatus()==1||vo.getStatus()==2)){
+                        subWaitNum++;
+                    }
+                }
+                vo1.setSubWaitNum(subWaitNum);
+            }
+        }
+
         if (checkJobVOS1!=null&&checkJobVOS1.size()>0) {
             checkJobVOS1.get(0).setWaitNum(waitNum);
             checkJobVOS1.get(0).setSbNum(sbIds.size());
             checkJobVOS1.get(0).setCompaleteNum(compaleteNum);
-            checkJobVOS1.get(0).setMonthNum(checkJobVOS.size());
+            checkJobVOS1.get(0).setMonthNum(monthNum);
         }else {
             checkJobVOS1 = new ArrayList<>();
             CheckJobVO vo = new CheckJobVO();