新增双向统计接口

This commit is contained in:
2025-10-29 14:13:06 +08:00
parent 995636fc9d
commit 128700da0f
6 changed files with 163 additions and 3 deletions

View File

@@ -18,9 +18,7 @@ import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.domain.vo.WmsGenerateRecordVo;
import com.klp.domain.vo.WmsWarehouseVo;
import com.klp.domain.vo.WmsRawMaterialVo;
import com.klp.domain.vo.WmsProductBomVo;
import com.klp.domain.vo.WmsBomItemVo;
import com.klp.domain.bo.WmsProductBomBo;
import com.klp.domain.bo.WmsBomItemBo;
import com.klp.domain.WmsMaterialCoil;
import com.klp.domain.WmsStock;
@@ -45,6 +43,7 @@ import java.util.HashMap;
import java.util.stream.Collectors;
import java.util.HashSet;
import java.util.Set;
import java.math.BigDecimal;
/**
* 钢卷物料表Service业务层处理
@@ -1008,5 +1007,47 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
}
}
}
/**
* 查询各个库区中不同类型的钢卷分布情况
* 按库区分组,统计每种物品类型的钢卷数量和重量
*
* @return 分布情况列表,包含库区信息、物品类型、数量、重量等
*/
@Override
public List<WmsMaterialCoilVo> getDistributionByWarehouse() {
List<Map<String, Object>> mapList = baseMapper.getDistributionByWarehouse();
return convertMapListToVoList(mapList);
}
/**
* 查询不同类型的钢卷在不同库区的分布情况
* 按物品类型分组,统计每个库区的钢卷数量和重量
*
* @return 分布情况列表,包含物品类型、库区信息、数量、重量等
*/
@Override
public List<WmsMaterialCoilVo> getDistributionByItemType() {
List<Map<String, Object>> mapList = baseMapper.getDistributionByItemType();
return convertMapListToVoList(mapList);
}
/**
* 将Map列表转换为WmsMaterialCoilVo列表
*/
private List<WmsMaterialCoilVo> convertMapListToVoList(List<Map<String, Object>> mapList) {
List<WmsMaterialCoilVo> voList = new ArrayList<>();
for (Map<String, Object> map : mapList) {
WmsMaterialCoilVo vo = new WmsMaterialCoilVo();
vo.setWarehouseId(map.get("warehouse_id") != null ? Long.valueOf(map.get("warehouse_id").toString()) : null);
vo.setWarehouseName(map.get("warehouse_name") != null ? map.get("warehouse_name").toString() : null);
vo.setItemType(map.get("item_type") != null ? map.get("item_type").toString() : null);
vo.setCoilCount(map.get("coil_count") != null ? Long.valueOf(map.get("coil_count").toString()) : 0L);
vo.setTotalGrossWeight(map.get("total_gross_weight") != null ? new BigDecimal(map.get("total_gross_weight").toString()) : BigDecimal.ZERO);
vo.setTotalNetWeight(map.get("total_net_weight") != null ? new BigDecimal(map.get("total_net_weight").toString()) : BigDecimal.ZERO);
voList.add(vo);
}
return voList;
}
}