zhangherong
2025-03-21 8fad403599523f7b800a845f62a095227316d1e7
art: 系统管理-产线表 增加mdc_flag标识,并可进行维护
已修改4个文件
91 ■■■■■ 文件已修改
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/MdcProduction.java
@@ -95,4 +95,10 @@
    /**部门负责人的ids*/
    @TableField(exist = false)
    private String directorUserIds;
    /**
     * 是否为MDC使用
     */
    @ApiModelProperty(value = "是否为MDC使用")
    private String mdcFlag;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/model/MdcProductionTreeModel.java
@@ -80,6 +80,8 @@
    private Date updateTime;
    private String mdcFlag;
    /**
     * 产线负责人ids
     */
@@ -118,5 +120,6 @@
        this.updateBy = mdcProduction.getUpdateBy();
        this.updateTime = mdcProduction.getUpdateTime();
        this.directorUserIds = mdcProduction.getDirectorUserIds();
        this.mdcFlag = mdcProduction.getMdcFlag();
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
@@ -123,4 +123,12 @@
     * @return
     */
    List<String> findAllProductionIds(List<String> ids);
    /**
     * 获取某个节点所有上级节点的id
     * @param parentId 父节点 id
     * @param idList 接收结果集
     * @return
     */
    List<String> findParentIdsForProduction(String parentId, List<String> idList);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
@@ -1,9 +1,11 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
@@ -180,6 +182,13 @@
            mdcProduction.setOrgType(String.valueOf(orgType));
            mdcProduction.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
            this.save(mdcProduction);
            //处理存在父子关系 mdc标记统一的问题
            //1.mdc标记 为 1 开启 父级节点要统一开启
            //2.mdc标记 为 0 关闭 子级节点要统一关闭  新增操作 不存在此情况
            if(StringUtils.isNotBlank(parentId) && CommonConstant.DEFAULT_1.equals(mdcProduction.getMdcFlag())){
                openParentMdcFlag(parentId);
            }
        }
    }
@@ -191,6 +200,18 @@
    public boolean updateProductionDataById(MdcProduction mdcProduction) {
        if (mdcProduction != null) {
            this.updateById(mdcProduction);
            //处理存在父子关系 mdc标记统一的问题
            //1.mdc标记 为 1 开启 父级节点要统一开启
            //2.mdc标记 为 0 关闭 子级节点要统一关闭
            String parentId = mdcProduction.getParentId();
            if(StringUtils.isNotBlank(parentId) && CommonConstant.DEFAULT_1.equals(mdcProduction.getMdcFlag())){
                openParentMdcFlag(parentId);
            }
            if(CommonConstant.DEFAULT_0.equals(mdcProduction.getMdcFlag())){
                //关闭
                closeChildrenMdcFlag(mdcProduction.getId());
            }
            return true;
        }
        return false;
@@ -441,4 +462,57 @@
    public List<String> findAllProductionIds(List<String> ids){
        return this.baseMapper.recursionChildrenByList(ids);
    }
    @Override
    public List<String> findParentIdsForProduction(String parentId, List<String> idList) {
        if (StringUtils.isEmpty(parentId)) {
            return null;
        }
        if (idList == null || idList.isEmpty()) {
            idList = new ArrayList<>();
        }
        boolean p = true;
        if (p) {
            MdcProduction en = super.getById(parentId);
            if (en != null) {
                idList.add(0, en.getId());
            }
            if (StringUtils.isNotBlank(en.getParentId())) {
                parentId = en.getParentId();
                findParentIdsForProduction(parentId, idList);
            } else {
                p = false;
                return idList;
            }
        }
        return idList;
    }
    /**
     * 打开 父节点 及 以上的mdc标记
     * @param parentId
     */
    private void openParentMdcFlag(String parentId) {
        List<String> listParentTree = findParentIdsForProduction(parentId, new ArrayList<>());
        if (!CollectionUtil.isEmpty(listParentTree)) {
            UpdateWrapper<MdcProduction> updateWrapper = new UpdateWrapper<>();
            updateWrapper.in("id", listParentTree);
            updateWrapper.set("mdc_flag", "1");
            super.update(updateWrapper);
        }
    }
    /**
     * 关闭所有子节点的mdc标记
     * @param productionId
     */
    private void closeChildrenMdcFlag(String productionId) {
        List<String> childrenList = recursionChildren(productionId);
        if (!CollectionUtil.isEmpty(childrenList)) {
            UpdateWrapper<MdcProduction> updateWrapper = new UpdateWrapper<>();
            updateWrapper.in("id", childrenList);
            updateWrapper.set("mdc_flag", "0");
            super.update(updateWrapper);
        }
    }
}