package com.fzzy.igds.service; import com.fzzy.igds.constant.*; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.utils.DictUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.mapper.SysDictDataMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @Description 字典service层 * @Author CZT * @Date 2025/11/25 15:15 */ @Service public class DicService { @Autowired private SysDictDataMapper dictDataMapper; /** * 初始化常用品种、性质、出入库流程到内存 * * @param companyId */ public void initDicMap(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } //初始化粮食品种字典 List dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_FOOD_VARIETY, companyId); if (null != dicList) { for (SysDictData sysDictData : dicList) { FoodVariety.mapFoodVariety.put(sysDictData.getDictValue(), sysDictData.getDictLabel()); } } //初始化粮食性质字典 dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_FOOD_TYPE, companyId); if (null != dicList) { for (SysDictData sysDictData : dicList) { FoodType.mapFoodType.put(sysDictData.getDictValue(), sysDictData.getDictLabel()); } } //初始化出入库流程字典 dicList = DictUtils.getDictCache(Constant.TRIGGER_PARENT_PROCESS_STATUS, companyId); if (null != dicList) { for (SysDictData sysDictData : dicList) { InoutProgress.mapProgressName.put(sysDictData.getDictValue(), sysDictData.getDictLabel()); } } } /** * 根据type和组织编码获取字典,先从缓存获取,缓存没有则查询数据库 * * @param dictType * @param companyId * @return */ public List getDictDataByType(String dictType, String companyId) { if (StringUtils.isEmpty(dictType)) { return null; } if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } List list = DictUtils.getDictCache(dictType, companyId); if (null == list || list.isEmpty()) { list = dictDataMapper.selectDictDataByType(dictType, companyId); DictUtils.setDictCache(dictType, list, companyId); } return list; } /** * 仓房类型-非国标定义 * * @return */ public List triggerDepotType() { List list = new ArrayList(); for (DepotType w : DepotType.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 仓房状态 * * @return */ public List triggerDepotStatus() { List list = new ArrayList(); for (DepotStatus w : DepotStatus.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 粮食等级 * * @return */ public List triggerFoodLevel() { List list = new ArrayList(); for (FoodLevel w : FoodLevel.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 储粮方式 * * @return */ public List triggerStoreType() { List list = new ArrayList(); list.add(new SysDictData("散装储粮", "1")); list.add(new SysDictData("包装储粮", "2")); list.add(new SysDictData("围包存", "3")); list.add(new SysDictData("其他", "9")); return list; } /** * 管理方式 * * @return */ public List triggerManagerType() { List list = new ArrayList(); list.add(new SysDictData("直储", "01")); list.add(new SysDictData("代储", "02")); list.add(new SysDictData("租仓", "03")); list.add(new SysDictData("委托", "04")); return list; } /** * 是否 * * @return */ public List triggerYN() { List list = new ArrayList(); list.add(new SysDictData("是", Constant.YN_Y)); list.add(new SysDictData("否", Constant.YN_N)); return list; } /** * 通讯状态 * * @return * @throws Exception */ public List conStatus() { List list = new ArrayList<>(); list.add(new SysDictData("正常", Constant.YN_Y)); list.add(new SysDictData("断开", Constant.YN_N)); return list; } /** * 播放方式 * * @return */ public List triggerPlayType() { List list = new ArrayList(); for (PlayType w : PlayType.values()) { list.add(new SysDictData(w.getName(), w.getCode())); } return list; } /** * 抓拍方式 * * @return */ public List triggerSnapType() { List list = new ArrayList(); for (SnapType w : SnapType.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 检验类别 * * @return */ public List triggerCheckType() { List list = new ArrayList(); for (CheckType w : CheckType.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 指标类别 * * @return */ public List triggerStandard() { List list = new ArrayList(); list.add(new SysDictData("国标", "1")); list.add(new SysDictData("其他", "0")); return list; } /** * 检验依据 * * @return */ public List triggerMetrics() { List list = new ArrayList(); list.add(new SysDictData("质量指标检验", "1")); list.add(new SysDictData("储存品质检验", "2")); list.add(new SysDictData("食品安全检验", "3")); return list; } /** * 审核状态 * * @return */ public List triggerStatusType() { List list = new ArrayList(); for (AuditStatus w : AuditStatus.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 警告类型 * * @return */ public List triggerWarnType() { List list = new ArrayList(); for (WarnType w : WarnType.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 警告等级 * * @return */ public List triggerWarnLevel() { List list = new ArrayList(); for (WarnLevel w : WarnLevel.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 警告状态 * * @return */ public List triggerWarnStatus() { List list = new ArrayList(); for (WarnStatus w : WarnStatus.values()) { list.add(new SysDictData(w.getName(), w.getCode())); } return list; } /** * 警告通知方式 * * @return */ public List triggerNoticeType() { List list = new ArrayList(); for (NoticeType w : NoticeType.values()) { list.add(new SysDictData(w.getName(), w.getCode())); } return list; } }