MrShi
2025-01-02 77d8f6ccb72cb64c29e77c39fcc8298781d008bb
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -61,11 +61,15 @@
                ||Objects.isNull(ywPatrolScheme.getStartDate())
                ||Objects.isNull(ywPatrolScheme.getEndDate())
                ||Objects.isNull(ywPatrolScheme.getCircleType())
                ||StringUtils.isBlank(ywPatrolScheme.getStartTime())
                ||StringUtils.isBlank(ywPatrolScheme.getEndTime())
                || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays()))
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(StringUtils.isBlank(ywPatrolScheme.getStartTime())){
            ywPatrolScheme.setStartTime("00:00:00");
        }
        if(StringUtils.isBlank(ywPatrolScheme.getEndTime())){
            ywPatrolScheme.setEndTime("23:59:59");
        }
        LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
        ywPatrolScheme.setCreateDate(new Date());
@@ -94,7 +98,9 @@
    public void createThreeDaysData(YwPatrolScheme ywPatrolScheme){
        //循环生成三天内的数据
        for (int i = 0; i < 3; i++) {
            Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i);
            Date schemeDate = DateUtil.getXDayAfterDate(
                    DateUtil.StringToDate(
                    DateUtil.getDate(new Date(),"yyyy-MM-dd"),"yyyy-MM-dd"),i);
            this.createTask(schemeDate,ywPatrolScheme);
        }
    }
@@ -105,8 +111,8 @@
     * @param ywPatrolScheme
     */
    public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){
        if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime()
            || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){
        if(!(ywPatrolScheme.getStartDate().getTime() <= schemeDate.getTime()
            && ywPatrolScheme.getEndDate().getTime() >= schemeDate.getTime()) ){
            return;
        }
        if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ONE)){
@@ -116,16 +122,15 @@
                return;
            }
            List<String> weeks = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
            String weekStr = weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).findFirst().get();
            if(StringUtils.isBlank(weekStr)){
            if(weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).collect(Collectors.toList()).size()<=Constants.ZERO){
                return;
            }
        }else{
        }else if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.TWO)){
            //每月根据日期生成 根据日期获取是哪天
            List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
            String dayStr = DateUtil.getFomartDate(schemeDate,"dd");
            Optional<String>  optional = days.stream().filter(i->StringUtils.equals(i,dayStr)).findAny();
            if(Objects.isNull(optional)){
            Integer dayStr = Integer.valueOf(DateUtil.getFomartDate(schemeDate,"dd"));
            if(days.stream().filter(i->i.equals(dayStr.toString())).collect(Collectors.toList()).size()<=Constants.ZERO){
                return;
            }
        }
@@ -285,11 +290,13 @@
                .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
                //查询有时段交集的数据
                .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
                        " t.START_DATE <= '"+Utils.Date.getStart(pageWrap.getModel().getEndDate())+"' and t.END_DATE >= '"+Utils.Date.getStart(pageWrap.getModel().getStartDate())+"' "
                )
//                .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
//                .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
              /*  .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
                        " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
                )*/
                .ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
                .le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
                .ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec()))
                .le(Objects.nonNull(model.getEndDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDateSec()))
                .orderByDesc(YwPatrolScheme::getCreateDate)
        ;
        IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);