优化成本计算问题,加入辅料备件分摊页面

This commit is contained in:
2026-01-26 19:29:11 +08:00
parent 50fa87115d
commit d5cbaab645
14 changed files with 1754 additions and 117 deletions

View File

@@ -17,6 +17,8 @@ import com.klp.ems.domain.vo.EnergyCostSummaryVo;
import com.klp.ems.domain.vo.WarehouseProductionCoilVo;
import com.klp.ems.domain.vo.WarehouseProductionStatVo;
import com.klp.ems.domain.vo.WmsEnergyCoilDailyVo;
import com.klp.ems.domain.vo.AuxMaterialBreakdownVo;
import com.klp.ems.domain.vo.SparePartBreakdownVo;
import com.klp.ems.service.IEnergyCostReportService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -111,4 +113,16 @@ public class EnergyCostReportController extends BaseController {
}).collect(Collectors.toList());
ExcelUtil.exportExcel(exportList, "入场卷成本汇总", CoilTotalMergedExportVo.class, response);
}
@Log(title = "辅料分摊构成", businessType = BusinessType.OTHER)
@GetMapping("/material/aux/breakdown")
public TableDataInfo<AuxMaterialBreakdownVo> auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) {
return reportService.auxMaterialBreakdown(bo, pageQuery);
}
@Log(title = "备件分摊构成", businessType = BusinessType.OTHER)
@GetMapping("/material/spare/breakdown")
public TableDataInfo<SparePartBreakdownVo> sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) {
return reportService.sparePartBreakdown(bo, pageQuery);
}
}

View File

@@ -65,6 +65,15 @@ public class WmsEnergyCoilDailyController extends BaseController {
return R.ok(statistics);
}
/**
* 查询待操作钢卷的能源成本详情(单卷)
*/
@GetMapping("/pendingAction/detail")
public R<WmsEnergyCoilDailyVo> pendingActionDetail(@NotNull @RequestParam Long coilId) {
WmsEnergyCoilDailyVo detail = coilDailyService.queryPendingActionCoilCostDetail(coilId);
return R.ok(detail);
}
@Log(title = "钢卷能源分摊", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsEnergyCoilDailyBo bo, HttpServletResponse response) {

View File

@@ -0,0 +1,34 @@
package com.klp.ems.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 辅料成本分摊构成 Vo
*/
@Data
public class AuxMaterialBreakdownVo {
/** 物料编码 */
private String itemCode;
/** 物料名称 */
private String itemName;
/** 规格 */
private String spec;
/** 单位 */
private String unit;
/** 全厂消耗总数量 */
private BigDecimal totalQty;
/** 全厂消耗总金额 */
private BigDecimal totalAmount;
/** 分摊数量 */
private BigDecimal allocatedQty;
/** 分摊金额 */
private BigDecimal allocatedAmount;
}

View File

@@ -0,0 +1,19 @@
package com.klp.ems.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SparePartBreakdownVo {
private String itemCode;
private String itemName;
private String spec;
private String unit;
private BigDecimal totalQty;
private BigDecimal totalAmount;
private BigDecimal allocatedQty;
private BigDecimal allocatedAmount;
}

View File

@@ -84,8 +84,14 @@ public interface WmsEnergyCoilDailyMapper extends BaseMapper<WmsEnergyCoilDaily>
/** 入场卷号维度能源+囤积成本汇总(导出) */
List<CoilTotalCostVo> selectCoilTotalMergedExport(@Param("bo") CoilTotalCostBo bo);
/** 辅料分摊构成(按物料汇总,金额与数量按卷的日分摊系数分摊) */
IPage<AuxMaterialBreakdownVo> selectAuxMaterialBreakdown(Page<AuxMaterialBreakdownVo> page, @Param("bo") CoilTotalCostBo bo);
/** 备件分摊构成(按备件汇总,金额与数量按卷的日分摊系数分摊) */
IPage<SparePartBreakdownVo> selectSparePartBreakdown(Page<SparePartBreakdownVo> page, @Param("bo") CoilTotalCostBo bo);
/** 查询待操作钢卷的能源成本一次性SQL查询 */
List<WmsEnergyCoilDailyVo> selectPendingActionCoilCost();
List<WmsEnergyCoilDailyVo> selectPendingActionCoilCost(@Param("bo") WmsEnergyCoilDailyBo bo);
/** 查询待操作钢卷的能源成本统计 */
WmsEnergyCoilDailyStatisticsVo selectPendingActionCoilCostStatistics(
@@ -93,4 +99,7 @@ public interface WmsEnergyCoilDailyMapper extends BaseMapper<WmsEnergyCoilDaily>
@Param("currentCoilNo") String currentCoilNo,
@Param("warehouseId") Long warehouseId
);
/** 查询待操作钢卷的能源成本详情(单卷) */
WmsEnergyCoilDailyVo selectPendingActionCoilCostDetail(@Param("coilId") Long coilId);
}

View File

@@ -11,6 +11,8 @@ import com.klp.ems.domain.vo.EnergyCostSummaryVo;
import com.klp.ems.domain.vo.WarehouseProductionCoilVo;
import com.klp.ems.domain.vo.WarehouseProductionStatVo;
import com.klp.ems.domain.vo.WmsEnergyCoilDailyVo;
import com.klp.ems.domain.vo.AuxMaterialBreakdownVo;
import com.klp.ems.domain.vo.SparePartBreakdownVo;
import java.util.List;
import java.util.Map;
@@ -49,4 +51,10 @@ public interface IEnergyCostReportService {
/** 入场卷号维度能源+囤积综合汇总导出 */
java.util.List<CoilTotalCostVo> coilTotalMergedExport(CoilTotalCostBo bo);
/** 辅料分摊构成(按物料汇总,数量与金额按卷的日分摊系数分摊) */
TableDataInfo<AuxMaterialBreakdownVo> auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery);
/** 备件分摊构成(按备件汇总,数量与金额按卷的日分摊系数分摊) */
TableDataInfo<SparePartBreakdownVo> sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery);
}

View File

@@ -34,6 +34,11 @@ public interface IWmsEnergyCoilDailyService {
*/
WmsEnergyCoilDailyStatisticsVo queryPendingActionCoilCostStatistics(String enterCoilNo, String currentCoilNo, Long warehouseId);
/**
* 查询待操作钢卷的能源成本详情(单卷)
*/
WmsEnergyCoilDailyVo queryPendingActionCoilCostDetail(Long coilId);
Boolean insertByBo(WmsEnergyCoilDailyBo bo);
Boolean updateByBo(WmsEnergyCoilDailyBo bo);

View File

@@ -13,6 +13,8 @@ import com.klp.ems.domain.vo.EnergyCostSummaryVo;
import com.klp.ems.domain.vo.WarehouseProductionCoilVo;
import com.klp.ems.domain.vo.WarehouseProductionStatVo;
import com.klp.ems.domain.vo.WmsEnergyCoilDailyVo;
import com.klp.ems.domain.vo.AuxMaterialBreakdownVo;
import com.klp.ems.domain.vo.SparePartBreakdownVo;
import com.klp.ems.mapper.WmsEnergyCoilDailyMapper;
import com.klp.ems.service.IEnergyCostReportService;
import lombok.RequiredArgsConstructor;
@@ -142,4 +144,22 @@ public class EnergyCostReportServiceImpl implements IEnergyCostReportService {
public java.util.List<CoilTotalCostVo> coilTotalMergedExport(CoilTotalCostBo bo) {
return coilDailyMapper.selectCoilTotalMergedExport(bo);
}
@Override
public TableDataInfo<AuxMaterialBreakdownVo> auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) {
if (pageQuery.getPageSize() == null) {
pageQuery.setPageSize(15);
}
IPage<AuxMaterialBreakdownVo> page = coilDailyMapper.selectAuxMaterialBreakdown(pageQuery.build(), bo);
return TableDataInfo.build(page);
}
@Override
public TableDataInfo<SparePartBreakdownVo> sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) {
if (pageQuery.getPageSize() == null) {
pageQuery.setPageSize(15);
}
IPage<SparePartBreakdownVo> page = coilDailyMapper.selectSparePartBreakdown(pageQuery.build(), bo);
return TableDataInfo.build(page);
}
}

View File

@@ -51,7 +51,7 @@ public class WmsEnergyCoilDailyServiceImpl implements IWmsEnergyCoilDailyService
public TableDataInfo<WmsEnergyCoilDailyVo> queryPendingActionCoilCost(WmsEnergyCoilDailyBo bo, PageQuery pageQuery) {
// 使用SQL一次性查询待操作钢卷的能源成本
// 所有的关联、聚合、计算都在SQL中完成性能更高
List<WmsEnergyCoilDailyVo> resultList = baseMapper.selectPendingActionCoilCost();
List<WmsEnergyCoilDailyVo> resultList = baseMapper.selectPendingActionCoilCost(bo);
if (CollUtil.isEmpty(resultList)) {
log.warn("[PendingActionCoilCost] No pending action coils found");
@@ -76,6 +76,11 @@ public class WmsEnergyCoilDailyServiceImpl implements IWmsEnergyCoilDailyService
return baseMapper.selectPendingActionCoilCostStatistics(enterCoilNo, currentCoilNo, warehouseId);
}
@Override
public WmsEnergyCoilDailyVo queryPendingActionCoilCostDetail(Long coilId) {
return baseMapper.selectPendingActionCoilCostDetail(coilId);
}
@Override
public Boolean insertByBo(WmsEnergyCoilDailyBo bo) {
WmsEnergyCoilDaily add = BeanUtil.toBean(bo, WmsEnergyCoilDaily.class);