diff --git a/klp-ems/src/main/java/com/klp/ems/controller/EnergyCostReportController.java b/klp-ems/src/main/java/com/klp/ems/controller/EnergyCostReportController.java index 52e50e98..55049c1e 100644 --- a/klp-ems/src/main/java/com/klp/ems/controller/EnergyCostReportController.java +++ b/klp-ems/src/main/java/com/klp/ems/controller/EnergyCostReportController.java @@ -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 auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) { + return reportService.auxMaterialBreakdown(bo, pageQuery); + } + + @Log(title = "备件分摊构成", businessType = BusinessType.OTHER) + @GetMapping("/material/spare/breakdown") + public TableDataInfo sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) { + return reportService.sparePartBreakdown(bo, pageQuery); + } } diff --git a/klp-ems/src/main/java/com/klp/ems/controller/WmsEnergyCoilDailyController.java b/klp-ems/src/main/java/com/klp/ems/controller/WmsEnergyCoilDailyController.java index 2c5b93ba..8056e96f 100644 --- a/klp-ems/src/main/java/com/klp/ems/controller/WmsEnergyCoilDailyController.java +++ b/klp-ems/src/main/java/com/klp/ems/controller/WmsEnergyCoilDailyController.java @@ -65,6 +65,15 @@ public class WmsEnergyCoilDailyController extends BaseController { return R.ok(statistics); } + /** + * 查询待操作钢卷的能源成本详情(单卷) + */ + @GetMapping("/pendingAction/detail") + public R 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) { diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/AuxMaterialBreakdownVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/AuxMaterialBreakdownVo.java new file mode 100644 index 00000000..df13d7e5 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/AuxMaterialBreakdownVo.java @@ -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; +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/SparePartBreakdownVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/SparePartBreakdownVo.java new file mode 100644 index 00000000..e0f99de5 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/SparePartBreakdownVo.java @@ -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; +} diff --git a/klp-ems/src/main/java/com/klp/ems/mapper/WmsEnergyCoilDailyMapper.java b/klp-ems/src/main/java/com/klp/ems/mapper/WmsEnergyCoilDailyMapper.java index c2e8e15b..45e5cb07 100644 --- a/klp-ems/src/main/java/com/klp/ems/mapper/WmsEnergyCoilDailyMapper.java +++ b/klp-ems/src/main/java/com/klp/ems/mapper/WmsEnergyCoilDailyMapper.java @@ -84,8 +84,14 @@ public interface WmsEnergyCoilDailyMapper extends BaseMapper /** 入场卷号维度能源+囤积成本汇总(导出) */ List selectCoilTotalMergedExport(@Param("bo") CoilTotalCostBo bo); + /** 辅料分摊构成(按物料汇总,金额与数量按卷的日分摊系数分摊) */ + IPage selectAuxMaterialBreakdown(Page page, @Param("bo") CoilTotalCostBo bo); + + /** 备件分摊构成(按备件汇总,金额与数量按卷的日分摊系数分摊) */ + IPage selectSparePartBreakdown(Page page, @Param("bo") CoilTotalCostBo bo); + /** 查询待操作钢卷的能源成本(一次性SQL查询) */ - List selectPendingActionCoilCost(); + List selectPendingActionCoilCost(@Param("bo") WmsEnergyCoilDailyBo bo); /** 查询待操作钢卷的能源成本统计 */ WmsEnergyCoilDailyStatisticsVo selectPendingActionCoilCostStatistics( @@ -93,4 +99,7 @@ public interface WmsEnergyCoilDailyMapper extends BaseMapper @Param("currentCoilNo") String currentCoilNo, @Param("warehouseId") Long warehouseId ); + + /** 查询待操作钢卷的能源成本详情(单卷) */ + WmsEnergyCoilDailyVo selectPendingActionCoilCostDetail(@Param("coilId") Long coilId); } diff --git a/klp-ems/src/main/java/com/klp/ems/service/IEnergyCostReportService.java b/klp-ems/src/main/java/com/klp/ems/service/IEnergyCostReportService.java index 9019877b..035f9885 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/IEnergyCostReportService.java +++ b/klp-ems/src/main/java/com/klp/ems/service/IEnergyCostReportService.java @@ -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 coilTotalMergedExport(CoilTotalCostBo bo); + + /** 辅料分摊构成(按物料汇总,数量与金额按卷的日分摊系数分摊) */ + TableDataInfo auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery); + + /** 备件分摊构成(按备件汇总,数量与金额按卷的日分摊系数分摊) */ + TableDataInfo sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery); } diff --git a/klp-ems/src/main/java/com/klp/ems/service/IWmsEnergyCoilDailyService.java b/klp-ems/src/main/java/com/klp/ems/service/IWmsEnergyCoilDailyService.java index e60101f3..e884c9fb 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/IWmsEnergyCoilDailyService.java +++ b/klp-ems/src/main/java/com/klp/ems/service/IWmsEnergyCoilDailyService.java @@ -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); diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java index cd8d8cff..edf9aa82 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EnergyCostReportServiceImpl.java @@ -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 coilTotalMergedExport(CoilTotalCostBo bo) { return coilDailyMapper.selectCoilTotalMergedExport(bo); } + + @Override + public TableDataInfo auxMaterialBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) { + if (pageQuery.getPageSize() == null) { + pageQuery.setPageSize(15); + } + IPage page = coilDailyMapper.selectAuxMaterialBreakdown(pageQuery.build(), bo); + return TableDataInfo.build(page); + } + + @Override + public TableDataInfo sparePartBreakdown(CoilTotalCostBo bo, PageQuery pageQuery) { + if (pageQuery.getPageSize() == null) { + pageQuery.setPageSize(15); + } + IPage page = coilDailyMapper.selectSparePartBreakdown(pageQuery.build(), bo); + return TableDataInfo.build(page); + } } diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/WmsEnergyCoilDailyServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/WmsEnergyCoilDailyServiceImpl.java index 215aaba9..30d08605 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/impl/WmsEnergyCoilDailyServiceImpl.java +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/WmsEnergyCoilDailyServiceImpl.java @@ -51,7 +51,7 @@ public class WmsEnergyCoilDailyServiceImpl implements IWmsEnergyCoilDailyService public TableDataInfo queryPendingActionCoilCost(WmsEnergyCoilDailyBo bo, PageQuery pageQuery) { // 使用SQL一次性查询待操作钢卷的能源成本 // 所有的关联、聚合、计算都在SQL中完成,性能更高 - List resultList = baseMapper.selectPendingActionCoilCost(); + List 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); diff --git a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml index 9b4a8f1f..3ad15dac 100644 --- a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml +++ b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml @@ -33,12 +33,12 @@ @@ -307,54 +316,42 @@ @@ -626,7 +648,7 @@ END ) AS totalEnergyCost FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id + LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0 LEFT JOIN wms_warehouse w ON pa.warehouse_id = w.warehouse_id LEFT JOIN ( @@ -741,7 +763,7 @@ ELSE 0 END AS totalCost FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id + LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0 LEFT JOIN wms_warehouse w ON pa.warehouse_id = w.warehouse_id LEFT JOIN ( @@ -776,9 +798,11 @@ ) wmt_pd ON pa_pd.warehouse_id = wmt_pd.warehouse_id WHERE pa_pd.action_status IN (0, 1) AND pa_pd.warehouse_id IS NOT NULL + and pa_pd.del_flag=0 GROUP BY pa_pd.warehouse_id ) wd_prod ON pa.warehouse_id = wd_prod.warehouse_id WHERE pa.action_status IN (0, 1, 2) + and pa.del_flag = 0 AND pa.warehouse_id IS NOT NULL AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%') @@ -1019,7 +1043,7 @@ ELSE 0 END AS unitCost FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id + LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0 LEFT JOIN ( ) wmt ON pa.warehouse_id = wmt.warehouse_id @@ -1135,7 +1159,7 @@ ELSE 0 END AS totalCost FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id + LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0 LEFT JOIN ( ) wmt ON pa.warehouse_id = wmt.warehouse_id @@ -1379,7 +1403,7 @@ ELSE 0 END AS totalCost FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id + LEFT JOIN wms_material_coil mc ON pa.coil_id = mc.coil_id AND mc.status = 0 LEFT JOIN ( ) wmt ON pa.warehouse_id = wmt.warehouse_id @@ -1719,7 +1743,7 @@ wmt.warehouse_start_time AS latestMeterReadStartTime, wmt.warehouse_end_time AS latestMeterReadEndTime FROM wms_coil_pending_action pa - LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id + LEFT JOIN wms_material_coil c ON pa.coil_id = c.coil_id AND c.status = 0 LEFT JOIN wms_warehouse wh ON pa.warehouse_id = wh.warehouse_id LEFT JOIN ( @@ -1773,9 +1797,184 @@ ) wd_count ON pa.warehouse_id = wd_count.warehouse_id WHERE pa.action_status IN (0, 1, 2) AND pa.warehouse_id IS NOT NULL + + AND pa.coil_id = #{bo.coilId} + + + AND c.enter_coil_no LIKE CONCAT('%', #{bo.enterCoilNo}, '%') + + + AND pa.current_coil_no LIKE CONCAT('%', #{bo.currentCoilNo}, '%') + + + AND pa.warehouse_id = #{bo.warehouseId} + ORDER BY pa.warehouse_id, pa.create_time DESC + + + + + + + + diff --git a/klp-ui/src/api/ems/energyCostReport.js b/klp-ui/src/api/ems/energyCostReport.js index fcfe1521..f46ee94c 100644 --- a/klp-ui/src/api/ems/energyCostReport.js +++ b/klp-ui/src/api/ems/energyCostReport.js @@ -60,3 +60,21 @@ export function exportCoilTotalMerged(query) { responseType: 'blob' }) } + +// 辅料分摊构成(按物料汇总) +export function fetchAuxMaterialBreakdown(query) { + return request({ + url: '/ems/energy/report/material/aux/breakdown', + method: 'get', + params: query + }) +} + +// 备件分摊构成(按备件汇总) +export function fetchSparePartBreakdown(query) { + return request({ + url: '/ems/energy/report/material/spare/breakdown', + method: 'get', + params: query + }) +} diff --git a/klp-ui/src/views/ems/cost/auxAllocation.vue b/klp-ui/src/views/ems/cost/auxAllocation.vue new file mode 100644 index 00000000..b1e26c0b --- /dev/null +++ b/klp-ui/src/views/ems/cost/auxAllocation.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/klp-ui/src/views/ems/cost/spareAllocation.vue b/klp-ui/src/views/ems/cost/spareAllocation.vue new file mode 100644 index 00000000..00f940b9 --- /dev/null +++ b/klp-ui/src/views/ems/cost/spareAllocation.vue @@ -0,0 +1,492 @@ + + + + + diff --git a/klp-ui/src/views/wms/coil/panels/do.vue b/klp-ui/src/views/wms/coil/panels/do.vue index fd432c6d..d2f6dcf0 100644 --- a/klp-ui/src/views/wms/coil/panels/do.vue +++ b/klp-ui/src/views/wms/coil/panels/do.vue @@ -196,14 +196,11 @@ {{ item.netWeight || '—' }}t - -