liu
13 小时以前 5d34bdd3c426bb2ca5f6627424ae67984f745603
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package cn.iocoder.yudao.module.asset.dal.mysql.item;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.asset.controller.admin.item.vo.AssetItemPageReqVO;
import cn.iocoder.yudao.module.asset.dal.dataobject.item.AssetItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
 
@Mapper
public interface AssetItemMapper extends BaseMapperX<AssetItemDO> {
 
    @Update("UPDATE asset_item SET quantity = quantity - #{quantity}, update_time = NOW() "
            + "WHERE id = #{id} AND deleted = 0 AND quantity >= #{quantity}")
    int decreaseStock(@Param("id") Long id, @Param("quantity") Integer quantity);
 
    @Update("UPDATE asset_item SET quantity = quantity + #{quantity}, update_time = NOW() "
            + "WHERE id = #{id} AND deleted = 0")
    int increaseStock(@Param("id") Long id, @Param("quantity") Integer quantity);
 
    default AssetItemDO selectByAssetNo(String assetNo) {
        return selectOne(AssetItemDO::getAssetNo, assetNo);
    }
 
    default PageResult<AssetItemDO> selectPage(AssetItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<AssetItemDO>()
                .likeIfPresent(AssetItemDO::getAssetNo, reqVO.getAssetNo())
                .likeIfPresent(AssetItemDO::getName, reqVO.getName())
                .eqIfPresent(AssetItemDO::getCategory, reqVO.getCategory())
                .likeIfPresent(AssetItemDO::getCustodianName, reqVO.getCustodianName())
                .orderByDesc(AssetItemDO::getId));
    }
 
}