SRMHeaderController.java
6.29 KB
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
package com.huaheng.pc.srm.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.Wrappers;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.config.warehouse.domain.WarehouseU8;
import com.huaheng.pc.config.warehouse.service.WarehouseU8Service;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.srm.domain.SrmDetail;
import com.huaheng.pc.srm.domain.SrmHeader;
import com.huaheng.pc.srm.service.SrmDetailService;
import com.huaheng.pc.srm.service.SrmHeaderService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Controller
@RequestMapping("/srm/srmHeader")
public class SRMHeaderController extends BaseController {
private String prefix = "srm/srmHeader";
@RequiresPermissions("srm:srmHeader:view")
@GetMapping()
public String srmHeader() {
return prefix + "/srmHeader";
}
@Resource
private SrmHeaderService srmHeaderService;
@Resource
private SrmDetailService srmDetailService;
@Resource
private WarehouseU8Service warehouseU8Service;
@Resource
private MaterialService materialService;
/**
* 查询已到送货单单主列表
*/
@RequiresPermissions("srm:srmHeader:list")
@Log(title = "送货单-送货单", operating="查看送货单主单", action = BusinessType.GRANT)
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(SrmHeader srmHeader)
{
if(StringUtils.isAllEmpty(srmHeader.getCode(),srmHeader.getUserDef2(),srmHeader.getSupplierCode(),srmHeader.getMaterialCode())){
startPage();
}
List<SrmHeader> list = srmHeaderService.selectList(srmHeader) ;
if(StringUtils.isNotEmpty(srmHeader.getMaterialCode())){
Material material = materialService.getMaterialByCode(srmHeader.getMaterialCode(), ShiroUtils.getWarehouseCode());
if(material == null){
throw new ServiceException("物料编码不存在");
}
LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getCode()),SrmDetail::getCode,srmHeader.getCode());
lambdaQueryWrapper.eq(SrmDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getMaterialCode()),SrmDetail::getMaterialCode,srmHeader.getMaterialCode());
List<SrmDetail> srmDetailList = srmDetailService.list(lambdaQueryWrapper);
if(CollectionUtils.isNotEmpty(srmDetailList)){
List<String> codes = srmDetailList.stream().map(s -> s.getCode()).collect(Collectors.toList());
List<String> collect = codes.stream().distinct().collect(Collectors.toList());
List<SrmHeader> srmHeaders = list.stream().filter(l -> collect.contains(l.getCode())).collect(Collectors.toList());
return getDataTable(srmHeaders);
}
}
return getDataTable(list);
}
/**
* 扫描送货单
*/
@GetMapping("/getSrm")
public String getSrm(){
return prefix+"/getSrm";
}
/**
* 扫描送货单获取信息
* @param
* @return
*/
@RequiresPermissions("srm:srmHeader:list")
@PostMapping("/review")
@Log(title = "送货单-送货单", operating = "扫描送货单", action = BusinessType.INSERT)
@ResponseBody
public AjaxResult review(String lineCode){
return srmDetailService.review(lineCode);
}
/**
* 扫描送货单提交信息
* @param
* @return
*/
@RequiresPermissions("srm:srmHeader:getSrm")
@PostMapping("/getSrm")
@Log(title = "送货单-送货单", operating = "扫描送货单", action = BusinessType.INSERT)
@ResponseBody
public AjaxResult getSrm(SrmDetail srmDetail){
List<SrmDetail> srmDetailList = new ArrayList<>();
if(srmDetail == null){
return AjaxResult.error("空数据,请提交有效数据");
}
if(srmDetail.getId() == null){
return AjaxResult.error("物料数据为空");
}
srmDetailList.add(srmDetail);
return srmDetailService.reviewSrmModel(srmDetailList);
}
@PostMapping("/getwarehouse")
@ResponseBody
public TableDataInfo WarehouseList(String code) {
WarehouseU8 warehouseWu = new WarehouseU8();
warehouseWu.setWarehouseCode(ShiroUtils.getWarehouseCode());
if (!code.equals("")) {
warehouseWu.setUCompanyCode(code);
}
List<WarehouseU8> list = warehouseU8Service.getByDomain(warehouseWu);
return getDataTable(list);
}
@PostMapping("/getwarehouseForPda")
@ResponseBody
public AjaxResult WarehouseListForPda(String code) {
WarehouseU8 warehouseWu = new WarehouseU8();
warehouseWu.setWarehouseCode(ShiroUtils.getWarehouseCode());
if (!code.equals("")) {
warehouseWu.setUCompanyCode(code);
}
List<WarehouseU8> list = warehouseU8Service.getByDomain(warehouseWu);
return AjaxResult.success(list);
}
}