feat(wms): 新增钢卷报表查询接口和解锁功能
- 添加 queryReportList 方法用于轻量级报表数据查询 - 新增 listForReport 控制器接口返回必要字段提升传输性能 - 创建 WmsMaterialCoilReportVo 类定义报表数据结构 - 添加 unlockCoil 方法解除钢卷锁定状态 - 实现 unlockCoil 控制器接口支持 PUT 请求 - 更新数据库映射配置移除多余关联查询字段 - 优化报表查询 SQL 仅返回必要字段提升查询效率
This commit is contained in:
@@ -61,6 +61,15 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
return iWmsMaterialCoilService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询钢卷物料表列表(报表专用,轻量级,仅返回coilId、netWeight、warehouseId、qualityStatus、team)
|
||||
* 使用与list相同的查询条件,但只返回少量字段以提升传输性能
|
||||
*/
|
||||
@GetMapping("/listForReport")
|
||||
public List<WmsMaterialCoilReportVo> listForReport(WmsMaterialCoilBo bo) {
|
||||
return iWmsMaterialCoilService.queryReportList(bo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询钢卷物料表列表(包含发货绑定增强字段)
|
||||
*/
|
||||
@@ -677,6 +686,16 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
return R.ok(material, "查询成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 解除钢卷锁定状态
|
||||
* 将钢卷的 exclusiveStatus 字段设置为 0
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/unlock/{coilId}")
|
||||
public R<Void> unlockCoil(@NotNull(message = "主键不能为空") @PathVariable("coilId") Long coilId) {
|
||||
return toAjax(iWmsMaterialCoilService.unlockCoil(coilId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 钢卷物料报表VO(轻量级,仅返回报表展示所需字段)
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-07-18
|
||||
*/
|
||||
@Data
|
||||
public class WmsMaterialCoilReportVo {
|
||||
|
||||
// 钢卷ID 用于导出
|
||||
private Long coilId;
|
||||
// 用于计算
|
||||
private BigDecimal netWeight;
|
||||
// 实际库区ID
|
||||
private Long warehouseId;
|
||||
// 质量状态
|
||||
private String qualityStatus;
|
||||
// 班组
|
||||
private String team;
|
||||
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.klp.domain.WmsMaterialCoil;
|
||||
import com.klp.domain.vo.WmsMaterialCoilAnnealExportVo;
|
||||
import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo;
|
||||
import com.klp.domain.vo.WmsMaterialCoilReportVo;
|
||||
import com.klp.domain.vo.WmsMaterialCoilVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -98,6 +99,14 @@ List<WmsMaterialCoilDeliveryExportVo> selectDeliveryExportListByCoilIds(@Param("
|
||||
*/
|
||||
List<WmsMaterialCoilAnnealExportVo> selectAnnealExportListByCoilIds(@Param("coilIds") java.util.Collection<Long> coilIds);
|
||||
|
||||
/**
|
||||
* 分页查询钢卷报表数据(轻量级,仅返回必要字段)
|
||||
*
|
||||
* @param lqw 查询条件
|
||||
* @return 分页报表数据
|
||||
*/
|
||||
List<WmsMaterialCoilReportVo> selectPageReportList(@Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
|
||||
|
||||
List<CoilTrimRawVo> selectCoilTrimStatistics();
|
||||
|
||||
List<CategoryWidthRawVo> selectCategoryWidthStatistics();
|
||||
|
||||
@@ -314,6 +314,15 @@ public interface IWmsMaterialCoilService {
|
||||
*/
|
||||
String queryEarliestHotRolledMaterial(String enterCoilNo);
|
||||
|
||||
/**
|
||||
* 查询钢卷报表数据(轻量级,仅返回必要字段)
|
||||
* 使用与分页列表相同的查询条件,但只返回少量字段以提升传输性能
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 报表数据
|
||||
*/
|
||||
List<WmsMaterialCoilReportVo> queryReportList(WmsMaterialCoilBo bo);
|
||||
|
||||
/**
|
||||
* 退火报表导出数据列表(按 coilIds)
|
||||
*
|
||||
@@ -322,6 +331,15 @@ public interface IWmsMaterialCoilService {
|
||||
*/
|
||||
List<WmsMaterialCoilAnnealExportVo> queryAnnealExportList(WmsMaterialCoilBo bo);
|
||||
|
||||
/**
|
||||
* 解除钢卷锁定状态
|
||||
* 将钢卷的 exclusiveStatus 字段设置为 0
|
||||
*
|
||||
* @param coilId 钢卷ID
|
||||
* @return 操作结果
|
||||
*/
|
||||
Boolean unlockCoil(@NotNull(message = "钢卷ID不能为空") Long coilId);
|
||||
|
||||
/**
|
||||
* 导出异常报表(按 coilIds,联查钢卷信息、异常信息、改判原因)
|
||||
* 一个钢卷可能对应多个异常,钢卷信息合并居中,异常信息逐条显示
|
||||
|
||||
@@ -3050,6 +3050,17 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
return wmsMaterialCoilDeliveryExportVos;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询钢卷报表数据(轻量级,仅返回必要字段)
|
||||
* 使用与分页列表相同的查询条件,但只返回少量字段以提升传输性能
|
||||
*/
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public List<WmsMaterialCoilReportVo> queryReportList(WmsMaterialCoilBo bo) {
|
||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
|
||||
return baseMapper.selectPageReportList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退火报表导出:按 coilIds 查询钢卷 + 退火计划联查数据
|
||||
*/
|
||||
@@ -5709,5 +5720,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
return material;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean unlockCoil(Long coilId) {
|
||||
if (coilId == null) {
|
||||
throw new RuntimeException("钢卷ID不能为空");
|
||||
}
|
||||
WmsMaterialCoil coil = baseMapper.selectById(coilId);
|
||||
if (coil == null) {
|
||||
throw new RuntimeException("钢卷不存在");
|
||||
}
|
||||
LambdaUpdateWrapper<WmsMaterialCoil> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(WmsMaterialCoil::getCoilId, coilId)
|
||||
.set(WmsMaterialCoil::getExclusiveStatus, 0);
|
||||
return baseMapper.update(null, updateWrapper) > 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -127,7 +127,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
mc.exclusive_status,
|
||||
mc.transfer_type,
|
||||
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,
|
||||
@@ -163,7 +162,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
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_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id
|
||||
LEFT JOIN sys_user su ON mc.sale_id = su.user_id
|
||||
LEFT JOIN wms_raw_material rm ON mc.item_type = 'raw_material' AND mc.item_id = rm.raw_material_id
|
||||
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id
|
||||
LEFT JOIN (
|
||||
@@ -476,6 +474,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ORDER BY mc.item_type, mc.item_id, w.actual_warehouse_id
|
||||
</select>
|
||||
|
||||
<!-- 查询钢卷报表数据:轻量级,仅返回必要字段 -->
|
||||
<select id="selectPageReportList" resultType="com.klp.domain.vo.WmsMaterialCoilReportVo">
|
||||
SELECT
|
||||
mc.coil_id AS coilId,
|
||||
mc.net_weight AS netWeight,
|
||||
mc.warehouse_id AS warehouseId,
|
||||
mc.quality_status AS qualityStatus,
|
||||
mc.team AS team
|
||||
FROM wms_material_coil mc
|
||||
LEFT JOIN wms_raw_material rm ON mc.item_type = 'raw_material' AND mc.item_id = rm.raw_material_id
|
||||
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id
|
||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||
LEFT JOIN wms_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<!-- 导出查询:包含所有需要的字段 -->
|
||||
<select id="selectExportList" resultType="com.klp.domain.vo.WmsMaterialCoilExportVo">
|
||||
SELECT
|
||||
|
||||
Reference in New Issue
Block a user