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