#
luxiaotao1123
2025-12-29 9e7d103dcc2d95f72109ab5f02d3e942e9b7bbf9
zy-acs-manager/src/main/resources/mapper/manager/StaMapper.xml
@@ -7,9 +7,9 @@
        SET rsv_in_cnt = rsv_in_cnt + #{qty},
            update_time = NOW()
        WHERE id = #{staId}
          AND deleted = 0
          AND status = 1
          AND (capacity - occ_cnt - rsv_in_cnt) >= #{qty}
        AND deleted = 0
        AND status = 1
        AND (capacity - occ_cnt - rsv_in_cnt) >= #{qty}
    </update>
    <update id="releaseReserveIn">
@@ -17,11 +17,72 @@
        SET rsv_in_cnt = rsv_in_cnt - #{qty},
            update_time = NOW()
        WHERE id = #{staId}
          AND deleted = 0
          AND status = 1
          AND rsv_in_cnt > #{qty}
        AND deleted = 0
        AND status = 1
        AND rsv_in_cnt >= #{qty}
    </update>
    <update id="confirmReserveIn">
        UPDATE man_sta
        SET rsv_in_cnt = rsv_in_cnt - #{qty},
            occ_cnt = occ_cnt + #{qty},
            update_time = NOW()
        WHERE id = #{staId}
        AND deleted = 0
        AND status = 1
        AND rsv_in_cnt >= #{qty}
    </update>
    <update id="tryReserveOut">
        UPDATE man_sta
        SET rsv_out_cnt = rsv_out_cnt + #{qty},
            update_time = NOW()
        WHERE id = #{staId}
        AND deleted = 0
        AND status = 1
        AND (occ_cnt - rsv_out_cnt) >= #{qty}
    </update>
    <update id="releaseReserveOut">
        UPDATE man_sta
        SET rsv_out_cnt = rsv_out_cnt - #{qty},
            update_time = NOW()
        WHERE id = #{staId}
        AND deleted = 0
        AND status = 1
        AND rsv_out_cnt >= #{qty}
    </update>
    <update id="confirmReserveOut">
        UPDATE man_sta
        SET rsv_out_cnt = rsv_out_cnt - #{qty},
            occ_cnt = occ_cnt - #{qty},
            update_time = NOW()
        WHERE id = #{staId}
        AND deleted = 0
        AND status = 1
        AND rsv_out_cnt >= #{qty}
        AND occ_cnt >= #{qty}
    </update>
    <select id="selectAvailableOutSta" resultType="com.zy.acs.manager.manager.entity.Sta">
        SELECT *
        FROM man_sta
        WHERE 1=1
        AND deleted = 0
        AND status = 1
        AND (IFNULL(occ_cnt, 0) - IFNULL(rsv_out_cnt, 0)) >= #{minAvailableQty}
    </select>
    <select id="selectAvailableInSta" resultType="com.zy.acs.manager.manager.entity.Sta">
        SELECT *
        FROM man_sta
        WHERE 1=1
        AND deleted = 0
        AND status = 1
        AND (IFNULL(capacity, 0) - IFNULL(occ_cnt, 0) - IFNULL(rsv_in_cnt, 0)) >= #{minAvailableQty}
    </select>
    <!-- 关联查询sql -->
    <sql id="selectSql">
        SELECT a.*