czt
2025-12-03 53fab3f56e8335fbf39fc07c4e10f6abdb0505bb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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.fzzy.igds.utils.DateUtil;
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<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 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<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;
        }
        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<Depot> updateWrapper = new UpdateWrapper<>();
            updateWrapper.eq("id", store.getDepotId()).set("storage_real", store.getStorageReal());
            depotMapper.update(null, updateWrapper);
        }
    }
 
}