feat(wms): 添加钢卷库区操作记录导出功能以及优化查询速率
- 在服务接口中新增 exportBySecondWarehouseIdAndTimeRange 方法用于导出功能 - 在控制器中新增 exportByWarehouseAndTime 接口支持报表导出 - 在映射器中新增 selectVoListWithJoin 查询方法优化关联查询 - 在 XML 映射文件中新增完整的关联查询 SQL 和结果映射配置 - 在服务实现类中重构查询逻辑使用新的关联查询方法 - 新增 WmsCoilWarehouseOperationLogExportVo 导出数据对象 - 实现导出逻辑将操作记录转换为 Excel 格式并支持多表关联 - 添加状态描述转换方法支持中文显示 - 更新 VO 类继承 BaseEntity 基础实体类
This commit is contained in:
@@ -18,5 +18,115 @@
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.klp.domain.vo.WmsCoilWarehouseOperationLogVo" id="WmsCoilWarehouseOperationLogVoResult">
|
||||
<result property="logId" column="log_id"/>
|
||||
<result property="coilId" column="coil_id"/>
|
||||
<result property="actualWarehouseId" column="actual_warehouse_id"/>
|
||||
<result property="operationType" column="operation_type"/>
|
||||
<result property="inOutType" column="in_out_type"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<!-- warehouse -->
|
||||
<association property="warehouse" javaType="com.klp.domain.vo.WmsActualWarehouseVo">
|
||||
<result property="actualWarehouseId" column="actual_warehouse_id"/>
|
||||
<result property="actualWarehouseName" column="actual_warehouse_name"/>
|
||||
</association>
|
||||
<!-- coil -->
|
||||
<association property="coil" javaType="com.klp.domain.vo.WmsMaterialCoilVo">
|
||||
<result property="coilId" column="coil_id"/>
|
||||
<result property="itemId" column="item_id"/>
|
||||
<result property="itemCode" column="item_code"/>
|
||||
<result property="enterCoilNo" column="enter_coil_no"/>
|
||||
<result property="currentCoilNo" column="current_coil_no"/>
|
||||
<result property="supplierCoilNo" column="supplier_coil_no"/>
|
||||
<result property="itemType" column="item_type"/>
|
||||
<result property="grossWeight" column="gross_weight"/>
|
||||
<result property="netWeight" column="net_weight"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="remark" column="coil_remark"/>
|
||||
<result property="warehouseName" column="warehouse_name"/>
|
||||
<result property="actualWarehouseName" column="aw_actual_warehouse_name"/>
|
||||
<result property="itemName" column="item_name"/>
|
||||
<result property="specification" column="specification"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="manufacturer" column="manufacturer"/>
|
||||
<result property="surfaceTreatmentDesc" column="surface_treatment_desc"/>
|
||||
<result property="zincLayer" column="zinc_layer"/>
|
||||
<result property="businessPurpose" column="business_purpose"/>
|
||||
<result property="trimmingRequirement" column="trimming_requirement"/>
|
||||
<result property="packagingRequirement" column="packaging_requirement"/>
|
||||
<result property="qualityStatus" column="quality_status"/>
|
||||
<result property="packingStatus" column="packing_status"/>
|
||||
<result property="length" column="length"/>
|
||||
<result property="createTime" column="coil_create_time"/>
|
||||
</association>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectVoListWithJoin" resultMap="WmsCoilWarehouseOperationLogVoResult">
|
||||
SELECT log.log_id, log.coil_id, log.actual_warehouse_id, log.operation_type, log.in_out_type, log.remark,
|
||||
log.create_time, log.create_by, log.update_time, log.update_by,
|
||||
aw.actual_warehouse_name,
|
||||
mc.item_id,
|
||||
mc.enter_coil_no, mc.current_coil_no, mc.supplier_coil_no, mc.item_type,
|
||||
mc.gross_weight, mc.net_weight, mc.status, mc.remark AS coil_remark,
|
||||
mc.create_time AS coil_create_time,
|
||||
w.warehouse_name,
|
||||
aw2.actual_warehouse_name AS aw_actual_warehouse_name,
|
||||
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 item_name,
|
||||
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 item_code,
|
||||
mc.business_purpose, mc.trimming_requirement, mc.packaging_requirement,
|
||||
mc.quality_status, mc.packing_status, mc.length
|
||||
FROM wms_coil_warehouse_operation_log log
|
||||
LEFT JOIN wms_material_coil mc ON log.coil_id = mc.coil_id AND mc.del_flag = 0
|
||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||
LEFT JOIN wms_actual_warehouse aw ON log.actual_warehouse_id = aw.actual_warehouse_id
|
||||
LEFT JOIN wms_actual_warehouse aw2 ON mc.actual_warehouse_id = aw2.actual_warehouse_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
|
||||
<where>
|
||||
<if test="warehouseIds != null and warehouseIds.size() > 0">
|
||||
AND log.actual_warehouse_id IN
|
||||
<foreach collection="warehouseIds" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="operationType != null">
|
||||
AND log.operation_type = #{operationType}
|
||||
</if>
|
||||
<if test="inOutType != null">
|
||||
AND log.in_out_type = #{inOutType}
|
||||
</if>
|
||||
<if test="startTime != null">
|
||||
AND log.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND log.create_time <= #{endTime}
|
||||
</if>
|
||||
AND log.del_flag = 0
|
||||
</where>
|
||||
ORDER BY log.create_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user