diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/domain/vo/MesPlanRecordVo.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/domain/vo/MesPlanRecordVo.java index e8c404b..3aa3a06 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/domain/vo/MesPlanRecordVo.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/domain/vo/MesPlanRecordVo.java @@ -53,6 +53,8 @@ public class MesPlanRecordVo implements Serializable { private String ganttColor; + private String flag; + private Date createTime; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/mapper/MesPlanRecordMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/mapper/MesPlanRecordMapper.java index d385fee..5ff627c 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/mapper/MesPlanRecordMapper.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/mapper/MesPlanRecordMapper.java @@ -5,6 +5,8 @@ import com.ruoyi.mts.domain.vo.MesPlanRecordVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 生产计划明细日期记录Mapper接口 * @@ -14,4 +16,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MesPlanRecordMapper extends BaseMapperPlus { + List selectListByMainId(Long mainId); + } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/IMesPlanRecordService.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/IMesPlanRecordService.java index 297c320..c1497ad 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/IMesPlanRecordService.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/IMesPlanRecordService.java @@ -1,10 +1,9 @@ package com.ruoyi.mts.service; -import com.ruoyi.mts.domain.MesPlanRecord; -import com.ruoyi.mts.domain.vo.MesPlanRecordVo; -import com.ruoyi.mts.domain.bo.MesPlanRecordBo; -import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.mts.domain.bo.MesPlanRecordBo; +import com.ruoyi.mts.domain.vo.MesPlanRecordVo; import java.util.Collection; import java.util.List; @@ -48,4 +47,12 @@ public interface IMesPlanRecordService { * 校验并批量删除生产计划明细日期记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据主计划id查询计划所有记录 + * + * @param id + * @return + */ + List queryListByMainId(Long id); } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java index 8566573..c3e9f30 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanDetailServiceImpl.java @@ -20,6 +20,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.*; +import java.util.stream.Collectors; /** * 生产计划明细Service业务层处理 @@ -49,49 +50,54 @@ public class MesPlanDetailServiceImpl implements IMesPlanDetailService { */ @Override public List queryList(MesPlanDetailBo bo) { +// 查询所有父任务 bo.setParentId(0L); LambdaQueryWrapper parentQuery = buildQueryWrapper(bo); List parentList = baseMapper.selectVoList(parentQuery); - - //LambdaQueryWrapper childrenQuery = Wrappers.lambdaQuery(MesPlanDetail.class).ne(TreeEntity::getParentId, 0).orderByAsc(MesPlanDetail::getId); - //List childrenList = baseMapper.selectVoList(childrenQuery); - - //Map> childrenCollect = childrenList.stream().collect(Collectors.groupingBy(MesPlanDetailVo::getParentId, Collectors.toList())); +// 数据处理 + if (CollUtil.isEmpty(parentList)) { + return new ArrayList<>(0); + } + Long mainId = parentList.get(0).getMainId(); +// 查询所有子任务,并根据父任务id分组 + LambdaQueryWrapper childrenQuery = Wrappers.lambdaQuery(MesPlanDetail.class).ne(TreeEntity::getParentId, 0).orderByAsc(MesPlanDetail::getId); + List childrenList = baseMapper.selectVoList(childrenQuery); + Map> childrenCollect = childrenList.stream().collect(Collectors.groupingBy(MesPlanDetailVo::getParentId, Collectors.toList())); +// 查询任务下所有记录,并根据任务id分组 + List recordList = recordService.queryListByMainId(mainId); + Map> recordCollect = recordList.stream().collect(Collectors.groupingBy(MesPlanRecordVo::getDetailId, Collectors.toList())); +// 父任务合并子任务 LinkedList res = new LinkedList<>(); for (int i = 0; i < parentList.size(); i++) { MesPlanDetailVo vo = parentList.get(i); res.add(vo); - LambdaQueryWrapper voLqw = Wrappers.lambdaQuery(MesPlanDetail.class).eq(TreeEntity::getParentId, vo.getId()).orderByAsc(MesPlanDetail::getId); - List children = baseMapper.selectVoList(voLqw); - //List children = childrenCollect.get(vo.getId()); +// LambdaQueryWrapper voLqw = Wrappers.lambdaQuery(MesPlanDetail.class).eq(TreeEntity::getParentId, vo.getId()).orderByAsc(MesPlanDetail::getId); +// List children = baseMapper.selectVoList(voLqw); + List children = childrenCollect.get(vo.getId()); if (CollUtil.isNotEmpty(children)) { res.addAll(i + 1, children); - } } +// 任务添加记录信息 int size = res.size(); List data = new ArrayList<>(size << 2); for (int i = 0; i < size; i++) { - //默认第一个为计划数据 +// 默认第一个为计划数据 MesPlanDetailVo planVo = res.get(i); Long id = planVo.getId(); + List detailRecord = recordCollect.get(id); + Map> collect = detailRecord.stream().collect(Collectors.groupingBy(MesPlanRecordVo::getFlag, Collectors.toList())); planVo.setFlag("plan"); - MesPlanRecordBo record = new MesPlanRecordBo(); - record.setDetailId(id); - record.setFlag("plan"); - List mesPlanRecordVos = recordService.queryList(record); - planVo.setRecord(mesPlanRecordVos); + planVo.setRecord(collect.get("plan")); data.add(planVo); - //处理实际数据 +// 处理实际数据 MesPlanDetailVo actualVo = new MesPlanDetailVo(); actualVo.setId(planVo.getId()); actualVo.setName(planVo.getName()); actualVo.setParentId(planVo.getParentId()); actualVo.setMainId(planVo.getMainId()); actualVo.setFlag("actual"); - record.setFlag("actual"); - mesPlanRecordVos = recordService.queryList(record); - actualVo.setRecord(mesPlanRecordVos); + actualVo.setRecord(collect.get("actual")); data.add(actualVo); } return data; diff --git a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanRecordServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanRecordServiceImpl.java index 904c5d5..c966944 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanRecordServiceImpl.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/mts/service/impl/MesPlanRecordServiceImpl.java @@ -129,4 +129,15 @@ public class MesPlanRecordServiceImpl implements IMesPlanRecordService { } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 根据主计划id查询计划所有记录 + * + * @param id + * @return + */ + @Override + public List queryListByMainId(Long id) { + return baseMapper.selectListByMainId(id); + } } diff --git a/ruoyi-demo/src/main/resources/mapper/mts/MesPlanRecordMapper.xml b/ruoyi-demo/src/main/resources/mapper/mts/MesPlanRecordMapper.xml index 89432cc..83ee106 100644 --- a/ruoyi-demo/src/main/resources/mapper/mts/MesPlanRecordMapper.xml +++ b/ruoyi-demo/src/main/resources/mapper/mts/MesPlanRecordMapper.xml @@ -9,8 +9,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - @@ -19,5 +17,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - +