czt
2025-12-01 096296cd7485c5583c8194d88cca700e3c4d84a0
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotStoreService.java
@@ -1,15 +1,17 @@
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.repository.DepotRepository;
import com.fzzy.igds.repository.DepotStoreRepository;
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.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
@@ -25,23 +27,33 @@
public class DepotStoreService {
    @Resource
    private DepotStoreRepository depotStoreRepository;
    private DepotStoreMapper depotStoreMapper;
    @Resource
    private DepotRepository depotRepository;
    private DepotMapper depotMapper;
    /**
     * JPA分页查询数据
     *
     * @param specification
     * @param pageable
     * @return
     */
    public Page<DepotStore> findAll(Specification<DepotStore> specification, Pageable pageable) {
        return depotStoreRepository.findAll(specification, pageable);
    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", param.getStart());
        }
        if (null != param.getEnd()) {
            queryWrapper.le("update_time", param.getEnd());
        }
        depotStoreMapper.selectPage(page, queryWrapper);
    }
    /**
     * JPA更新保存数据
     * 更新保存数据
     *
     * @param data
     */
@@ -52,36 +64,48 @@
        if (StringUtils.isEmpty(data.getDeptId())) {
            data.setDeptId(ContextUtil.subDeptId(null));
        }
        data.setUpdateBy(ContextUtil.getLoginUserName());
        data.setUpdateTime(new Date());
        data.setId(data.getDepotId() + "_" + DateFormatUtils.format(data.getStoreDate(), "yyyyMMddHHmmss") + "_" + DateFormatUtils.format(data.getUpdateTime(), "yyyyMMddHHmmss"));
        data.setCreateTime(new Date());
        data.setRemark("系统生成");
        depotStoreRepository.save(data);
        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);
        }
    }
    /**
     * JPA删除数据
     * 删除数据
     *
     * @param data
     * @return
     */
    public String delDepotStore(DepotStore data) {
        depotStoreRepository.delete(data);
        depotStoreMapper.deleteById(data);
        return null;
    }
    /**
     * JPA获取仓库最后一条库存数据
     * 获取仓库最后一条库存数据
     *
     * @param depotId
     * @param time
     * @return
     */
    public DepotStore getLastData(String depotId, Date time) {
        List<DepotStore> list = depotStoreRepository.getDataByDepotId(depotId, time);
        QueryWrapper<DepotStore> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("depot_id", depotId);
        queryWrapper.ge("create_time", time);
        queryWrapper.le("create_time", time);
        queryWrapper.orderByDesc("create_time");
        List<DepotStore> list = depotStoreMapper.selectList(queryWrapper);
        if (null == list || list.isEmpty()) {
            return null;
        }
@@ -92,12 +116,13 @@
        if (null == store.getUpdateTime()) store.setUpdateTime(new Date());
        if (null == store.getId()) store.setId(ContextUtil.generateId());
        depotStoreRepository.save(store);
        depotStoreMapper.insert(store);
        if (updateDepot) {
            depotRepository.updateDepotStorage(store.getStorageReal(), store.getDepotId());
            UpdateWrapper<Depot> updateWrapper = new UpdateWrapper<>();
            updateWrapper.eq("id", store.getDepotId()).set("storage_real", store.getStorageReal());
            depotMapper.update(null, updateWrapper);
        }
    }
}