diff --git a/klp-ui/src/api/wms/annealPerformance.js b/klp-ui/src/api/wms/annealPerformance.js
index bf0b6bf1a..076a7bb67 100644
--- a/klp-ui/src/api/wms/annealPerformance.js
+++ b/klp-ui/src/api/wms/annealPerformance.js
@@ -8,3 +8,12 @@ export function getAnnealPerformance(query) {
params: query
})
}
+
+// 查询退火计划中的加工前钢卷列表
+export function getAnnealRawCoils(query) {
+ return request({
+ url: '/wms/anneal/performance/rawCoils',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/klp-ui/src/api/wms/coilChangeLog.js b/klp-ui/src/api/wms/coilChangeLog.js
new file mode 100644
index 000000000..891cb7561
--- /dev/null
+++ b/klp-ui/src/api/wms/coilChangeLog.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 根据钢卷ID查询钢卷变更日志
+export function getCoilChangeLogByCoilId(coilId) {
+ return request({
+ url: '/wms/coilChangeLog/byCoilId/' + coilId,
+ method: 'get',
+ timeout: 100000
+ })
+}
diff --git a/klp-ui/src/views/crm/contract/components/ContractTabs.vue b/klp-ui/src/views/crm/contract/components/ContractTabs.vue
index bf337eb52..299866db7 100644
--- a/klp-ui/src/views/crm/contract/components/ContractTabs.vue
+++ b/klp-ui/src/views/crm/contract/components/ContractTabs.vue
@@ -75,10 +75,11 @@
-
-
-
-
+
+
+
+
+
@@ -134,10 +135,11 @@
-
-
-
-
+
+
+
+
+
@@ -417,7 +419,7 @@ export default {
orderId: this.orderId,
pageNum: this.productPagination.currentPage,
pageSize: this.productPagination.pageSize,
- ...this.productCoilBo
+ coilBo: this.productCoilBo
}).then(res => {
this.productCoilList = res.rows || [];
this.productPagination.total = res.total || 0;
@@ -431,7 +433,7 @@ export default {
});
},
fetchProductCoilStatistics() {
- getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.orderId }).then(res => {
+ getProductCoilsStatisticsByContract({ orderId: this.orderId, coilBo: this.productCoilBo }).then(res => {
this.productCoilStatistics = res.data || {};
});
},
@@ -445,6 +447,21 @@ export default {
this.productCoilBo = {};
this.handleProductFilter();
},
+ handleProductCoilStatusChange(val) {
+ if (val === 'in_stock') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 1;
+ } else if (val === 'shipped') {
+ this.productCoilBo.status = 1;
+ this.productCoilBo.dataType = undefined;
+ } else if (val === 'history') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 0;
+ } else {
+ this.productCoilBo.status = undefined;
+ this.productCoilBo.dataType = undefined;
+ }
+ },
handleDeliveryFilter() {
this.deliveryCoilBo.selectType = this.deliveryCoilBo.itemType || '';
this.deliveryPagination.currentPage = 1;
@@ -455,6 +472,21 @@ export default {
this.deliveryCoilBo = {};
this.handleDeliveryFilter();
},
+ handleDeliveryCoilStatusChange(val) {
+ if (val === 'in_stock') {
+ this.deliveryCoilBo.status = 0;
+ this.deliveryCoilBo.dataType = 1;
+ } else if (val === 'shipped') {
+ this.deliveryCoilBo.status = 1;
+ this.deliveryCoilBo.dataType = undefined;
+ } else if (val === 'history') {
+ this.deliveryCoilBo.status = 0;
+ this.deliveryCoilBo.dataType = 0;
+ } else {
+ this.deliveryCoilBo.status = undefined;
+ this.deliveryCoilBo.dataType = undefined;
+ }
+ },
handleProductPageChange({ currentPage, pageSize }) {
this.productPagination.currentPage = currentPage;
this.productPagination.pageSize = pageSize;
diff --git a/klp-ui/src/views/crm/saleman/index.vue b/klp-ui/src/views/crm/saleman/index.vue
index 7b8cc4738..7a63ea733 100644
--- a/klp-ui/src/views/crm/saleman/index.vue
+++ b/klp-ui/src/views/crm/saleman/index.vue
@@ -93,10 +93,11 @@
-
-
-
-
+
+
+
+
+
@@ -144,6 +145,13 @@
+
+
+
+
+
+
+
@@ -470,6 +478,36 @@ export default {
this.productCoilBo = {};
this.handleProductFilter();
},
+ handleCoilStatusChange(val) {
+ if (val === 'in_stock') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 1;
+ } else if (val === 'shipped') {
+ this.productCoilBo.status = 1;
+ this.productCoilBo.dataType = undefined;
+ } else if (val === 'history') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 0;
+ } else {
+ this.productCoilBo.status = undefined;
+ this.productCoilBo.dataType = undefined;
+ }
+ },
+ handleDeliveryCoilStatusChange(val) {
+ if (val === 'in_stock') {
+ this.deliveryCoilBo.status = 0;
+ this.deliveryCoilBo.dataType = 1;
+ } else if (val === 'shipped') {
+ this.deliveryCoilBo.status = 1;
+ this.deliveryCoilBo.dataType = undefined;
+ } else if (val === 'history') {
+ this.deliveryCoilBo.status = 0;
+ this.deliveryCoilBo.dataType = 0;
+ } else {
+ this.deliveryCoilBo.status = undefined;
+ this.deliveryCoilBo.dataType = undefined;
+ }
+ },
fetchDeliveryCoils(principal) {
this.deliveryCoilLoading = true;
return listDeliveryCoilsByPrincipal({
diff --git a/klp-ui/src/views/perf/index/SalaryPanel.vue b/klp-ui/src/views/perf/index/SalaryPanel.vue
index ca1d6a3f8..473387e31 100644
--- a/klp-ui/src/views/perf/index/SalaryPanel.vue
+++ b/klp-ui/src/views/perf/index/SalaryPanel.vue
@@ -751,7 +751,7 @@ export default {
.cell-input {
width: 100%;
height: 28px;
- border: none;
+ border: 1px solid #dcdfe6;
outline: none;
text-align: right;
padding: 0 6px;
diff --git a/klp-ui/src/views/wms/anneal/performance/report.vue b/klp-ui/src/views/wms/anneal/performance/report.vue
index 08c43731f..6f17560ea 100644
--- a/klp-ui/src/views/wms/anneal/performance/report.vue
+++ b/klp-ui/src/views/wms/anneal/performance/report.vue
@@ -1,75 +1,119 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询
- 重置
- 导出
-
-
+
-
- {{ summary.planCount || 0 }}
- {{ summary.coilCount || 0 }}
- {{ summary.totalWeight || 0 }} t
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+ 导出
+
+
-
-
-
-
-
- {{ parseTime(scope.row.actualStartTime, '{y}-{m}-{d} {h}:{i}') }}
-
-
-
-
- {{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {{ summary.planCount || 0 }}
+ {{ summary.coilCount || 0 }}
+ {{ summary.totalWeight || 0 }} t
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.actualStartTime, '{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+ {{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+ {{ rawSummary.coilCount || 0 }}
+ {{ rawSummary.totalWeight || 0 }} t
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-ui/src/views/wms/coil/info/components/CostInfoSection.vue b/klp-ui/src/views/wms/coil/info/components/CostInfoSection.vue
index 6c20d66c1..c3c263ccc 100644
--- a/klp-ui/src/views/wms/coil/info/components/CostInfoSection.vue
+++ b/klp-ui/src/views/wms/coil/info/components/CostInfoSection.vue
@@ -53,6 +53,7 @@
+
@@ -704,4 +705,5 @@ export default {
font-weight: 600;
color: #f56c6c;
}
+
diff --git a/klp-ui/src/views/wms/coil/info/index.vue b/klp-ui/src/views/wms/coil/info/index.vue
index e56a40741..615cc0fb5 100644
--- a/klp-ui/src/views/wms/coil/info/index.vue
+++ b/klp-ui/src/views/wms/coil/info/index.vue
@@ -1,4 +1,4 @@
-
+
@@ -64,6 +66,7 @@ import LifecycleTrace from './components/LifecycleTrace.vue'
import ContractInfo from './components/ContractInfo.vue'
import SalesObjectionTable from './components/SalesObjectionTable.vue'
import TransferRecords from './components/TransferRecords.vue'
+import ChangeLogSection from './components/ChangeLogSection.vue'
// import InspectionInfo from './components/InspectionInfo.vue'
import ProductionCharts from './components/ProductionCharts.vue'
@@ -77,6 +80,7 @@ export default {
ContractInfo,
SalesObjectionTable,
TransferRecords,
+ ChangeLogSection,
// InspectionInfo,
ProductionCharts
},
diff --git a/klp-ui/src/views/wms/post/aps/orderTrack.vue b/klp-ui/src/views/wms/post/aps/orderTrack.vue
index d6e6c0538..a72b9385d 100644
--- a/klp-ui/src/views/wms/post/aps/orderTrack.vue
+++ b/klp-ui/src/views/wms/post/aps/orderTrack.vue
@@ -142,10 +142,11 @@
-
-
-
-
+
+
+
+
+
@@ -433,7 +434,7 @@ export default {
orderId: this.currentOrder.orderId,
pageNum: this.productPagination.currentPage,
pageSize: this.productPagination.pageSize,
- ...this.productCoilBo
+ coilBo: this.productCoilBo
}).then(res => {
this.productCoilList = res.rows || []
this.productPagination.total = res.total || 0
@@ -443,7 +444,7 @@ export default {
},
fetchProductCoilStatistics() {
if (!this.currentOrder || !this.currentOrder.orderId) return
- getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.currentOrder.orderId }).then(res => {
+ getProductCoilsStatisticsByContract({ orderId: this.currentOrder.orderId, coilBo: this.productCoilBo }).then(res => {
this.productCoilStatistics = res.data || {}
})
},
@@ -457,6 +458,21 @@ export default {
this.productCoilBo = {}
this.handleProductFilter()
},
+ handleCoilStatusChange(val) {
+ if (val === 'in_stock') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 1;
+ } else if (val === 'shipped') {
+ this.productCoilBo.status = 1;
+ this.productCoilBo.dataType = undefined;
+ } else if (val === 'history') {
+ this.productCoilBo.status = 0;
+ this.productCoilBo.dataType = 0;
+ } else {
+ this.productCoilBo.status = undefined;
+ this.productCoilBo.dataType = undefined;
+ }
+ },
handleProductSelectionChange(selection) {
this.selectedProductRows = selection
},
diff --git a/klp-ui/src/views/wms/report/template/action.vue b/klp-ui/src/views/wms/report/template/action.vue
index 333508d1d..3cb0be8a5 100644
--- a/klp-ui/src/views/wms/report/template/action.vue
+++ b/klp-ui/src/views/wms/report/template/action.vue
@@ -524,7 +524,12 @@ export default {
endDate = `${dateStr}-${lastDayOfMonth.toString().padStart(2, '0')}`;
} else if (dayPattern.test(dateStr)) {
startDate = dateStr;
- endDate = dateStr;
+ const nextDay = new Date(dateStr);
+ nextDay.setDate(nextDay.getDate() + 1);
+ const nextYear = nextDay.getFullYear();
+ const nextMonth = String(nextDay.getMonth() + 1).padStart(2, '0');
+ const nextDayNum = String(nextDay.getDate()).padStart(2, '0');
+ endDate = `${nextYear}-${nextMonth}-${nextDayNum}`;
} else {
throw new Error('输入格式错误,请传入 yyyy、yyyy-MM 或 yyyy-MM-dd 格式的字符串');
}
@@ -552,7 +557,7 @@ export default {
defaultEndTime,
getDayTimeRange,
// all 类型专用
- viewType: 'custom',
+ viewType: 'day',
yesterdaySummary: {},
monthChart: null,
dayChart: null,
@@ -734,9 +739,9 @@ export default {
this.queryParams.byCreateTimeStart = start;
this.queryParams.byCreateTimeEnd = end;
} else if (this.reportType === 'all') {
- // all 类型默认使用当前月份作为自定义时间范围
- this.viewType = 'custom';
- const { start, end } = this.getDayTimeRange(this.monthDate);
+ // all 类型默认使用日视图,选中今天,筛选今天07:00到明天07:00的数据
+ this.viewType = 'day';
+ const { start, end } = this.getDayTimeRange(this.dayDate);
this.queryParams.startTime = start;
this.queryParams.endTime = end;
} else {
diff --git a/klp-wms/src/main/java/com/klp/controller/WmsAnnealPerformanceController.java b/klp-wms/src/main/java/com/klp/controller/WmsAnnealPerformanceController.java
index b04b7408e..4524aa2bc 100644
--- a/klp-wms/src/main/java/com/klp/controller/WmsAnnealPerformanceController.java
+++ b/klp-wms/src/main/java/com/klp/controller/WmsAnnealPerformanceController.java
@@ -2,15 +2,13 @@ package com.klp.controller;
import com.klp.common.core.domain.R;
import com.klp.domain.bo.WmsAnnealPerformanceBo;
-import com.klp.domain.bo.WmsMaterialCoilBo;
+import com.klp.domain.bo.WmsAnnealPlanCoilBo;
import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.domain.vo.anneal.WmsAnnealPerformanceVo;
import com.klp.service.IWmsAnnealPerformanceService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -36,8 +34,8 @@ public class WmsAnnealPerformanceController {
/**
* 查询退火计划中的加工前钢卷列表
*/
- @GetMapping("/rawCoils")
- public R> getRawCoils(WmsAnnealPerformanceBo bo, WmsMaterialCoilBo coilBo) {
- return R.ok(performanceService.queryPlanCoils(bo, coilBo));
+ @PostMapping("/rawCoils")
+ public R> getRawCoils(@RequestBody WmsAnnealPlanCoilBo bo) {
+ return R.ok(performanceService.queryPlanCoils(bo));
}
}
diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilChangeLogController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilChangeLogController.java
index 1e0a9baa6..4de889281 100644
--- a/klp-wms/src/main/java/com/klp/controller/WmsCoilChangeLogController.java
+++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilChangeLogController.java
@@ -65,6 +65,15 @@ public class WmsCoilChangeLogController extends BaseController {
return R.ok(iWmsCoilChangeLogService.queryById(logId));
}
+ /**
+ * 按钢卷ID查询变更日志
+ */
+ @GetMapping("/byCoilId/{coilId}")
+ public R> getByCoilId(@NotNull(message = "钢卷ID不能为空")
+ @PathVariable Long coilId) {
+ return R.ok(iWmsCoilChangeLogService.queryByCoilId(coilId));
+ }
+
/**
* 新增钢卷变更日志
*/
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPlanCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPlanCoilBo.java
new file mode 100644
index 000000000..10bcfc159
--- /dev/null
+++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsAnnealPlanCoilBo.java
@@ -0,0 +1,17 @@
+package com.klp.domain.bo;
+
+import lombok.Data;
+
+/**
+ * 退火计划钢卷查询复合BO
+ *
+ * @author klp
+ * @date 2026-07-14
+ */
+@Data
+public class WmsAnnealPlanCoilBo {
+
+ private WmsAnnealPerformanceBo planBo;
+
+ private WmsMaterialCoilBo coilBo;
+}
diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilChangeLogVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilChangeLogVo.java
index 3d330fe50..81b83c1f4 100644
--- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilChangeLogVo.java
+++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilChangeLogVo.java
@@ -3,6 +3,7 @@ package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
+import com.klp.common.core.domain.BaseEntity;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
@@ -15,7 +16,7 @@ import lombok.Data;
*/
@Data
@ExcelIgnoreUnannotated
-public class WmsCoilChangeLogVo {
+public class WmsCoilChangeLogVo extends BaseEntity {
private static final long serialVersionUID = 1L;
diff --git a/klp-wms/src/main/java/com/klp/service/IWmsAnnealPerformanceService.java b/klp-wms/src/main/java/com/klp/service/IWmsAnnealPerformanceService.java
index 6e08554db..b3ee8b38b 100644
--- a/klp-wms/src/main/java/com/klp/service/IWmsAnnealPerformanceService.java
+++ b/klp-wms/src/main/java/com/klp/service/IWmsAnnealPerformanceService.java
@@ -1,7 +1,7 @@
package com.klp.service;
import com.klp.domain.bo.WmsAnnealPerformanceBo;
-import com.klp.domain.bo.WmsMaterialCoilBo;
+import com.klp.domain.bo.WmsAnnealPlanCoilBo;
import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.domain.vo.anneal.WmsAnnealPerformanceVo;
@@ -20,5 +20,5 @@ public interface IWmsAnnealPerformanceService {
/**
* 查询退火计划中的加工前钢卷列表
*/
- List queryPlanCoils(WmsAnnealPerformanceBo bo, WmsMaterialCoilBo coilBo);
+ List queryPlanCoils(WmsAnnealPlanCoilBo bo);
}
diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilChangeLogService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilChangeLogService.java
index ae362ec19..eb7f4a3e0 100644
--- a/klp-wms/src/main/java/com/klp/service/IWmsCoilChangeLogService.java
+++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilChangeLogService.java
@@ -32,6 +32,11 @@ public interface IWmsCoilChangeLogService {
*/
List queryList(WmsCoilChangeLogBo bo);
+ /**
+ * 按钢卷ID查询钢卷变更日志列表(匹配变更前/变更后钢卷)
+ */
+ List queryByCoilId(Long coilId);
+
/**
* 新增钢卷变更日志
*/
diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java
index 893cc2016..2bfa1383b 100644
--- a/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java
+++ b/klp-wms/src/main/java/com/klp/service/impl/WmsAnnealPerformanceServiceImpl.java
@@ -5,6 +5,7 @@ import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.utils.StringUtils;
import com.klp.domain.bo.WmsAnnealPerformanceBo;
+import com.klp.domain.bo.WmsAnnealPlanCoilBo;
import com.klp.domain.bo.WmsMaterialCoilBo;
import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.domain.vo.anneal.WmsAnnealPerformanceDetailVo;
@@ -210,13 +211,18 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
}
@Override
- public List queryPlanCoils(WmsAnnealPerformanceBo bo, WmsMaterialCoilBo coilBo) {
+ public List queryPlanCoils(WmsAnnealPlanCoilBo bo) {
+ WmsAnnealPerformanceBo planBo = bo.getPlanBo();
+ WmsMaterialCoilBo coilBo = bo.getCoilBo();
+ if (planBo == null || coilBo == null) {
+ return Collections.emptyList();
+ }
// 1. 查询退火计划
LambdaQueryWrapper planQw = new LambdaQueryWrapper()
- .ge(bo.getStartTime() != null, WmsFurnacePlan::getActualStartTime, bo.getStartTime())
- .le(bo.getEndTime() != null, WmsFurnacePlan::getActualStartTime, bo.getEndTime())
- .eq(bo.getTargetFurnaceId() != null, WmsFurnacePlan::getTargetFurnaceId, bo.getTargetFurnaceId())
- .like(StringUtils.isNotBlank(bo.getPlanNo()), WmsFurnacePlan::getPlanNo, bo.getPlanNo())
+ .ge(planBo.getStartTime() != null, WmsFurnacePlan::getActualStartTime, planBo.getStartTime())
+ .le(planBo.getEndTime() != null, WmsFurnacePlan::getActualStartTime, planBo.getEndTime())
+ .eq(planBo.getTargetFurnaceId() != null, WmsFurnacePlan::getTargetFurnaceId, planBo.getTargetFurnaceId())
+ .like(StringUtils.isNotBlank(planBo.getPlanNo()), WmsFurnacePlan::getPlanNo, planBo.getPlanNo())
.eq(WmsFurnacePlan::getDelFlag, 0);
List plans = planMapper.selectList(planQw);
diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilChangeLogServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilChangeLogServiceImpl.java
index 692982f75..8626e03e9 100644
--- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilChangeLogServiceImpl.java
+++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilChangeLogServiceImpl.java
@@ -58,6 +58,16 @@ public class WmsCoilChangeLogServiceImpl implements IWmsCoilChangeLogService {
return baseMapper.selectVoList(lqw);
}
+ @Override
+ public List queryByCoilId(Long coilId) {
+ return baseMapper.selectVoList(Wrappers.lambdaQuery()
+ .and(wrapper -> wrapper.eq(WmsCoilChangeLog::getOldCoilId, coilId)
+ .or()
+ .eq(WmsCoilChangeLog::getNewCoilId, coilId))
+ .orderByDesc(WmsCoilChangeLog::getCreateTime)
+ .orderByDesc(WmsCoilChangeLog::getLogId));
+ }
+
private LambdaQueryWrapper buildQueryWrapper(WmsCoilChangeLogBo bo) {
Map params = bo.getParams();
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();