package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.DepotStore; import com.fzzy.igds.mapper.DepotStoreMapper; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @Description * @Author CZT * @Date 2025/11/27 13:44 */ @Slf4j @Service public class DepotStoreService { @Resource private DepotService depotService; @Resource private DepotStoreMapper depotStoreMapper; public void listPageData(Page page, IgdsBaseParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); param.setCompanyId(ContextUtil.getCompanyId()); param.setDeptId(ContextUtil.subDeptId(null)); queryWrapper.eq("company_id", param.getCompanyId()); queryWrapper.eq("dept_id", param.getDeptId()); if (StringUtils.isNotBlank(param.getName())) { queryWrapper.eq("depot_id", param.getName()); } if (null != param.getStart()) { queryWrapper.ge("update_time", DateUtil.getCurZero(param.getStart())); } if (null != param.getEnd()) { queryWrapper.le("update_time", DateUtil.getNextZero(param.getEnd())); } depotStoreMapper.selectPage(page, queryWrapper); } /** * 先更新,如果没有则新增 * 数据处理好,此方法不处理任何字段 * @param data */ public void updateAndSave(DepotStore data) { int i = depotStoreMapper.updateById(data); if(i < 1){ i = depotStoreMapper.insert(data); } if(i > 0){ //更改到仓库表 depotService.updateByDepotStore(data); } } /** * 获取仓库最后一条库存数据 * * @param depotId * @param time * @return */ public DepotStore getLastData(String depotId, Date time) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("depot_id", depotId); queryWrapper.le("update_time", time); queryWrapper.orderByDesc("update_time"); List list = depotStoreMapper.selectList(queryWrapper); if (null == list || list.isEmpty()) { return null; } return list.get(0); } }