diff --git a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java index a8d18f46..da1d3a90 100644 --- a/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java +++ b/klp-pocket/src/main/java/com/klp/pocket/service/impl/Klptcm1ProStoppageServiceImpl.java @@ -16,7 +16,12 @@ import com.klp.pocket.domain.Klptcm1ProStoppage; import com.klp.pocket.mapper.Klptcm1ProStoppageMapper; import com.klp.pocket.service.IKlptcm1ProStoppageService; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -75,8 +80,17 @@ public class Klptcm1ProStoppageServiceImpl implements IKlptcm1ProStoppageService // bo.startDate 是查询开始时间,stoppage.startDate 是停机开始时间 lqw.ge(bo.getStartDate() != null, Klptcm1ProStoppage::getStartDate, bo.getStartDate()); // bo.endDate 是查询结束时间,stoppage.startDate 是停机开始时间 - lqw.le(bo.getEndDate() != null, Klptcm1ProStoppage::getStartDate, bo.getEndDate()); + // 如果结束日期存在,将其设置为当天的最后一刻(23:59:59.999),以覆盖整天的查询 + if (bo.getEndDate() != null) { + Date endDate = bo.getEndDate(); + LocalDate localDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDateTime endOfDay = LocalDateTime.of(localDate, LocalTime.MAX); + Date endDateWithTime = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + lqw.le(Klptcm1ProStoppage::getStartDate, endDateWithTime); + } lqw.eq(bo.getDURATION() != null, Klptcm1ProStoppage::getDuration, bo.getDURATION()); + // 只查询持续时间大于等于5分钟(300秒)的停机记录 + lqw.ge(Klptcm1ProStoppage::getDuration, 300); lqw.eq(bo.getInsDate() != null, Klptcm1ProStoppage::getInsDate, bo.getInsDate()); lqw.eq(StringUtils.isNotBlank(bo.getStopType()), Klptcm1ProStoppage::getStopType, bo.getStopType()); //倒序 diff --git a/klp-ui/src/api/wms/actualWarehouse.js b/klp-ui/src/api/wms/actualWarehouse.js index a66c384a..348b5bd5 100644 --- a/klp-ui/src/api/wms/actualWarehouse.js +++ b/klp-ui/src/api/wms/actualWarehouse.js @@ -70,3 +70,12 @@ export function delActualWarehouse(actualWarehouseId) { method: 'delete' }) } + +// 获取两级的树结构 +export function treeActualWarehouseTwoLevel(query) { + return request({ + url: '/wms/actualWarehouse/levelTwo', + method: 'get', + params: query + }) +} diff --git a/klp-ui/src/components/KLPService/ActualWarehouseSelect/index.vue b/klp-ui/src/components/KLPService/ActualWarehouseSelect/index.vue index f1255333..932f557a 100644 --- a/klp-ui/src/components/KLPService/ActualWarehouseSelect/index.vue +++ b/klp-ui/src/components/KLPService/ActualWarehouseSelect/index.vue @@ -1,56 +1,46 @@ - - + - - - {{ levelLabels[option.level] }} - {{ option.fullLabel }} - - - + /> \ No newline at end of file diff --git a/klp-ui/src/views/wms/warehouse/real.vue b/klp-ui/src/views/wms/warehouse/real.vue index 59d0ad29..fea25fb1 100644 --- a/klp-ui/src/views/wms/warehouse/real.vue +++ b/klp-ui/src/views/wms/warehouse/real.vue @@ -65,8 +65,11 @@ :data="filteredTreeData" row-key="actualWarehouseId" :default-expand-all="isExpandAll" + :expand-row-keys="expandRowKeys" class="warehouse-table" :tree-props="{ children: 'children' }" + lazy + :load="handleLoad" > @@ -78,7 +81,7 @@ - + {{ scope.row.isEnabled === 1 ? '未占用' : '已占用' }} @@ -331,10 +334,12 @@ import { addActualWarehouse, updateActualWarehouse, createActualWarehouseHierarchy, - importActualWarehouse + importActualWarehouse, + treeActualWarehouseTwoLevel } from "@/api/wms/actualWarehouse"; import QRCode from "../print/components/QRCode.vue"; import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect"; +import { listActualWarehouse } from "../../../api/wms/actualWarehouse"; const LEVELS = [1, 2, 3]; const LEVEL_LABELS = { @@ -350,7 +355,7 @@ export default { return { showSearch: true, loading: false, - isExpandAll: true, + isExpandAll: false, warehouseTree: [], filteredCache: [], nodeIndex: {}, @@ -416,6 +421,9 @@ export default { return this.warehouseTree; } return this.filterTree(this.warehouseTree, keyword, levelFilter); + }, + expandRowKeys() { + return this.warehouseTree.map(item => item.actualWarehouseId); } }, created() { @@ -442,9 +450,17 @@ export default { }, getTreeData() { this.loading = true; - listActualWarehouseTree({ actualWarehouseName: this.queryParams.keyword }) + treeActualWarehouseTwoLevel({ actualWarehouseName: this.queryParams.keyword }) .then(res => { - const list = res.data || []; + const list = res.data.map(item => { + // 便利item的children中的每一项 + item.children = item.children || []; + item.children.forEach(child => { + delete child.children; + child.hasChildren = true; + }); + return item; + }) || []; this.decorateTree(list); }) .finally(() => { @@ -500,6 +516,21 @@ export default { this.toggleTreeRows(this.filteredTreeData, this.isExpandAll); }); }, + handleLoad(treeData, treeNode, resolve) { + console.log(treeData, treeNode); + listActualWarehouse({ parentId: treeData.actualWarehouseId }) + .then(res => { + const list = res.data.map(item => { + item.hasChildren = false; + item.level = treeData.level + 1; + return item; + }) || []; + resolve(list); + }) + .catch(() => { + resolve([]); + }); + }, toggleTreeRows(nodes, expand) { const table = this.$refs.treeTable; if (!table || !Array.isArray(nodes)) return;