|
|
|
|
|
<?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 extend_info = JSON_SET(
|
|
|
|
|
|
extend_info,
|
|
|
|
|
|
CONCAT('$.', #{column}),
|
|
|
|
|
|
#{value}
|
|
|
|
|
|
)
|
|
|
|
|
|
WHERE id = #{id};
|
|
|
|
|
|
</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 ">
|
|
|
|
|
|
JSON_EXTRACT(extend_info, CONCAT('$.', #{field})) IS NULL
|
|
|
|
|
|
OR JSON_EXTRACT(extend_info, CONCAT('$.', #{field})) = ''
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
THEN 0
|
|
|
|
|
|
WHEN
|
|
|
|
|
|
<foreach collection="fields" item="field" separator=" AND ">
|
|
|
|
|
|
JSON_EXTRACT(extend_info, CONCAT('$.', #{field})) = JSON_EXTRACT(wms_extend_info, CONCAT('$.', #{field}))
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
THEN 2
|
|
|
|
|
|
ELSE 1
|
|
|
|
|
|
END
|
|
|
|
|
|
WHERE id = #{id}
|
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 清空整个表 -->
|
|
|
|
|
|
<update id="truncate">
|
|
|
|
|
|
TRUNCATE TABLE logistics_stock
|
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|
|
</mapper>
|