wms/nflg-wms-repository/src/main/resources/mapper/WmsShipmentMaterialCodeItem...

29 lines
1.2 KiB
XML
Raw Normal View History

<?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="com.nflg.wms.repository.mapper.WmsShipmentMaterialCodeItemMapper">
<select id="getByCodeId" resultType="com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO">
select * from wms_shipment_material_code_item where material_code_id = #{codeId}
</select>
<update id="updatePackingNum">
WITH updated_data AS (
SELECT
"id",
packing_num,
(packing_num - (SELECT COUNT(1) FROM wms_shipment_material_code_item_qr WHERE item_id =
wms_shipment_material_code_item."id" AND status = 1)) as new_packing_left
FROM wms_shipment_material_code_item
)
UPDATE wms_shipment_material_code_item t
SET
packing_left = u.new_packing_left,
status = CASE WHEN u.new_packing_left = 0 THEN 2 WHEN u.new_packing_left=u.packing_num THEN 0 ELSE 1 END
FROM updated_data u
WHERE t."id" = u."id" and t."id" IN
<foreach item="id" collection="ids" separator="," open="(" close=")">
#{id}
</foreach>
</update>
</mapper>