feat(qo): 新增物料查询排序字段支持

- QmsQcMaterialSearchQO中增加sortField和sortOrder字段
- 根据sortField动态选择排序字段,支持多种物料相关字段排序
- 支持sortOrder指定升序或降序,默认降序排序
- QmsQcMaterialMapper.xml中修改SQL实现根据请求参数动态排序
- 默认排序仍为物料编号倒序,兼容无排序参数情况
This commit is contained in:
曹鹏飞 2026-05-06 19:09:33 +08:00
parent 260e533cc0
commit b06c07dc6c
2 changed files with 71 additions and 2 deletions

View File

@ -34,4 +34,15 @@ public class QmsQcMaterialSearchQO extends PageQO {
* 物料名称模糊匹配
*/
private String materialName;
/**
* 排序字段对应 QmsQcMaterialVO 中的字段名 materialNocreateTime
* 为空时默认按物料编号倒序
*/
private String sortField;
/**
* 排序类型asc=升序desc=降序默认 desc
*/
private String sortOrder;
}

View File

@ -48,7 +48,36 @@
AND material_name ilike concat('%', #{request.materialName}, '%')
</if>
</where>
ORDER BY material_no DESC
ORDER BY
<choose>
<when test="request.sortField != null and request.sortField != ''">
<choose>
<when test="request.sortField == 'id'">id</when>
<when test="request.sortField == 'materialNo'">material_no</when>
<when test="request.sortField == 'materialDesc'">material_desc</when>
<when test="request.sortField == 'materialDescIsUpgrade'">material_desc_is_upgrade</when>
<when test="request.sortField == 'materialCategoryCode'">material_category_code</when>
<when test="request.sortField == 'materialCategoryCodePathName'">material_category_code_path_name</when>
<when test="request.sortField == 'drawingNo'">drawing_no</when>
<when test="request.sortField == 'drawingNoVer'">drawing_no_ver</when>
<when test="request.sortField == 'materialName'">material_name</when>
<when test="request.sortField == 'materialTexture'">material_texture</when>
<when test="request.sortField == 'materialSpecifications'">material_specifications</when>
<when test="request.sortField == 'isStandardMaintained'">is_standard_maintained</when>
<when test="request.sortField == 'createdType'">created_type</when>
<when test="request.sortField == 'createByName'">create_by_name</when>
<when test="request.sortField == 'createTime'">create_time</when>
<when test="request.sortField == 'updateByName'">update_by_name</when>
<when test="request.sortField == 'updateTime'">update_time</when>
<otherwise>material_no</otherwise>
</choose>
<choose>
<when test="request.sortOrder != null and request.sortOrder.equalsIgnoreCase('asc')">ASC</when>
<otherwise>DESC</otherwise>
</choose>
</when>
<otherwise>material_no DESC</otherwise>
</choose>
</select>
<!--
@ -94,7 +123,36 @@
AND material_name ilike concat('%', #{request.materialName}, '%')
</if>
</where>
ORDER BY material_no DESC
ORDER BY
<choose>
<when test="request.sortField != null and request.sortField != ''">
<choose>
<when test="request.sortField == 'id'">id</when>
<when test="request.sortField == 'materialNo'">material_no</when>
<when test="request.sortField == 'materialDesc'">material_desc</when>
<when test="request.sortField == 'materialDescIsUpgrade'">material_desc_is_upgrade</when>
<when test="request.sortField == 'materialCategoryCode'">material_category_code</when>
<when test="request.sortField == 'materialCategoryCodePathName'">material_category_code_path_name</when>
<when test="request.sortField == 'drawingNo'">drawing_no</when>
<when test="request.sortField == 'drawingNoVer'">drawing_no_ver</when>
<when test="request.sortField == 'materialName'">material_name</when>
<when test="request.sortField == 'materialTexture'">material_texture</when>
<when test="request.sortField == 'materialSpecifications'">material_specifications</when>
<when test="request.sortField == 'isStandardMaintained'">is_standard_maintained</when>
<when test="request.sortField == 'createdType'">created_type</when>
<when test="request.sortField == 'createByName'">create_by_name</when>
<when test="request.sortField == 'createTime'">create_time</when>
<when test="request.sortField == 'updateByName'">update_by_name</when>
<when test="request.sortField == 'updateTime'">update_time</when>
<otherwise>material_no</otherwise>
</choose>
<choose>
<when test="request.sortOrder != null and request.sortOrder.equalsIgnoreCase('asc')">ASC</when>
<otherwise>DESC</otherwise>
</choose>
</when>
<otherwise>material_no DESC</otherwise>
</choose>
</select>
</mapper>