feat(wms/coil): 新增已绑定钢卷列表按发货计划创建时间倒序排序功能
在钢卷查询业务中,当查询已绑定钢卷列表且未指定计划ID(planId)时,新增按关联的发货计划创建时间倒序排序功能,确保较新的计划优先展示。 主要改动: 1. 在WmsMaterialCoilBo中新增orderByPlanDesc布尔字段,用于控制排序逻辑 2. 在WmsMaterialCoilMapper中新增selectVoPagePlusPlanOrder方法及对应的XML映射,通过关联发货计划表支持按计划创建时间排序 3. 在WmsMaterialCoilServiceImpl中调整查询逻辑:当orderByPlanDesc为true时调用新的查询方法,并在查询条件中补充排序规则 4. 在WmsDeliveryWaybillDetailController中设置orderByPlanDesc条件:当planId为空时启用该排序 5. 重构XML映射文件,提取公共SQL片段以提高可维护性 调整前,已绑定钢卷列表在无planId时仅按状态排序;调整后,新增按发货计划创建时间倒序排序,便于用户快速查看最新计划相关的钢卷。
This commit is contained in:
@@ -148,7 +148,10 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
|||||||
return new TableDataInfo<>();
|
return new TableDataInfo<>();
|
||||||
}
|
}
|
||||||
bo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(java.util.stream.Collectors.joining(",")));
|
bo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(java.util.stream.Collectors.joining(",")));
|
||||||
bo.setStatusFirst(true); // 未发货的排在前面
|
bo.setStatusFirst(true);
|
||||||
|
if (planId == null) {
|
||||||
|
bo.setOrderByPlanDesc(true);
|
||||||
|
}
|
||||||
return iWmsMaterialCoilService.queryPageListWithBindInfo(bo, pageQuery);
|
return iWmsMaterialCoilService.queryPageListWithBindInfo(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -396,5 +396,11 @@ public class WmsMaterialCoilBo extends BaseEntity {
|
|||||||
* 镀铬卷号
|
* 镀铬卷号
|
||||||
*/
|
*/
|
||||||
private String chromePlateCoilNo;
|
private String chromePlateCoilNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否按计划创建时间倒序排序(已绑定钢卷列表无planId时,按计划新旧排列)
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Boolean orderByPlanDesc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus<WmsMaterialCoilMap
|
|||||||
*/
|
*/
|
||||||
Page<WmsMaterialCoilVo> selectVoPagePlusOrderBy(Page<Object> build, @Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
|
Page<WmsMaterialCoilVo> selectVoPagePlusOrderBy(Page<Object> build, @Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* orderByPlanDesc=true 时使用:包含发货计划 join,支持按计划创建时间排序
|
||||||
|
*/
|
||||||
|
Page<WmsMaterialCoilVo> selectVoPagePlusPlanOrder(Page<Object> build, @Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
|
||||||
|
|
||||||
List<WmsMaterialCoilVo> selectVoListWithDynamicJoin(@Param("ew")QueryWrapper<WmsMaterialCoil> lqw);
|
List<WmsMaterialCoilVo> selectVoListWithDynamicJoin(@Param("ew")QueryWrapper<WmsMaterialCoil> lqw);
|
||||||
|
|
||||||
Map<String, Object> selectCountForSpecSync(@Param("ew") QueryWrapper<WmsMaterialCoil> qw);
|
Map<String, Object> selectCountForSpecSync(@Param("ew") QueryWrapper<WmsMaterialCoil> qw);
|
||||||
@@ -91,7 +96,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus<WmsMaterialCoilMap
|
|||||||
* @param coilIds 钢卷ID集合
|
* @param coilIds 钢卷ID集合
|
||||||
* @return 发货报表导出数据
|
* @return 发货报表导出数据
|
||||||
*/
|
*/
|
||||||
List<WmsMaterialCoilDeliveryExportVo> selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection<Long> coilIds);
|
List<WmsMaterialCoilDeliveryExportVo> selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection<Long> coilIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退火报表导出:按钢卷ID列表联查(钢卷 + 退火计划 + 退火计划钢卷关系)
|
* 退火报表导出:按钢卷ID列表联查(钢卷 + 退火计划 + 退火计划钢卷关系)
|
||||||
|
|||||||
@@ -487,7 +487,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
private Page<WmsMaterialCoilVo> queryMaterialCoilPage(WmsMaterialCoilBo bo, PageQuery pageQuery) {
|
private Page<WmsMaterialCoilVo> queryMaterialCoilPage(WmsMaterialCoilBo bo, PageQuery pageQuery) {
|
||||||
QueryWrapper<WmsMaterialCoil> qw = buildQueryWrapperPlus(bo);
|
QueryWrapper<WmsMaterialCoil> qw = buildQueryWrapperPlus(bo);
|
||||||
Page<WmsMaterialCoilVo> result;
|
Page<WmsMaterialCoilVo> result;
|
||||||
if (Boolean.TRUE.equals(bo.getOrderBy())) {
|
if (Boolean.TRUE.equals(bo.getOrderByPlanDesc())) {
|
||||||
|
result = baseMapper.selectVoPagePlusPlanOrder(pageQuery.build(), qw);
|
||||||
|
} else if (Boolean.TRUE.equals(bo.getOrderBy())) {
|
||||||
result = baseMapper.selectVoPagePlusOrderBy(pageQuery.build(), qw);
|
result = baseMapper.selectVoPagePlusOrderBy(pageQuery.build(), qw);
|
||||||
} else {
|
} else {
|
||||||
result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
|
result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
|
||||||
@@ -933,6 +935,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount());
|
qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount());
|
||||||
}
|
}
|
||||||
// 排序:
|
// 排序:
|
||||||
|
// 按计划创建时间倒序(已绑定钢卷列表无planId时优先按计划排序)
|
||||||
|
if (Boolean.TRUE.equals(bo.getOrderByPlanDesc())) {
|
||||||
|
qw.orderByDesc("pl.create_time");
|
||||||
|
}
|
||||||
// 已绑定钢卷列表中,未发货(status=0)的排在前面
|
// 已绑定钢卷列表中,未发货(status=0)的排在前面
|
||||||
if (Boolean.TRUE.equals(bo.getStatusFirst())) {
|
if (Boolean.TRUE.equals(bo.getStatusFirst())) {
|
||||||
qw.orderByAsc("mc.status = 1");
|
qw.orderByAsc("mc.status = 1");
|
||||||
|
|||||||
@@ -82,90 +82,91 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
GROUP BY w.warehouse_id, w.warehouse_name
|
GROUP BY w.warehouse_id, w.warehouse_name
|
||||||
ORDER BY w.warehouse_id
|
ORDER BY w.warehouse_id
|
||||||
</select>
|
</select>
|
||||||
<select id="selectVoPagePlus" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
<!-- ==================== 公共 SQL 片段 ==================== -->
|
||||||
SELECT
|
<sql id="baseColumns">
|
||||||
mc.coil_id,
|
mc.coil_id,
|
||||||
mc.parent_coil_id,
|
mc.parent_coil_id,
|
||||||
mc.export_time,
|
mc.export_time,
|
||||||
mc.export_by,
|
mc.export_by,
|
||||||
mc.enter_coil_no,
|
mc.enter_coil_no,
|
||||||
mc.current_coil_no,
|
mc.current_coil_no,
|
||||||
mc.supplier_coil_no,
|
mc.supplier_coil_no,
|
||||||
mc.data_type,
|
mc.data_type,
|
||||||
mc.material_type,
|
mc.material_type,
|
||||||
mc.next_warehouse_id,
|
mc.next_warehouse_id,
|
||||||
mc.qrcode_record_id,
|
mc.qrcode_record_id,
|
||||||
mc.team,
|
mc.team,
|
||||||
mc.has_merge_split,
|
mc.has_merge_split,
|
||||||
mc.parent_coil_nos,
|
mc.parent_coil_nos,
|
||||||
mc.item_type,
|
mc.item_type,
|
||||||
mc.item_id,
|
mc.item_id,
|
||||||
mc.gross_weight,
|
mc.gross_weight,
|
||||||
mc.net_weight,
|
mc.net_weight,
|
||||||
mc.status,
|
mc.status,
|
||||||
mc.remark,
|
mc.remark,
|
||||||
mc.warehouse_id,
|
mc.warehouse_id,
|
||||||
mc.actual_warehouse_id,
|
mc.actual_warehouse_id,
|
||||||
mc.del_flag,
|
mc.del_flag,
|
||||||
mc.create_time,
|
mc.create_time,
|
||||||
mc.update_time,
|
mc.update_time,
|
||||||
mc.create_by,
|
mc.create_by,
|
||||||
mc.update_by,
|
mc.update_by,
|
||||||
mc.quality_status,
|
mc.quality_status,
|
||||||
mc.trimming_requirement,
|
mc.trimming_requirement,
|
||||||
mc.packaging_requirement,
|
mc.packaging_requirement,
|
||||||
mc.packing_status,
|
mc.packing_status,
|
||||||
mc.sale_id AS saleId,
|
mc.sale_id AS saleId,
|
||||||
mc.length,
|
mc.length,
|
||||||
mc.actual_length,
|
mc.actual_length,
|
||||||
mc.actual_width,
|
mc.actual_width,
|
||||||
mc.actual_thickness,
|
mc.actual_thickness,
|
||||||
mc.production_start_time,
|
mc.production_start_time,
|
||||||
mc.production_end_time,
|
mc.production_end_time,
|
||||||
mc.production_duration,
|
mc.production_duration,
|
||||||
mc.coil_surface_treatment,
|
mc.coil_surface_treatment,
|
||||||
mc.reserved_width,
|
mc.reserved_width,
|
||||||
mc.coating_type,
|
mc.coating_type,
|
||||||
mc.temper_grade,
|
mc.temper_grade,
|
||||||
mc.business_purpose,
|
mc.business_purpose,
|
||||||
mc.is_related_to_order,
|
mc.is_related_to_order,
|
||||||
mc.exclusive_status,
|
mc.exclusive_status,
|
||||||
mc.transfer_type,
|
mc.transfer_type,
|
||||||
mc.theoretical_thickness,
|
mc.theoretical_thickness,
|
||||||
mc.theoretical_length,
|
mc.theoretical_length,
|
||||||
mc.chrome_plate_coil_no,
|
mc.chrome_plate_coil_no,
|
||||||
mc.sale_name AS saleName,
|
mc.sale_name AS saleName,
|
||||||
w.warehouse_name AS warehouseName,
|
w.warehouse_name AS warehouseName,
|
||||||
nw.warehouse_name AS nextWarehouseName,
|
nw.warehouse_name AS nextWarehouseName,
|
||||||
aw.actual_warehouse_name AS actualWarehouseName,
|
aw.actual_warehouse_name AS actualWarehouseName,
|
||||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.specification
|
CASE WHEN mc.item_type = 'raw_material' THEN rm.specification
|
||||||
WHEN mc.item_type = 'product' THEN p.specification
|
WHEN mc.item_type = 'product' THEN p.specification
|
||||||
ELSE NULL END AS specification,
|
ELSE NULL END AS specification,
|
||||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.material
|
CASE WHEN mc.item_type = 'raw_material' THEN rm.material
|
||||||
WHEN mc.item_type = 'product' THEN p.material
|
WHEN mc.item_type = 'product' THEN p.material
|
||||||
ELSE NULL END AS material,
|
ELSE NULL END AS material,
|
||||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.manufacturer
|
CASE WHEN mc.item_type = 'raw_material' THEN rm.manufacturer
|
||||||
WHEN mc.item_type = 'product' THEN p.manufacturer
|
WHEN mc.item_type = 'product' THEN p.manufacturer
|
||||||
ELSE NULL END AS manufacturer,
|
ELSE NULL END AS manufacturer,
|
||||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.surface_treatment_desc
|
CASE WHEN mc.item_type = 'raw_material' THEN rm.surface_treatment_desc
|
||||||
WHEN mc.item_type = 'product' THEN p.surface_treatment_desc
|
WHEN mc.item_type = 'product' THEN p.surface_treatment_desc
|
||||||
ELSE NULL END AS surfaceTreatmentDesc,
|
ELSE NULL END AS surfaceTreatmentDesc,
|
||||||
CASE WHEN mc.item_type = 'raw_material' THEN rm.zinc_layer
|
CASE WHEN mc.item_type = 'raw_material' THEN rm.zinc_layer
|
||||||
WHEN mc.item_type = 'product' THEN p.zinc_layer
|
WHEN mc.item_type = 'product' THEN p.zinc_layer
|
||||||
ELSE NULL END AS zincLayer,
|
ELSE NULL END AS zincLayer,
|
||||||
-- 物品名称和编号(用于兼容)
|
CASE
|
||||||
CASE
|
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_name
|
||||||
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_name
|
WHEN mc.item_type = 'product' THEN p.product_name
|
||||||
WHEN mc.item_type = 'product' THEN p.product_name
|
ELSE NULL
|
||||||
ELSE NULL
|
END as itemName,
|
||||||
END as itemName,
|
CASE
|
||||||
CASE
|
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_code
|
||||||
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_code
|
WHEN mc.item_type = 'product' THEN p.product_code
|
||||||
WHEN mc.item_type = 'product' THEN p.product_code
|
ELSE NULL
|
||||||
ELSE NULL
|
END as itemCode,
|
||||||
END as itemCode,
|
COALESCE(ca.abnormal_count, 0) AS abnormalCount
|
||||||
-- 异常数量统计
|
</sql>
|
||||||
COALESCE(ca.abnormal_count, 0) AS abnormalCount
|
|
||||||
|
<sql id="baseFrom">
|
||||||
FROM wms_material_coil mc
|
FROM wms_material_coil mc
|
||||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||||
LEFT JOIN wms_warehouse nw ON mc.next_warehouse_id = nw.warehouse_id
|
LEFT JOIN wms_warehouse nw ON mc.next_warehouse_id = nw.warehouse_id
|
||||||
@@ -178,114 +179,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
WHERE del_flag = 0
|
WHERE del_flag = 0
|
||||||
GROUP BY coil_id
|
GROUP BY coil_id
|
||||||
) ca ON mc.coil_id = ca.coil_id
|
) ca ON mc.coil_id = ca.coil_id
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!-- ==================== 各场景查询 ==================== -->
|
||||||
|
|
||||||
|
<select id="selectVoPagePlus" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
||||||
|
SELECT <include refid="baseColumns"/>
|
||||||
|
<include refid="baseFrom"/>
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<!-- orderBy=true 专用:包含库位排序辅助字段(aw_sort_key/aw_layer_key/aw_id_key)以及父库位 join -->
|
<!-- orderBy=true 专用:包含库位排序辅助字段(aw_sort_key/aw_layer_key/aw_id_key)以及父库位 join -->
|
||||||
<select id="selectVoPagePlusOrderBy" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
<select id="selectVoPagePlusOrderBy" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
||||||
SELECT
|
SELECT
|
||||||
mc.coil_id,
|
<include refid="baseColumns"/>,
|
||||||
mc.parent_coil_id,
|
|
||||||
mc.export_time,
|
|
||||||
mc.export_by,
|
|
||||||
mc.enter_coil_no,
|
|
||||||
mc.current_coil_no,
|
|
||||||
mc.supplier_coil_no,
|
|
||||||
mc.data_type,
|
|
||||||
mc.material_type,
|
|
||||||
mc.next_warehouse_id,
|
|
||||||
mc.qrcode_record_id,
|
|
||||||
mc.team,
|
|
||||||
mc.has_merge_split,
|
|
||||||
mc.parent_coil_nos,
|
|
||||||
mc.item_type,
|
|
||||||
mc.item_id,
|
|
||||||
mc.gross_weight,
|
|
||||||
mc.net_weight,
|
|
||||||
mc.status,
|
|
||||||
mc.remark,
|
|
||||||
mc.warehouse_id,
|
|
||||||
mc.actual_warehouse_id,
|
|
||||||
mc.del_flag,
|
|
||||||
mc.create_time,
|
|
||||||
mc.update_time,
|
|
||||||
mc.create_by,
|
|
||||||
mc.update_by,
|
|
||||||
mc.quality_status,
|
|
||||||
mc.trimming_requirement,
|
|
||||||
mc.packaging_requirement,
|
|
||||||
mc.packing_status,
|
|
||||||
mc.sale_id AS saleId,
|
|
||||||
mc.length,
|
|
||||||
mc.actual_length,
|
|
||||||
mc.actual_width,
|
|
||||||
mc.actual_thickness,
|
|
||||||
mc.production_start_time,
|
|
||||||
mc.production_end_time,
|
|
||||||
mc.production_duration,
|
|
||||||
mc.reserved_width,
|
|
||||||
mc.coating_type,
|
|
||||||
mc.temper_grade,
|
|
||||||
mc.business_purpose,
|
|
||||||
mc.is_related_to_order,
|
|
||||||
mc.exclusive_status,
|
|
||||||
mc.transfer_type,
|
|
||||||
mc.theoretical_thickness,
|
|
||||||
mc.theoretical_length,
|
|
||||||
mc.chrome_plate_coil_no,
|
|
||||||
mc.sale_name AS saleName,
|
|
||||||
su.nick_name AS saleNickName,
|
|
||||||
w.warehouse_name AS warehouseName,
|
|
||||||
nw.warehouse_name AS nextWarehouseName,
|
|
||||||
aw.actual_warehouse_name AS actualWarehouseName,
|
|
||||||
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
|
|
||||||
WHEN mc.item_type = 'product' THEN p.product_name
|
|
||||||
ELSE NULL
|
|
||||||
END as itemName,
|
|
||||||
CASE
|
|
||||||
WHEN mc.item_type = 'raw_material' THEN rm.raw_material_code
|
|
||||||
WHEN mc.item_type = 'product' THEN p.product_code
|
|
||||||
ELSE NULL
|
|
||||||
END as itemCode,
|
|
||||||
-- 库位排序辅助字段(用于全局交错排序,避免在 ORDER BY 中写复杂表达式触发 MP 注入拦截)
|
|
||||||
COALESCE(CASE WHEN aw.actual_warehouse_type = 4 THEN awp.sort_no ELSE aw.sort_no END, 0) AS aw_sort_key,
|
COALESCE(CASE WHEN aw.actual_warehouse_type = 4 THEN awp.sort_no ELSE aw.sort_no END, 0) AS aw_sort_key,
|
||||||
CASE WHEN aw.actual_warehouse_type = 4 THEN CAST(SUBSTRING_INDEX(aw.actual_warehouse_code, '-', -1) AS UNSIGNED) ELSE 0 END AS aw_layer_key,
|
CASE WHEN aw.actual_warehouse_type = 4 THEN CAST(SUBSTRING_INDEX(aw.actual_warehouse_code, '-', -1) AS UNSIGNED) ELSE 0 END AS aw_layer_key,
|
||||||
COALESCE(aw.actual_warehouse_id, 0) AS aw_id_key,
|
COALESCE(aw.actual_warehouse_id, 0) AS aw_id_key
|
||||||
-- 异常数量统计
|
<include refid="baseFrom"/>
|
||||||
COALESCE(ca.abnormal_count, 0) AS abnormalCount
|
LEFT JOIN wms_actual_warehouse awp ON aw.parent_id = awp.actual_warehouse_id
|
||||||
FROM wms_material_coil mc
|
${ew.customSqlSegment}
|
||||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
</select>
|
||||||
LEFT JOIN wms_warehouse nw ON mc.next_warehouse_id = nw.warehouse_id
|
|
||||||
LEFT JOIN wms_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id
|
<!-- orderByPlanDesc=true 专用:包含发货计划 join,支持按计划创建时间倒序排序 -->
|
||||||
LEFT JOIN wms_actual_warehouse awp ON aw.parent_id = awp.actual_warehouse_id
|
<select id="selectVoPagePlusPlanOrder" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
||||||
LEFT JOIN sys_user su ON mc.sale_id = su.user_id
|
SELECT <include refid="baseColumns"/>
|
||||||
LEFT JOIN wms_raw_material rm ON mc.item_type = 'raw_material' AND mc.item_id = rm.raw_material_id
|
<include refid="baseFrom"/>
|
||||||
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id
|
LEFT JOIN wms_delivery_waybill_detail d ON d.coil_id = mc.coil_id AND d.del_flag = 0
|
||||||
LEFT JOIN (
|
LEFT JOIN wms_delivery_waybill wb ON wb.waybill_id = d.waybill_id AND wb.del_flag = 0
|
||||||
SELECT coil_id, COUNT(*) AS abnormal_count
|
LEFT JOIN wms_delivery_plan pl ON pl.plan_id = wb.plan_id AND pl.del_flag = 0
|
||||||
FROM wms_coil_abnormal
|
${ew.customSqlSegment}
|
||||||
WHERE del_flag = 0
|
|
||||||
GROUP BY coil_id
|
|
||||||
) ca ON mc.coil_id = ca.coil_id
|
|
||||||
${ew.customSqlSegment}
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user