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

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 @Data
public class FactoryDataDetailRespVO { public class FactoryDataDetailRespVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000078") @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000078")
private Long factoryId; private Long factoryId;

View File

@ -191,23 +191,24 @@ public class FactoryDataServiceImpl implements FactoryDataService {
groupedByFactoryIdAndDate.forEach((factoryId, dateMap) -> { groupedByFactoryIdAndDate.forEach((factoryId, dateMap) -> {
dateMap.forEach((date, infoList) -> { //按日期倒叙 并遍历
dateMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
.forEach((date) -> {
FactoryDataDetailRespVO dataDetailRespVO = new FactoryDataDetailRespVO(); FactoryDataDetailRespVO dataDetailRespVO = new FactoryDataDetailRespVO();
dataDetailRespVO.setId(respVOS.get(0).getId() + 1);
dataDetailRespVO.setFactoryId(factoryId); dataDetailRespVO.setFactoryId(factoryId);
dataDetailRespVO.setFactoryName(factoryMap.get(factoryId).getName()); 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.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.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); 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="selectDetailPage" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataDetailRespVO">
SELECT SELECT
id,
factory_id, factory_id,
date, date,
square_num, SUM(CASE WHEN data_type = 2 THEN total_num END) AS inTotalNum,
damage_num, SUM(CASE WHEN data_type = 1 THEN square_num END) AS squareNum,
CASE WHEN data_type = 1 THEN total_num END AS outTotalNum, SUM(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 = 1 or data_type = 2 THEN damage_num END) AS damageNum
FROM FROM
sf_factory_data sf_factory_data
<where> <where>
@ -45,7 +44,8 @@
</if> </if>
</if> </if>
</where> </where>
ORDER BY id DESC GROUP BY factory_id,date
ORDER BY date DESC
</select> </select>
<select id="selectDataSum" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataTotalVO"> <select id="selectDataSum" resultType="cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.FactoryDataTotalVO">