From 398ba77302d1992ae561ba301e3c0d91a8816752 Mon Sep 17 00:00:00 2001 From: shenzhouyu Date: Thu, 17 Apr 2025 15:50:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xujie/sys/common/utils/FillRuleUtil.java | 42 +++++++++++++++++ .../com/xujie/sys/modules/ruler/CodeRule.java | 47 +++++++++++++++++++ .../com/xujie/sys/modules/ruler/Consts.java | 9 ++++ .../sys/modules/ruler/IFillRuleHandler.java | 7 +++ 4 files changed, 105 insertions(+) create mode 100644 src/main/java/com/xujie/sys/common/utils/FillRuleUtil.java create mode 100644 src/main/java/com/xujie/sys/modules/ruler/CodeRule.java create mode 100644 src/main/java/com/xujie/sys/modules/ruler/Consts.java create mode 100644 src/main/java/com/xujie/sys/modules/ruler/IFillRuleHandler.java diff --git a/src/main/java/com/xujie/sys/common/utils/FillRuleUtil.java b/src/main/java/com/xujie/sys/common/utils/FillRuleUtil.java new file mode 100644 index 00000000..8f9d1379 --- /dev/null +++ b/src/main/java/com/xujie/sys/common/utils/FillRuleUtil.java @@ -0,0 +1,42 @@ +package com.xujie.sys.common.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.ruler.IFillRuleHandler; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +@Slf4j +public class FillRuleUtil { + public static Object fillRule(String ruleCode, JSONObject formData) { + if (!StringUtils.isEmpty(ruleCode)) { + try { + + ServiceImpl impl = (ServiceImpl) SpringContextUtils.getBean("SysFillRuleServiceImpl"); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("rule_code", ruleCode); + JSONObject entity = JSON.parseObject(JSON.toJSONString(impl.getOne(queryWrapper))); + if (entity == null) { + log.warn("填值规则:" + ruleCode + " 不存在"); + return null; + } + String ruleClass = entity.getString("ruleClass"); + JSONObject params = entity.getJSONObject("ruleParams"); + if (params == null) { + params = new JSONObject(); + } + if (formData == null) { + formData = new JSONObject(); + } + // 通过反射执行配置的类里的方法 + IFillRuleHandler ruleHandler = (IFillRuleHandler) Class.forName(ruleClass).newInstance(); + return ruleHandler.execute(params, formData); + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } +} diff --git a/src/main/java/com/xujie/sys/modules/ruler/CodeRule.java b/src/main/java/com/xujie/sys/modules/ruler/CodeRule.java new file mode 100644 index 00000000..0dfe73e2 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/ruler/CodeRule.java @@ -0,0 +1,47 @@ +package com.xujie.sys.modules.ruler; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.xujie.sys.common.utils.SpringContextUtils; +import com.xujie.sys.modules.sys.dao.SysCodeCountMapper; +import com.xujie.sys.modules.sys.entity.SysCodeCount; +import com.xujie.sys.modules.sys.service.impl.SysCodeCountServiceImpl; +import org.springframework.util.CollectionUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +public class CodeRule implements IFillRuleHandler{ + @Override + public Object execute(JSONObject params, JSONObject formData) { + String codeno=formData.get("codeno").toString(); + SysCodeCountServiceImpl sysCodeCountImpl = (SysCodeCountServiceImpl)SpringContextUtils.getBean("SysCodeCountServiceImpl"); + SimpleDateFormat format = new SimpleDateFormat("yyMMdd") ; + String updateDate=format.format(new Date()) ; + QueryWrapper queryWrapper=new QueryWrapper<>() ; + queryWrapper.eq("code_no",codeno); + List firs= sysCodeCountImpl.list(queryWrapper); + + SysCodeCount fir = null; + int cnum=0; + if(CollectionUtils.isEmpty(firs)){ + cnum++; + fir=new SysCodeCount(); + fir.setCnum(cnum); + fir.setCodeNo(codeno); + fir.setUpdateDate(new Date()); + fir.setCreateDate(new Date()); + sysCodeCountImpl.save(fir); + }else{ + fir = firs.get(0); + cnum= fir.getCnum(); + cnum++; + fir.setCnum(cnum); + fir.setUpdateDate(new Date()); + sysCodeCountImpl.updateById(fir); + } + String value = codeno + updateDate + String.format("%04d", cnum) ; + return value; + } +} diff --git a/src/main/java/com/xujie/sys/modules/ruler/Consts.java b/src/main/java/com/xujie/sys/modules/ruler/Consts.java new file mode 100644 index 00000000..2829afeb --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/ruler/Consts.java @@ -0,0 +1,9 @@ +package com.xujie.sys.modules.ruler; + +public interface Consts { + public final static String PROJECT = "PJ"; + + public final static String PROJECTINCOME = "YS"; + public final static String PROJECTPLAN = "P"; + public final static String PROJECTTASK = "Q"; +} diff --git a/src/main/java/com/xujie/sys/modules/ruler/IFillRuleHandler.java b/src/main/java/com/xujie/sys/modules/ruler/IFillRuleHandler.java new file mode 100644 index 00000000..917db25b --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/ruler/IFillRuleHandler.java @@ -0,0 +1,7 @@ +package com.xujie.sys.modules.ruler; + +import com.alibaba.fastjson.JSONObject; + +public interface IFillRuleHandler { + Object execute(JSONObject params, JSONObject formData); +}