From b613ef646ea03fc3c949b63ec04778f999419cbe Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 28 七月 2025 21:48:46 +0800 Subject: [PATCH] 车间编码生成rule --- src/main/java/org/jeecg/modules/mdc/rule/OrgCodeProRule.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-) diff --git a/src/main/java/org/jeecg/modules/mdc/rule/OrgCodeProRule.java b/src/main/java/org/jeecg/modules/mdc/rule/OrgCodeProRule.java new file mode 100644 index 0000000..b8cf69a --- /dev/null +++ b/src/main/java/org/jeecg/modules/mdc/rule/OrgCodeProRule.java @@ -0,0 +1,98 @@ +package org.jeecg.modules.mdc.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.mdc.entity.MdcProduction; +import org.jeecg.modules.mdc.service.IMdcProductionService; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author: LiuS + * @create: 2023-07-04 16:15 + * @Description: 杞﹂棿鏈烘瀯缂栫爜鐢熸垚瑙勫垯 + */ +public class OrgCodeProRule implements IFillRuleHandler { + + @Override + public Object execute(JSONObject params, JSONObject formData) { + IMdcProductionService mdcProductionService = (IMdcProductionService) SpringContextUtils.getBean("mdcProductionServiceImpl"); + + LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>(); + LambdaQueryWrapper<MdcProduction> query1 = new LambdaQueryWrapper<MdcProduction>(); + // 鍒涘缓涓�涓狶ist闆嗗悎,瀛樺偍鏌ヨ杩斿洖鐨勬墍鏈塎dcProduction瀵硅薄 + List<MdcProduction> mdcProductionList = 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(); + } + } + } + + //濡傛灉鏄渶楂樼骇,鍒欐煡璇㈠嚭鍚岀骇鐨刼rg_code, 璋冪敤宸ュ叿绫荤敓鎴愮紪鐮佸苟杩斿洖 + if (StringUtil.isNullOrEmpty(parentId)) { + // 绾垮垽鏂暟鎹簱涓殑琛ㄦ槸鍚︿负绌�,绌哄垯鐩存帴杩斿洖鍒濆缂栫爜 + query1.eq(MdcProduction::getParentId, "").or().isNull(MdcProduction::getParentId); + query1.orderByDesc(MdcProduction::getOrgCode); + mdcProductionList = mdcProductionService.list(query1); + if (mdcProductionList == null || mdcProductionList.size() == 0) { + strArray[0] = YouBianCodeUtil.getNextYouBianCode(null); + strArray[1] = "1"; + return strArray; + } else { + MdcProduction mdcProduction = mdcProductionList.get(0); + oldOrgCode = mdcProduction.getOrgCode(); + orgType = mdcProduction.getOrgType(); + newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode); + } + } else {//鍙嶄箣鍒欐煡璇㈠嚭鎵�鏈夊悓绾х殑杞﹂棿,鑾峰彇缁撴灉鍚庢湁涓ょ鎯呭喌,鏈夊悓绾у拰娌℃湁鍚岀骇 + // 灏佽鏌ヨ鍚岀骇鐨勬潯浠� + query.eq(MdcProduction::getParentId, parentId); + // 闄嶅簭鎺掑簭 + query.orderByDesc(MdcProduction::getOrgCode); + // 鏌ヨ鍑哄悓绾т骇绾跨殑闆嗗悎 + List<MdcProduction> parentList = mdcProductionService.list(query); + // 鏌ヨ鍑虹埗绾т骇绾� + MdcProduction production = mdcProductionService.getById(parentId); + // 鑾峰彇鐖剁骇浜х嚎鐨刢ode + String parentCode = production.getOrgCode(); + // 鏍规嵁鐖剁骇浜х嚎绫诲瀷绠楀嚭褰撳墠浜х嚎鐨勭被鍨� + orgType = String.valueOf(Integer.valueOf(production.getOrgType()) + 1); + // 澶勭悊鍚岀骇浜х嚎涓簄ull鐨勬儏鍐� + 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; + } +} -- Gitblit v1.9.3