luqingyang
2023-11-02 5e6c61b8753870ef2f8cde60eef47e3eeefe89e6
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
package com.consum.base.controller;
 
import com.consum.base.BaseController;
import com.consum.base.pojo.*;
import com.consum.base.service.BaseCategoryServiceImpl;
import com.consum.base.service.LWhFormOutputServiceImpl;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
 
/**
 * @Description 出库单
 * @Author 卢庆阳
 * @Date 2023/10/27
 */
@RestController
@RequestMapping("/pc/l/wh/form/output")
public class LWhFormOutputController extends BaseController {
 
    @Autowired
    private LWhFormOutputServiceImpl lWhFormOutputService;
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
 
    /**
     * @Description 新增出库单
     * @Author 卢庆阳
     * @Date 2023/10/27
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormOutputInsertParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        int result = this.lWhFormOutputService.add(param, currentUser,this.getSysInfo());
        if (result > 0) return ResponseValue.success(1);
        return ResponseValue.error("新增失败!");
    }
 
    /**
     * @Description 列表查询
     */
    @GetMapping("/list")
    public ResponseValue queryFormOutputList(LWhFormOutputParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        FinSysTenantUser sysInfo = getSysInfo();
 
        //只能查询本级 及以下机构的出库单
        //??????
 
        GenericPager genericPager = lWhFormOutputService.queryFormOutputList(param);
        List<LWhFormOutput> datas = genericPager.getDatas();
        ArrayList<LWhFormOutputExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setBusinessType(3);
                lWhProcureModel.setBusinessId(item.getId());
                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
                LWhFormOutputExtend formProcureExtend = new LWhFormOutputExtend();
                BeanUtils.copyProperties(item, formProcureExtend);
                formProcureExtend.setModels(models);
                newDatas.add(formProcureExtend);
            });
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            fieldDatas.setAccessible(true);
            fieldDatas.set(genericPager, newDatas);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        genericPager.setDatas(newDatas);
        return ResponseValue.success(genericPager);
    }
 
    /**
     * 根据id查询详情
     */
    @GetMapping("/detail")
    public ResponseValue getById(Long id) throws IllegalAccessException {
        if (id == null) {
            return ResponseValue.error("出库单id为空");
        }
        LWhFormOutput lWhFormOutput = lWhFormOutputService.get(new LWhFormOutput(id));
        LWhFormOutputExtend formOutputExtend = new LWhFormOutputExtend();
        BeanUtils.copyProperties(lWhFormOutput, formOutputExtend);
 
        // 查询型号数量
        LWhProcureModel lWhProcureModel = new LWhProcureModel();
        lWhProcureModel.setBusinessType(3);
        lWhProcureModel.setBusinessId(id);
        List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
        formOutputExtend.setModels(models);
 
        return ResponseValue.success("查询成功!", formOutputExtend);
    }
 
    /**
     * @Description  根据仓库id和型号id 查询库存
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    @GetMapping("/select/number")
    public ResponseValue selectNumber(Long warehouseId,Long baseGoodsModelsId) {
        if (warehouseId == null || baseGoodsModelsId == null) {
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1,null);
        return ResponseValue.success(num);
    }
 
 
 
 
 
 
 
}