王佳豪
2021-05-06 b548ff3ac8e3a12bd6e5c95ddd629798b699bb0e
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
package com.zy.asrs.controller;
 
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocNormal;
import com.zy.asrs.entity.param.LocNormalStockOutParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.LocNormalService;
import com.zy.asrs.service.OutStockService;
import com.zy.asrs.service.WorkService;
import com.zy.common.service.erp.ErpService;
import com.zy.common.service.erp.entity.OutStockBillEntry;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.Date;
import java.util.List;
import java.util.Map;
 
@Slf4j
@RestController
public class OutStockController extends BaseController {
 
    @Autowired
    private OutStockService outStockService;
    @Autowired
    private WorkService workService;
    @Autowired
    private LocNormalService locNormalService;
    @Autowired
    private ErpService erpService;
 
    /**
     *
     * @param curr
     * @param limit
     * @param param
     * @return
     */
    @RequestMapping(value = "/outStock/query/list")
    @ManagerAuth
    public R outStockQueryList(@RequestParam(defaultValue = "1")Integer curr,
                          @RequestParam(defaultValue = "10")Integer limit,
                          @RequestParam Map<String, Object> param){
        return R.ok(outStockService.queryOutStock(toPage(curr, limit, param, OutStockBillEntry.class)));
    }
 
    /**
     * 检索符合通知单的立库库存物料
     * @param fbillNo
     * @return
     */
    @RequestMapping(value = "/outStock/query/locList")
    @ManagerAuth
    public R queryMatWithLoc(String fbillNo) {
        List<LocDetl> list = outStockService.queryMatWithLoc(fbillNo);
        return R.ok(list);
    }
 
    @RequestMapping(value = "/plate/outStock/start")
    @ManagerAuth(memo = "出库作业")
    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
        outStockService.startupFullTakeStore(param, getUserId());
        return R.ok("出库启动成功");
    }
 
    /**
     * 检索符合通知单的平仓库存物料
     * @param fbillNo
     * @return
     */
    @RequestMapping(value = "/outStock/query/locNormalList")
    @ManagerAuth
    public R queryMatWithLocNormal(String fbillNo) {
        List<LocNormal> list = locNormalService.queryLocNorlMatnr(fbillNo);
        return R.ok(list);
    }
 
 
    /**
     * 平仓对接erp出库
     * @param
     * @return
     */
    @RequestMapping(value = "/outStock/locNormal")
    @ManagerAuth
    public R outStockLocNormal(@RequestBody LocNormalStockOutParam param) {
        Long modiUser = getUserId();
        Date modiTime = new Date();
        for (LocNormal locNormals:param.getList()) {
            // erp中间表更新数据
            Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 获取出库单主表主键
            if (!erpService.incrementCPakOut(FInterI, locNormals.getMatnr(), locNormals.getAnfme().doubleValue(), param.getSupplier())) {
                log.info("更新ERP成品出库数据[matnr={0}]失败", locNormals.getMatnr());
            }
            // 把对应物料平仓库存出库
            locNormalService.outLocNormal(locNormals.getMatnr(), modiUser, modiTime, locNormals.getId());
        }
        return R.ok("平仓出库成功");
    }
}