aix
2024-07-09 2aaaaf4598b869085ae35871de018cd35847c232
src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java
@@ -1,12 +1,14 @@
package com.dji.sample.patches.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dji.sample.common.model.Pagination;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.media.dao.IFileMapper;
import com.dji.sample.media.dao.IMarkMapper;
import com.dji.sample.media.model.MediaFileEntity;
import com.dji.sample.media.model.MediaFileMarkEntity;
import com.dji.sample.patches.dao.GetPatchesMapper;
import com.dji.sample.patches.model.Param.PatchesParam;
import com.dji.sample.patches.model.entity.LotInfo;
@@ -17,7 +19,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@@ -26,6 +27,8 @@
    private GetPatchesMapper mapper;
    @Autowired
    private IFileMapper fileMapper;
    @Autowired
    private IMarkMapper markMapper;
    /**
     * 分页获取数据的接口实现。
@@ -88,48 +91,43 @@
        return mapper.deleteById(id);
    }
    /**
     * 根据条件获取照片的分页数据
     *
     * @param param 包含分页信息和查询条件的参数对象
     * @param dkbh  查询条件中带有地块编号关键字,用于文件名的模糊搜索
     * @return 返回照片的分页数据,包括分页信息和照片实体列表
     */
    @Override
    public PaginationData<MediaFileEntity> getPhoto(PatchesParam param, String dkbh) {
        Page<MediaFileEntity> page = fileMapper.selectPage(new Page<MediaFileEntity>(param.getPage(), param.getPageSize()),
                new LambdaQueryWrapper<MediaFileEntity>().like(MediaFileEntity::getFileName, "%" + dkbh + "~" + "%"));
        List<MediaFileEntity> records = page.getRecords()
                .stream()
                .collect(Collectors.toList());
        return new PaginationData<MediaFileEntity>(records, new Pagination(page));
    public PaginationData getPhoto(PatchesParam param, String dkbh) {
        LotInfo lotInfo=getLotinfoToDb(dkbh);
        int statue=lotInfo.getIsPush();
        if (statue==1){
            Page<MediaFileMarkEntity> page = markMapper.selectPage(new Page<MediaFileMarkEntity>(param.getPage(), param.getPageSize()),
                    new LambdaQueryWrapper<MediaFileMarkEntity>().like(MediaFileMarkEntity::getFileName, "%" + dkbh + "~" + "%"));
            List<MediaFileMarkEntity> records = page.getRecords()
                    .stream()
                    .collect(Collectors.toList());
            return new PaginationData<MediaFileMarkEntity>(records, new Pagination(page));}
        else {
            Page<MediaFileEntity> page = fileMapper.selectPage(new Page<MediaFileEntity>(param.getPage(), param.getPageSize()),
                    new LambdaQueryWrapper<MediaFileEntity>().like(MediaFileEntity::getFileName, "%" + dkbh + "~" + "%"));
            List<MediaFileEntity> records = page.getRecords()
                    .stream()
                    .collect(Collectors.toList());
            return new PaginationData<MediaFileEntity>(records, new Pagination(page));}
    }
    /**
     * 根据条件获取照片的分页数据
     *
     * @param workspaceId 工作空间的ID,用于指定查询的工作空间
     * @param dkbh        查询条件中带有地块编号关键字,用于文件名的模糊搜索
     * @return 返回照片的分页数据,包括分页信息和照片实体列表
     */
    public List<MediaFileEntity> listPohto(String dkbh, String workspaceId) {
        return fileMapper.selectList(new LambdaQueryWrapper<MediaFileEntity>().like(MediaFileEntity::getFileName, "%" + dkbh + "%")
                .eq(MediaFileEntity::getWorkspaceId, workspaceId));
    }
    /**
     * 根据地块编号和工作空间ID获取地块信息。
     *
     * @param dkbh        地块编号,用于查询特定定单的地块信息。
     * @param workspaceId 工作空间ID,用于查询属于特定工作空间的地块信息。
     * @return 返回匹配给定地块编号和工作空间ID的地块信息对象。如果找不到匹配的记录,则返回null。
     */
    public LotInfo getLotinfo(String dkbh, String workspaceId) {
        return mapper.selectOne(new LambdaQueryWrapper<LotInfo>().eq(LotInfo::getDkbh, dkbh)
                .eq(LotInfo::getWorkspaceId, workspaceId));
    }
    public void patchesPushed(String taskId, String dkbh, String workspaceId) {
        LambdaUpdateWrapper<LotInfo> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.set(LotInfo::getIsPush, 1)
                .eq(LotInfo::getWorkspaceId, workspaceId)
                .eq(LotInfo::getDkbh, dkbh)
                .eq(LotInfo::getTaskId, taskId);
        mapper.update(null, updateWrapper);
    }
    public LotInfo getLotinfoToDb(String dkbh) {
        return mapper.selectOne(new LambdaQueryWrapper<LotInfo>().eq(LotInfo::getDkbh, dkbh));
    }