From 6e9e02396e4c660a209e326fa015be6b71a568e1 Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 12 五月 2025 19:07:09 +0800
Subject: [PATCH] 增加更新排产区域数据接口

---
 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