package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.Depot; import com.fzzy.igds.domain.DepotStore; import com.fzzy.igds.mapper.DepotMapper; import com.fzzy.igds.mapper.DepotStoreMapper; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateFormatUtils; 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 DepotStoreMapper depotStoreMapper; @Resource private DepotMapper depotMapper; 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", param.getStart()); } if (null != param.getEnd()) { queryWrapper.le("update_time", param.getEnd()); } depotStoreMapper.selectPage(page, queryWrapper); } /** * 更新保存数据 * * @param data */ public void saveDepotStore(DepotStore data) { if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(data.getDeptId())) { data.setDeptId(ContextUtil.subDeptId(null)); } if (StringUtils.isEmpty(data.getId())) { data.setId(data.getDepotId() + "_" + DateFormatUtils.format(data.getStoreDate(), "yyyyMMddHHmmss") + "_" + DateFormatUtils.format(data.getUpdateTime(), "yyyyMMddHHmmss")); data.setCreateTime(new Date()); data.setRemark("系统生成"); data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); depotStoreMapper.insert(data); }else{ data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); depotStoreMapper.updateById(data); } } /** * 删除数据 * * @param data * @return */ public String delDepotStore(DepotStore data) { depotStoreMapper.deleteById(data); return null; } /** * 获取仓库最后一条库存数据 * * @param depotId * @param time * @return */ public DepotStore getLastData(String depotId, Date time) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("depot_id", depotId); queryWrapper.ge("create_time", time); queryWrapper.le("create_time", time); queryWrapper.orderByDesc("create_time"); List list = depotStoreMapper.selectList(queryWrapper); if (null == list || list.isEmpty()) { return null; } return list.get(0); } public void addDepotStore(DepotStore store, boolean updateDepot) { if (null == store.getUpdateTime()) store.setUpdateTime(new Date()); if (null == store.getId()) store.setId(ContextUtil.generateId()); depotStoreMapper.insert(store); if (updateDepot) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id", store.getDepotId()).set("storage_real", store.getStorageReal()); depotMapper.update(null, updateWrapper); } } }