jiangping
2024-12-23 f3ce3a1f136f359ae872a223aada9e0d23afa9a0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -1,21 +1,32 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwPatrolTaskMapper;
import com.doumee.dao.business.model.YwDeviceRecord;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.doumee.dao.business.model.YwPatrolTask;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolTaskService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 运维巡检任务信息表Service实现
@@ -70,7 +81,24 @@
    @Override
    public YwPatrolTask findById(Integer id) {
        return ywPatrolTaskMapper.selectById(id);
        YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectJoinOne(YwPatrolTask.class,new MPJLambdaWrapper<YwPatrolTask>()
                .selectAll(YwPatrolTask.class)
                .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
                .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
                .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
                .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id  and ytr.ISDELETED = 0  ) ",YwPatrolTask::getPatrolNum)
                .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id  and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
                .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
                .eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
                .eq(YwPatrolTask::getId,id)
                .last(" limit 1 "))
        ;
        if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.TWO) &&
                ywPatrolTask.getEndDate().getTime()<System.currentTimeMillis()){
            ywPatrolTask.setStatus(Constants.TWO);
        }
        return ywPatrolTask;
    }
    @Override
@@ -84,82 +112,56 @@
        QueryWrapper<YwPatrolTask> wrapper = new QueryWrapper<>(ywPatrolTask);
        return ywPatrolTaskMapper.selectList(wrapper);
    }
    @Override
    public void taskCancel(Integer id, LoginUserInfo loginUserInfo) {
        YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(id);
        if(Objects.isNull(ywPatrolTask)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"状态已流转");
        }
        ywPatrolTask.setStatus(Constants.FOUR);
        ywPatrolTask.setEditDate(new Date());
        ywPatrolTask.setEditor(loginUserInfo.getId());
        ywPatrolTaskMapper.updateById(ywPatrolTask);
    }
  
    @Override
    public PageData<YwPatrolTask> findPage(PageWrap<YwPatrolTask> pageWrap) {
        IPage<YwPatrolTask> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwPatrolTask> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwPatrolTask> queryWrapper = new MPJLambdaWrapper<YwPatrolTask>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwPatrolTask::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwPatrolTask::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getSchemeId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getSchemeId, pageWrap.getModel().getSchemeId());
        }
        if (pageWrap.getModel().getPointId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getPointId, pageWrap.getModel().getPointId());
        }
        if (pageWrap.getModel().getDealUserId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealUserId, pageWrap.getModel().getDealUserId());
        }
        if (pageWrap.getModel().getDealDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
            queryWrapper.lambda().le(YwPatrolTask::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
        }
        if (pageWrap.getModel().getDealInfo() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealInfo, pageWrap.getModel().getDealInfo());
        }
        if (pageWrap.getModel().getCircleType() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getCircleType, pageWrap.getModel().getCircleType());
        }
        if (pageWrap.getModel().getStartDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()));
            queryWrapper.lambda().le(YwPatrolTask::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate()));
        }
        if (pageWrap.getModel().getEndDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()));
            queryWrapper.lambda().le(YwPatrolTask::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate()));
        }
        if (pageWrap.getModel().getDealStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealStatus, pageWrap.getModel().getDealStatus());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        YwPatrolTask model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolTask.class)
                .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
                .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
                .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
                .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id  and ytr.ISDELETED = 0  ) ",YwPatrolTask::getPatrolNum)
                .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id  and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
                .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
                .eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
                .eq(Objects.nonNull(model.getStatus()) && !Constants.equalsInteger(model.getStatus(),Constants.TWO),YwPatrolTask::getStatus, model.getStatus())
                .eq(Objects.nonNull(model.getDealUserId()),YwPatrolScheme::getUserIds, model.getDealUserId())
                .apply(Objects.nonNull(model.getStatus()) && Constants.equalsInteger(model.getStatus(),Constants.TWO)," t.status = 1 and t.END_DATE > now() ")
                .apply(StringUtils.isNotBlank(model.getQueryStatus())," find_in_set(t.status ,'"+model.getQueryStatus()+"') ")
                .like(StringUtils.isNotBlank(model.getPlanTitle()),YwPatrolScheme::getTitle,model.getPlanTitle())
                .ge(Objects.nonNull(model.getStartDate()), YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
                .le(Objects.nonNull(model.getEndDate()),YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
                .orderByDesc(YwPatrolTask::getId)
        ;
        IPage<YwPatrolTask> iPage = ywPatrolTaskMapper.selectJoinPage(page,YwPatrolTask.class,queryWrapper);
        for (YwPatrolTask ywPatrolTask:iPage.getRecords()) {
            if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.TWO) &&
             ywPatrolTask.getEndDate().getTime()<System.currentTimeMillis()){
                ywPatrolTask.setStatus(Constants.TWO);
            }
        }
        return PageData.from(ywPatrolTaskMapper.selectPage(page, queryWrapper));
        return PageData.from(iPage);
    }
    @Override