Lius
2025-07-01 9185957c0709a89c4810b6ee272de06a79752c92
维修部门班组层级编码生成规则
已添加1个文件
已修改2个文件
已删除1个文件
222 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseRepairDepartTreeModel.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/RepairDepartIdModel.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeProRule.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeRepDepRule.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseRepairDepartTreeModel.java
@@ -24,12 +24,12 @@
    private static final long serialVersionUID = 5098613810355342955L;
    /**
     * å¯¹åº”SysMaintainDepart中的id字段,前端数据树中的key
     * å¯¹åº”EamBaseRepairDepart中的id字段,前端数据树中的key
     */
    private String key;
    /**
     * å¯¹åº”SysMaintainDepart中的id字段,前端数据树中的value
     * å¯¹åº”EamBaseRepairDepart中的id字段,前端数据树中的value
     */
    private String value;
@@ -39,17 +39,17 @@
    private String title;
    private boolean isLeaf;
    //以下所有字段均与SysMaintainDepart相同
    //以下所有字段均与EamBaseRepairDepart相同
    private String id;
    private String parentId;
    private String maintainName;
    private String departName;
    private String maintainNameAbbr;
    private String departNameAbbr;
    private Integer maintainOrder;
    private Integer departOrder;
    private String description;
@@ -57,7 +57,7 @@
    private String orgCode;
    private String maintainCode;
    private String departCode;
    private String address;
@@ -97,13 +97,13 @@
        this.title = eamBaseRepairDepart.getDepartName();
        this.id = eamBaseRepairDepart.getId();
        this.parentId = eamBaseRepairDepart.getParentId();
        this.maintainName = eamBaseRepairDepart.getDepartName();
        this.maintainNameAbbr = eamBaseRepairDepart.getDepartNameAbbr();
        this.maintainOrder = eamBaseRepairDepart.getDepartOrder();
        this.departName = eamBaseRepairDepart.getDepartName();
        this.departNameAbbr = eamBaseRepairDepart.getDepartNameAbbr();
        this.departOrder = eamBaseRepairDepart.getDepartOrder();
        this.description = eamBaseRepairDepart.getDescription();
        this.orgType = eamBaseRepairDepart.getOrgType();
        this.orgCode = eamBaseRepairDepart.getOrgCode();
        this.maintainCode = eamBaseRepairDepart.getMaintainCode();
        this.departCode = eamBaseRepairDepart.getMaintainCode();
        this.address = eamBaseRepairDepart.getAddress();
        this.memo = eamBaseRepairDepart.getMemo();
        this.status = eamBaseRepairDepart.getStatus();
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/RepairDepartIdModel.java
@@ -3,7 +3,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.system.entity.EamBaseRepairDepart;
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart;
import java.io.Serializable;
import java.util.ArrayList;
@@ -59,7 +59,7 @@
    public RepairDepartIdModel convertByUserMaintainDepart(EamBaseRepairDepart mdcMaintainDepart) {
        this.key = mdcMaintainDepart.getId();
        this.value = mdcMaintainDepart.getId();
        this.title = mdcMaintainDepart.getMaintainName();
        this.title = mdcMaintainDepart.getDepartName();
        return this;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeProRule.java
ÎļþÒÑɾ³ý
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeRepDepRule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package org.jeecg.modules.eam.base.rule;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.netty.util.internal.StringUtil;
import org.jeecg.common.handler.IFillRuleHandler;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.common.util.YouBianCodeUtil;
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart;
import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService;
import java.util.ArrayList;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-07-04 16:15
 * @Description: è½¦é—´æœºæž„编码生成规则
 */
public class OrgCodeRepDepRule implements IFillRuleHandler {
    @Override
    public Object execute(JSONObject params, JSONObject formData) {
        IEamBaseRepairDepartService eamBaseRepairDepartService = (IEamBaseRepairDepartService) SpringContextUtils.getBean("eamBaseRepairDepartImpl");
        LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>();
        LambdaQueryWrapper<EamBaseRepairDepart> query1 = new LambdaQueryWrapper<EamBaseRepairDepart>();
        // åˆ›å»ºä¸€ä¸ªList集合,存储查询返回的所有EamBaseRepairDepart对象
        List<EamBaseRepairDepart> eamBaseRepairDepartList = new ArrayList<>();
        String[] strArray = new String[2];
        //定义车间类型
        String orgType = "";
        // å®šä¹‰æ–°ç¼–码字符串
        String newOrgCode = "";
        // å®šä¹‰æ—§ç¼–码字符串
        String oldOrgCode = "";
        String parentId = null;
        if (formData != null && formData.size() > 0) {
            Object obj = formData.get("parentId");
            if (obj != null) {
                parentId = obj.toString();
            }
        } else {
            if (params != null) {
                Object obj = params.get("parentId");
                if (obj != null) {
                    parentId = obj.toString();
                }
            }
        }
        //如果是最高级,则查询出同级的org_code, è°ƒç”¨å·¥å…·ç±»ç”Ÿæˆç¼–码并返回
        if (StringUtil.isNullOrEmpty(parentId)) {
            // çº¿åˆ¤æ–­æ•°æ®åº“中的表是否为空,空则直接返回初始编码
            query1.eq(EamBaseRepairDepart::getParentId, "").or().isNull(EamBaseRepairDepart::getParentId);
            query1.orderByDesc(EamBaseRepairDepart::getOrgCode);
            eamBaseRepairDepartList = eamBaseRepairDepartService.list(query1);
            if (eamBaseRepairDepartList == null || eamBaseRepairDepartList.size() == 0) {
                strArray[0] = YouBianCodeUtil.getNextYouBianCode(null);
                strArray[1] = "1";
                return strArray;
            } else {
                EamBaseRepairDepart eamBaseRepairDepart = eamBaseRepairDepartList.get(0);
                oldOrgCode = eamBaseRepairDepart.getOrgCode();
                orgType = eamBaseRepairDepart.getOrgType();
                newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode);
            }
        } else {//反之则查询出所有同级的车间,获取结果后有两种情况,有同级和没有同级
            // å°è£…查询同级的条件
            query.eq(EamBaseRepairDepart::getParentId, parentId);
            // é™åºæŽ’序
            query.orderByDesc(EamBaseRepairDepart::getOrgCode);
            // æŸ¥è¯¢å‡ºåŒçº§ç»´ä¿®éƒ¨é—¨ç­ç»„的集合
            List<EamBaseRepairDepart> parentList = eamBaseRepairDepartService.list(query);
            // æŸ¥è¯¢å‡ºçˆ¶çº§ç»´ä¿®éƒ¨é—¨ç­ç»„
            EamBaseRepairDepart repairDepart = eamBaseRepairDepartService.getById(parentId);
            // èŽ·å–çˆ¶çº§ç»´ä¿®éƒ¨é—¨ç­ç»„çš„code
            String parentCode = repairDepart.getOrgCode();
            // æ ¹æ®çˆ¶çº§ç»´ä¿®éƒ¨é—¨ç­ç»„类型算出当前维修部门班组的类型
            orgType = String.valueOf(Integer.valueOf(repairDepart.getOrgType()) + 1);
            // å¤„理同级维修部门班组为null的情况
            if (parentList == null || parentList.size() == 0) {
                // ç›´æŽ¥ç”Ÿæˆå½“前的维修部门班组编码并返回
                newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, null);
            } else { //处理有同级维修部门班组的情况
                // èŽ·å–åŒçº§ç»´ä¿®éƒ¨é—¨ç­ç»„çš„ç¼–ç ,利用工具类
                String subCode = parentList.get(0).getOrgCode();
                // è¿”回生成的当前维修部门班组编码
                newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, subCode);
            }
        }
        // è¿”回最终封装了维修部门班组编码和维修部门班组类型的数组
        strArray[0] = newOrgCode;
        strArray[1] = orgType;
        return strArray;
    }
}