rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -99,7 +99,6 @@ if (Objects.isNull(matnr)) { throw new CoolException("数据错误:当前物料不存在!!"); } // //TODO barcode生成策略 String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item); if (StringUtils.isBlank(trackCode)) { throw new CoolException("单据跟踪码生成失败:请检查「sys_asn_mantr_label」是否配置完成!!"); @@ -114,10 +113,10 @@ .setPoDetlId(item.getId()) .setPlatItemId(item.getPlatItemId()) .setTrackCode(trackCode) // .setBarcode(barcode) .setPoCode(purchase.getCode()) .setPurQty(item.getAnfme()) .setPurUnit(item.getUnit()) .setMatnrCode(matnr.getCode()) .setMaktx(matnr.getName()) .setMatnrId(matnr.getId() + ""); orderItems.add(orderItem); @@ -136,4 +135,32 @@ }); } /** * 生成物料标签 */ @Scheduled(cron = "0 0/05 * * * ? ") @Transactional(rollbackFor = Exception.class) public void generateMatnrLabel() { List<AsnOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() .isNull(AsnOrderItem::getTrackCode) .select(AsnOrderItem::getId)); if (Objects.isNull(list) || list.isEmpty()) { return; } List<AsnOrderItem> items = new ArrayList<>(); list.forEach(item -> { String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item); if (StringUtils.isBlank(trackCode)) { throw new CoolException("单据跟踪码生成失败:请检查「sys_asn_mantr_label」是否配置完成!!"); } item.setTrackCode(trackCode); items.add(item); }); if (!asnOrderItemService.updateBatchById(items)) { throw new CoolException("生成编码失败!!"); } } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -106,6 +106,9 @@ //保存扩展字段 ExtendFieldsUtils.saveFields(params); AsnOrderItem asnOrderItem = JSONObject.parseObject(JSONObject.toJSONString(params), AsnOrderItem.class); if (StringUtils.isBlank(asnOrderItem.getTrackCode())) { SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, params); } if (!this.saveOrUpdate(asnOrderItem)) { throw new CoolException("收货通知单明细保存失败!!"); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -108,7 +108,6 @@ item.put("asnId", orders.getId()); item.put("asnCode", orders.getCode()); item.put("poCode", orders.getPoCode()); if (!asnOrderItemService.fieldsSave(item)) { throw new CoolException("明细保存失败!!"); } rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
@@ -50,7 +50,7 @@ .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("编码规则明细为空!!"); } @@ -83,8 +83,11 @@ //判断是否设置截取长度和起始截取位置 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); } } });