Commit dcff7f6292d92b067e078b02a417854789de41c8
1 parent
bd523154
库位比较功能提交(6)
Signed-off-by: TanYibin <5491541@qq.com>
Showing
7 changed files
with
129 additions
and
54 deletions
ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue
... | ... | @@ -15,9 +15,9 @@ |
15 | 15 | </a-form-item> |
16 | 16 | </a-col> |
17 | 17 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
18 | - <a-form-item label="数据一致性状态"> | |
18 | + <a-form-item label="数据状态"> | |
19 | 19 | <j-dict-select-tag |
20 | - placeholder="请选择数据一致性状态" | |
20 | + placeholder="请选择数据状态" | |
21 | 21 | v-model="queryParam.consistencyStatus" |
22 | 22 | dictCode="consistency_status" |
23 | 23 | /> |
... | ... | @@ -155,7 +155,7 @@ export default { |
155 | 155 | scopedSlots: { customRender: 'wcsLocationStatus' } |
156 | 156 | }, |
157 | 157 | { |
158 | - title: '数据一致性状态', | |
158 | + title: '数据状态', | |
159 | 159 | align: 'center', |
160 | 160 | dataIndex: 'consistencyStatus', |
161 | 161 | key: 'consistencyStatus', |
... | ... |
ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue
... | ... | @@ -15,8 +15,12 @@ |
15 | 15 | </a-form-item> |
16 | 16 | </a-col> |
17 | 17 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
18 | - <a-form-item label="WMS任务类型"> | |
19 | - <j-dict-select-tag placeholder="请选择WMS任务类型" v-model="queryParam.taskType" dictCode="task_type" /> | |
18 | + <a-form-item label="数据状态"> | |
19 | + <j-dict-select-tag | |
20 | + placeholder="请选择数据状态" | |
21 | + v-model="queryParam.consistencyStatus" | |
22 | + dictCode="consistency_status" | |
23 | + /> | |
20 | 24 | </a-form-item> |
21 | 25 | </a-col> |
22 | 26 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
... | ... | @@ -36,7 +40,6 @@ |
36 | 40 | ref="table" |
37 | 41 | size="middle" |
38 | 42 | bordered |
39 | - rowKey="wmsId" | |
40 | 43 | :scroll="{ x: true }" |
41 | 44 | :columns="columns" |
42 | 45 | :dataSource="dataSource" |
... | ... | @@ -55,6 +58,18 @@ |
55 | 58 | {{ solutionTaskStatus(taskStatus) }} |
56 | 59 | </a-tag> |
57 | 60 | </span> |
61 | + | |
62 | + <span slot="wcsTaskStatus" slot-scope="wcsTaskStatus"> | |
63 | + <a-tag :key="wcsTaskStatus"> | |
64 | + {{ solutionWcsTaskStatus(wcsTaskStatus) }} | |
65 | + </a-tag> | |
66 | + </span> | |
67 | + | |
68 | + <span slot="consistencyStatus" slot-scope="consistencyStatus"> | |
69 | + <a-tag :key="consistencyStatus" :color="solutionPurchaseColor(consistencyStatus)"> | |
70 | + {{ solutionConsistencyStatus(consistencyStatus) }} | |
71 | + </a-tag> | |
72 | + </span> | |
58 | 73 | </a-table> |
59 | 74 | </div> |
60 | 75 | </a-card> |
... | ... | @@ -94,6 +109,8 @@ export default { |
94 | 109 | disableMixinCreated: true, |
95 | 110 | taskTypeList: [], |
96 | 111 | taskStatusList: [], |
112 | + wcsTaskStatusList: [], | |
113 | + consistencyStatusList: [], | |
97 | 114 | // 表头 |
98 | 115 | columns: [ |
99 | 116 | { |
... | ... | @@ -153,7 +170,9 @@ export default { |
153 | 170 | { |
154 | 171 | title: 'WCS任务状态', |
155 | 172 | align: 'center', |
156 | - dataIndex: 'wcsTaskStatus' | |
173 | + dataIndex: 'wcsTaskStatus', | |
174 | + key: 'wcsTaskStatus', | |
175 | + scopedSlots: { customRender: 'wcsTaskStatus' } | |
157 | 176 | }, |
158 | 177 | { |
159 | 178 | title: '任务创建时间', |
... | ... | @@ -164,6 +183,13 @@ export default { |
164 | 183 | title: 'WCS任务创建时间', |
165 | 184 | align: 'center', |
166 | 185 | dataIndex: 'wcsTaskCreateTime' |
186 | + }, | |
187 | + { | |
188 | + title: '数据状态', | |
189 | + align: 'center', | |
190 | + dataIndex: 'consistencyStatus', | |
191 | + key: 'consistencyStatus', | |
192 | + scopedSlots: { customRender: 'consistencyStatus' } | |
167 | 193 | } |
168 | 194 | ], |
169 | 195 | url: { |
... | ... | @@ -190,6 +216,7 @@ export default { |
190 | 216 | } |
191 | 217 | }) |
192 | 218 | } |
219 | + // 获取 task_header_status | |
193 | 220 | if (getDictItemsFromCache('task_header_status')) { |
194 | 221 | this.taskStatusList = getDictItemsFromCache('task_header_status') |
195 | 222 | } else { |
... | ... | @@ -200,6 +227,29 @@ export default { |
200 | 227 | } |
201 | 228 | }) |
202 | 229 | } |
230 | + | |
231 | + // 获取 wcs_task_status | |
232 | + if (getDictItemsFromCache('wcs_task_status')) { | |
233 | + this.wcsTaskStatusList = getDictItemsFromCache('wcs_task_status') | |
234 | + } else { | |
235 | + //根据字典Code, 初始化字典数组 | |
236 | + ajaxGetDictItems('wcs_task_status', null).then(res => { | |
237 | + if (res.success) { | |
238 | + this.wcsTaskStatusList = res.result | |
239 | + } | |
240 | + }) | |
241 | + } | |
242 | + // 获取 consistency_status | |
243 | + if (getDictItemsFromCache('consistency_status')) { | |
244 | + this.consistencyStatusList = getDictItemsFromCache('consistency_status') | |
245 | + } else { | |
246 | + //根据字典Code, 初始化字典数组 | |
247 | + ajaxGetDictItems('consistency_status', null).then(res => { | |
248 | + if (res.success) { | |
249 | + this.consistencyStatusList = res.result | |
250 | + } | |
251 | + }) | |
252 | + } | |
203 | 253 | }, |
204 | 254 | clearList() { |
205 | 255 | this.dataSource = [] |
... | ... | @@ -226,6 +276,33 @@ export default { |
226 | 276 | }) |
227 | 277 | return actions.join('') |
228 | 278 | }, |
279 | + solutionWcsTaskStatus(value) { | |
280 | + var actions = [] | |
281 | + Object.keys(this.wcsTaskStatusList).some(key => { | |
282 | + if (this.wcsTaskStatusList[key].value == '' + value) { | |
283 | + actions.push(this.wcsTaskStatusList[key].text) | |
284 | + return true | |
285 | + } | |
286 | + }) | |
287 | + return actions.join('') | |
288 | + }, | |
289 | + solutionConsistencyStatus(value) { | |
290 | + var actions = [] | |
291 | + Object.keys(this.consistencyStatusList).some(key => { | |
292 | + if (this.consistencyStatusList[key].value == '' + value) { | |
293 | + actions.push(this.consistencyStatusList[key].text) | |
294 | + return true | |
295 | + } | |
296 | + }) | |
297 | + return actions.join('') | |
298 | + }, | |
299 | + solutionPurchaseColor(value) { | |
300 | + var color = 'blue' | |
301 | + if (0 == value) { | |
302 | + color = 'red' | |
303 | + } | |
304 | + return color | |
305 | + }, | |
229 | 306 | searchReset() { |
230 | 307 | var locationCode = this.queryParam['locationCode'] |
231 | 308 | this.queryParam = {} |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java
1 | 1 | package org.jeecg.modules.wms.config.location.dto; |
2 | 2 | |
3 | -import javax.validation.constraints.NotNull; | |
4 | - | |
5 | -import org.jeecg.common.aspect.annotation.Dict; | |
6 | - | |
7 | 3 | import lombok.Data; |
8 | 4 | |
9 | 5 | /** |
... | ... | @@ -23,11 +19,7 @@ public class CompareLocationTaskDto { |
23 | 19 | /** WCS任务ID */ |
24 | 20 | private Integer wcsId; |
25 | 21 | |
26 | - /** WCS任务ID */ | |
27 | - private String wcsIdString; | |
28 | - | |
29 | 22 | /** 任务类型 */ |
30 | - @Dict(dicCode = "task_type") | |
31 | 23 | private Integer taskType; |
32 | 24 | |
33 | 25 | /** 源库位 */ |
... | ... | @@ -52,11 +44,14 @@ public class CompareLocationTaskDto { |
52 | 44 | private Integer taskStatus; |
53 | 45 | |
54 | 46 | /** WCS任务状态 */ |
55 | - private String wcsTaskStatus; | |
47 | + private Integer wcsTaskStatus; | |
56 | 48 | |
57 | 49 | /** 任务创建时间 */ |
58 | 50 | private String taskCreateTime; |
59 | 51 | |
60 | 52 | /** WCS任务创建时间 */ |
61 | 53 | private String wcsTaskCreateTime; |
54 | + | |
55 | + /** 数据状态 */ | |
56 | + private Integer consistencyStatus = 1; | |
62 | 57 | } |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java
... | ... | @@ -571,18 +571,17 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
571 | 571 | if (queryCompareLocationTaskDto.getLocationCode() == null) { |
572 | 572 | return PageUtil.create(finalCompareLocationTaskList, queryCompareLocationTaskDto.getPageNo(), queryCompareLocationTaskDto.getPageSize()); |
573 | 573 | } |
574 | - String queryCreateTime = DateUtil.format(DateUtil.offsetDay(new Date(), -31), DatePattern.NORM_DATE_PATTERN); | |
574 | + // 只查询近90天的数据 | |
575 | + String queryCreateTime = DateUtil.format(DateUtil.offsetDay(new Date(), -90), DatePattern.NORM_DATE_PATTERN); | |
575 | 576 | // 1.获取WMS任务信息 |
576 | 577 | LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); |
577 | - // 只查询近一个月的数据 | |
578 | 578 | taskHeaderLambdaQueryWrapper |
579 | 579 | .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode, |
580 | 580 | TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime) |
581 | 581 | .eq(TaskHeader::getWarehouseCode, queryCompareLocationTaskDto.getWarehouseCode()) |
582 | - .eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getFromLocationCode, | |
583 | - queryCompareLocationTaskDto.getLocationCode()) | |
584 | - .or() | |
585 | - .eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getToLocationCode, queryCompareLocationTaskDto.getLocationCode()) | |
582 | + .and(t -> t.eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getFromLocationCode, | |
583 | + queryCompareLocationTaskDto.getLocationCode()).or().eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), | |
584 | + TaskHeader::getToLocationCode, queryCompareLocationTaskDto.getLocationCode())) | |
586 | 585 | .ge(TaskHeader::getCreateTime, queryCreateTime); |
587 | 586 | List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper); |
588 | 587 | |
... | ... | @@ -613,29 +612,32 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
613 | 612 | for (TaskHeader taskHeader : taskHeaderList) { |
614 | 613 | List<WcsTaskDto> wcsTaskDtoList = wcsTaskMap.get(taskHeader.getId()); |
615 | 614 | if (!CollectionUtils.isEmpty(wcsTaskDtoList)) { |
616 | - CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto(); | |
617 | - // 组装WMS数据 | |
618 | - compareLocationTaskDto.setWmsId(taskHeader.getId()); | |
619 | - compareLocationTaskDto.setTaskType(taskHeader.getTaskType()); | |
620 | - compareLocationTaskDto.setWarehouseCode(taskHeader.getWarehouseCode()); | |
621 | - compareLocationTaskDto.setFromLocationCode(taskHeader.getFromLocationCode()); | |
622 | - compareLocationTaskDto.setToLocationCode(taskHeader.getToLocationCode()); | |
623 | - compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode()); | |
624 | - compareLocationTaskDto.setTaskStatus(taskHeader.getStatus()); | |
625 | - compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN)); | |
626 | - // 组装WCS数据 | |
627 | - compareLocationTaskDto.setWcsId(wcsTaskDtoList.get(0).getId()); | |
628 | - compareLocationTaskDto.setWcsIdString(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getId()).collect(Collectors.toSet()), ",")); | |
629 | - compareLocationTaskDto | |
630 | - .setWcsFromLocationCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getFromLocation()).collect(Collectors.toSet()), ",")); | |
631 | - compareLocationTaskDto | |
632 | - .setWcsToLocationCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getToLocation()).collect(Collectors.toSet()), ",")); | |
633 | - compareLocationTaskDto | |
634 | - .setWcsContainerCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getContainerCode()).collect(Collectors.toSet()), ",")); | |
635 | - compareLocationTaskDto | |
636 | - .setWcsTaskStatus(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getTaskStatusDesc()).collect(Collectors.toSet()), ",")); | |
637 | - compareLocationTaskDto.setWcsTaskCreateTime(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getCreated()).collect(Collectors.toSet()), ",")); | |
638 | - wcsCompareLocationTaskList.add(compareLocationTaskDto); | |
615 | + for (WcsTaskDto wcsTaskDto : wcsTaskDtoList) { | |
616 | + CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto(); | |
617 | + // 组装WMS数据 | |
618 | + compareLocationTaskDto.setWmsId(taskHeader.getId()); | |
619 | + compareLocationTaskDto.setTaskType(taskHeader.getTaskType()); | |
620 | + compareLocationTaskDto.setWarehouseCode(taskHeader.getWarehouseCode()); | |
621 | + compareLocationTaskDto.setFromLocationCode(taskHeader.getFromLocationCode()); | |
622 | + compareLocationTaskDto.setToLocationCode(taskHeader.getToLocationCode()); | |
623 | + compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode()); | |
624 | + compareLocationTaskDto.setTaskStatus(taskHeader.getStatus()); | |
625 | + compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN)); | |
626 | + // 组装WCS数据 | |
627 | + compareLocationTaskDto.setWcsId(wcsTaskDto.getId()); | |
628 | + compareLocationTaskDto.setWcsFromLocationCode(wcsTaskDto.getFromLocation()); | |
629 | + compareLocationTaskDto.setWcsToLocationCode(wcsTaskDto.getToLocation()); | |
630 | + compareLocationTaskDto.setWcsContainerCode(wcsTaskDto.getContainerCode()); | |
631 | + compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatus()); | |
632 | + compareLocationTaskDto.setWcsTaskCreateTime(wcsTaskDto.getCreated()); | |
633 | + if (ObjectUtil.compare(compareLocationTaskDto.getFromLocationCode(), compareLocationTaskDto.getWcsFromLocationCode()) != 0 | |
634 | + || ObjectUtil.compare(compareLocationTaskDto.getToLocationCode(), compareLocationTaskDto.getWcsToLocationCode()) != 0 | |
635 | + || ObjectUtil.compare(compareLocationTaskDto.getContainerCode(), compareLocationTaskDto.getWcsContainerCode()) != 0 | |
636 | + || ObjectUtil.compare(compareLocationTaskDto.getTaskStatus(), compareLocationTaskDto.getWcsTaskStatus()) != 0) { | |
637 | + compareLocationTaskDto.setConsistencyStatus(0); | |
638 | + } | |
639 | + wcsCompareLocationTaskList.add(compareLocationTaskDto); | |
640 | + } | |
639 | 641 | continue; |
640 | 642 | } |
641 | 643 | CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto(); |
... | ... | @@ -648,6 +650,7 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
648 | 650 | compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode()); |
649 | 651 | compareLocationTaskDto.setTaskStatus(taskHeader.getStatus()); |
650 | 652 | compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN)); |
653 | + compareLocationTaskDto.setConsistencyStatus(0); | |
651 | 654 | finalCompareLocationTaskList.add(compareLocationTaskDto); |
652 | 655 | } |
653 | 656 | } |
... | ... | @@ -658,12 +661,12 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
658 | 661 | CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto(); |
659 | 662 | // 组装WCS数据 |
660 | 663 | compareLocationTaskDto.setWcsId(wcsTaskDto.getId()); |
661 | - compareLocationTaskDto.setWcsIdString(wcsTaskDto.getId().toString()); | |
662 | 664 | compareLocationTaskDto.setWcsFromLocationCode(wcsTaskDto.getFromLocation()); |
663 | 665 | compareLocationTaskDto.setWcsToLocationCode(wcsTaskDto.getToLocation()); |
664 | 666 | compareLocationTaskDto.setWcsContainerCode(wcsTaskDto.getContainerCode()); |
665 | - compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatusDesc()); | |
667 | + compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatus()); | |
666 | 668 | compareLocationTaskDto.setWcsTaskCreateTime(wcsTaskDto.getCreated()); |
669 | + compareLocationTaskDto.setConsistencyStatus(0); | |
667 | 670 | wcsCompareLocationTaskList.add(compareLocationTaskDto); |
668 | 671 | } |
669 | 672 | } |
... | ... | @@ -682,9 +685,9 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
682 | 685 | finalCompareLocationTaskList = |
683 | 686 | finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getWcsId().equals(t.getWcsId())).collect(Collectors.toList()); |
684 | 687 | } |
685 | - if (queryCompareLocationTaskDto.getTaskType() != null) { | |
686 | - finalCompareLocationTaskList = | |
687 | - finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getTaskType().equals(t.getTaskType())).collect(Collectors.toList()); | |
688 | + if (queryCompareLocationTaskDto.getConsistencyStatus() != null) { | |
689 | + finalCompareLocationTaskList = finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getConsistencyStatus().equals(t.getConsistencyStatus())) | |
690 | + .collect(Collectors.toList()); | |
688 | 691 | } |
689 | 692 | return PageUtil.create(finalCompareLocationTaskList, queryCompareLocationTaskDto.getPageNo(), queryCompareLocationTaskDto.getPageSize()); |
690 | 693 | } |
... | ... |