package com.fzzy.api.service; import com.bstek.dorado.annotation.Expose; import com.fzzy.api.Constant; import com.fzzy.api.entity.*; import com.fzzy.api.utils.RedisConst; import com.fzzy.api.utils.RedisUtil; import com.fzzy.api.view.repository.*; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Set; /** * 基础数据接口 */ @Component public class ApiCommonService { @Autowired private RedisUtil redisUtil; @Autowired private ApiConfsRep apiConfsRep; @Autowired private GbAreaRep gbAreaRep; @Autowired private Api1101Rep api1101Rep; @Autowired private Api1102Rep api1102Rep; @Autowired private Api1103Rep api1103Rep; @Autowired private Api1104Rep api1104Rep; @Autowired private Api1105Rep api1105Rep; @Autowired private Api1106Rep api1106ep; /** * 刷新缓存- 接口配置参数 * apiCommonService#flushConfCache */ @Expose public List flushConfCache() { List list = apiConfsRep.findAll(); if (null == list || list.isEmpty()) return null; String key; for (ApiConfs conf : list) { key = RedisConst.buildKey(RedisConst.KYE_CONF, conf.getKqdm()); redisUtil.set(key, conf); } return list; } /** * 根据库区代码获取接口配置信息 * * @return */ public List listCacheConf() { String pattern = RedisConst.buildKey(RedisConst.KYE_CONF); Set keys = redisUtil.keys(pattern); if (null == keys || keys.isEmpty()) { return flushConfCache(); } List result = new ArrayList<>(); for (String key : keys) { result.add((ApiConfs) redisUtil.get(key)); } return result; } public ApiConfs getConf(String kqdm) { String key = RedisConst.buildKey(RedisConst.KYE_CONF, kqdm); ApiConfs result = (ApiConfs) redisUtil.get(key); if (null == result) { List list = flushConfCache(); if (null == list || list.isEmpty()) return null; for (ApiConfs conf : list) { if (kqdm.equals(conf.getKqdm())) return conf; } } return result; } public void updateCacheConf(ApiConfs conf) { String key = RedisConst.buildKey(RedisConst.KYE_CONF, conf.getKqdm()); redisUtil.set(key, conf); } /** * 刷新货位信息缓存 */ public void flushApi1105Cache(List list) { if (null == list || list.isEmpty()) { return; } String key; for (Api1105 api1105 : list) { if (null == api1105.getBizId()) { continue; } key = RedisConst.buildKey(Constant.API_CODE_1105, api1105.getHwdm()); redisUtil.set(key, api1105); } } /** * 刷新货位信息缓存 */ public void flushApi1105Cache() { List list = api1105Rep.findAll(); if(list!= null && list.size() > 0){ String key; for (Api1105 api1105 : list) { if (null == api1105.getBizId()) { continue; } key = RedisConst.buildKey(Constant.API_CODE_1105, api1105.getBizId()); redisUtil.set(key, api1105); } } } /** * 获取货位缓存 * * @param bizId * @return */ public Api1105 getApi1105Cache(String bizId) { if (null == bizId) { return null; } return (Api1105) redisUtil.get(RedisConst.buildKey(Constant.API_CODE_1105, bizId)); } public void flushApi1103Cache(List list) { if (null == list || list.isEmpty()) { return; } String key; for (Api1103 apiData : list) { if (null == apiData.getCfdm()) { continue; } key = RedisConst.buildKey(Constant.API_CODE_1103, apiData.getCfdm()); redisUtil.set(key, apiData); } } public Api1103 getApi1103Cache(String id) { if (null == id) { return null; } return (Api1103) redisUtil.get(RedisConst.buildKey(Constant.API_CODE_1103, id)); } public void flushApi1104Cache(List list) { if (null == list || list.isEmpty()) { return; } String key; for (Api1104 apiData : list) { if (null == apiData.getAjdh()) { continue; } key = RedisConst.buildKey(Constant.API_CODE_1104, apiData.getAjdh()); redisUtil.set(key, apiData); } } public Api1104 getApi1104Cache(String id) { if (null == id) { return null; } return (Api1104) redisUtil.get(RedisConst.buildKey(Constant.API_CODE_1104, id)); } public void flushApi1102Cache(List list) { if (null == list || list.isEmpty()) { return; } String key; for (Api1102 apiData : list) { if (null == apiData.getKqdm()) { continue; } key = RedisConst.buildKey(Constant.API_CODE_1102, apiData.getKqdm()); redisUtil.set(key, apiData); } } public Api1102 getApi1102Cache(String id) { if (null == id) { return null; } return (Api1102) redisUtil.get(RedisConst.buildKey(Constant.API_CODE_1102, id)); } /** * 根据粮食产地获取编码 * * @param foodLocationName * @return */ @SuppressWarnings("unchecked") public String getFoodLocationIdFromCache(String foodLocationName) { String key = RedisConst.buildKey("GB_AREA"); List list = (List) redisUtil.get(key); if (null == list) { list = gbAreaRep.findAll(); redisUtil.set(key, list); } for (GbArea area : list) { if(StringUtils.isEmpty(foodLocationName)){ return null; } if (area.getName().indexOf(foodLocationName) != -1) return area.getCode(); } return null; } /** * 根据单位代码获取统一单位编码 * @param dwdm * @return */ public String getTydwbm(String dwdm) { if(StringUtils.isEmpty(dwdm)){ return dwdm; } Api1101 api1101= api1101Rep.findData(dwdm); if(null == api1101){ return dwdm; } return api1101.getTydwbm(); } /** * 根据库区代码获取统一库区编码 * @param kqdm * @return */ public String getTykqbm(String kqdm) { if(StringUtils.isEmpty(kqdm)){ return kqdm; } Api1102 api1102= api1102Rep.findDataByKqdm(kqdm); if(null == api1102){ return kqdm; } return api1102.getTykqbm(); } /** * 根据仓房代码获取统一仓房编码 * @param cfdm * @return */ public String getTycfbm(String cfdm) { if(StringUtils.isEmpty(cfdm)){ return cfdm; } Api1103 api1103= api1103Rep.findDataByCfdm(cfdm); if(null == api1103){ return cfdm; } return api1103.getTycfbm(); } /** * 根据廒间代码获取统一廒间编码 * @param ajdm * @return */ public String getTyajbm(String ajdm) { if(StringUtils.isEmpty(ajdm)){ return ajdm; } Api1104 api1104 = api1104Rep.findByAjdh(ajdm); if(null == api1104){ return ajdm; } return api1104.getTyajbm(); } /** * 根据货位代码获取统一货位编码 * @param hwdm * @return */ public String getTyhwbm(String hwdm) { if(StringUtils.isEmpty(hwdm)){ return hwdm; } Api1105 api1105= api1105Rep.findDataByHwdm(hwdm); if(null == api1105){ return hwdm; } return api1105.getTyhwbm(); } /** * 根据油罐代码获取统一油罐编码 * @param ygdm * @return */ public String getTyygbm(String ygdm) { if(StringUtils.isEmpty(ygdm)){ return ygdm; } Api1106 api1106= api1106ep.findDataByYgdm(ygdm); if(null == api1106){ return ygdm; } return api1106.getTyygbm(); } }