jiangping
2024-11-27 bc87b51e20a0adf0badf2033ede93cafeb5fc147
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -26,6 +26,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
@@ -51,6 +52,7 @@
    private RedisTemplate<String, Object> redisTemplate;
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public Integer create(YwPatrolScheme ywPatrolScheme) {
        if(Objects.isNull(ywPatrolScheme)
        || StringUtils.isBlank(ywPatrolScheme.getTitle())
@@ -73,7 +75,7 @@
        ywPatrolScheme.setCode(this.getNextCode());
        ywPatrolSchemeMapper.insert(ywPatrolScheme);
        this.createThreeDaysData(ywPatrolScheme,loginUserInfo);
        this.createThreeDaysData(ywPatrolScheme);
        return ywPatrolScheme.getId();
    }
@@ -89,11 +91,11 @@
    public void createThreeDaysData(YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){
    public void createThreeDaysData(YwPatrolScheme ywPatrolScheme){
        //循环生成三天内的数据
        for (int i = 0; i < 3; i++) {
            Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i);
            this.createTask(schemeDate,ywPatrolScheme,loginUserInfo);
            this.createTask(schemeDate,ywPatrolScheme);
        }
    }
@@ -102,7 +104,7 @@
     * @param schemeDate
     * @param ywPatrolScheme
     */
    public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){
    public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){
        if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime()
            || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){
            return;
@@ -122,9 +124,10 @@
            //每月根据日期生成 根据日期获取是哪天
            List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
            String dayStr = DateUtil.getFomartDate(schemeDate,"dd");
            if(Objects.isNull(days.stream().filter(i->StringUtils.equals(i,dayStr)).findFirst().get())){
            Optional<String>  optional = days.stream().filter(i->StringUtils.equals(i,dayStr)).findAny();
            if(Objects.isNull(optional)){
                return;
            };
            }
        }
        String schemeDateStr = DateUtil.getDate(schemeDate,"yyyy-MM-dd");
        //查询当天是否生成过数据
@@ -150,7 +153,7 @@
        String nextCode = StringUtils.leftPad(codeSn.toString(),3,"0");
        YwPatrolTask ywPatrolTask = new YwPatrolTask();
        ywPatrolTask.setCreateDate(new Date());
        ywPatrolTask.setCreator(loginUserInfo.getId());
        ywPatrolTask.setCreator(ywPatrolScheme.getCreator());
        ywPatrolTask.setIsdeleted(Constants.ZERO);
        ywPatrolTask.setStatus(Constants.patrolTaskStatus.waitStart);
        ywPatrolTask.setSchemeId(ywPatrolScheme.getId()); 
@@ -167,7 +170,7 @@
            //生成任务数据
            YwPatrolTaskRecord ywPatrolTaskRecord = new YwPatrolTaskRecord();
            ywPatrolTaskRecord.setCreateDate(new Date());
            ywPatrolTaskRecord.setCreator(loginUserInfo.getId());
            ywPatrolTaskRecord.setCreator(ywPatrolScheme.getCreator());
            ywPatrolTaskRecord.setIsdeleted(Constants.ZERO);
            ywPatrolTaskRecord.setStatus(Constants.ZERO);
            ywPatrolTaskRecord.setSchemeId(ywPatrolScheme.getId());
@@ -237,7 +240,7 @@
        ywPatrolScheme.setEditor(loginUserInfo.getId());
        ywPatrolSchemeMapper.updateById(ywPatrolScheme);
        if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){
            this.createThreeDaysData(ywPatrolScheme,loginUserInfo);
            this.createThreeDaysData(ywPatrolScheme);
        }
    }
@@ -281,8 +284,12 @@
                .leftJoin(" system_user t2 on t.creator =  t2.id  ")
                .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
                .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 <= '"+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()))
                .orderByDesc(YwPatrolScheme::getCreateDate)
        ;
        IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);