1 年之前
父節點
當前提交
0bdef63102

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/dto/check/CheckStandardDTO.java

@@ -24,6 +24,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class CheckStandardDTO extends BaseDTO implements Serializable {
+    private List<Integer> statusList;
     private LocalDateTime searchStartTime;
 
     private LocalDateTime searchEndTime;

+ 6 - 0
platform-dao/src/main/resources/mapper/check/CheckStandardMapper.xml

@@ -203,6 +203,12 @@ checkstandard.last_date,
                     #{item}
                 </foreach>
             </if>
+            <if test="statusList!=null and sbIdList.size>0">
+                and job.status in
+                <foreach collection="statusList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         group by checkstandard.id
         Order By

+ 34 - 3
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -107,6 +107,9 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
         standardDTO.setSbIdList(sbIdList);
         standardDTO.setSbName(dto.getSbName());
         standardDTO.setSbNo(dto.getSbNo());
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(1);
+        statusList.add(2);
 //        PageHelper.startPage(pageNum,pageSize);
         List<CheckStandardVO> checkStandardVOS = standardMapper.selectList2(standardDTO);
         sbIdList = checkStandardVOS.stream().map(CheckStandardVO::getSbId).distinct().collect(Collectors.toList());
@@ -175,13 +178,41 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
     }
     private BigDecimal getNum(LocalDateTime searchEndTime,LocalDateTime searchStartTime,CheckStandardVO vo,BigDecimal num,Integer period){
 //        do {
-            long days = DateUtils.until(searchStartTime,searchEndTime,ChronoUnit.DAYS);
+        long days = 0;
+        if (vo.getNextDate()!=null){
+            if (vo.getNextDate().isBefore(searchStartTime.toLocalDate())){
+                days = DateUtils.until(vo.getNextDate(),searchStartTime.toLocalDate(),ChronoUnit.DAYS);
+                long exceptDays = days%period;
+                searchStartTime = searchStartTime.plusDays(exceptDays);
+                if (searchStartTime.toLocalDate().isBefore(searchEndTime.toLocalDate())||searchStartTime.toLocalDate().isEqual(searchEndTime.toLocalDate())) {
+                    days = DateUtils.until(searchStartTime.toLocalDate(), searchEndTime.toLocalDate(), ChronoUnit.DAYS);
+                    num = new BigDecimal((days / period) + 1).add(num);
+                }
+            }else if (vo.getNextDate().isEqual(searchStartTime.toLocalDate())){
+                days = DateUtils.until(searchStartTime.toLocalDate(), searchEndTime.toLocalDate(), ChronoUnit.DAYS);
+                num = new BigDecimal((days / period) + 1).add(num);
+            }else if (vo.getNextDate().isAfter(searchStartTime.toLocalDate())
+            && (vo.getNextDate().isBefore(searchEndTime.toLocalDate())||vo.getNextDate().isEqual(searchEndTime.toLocalDate()))
+            ){
+                days = DateUtils.until(vo.getNextDate(),searchEndTime.toLocalDate(),ChronoUnit.DAYS);
+                num = new BigDecimal((days / period) + 1).add(num);
+            }else if (vo.getNextDate().isAfter(searchEndTime.toLocalDate())){
+                days = DateUtils.until(searchEndTime.toLocalDate(),vo.getNextDate(),ChronoUnit.DAYS);
+                long exceptDays = days%period;
+                searchEndTime = searchEndTime.minusDays(exceptDays);
+                if (searchEndTime.toLocalDate().isAfter(searchStartTime.toLocalDate())
+                        ||searchStartTime.toLocalDate().isEqual(searchEndTime.toLocalDate())) {
+                    days = DateUtils.until(searchStartTime.toLocalDate(), searchEndTime.toLocalDate(), ChronoUnit.DAYS);
+                    num = new BigDecimal((days / period) + 1).add(num);
+                }
+            }
+        }
 //            LocalDateTime time = searchEndTime.minusDays(period);
 //            if (time.isEqual(searchStartTime) || time.isBefore(searchStartTime)){
 //                break;
 //            }
-         long i = days/period;
-            num = new BigDecimal(i).add(num);
+//         long i = days/period;
+//            num = new BigDecimal(i).add(num);
 //        }while (true);
         return num;
     }