From 2f432f52c1cfb1567dadcf6e040c5d38b0a26a79 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 28 十一月 2025 17:31:49 +0800
Subject: [PATCH] 数量检测配置页面

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java |  233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 233 insertions(+), 0 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java
new file mode 100644
index 0000000..164d4ac
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutConfService.java
@@ -0,0 +1,233 @@
+package com.fzzy.igds.service;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.repository.InoutConfRepository;
+import com.fzzy.igds.repository.InoutSysConfRepository;
+import com.fzzy.igds.domain.InoutConf;
+import com.fzzy.igds.domain.InoutSysConf;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description 鍑哄叆搴撻厤缃畇ervice灞傦紝鍖呭惈娴佺▼閰嶇疆鍜岃澶囬厤缃�
+ * @Author CZT
+ * @Date 2025/11/28 09:23
+ */
+@Slf4j
+@Service
+public class InoutConfService {
+    @Resource
+    private ISysDeptService iSysDeptService;
+    @Resource
+    private InoutSysConfRepository inoutSysConfRepository;
+    @Resource
+    private InoutConfRepository inoutConfRepository;
+    @Resource
+    private RedisCache redisCache;
+
+    /*--------------- 鍑哄叆搴撴祦绋� ---------------*/
+    /**
+     * JPA-鏌ヨ娴佺▼閰嶇疆
+     *
+     * @return
+     */
+    public List<InoutSysConf> getSysConfData() {
+
+        SysUser user = ContextUtil.getLoginUser();
+        SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
+        if (Constant.DEPT_TYPE_20.equals(userDept.getType())) {
+            return inoutSysConfRepository.getDataById(ContextUtil.subDeptId(user));
+        }else {
+            return inoutSysConfRepository.getDataByParentId(user.getDeptId() + "%");
+        }
+    }
+
+    /**
+     *
+     *
+     * @param companyId
+     * @param deptId
+     */
+    public void initSysConfData(String companyId, String deptId) {
+        InoutSysConf inoutSysConf = new InoutSysConf();
+        inoutSysConf.setDeptId(deptId);
+        inoutSysConf.setCompanyId(companyId);
+        inoutSysConf.setProgressIn("REGISTER-WEIGHT_FULL-HANDLE-WEIGHT_EMPTY-RECORD");
+        inoutSysConf.setProgressOut("REGISTER-WEIGHT_EMPTY-HANDLE-WEIGHT_FULL-RECORD");
+        this.saveSysConfData(inoutSysConf);
+
+        this.flushInoutSysConfCache(inoutSysConf);
+    }
+
+    /**
+     *
+     * @param deptId
+     */
+    public void delSysConfData(String deptId) {
+        inoutSysConfRepository.deleteById(deptId);
+    }
+
+    /**
+     * JPA-淇濆瓨娴佺▼閰嶇疆
+     *
+     * @param data
+     * @return
+     */
+    public void saveSysConfData(InoutSysConf data) {
+        if (StringUtils.isEmpty(data.getCompanyId())) {
+            data.setCompanyId(ContextUtil.getCompanyId());
+        }
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        inoutSysConfRepository.save(data);
+        this.flushInoutSysConfCache(data);
+    }
+
+    /**
+     * 璁剧疆缂撳瓨
+     *
+     * @param data
+     */
+    public void flushInoutSysConfCache(InoutSysConf data) {
+        String key = RedisConst.buildKey(data.getDeptId(), Constant.CACHE_INOUT_SYS_CONF);
+        redisCache.setCacheObject(key, data);
+    }
+
+    /**
+     * 鑾峰彇缂撳瓨淇℃伅
+     *
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public InoutSysConf getCacheInoutSysConf(String companyId, String deptId) {
+        String key = RedisConst.buildKey(deptId, Constant.CACHE_INOUT_SYS_CONF);
+        return (InoutSysConf) redisCache.getCacheObject(key);
+    }
+
+    /*--------------- 鍑哄叆搴撹澶� ---------------*/
+    /**
+     * JPA-鏌ヨ璁惧閰嶇疆
+     *
+     * @return
+     */
+    public List<InoutConf> getInoutConfList(String companyId, String deptId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        if (StringUtils.isEmpty(deptId)) {
+            deptId = ContextUtil.subDeptId(null);
+        }
+        return inoutConfRepository.getInoutConfList(companyId, deptId);
+    }
+
+    /**
+     * JPA-淇濆瓨璁惧閰嶇疆
+     * @param data
+     * @return
+     */
+    public String saveData(InoutConf data) {
+        if (0 == data.getInOrder()) {
+            data.setInOrder(1);
+        }
+        if (StringUtils.isEmpty(data.getSort())) {
+            data.setSort("1");
+        }
+        if (StringUtils.isEmpty(data.getId())) {
+            data.setId(ContextUtil.generateId());
+            data.setCreateBy(ContextUtil.getLoginUserName());
+            data.setCreateTime(new Date());
+        }
+        if (StringUtils.isEmpty(data.getCompanyId())) {
+            data.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(data.getDeptId())) {
+            data.setDeptId(ContextUtil.subDeptId(null));
+        }
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        inoutConfRepository.save(data);
+        return null;
+    }
+
+    /**
+     * JPA-鍒犻櫎璁惧閰嶇疆
+     * @param data
+     * @return
+     */
+    public String delData(InoutConf data) {
+        inoutConfRepository.delete(data);
+        return null;
+    }
+
+    /**
+     * 璁剧疆缂撳瓨
+     * @param companyId
+     * @param deptId
+     */
+    public void flushInoutConfCache(String companyId, String deptId) {
+        List<InoutConf> list = this.getInoutConfList(companyId, deptId);
+        String key = RedisConst.buildKey(companyId, Constant.CACHE_INOUT_CONF_LIST, deptId);
+        redisCache.setCacheObject(key, list);
+    }
+
+    /**
+     * 鑾峰彇缂撳瓨
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public List<InoutConf> getCacheInoutConf(String companyId, String deptId) {
+        String key = RedisConst.buildKey(companyId, Constant.CACHE_INOUT_CONF_LIST, deptId);
+        List<InoutConf> list = redisCache.getCacheObject(key);
+        if(null == list){
+            list = this.getInoutConfList(companyId, deptId);
+            redisCache.setCacheObject(key, list);
+        }
+        return list;
+    }
+
+    /**
+     * 鑾峰彇缂撳瓨
+     * @param companyId
+     * @param deptId
+     * @param confId
+     * @return
+     */
+    public InoutConf getCacheInoutConf(String companyId, String deptId, String confId) {
+        if (null == companyId || null == deptId || null == confId) {
+            return null;
+        }
+
+        List<InoutConf> list = getCacheInoutConf(companyId, deptId);
+        if (null == list  || list.isEmpty()) {
+            return null;
+        }
+        for (InoutConf inoutConf : list) {
+            if (inoutConf.getId().equals(confId)) {
+                return inoutConf;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 鏇存柊鍑哄叆搴撹澶囩姸鎬�
+     * @param ip
+     * @param port
+     * @param status
+     */
+    public void updateInoutConfStatus(String ip, Integer port, String status) {
+        inoutConfRepository.updateInoutConfStatus(status, ip, port);
+    }
+}

--
Gitblit v1.9.3