From d5cbaab645bc876436c27d6e0a83d9319b9fce4c Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Mon, 26 Jan 2026 19:29:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=88=90=E6=9C=AC=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=97=AE=E9=A2=98=EF=BC=8C=E5=8A=A0=E5=85=A5=E8=BE=85?= =?UTF-8?q?=E6=96=99=E5=A4=87=E4=BB=B6=E5=88=86=E6=91=8A=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EnergyCostReportController.java | 14 + .../WmsEnergyCoilDailyController.java | 9 + .../ems/domain/vo/AuxMaterialBreakdownVo.java | 34 + .../ems/domain/vo/SparePartBreakdownVo.java | 19 + .../ems/mapper/WmsEnergyCoilDailyMapper.java | 11 +- .../ems/service/IEnergyCostReportService.java | 8 + .../service/IWmsEnergyCoilDailyService.java | 5 + .../impl/EnergyCostReportServiceImpl.java | 20 + .../impl/WmsEnergyCoilDailyServiceImpl.java | 7 +- .../mapper/WmsEnergyCoilDailyMapper.xml | 606 ++++++++++++++---- klp-ui/src/api/ems/energyCostReport.js | 18 + klp-ui/src/views/ems/cost/auxAllocation.vue | 496 ++++++++++++++ klp-ui/src/views/ems/cost/spareAllocation.vue | 492 ++++++++++++++ script/sql/mysql/eqp_auxiliary_material.sql | 132 ++++ 14 files changed, 1754 insertions(+), 117 deletions(-) create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/vo/AuxMaterialBreakdownVo.java create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/vo/SparePartBreakdownVo.java create mode 100644 klp-ui/src/views/ems/cost/auxAllocation.vue create mode 100644 klp-ui/src/views/ems/cost/spareAllocation.vue 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/script/sql/mysql/eqp_auxiliary_material.sql b/script/sql/mysql/eqp_auxiliary_material.sql index 04e51462..56718cd9 100644 --- a/script/sql/mysql/eqp_auxiliary_material.sql +++ b/script/sql/mysql/eqp_auxiliary_material.sql @@ -92,3 +92,135 @@ CREATE TABLE `eqp_spare_parts_change` ( KEY `fk_change_part` (`part_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1980201774324969474 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='备品备件变动记录表'; +create table wms_material_coil +( + coil_id bigint auto_increment comment '主键ID' + primary key, + enter_coil_no varchar(50) not null comment '入场钢卷号(年份后两位+月份+当月第几个,如25100001、25102422)', + current_coil_no varchar(50) not null comment '当前钢卷号(入场钢卷号和当前钢卷号可能不同)', + supplier_coil_no varchar(50) null comment '厂家原料卷号', + data_type tinyint(1) default 1 not null comment '数据类型(0=历史,1=现存)', + warehouse_id bigint null comment '所在库区ID', + next_warehouse_id bigint null comment '下一库区ID', + actual_warehouse_id bigint null comment '所在实际库区ID(关联wms_actual_warehouse表)', + qrcode_record_id bigint null comment '关联二维码ID(wms_generate_record.record_id)', + team varchar(50) null comment '班组', + has_merge_split tinyint(1) default 0 not null comment '是否合卷/分卷(0=否,1=分卷,2=合卷)', + parent_coil_nos varchar(500) null comment '父卷号(合卷或分卷时用,逗号分隔)', + item_id bigint not null comment '物品ID(指向原材料或产品主键)', + item_type varchar(20) not null comment '物品类型(raw_material/product)', + material_type varchar(20) null comment '材料类型(废品,成品,原料)', + quality_status varchar(20) null comment '质量状态(0=正常,1=待检,2=不合格)', + status tinyint(1) default 0 null comment '状态(0=在库,1=已出库)', + remark varchar(255) null comment '备注', + export_time datetime null comment '发货时间', + del_flag tinyint(1) default 0 not null comment '删除标志(0=正常,1=已删除)', + create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', + create_by varchar(50) null comment '创建人', + update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', + update_by varchar(50) null comment '更新人', + gross_weight decimal(10, 3) null comment '毛重', + net_weight decimal(10, 3) null comment '毛重', + length decimal(10, 3) null comment '钢卷长度(单位:米)', + trimming_requirement varchar(100) null comment '切边要求', + packing_status varchar(20) null comment '打包状态(0=未打包,1=已打包)', + packaging_requirement varchar(255) null comment '包装要求', + sale_id bigint null comment '销售id', + constraint fk_coil_next_warehouse + foreign key (next_warehouse_id) references wms_warehouse (warehouse_id), + constraint fk_coil_qrcode + foreign key (qrcode_record_id) references wms_generate_record (record_id) +) + comment '钢卷物料表'; + +create index idx_coil_current_no + on wms_material_coil (current_coil_no); + +create index idx_coil_type + on wms_material_coil (data_type); + +create index idx_coil_warehouse + on wms_material_coil (warehouse_id); + +create index idx_mc_coil_id + on wms_material_coil (coil_id); + +create index idx_mc_core + on wms_material_coil (del_flag, data_type, status, material_type, actual_warehouse_id, item_type, item_id); + +create index idx_mc_data_type + on wms_material_coil (data_type); + +create index idx_mc_del_awh + on wms_material_coil (del_flag, actual_warehouse_id); + +create index idx_mc_del_create + on wms_material_coil (del_flag, create_time); + +create index idx_mc_del_item + on wms_material_coil (del_flag, item_type, item_id); + +create index idx_mc_del_status_sale + on wms_material_coil (del_flag, status, sale_id); + +create index idx_mc_del_update + on wms_material_coil (del_flag, update_time); + +create index idx_mc_del_wh + on wms_material_coil (del_flag, warehouse_id); + +create index idx_mc_enter_coil_no + on wms_material_coil (enter_coil_no); + +create index idx_mc_fixed_group + on wms_material_coil (del_flag, data_type, status, item_type, actual_warehouse_id, item_id); + +create index idx_mc_has_merge_split + on wms_material_coil (has_merge_split); + +create index idx_mc_team + on wms_material_coil (team); + + + + +create table wms_coil_pending_action +( + action_id bigint auto_increment comment '主键ID' + primary key, + coil_id bigint not null comment '关联的钢卷ID', + current_coil_no varchar(50) not null comment '当前钢卷号', + action_type int not null comment '操作类型(1=分卷,2=合卷,3=更新)', + action_status tinyint(1) default 0 not null comment '操作状态(0=待处理,1=处理中,2=已完成,3=已取消)', + scan_time datetime null comment '扫码时间', + scan_device varchar(100) null comment '扫码设备(移动端设备信息)', + priority tinyint(1) default 0 null comment '优先级(0=普通,1=重要,2=紧急)', + source_type varchar(20) default 'scan' not null comment '来源类型(scan=扫码,manual=手动创建)', + warehouse_id bigint null comment '所在库区ID', + operator_id bigint null comment '操作人ID', + operator_name varchar(50) null comment '操作人姓名', + process_time datetime null comment '处理时间', + complete_time datetime null comment '完成时间', + remark varchar(500) null comment '备注', + del_flag tinyint(1) default 0 not null comment '删除标志(0=正常,1=已删除)', + create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', + create_by varchar(50) null comment '创建人', + update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', + update_by varchar(50) null comment '更新人' +) + comment '钢卷待操作表'; + +create index idx_action_status + on wms_coil_pending_action (action_status); + +create index idx_action_type + on wms_coil_pending_action (action_type); + +create index idx_coil_id + on wms_coil_pending_action (coil_id); + +create index idx_scan_time + on wms_coil_pending_action (scan_time); + +create index idx_warehouse_id + on wms_coil_pending_action (warehouse_id);