From dcff7f6292d92b067e078b02a417854789de41c8 Mon Sep 17 00:00:00 2001
From: TanYibin <5491541@qq.com>
Date: Fri, 31 Mar 2023 10:45:37 +0800
Subject: [PATCH] 库位比较功能提交(6)

---
 ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue                                       |  6 +++---
 ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue                                   | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java           |  2 +-
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java       | 13 ++++---------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java      |  2 +-
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java  |  4 ++--
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java | 71 +++++++++++++++++++++++++++++++++++++----------------------------------
 7 files changed, 129 insertions(+), 54 deletions(-)

diff --git a/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue b/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue
index 947c52e..3541c9f 100644
--- a/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue
+++ b/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocation.vue
@@ -15,9 +15,9 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="数据一致性状态">
+            <a-form-item label="数据状态">
               <j-dict-select-tag
-                placeholder="请选择数据一致性状态"
+                placeholder="请选择数据状态"
                 v-model="queryParam.consistencyStatus"
                 dictCode="consistency_status"
               />
@@ -155,7 +155,7 @@ export default {
           scopedSlots: { customRender: 'wcsLocationStatus' }
         },
         {
-          title: '数据一致性状态',
+          title: '数据状态',
           align: 'center',
           dataIndex: 'consistencyStatus',
           key: 'consistencyStatus',
diff --git a/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue b/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue
index f98eec1..9689495 100644
--- a/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue
+++ b/ant-design-vue-jeecg/src/views/system/compare/CompareWcsLocationTask.vue
@@ -15,8 +15,12 @@
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="WMS任务类型">
-              <j-dict-select-tag placeholder="请选择WMS任务类型" v-model="queryParam.taskType" dictCode="task_type" />
+            <a-form-item label="数据状态">
+              <j-dict-select-tag
+                placeholder="请选择数据状态"
+                v-model="queryParam.consistencyStatus"
+                dictCode="consistency_status"
+              />
             </a-form-item>
           </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -36,7 +40,6 @@
         ref="table"
         size="middle"
         bordered
-        rowKey="wmsId"
         :scroll="{ x: true }"
         :columns="columns"
         :dataSource="dataSource"
@@ -55,6 +58,18 @@
             {{ solutionTaskStatus(taskStatus) }}
           </a-tag>
         </span>
+
+        <span slot="wcsTaskStatus" slot-scope="wcsTaskStatus">
+          <a-tag :key="wcsTaskStatus">
+            {{ solutionWcsTaskStatus(wcsTaskStatus) }}
+          </a-tag>
+        </span>
+
+        <span slot="consistencyStatus" slot-scope="consistencyStatus">
+          <a-tag :key="consistencyStatus" :color="solutionPurchaseColor(consistencyStatus)">
+            {{ solutionConsistencyStatus(consistencyStatus) }}
+          </a-tag>
+        </span>
       </a-table>
     </div>
   </a-card>
@@ -94,6 +109,8 @@ export default {
       disableMixinCreated: true,
       taskTypeList: [],
       taskStatusList: [],
+      wcsTaskStatusList: [],
+      consistencyStatusList: [],
       // 表头
       columns: [
         {
@@ -153,7 +170,9 @@ export default {
         {
           title: 'WCS任务状态',
           align: 'center',
-          dataIndex: 'wcsTaskStatus'
+          dataIndex: 'wcsTaskStatus',
+          key: 'wcsTaskStatus',
+          scopedSlots: { customRender: 'wcsTaskStatus' }
         },
         {
           title: '任务创建时间',
@@ -164,6 +183,13 @@ export default {
           title: 'WCS任务创建时间',
           align: 'center',
           dataIndex: 'wcsTaskCreateTime'
+        },
+        {
+          title: '数据状态',
+          align: 'center',
+          dataIndex: 'consistencyStatus',
+          key: 'consistencyStatus',
+          scopedSlots: { customRender: 'consistencyStatus' }
         }
       ],
       url: {
@@ -190,6 +216,7 @@ export default {
           }
         })
       }
+      // 获取 task_header_status
       if (getDictItemsFromCache('task_header_status')) {
         this.taskStatusList = getDictItemsFromCache('task_header_status')
       } else {
@@ -200,6 +227,29 @@ export default {
           }
         })
       }
+
+      // 获取 wcs_task_status
+      if (getDictItemsFromCache('wcs_task_status')) {
+        this.wcsTaskStatusList = getDictItemsFromCache('wcs_task_status')
+      } else {
+        //根据字典Code, 初始化字典数组
+        ajaxGetDictItems('wcs_task_status', null).then(res => {
+          if (res.success) {
+            this.wcsTaskStatusList = res.result
+          }
+        })
+      }
+      // 获取 consistency_status
+      if (getDictItemsFromCache('consistency_status')) {
+        this.consistencyStatusList = getDictItemsFromCache('consistency_status')
+      } else {
+        //根据字典Code, 初始化字典数组
+        ajaxGetDictItems('consistency_status', null).then(res => {
+          if (res.success) {
+            this.consistencyStatusList = res.result
+          }
+        })
+      }
     },
     clearList() {
       this.dataSource = []
@@ -226,6 +276,33 @@ export default {
       })
       return actions.join('')
     },
+    solutionWcsTaskStatus(value) {
+      var actions = []
+      Object.keys(this.wcsTaskStatusList).some(key => {
+        if (this.wcsTaskStatusList[key].value == '' + value) {
+          actions.push(this.wcsTaskStatusList[key].text)
+          return true
+        }
+      })
+      return actions.join('')
+    },
+    solutionConsistencyStatus(value) {
+      var actions = []
+      Object.keys(this.consistencyStatusList).some(key => {
+        if (this.consistencyStatusList[key].value == '' + value) {
+          actions.push(this.consistencyStatusList[key].text)
+          return true
+        }
+      })
+      return actions.join('')
+    },
+    solutionPurchaseColor(value) {
+      var color = 'blue'
+      if (0 == value) {
+        color = 'red'
+      }
+      return color
+    },
     searchReset() {
       var locationCode = this.queryParam['locationCode']
       this.queryParam = {}
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java
index 094083d..6691ed5 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationDto.java
@@ -40,7 +40,7 @@ public class CompareLocationDto {
     /** WCS库位表状态 */
     private String wcsLocationStatus;
 
-    /** 数据一致性状态 */
+    /** 数据状态 */
     private Integer consistencyStatus = 1;
 
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java
index c3aff6e..e44c15d 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/CompareLocationTaskDto.java
@@ -1,9 +1,5 @@
 package org.jeecg.modules.wms.config.location.dto;
 
-import javax.validation.constraints.NotNull;
-
-import org.jeecg.common.aspect.annotation.Dict;
-
 import lombok.Data;
 
 /**
@@ -23,11 +19,7 @@ public class CompareLocationTaskDto {
     /** WCS任务ID */
     private Integer wcsId;
 
-    /** WCS任务ID */
-    private String wcsIdString;
-
     /** 任务类型 */
-    @Dict(dicCode = "task_type")
     private Integer taskType;
 
     /** 源库位 */
@@ -52,11 +44,14 @@ public class CompareLocationTaskDto {
     private Integer taskStatus;
 
     /** WCS任务状态 */
-    private String wcsTaskStatus;
+    private Integer wcsTaskStatus;
 
     /** 任务创建时间 */
     private String taskCreateTime;
 
     /** WCS任务创建时间 */
     private String wcsTaskCreateTime;
+
+    /** 数据状态 */
+    private Integer consistencyStatus = 1;
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java
index a312b34..4fd1aab 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationDto.java
@@ -14,7 +14,7 @@ public class QueryCompareLocationDto {
     /** 托盘编码 */
     private String containerCode;
 
-    /** 数据一致性状态 */
+    /** 数据状态 */
     private Integer consistencyStatus;
 
     /** 页码 */
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java
index 753c0b4..d42009c 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/dto/QueryCompareLocationTaskDto.java
@@ -22,8 +22,8 @@ public class QueryCompareLocationTaskDto {
     /** WCS任务ID */
     private Integer wcsId;
     
-    /** 任务类型 */
-    private Integer taskType;
+    /** 数据状态 */
+    private Integer consistencyStatus;
     
     /** 页码 */
     private Integer pageNo = 1;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java
index 043b25a..90598a3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java
+++ b/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
         if (queryCompareLocationTaskDto.getLocationCode() == null) {
             return PageUtil.create(finalCompareLocationTaskList, queryCompareLocationTaskDto.getPageNo(), queryCompareLocationTaskDto.getPageSize());
         }
-        String queryCreateTime = DateUtil.format(DateUtil.offsetDay(new Date(), -31), DatePattern.NORM_DATE_PATTERN);
+        // 只查询近90天的数据
+        String queryCreateTime = DateUtil.format(DateUtil.offsetDay(new Date(), -90), DatePattern.NORM_DATE_PATTERN);
         // 1.获取WMS任务信息
         LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
-        // 只查询近一个月的数据
         taskHeaderLambdaQueryWrapper
             .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode,
                 TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime)
             .eq(TaskHeader::getWarehouseCode, queryCompareLocationTaskDto.getWarehouseCode())
-            .eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getFromLocationCode,
-                queryCompareLocationTaskDto.getLocationCode())
-            .or()
-            .eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getToLocationCode, queryCompareLocationTaskDto.getLocationCode())
+            .and(t -> t.eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()), TaskHeader::getFromLocationCode,
+                queryCompareLocationTaskDto.getLocationCode()).or().eq(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode()),
+                    TaskHeader::getToLocationCode, queryCompareLocationTaskDto.getLocationCode()))
             .ge(TaskHeader::getCreateTime, queryCreateTime);
         List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper);
 
@@ -613,29 +612,32 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i
             for (TaskHeader taskHeader : taskHeaderList) {
                 List<WcsTaskDto> wcsTaskDtoList = wcsTaskMap.get(taskHeader.getId());
                 if (!CollectionUtils.isEmpty(wcsTaskDtoList)) {
-                    CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto();
-                    // 组装WMS数据
-                    compareLocationTaskDto.setWmsId(taskHeader.getId());
-                    compareLocationTaskDto.setTaskType(taskHeader.getTaskType());
-                    compareLocationTaskDto.setWarehouseCode(taskHeader.getWarehouseCode());
-                    compareLocationTaskDto.setFromLocationCode(taskHeader.getFromLocationCode());
-                    compareLocationTaskDto.setToLocationCode(taskHeader.getToLocationCode());
-                    compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode());
-                    compareLocationTaskDto.setTaskStatus(taskHeader.getStatus());
-                    compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
-                    // 组装WCS数据
-                    compareLocationTaskDto.setWcsId(wcsTaskDtoList.get(0).getId());
-                    compareLocationTaskDto.setWcsIdString(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getId()).collect(Collectors.toSet()), ","));
-                    compareLocationTaskDto
-                        .setWcsFromLocationCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getFromLocation()).collect(Collectors.toSet()), ","));
-                    compareLocationTaskDto
-                        .setWcsToLocationCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getToLocation()).collect(Collectors.toSet()), ","));
-                    compareLocationTaskDto
-                        .setWcsContainerCode(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getContainerCode()).collect(Collectors.toSet()), ","));
-                    compareLocationTaskDto
-                        .setWcsTaskStatus(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getTaskStatusDesc()).collect(Collectors.toSet()), ","));
-                    compareLocationTaskDto.setWcsTaskCreateTime(StringUtils.join(wcsTaskDtoList.stream().map(t -> t.getCreated()).collect(Collectors.toSet()), ","));
-                    wcsCompareLocationTaskList.add(compareLocationTaskDto);
+                    for (WcsTaskDto wcsTaskDto : wcsTaskDtoList) {
+                        CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto();
+                        // 组装WMS数据
+                        compareLocationTaskDto.setWmsId(taskHeader.getId());
+                        compareLocationTaskDto.setTaskType(taskHeader.getTaskType());
+                        compareLocationTaskDto.setWarehouseCode(taskHeader.getWarehouseCode());
+                        compareLocationTaskDto.setFromLocationCode(taskHeader.getFromLocationCode());
+                        compareLocationTaskDto.setToLocationCode(taskHeader.getToLocationCode());
+                        compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode());
+                        compareLocationTaskDto.setTaskStatus(taskHeader.getStatus());
+                        compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
+                        // 组装WCS数据
+                        compareLocationTaskDto.setWcsId(wcsTaskDto.getId());
+                        compareLocationTaskDto.setWcsFromLocationCode(wcsTaskDto.getFromLocation());
+                        compareLocationTaskDto.setWcsToLocationCode(wcsTaskDto.getToLocation());
+                        compareLocationTaskDto.setWcsContainerCode(wcsTaskDto.getContainerCode());
+                        compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatus());
+                        compareLocationTaskDto.setWcsTaskCreateTime(wcsTaskDto.getCreated());
+                        if (ObjectUtil.compare(compareLocationTaskDto.getFromLocationCode(), compareLocationTaskDto.getWcsFromLocationCode()) != 0
+                            || ObjectUtil.compare(compareLocationTaskDto.getToLocationCode(), compareLocationTaskDto.getWcsToLocationCode()) != 0
+                            || ObjectUtil.compare(compareLocationTaskDto.getContainerCode(), compareLocationTaskDto.getWcsContainerCode()) != 0
+                            || ObjectUtil.compare(compareLocationTaskDto.getTaskStatus(), compareLocationTaskDto.getWcsTaskStatus()) != 0) {
+                            compareLocationTaskDto.setConsistencyStatus(0);
+                        }
+                        wcsCompareLocationTaskList.add(compareLocationTaskDto);
+                    }
                     continue;
                 }
                 CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto();
@@ -648,6 +650,7 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i
                 compareLocationTaskDto.setContainerCode(taskHeader.getContainerCode());
                 compareLocationTaskDto.setTaskStatus(taskHeader.getStatus());
                 compareLocationTaskDto.setTaskCreateTime(DateUtil.format(taskHeader.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
+                compareLocationTaskDto.setConsistencyStatus(0);
                 finalCompareLocationTaskList.add(compareLocationTaskDto);
             }
         }
@@ -658,12 +661,12 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i
                 CompareLocationTaskDto compareLocationTaskDto = new CompareLocationTaskDto();
                 // 组装WCS数据
                 compareLocationTaskDto.setWcsId(wcsTaskDto.getId());
-                compareLocationTaskDto.setWcsIdString(wcsTaskDto.getId().toString());
                 compareLocationTaskDto.setWcsFromLocationCode(wcsTaskDto.getFromLocation());
                 compareLocationTaskDto.setWcsToLocationCode(wcsTaskDto.getToLocation());
                 compareLocationTaskDto.setWcsContainerCode(wcsTaskDto.getContainerCode());
-                compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatusDesc());
+                compareLocationTaskDto.setWcsTaskStatus(wcsTaskDto.getTaskStatus());
                 compareLocationTaskDto.setWcsTaskCreateTime(wcsTaskDto.getCreated());
+                compareLocationTaskDto.setConsistencyStatus(0);
                 wcsCompareLocationTaskList.add(compareLocationTaskDto);
             }
         }
@@ -682,9 +685,9 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i
             finalCompareLocationTaskList =
                 finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getWcsId().equals(t.getWcsId())).collect(Collectors.toList());
         }
-        if (queryCompareLocationTaskDto.getTaskType() != null) {
-            finalCompareLocationTaskList =
-                finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getTaskType().equals(t.getTaskType())).collect(Collectors.toList());
+        if (queryCompareLocationTaskDto.getConsistencyStatus() != null) {
+            finalCompareLocationTaskList = finalCompareLocationTaskList.stream().filter(t -> queryCompareLocationTaskDto.getConsistencyStatus().equals(t.getConsistencyStatus()))
+                .collect(Collectors.toList());
         }
         return PageUtil.create(finalCompareLocationTaskList, queryCompareLocationTaskDto.getPageNo(), queryCompareLocationTaskDto.getPageSize());
     }
--
libgit2 0.22.2