From 45533a6272083948c6a19e453ca7fa5ed05b8c94 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期三, 14 五月 2025 10:18:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysDictDataServiceImpl.java | 123 +++++++++++++++++++++++++++++++---------
1 files changed, 95 insertions(+), 28 deletions(-)
diff --git a/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysDictDataServiceImpl.java b/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysDictDataServiceImpl.java
index e551413..dd3045a 100644
--- a/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysDictDataServiceImpl.java
+++ b/aps-modules/aps-system/src/main/java/com/aps/system/service/impl/SysDictDataServiceImpl.java
@@ -1,71 +1,74 @@
package com.aps.system.service.impl;
import java.util.List;
+import java.util.Objects;
+
+import com.aps.common.security.utils.SecurityUtils;
+import com.aps.system.api.domain.SysDictType;
+import com.aps.system.mapper.SysDictTypeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.common.security.utils.DictUtils;
import com.aps.system.api.domain.SysDictData;
import com.aps.system.mapper.SysDictDataMapper;
import com.aps.system.service.ISysDictDataService;
+import org.springframework.transaction.annotation.Transactional;
/**
* 瀛楀吀 涓氬姟灞傚鐞�
- *
+ *
* @author ruoyi
*/
@Service
-public class SysDictDataServiceImpl implements ISysDictDataService
-{
+public class SysDictDataServiceImpl implements ISysDictDataService {
@Autowired
private SysDictDataMapper dictDataMapper;
+ @Autowired
+ private SysDictTypeMapper dictTypeMapper;
+
/**
* 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁
- *
+ *
* @param dictData 瀛楀吀鏁版嵁淇℃伅
* @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
*/
@Override
- public List<SysDictData> selectDictDataList(SysDictData dictData)
- {
+ public List<SysDictData> selectDictDataList(SysDictData dictData) {
return dictDataMapper.selectDictDataList(dictData);
}
/**
* 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭�
- *
- * @param dictType 瀛楀吀绫诲瀷
+ *
+ * @param dictType 瀛楀吀绫诲瀷
* @param dictValue 瀛楀吀閿��
* @return 瀛楀吀鏍囩
*/
@Override
- public String selectDictLabel(String dictType, String dictValue)
- {
+ public String selectDictLabel(String dictType, String dictValue) {
return dictDataMapper.selectDictLabel(dictType, dictValue);
}
/**
* 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅
- *
+ *
* @param dictCode 瀛楀吀鏁版嵁ID
* @return 瀛楀吀鏁版嵁
*/
@Override
- public SysDictData selectDictDataById(Long dictCode)
- {
+ public SysDictData selectDictDataById(Long dictCode) {
return dictDataMapper.selectDictDataById(dictCode);
}
/**
* 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID
*/
@Override
- public void deleteDictDataByIds(Long[] dictCodes)
- {
- for (Long dictCode : dictCodes)
- {
+ public void deleteDictDataByIds(Long[] dictCodes) {
+ for (Long dictCode : dictCodes) {
SysDictData data = selectDictDataById(dictCode);
dictDataMapper.deleteDictDataById(dictCode);
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
@@ -74,17 +77,83 @@
}
/**
+ * 鎺掍骇涓撲笟
+ */
+ private final static String DICT_TYPE_APS_DOMAIN = "aps_domain";
+
+ /**
+ * 鎺掍骇宸ュ巶
+ */
+ private final static String DICT_TYPE_APS_FACTORY = "aps_factory";
+
+ /**
+ * 鎺掍骇鍖哄煙
+ */
+ private final static String DICT_TYPE_APS_AREA = "aps_area";
+
+ private void checkDictArea() {
+ SysDictType type = dictTypeMapper.selectDictTypeByType(DICT_TYPE_APS_AREA);
+ if (type == null) {
+ type = new SysDictType();
+ type.setDictType(DICT_TYPE_APS_AREA);
+ type.setDictName("鎺掍骇鍖哄煙");
+ type.setStatus("0");
+ type.setCreateBy(SecurityUtils.getUsername());
+ int row = dictTypeMapper.insertDictType(type);
+ if (row > 0) {
+ DictUtils.setDictCache(type.getDictType(), null);
+ }
+ }
+ }
+
+ /**
+ * 绗涘崱灏旂Н: 鏍规嵁宸ュ巶鍜屼笓涓氬瓧鍏哥敓鎴愬尯鍩熷瓧鍏告暟鎹�
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void updateApsAreaDictData() {
+ checkDictArea();
+ List<SysDictData> facs = dictDataMapper.selectDictDataByType(DICT_TYPE_APS_FACTORY);
+ List<SysDictData> domains = dictDataMapper.selectDictDataByType(DICT_TYPE_APS_DOMAIN);
+ List<SysDictData> areas = dictDataMapper.selectDictDataByType(DICT_TYPE_APS_AREA);
+ facs.forEach(fac -> {
+ domains.forEach(domain -> {
+ String dictValue = domain.getDictValue() + "-" + fac.getDictValue();
+ SysDictData area = areas.stream().filter(a -> Objects.equals(a.getDictValue(), dictValue)).findFirst().orElse(null);
+ if (area == null) {
+ area = new SysDictData();
+ area.setDictValue(dictValue);
+ area.setDictType(DICT_TYPE_APS_AREA);
+ area.setCreateBy(SecurityUtils.getUsername());
+ if (fac.getDictSort() != null && domain.getDictSort() != null) {
+ area.setDictSort(domain.getDictSort() * 1000 + fac.getDictSort());
+ }
+ area.setDictLabel(domain.getDictLabel() + "-" + fac.getDictLabel());
+ area.setStatus("0");
+ area.setCssClass(domain.getCssClass());
+ insertDictData(area);
+ } else {
+ area.setUpdateBy(SecurityUtils.getUsername());
+ area.setDictLabel(domain.getDictLabel() + "-" + fac.getDictLabel());
+ if (fac.getDictSort() != null && domain.getDictSort() != null) {
+ area.setDictSort(domain.getDictSort() * 1000 + fac.getDictSort());
+ }
+ updateDictData(area);
+ }
+ });
+ });
+ }
+
+ /**
* 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param data 瀛楀吀鏁版嵁淇℃伅
* @return 缁撴灉
*/
@Override
- public int insertDictData(SysDictData data)
- {
+ public int insertDictData(SysDictData data) {
int row = dictDataMapper.insertDictData(data);
- if (row > 0)
- {
+ if (row > 0) {
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
@@ -93,16 +162,14 @@
/**
* 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param data 瀛楀吀鏁版嵁淇℃伅
* @return 缁撴灉
*/
@Override
- public int updateDictData(SysDictData data)
- {
+ public int updateDictData(SysDictData data) {
int row = dictDataMapper.updateDictData(data);
- if (row > 0)
- {
+ if (row > 0) {
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
--
Gitblit v1.9.3