package com.doumee.service.business.impl; 
 | 
  
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
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.DateUtil; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.dao.business.*; 
 | 
import com.doumee.dao.business.model.*; 
 | 
import com.doumee.dao.system.MultifileMapper; 
 | 
import com.doumee.dao.system.model.Multifile; 
 | 
import com.doumee.dao.system.model.SystemUser; 
 | 
import com.doumee.service.business.YwPatrolTaskRecordService; 
 | 
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 org.apache.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.util.CollectionUtils; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * 运维巡检任务 - 巡检点信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2024/11/21 18:11 
 | 
 */ 
 | 
@Service 
 | 
public class YwPatrolTaskRecordServiceImpl implements YwPatrolTaskRecordService { 
 | 
  
 | 
    @Autowired 
 | 
    private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private MultifileMapper multifileMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private YwDeviceMapper ywDeviceMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private YwPatrolPointMapper ywPatrolPointMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    @Autowired 
 | 
    private YwPatrolTaskMapper ywPatrolTaskMapper; 
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    public Integer create(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecord); 
 | 
        return ywPatrolTaskRecord.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(Integer id) { 
 | 
        ywPatrolTaskRecordMapper.deleteById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        UpdateWrapper<YwPatrolTaskRecord> deleteWrapper = new UpdateWrapper<>(ywPatrolTaskRecord); 
 | 
        ywPatrolTaskRecordMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<Integer> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        ywPatrolTaskRecordMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        ywPatrolTaskRecordMapper.updateById(ywPatrolTaskRecord); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<YwPatrolTaskRecord> ywPatrolTaskRecords) { 
 | 
        if (CollectionUtils.isEmpty(ywPatrolTaskRecords)) { 
 | 
            return; 
 | 
        } 
 | 
        for (YwPatrolTaskRecord ywPatrolTaskRecord: ywPatrolTaskRecords) { 
 | 
            this.updateById(ywPatrolTaskRecord); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public YwPatrolTaskRecord findById(Integer id) { 
 | 
        return ywPatrolTaskRecordMapper.selectById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public YwPatrolTaskRecord findOne(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord); 
 | 
        return ywPatrolTaskRecordMapper.selectOne(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<YwPatrolTaskRecord> findList(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord); 
 | 
        return ywPatrolTaskRecordMapper.selectList(wrapper); 
 | 
    } 
 | 
   
 | 
    @Override 
 | 
    public PageData<YwPatrolTaskRecord> findPage(PageWrap<YwPatrolTaskRecord> pageWrap) { 
 | 
        IPage<YwPatrolTaskRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        MPJLambdaWrapper<YwPatrolTaskRecord> queryWrapper = new MPJLambdaWrapper<YwPatrolTaskRecord>(); 
 | 
        Utils.MP.blankToNull(pageWrap.getModel()); 
 | 
        YwPatrolTaskRecord model = pageWrap.getModel(); 
 | 
        queryWrapper.selectAll(YwPatrolTaskRecord.class) 
 | 
                .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) 
 | 
                .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) 
 | 
                .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) 
 | 
                .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) 
 | 
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) 
 | 
                .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) 
 | 
                .eq(Objects.nonNull(model) && Objects.nonNull(model.getTaskId()),YwPatrolTaskRecord::getTaskId, model.getTaskId()) 
 | 
                .eq(Objects.nonNull(model) && Objects.nonNull(model.getDealUserId()),YwPatrolTaskRecord::getDealUserId, model.getDealUserId()) 
 | 
                .like(StringUtils.isNotBlank(model.getPointName()),YwPatrolPoint::getName,model.getPointName()) 
 | 
                .eq(Objects.nonNull(model) && Objects.nonNull(model.getStatus()) , YwPatrolTaskRecord::getStatus,model.getStatus()) 
 | 
                .orderByDesc(YwPatrolScheme::getCreateDate) 
 | 
        ; 
 | 
        IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper);  
 | 
        return PageData.from(iPage); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord); 
 | 
        return ywPatrolTaskRecordMapper.selectCount(wrapper); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {Exception.class,BusinessException.class}) 
 | 
    public void patrolData(YwPatrolTaskRecord ywPatrolTaskRecord) { 
 | 
        if(Objects.isNull(ywPatrolTaskRecord) 
 | 
        || Objects.isNull(ywPatrolTaskRecord.getId()) 
 | 
        ){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        LoginUserInfo loginUserInfo = ywPatrolTaskRecord.getLoginUserInfo(); 
 | 
        YwPatrolTaskRecord model = ywPatrolTaskRecordMapper.selectById(ywPatrolTaskRecord.getId()); 
 | 
        if(Objects.isNull(model)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY); 
 | 
        } 
 | 
        if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转"); 
 | 
        } 
 | 
        YwPatrolPoint ywPatrolPoint = ywPatrolPointMapper.selectById(model.getPointId()); 
 | 
        if(Objects.isNull(ywPatrolPoint)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY); 
 | 
        } 
 | 
        YwDevice ywDevice = ywDeviceMapper.selectById(ywPatrolPoint.getDeviceId()); 
 | 
        if(Objects.isNull(ywDevice)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY); 
 | 
        } 
 | 
        YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId()); 
 | 
        if(Objects.isNull(ywPatrolTask)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY); 
 | 
        } 
 | 
        if(ywPatrolTask.getStartDate().getTime()>System.currentTimeMillis()){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未到巡检时间无法进行该操作"); 
 | 
        } 
 | 
        ywPatrolTaskRecordMapper.update(null,new UpdateWrapper<YwPatrolTaskRecord>().lambda() 
 | 
                .set(YwPatrolTaskRecord::getDealStatus,ywDevice.getStatus()) 
 | 
                .set(YwPatrolTaskRecord::getEditor,loginUserInfo.getId()) 
 | 
                .set(YwPatrolTaskRecord::getEditDate, DateUtil.getCurrDateTime()) 
 | 
                .set(YwPatrolTaskRecord::getDealDate, DateUtil.getCurrDateTime()) 
 | 
                .set(YwPatrolTaskRecord::getDealUserId,loginUserInfo.getId()) 
 | 
                .set(YwPatrolTaskRecord::getStatus,Constants.ONE) 
 | 
                .set(YwPatrolTaskRecord::getDealInfo, ywPatrolTaskRecord.getDealInfo()) 
 | 
                .eq(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId())); 
 | 
  
 | 
        if(ywPatrolTaskRecordMapper.selectCount(new QueryWrapper<YwPatrolTaskRecord>().lambda() 
 | 
                .eq(YwPatrolTaskRecord::getTaskId,ywPatrolTask.getId()) 
 | 
                .ne(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId()))==Constants.ZERO){ 
 | 
            ywPatrolTask.setStatus(Constants.THREE); 
 | 
        }else{ 
 | 
            ywPatrolTask.setStatus(Constants.ONE); 
 | 
        } 
 | 
        //查询是否存在其他未 
 | 
       ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda().eq(YwPatrolTask::getId,ywPatrolTask.getId()) 
 | 
               .set(YwPatrolTask::getStatus,ywPatrolTask.getStatus()) 
 | 
               .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime()) 
 | 
               .set(YwPatrolTask::getEditor,loginUserInfo.getId()) 
 | 
       ); 
 | 
        //附件数据 
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolTaskRecord.getMultifileList())){ 
 | 
            for (Multifile multifile:ywPatrolTaskRecord.getMultifileList()) { 
 | 
                if(Objects.isNull(multifile) 
 | 
                        || StringUtils.isBlank(multifile.getFileurl()) 
 | 
                ){ 
 | 
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件信息错误"); 
 | 
                } 
 | 
                multifile.setCreator(loginUserInfo.getId()); 
 | 
                multifile.setCreateDate(new Date()); 
 | 
                multifile.setIsdeleted(Constants.ZERO); 
 | 
                multifile.setObjType(Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey()); 
 | 
                multifile.setObjId(ywPatrolTaskRecord.getId()); 
 | 
            } 
 | 
            multifileMapper.insert(ywPatrolTaskRecord.getMultifileList()); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    @Transactional(rollbackFor = {Exception.class,BusinessException.class}) 
 | 
    public YwPatrolTaskRecord getPointRecordByCode(YwPatrolTaskRecord bean) { 
 | 
        if(Objects.isNull(bean) 
 | 
        || Objects.isNull(bean.getTaskId()) 
 | 
        || StringUtils.isBlank(bean.getPointCode())){ 
 | 
            throw new BusinessException(ResponseStatus.BAD_REQUEST); 
 | 
        } 
 | 
        YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() 
 | 
                .selectAll(YwPatrolTaskRecord.class) 
 | 
                .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) 
 | 
                .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) 
 | 
                .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) 
 | 
                .selectAs(Company::getName,YwPatrolTaskRecord::getCompanyName) 
 | 
                .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) 
 | 
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) 
 | 
                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) 
 | 
                .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) 
 | 
                .eq(YwPatrolPoint::getCode,bean.getPointCode()) 
 | 
                .eq(YwPatrolTaskRecord::getTaskId,bean.getTaskId()) 
 | 
                .orderByDesc(YwPatrolScheme::getCreateDate) 
 | 
                .last(" limit 1 ") 
 | 
        ); 
 | 
        if(Objects.isNull(ywPatrolTaskRecord)){ 
 | 
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未匹配到巡检点!"); 
 | 
        } 
 | 
        //附件数据 
 | 
        List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() 
 | 
                .selectAll(Multifile.class) 
 | 
                .selectAs(SystemUser::getRealname,Multifile::getUserName) 
 | 
                .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) 
 | 
                .eq(Multifile::getObjId,ywPatrolTaskRecord.getId()) 
 | 
                .eq(Multifile::getIsdeleted,Constants.ZERO) 
 | 
                .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey())); 
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ 
 | 
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() 
 | 
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); 
 | 
            for (Multifile multifile:multifileList) { 
 | 
                if(StringUtils.isNotBlank(multifile.getFileurl())){ 
 | 
                    multifile.setFileurlFull(path + multifile.getFileurl()); 
 | 
                } 
 | 
            } 
 | 
            ywPatrolTaskRecord.setMultifileList(multifileList); 
 | 
        } 
 | 
  
 | 
        return ywPatrolTaskRecord; 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    public YwPatrolTaskRecord getDetail(Integer id) { 
 | 
  
 | 
        YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() 
 | 
                .selectAll(YwPatrolTaskRecord.class) 
 | 
                .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) 
 | 
                .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) 
 | 
                .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) 
 | 
                .selectAs(Company::getName,YwPatrolTaskRecord::getCompanyName) 
 | 
                .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) 
 | 
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) 
 | 
                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) 
 | 
                .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) 
 | 
                .eq(YwPatrolTaskRecord::getId,id) 
 | 
                .orderByDesc(YwPatrolScheme::getCreateDate) 
 | 
        ); 
 | 
        //附件数据 
 | 
        List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() 
 | 
                .selectAll(Multifile.class) 
 | 
                .selectAs(SystemUser::getRealname,Multifile::getUserName) 
 | 
                .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) 
 | 
                .eq(Multifile::getObjId,id) 
 | 
                .eq(Multifile::getIsdeleted,Constants.ZERO) 
 | 
                .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey())); 
 | 
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ 
 | 
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() 
 | 
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); 
 | 
            for (Multifile multifile:multifileList) { 
 | 
                if(StringUtils.isNotBlank(multifile.getFileurl())){ 
 | 
                    multifile.setFileurlFull(path + multifile.getFileurl()); 
 | 
                } 
 | 
            } 
 | 
            ywPatrolTaskRecord.setMultifileList(multifileList); 
 | 
        } 
 | 
        return ywPatrolTaskRecord; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |