package com.doumee.service.business.impl; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwStockMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwStockService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; /** * 运维库存信息表Service实现 * @author 江蹄蹄 * @date 2025/01/06 11:05 */ @Service public class YwStockServiceImpl implements YwStockService { @Autowired private YwStockMapper ywStockMapper; @Override public Integer create(YwStock ywStock) { ywStockMapper.insert(ywStock); return ywStock.getId(); } @Override public void deleteById(Integer id) { ywStockMapper.deleteById(id); } @Override public void delete(YwStock ywStock) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(ywStock); ywStockMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } ywStockMapper.deleteBatchIds(ids); } @Override public void updateById(YwStock ywStock) { ywStockMapper.updateById(ywStock); } @Override public void updateByIdInBatch(List ywStocks) { if (CollectionUtils.isEmpty(ywStocks)) { return; } for (YwStock ywStock: ywStocks) { this.updateById(ywStock); } } @Override public YwStock findById(Integer id) { return ywStockMapper.selectById(id); } @Override public YwStock findOne(YwStock ywStock) { QueryWrapper wrapper = new QueryWrapper<>(ywStock); return ywStockMapper.selectOne(wrapper); } @Override public List findList(YwStock ywStock) { QueryWrapper wrapper = new QueryWrapper<>(ywStock); return ywStockMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper(); Utils.MP.blankToNull(pageWrap.getModel()); YwStock model = pageWrap.getModel(); queryWrapper.selectAll(YwStock.class) .selectAs(YwWarehouse::getName,YwStock::getWarehouseName) .selectAs(YwMaterial::getCode,YwStock::getMaterialCode) .selectAs(YwMaterial::getName,YwStock::getMaterialName) .selectAs(YwMaterial::getQrcode,YwStock::getMaterialQrcode) .selectAs(YwMaterial::getBrand,YwStock::getMaterialBrand) .selectAs(YwMaterial::getUnitName,YwStock::getMaterialUnitName) .selectAs(YwMaterial::getAttr,YwStock::getMaterialAttr) .leftJoin(YwWarehouse.class,YwWarehouse::getId,YwStock::getWarehouseId) .leftJoin(YwMaterial.class,YwMaterial::getId,YwStock::getMaterialId) .eq(Objects.nonNull(model.getWarehouseId()),YwOutinbound::getWarehouseId,model.getWarehouseId()) .and(StringUtils.isNotBlank(model.getMaterialCode()),i->i.like(YwMaterial::getCode,model.getMaterialCode()).or().like(YwMaterial::getName,model.getMaterialCode())) .like(StringUtils.isNotBlank(model.getMaterialAttr()),YwMaterial::getAttr,model.getMaterialAttr()) .orderByAsc(YwMaterial::getCode) ; IPage iPage = ywStockMapper.selectJoinPage(page,YwStock.class,queryWrapper); return PageData.from(iPage); } @Override public long count(YwStock ywStock) { QueryWrapper wrapper = new QueryWrapper<>(ywStock); return ywStockMapper.selectCount(wrapper); } }