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<DepotStore> page, IgdsBaseParam param) {
|
QueryWrapper<DepotStore> 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<DepotStore> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("depot_id", depotId);
|
queryWrapper.le("update_time", time);
|
queryWrapper.orderByDesc("update_time");
|
|
List<DepotStore> list = depotStoreMapper.selectList(queryWrapper);
|
|
if (null == list || list.isEmpty()) {
|
return null;
|
}
|
return list.get(0);
|
}
|
|
}
|