Commit 0779b0bd04ba8cf087da8c3663368c7f7368713c
1 parent
2fd42771
送货单:已到待检和已到合格
Showing
5 changed files
with
981 additions
and
1 deletions
src/main/java/com/huaheng/pc/srm/controller/SRMDetailController.java
1 | 1 | package com.huaheng.pc.srm.controller; |
2 | 2 | |
3 | 3 | |
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | 5 | import com.huaheng.common.utils.StringUtils; |
6 | +import com.huaheng.common.utils.Wrappers; | |
5 | 7 | import com.huaheng.common.utils.security.ShiroUtils; |
6 | 8 | import com.huaheng.framework.aspectj.lang.annotation.Log; |
7 | 9 | import com.huaheng.framework.aspectj.lang.constant.BusinessType; |
... | ... | @@ -70,6 +72,56 @@ public class SRMDetailController extends BaseController { |
70 | 72 | return getDataTable(list); |
71 | 73 | } |
72 | 74 | |
75 | + @Log(title = "已到待检", operating="已到待检明细", action = BusinessType.GRANT) | |
76 | + @PostMapping("/yiDaoDaiJianlist") | |
77 | + @ResponseBody | |
78 | + public TableDataInfo yiDaoDaiJianlist(SrmDetail srmDetail) | |
79 | + { | |
80 | + srmDetail.setEnable(1); | |
81 | + startPage(); | |
82 | + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery(); | |
83 | + lambdaQueryWrapper.eq(SrmDetail::getHeaderId,srmDetail.getHeaderId()); | |
84 | + lambdaQueryWrapper.eq(SrmDetail::getCheckCode,0); | |
85 | + List<SrmDetail> list = srmDetailService.list(lambdaQueryWrapper) ; | |
86 | + for (SrmDetail detail : list) { | |
87 | + WarehouseU8 warehouseWu = new WarehouseU8(); | |
88 | + warehouseWu.setWarehouseCode(srmDetail.getWarehouseCode()); | |
89 | + warehouseWu.setUCompanyCode(detail.getCompanyCode()); | |
90 | + warehouseWu.setUWarehouseCode(detail.getUWarehouseCode()); | |
91 | + List<WarehouseU8> warehouseWulist = warehouseU8Service.getByDomain(warehouseWu); | |
92 | + if(warehouseWulist != null&&warehouseWulist.size()>0){ | |
93 | + warehouseWu=warehouseWulist.get(0); | |
94 | + detail.setUWarehouseName(warehouseWu.getUWarehouseName()); | |
95 | + } | |
96 | + } | |
97 | + return getDataTable(list); | |
98 | + } | |
99 | + | |
100 | + @Log(title = "已到合格", operating="已到合格明细", action = BusinessType.GRANT) | |
101 | + @PostMapping("/yiDaoHeGelist") | |
102 | + @ResponseBody | |
103 | + public TableDataInfo yiDaoHeGelist(SrmDetail srmDetail) | |
104 | + { | |
105 | + srmDetail.setEnable(1); | |
106 | + startPage(); | |
107 | + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery(); | |
108 | + lambdaQueryWrapper.eq(SrmDetail::getHeaderId,srmDetail.getHeaderId()); | |
109 | + lambdaQueryWrapper.eq(SrmDetail::getCheckCode,2); | |
110 | + List<SrmDetail> list = srmDetailService.list(lambdaQueryWrapper) ; | |
111 | + for (SrmDetail detail : list) { | |
112 | + WarehouseU8 warehouseWu = new WarehouseU8(); | |
113 | + warehouseWu.setWarehouseCode(srmDetail.getWarehouseCode()); | |
114 | + warehouseWu.setUCompanyCode(detail.getCompanyCode()); | |
115 | + warehouseWu.setUWarehouseCode(detail.getUWarehouseCode()); | |
116 | + List<WarehouseU8> warehouseWulist = warehouseU8Service.getByDomain(warehouseWu); | |
117 | + if(warehouseWulist != null&&warehouseWulist.size()>0){ | |
118 | + warehouseWu=warehouseWulist.get(0); | |
119 | + detail.setUWarehouseName(warehouseWu.getUWarehouseName()); | |
120 | + } | |
121 | + } | |
122 | + return getDataTable(list); | |
123 | + } | |
124 | + | |
73 | 125 | |
74 | 126 | /** |
75 | 127 | * 检测 |
... | ... |
src/main/java/com/huaheng/pc/srm/controller/SRMHeaderController.java
... | ... | @@ -50,6 +50,19 @@ public class SRMHeaderController extends BaseController { |
50 | 50 | return prefix + "/srmHeader"; |
51 | 51 | } |
52 | 52 | |
53 | + //已到待检 | |
54 | + @RequiresPermissions("srm:srmHeader:view") | |
55 | + @GetMapping("/yiDaoDaiJian") | |
56 | + public String srmHeaderYidaodaijian() { | |
57 | + return prefix + "/yiDaoDaiJian"; | |
58 | + } | |
59 | + //已到合格 | |
60 | + @RequiresPermissions("srm:srmHeader:view") | |
61 | + @GetMapping("/yiDaoHeGe") | |
62 | + public String srmHeaderYidaohege() { | |
63 | + return prefix + "/yiDaoHeGe"; | |
64 | + } | |
65 | + | |
53 | 66 | |
54 | 67 | @Resource |
55 | 68 | private SrmHeaderService srmHeaderService; |
... | ... | @@ -95,6 +108,78 @@ public class SRMHeaderController extends BaseController { |
95 | 108 | return getDataTable(list); |
96 | 109 | } |
97 | 110 | |
111 | + @RequiresPermissions("srm:srmHeader:list") | |
112 | + @Log(title = "已到待检", operating="已到待检", action = BusinessType.GRANT) | |
113 | + @PostMapping("/yiDaoDaiJianList") | |
114 | + @ResponseBody | |
115 | + public TableDataInfo songHuoDaiJianList(SrmHeader srmHeader) | |
116 | + { | |
117 | + if(StringUtils.isAllEmpty(srmHeader.getCode(),srmHeader.getUserDef2(),srmHeader.getSupplierCode(),srmHeader.getMaterialCode())){ | |
118 | + startPage(); | |
119 | + } | |
120 | + List<SrmHeader> list = srmHeaderService.selectList(srmHeader) ; | |
121 | + if(StringUtils.isNotEmpty(srmHeader.getMaterialCode())){ | |
122 | + Material material = materialService.getMaterialByCode(srmHeader.getMaterialCode(), ShiroUtils.getWarehouseCode()); | |
123 | + if(material == null){ | |
124 | + throw new ServiceException("物料编码不存在"); | |
125 | + } | |
126 | + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery(); | |
127 | + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getCode()),SrmDetail::getCode,srmHeader.getCode()); | |
128 | + lambdaQueryWrapper.eq(SrmDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); | |
129 | + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getMaterialCode()),SrmDetail::getMaterialCode,srmHeader.getMaterialCode()); | |
130 | + List<SrmDetail> srmDetailList = srmDetailService.list(lambdaQueryWrapper); | |
131 | + if(CollectionUtils.isNotEmpty(srmDetailList)){ | |
132 | + List<String> codes = srmDetailList.stream().map(s -> s.getCode()).collect(Collectors.toList()); | |
133 | + List<String> collect = codes.stream().distinct().collect(Collectors.toList()); | |
134 | + List<SrmHeader> srmHeaders = list.stream().filter(l -> collect.contains(l.getCode())).collect(Collectors.toList()); | |
135 | + srmHeaders = srmHeaders.stream().filter(l -> | |
136 | + (l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(0)||l.getCheckCode().equals(1)) | |
137 | + ).collect(Collectors.toList()); | |
138 | + return getDataTable(srmHeaders); | |
139 | + }else { | |
140 | + return null; | |
141 | + } | |
142 | + } | |
143 | + list = list.stream().filter(l ->(l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(0)||l.getCheckCode().equals(1))).collect(Collectors.toList()); | |
144 | + return getDataTable(list); | |
145 | + } | |
146 | + | |
147 | + @RequiresPermissions("srm:srmHeader:list") | |
148 | + @Log(title = "已到合格", operating="已到合格", action = BusinessType.GRANT) | |
149 | + @PostMapping("/yiDaoHeGeList") | |
150 | + @ResponseBody | |
151 | + public TableDataInfo yiDaoHeGeList(SrmHeader srmHeader) | |
152 | + { | |
153 | + if(StringUtils.isAllEmpty(srmHeader.getCode(),srmHeader.getUserDef2(),srmHeader.getSupplierCode(),srmHeader.getMaterialCode())){ | |
154 | + startPage(); | |
155 | + } | |
156 | + List<SrmHeader> list = srmHeaderService.selectList(srmHeader) ; | |
157 | + if(StringUtils.isNotEmpty(srmHeader.getMaterialCode())){ | |
158 | + Material material = materialService.getMaterialByCode(srmHeader.getMaterialCode(), ShiroUtils.getWarehouseCode()); | |
159 | + if(material == null){ | |
160 | + throw new ServiceException("物料编码不存在"); | |
161 | + } | |
162 | + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery(); | |
163 | + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getCode()),SrmDetail::getCode,srmHeader.getCode()); | |
164 | + lambdaQueryWrapper.eq(SrmDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); | |
165 | + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getMaterialCode()),SrmDetail::getMaterialCode,srmHeader.getMaterialCode()); | |
166 | + List<SrmDetail> srmDetailList = srmDetailService.list(lambdaQueryWrapper); | |
167 | + if(CollectionUtils.isNotEmpty(srmDetailList)){ | |
168 | + List<String> codes = srmDetailList.stream().map(s -> s.getCode()).collect(Collectors.toList()); | |
169 | + List<String> collect = codes.stream().distinct().collect(Collectors.toList()); | |
170 | + List<SrmHeader> srmHeaders = list.stream().filter(l -> collect.contains(l.getCode())).collect(Collectors.toList()); | |
171 | + srmHeaders = srmHeaders.stream().filter(l -> | |
172 | + (l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(1)||l.getCheckCode().equals(2)) | |
173 | + ).collect(Collectors.toList()); | |
174 | + return getDataTable(srmHeaders); | |
175 | + }else { | |
176 | + return null; | |
177 | + } | |
178 | + } | |
179 | + list = list.stream().filter(l ->(l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(1)||l.getCheckCode().equals(2))).collect(Collectors.toList()); | |
180 | + return getDataTable(list); | |
181 | + } | |
182 | + | |
98 | 183 | |
99 | 184 | |
100 | 185 | /** |
... | ... |
src/main/java/com/huaheng/pc/srm/service/SrmHeaderService.java
... | ... | @@ -823,6 +823,7 @@ public class SrmHeaderService extends ServiceImpl<SrmHeaderMapper, SrmHeader> { |
823 | 823 | List<SrmDetail> srmDetailsCheck = srmDetailService.list(new LambdaQueryWrapper<SrmDetail>().eq(SrmDetail::getCode, srmHeader.getCode()).eq(SrmDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()).eq(SrmDetail::getCheckCode,2)); |
824 | 824 | if(CollectionUtils.isNotEmpty(srmDetailsCheck)&&srmDetailsCheck.size()==srmDetailsAll.size()){ |
825 | 825 | srmHeader.setCheckCode(2); |
826 | + srmHeader.setUploadStatus(2); | |
826 | 827 | }else { |
827 | 828 | ReceiptHeader receiptHeader = new ReceiptHeader(); |
828 | 829 | receiptHeader.setUserDef3(srmHeader.getCode()); |
... | ... | @@ -834,8 +835,8 @@ public class SrmHeaderService extends ServiceImpl<SrmHeaderMapper, SrmHeader> { |
834 | 835 | receiptHeaderService.updateById(receiptHeader); |
835 | 836 | } |
836 | 837 | srmHeader.setCheckCode(1); |
838 | + srmHeader.setUploadStatus(1); | |
837 | 839 | } |
838 | - srmHeader.setUploadStatus(1); | |
839 | 840 | this.updateById(srmHeader); |
840 | 841 | return AjaxResult.success("送货单提交成功!"); |
841 | 842 | } |
... | ... |
src/main/resources/templates/srm/srmHeader/yiDaoDaiJian.html
0 → 100644
1 | +<!DOCTYPE HTML> | |
2 | +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> | |
3 | +<meta charset="utf-8" > | |
4 | +<head th:include="include :: header"></head> | |
5 | +<style> | |
6 | + #toolbar1{ | |
7 | + display: inline-block; | |
8 | + /*position: absolute;*/ | |
9 | + margin: 10px auto; | |
10 | + line-height: 34px; | |
11 | + } | |
12 | + #toolbar2{ | |
13 | + display: inline-block; | |
14 | + /*position: absolute;*/ | |
15 | + margin: 10px auto; | |
16 | + line-height: 34px; | |
17 | + } | |
18 | +</style> | |
19 | +<body class="gray-bg"> | |
20 | +<div class="container-div"> | |
21 | + <div class="row"> | |
22 | + <div class="col-sm-12 select-info"> | |
23 | + <ul id="myTab" class="nav nav-tabs"> | |
24 | + <li class="active" ><a href="#tabHeader" data-toggle="tab">主表</a></li> | |
25 | + <li><a href="#tabDetail" data-toggle="tab">已到待检明细</a></li> | |
26 | + </ul> | |
27 | + <div id="myTabContent" class="tab-content"> | |
28 | + <div class="tab-pane fade in active" id="tabHeader"> | |
29 | + <div class="col-sm-12 select-info"> | |
30 | + <form id="task-form"> | |
31 | + <div class="select-list"> | |
32 | + <ul> | |
33 | + <li> | |
34 | + 送货单号:<input type="text" name="code"/> | |
35 | + </li> | |
36 | + <li> | |
37 | + 供 应 商:<input type="text" name="supplierCode"/> | |
38 | + </li> | |
39 | + <li> | |
40 | + 到货单号:<input type="text" name="userDef2"/> | |
41 | + </li> | |
42 | + <li> | |
43 | + 物料编码:<input type="text" name="materialCode"/> | |
44 | + </li> | |
45 | + <li> | |
46 | + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i | |
47 | + class="fa fa-search"></i> 搜索</a> | |
48 | + <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i> 重置</a> | |
49 | + </li> | |
50 | + </ul> | |
51 | + </div> | |
52 | + </form> | |
53 | + </div> | |
54 | +<!-- <div class="btn-group hidden-xs" id="toolbar" role="group">--> | |
55 | +<!-- <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()" shiro:hasPermission="srm:srmHeader:list">--> | |
56 | +<!-- <i class="fa fa-paper-plane"></i> 获取ERP到货单--> | |
57 | +<!-- </a>--> | |
58 | +<!-- </div>--> | |
59 | + <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/> | |
60 | + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> | |
61 | + </div> | |
62 | + <div class="tab-pane fade" id="tabDetail"> | |
63 | + <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table> | |
64 | + </div> | |
65 | + </div> | |
66 | + </div> | |
67 | + </div> | |
68 | +</div> | |
69 | +<div th:include="include :: footer"></div> | |
70 | +<script th:inline="javascript"> | |
71 | + var checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]]; | |
72 | + var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]]; | |
73 | + var supplier =[[${@SupplierService.getCode()}]]; | |
74 | + var srmCheck = [[${@dict.getType('srmCheck')}]]; | |
75 | + var companyCode = [[${@dict.getType('company_code')}]]; | |
76 | + var uploadStatus = [[${@dict.getType('srmUpload')}]]; | |
77 | + var prefix = ctx + "srm/srmHeader"; | |
78 | + var prefixx = ctx + "srm/srmHeaderCheck"; | |
79 | + var prefix1 = ctx + "srm/srmDetail"; | |
80 | + var headerId = '' | |
81 | + var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]]; | |
82 | + setInterval(refreshV,1000*60); | |
83 | + function refreshV(){ | |
84 | + $.table.refresh(); | |
85 | + } | |
86 | + $(function() { | |
87 | + var options = { | |
88 | + url: prefix + "/yiDaoDaiJianList", | |
89 | + createUrl: prefix + "/add", | |
90 | + updateUrl: prefix + "/edit/{id}", | |
91 | + removeUrl: prefix + "/remove", | |
92 | + modalName: "送货单", | |
93 | + sortName: "created", | |
94 | + sortOrder: "desc", | |
95 | + search: false, | |
96 | + pageSize:50, | |
97 | + columns: [{ | |
98 | + checkbox: true | |
99 | + }, | |
100 | + { | |
101 | + field : 'id', | |
102 | + title : 'id' , | |
103 | + visible:false | |
104 | + }, | |
105 | + { | |
106 | + title: '操作', | |
107 | + align: 'center', | |
108 | + formatter: function(value, row, index) { | |
109 | + var actions = []; | |
110 | + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>详细</a> '); | |
111 | + return actions.join(''); | |
112 | + } | |
113 | + }, | |
114 | + { | |
115 | + field : 'operator', | |
116 | + title : '操作人', | |
117 | + sortable: true | |
118 | + }, | |
119 | + { | |
120 | + title: '送货单类型', | |
121 | + field: 'enable', | |
122 | + formatter: function(value, row, index) { | |
123 | + var actions = []; | |
124 | + if (value >= 1) { | |
125 | + actions.push("<span class='badge badge-info'> 已到送货单</span>"); | |
126 | + }else{ | |
127 | + actions.push("<span class='badge badge-danger'>未到送货单</span>"); | |
128 | + } | |
129 | + return actions.join(''); | |
130 | + } | |
131 | + }, | |
132 | + { | |
133 | + field : 'created', | |
134 | + title : '生成时间', | |
135 | + sortable: true | |
136 | + }, | |
137 | + { | |
138 | + field : 'code', | |
139 | + title : '送货单号', | |
140 | + sortable: true | |
141 | + }, | |
142 | + { | |
143 | + field : 'supplierCode', | |
144 | + title : '供应商编码', | |
145 | + sortable: true | |
146 | + }, | |
147 | + | |
148 | + { | |
149 | + field : 'supplierCode', | |
150 | + title : '供应商名称', | |
151 | + align: 'center', | |
152 | + formatter: function(value, row, index) { | |
153 | + var actions = []; | |
154 | + $.each(supplier, function(index, dict) { | |
155 | + if (dict.code == value) { | |
156 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
157 | + return false; | |
158 | + } | |
159 | + }); | |
160 | + return actions.join(''); | |
161 | + } | |
162 | + }, | |
163 | + { | |
164 | + field : 'userDef2', | |
165 | + title : '采购到货单', | |
166 | + sortable: true, | |
167 | + align: 'center', | |
168 | + formatter:function (value,row,index) { | |
169 | + return $.table.tooltip(value, 10); | |
170 | + } | |
171 | + }, | |
172 | + { | |
173 | + field : 'userDef1', | |
174 | + title : '返回信息', | |
175 | + sortable: true, | |
176 | + align: 'center', | |
177 | + formatter:function (value,row,index) { | |
178 | + return $.table.tooltip(value, 10); | |
179 | + } | |
180 | + }, | |
181 | + { | |
182 | + field : 'uploadStatus', | |
183 | + title : '获取ERP采购单', | |
184 | + align: 'center', | |
185 | + formatter: function(value, row, index) { | |
186 | + return $.table.selectDictLabel(uploadStatus, value); | |
187 | + } | |
188 | + }, | |
189 | + { | |
190 | + field : 'checkCode', | |
191 | + title : '质检完成', | |
192 | + align: 'center', | |
193 | + formatter: function(value, row, index) { | |
194 | + return $.table.selectDictLabel(srmCheck, value); | |
195 | + } | |
196 | + }, | |
197 | + { | |
198 | + field : 'mark', | |
199 | + title : '唯一标识', | |
200 | + sortable: false, | |
201 | + visible:false | |
202 | + }, | |
203 | + { | |
204 | + field : 'lastUpdatedBy', | |
205 | + title : '更新用户', | |
206 | + sortable: false, | |
207 | + visible:false | |
208 | + }, | |
209 | + ] | |
210 | + }; | |
211 | + $.table.init(options); | |
212 | + }); | |
213 | + | |
214 | + $("#bootstrap-table1").bootstrapTable({ | |
215 | + sortable: true, //排序 | |
216 | + showRefresh: true, //刷新 | |
217 | + showToggle:true, //视图切换 | |
218 | + clickToSelect: false, | |
219 | + showColumns:true, //列选择 | |
220 | + // detailView:true, | |
221 | + showExport: true, //导出 | |
222 | + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
223 | + modalName: "任务明细", | |
224 | + iconSize: "outline", | |
225 | + toolbar: "#toolbar1", | |
226 | + contentType: "application/x-www-form-urlencoded", | |
227 | + sortName: "id", | |
228 | + sortOrder: "desc", | |
229 | + columns: [{ | |
230 | + checkbox: true | |
231 | + }, | |
232 | + { | |
233 | + field : 'id', | |
234 | + title : 'id' , | |
235 | + visible:false | |
236 | + }, | |
237 | + { | |
238 | + title: '操作', | |
239 | + align: 'center', | |
240 | + formatter: function(value, row, index) { | |
241 | + var actions = []; | |
242 | + if(row.checkCode < 2 && row.enable == 1) { | |
243 | + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>'); | |
244 | + } | |
245 | + // if(row.uploadStatus4 < 1 ) { | |
246 | + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>'); | |
247 | + // } | |
248 | + return actions.join(''); | |
249 | + } | |
250 | + }, | |
251 | + { | |
252 | + title : 'PLM图纸', | |
253 | + formatter: function(value, row, index){ | |
254 | + var actions = []; | |
255 | + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" shiro:hasPermission="srm:srmDetail:selectDraw" onclick="queryDraw(\'' + row.materialCode + '\')" ><i class="fa fa-check"></i>查看图纸</a>'); | |
256 | + return actions.join(''); | |
257 | + } | |
258 | + }, | |
259 | + { | |
260 | + field : 'companyCode', | |
261 | + title : '账套', | |
262 | + sortable: true, | |
263 | + formatter: function(value, row, index) { | |
264 | + return $.table.selectDictLabel(companyCode, value); | |
265 | + } | |
266 | + }, | |
267 | + { | |
268 | + field : 'uWarehouseName', | |
269 | + title : '仓库', | |
270 | + sortable: true | |
271 | + }, | |
272 | + { | |
273 | + field : 'lineCode', | |
274 | + title : '条码', | |
275 | + sortable: true | |
276 | + }, | |
277 | + { | |
278 | + field : 'productionBatch', | |
279 | + title : '生产批号', | |
280 | + sortable: true | |
281 | + }, | |
282 | + { | |
283 | + field : 'batchNumberContent', | |
284 | + title : '批号内容', | |
285 | + sortable: true | |
286 | + }, | |
287 | + { | |
288 | + field : 'materialCode', | |
289 | + title : '存货编码', | |
290 | + sortable: true | |
291 | + }, | |
292 | + { | |
293 | + field : 'materialName', | |
294 | + title : '物料名称', | |
295 | + sortable:true | |
296 | + }, | |
297 | + { | |
298 | + field : 'specification', | |
299 | + title : '物料规格', | |
300 | + sortable:true | |
301 | + }, | |
302 | + { | |
303 | + field : 'qty', | |
304 | + title : '数量' | |
305 | + }, | |
306 | + { | |
307 | + field : 'confirmQty', | |
308 | + title : '实到数量' | |
309 | + }, | |
310 | + { | |
311 | + field : 'lastUpdate', | |
312 | + title : '最后修改时间' , | |
313 | + visible:false, | |
314 | + sortable:true | |
315 | + }, | |
316 | + { | |
317 | + field : 'lastUpdatedBy', | |
318 | + title : '更新用户', | |
319 | + visible:false | |
320 | + }, | |
321 | + { | |
322 | + field : 'uploadStatus1', | |
323 | + title : 'SRM到货上传', | |
324 | + align: 'center', | |
325 | + formatter: function(value, row, index) { | |
326 | + return $.table.selectDictLabel(uploadStatus, value); | |
327 | + } | |
328 | + }, | |
329 | + { | |
330 | + field : 'uploadStatus4', | |
331 | + title : 'ERP采购单上传', | |
332 | + align: 'center', | |
333 | + formatter: function(value, row, index) { | |
334 | + return $.table.selectDictLabel(uploadStatus, value); | |
335 | + } | |
336 | + }, | |
337 | + { | |
338 | + field : 'checkCode', | |
339 | + title : '质检完成', | |
340 | + align: 'center', | |
341 | + formatter: function(value, row, index) { | |
342 | + return $.table.selectDictLabel(srmCheck, value); | |
343 | + } | |
344 | + }, | |
345 | + { | |
346 | + field: 'enable', | |
347 | + title : 'enable', | |
348 | + visible: false | |
349 | + } | |
350 | + ] | |
351 | + }); | |
352 | + | |
353 | + function queryDraw(code){ | |
354 | + $.ajax({ | |
355 | + url:ctx + 'draw/selectDraw', | |
356 | + type: 'get', | |
357 | + data:{ | |
358 | + "no":code | |
359 | + }, | |
360 | + success : function (res) { | |
361 | + debugger; | |
362 | + if (res.code == 200){ | |
363 | + var data = res.data; | |
364 | + window.open("http://172.16.2.10:8087/sipmweb/web/search/detail?rid="+data.rid+"&id="+data.objId+"&t=DWGSW","_blank"); | |
365 | + }else{ | |
366 | + $.modal.alertError(res.msg) | |
367 | + } | |
368 | + } | |
369 | + }); | |
370 | + } | |
371 | + | |
372 | + /*入库单列表-详细*/ | |
373 | + function detail(id,code,enable,supplierCode) { | |
374 | + headerId = id; | |
375 | + $("#myTab li").removeClass("active") | |
376 | + $("#myTab li:eq(1)").addClass("active") | |
377 | + $("#tabHeader").removeClass("in active"); | |
378 | + $("#tabDetail").addClass("in active"); | |
379 | + loadDetail(); | |
380 | + } | |
381 | + | |
382 | + /*入库单列表-详细*/ | |
383 | + function loadDetail() { | |
384 | + $.ajax({ | |
385 | + url:ctx + 'srm/srmDetail/yiDaoDaiJianlist', | |
386 | + type: 'post', | |
387 | + data:{ | |
388 | + "headerId":headerId | |
389 | + }, | |
390 | + success : function (value) { | |
391 | + $("#bootstrap-table1").bootstrapTable('load',value.data); | |
392 | + } | |
393 | + }); | |
394 | + } | |
395 | + | |
396 | + /* 检验 */ | |
397 | + function checkDetail(id) { | |
398 | + let url=prefix1 + "/check/"+ id; | |
399 | + $.modal.open("检查" , url); | |
400 | + } | |
401 | + | |
402 | + /*获取ERP到货单*/ | |
403 | + function getReceipt() { | |
404 | + var rows=$("#bootstrap-table").bootstrapTable('getSelections'); | |
405 | + if (rows.length == 0) { | |
406 | + $.modal.alertWarning("请至少选择一条记录"); | |
407 | + return; | |
408 | + } | |
409 | + $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { | |
410 | + var url = prefixx + '/getReceipt'; | |
411 | + var ids = ""; | |
412 | + for(var i=0; i<rows.length; i++) { | |
413 | + ids = ids + rows[i].id + "," | |
414 | + } | |
415 | + var data = { "ids": ids.substring(0, ids.length-1) }; | |
416 | + $.operate.submit(url, "post", "json", data); | |
417 | + }) | |
418 | + } | |
419 | +</script> | |
420 | +</body> | |
421 | +</html> | |
... | ... |
src/main/resources/templates/srm/srmHeader/yiDaoHeGe.html
0 → 100644
1 | +<!DOCTYPE HTML> | |
2 | +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> | |
3 | +<meta charset="utf-8" > | |
4 | +<head th:include="include :: header"></head> | |
5 | +<style> | |
6 | + #toolbar1{ | |
7 | + display: inline-block; | |
8 | + /*position: absolute;*/ | |
9 | + margin: 10px auto; | |
10 | + line-height: 34px; | |
11 | + } | |
12 | + #toolbar2{ | |
13 | + display: inline-block; | |
14 | + /*position: absolute;*/ | |
15 | + margin: 10px auto; | |
16 | + line-height: 34px; | |
17 | + } | |
18 | +</style> | |
19 | +<body class="gray-bg"> | |
20 | +<div class="container-div"> | |
21 | + <div class="row"> | |
22 | + <div class="col-sm-12 select-info"> | |
23 | + <ul id="myTab" class="nav nav-tabs"> | |
24 | + <li class="active" ><a href="#tabHeader" data-toggle="tab">主表</a></li> | |
25 | + <li><a href="#tabDetail" data-toggle="tab">已到合格明细</a></li> | |
26 | + </ul> | |
27 | + <div id="myTabContent" class="tab-content"> | |
28 | + <div class="tab-pane fade in active" id="tabHeader"> | |
29 | + <div class="col-sm-12 select-info"> | |
30 | + <form id="task-form"> | |
31 | + <div class="select-list"> | |
32 | + <ul> | |
33 | + <li> | |
34 | + 送货单号:<input type="text" name="code"/> | |
35 | + </li> | |
36 | + <li> | |
37 | + 供 应 商:<input type="text" name="supplierCode"/> | |
38 | + </li> | |
39 | + <li> | |
40 | + 到货单号:<input type="text" name="userDef2"/> | |
41 | + </li> | |
42 | + <li> | |
43 | + 物料编码:<input type="text" name="materialCode"/> | |
44 | + </li> | |
45 | + <li> | |
46 | + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i | |
47 | + class="fa fa-search"></i> 搜索</a> | |
48 | + <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i> 重置</a> | |
49 | + </li> | |
50 | + </ul> | |
51 | + </div> | |
52 | + </form> | |
53 | + </div> | |
54 | + <div class="btn-group hidden-xs" id="toolbar" role="group"> | |
55 | + <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()" shiro:hasPermission="srm:srmHeader:list"> | |
56 | + <i class="fa fa-paper-plane"></i> 获取ERP到货单 | |
57 | + </a> | |
58 | + </div> | |
59 | + <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/> | |
60 | + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> | |
61 | + </div> | |
62 | + <div class="tab-pane fade" id="tabDetail"> | |
63 | + <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table> | |
64 | + </div> | |
65 | + </div> | |
66 | + </div> | |
67 | + </div> | |
68 | +</div> | |
69 | +<div th:include="include :: footer"></div> | |
70 | +<script th:inline="javascript"> | |
71 | + var checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]]; | |
72 | + var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]]; | |
73 | + var supplier =[[${@SupplierService.getCode()}]]; | |
74 | + var srmCheck = [[${@dict.getType('srmCheck')}]]; | |
75 | + var companyCode = [[${@dict.getType('company_code')}]]; | |
76 | + var uploadStatus = [[${@dict.getType('srmUpload')}]]; | |
77 | + var prefix = ctx + "srm/srmHeader"; | |
78 | + var prefixx = ctx + "srm/srmHeaderCheck"; | |
79 | + var prefix1 = ctx + "srm/srmDetail"; | |
80 | + var headerId = '' | |
81 | + var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]]; | |
82 | + setInterval(refreshV,1000*60); | |
83 | + function refreshV(){ | |
84 | + $.table.refresh(); | |
85 | + } | |
86 | + $(function() { | |
87 | + var options = { | |
88 | + url: prefix + "/yiDaoHeGeList", | |
89 | + createUrl: prefix + "/add", | |
90 | + updateUrl: prefix + "/edit/{id}", | |
91 | + removeUrl: prefix + "/remove", | |
92 | + modalName: "送货单", | |
93 | + sortName: "created", | |
94 | + sortOrder: "desc", | |
95 | + search: false, | |
96 | + pageSize:50, | |
97 | + columns: [{ | |
98 | + checkbox: true | |
99 | + }, | |
100 | + { | |
101 | + field : 'id', | |
102 | + title : 'id' , | |
103 | + visible:false | |
104 | + }, | |
105 | + { | |
106 | + title: '操作', | |
107 | + align: 'center', | |
108 | + formatter: function(value, row, index) { | |
109 | + var actions = []; | |
110 | + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>详细</a> '); | |
111 | + return actions.join(''); | |
112 | + } | |
113 | + }, | |
114 | + { | |
115 | + field : 'operator', | |
116 | + title : '操作人', | |
117 | + sortable: true | |
118 | + }, | |
119 | + { | |
120 | + title: '送货单类型', | |
121 | + field: 'enable', | |
122 | + formatter: function(value, row, index) { | |
123 | + var actions = []; | |
124 | + if (value >= 1) { | |
125 | + actions.push("<span class='badge badge-info'> 已到送货单</span>"); | |
126 | + }else{ | |
127 | + actions.push("<span class='badge badge-danger'>未到送货单</span>"); | |
128 | + } | |
129 | + return actions.join(''); | |
130 | + } | |
131 | + }, | |
132 | + { | |
133 | + field : 'created', | |
134 | + title : '生成时间', | |
135 | + sortable: true | |
136 | + }, | |
137 | + { | |
138 | + field : 'code', | |
139 | + title : '送货单号', | |
140 | + sortable: true | |
141 | + }, | |
142 | + { | |
143 | + field : 'supplierCode', | |
144 | + title : '供应商编码', | |
145 | + sortable: true | |
146 | + }, | |
147 | + | |
148 | + { | |
149 | + field : 'supplierCode', | |
150 | + title : '供应商名称', | |
151 | + align: 'center', | |
152 | + formatter: function(value, row, index) { | |
153 | + var actions = []; | |
154 | + $.each(supplier, function(index, dict) { | |
155 | + if (dict.code == value) { | |
156 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
157 | + return false; | |
158 | + } | |
159 | + }); | |
160 | + return actions.join(''); | |
161 | + } | |
162 | + }, | |
163 | + { | |
164 | + field : 'userDef2', | |
165 | + title : '采购到货单', | |
166 | + sortable: true, | |
167 | + align: 'center', | |
168 | + formatter:function (value,row,index) { | |
169 | + return $.table.tooltip(value, 10); | |
170 | + } | |
171 | + }, | |
172 | + { | |
173 | + field : 'userDef1', | |
174 | + title : '返回信息', | |
175 | + sortable: true, | |
176 | + align: 'center', | |
177 | + formatter:function (value,row,index) { | |
178 | + return $.table.tooltip(value, 10); | |
179 | + } | |
180 | + }, | |
181 | + { | |
182 | + field : 'uploadStatus', | |
183 | + title : '获取ERP采购单', | |
184 | + align: 'center', | |
185 | + formatter: function(value, row, index) { | |
186 | + return $.table.selectDictLabel(uploadStatus, value); | |
187 | + } | |
188 | + }, | |
189 | + { | |
190 | + field : 'checkCode', | |
191 | + title : '质检完成', | |
192 | + align: 'center', | |
193 | + formatter: function(value, row, index) { | |
194 | + return $.table.selectDictLabel(srmCheck, value); | |
195 | + } | |
196 | + }, | |
197 | + { | |
198 | + field : 'mark', | |
199 | + title : '唯一标识', | |
200 | + sortable: false, | |
201 | + visible:false | |
202 | + }, | |
203 | + { | |
204 | + field : 'lastUpdatedBy', | |
205 | + title : '更新用户', | |
206 | + sortable: false, | |
207 | + visible:false | |
208 | + }, | |
209 | + ] | |
210 | + }; | |
211 | + $.table.init(options); | |
212 | + }); | |
213 | + | |
214 | + $("#bootstrap-table1").bootstrapTable({ | |
215 | + sortable: true, //排序 | |
216 | + showRefresh: true, //刷新 | |
217 | + showToggle:true, //视图切换 | |
218 | + clickToSelect: false, | |
219 | + showColumns:true, //列选择 | |
220 | + // detailView:true, | |
221 | + showExport: true, //导出 | |
222 | + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
223 | + modalName: "任务明细", | |
224 | + iconSize: "outline", | |
225 | + toolbar: "#toolbar1", | |
226 | + contentType: "application/x-www-form-urlencoded", | |
227 | + sortName: "id", | |
228 | + sortOrder: "desc", | |
229 | + columns: [{ | |
230 | + checkbox: true | |
231 | + }, | |
232 | + { | |
233 | + field : 'id', | |
234 | + title : 'id' , | |
235 | + visible:false | |
236 | + }, | |
237 | + { | |
238 | + title: '操作', | |
239 | + align: 'center', | |
240 | + formatter: function(value, row, index) { | |
241 | + var actions = []; | |
242 | + if(row.checkCode < 2 && row.enable == 1) { | |
243 | + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>'); | |
244 | + } | |
245 | + // if(row.uploadStatus4 < 1 ) { | |
246 | + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>'); | |
247 | + // } | |
248 | + return actions.join(''); | |
249 | + } | |
250 | + }, | |
251 | + { | |
252 | + title : 'PLM图纸', | |
253 | + formatter: function(value, row, index){ | |
254 | + var actions = []; | |
255 | + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" shiro:hasPermission="srm:srmDetail:selectDraw" onclick="queryDraw(\'' + row.materialCode + '\')" ><i class="fa fa-check"></i>查看图纸</a>'); | |
256 | + return actions.join(''); | |
257 | + } | |
258 | + }, | |
259 | + { | |
260 | + field : 'companyCode', | |
261 | + title : '账套', | |
262 | + sortable: true, | |
263 | + formatter: function(value, row, index) { | |
264 | + return $.table.selectDictLabel(companyCode, value); | |
265 | + } | |
266 | + }, | |
267 | + { | |
268 | + field : 'uWarehouseName', | |
269 | + title : '仓库', | |
270 | + sortable: true | |
271 | + }, | |
272 | + { | |
273 | + field : 'lineCode', | |
274 | + title : '条码', | |
275 | + sortable: true | |
276 | + }, | |
277 | + { | |
278 | + field : 'productionBatch', | |
279 | + title : '生产批号', | |
280 | + sortable: true | |
281 | + }, | |
282 | + { | |
283 | + field : 'batchNumberContent', | |
284 | + title : '批号内容', | |
285 | + sortable: true | |
286 | + }, | |
287 | + { | |
288 | + field : 'materialCode', | |
289 | + title : '存货编码', | |
290 | + sortable: true | |
291 | + }, | |
292 | + { | |
293 | + field : 'materialName', | |
294 | + title : '物料名称', | |
295 | + sortable:true | |
296 | + }, | |
297 | + { | |
298 | + field : 'specification', | |
299 | + title : '物料规格', | |
300 | + sortable:true | |
301 | + }, | |
302 | + { | |
303 | + field : 'qty', | |
304 | + title : '数量' | |
305 | + }, | |
306 | + { | |
307 | + field : 'confirmQty', | |
308 | + title : '实到数量' | |
309 | + }, | |
310 | + { | |
311 | + field : 'lastUpdate', | |
312 | + title : '最后修改时间' , | |
313 | + visible:false, | |
314 | + sortable:true | |
315 | + }, | |
316 | + { | |
317 | + field : 'lastUpdatedBy', | |
318 | + title : '更新用户', | |
319 | + visible:false | |
320 | + }, | |
321 | + { | |
322 | + field : 'uploadStatus1', | |
323 | + title : 'SRM到货上传', | |
324 | + align: 'center', | |
325 | + formatter: function(value, row, index) { | |
326 | + return $.table.selectDictLabel(uploadStatus, value); | |
327 | + } | |
328 | + }, | |
329 | + { | |
330 | + field : 'uploadStatus4', | |
331 | + title : 'ERP采购单上传', | |
332 | + align: 'center', | |
333 | + formatter: function(value, row, index) { | |
334 | + return $.table.selectDictLabel(uploadStatus, value); | |
335 | + } | |
336 | + }, | |
337 | + { | |
338 | + field : 'checkCode', | |
339 | + title : '质检完成', | |
340 | + align: 'center', | |
341 | + formatter: function(value, row, index) { | |
342 | + return $.table.selectDictLabel(srmCheck, value); | |
343 | + } | |
344 | + }, | |
345 | + { | |
346 | + field: 'enable', | |
347 | + title : 'enable', | |
348 | + visible: false | |
349 | + } | |
350 | + ] | |
351 | + }); | |
352 | + | |
353 | + function queryDraw(code){ | |
354 | + $.ajax({ | |
355 | + url:ctx + 'draw/selectDraw', | |
356 | + type: 'get', | |
357 | + data:{ | |
358 | + "no":code | |
359 | + }, | |
360 | + success : function (res) { | |
361 | + debugger; | |
362 | + if (res.code == 200){ | |
363 | + var data = res.data; | |
364 | + window.open("http://172.16.2.10:8087/sipmweb/web/search/detail?rid="+data.rid+"&id="+data.objId+"&t=DWGSW","_blank"); | |
365 | + }else{ | |
366 | + $.modal.alertError(res.msg) | |
367 | + } | |
368 | + } | |
369 | + }); | |
370 | + } | |
371 | + | |
372 | + /*入库单列表-详细*/ | |
373 | + function detail(id,code,enable,supplierCode) { | |
374 | + headerId = id; | |
375 | + $("#myTab li").removeClass("active") | |
376 | + $("#myTab li:eq(1)").addClass("active") | |
377 | + $("#tabHeader").removeClass("in active"); | |
378 | + $("#tabDetail").addClass("in active"); | |
379 | + loadDetail(); | |
380 | + } | |
381 | + | |
382 | + /*入库单列表-详细*/ | |
383 | + function loadDetail() { | |
384 | + $.ajax({ | |
385 | + url:ctx + 'srm/srmDetail/yiDaoHeGelist', | |
386 | + type: 'post', | |
387 | + data:{ | |
388 | + "headerId":headerId | |
389 | + }, | |
390 | + success : function (value) { | |
391 | + $("#bootstrap-table1").bootstrapTable('load',value.data); | |
392 | + } | |
393 | + }); | |
394 | + } | |
395 | + | |
396 | + /* 检验 */ | |
397 | + function checkDetail(id) { | |
398 | + let url=prefix1 + "/check/"+ id; | |
399 | + $.modal.open("检查" , url); | |
400 | + } | |
401 | + | |
402 | + /*获取ERP到货单*/ | |
403 | + function getReceipt() { | |
404 | + var rows=$("#bootstrap-table").bootstrapTable('getSelections'); | |
405 | + if (rows.length == 0) { | |
406 | + $.modal.alertWarning("请至少选择一条记录"); | |
407 | + return; | |
408 | + } | |
409 | + $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() { | |
410 | + var url = prefixx + '/getReceipt'; | |
411 | + var ids = ""; | |
412 | + for(var i=0; i<rows.length; i++) { | |
413 | + ids = ids + rows[i].id + "," | |
414 | + } | |
415 | + var data = { "ids": ids.substring(0, ids.length-1) }; | |
416 | + $.operate.submit(url, "post", "json", data); | |
417 | + }) | |
418 | + } | |
419 | +</script> | |
420 | +</body> | |
421 | +</html> | |
... | ... |