| | |
| | | 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; |
| | |
| | | .getOne(new LambdaQueryWrapper<SerialRule>() |
| | | .eq(SerialRule::getCode, code)); |
| | | if (Objects.isNull(serialRule)) { |
| | | |
| | | throw new CoolException("当前业务:" + code + ",编码规则不存在!!"); |
| | | } |
| | | SerialRuleItemService serialRuleItemService = SpringUtils.getBean(SerialRuleItemService.class); |
| | |
| | | .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)) { |
| | |
| | | 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"); |
| | | } else { |
| | | format = DateUtils.format(new Date(), "dd"); |
| | | format = DateUtils.format(new Date(), "yyMM"); |
| | | } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_DAYS.type)){ |
| | | format = DateUtils.format(new Date(), "yyMMdd"); |
| | | } |
| | | //当前值自动加1 |
| | | Integer curVal = serialRule.getCurrValue() + 1; |
| | |
| | | //判断是否设置截取长度和起始截取位置 |
| | | 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)) { |
| | |
| | | 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长度的字符串 |