feat(wms): 添加根据入场钢卷号查询最早热轧卷板材质功能

- 在 IWmsMaterialCoilService 中新增 queryEarliestHotRolledMaterial 方法定义
- 在 WmsMaterialCoilController 中新增查询接口并添加参数验证
- 在 WmsMaterialCoilMapper 中新增 selectEarliestHotRolledMaterial 数据库查询方法
- 在 WmsMaterialCoilMapper.xml 中新增 SQL 查询语句实现热轧卷板材质查询逻辑
- 在 WmsMaterialCoilServiceImpl 中实现服务层查询逻辑并添加空值校验
- 接口返回最早创建的热轧卷板材质信息,无对应材质时返回 null
This commit is contained in:
2026-05-12 10:11:30 +08:00
parent 408a8a9929
commit e7d7f86f40
5 changed files with 64 additions and 0 deletions

View File

@@ -657,6 +657,23 @@ public class WmsMaterialCoilController extends BaseController {
return toAjax(iWmsMaterialCoilService.fixMaterialMismatchCoils(coilId)); return toAjax(iWmsMaterialCoilService.fixMaterialMismatchCoils(coilId));
} }
/**
* 根据入场钢卷号查询最早的热轧卷板材质
* 前端传入某个入场钢卷号,查询该组钢卷中是否有热轧卷板
* 如果有,返回最早创建的热轧卷板的材质信息
*
* @param enterCoilNo 入场钢卷号
* @return 材质信息
*/
@GetMapping("/queryEarliestHotRolledMaterial")
public R<String> queryEarliestHotRolledMaterial(@NotBlank(message = "入场钢卷号不能为空") @RequestParam String enterCoilNo) {
String material = iWmsMaterialCoilService.queryEarliestHotRolledMaterial(enterCoilNo);
if (material == null) {
return R.fail("未找到该入场钢卷号对应的热轧卷板材质");
}
return R.ok(material, "查询成功");
}
} }

View File

@@ -127,5 +127,12 @@ List<WmsMaterialCoilDeliveryExportVo> selectDeliveryExportListByCoilIds(@Param("
* 分页查询材质异常的钢卷 * 分页查询材质异常的钢卷
*/ */
IPage<WmsMaterialCoil> selectMaterialMismatchCoilsPage(IPage<WmsMaterialCoil> page); IPage<WmsMaterialCoil> selectMaterialMismatchCoilsPage(IPage<WmsMaterialCoil> page);
/**
* 根据入场钢卷号查询最早的热轧卷板材质
* @param enterCoilNo 入场钢卷号
* @return 材质信息
*/
String selectEarliestHotRolledMaterial(@Param("enterCoilNo") String enterCoilNo);
} }

View File

@@ -304,6 +304,16 @@ public interface IWmsMaterialCoilService {
*/ */
Boolean fixMaterialMismatchCoils(Long coilId); Boolean fixMaterialMismatchCoils(Long coilId);
/**
* 根据入场钢卷号查询最早的热轧卷板材质
* 用于前端传入某个入场钢卷号,查询该组钢卷中是否有热轧卷板
* 如果有,返回最早创建的热轧卷板的材质信息
*
* @param enterCoilNo 入场钢卷号
* @return 材质信息如果没有热轧卷板则返回null
*/
String queryEarliestHotRolledMaterial(String enterCoilNo);
/** /**
* 退火报表导出数据列表(按 coilIds * 退火报表导出数据列表(按 coilIds
* *

View File

@@ -5514,6 +5514,22 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
return dto; return dto;
} }
@Override
public String queryEarliestHotRolledMaterial(String enterCoilNo) {
if (StringUtils.isBlank(enterCoilNo)) {
throw new RuntimeException("入场钢卷号不能为空");
}
// 查询该入场钢卷号下最早创建的热轧卷板的材质
String material = baseMapper.selectEarliestHotRolledMaterial(enterCoilNo);
if (StringUtils.isBlank(material)) {
// 找不到返回空值说明这个钢卷号对应的组没有热轧卷板
return null;
}
return material;
}
} }

View File

@@ -1068,5 +1068,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) )
</select> </select>
<!-- 根据入场钢卷号查询最早的热轧卷板材质 -->
<select id="selectEarliestHotRolledMaterial" resultType="java.lang.String">
SELECT rm.material
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 AND rm.del_flag = 0
WHERE mc.del_flag = 0
AND mc.enter_coil_no = #{enterCoilNo}
AND mc.item_type = 'raw_material'
AND rm.raw_material_name LIKE '%热轧卷板%'
AND rm.material IS NOT NULL
ORDER BY mc.create_time ASC
LIMIT 1
</select>
</mapper> </mapper>