futian.liu
2023-11-17 209d9c6f60d96fc29fad0bd2f9dad8fe8424f91f
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package com.consum.base.controller;
 
import com.consum.base.BaseController;
import com.consum.base.pojo.BaseWarehouseParam;
import com.consum.base.pojo.query.WarehouseQry;
import com.consum.base.service.BaseWarehouseServiceImpl;
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * @Description 仓库管理
 * @Author 卢庆阳
 * @Date 2023/10/26
 */
@RestController
@RequestMapping("/pc/base/warehouse")
public class BaseWarehouseController extends BaseController {
 
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
 
 
    /**
     * @Description 新增
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody BaseWarehouseParam param) {
        if (StringUtils.isEmpty(param.getWarehouseName())) {
            return ResponseValue.error("仓库名称为空");
        }
        //TODO 加权限 省级管理员录入所有仓库信息
 
        int result = this.baseWarehouseService.add(param);
        if (result > 0) {
            return ResponseValue.success(1);
        }
        return ResponseValue.error("新增失败!");
    }
 
    /**
     * @Description 仓库列表查询
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @GetMapping("/list")
    public ResponseValue queryList(BaseWarehouseParam param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        param.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param);
        return ResponseValue.success(pager);
    }
 
    /**
     * @Description 编辑(修改状态)
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @PostMapping("/edit")
    public ResponseValue edit(@RequestBody BaseWarehouse baseWarehouse) {
        Long id = baseWarehouse.getId();
        if (id == null || id <= 0) {
            return ResponseValue.error("编辑的仓库不存在");
        }
        if (StringUtils.isEmpty(baseWarehouse.getWarehouseName())) {
            return ResponseValue.error("仓库名称为空");
        }
 
        int num = this.baseWarehouseService.updateBaseWarehouse(baseWarehouse);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("编辑失败!");
    }
 
    /**
     * 根据仓库id查询仓库详情
     *
     * @author 卢庆阳
     * @Date 2023/10/26
     */
    @GetMapping("/detail")
    public ResponseValue getById(Long id) {
        if (id == null) {
            return ResponseValue.error("仓库id为空");
        }
        BaseWarehouse baseWarehouse = this.baseWarehouseService.getById(id);
        if (baseWarehouse == null) {
            return ResponseValue.error("查询失败!");
        }
        return ResponseValue.success("查询成功!", baseWarehouse);
    }
 
    /**
     * @Description 根据id删除仓库
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @DeleteMapping("/del")
    public ResponseValue updateById(@RequestBody BaseWarehouse baseWarehouse) {
        if (baseWarehouse.getId() == null) {
            return ResponseValue.error("仓库id为空");
        }
        int num = this.baseWarehouseService.updateById(baseWarehouse);
 
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("删除失败!");
    }
 
    /**
     * @Description 根据仓库id获取机构用户信息
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @GetMapping("/select/userList")
    public ResponseValue queryList(Long baseWarehouseId) {
        if (baseWarehouseId == null) {
            return ResponseValue.error("仓库id为空");
        }
        this.baseWarehouseService.queryUserList(baseWarehouseId);
        return ResponseValue.success();
    }
 
    /**
     * @Description 根据机构id查询机构仓库
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    @GetMapping("/select/tenant_warehouse")
    public ResponseValue getByAgencyId(Long agencyId) {
        // TODO 暂无机构
//        if (agencyId == null) {
//            return ResponseValue.error("机构id为空");
//        }
        List<BaseWarehouse> list = this.baseWarehouseService.getByAgencyId(agencyId, null, null);
        if (list == null) {
            return ResponseValue.error("查询失败!");
        }
        return ResponseValue.success("查询成功!", list);
    }
 
    @ApiOperation(value = "根据仓库id和型号id 查询库存", notes = "根据仓库id和型号id 查询库存")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "warehouseQry", value = "仓库id和型号id", required = true, dataType = "WarehouseQry", paramType = "query")
    })
    @GetMapping("/select/number")
    public ResponseValue selectNumber(@Validated WarehouseQry warehouseQry) {
        Long warehouseId = warehouseQry.getWarehouseId();
        if (warehouseId == null) {
            Long agencyId = warehouseQry.getAgencyId();
            BaseWarehouse defaultWarehouseByAgencyId = this.baseWarehouseService.getDefaultWarehouseByAgencyId(agencyId);
            warehouseId = defaultWarehouseByAgencyId.getId();
        }
        Long baseGoodsModelsId = warehouseQry.getBaseGoodsModelsId();
        Integer warehouseType = warehouseQry.getWarehouseType();
        Integer states = warehouseQry.getStates();
        Integer buyType = warehouseQry.getBuyType();
 
        int num = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, buyType);
        return ResponseValue.success(num);
    }
 
 
}