refactor(wms): 优化物料卷管理逻辑
- 移除重复的原材料和产品字段映射 - 使用 CASE 表达式统一处理不同类型的物料属性 - 简化 Java 服务层中的物料对象构建逻辑 - 删除冗余的 fillItemObject 方法 - 统一通过 itemType 判断设置对应物料信息
This commit is contained in:
@@ -95,23 +95,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
mc.packing_status,
|
||||
w.warehouse_name AS warehouseName,
|
||||
aw.actual_warehouse_name AS actualWarehouseName,
|
||||
-- 原材料字段
|
||||
rm.raw_material_id AS rawMaterialId,
|
||||
rm.raw_material_code AS rawMaterialCode,
|
||||
rm.raw_material_name AS rawMaterialName,
|
||||
rm.specification AS rawMaterialSpecification,
|
||||
rm.steel_grade AS rawMaterialSteelGrade,
|
||||
rm.thickness AS rawMaterialThickness,
|
||||
rm.width AS rawMaterialWidth,
|
||||
rm.bom_id AS rawMaterialBomId,
|
||||
-- 产品字段
|
||||
p.product_id AS productId,
|
||||
p.product_code AS productCode,
|
||||
p.product_name AS productName,
|
||||
p.specification AS productSpecification,
|
||||
p.thickness AS productThickness,
|
||||
p.width AS productWidth,
|
||||
p.bom_id AS productBomId,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.specification
|
||||
WHEN mc.item_type = 'product' THEN p.specification
|
||||
ELSE NULL END AS specification,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.material
|
||||
WHEN mc.item_type = 'product' THEN p.material
|
||||
ELSE NULL END AS material,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.manufacturer
|
||||
WHEN mc.item_type = 'product' THEN p.manufacturer
|
||||
ELSE NULL END AS manufacturer,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.surface_treatment_desc
|
||||
WHEN mc.item_type = 'product' THEN p.surface_treatment_desc
|
||||
ELSE NULL END AS surfaceTreatmentDesc,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.zinc_layer
|
||||
WHEN mc.item_type = 'product' THEN p.zinc_layer
|
||||
ELSE NULL END AS zincLayer,
|
||||
-- 物品名称和编号(用于兼容)
|
||||
CASE
|
||||
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_name
|
||||
@@ -198,23 +196,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
SELECT mc.*,
|
||||
w.warehouse_name AS warehouseName,
|
||||
aw.actual_warehouse_name AS actualWarehouseName,
|
||||
-- 原材料字段
|
||||
rm.raw_material_id AS rawMaterialId,
|
||||
rm.raw_material_code AS rawMaterialCode,
|
||||
rm.raw_material_name AS rawMaterialName,
|
||||
rm.specification AS rawMaterialSpecification,
|
||||
rm.steel_grade AS rawMaterialSteelGrade,
|
||||
rm.thickness AS rawMaterialThickness,
|
||||
rm.width AS rawMaterialWidth,
|
||||
rm.bom_id AS rawMaterialBomId,
|
||||
-- 产品字段
|
||||
p.product_id AS productId,
|
||||
p.product_code AS productCode,
|
||||
p.product_name AS productName,
|
||||
p.specification AS productSpecification,
|
||||
p.thickness AS productThickness,
|
||||
p.width AS productWidth,
|
||||
p.bom_id AS productBomId,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.specification
|
||||
WHEN mc.item_type = 'product' THEN p.specification
|
||||
ELSE NULL END AS specification,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.material
|
||||
WHEN mc.item_type = 'product' THEN p.material
|
||||
ELSE NULL END AS material,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.manufacturer
|
||||
WHEN mc.item_type = 'product' THEN p.manufacturer
|
||||
ELSE NULL END AS manufacturer,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.surface_treatment_desc
|
||||
WHEN mc.item_type = 'product' THEN p.surface_treatment_desc
|
||||
ELSE NULL END AS surfaceTreatmentDesc,
|
||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.zinc_layer
|
||||
WHEN mc.item_type = 'product' THEN p.zinc_layer
|
||||
ELSE NULL END AS zincLayer,
|
||||
-- 物品名称和编号(用于兼容)
|
||||
CASE
|
||||
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_name
|
||||
|
||||
Reference in New Issue
Block a user