1
4 天以前 ee536f9aedaf642d64ba2681778fd4e74731d00c
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
@@ -5,6 +5,7 @@
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.DateUtils;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.SerialRule;
import com.vincent.rsf.server.system.entity.SerialRuleItem;
import com.vincent.rsf.server.system.enums.SerialRuleReset;
@@ -41,6 +42,7 @@
                .getOne(new LambdaQueryWrapper<SerialRule>()
                        .eq(SerialRule::getCode, code));
        if (Objects.isNull(serialRule)) {
            throw new CoolException("当前业务:" + code + ",编码规则不存在!!");
        }
        SerialRuleItemService serialRuleItemService = SpringUtils.getBean(SerialRuleItemService.class);
@@ -50,10 +52,16 @@
                .list(new LambdaQueryWrapper<SerialRuleItem>()
                        .eq(SerialRuleItem::getRuleId, serialRule.getId())
                        .orderByAsc(SerialRuleItem::getSort));
        if (Objects.isNull(ruleItems)) {
        if (Objects.isNull(ruleItems) || ruleItems.isEmpty()) {
            throw new CoolException("编码规则明细为空!!");
        }
        //银座特供
        if (code.equals(SerialRuleCode.SYS_ASN_ORDER)){
            StringBuffer buffer = new StringBuffer();
            Object poCode = objectToMap(obj).get("poCode");
            return poCode == null ? "" : buffer.append(poCode).toString();
        }
        StringBuffer buffer = new StringBuffer();
        ruleItems.forEach(rule -> {
            if (rule.getWkType().equals(SerialRuleType.WK_CONSTANT.wkType)) {
@@ -63,9 +71,9 @@
                if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_YEAR.type)) {
                     format = DateUtils.format(new Date(), "yyyy");
                } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_MONTH.type)) {
                     format = DateUtils.format(new Date(), "MM");
                     format = DateUtils.format(new Date(), "yyMM");
                } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_DAYS.type)){
                     format = DateUtils.format(new Date(), "dd");
                     format = DateUtils.format(new Date(), "yyMMdd");
                }
                //当前值自动加1
                Integer curVal = serialRule.getCurrValue() + 1;
@@ -83,11 +91,13 @@
                //判断是否设置截取长度和起始截取位置
                buffer.append(subStr(format, rule.getLenStr(), rule.getLen()));
            } else if (rule.getWkType().equals(SerialRuleType.WK_FEILD.wkType)) {
                String subStr = subStr(objectToMap(obj).get(rule.getFeildValue()).toString(), rule.getLenStr(), rule.getLen());
                buffer.append(subStr);
                String subStr;
                if (!Objects.isNull(objectToMap(obj).get(rule.getFeildValue()))) {
                    subStr = subStr(objectToMap(obj).get(rule.getFeildValue()).toString(), rule.getLenStr(), rule.getLen());
                    buffer.append(subStr);
                }
            }
        });
        serialRule.setLastCode(buffer.toString());
        //修改当前规则编码号至数据库
        if (!ruleService.saveOrUpdate(serialRule)) {
@@ -109,7 +119,7 @@
        if (Objects.isNull(start) || end == 0) {
            buffer.append(str);
        } else {
            if (str.length() <= (end + start)) {
            if (str.length() < (end + start)) {
                throw new CoolException("截取字符起出字符串长度,请查看规则设定!!");
            }
            //返回起始位置lenStr开始,终点位置为lenStr + len长度的字符串