# HkInventoryItem.java

    package cloud.wconnect.workperformance.entity.hkinventory;

    import com.baomidou.mybatisplus.annotation.*;
    import lombok.Getter;
    import lombok.Setter;
    import lombok.ToString;
    import lombok.experimental.Accessors;

    import java.io.Serializable;
    import java.math.BigDecimal;

    /**
     * <p>
     * 客房库存管理-物品库存表
     * </p>
     *
     * @author lichen
     * @since 2025-04-19
     */
    @Getter
    @Setter
    @ToString
    @Accessors(chain = true)
    @TableName("hk_inventory_item")
    public class HkInventoryItem implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 主键id
         */
        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;

        /**
         * 租户id
         */
        private Integer tenantId;

        /**
         * 资产id
         */
        private Integer propertyId;

        /**
         * 客房库存管理id
         */
        private Integer hkInventoryId;

        /**
         * 分类id
         */
        private Integer categoryId;

        /**
         * 房型id
         */
        private Integer roomTypeId;

        /**
         * 物品id
         */
        private Integer itemId;

        /**
         * 物品名称
         */
        private String itemName;

        /**
         * 每个房间最少需要的数量
         */
        private Integer minPerRoom;

        /**
         * 目标PAR值，PAR= 库存 / 物品所需的总数（min_per_room*total_rooms）
         */
        private BigDecimal parTarget;

        /**
         * 计算指标时使用的单价
         */
        private BigDecimal unitCost;

        /**
         * item单价对应的订单id。没有订单时此值为0，单价来源于item config
         */
        private Integer purchaseOrderId;

        /**
         * 库存数量。null表示未录入信息
         */
        private Integer inventory;

        /**
         * 购买的数量，来源与订单表
         */
        private Integer purchase;

        /**
         * 用量，公式Previous（上期库存） + purchase - Inventory（本期库存）
         */
        @TableField("`usage`")
        private Integer usage;

        /**
         * 补货费用，公式Usage * Unit Cost
         */
        private BigDecimal replenishmentCost;

        /**
         * 现有的PAR，公式inventory/minPerRoom*totalRooms
         */
        private BigDecimal existingPar;

        /**
         * PAR差值，公式现有的PAR-标准PAR，公式 Existing PAR - PAR Target
         */
        private BigDecimal diffPar;

        /**
         * 总资产，公式inventory*unitCost
         */
        @TableField(updateStrategy = FieldStrategy.ALWAYS)
        private BigDecimal totalBalance;

        /**
         * 需要购买的金额，公式(PAR Target - Existing PAR) * Min. Per Room * Total Rooms	* Unit Cost
         */
        @TableField(updateStrategy = FieldStrategy.ALWAYS)
        private BigDecimal requiredPurchaseAmount;

        /**
         * 需要购买的数量，公式(PAR Target - Existing PAR) * Min. Per Room * Total Rooms
         */
        @TableField(updateStrategy = FieldStrategy.ALWAYS)
        private Integer requiredPurchaseCount;

        /**
         * 更新日志
         */
        private String updateLog;

    }