|
|
@@ -8,6 +8,7 @@ import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.system.domain.TblDzbcMultiSitePath;
|
|
|
+import org.dromara.system.domain.TblDzbcPathScheduling;
|
|
|
import org.dromara.system.domain.TblDzbcPathSite;
|
|
|
import org.dromara.system.domain.TblDzbcSitePrice;
|
|
|
import org.dromara.system.domain.bo.TblDzbcMultiSitePathBo;
|
|
|
@@ -15,6 +16,7 @@ import org.dromara.system.domain.vo.TblDzbcMultiSitePathVo;
|
|
|
import org.dromara.system.domain.vo.TblDzbcPathSiteVo;
|
|
|
import org.dromara.system.domain.vo.TblDzbcSitePriceVo;
|
|
|
import org.dromara.system.mapper.TblDzbcMultiSitePathMapper;
|
|
|
+import org.dromara.system.mapper.TblDzbcPathSchedulingMapper;
|
|
|
import org.dromara.system.mapper.TblDzbcPathSiteMapper;
|
|
|
import org.dromara.system.mapper.TblDzbcSitePriceMapper;
|
|
|
import org.dromara.system.service.ITblDzbcMultiSitePathService;
|
|
|
@@ -32,6 +34,7 @@ public class TblDzbcMultiSitePathServiceImpl implements ITblDzbcMultiSitePathSer
|
|
|
private final TblDzbcMultiSitePathMapper baseMapper;
|
|
|
private final TblDzbcPathSiteMapper pathSiteMapper;
|
|
|
private final TblDzbcSitePriceMapper sitePriceMapper;
|
|
|
+ private final TblDzbcPathSchedulingMapper schedulingMapper;
|
|
|
|
|
|
@Override
|
|
|
public TblDzbcMultiSitePathVo queryById(Long id) {
|
|
|
@@ -39,7 +42,7 @@ public class TblDzbcMultiSitePathServiceImpl implements ITblDzbcMultiSitePathSer
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<TblDzbcMultiSitePathVo> queryBySiteId(Long siteId) {
|
|
|
+ public List<TblDzbcMultiSitePathVo> queryBySiteId(Long siteId, Integer hasSchedul) {
|
|
|
// 1. 查找包含该站点的所有路线ID
|
|
|
LambdaQueryWrapper<TblDzbcPathSite> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.eq(TblDzbcPathSite::getSiteId, siteId);
|
|
|
@@ -54,7 +57,24 @@ public class TblDzbcMultiSitePathServiceImpl implements ITblDzbcMultiSitePathSer
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- // 2. 根据路线ID查询路线信息
|
|
|
+ // 2. 如果需要过滤有排班的路线
|
|
|
+ if (hasSchedul != null && hasSchedul == 1) {
|
|
|
+ // 查询有未过期排班的多站点路线ID
|
|
|
+ LambdaQueryWrapper<TblDzbcPathScheduling> schedulLqw = Wrappers.lambdaQuery();
|
|
|
+ schedulLqw.in(TblDzbcPathScheduling::getPathId, pathIds);
|
|
|
+ schedulLqw.ge(TblDzbcPathScheduling::getMdate, new java.util.Date());
|
|
|
+ schedulLqw.apply("ext2->'$.type' = 2");
|
|
|
+ List<TblDzbcPathScheduling> schedulList = schedulingMapper.selectList(schedulLqw);
|
|
|
+ if (schedulList == null || schedulList.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ pathIds = schedulList.stream()
|
|
|
+ .map(TblDzbcPathScheduling::getPathId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 根据路线ID查询路线信息
|
|
|
return baseMapper.selectVoBatchIds(pathIds);
|
|
|
}
|
|
|
|
|
|
@@ -112,6 +132,11 @@ public class TblDzbcMultiSitePathServiceImpl implements ITblDzbcMultiSitePathSer
|
|
|
LambdaQueryWrapper<TblDzbcMultiSitePath> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.like(org.dromara.common.core.utils.StringUtils.isNotBlank(bo.getName()), TblDzbcMultiSitePath::getName, bo.getName());
|
|
|
lqw.eq(bo.getStatus() != null, TblDzbcMultiSitePath::getStatus, bo.getStatus());
|
|
|
+ // hasSchedul: 1-只返回有未过期排班的路线 0或不传-返回全部
|
|
|
+ // type=2 表示多站点路线
|
|
|
+ if (bo.getHasSchedul() != null && bo.getHasSchedul() == 1) {
|
|
|
+ lqw.apply("id IN (SELECT DISTINCT path_id FROM tbl_dzbc_path_scheduling WHERE path_id IS NOT NULL AND mdate >= CURDATE() AND ext2->'$.type' = 2)");
|
|
|
+ }
|
|
|
lqw.orderByDesc(TblDzbcMultiSitePath::getId);
|
|
|
return lqw;
|
|
|
}
|