From bc263d8bed5d1405f275bb8638a9bec9eaf06585 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 31 三月 2025 09:42:00 +0800
Subject: [PATCH] 添加审签逻辑,移动flow通用代码,添加根据角色查询用户,新增时间工具类,修改指派设备bug

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
index f94adf6..bc363c2 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
@@ -9,8 +9,11 @@
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.FillRuleConstant;
+import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.FillRuleUtil;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.system.entity.*;
@@ -21,8 +24,10 @@
 import org.jeecg.modules.system.model.MdcProductionTreeModel;
 import org.jeecg.modules.system.model.ProductionIdModel;
 import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.system.service.ISysParamsService;
 import org.jeecg.modules.system.util.FindsProductionsChildrenUtil;
+import org.jeecg.modules.system.vo.MdcProOptionsVo;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +56,9 @@
 
     @Resource
     private ISysParamsService sysParamsService;
+
+    @Resource
+    private ISysDictService sysDictService;
     /**
      * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑浜х嚎鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔�
      */
@@ -73,12 +81,25 @@
     @Override
     public List<MdcProductionTreeModel> queryTreeListByConfig(){
         SysParams sysParams = sysParamsService.getSysPramBySettingKey("dnc_production");
+        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>();
         if (sysParams == null) {
             return null;
         }else {
+            List<String> productionIds = new ArrayList<>();
+            if (!("admin").equals(loginUser.getUsername())) {
+                //涓嶆槸瓒呯骇绠$悊鍛橈紝鑾峰彇鐢ㄦ埛鎷ユ湁鐨勪骇绾�
+                if (loginUser.getProductionIds() != null) {
+                    if (loginUser.getProductionIds().contains(",")) {
+                        productionIds = Arrays.asList(loginUser.getProductionIds().split(","));
+                    } else {
+                        productionIds = Collections.singletonList(loginUser.getProductionIds());
+                    }
+                }
+            }
             if (("0").equals(sysParams.getSettingValue())){
                 query.eq(MdcProduction::getOrgType,"2");
+                query.in(!productionIds.isEmpty(), MdcProduction::getId, productionIds);
                 query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
                 query.orderByAsc(MdcProduction::getProductionOrder);
                 List<MdcProduction> list = this.list(query);
@@ -521,6 +542,54 @@
         return FindsProductionsChildrenUtil.wrapTreeDataToTreeList(list);
     }
 
+    @Override
+    public List<String> findChildren(List<String> mdcProductionIds) {
+        return this.baseMapper.findChildren(mdcProductionIds);
+    }
+
+    /**
+     * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎(涓績)鎴栫彮缁勪笅鎷夐�夐」
+     * @param userId
+     * @param productionId
+     * @return
+     */
+    @Override
+    public List<MdcProOptionsVo> loadProductionOptions(String userId, String productionId) {
+        List<MdcProOptionsVo> result = new ArrayList<>();
+        List<MdcProduction> mdcProductionList = this.baseMapper.loadProductionOptions(userId, productionId);
+        if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
+            for (MdcProduction mdcProduction : mdcProductionList) {
+                MdcProOptionsVo vo = new MdcProOptionsVo().convert(mdcProduction);
+                result.add(vo);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public List<MdcProOptionsVo> loadTeamOptions(String userId, String productionId) {
+        List<MdcProOptionsVo> result = new ArrayList<>();
+        List<String> productionList = this.findChildren(Arrays.asList(productionId.split(",")));
+        if (productionList != null && !productionList.isEmpty()) {
+            List<String> dictValues = this.baseMapper.findTeamValue(userId, productionList);
+            if (dictValues != null && !dictValues.isEmpty()) {
+                List<DictModel> dictModels = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_MDC_STAFF_TEAM);
+                if (dictModels != null && !dictModels.isEmpty()) {
+                    for (DictModel dictModel : dictModels) {
+                        if (dictValues.contains(dictModel.getValue())) {
+                            MdcProOptionsVo vo = new MdcProOptionsVo();
+                            vo.setKey(dictModel.getValue());
+                            vo.setValue(dictModel.getValue());
+                            vo.setTitle(dictModel.getText());
+                            result.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+        return result;
+    }
+
     /**
      * 鎵撳紑 鐖惰妭鐐� 鍙� 浠ヤ笂鐨刴dc鏍囪
      * @param parentId

--
Gitblit v1.9.3