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));
|
}
|
|
}
|