修改 出入库分页查询, 按日期倒叙

This commit is contained in:
furongxin 2024-05-23 15:29:57 +08:00
parent 44b3cd0341
commit 2500704516
3 changed files with 13 additions and 15 deletions

View File

@ -11,9 +11,6 @@ import java.util.List;
@Data
public class FactoryDataDetailRespVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000078")
private Long factoryId;

View File

@ -191,23 +191,24 @@ public class FactoryDataServiceImpl implements FactoryDataService {
groupedByFactoryIdAndDate.forEach((factoryId, dateMap) -> {
dateMap.forEach((date, infoList) -> {
//按日期倒叙 并遍历
dateMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
.forEach((date) -> {
FactoryDataDetailRespVO dataDetailRespVO = new FactoryDataDetailRespVO();
dataDetailRespVO.setId(respVOS.get(0).getId() + 1);
dataDetailRespVO.setFactoryId(factoryId);
dataDetailRespVO.setFactoryName(factoryMap.get(factoryId).getName());
dataDetailRespVO.setDate(date);
dataDetailRespVO.setDate(date.getKey());
//设置入库总数
dataDetailRespVO.setInTotalNum(infoList.stream().filter(info -> info.getInNum() != null).mapToInt(FactoryDataInfoRespVO::getInNum).sum());
dataDetailRespVO.setInTotalNum(date.getValue().stream().filter(info -> info.getInNum() != null).mapToInt(FactoryDataInfoRespVO::getInNum).sum());
//设置入库平方数
dataDetailRespVO.setSquareNum(infoList.stream().map(FactoryDataInfoRespVO::getSquareNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
dataDetailRespVO.setSquareNum(date.getValue().stream().map(FactoryDataInfoRespVO::getSquareNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
//设置出库总数
dataDetailRespVO.setOutTotalNum(infoDatas.stream().filter(info -> info.getOutNum() != null).mapToInt(FactoryDataInfoRespVO::getOutNum).sum());
//设置 出入库破损总数
dataDetailRespVO.setDamageNum(infoDatas.stream().filter(info -> info.getInDamageNum() != null).mapToInt(info -> info.getInDamageNum() + info.getOutDamageNum()).sum());
dataDetailRespVO.setItems(infoList);
dataDetailRespVO.setItems(date.getValue());
//设置 可编辑状态
dataDetailRespVO.setIsEdit(1);

View File

@ -11,13 +11,12 @@
<select id="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataDetailRespVO">
SELECT
id,
factory_id,
date,
square_num,
damage_num,
CASE WHEN data_type = 1 THEN total_num END AS outTotalNum,
CASE WHEN data_type = 2 THEN total_num END AS inTotalNum
SUM(CASE WHEN data_type = 2 THEN total_num END) AS inTotalNum,
SUM(CASE WHEN data_type = 1 THEN square_num END) AS squareNum,
SUM(CASE WHEN data_type = 1 THEN total_num END) AS outTotalNum,
SUM(CASE WHEN data_type = 1 or data_type = 2 THEN damage_num END) AS damageNum
FROM
sf_factory_data
<where>
@ -45,7 +44,8 @@
</if>
</if>
</where>
ORDER BY id DESC
GROUP BY factory_id,date
ORDER BY date DESC
</select>
<select id="selectDataSum" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataTotalVO">