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.
|
|
|
|
|
<?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">
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 动态更新最后一条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>
|
|
|
|
|
|
|
|
|
|
|
|
</mapper>
|