|
@@ -16,6 +16,7 @@ import com.platform.dao.bean.MyPage;
|
|
|
import com.platform.dao.dto.check.CheckJobDTO;
|
|
|
import com.platform.dao.dto.check.CheckPlanDTO;
|
|
|
import com.platform.dao.dto.check.CheckProjectPlanRelationDTO;
|
|
|
+import com.platform.dao.dto.check.CheckStandardDTO;
|
|
|
import com.platform.dao.dto.sb.SbInfoDTO;
|
|
|
import com.platform.dao.entity.check.*;
|
|
|
import com.platform.dao.entity.sb.SbInfo;
|
|
@@ -49,6 +50,7 @@ import com.platform.service.upms.SysConfigService;
|
|
|
import com.platform.service.upms.SysUserDeptService;
|
|
|
import com.platform.service.util.SysFileUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -91,6 +93,93 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
|
|
|
private SbInfoMapper sbInfoMapper;
|
|
|
private SbPositionMapper sbPositionMapper;
|
|
|
|
|
|
+ @Override
|
|
|
+ public AbstractPageResultBean<CheckJobNum> getCheckNum(CheckStandardDTO dto, Integer pageNum, Integer pageSize) {
|
|
|
+ SbInfo info = new SbInfo();
|
|
|
+ info.setStatus(SbInfoStatusEnum.IN_USE.getValue());
|
|
|
+ List<SbInfo> sbInfos = sbInfoMapper.select(info);
|
|
|
+ List<String> sbIdList = sbInfos.stream().map(SbInfo::getId).collect(Collectors.toList());
|
|
|
+ CheckStandardDTO standardDTO = new CheckStandardDTO();
|
|
|
+ standardDTO.setSbIdList(sbIdList);
|
|
|
+ standardDTO.setSbName(dto.getSbName());
|
|
|
+ standardDTO.setSbNo(dto.getSbNo());
|
|
|
+// PageHelper.startPage(pageNum,pageSize);
|
|
|
+ List<CheckStandardVO> checkStandardVOS = standardMapper.selectList2(standardDTO);
|
|
|
+ sbIdList = checkStandardVOS.stream().map(CheckStandardVO::getSbId).distinct().collect(Collectors.toList());
|
|
|
+ List<CheckJobNum> checkJobNums = new ArrayList<>();
|
|
|
+ for (String id:sbIdList) {
|
|
|
+ BigDecimal num = new BigDecimal(0);
|
|
|
+ CheckJobNum checkJobNum = new CheckJobNum();
|
|
|
+ for (CheckStandardVO vo : checkStandardVOS) {
|
|
|
+ if (id.equals(vo.getSbId())){
|
|
|
+ checkJobNum.setSbName(vo.getSbName());
|
|
|
+ checkJobNum.setSbNo(vo.getSbNo());
|
|
|
+ LocalDateTime searchEndTime = dto.getSearchEndTime();
|
|
|
+ LocalDateTime searchStartTime = dto.getSearchStartTime();
|
|
|
+ if (searchEndTime==null || searchStartTime==null||vo.getPeriod()==null||vo.getPeriodType()==null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Integer period = 0;
|
|
|
+ if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.DAY.getValue())){
|
|
|
+ period = vo.getPeriod();
|
|
|
+ num = getNum(searchEndTime,searchStartTime,vo,num,period);
|
|
|
+ }
|
|
|
+ if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.WEEK.getValue())){
|
|
|
+ period = vo.getPeriod()*7;
|
|
|
+ num = getNum(searchEndTime,searchStartTime,vo,num,period);
|
|
|
+ }
|
|
|
+ if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.MONTH.getValue())){
|
|
|
+ period = vo.getPeriod()*30;
|
|
|
+ num = getNum(searchEndTime,searchStartTime,vo,num,period);
|
|
|
+ }
|
|
|
+ if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.SEASON.getValue())){
|
|
|
+ period = vo.getPeriod()*30*3;
|
|
|
+ num = getNum(searchEndTime,searchStartTime,vo,num,period);
|
|
|
+ }
|
|
|
+ if (vo.getPeriodType()!=null && vo.getPeriodType().equals(CheckPlanPeriodTypeEnum.YEAR.getValue())){
|
|
|
+ period = vo.getPeriod()*365;
|
|
|
+ num = getNum(searchEndTime,searchStartTime,vo,num,period);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ checkJobNum.setCount(num);
|
|
|
+ checkJobNums.add(checkJobNum);
|
|
|
+ }
|
|
|
+ AbstractPageResultBean<CheckJobNum> pageInfo = getPageInfo(pageNum,pageSize,checkJobNums);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private AbstractPageResultBean<CheckJobNum> getPageInfo(Integer pageNum,Integer pageSize,List<CheckJobNum> list){
|
|
|
+ AbstractPageResultBean<CheckJobNum> pageInfo = new MyPage(list);
|
|
|
+ pageInfo.setPageNum(pageNum);
|
|
|
+ pageInfo.setPageSize(pageSize);
|
|
|
+ List<CheckJobNum> dataList = new ArrayList<>();
|
|
|
+ for (int i = pageSize*(pageNum-1);i<pageSize*pageNum;i++){
|
|
|
+ dataList.add(list.get(i));
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ if (list!=null&&list.size()>0){
|
|
|
+ int pages = list.size()%pageSize==0?list.size()/pageSize:(list.size()/pageSize)+1;
|
|
|
+ pageInfo.setPages(pages);
|
|
|
+ }else {
|
|
|
+ pageInfo.setPages(0);
|
|
|
+ }
|
|
|
+ pageInfo.setTotal((long)list.size());
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+ private BigDecimal getNum(LocalDateTime searchEndTime,LocalDateTime searchStartTime,CheckStandardVO vo,BigDecimal num,Integer period){
|
|
|
+// do {
|
|
|
+ long days = DateUtils.until(searchStartTime,searchEndTime,ChronoUnit.DAYS);
|
|
|
+// LocalDateTime time = searchEndTime.minusDays(period);
|
|
|
+// if (time.isEqual(searchStartTime) || time.isBefore(searchStartTime)){
|
|
|
+// break;
|
|
|
+// }
|
|
|
+ long i = days/period;
|
|
|
+ num = new BigDecimal(i).add(num);
|
|
|
+// }while (true);
|
|
|
+ return num;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void deleteScrapSbCheckJobs() {
|
|
|
CheckJobDTO dto = new CheckJobDTO();
|