You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.3 KiB
XML

2 years ago
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.camera.dal.mysql.stock.StockMapper">
2 years ago
<!-- 动态更新最后一条taskId匹配的记录 -->
<update id="updateLastByTaskId">
UPDATE logistics_stock
<set>
${column} = #{value}
</set>
WHERE id = (SELECT id FROM (SELECT id FROM logistics_stock WHERE task_id = #{taskId} ORDER BY id DESC LIMIT 1) AS tmp)
</update>
<!-- 根据字段列表更新status -->
<!-- 规则:有字段为空或null → status=0,全部和wms字段相等 → status=2,否则 → status=1 -->
<!-- fields格式如:code, tray_code,对应的wms字段为:wms_code, wms_tray_code(下划线格式) -->
<update id="updateStatusByFields">
UPDATE logistics_stock
SET status = CASE
WHEN
<foreach collection="fields" item="field" separator=" OR ">
${field} IS NULL OR ${field} = ''
</foreach>
THEN 0
WHEN
<foreach collection="fields" item="field" separator=" AND ">
${field} = wms_${field}
</foreach>
THEN 2
ELSE 1
END
WHERE id = #{id}
</update>
2 years ago
</mapper>