From 878b6958363308a7d07b7b8197dc19662f3e1198 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 27 三月 2026 15:40:22 +0800
Subject: [PATCH] 获取出入库id,逻辑优化调整
---
fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 277 insertions(+), 5 deletions(-)
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
index 6bb065f..35fc6d2 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
@@ -13,14 +13,13 @@
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
+import org.apache.commons.lang3.time.DateUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* @Description
@@ -49,6 +48,14 @@
private SnapRecordService snapRecordService;
@Resource
private SecCameraService cameraService;
+ @Resource
+ private BankService bankService;
+ @Resource
+ private PledgeContractService pledgeContractService;
+ @Resource
+ private PledgeContractDepotService pledgeContractDepotService;
+ @Resource
+ private GatewaySerService gatewaySerService;
/**
* 鑾峰彇鐪佸強涓嬪睘甯傚窞闆嗗悎
@@ -115,6 +122,116 @@
area.setChildren(children);
}
+ }
+ list.add(area);
+ return list;
+ }
+
+
+ public List<DicArea> getBankAndChildDept(String areaCode) {
+
+ DicArea area = dicAreaService.listDicAreaByCode(areaCode);
+ if (null == area) {
+ return null;
+ }
+ List<DicArea> areaChildren = new ArrayList<>();
+
+ List<DicArea> list = new ArrayList<>();
+ if (Constant.AREA_TYPE_1.equals(area.getType())) {
+ //鏌ヨ鎵�鏈夌殑璐ㄦ娂鍚堝悓
+ List<PledgeContract> pledgeContractList = pledgeContractService.listAll(null);
+ //鏌ヨ鎵�鏈夌殑搴撳尯
+ List<Dept> depotList = deptService.listDept(null, ContextUtil.getCompanyId(), null);
+ //鏌ヨ鎵�鏈夌殑閾惰
+ List<Bank> bankList = bankService.listAll(null);
+ DicArea defaultBank = new DicArea();
+ defaultBank.setCode("-1");
+ defaultBank.setName("鏃犺川鎶奸摱琛�");
+ defaultBank.setChildren(new ArrayList<>());
+
+ for (Dept dept : depotList) {
+ Boolean isPledge = false;
+ for (PledgeContract pledgeContract : pledgeContractList) {
+ IgdsBaseParam param = new IgdsBaseParam();
+ param.setParentId(pledgeContract.getId());
+ List<PledgeContractDepot> pledgeContractDepots = pledgeContractDepotService.listAll(param);
+ if (null == pledgeContractDepots || pledgeContractDepots.isEmpty()) {
+ continue;
+ }
+ //鎵惧埌pledgeContractDepots涓殑deptId闆嗗悎锛屽苟鍘婚噸
+ List<String> deptIdList = pledgeContractDepots.stream().map(PledgeContractDepot::getPledgeDept).distinct().collect(Collectors.toList());
+ if (deptIdList.contains(dept.getId())) {
+ //浠巐ist涓壘鍒板綋鍓嶈川鎶奸摱琛岀殑鏁版嵁
+ DicArea pledgeBank = null;
+ int indexBank = -1;
+ for (DicArea item : areaChildren) {
+ if (pledgeContract.getPledgeBank().equals(item.getCode())) {
+ pledgeBank = item;
+ indexBank = areaChildren.indexOf(pledgeBank);
+ break;
+ }
+ }
+ if (null == pledgeBank) {
+ //鏈壘鍒拌川鎶奸摱琛屾暟鎹垯鏂板缓
+ pledgeBank = new DicArea();
+ pledgeBank.setCode(pledgeContract.getPledgeBank());
+ pledgeBank.setName("璐ㄦ娂閾惰_" + pledgeContract.getPledgeBank());
+ //浠庨摱琛屾暟鎹腑鎵惧埌璐ㄦ娂閾惰鐨勪俊鎭�
+ for (Bank bank : bankList) {
+ if (pledgeContract.getPledgeBank().equals(bank.getId())) {
+ pledgeBank.setName(bank.getName());
+ }
+ }
+ //娣诲姞璐ㄦ娂閾惰涓嬬殑搴撳尯鏁版嵁
+ DicArea deptDic = new DicArea();
+ deptDic.setCode(dept.getId());
+ deptDic.setName(dept.getKqmc());
+
+ List<DicArea> children = pledgeBank.getChildren();
+ if (null == children) {
+ pledgeBank.setChildren(new ArrayList<>());
+ }
+ pledgeBank.getChildren().add(deptDic);
+ //鏂板璐ㄦ娂閾惰鏁版嵁鍒發ist涓�
+ areaChildren.add(pledgeBank);
+ isPledge = true;
+ break;
+ } else {
+ //娣诲姞璐ㄦ娂閾惰涓嬬殑搴撳尯鏁版嵁
+ DicArea deptDic = new DicArea();
+ deptDic.setCode(dept.getId());
+ deptDic.setName(dept.getKqmc());
+
+ List<DicArea> children = pledgeBank.getChildren();
+ if (null == children) {
+ pledgeBank.setChildren(new ArrayList<>());
+ }
+ pledgeBank.getChildren().add(deptDic);
+ //鏇存柊list涓殑璐ㄦ娂閾惰鏁版嵁
+ areaChildren.set(indexBank, pledgeBank);
+ isPledge = true;
+ break;
+ }
+ }
+
+ }
+ if (!isPledge) {
+ DicArea deptDic = new DicArea();
+ deptDic.setCode(dept.getId());
+ deptDic.setName(dept.getKqmc());
+
+ List<DicArea> children = defaultBank.getChildren();
+ if (null == children) {
+ defaultBank.setChildren(new ArrayList<>());
+ }
+ defaultBank.getChildren().add(deptDic);
+ }
+ }
+ List<DicArea> defaultBankChildren = defaultBank.getChildren();
+ if (defaultBankChildren.size() > 0) {
+ areaChildren.add(defaultBank);
+ }
+ area.setChildren(areaChildren);
}
list.add(area);
return list;
@@ -191,6 +308,44 @@
}
}
+ return list;
+ }
+
+
+ /**
+ * 鑾峰彇搴撳尯灏佽淇℃伅
+ *
+ * @param companyId
+ * @return
+ */
+ public List<GroupDepotData> getDepotData(String companyId) {
+
+ List<GroupDepotData> list = new ArrayList<>();
+ GroupDepotData depotData;
+ List<Dept> deptList = deptService.getDeptByUserType(null);
+ if (null != deptList && !deptList.isEmpty()) {
+ List<Depot> depotList;
+ for (Dept dept : deptList) {
+ //缁熻浠撳簱鏁�
+ depotList = depotService.getCacheDepotList(dept.getCompanyId(), dept.getId());
+ if (null != depotList && !depotList.isEmpty()) {
+ for (Depot depot : depotList) {
+ depotData = new GroupDepotData();
+ depotData.setDeptId(dept.getId());
+ depotData.setDeptName(dept.getKqmc());
+ depotData.setCode(dept.getXzqhdm());
+ depotData.setCounty(dept.getXzqhmc());
+ depotData.setDepotId(depot.getId());
+ depotData.setDepotName(depot.getName());
+ if (null == depot.getStorageReal()) {
+ depot.setStorageReal(0.0);
+ }
+ depotData.setStorageNum(depot.getStorageReal() / 1000);
+ list.add(depotData);
+ }
+ }
+ }
+ }
return list;
}
@@ -364,7 +519,11 @@
}
}
}
-
+ //鍒ゆ柇缃戝叧鏄惁鍦ㄧ嚎
+ GatewaySer cacheSerByDeptId = gatewaySerService.getCacheSerByDeptId(dept.getId());
+ if (null == cacheSerByDeptId || (null != cacheSerByDeptId && StringUtils.isNotBlank(cacheSerByDeptId.getStatus()) && cacheSerByDeptId.getStatus().equals(Constant.YN_N))) {
+ deptData.setDailyTotal(-1);
+ }
list.add(deptData);
}
}
@@ -440,6 +599,70 @@
return groupGisData;
}
+
+ public GroupGisData getGisDataByCompanyId() {
+
+ GroupGisData groupGisData = new GroupGisData();
+
+ //鏌ヨ浼婄妬涓嬪睘鍖哄幙
+ //鍖哄幙
+ List<DicArea> dicAreaList = dicAreaService.listData("654000", null, null);
+
+ //缁熻鍖哄幙涓嬪簱鍖烘暟
+ LinkedHashMap<String, Integer> valuePieChart = new LinkedHashMap<>();
+ LinkedHashMap<String, String> namePieChart = new LinkedHashMap<>();
+ if (null != dicAreaList && !dicAreaList.isEmpty()) {
+ for (DicArea dicArea : dicAreaList) {
+ valuePieChart.put(dicArea.getCode(), 0);
+ namePieChart.put(dicArea.getCode(), dicArea.getName());
+ }
+ }
+ List<Dept> deptList = deptService.getDeptByUserType(null);
+ if (null != deptList && !deptList.isEmpty()) {
+ //搴撳尯鎬绘暟
+ groupGisData.setDeptNum(deptList.size());
+ for (Dept dept : deptList) {
+ if (StringUtils.isBlank(dept.getXzqhdm()) || null == valuePieChart.get(dept.getXzqhdm())) {
+ if (null == valuePieChart.get("999999")) {
+ valuePieChart.put("999999", 0);
+ namePieChart.put("999999", "鍏朵粬鍖哄幙");
+ }
+ dept.setXzqhdm("999999");
+ }
+ valuePieChart.put(dept.getXzqhdm(), valuePieChart.get(dept.getXzqhdm()) + 1);
+ }
+ }
+
+ if (groupGisData.getDeptNum() > 0) {
+ for (String mapKey : valuePieChart.keySet()) {
+ groupGisData.getDeptList().add(new ChartPie(valuePieChart.get(mapKey) + "", namePieChart.get(mapKey), new DecimalFormat("0.0").format((double) valuePieChart.get(mapKey) / groupGisData.getDeptNum() * 100)));
+ }
+ }
+
+ //缁熻閲嶉噺
+ List<Depot> depotList = depotService.getCacheDepotList(ContextUtil.getCompanyId());
+ if (null != depotList && !depotList.isEmpty()) {
+ for (Depot depot : depotList) {
+ if (null == depot.getStorageReal()) {
+ depot.setStorageReal(0.0);
+ }
+ groupGisData.setSum(groupGisData.getSum() + depot.getStorageReal());
+ if (StringUtils.isNotBlank(depot.getPledgeBank())) {
+ groupGisData.setBankSum(groupGisData.getBankSum() + depot.getStorageReal());
+ } else {
+ groupGisData.setNormalSum(groupGisData.getNormalSum() + depot.getStorageReal());
+ }
+ }
+ }
+ if (groupGisData.getSum() > 0) {
+ groupGisData.setSumPer(new DecimalFormat("0.00").format(groupGisData.getSum() / groupGisData.getSum() * 100L));
+ groupGisData.setBankSumPer(new DecimalFormat("0.00").format(groupGisData.getBankSum() / groupGisData.getSum() * 100L));
+ groupGisData.setNormalSumPer(new DecimalFormat("0.00").format(groupGisData.getNormalSum() / groupGisData.getSum() * 100L));
+ }
+
+ return groupGisData;
+ }
+
/**
* 澶у睆棣栭〉-鎶撴媿璺熻釜淇℃伅
*
@@ -470,4 +693,53 @@
return new PageResponse<>(RespCodeEnum.CODE_0000, resultListSnap);
}
+
+
+ /**
+ * 澶у睆棣栭〉-鎶撴媿璺熻釜淇℃伅-灞曠ずAI鏃堕棿鍥剧墖
+ * 灞曠ず鍥剧墖鐨勪笟鍔¢�昏緫锛氭瘡涓簱鍖哄睍绀轰竴寮狅紝鍥剧墖涓哄綋澶╁崄鐐逛互鍚庢渶鏂扮殑涓�寮�
+ * @param param
+ * @return
+ */
+ public PageResponse<List<EventInfo>> indexEventInfoList(IgdsBaseParam param) {
+// Date start =DateUtils.setHours(DateUtil.getNewByDay(new Date(), -3), 10);
+ //param.setStart(start);
+// param.setEnd(DateUtil.getNewByDay(new Date(), -3));
+ Date start =DateUtils.setHours(new Date(), 10);
+ param.setStart(start);
+ param.setEnd(new Date());
+ //鑾峰彇褰撴棩鐨勬姄鎷嶄俊鎭�
+ List<EventInfo> listByParam = eventInfoService.getListByParam(param);
+ if (null == listByParam || listByParam.isEmpty()) {
+ return new PageResponse<>(RespCodeEnum.CODE_0000, new ArrayList<>());
+ }
+ //绛涢�塼ime澶т簬Start鏃堕棿鐨勬暟鎹�
+ listByParam = listByParam.stream().filter(info -> info.getTime().after(start)).collect(Collectors.toList());
+
+ //鑾峰彇鎵�鏈夌殑搴撳尯淇℃伅
+ List<Dept> deptList = deptService.getDeptByUserType(null);
+ //鏍规嵁搴撳尯浠巐istByParam鏉ヨ幏鍙栨瘡涓�涓簱鍖轰笅锛屾渶鏂扮殑涓�寮犳姄鎷嶅浘鐗�
+ List<EventInfo> resultList = new ArrayList<>();
+
+ for (Dept dept : deptList) {
+ EventInfo latestEvent = null;
+ //浠巐istByParam涓瓫閫夊嚭涓庡綋鍓峣d鍖归厤鐨勬暟鎹�
+ List<EventInfo> collect = listByParam.stream().filter(info -> info.getDeptId().equals(dept.getId())).collect(Collectors.toList());
+ if (!collect.isEmpty()) {
+ //鏍规嵁鏃堕棿鎺掑簭骞舵壘鍒版渶鏂颁竴鏉℃暟鎹�
+ latestEvent = collect.stream().sorted(Comparator.comparing(EventInfo::getTime).reversed()).findFirst().get();
+ }
+ if (latestEvent != null) {
+ resultList.add(latestEvent);
+ }
+ }
+ if (null != resultList && !resultList.isEmpty()) {
+ //鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+ for (EventInfo record : resultList) {
+ record.setImgName(commonManager.isImgExit(record.getImgName(), null));
+ }
+ }
+
+ return new PageResponse<>(RespCodeEnum.CODE_0000, resultList);
+ }
}
--
Gitblit v1.9.3