From 5790d7573a83278667878e0f73104f8fc8ec5cf3 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期二, 10 三月 2026 11:03:51 +0800
Subject: [PATCH] 巡检统计信息纠正
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java | 84 ++++++++++++++++++++++++++++++++----------
1 files changed, 64 insertions(+), 20 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
index be3b45f..a44bdfa 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
@@ -45,10 +45,9 @@
/**
* 鏌ヨ鎶ヨ〃鏁版嵁
*
+ * @param param
* @author sgj
* @date 2025/12/19
- * @param param
-
*/
public List<SuperInventoryReportData> listSuperInventoryReportData(SuperInventoryReportParam param) {
//1.鑾峰彇鏌ヨ寰楄捣姝㈡椂闂达紝濡傛灉娌℃湁鍒欙紝榛樿鎴鏃堕棿涓哄綋澶╋紝璧峰鏃堕棿涓�30澶╁墠
@@ -66,12 +65,26 @@
//榛樿搴撳尯缂栫爜
String deptId = ContextUtil.subDeptId(null);
param.setCompanyId(companyId);
+
+ //region 鏌ヨ鏉′欢鏀跺偍鍏徃鍜屾墍灞炲簱鍖哄鐞�
+ if (StringUtils.isNotEmpty(param.getDeptId()) && StringUtils.isNotEmpty(param.getCustomerId())) {
+ String substring = param.getDeptId().substring(0, (param.getDeptId().length() - 3));
+ if (!substring.equals(param.getCustomerId())) {
+ return new ArrayList<SuperInventoryReportData>();
+ }
+ }
if (StringUtils.isEmpty(param.getDeptId())) {
+ param.setDeptId(param.getCustomerId());
+ }
+ //鏀跺偍鍏徃锛屾墍灞炲簱鍖烘煡璇㈠潎涓虹┖锛屽垯鏌ヨ榛樿搴撳尯
+ if (StringUtils.isEmpty(param.getCustomerId()) && StringUtils.isEmpty(param.getDeptId())) {
param.setDeptId(deptId);
}
+ //endregion
//region 鍒濆鍖栭渶瑕佽寖鍥寸殑鏁版嵁
- Map<String, SuperInventoryReportData> resultMap = new HashMap<>();
+ Map<String, SuperInventoryReportData> columsMap = new HashMap<>();
+
//鏌ヨ褰撳墠鐢ㄦ埛涓嬪睘鐨勬墍鏈夊簱鍖�
List<Dept> deptList = coreDeptService.getDeptData();
if (null == deptList || deptList.isEmpty()) {
@@ -79,10 +92,12 @@
}
//棰勫姞杞芥墍鏈夐儴闂ㄤ笅鐨勪粨搴撲俊鎭紝鍑忓皯閲嶅鏌ヨ
+ Map<String, Dept> deptCache = new HashMap<>();
Map<String, List<Depot>> deptDepotsMap = new HashMap<>();
Map<String, Company> companyCache = new HashMap<>();
for (Dept dept : deptList) {
+ deptCache.put(dept.getId(), dept);
//鑾峰彇搴撳尯涓嬫墍鏈変粨搴�
List<Depot> depotList = depotService.getData(companyId, dept.getId(), true);
if (null == depotList || depotList.isEmpty()) {
@@ -99,27 +114,30 @@
}
}
- //鏋勫缓缁撴灉鏁版嵁
+ //鏋勫缓缁撴灉鏁版嵁鏄犲皠map
for (Map.Entry<String, List<Depot>> entry : deptDepotsMap.entrySet()) {
String deptIdKey = entry.getKey();
Company company = companyCache.get(deptIdKey.substring(0, deptIdKey.length() - 3));
-
+ Dept dept = deptCache.get(deptIdKey);
for (Depot depot : entry.getValue()) {
//搴撳尯缂栫爜+浠撳簱缂栫爜缁勬垚鍞竴閿�
String key = deptIdKey + "_" + depot.getId();
SuperInventoryReportData data = new SuperInventoryReportData();
-
- data.setCustomerName(Optional.ofNullable(company)
+ data.setCustomerId(Optional.ofNullable(company)
.map(Company::getId)
.orElse("-"));
+ data.setCustomerName(Optional.ofNullable(company)
+ .map(Company::getDwmc)
+ .orElse("-"));
data.setDeptId(deptIdKey);
+ data.setDeptName(dept.getKqmc());
data.setDepotId(depot.getId());
- resultMap.put(key, data);
+ data.setDepotName(depot.getName());
+ columsMap.put(key, data);
}
}
//endregion
-
- if (resultMap.isEmpty()) {
+ if (columsMap.isEmpty()) {
return new ArrayList<>();
}
@@ -137,10 +155,11 @@
.collect(Collectors.groupingBy(record -> record.getDeptId() + "_" + record.getDepotId()));
//4. 鏍规嵁搴撳尯銆佷粨搴撲负鍞竴閿紝缁勮鎶ヨ〃鏁版嵁
+ List<SuperInventoryReportData> result = new ArrayList<>();
Date todayZero = DateUtil.getCurZero(new Date());
boolean isEndDateBeforeToday = param.getEnd().before(todayZero);
- for (SuperInventoryReportData data : resultMap.values()) {
+ for (SuperInventoryReportData data : columsMap.values()) {
String dataKey = data.getDeptId() + "_" + data.getDepotId();
//鑾峰彇搴撳瓨鏁版嵁
@@ -227,9 +246,20 @@
data.setChangeOutWeight(sumStockChangeOut);
data.setLossWeight(sumLossOver);
data.setFinalWeight(finalWeight);
+ result.add(data);
}
- return new ArrayList<>(resultMap.values());
+ if(result.isEmpty()){
+ //娌℃湁鏁版嵁鏃跺皢columsMap涓殑鏁版嵁娣诲姞鍒皉esult涓綔涓洪粯璁ゆ暟鎹�
+ columsMap.values().forEach(data -> {
+ String deptId_Item = data.getDeptId();
+ if(StringUtils.isNotBlank(param.getDeptId()) && deptId_Item.startsWith(param.getDeptId())){
+ result.add(data);
+ }
+ });
+ }
+
+ return result;
}
/**
@@ -238,8 +268,11 @@
private List<DepotStore> queryDepotStores(SuperInventoryReportParam param) {
QueryWrapper<DepotStore> depotStoreQueryWrapper = new QueryWrapper<>();
depotStoreQueryWrapper.eq("company_id", param.getCompanyId());
- depotStoreQueryWrapper.eq("dept_id", param.getDeptId());
- depotStoreQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+ if (StringUtils.isNotBlank(param.getDeptId())) {
+ depotStoreQueryWrapper.likeRight("dept_id", param.getDeptId());
+ }
+ depotStoreQueryWrapper.ge("create_time", param.getStart());
+ depotStoreQueryWrapper.le("create_time", param.getEnd());
depotStoreQueryWrapper.orderByAsc("create_time");
return depotStoreMapper.selectList(depotStoreQueryWrapper);
}
@@ -250,8 +283,13 @@
private List<InoutRecord> queryInoutRecords(SuperInventoryReportParam param) {
QueryWrapper<InoutRecord> inoutRecordQueryWrapper = new QueryWrapper<>();
inoutRecordQueryWrapper.eq("company_id", param.getCompanyId());
- inoutRecordQueryWrapper.eq("dept_id", param.getDeptId());
- inoutRecordQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+ if (StringUtils.isNotBlank(param.getDeptId())) {
+ inoutRecordQueryWrapper.likeRight("dept_id", param.getDeptId());
+ }
+ inoutRecordQueryWrapper.likeRight("progress", Constant.PROGRESS_RECORD); //宸插畬鎴愮殑鍗曟嵁
+ inoutRecordQueryWrapper.ne("record_status", Constant.RECORD_STATUS_DEL); //涓嶆槸鍒犻櫎鐨勫崟瀛愶紝鍗虫甯哥殑鍗曞瓙
+ inoutRecordQueryWrapper.ge("create_time", param.getStart());
+ inoutRecordQueryWrapper.le("create_time", param.getEnd());
inoutRecordQueryWrapper.orderByAsc("create_time");
return inoutRecordMapper.selectList(inoutRecordQueryWrapper);
}
@@ -262,8 +300,11 @@
private List<InoutStockChange> queryInoutStockChanges(SuperInventoryReportParam param) {
QueryWrapper<InoutStockChange> inoutStockChangeQueryWrapper = new QueryWrapper<>();
inoutStockChangeQueryWrapper.eq("company_id", param.getCompanyId());
- inoutStockChangeQueryWrapper.eq("dept_id", param.getDeptId());
- inoutStockChangeQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+ if (StringUtils.isNotBlank(param.getDeptId())) {
+ inoutStockChangeQueryWrapper.likeRight("dept_id", param.getDeptId());
+ }
+ inoutStockChangeQueryWrapper.ge("create_time", param.getStart());
+ inoutStockChangeQueryWrapper.le("create_time", param.getEnd());
inoutStockChangeQueryWrapper.orderByAsc("create_time");
return inoutStockChangeMapper.selectList(inoutStockChangeQueryWrapper);
}
@@ -274,8 +315,11 @@
private List<InoutLossOver> queryInoutLossOvers(SuperInventoryReportParam param) {
QueryWrapper<InoutLossOver> inoutLossOverQueryWrapper = new QueryWrapper<>();
inoutLossOverQueryWrapper.eq("company_id", param.getCompanyId());
- inoutLossOverQueryWrapper.eq("dept_id", param.getDeptId());
- inoutLossOverQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+ if (StringUtils.isNotBlank(param.getDeptId())) {
+ inoutLossOverQueryWrapper.likeRight("dept_id", param.getDeptId());
+ }
+ inoutLossOverQueryWrapper.ge("create_time", param.getStart());
+ inoutLossOverQueryWrapper.le("create_time", param.getEnd());
inoutLossOverQueryWrapper.orderByAsc("create_time");
return inoutLossOverMapper.selectList(inoutLossOverQueryWrapper);
}
--
Gitblit v1.9.3