ezhizao_zx 3 tygodni temu
rodzic
commit
e5d54ac1c3

+ 7 - 0
src/main/java/cn/ezhizao/project/business/controller/BizInboundOrderController.java

@@ -73,6 +73,8 @@ public class BizInboundOrderController extends BaseController {
     @Resource
     private IBizDayworkItemService  bizDayworkItemService;
     @Resource
+    private IBizTakeStockPeriodService bizTakeStockPeriodService;
+    @Resource
     private RedisCache redisCache;
     /**
      * 生成pdf
@@ -150,6 +152,11 @@ public class BizInboundOrderController extends BaseController {
     @PostMapping
     @Transactional
     public AjaxResult add(@RequestBody BizInboundOrder bizInboundOrder) throws NoSuchFieldException, IllegalAccessException {
+        // 判断盘点状态下不能新增入库
+        Long count = bizTakeStockPeriodService.query().eq("status", 1).count();
+        if (count > 0) {
+            return error("盘点状态下不能新增入库");
+        }
         setTenantId(bizInboundOrder);
         // 判断当前托盘是否与当前部门绑定
         BizTransferCode transferCode = bizTransferCodeService.query().eq("code", bizInboundOrder.getTransferCode()).eq("dept_id", bizInboundOrder.getDeptId()).one();

+ 234 - 0
src/main/java/cn/ezhizao/project/system/service/impl/SysConfigServiceImpl.java

@@ -0,0 +1,234 @@
+package cn.ezhizao.project.system.service.impl;
+
+import cn.ezhizao.common.constant.CacheConstants;
+import cn.ezhizao.common.constant.UserConstants;
+import cn.ezhizao.common.core.text.Convert;
+import cn.ezhizao.common.exception.ServiceException;
+import cn.ezhizao.common.utils.StringUtils;
+import cn.ezhizao.framework.redis.RedisCache;
+import cn.ezhizao.project.system.domain.SysConfig;
+import cn.ezhizao.project.system.mapper.SysConfigMapper;
+import cn.ezhizao.project.system.service.ISysConfigService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 参数配置 服务层实现
+ *
+ * @author ruoyi
+ */
+@Service
+public class SysConfigServiceImpl implements ISysConfigService
+{
+    @Resource
+    private SysConfigMapper configMapper;
+
+    @Resource
+    private RedisCache redisCache;
+
+    /**
+     * 项目启动时,初始化参数到缓存
+     */
+    @PostConstruct
+    public void init()
+    {
+        loadingConfigCache();
+    }
+
+    /**
+     * 查询参数配置信息
+     *
+     * @param configId 参数配置ID
+     * @return 参数配置信息
+     */
+    @Override
+    public SysConfig selectConfigById(Long configId)
+    {
+        SysConfig config = new SysConfig();
+        config.setConfigId(configId);
+        return configMapper.selectConfig(config);
+    }
+
+    /**
+     * 根据键名查询参数配置信息
+     *
+     * @param configKey 参数key
+     * @return 参数键值
+     */
+    @Override
+    public String selectConfigByKey(String configKey)
+    {
+        String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey)));
+        if (StringUtils.isNotEmpty(configValue))
+        {
+            return configValue;
+        }
+        SysConfig config = new SysConfig();
+        config.setConfigKey(configKey);
+        SysConfig retConfig = configMapper.selectConfig(config);
+        if (StringUtils.isNotNull(retConfig))
+        {
+            redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
+            return retConfig.getConfigValue();
+        }
+        return StringUtils.EMPTY;
+    }
+
+    /**
+     * 获取验证码开关
+     *
+     * @return true开启,false关闭
+     */
+    @Override
+    public boolean selectCaptchaEnabled()
+    {
+        String captchaEnabled = selectConfigByKey("sys.account.captchaEnabled");
+        if (StringUtils.isEmpty(captchaEnabled))
+        {
+            return false;
+        }
+        return Convert.toBool(captchaEnabled);
+    }
+
+    /**
+     * 查询参数配置列表
+     *
+     * @param config 参数配置信息
+     * @return 参数配置集合
+     */
+    @Override
+    public List<SysConfig> selectConfigList(SysConfig config)
+    {
+        return configMapper.selectConfigList(config);
+    }
+
+    /**
+     * 根据ids查询参数配置列表
+     * @param ids
+     * @return
+     */
+    public List<SysConfig> selectConfigListByIds(List<Long> ids)
+    {
+        return configMapper.selectConfigListByIds(ids);
+    }
+
+    /**
+     * 新增参数配置
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @Override
+    public int insertConfig(SysConfig config)
+    {
+        int row = configMapper.insertConfig(config);
+        if (row > 0)
+        {
+            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
+        }
+        return row;
+    }
+
+    /**
+     * 修改参数配置
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @Override
+    public int updateConfig(SysConfig config)
+    {
+        int row = configMapper.updateConfig(config);
+        if (row > 0)
+        {
+            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
+        }
+        return row;
+    }
+
+    /**
+     * 批量删除参数信息
+     *
+     * @param configIds 需要删除的参数ID
+     */
+    @Override
+    public void deleteConfigByIds(Long[] configIds)
+    {
+        for (Long configId : configIds)
+        {
+            SysConfig config = selectConfigById(configId);
+            if (StringUtils.equals(UserConstants.YES, config.getConfigType()))
+            {
+                throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey()));
+            }
+            configMapper.deleteConfigById(configId);
+            redisCache.deleteObject(getCacheKey(config.getConfigKey()));
+        }
+    }
+
+    /**
+     * 加载参数缓存数据
+     */
+    @Override
+    public void loadingConfigCache()
+    {
+        List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig());
+        for (SysConfig config : configsList)
+        {
+            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
+        }
+    }
+
+    /**
+     * 清空参数缓存数据
+     */
+    @Override
+    public void clearConfigCache()
+    {
+        Collection<String> keys = redisCache.keys(CacheConstants.SYS_CONFIG_KEY + "*");
+        redisCache.deleteObject(keys);
+    }
+
+    /**
+     * 重置参数缓存数据
+     */
+    @Override
+    public void resetConfigCache()
+    {
+        clearConfigCache();
+        loadingConfigCache();
+    }
+
+    /**
+     * 校验参数键名是否唯一
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @Override
+    public String checkConfigKeyUnique(SysConfig config)
+    {
+        Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId();
+        SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey());
+        if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue())
+        {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
+    /**
+     * 设置cache key
+     *
+     * @param configKey 参数键
+     * @return 缓存键key
+     */
+    private String getCacheKey(String configKey)
+    {
+        return CacheConstants.SYS_CONFIG_KEY + configKey;
+    }
+}