mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 15:55:18 +08:00
feat: 单号生成添加日期参数作为上下文, 支持用户录入历史单据时生成单号
This commit is contained in:
@@ -5,10 +5,7 @@ import cn.lihongjie.coal.annotation.SysLog;
|
||||
import cn.lihongjie.coal.base.dto.CommonQuery;
|
||||
import cn.lihongjie.coal.base.dto.IdRequest;
|
||||
import cn.lihongjie.coal.base.dto.R;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.CreateOrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.OrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.UpdateOrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.UpdateOrderSeqRequest;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.*;
|
||||
import cn.lihongjie.coal.orderNoRule.service.OrderNoRuleService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -60,8 +57,8 @@ public class OrderNoRuleController {
|
||||
return true;
|
||||
}
|
||||
@PostMapping("/genOrderNo")
|
||||
public R<String> genOrderNo(@RequestBody IdRequest request) {
|
||||
return R.success(this.service.genOrderNo(request.getId()));
|
||||
public R<String> genOrderNo(@RequestBody GenOrderNoRequest request) {
|
||||
return R.success(this.service.genOrderNo(request));
|
||||
}
|
||||
|
||||
@PostMapping("/updateOrderSeq")
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package cn.lihongjie.coal.orderNoRule.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@Data
|
||||
public class GenOrderNoRequest {
|
||||
|
||||
private String ruleCode;
|
||||
|
||||
private LocalDateTime time;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package cn.lihongjie.coal.orderNoRule.service;
|
||||
|
||||
import cn.lihongjie.coal.orderNoRule.dto.GenOrderNoRequest;
|
||||
import cn.lihongjie.coal.orderNoRule.entity.OrderNoRuleEntity;
|
||||
|
||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||
@@ -27,26 +28,26 @@ public class OrderNoGenService {
|
||||
|
||||
@Autowired private OrderNoRuleService orderNoRuleService;
|
||||
|
||||
public String genOrderNo(String ruleCode, String orgId) {
|
||||
public String genOrderNo(GenOrderNoRequest request, String orgId) {
|
||||
|
||||
log.info("生成订单号, 规则编码: {}, 机构: {}", ruleCode, orgId);
|
||||
log.info("生成订单号, 规则编码: {}, 机构: {}", request.getRuleCode(), orgId);
|
||||
|
||||
|
||||
OrderNoRuleEntity rule = getOrderNoRuleEntity(ruleCode, orgId);
|
||||
OrderNoRuleEntity rule = getOrderNoRuleEntity(request.getRuleCode(), orgId);
|
||||
if (rule == null) return null;
|
||||
|
||||
|
||||
|
||||
String ruleTemplate = rule.getRuleTemplate();
|
||||
return genOrderNo(ruleCode, orgId, ruleTemplate);
|
||||
return genOrderNo(request, orgId, ruleTemplate);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public @NotNull String genOrderNo(String ruleCode, String orgId, String ruleTemplate) {
|
||||
public @NotNull String genOrderNo(GenOrderNoRequest request, String orgId, String ruleTemplate) {
|
||||
|
||||
RuleTemplateUtils.ResolveContext context = new RuleTemplateUtils.ResolveContext();
|
||||
context.setDateTime(LocalDateTime.now());
|
||||
context.setDateTime(request.getTime());
|
||||
return RuleTemplateUtils.genNo(
|
||||
ruleTemplate,
|
||||
RuleTemplateUtils.CompositePlaceholderResolver.of(
|
||||
@@ -62,7 +63,7 @@ public class OrderNoGenService {
|
||||
|
||||
String current = context.get("current").toString();
|
||||
|
||||
String key = orgId + ":" + ruleCode + ":" + current;
|
||||
String key = orgId + ":" + request.getRuleCode() + ":" + current;
|
||||
|
||||
Long seq = redissonClient.getAtomicLong(key).incrementAndGet();
|
||||
|
||||
|
||||
@@ -6,10 +6,7 @@ import cn.lihongjie.coal.base.service.BaseService;
|
||||
import cn.lihongjie.coal.common.Ctx;
|
||||
import cn.lihongjie.coal.dbFunctions.DbFunctionService;
|
||||
import cn.lihongjie.coal.exception.BizException;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.CreateOrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.OrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.UpdateOrderNoRuleDto;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.UpdateOrderSeqRequest;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.*;
|
||||
import cn.lihongjie.coal.orderNoRule.entity.OrderNoRuleEntity;
|
||||
import cn.lihongjie.coal.orderNoRule.mapper.OrderNoRuleMapper;
|
||||
import cn.lihongjie.coal.orderNoRule.repository.OrderNoRuleRepository;
|
||||
@@ -24,6 +21,8 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@Transactional
|
||||
@@ -85,20 +84,23 @@ public class OrderNoRuleService extends BaseService<OrderNoRuleEntity, OrderNoRu
|
||||
private OrderNoGenService orderNoGenService;
|
||||
|
||||
|
||||
public String genOrderNo(String ruleCode) {
|
||||
public String genOrderNo(GenOrderNoRequest ruleCode) {
|
||||
return genOrderNo(ruleCode, Ctx.currentUser().getOrganizationId());
|
||||
}
|
||||
|
||||
|
||||
public String previewOrderNo(OrderNoRuleDto ruleCode) {
|
||||
GenOrderNoRequest request = new GenOrderNoRequest();
|
||||
request.setRuleCode(ruleCode.getCode());
|
||||
request.setTime(LocalDateTime.now());
|
||||
return orderNoGenService.genOrderNo(
|
||||
ruleCode.getCode(),
|
||||
request,
|
||||
Ctx.currentUser().getOrganizationId() + "-preview",
|
||||
ruleCode.getRuleTemplate());
|
||||
}
|
||||
|
||||
|
||||
public String genOrderNo(String ruleCode, String organizationId) {
|
||||
public String genOrderNo(GenOrderNoRequest ruleCode, String organizationId) {
|
||||
return orderNoGenService.genOrderNo(ruleCode, organizationId);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import cn.lihongjie.coal.common.FreeMakerUtils;
|
||||
import cn.lihongjie.coal.common.JpaUtils;
|
||||
import cn.lihongjie.coal.common.NumberUtils;
|
||||
import cn.lihongjie.coal.exception.BizException;
|
||||
import cn.lihongjie.coal.orderNoRule.dto.GenOrderNoRequest;
|
||||
import cn.lihongjie.coal.orderNoRule.service.OrderNoRuleService;
|
||||
import cn.lihongjie.coal.orderNoRule.service.RuleCodeConstant;
|
||||
import cn.lihongjie.coal.warehouseGoods.dto.GoodsCountRequest;
|
||||
@@ -183,9 +184,12 @@ public class WarehouseReceiptService
|
||||
.map(WarehouseReceiptDetailEntity::getAmount)
|
||||
.reduce(0.0, Double::sum)));
|
||||
|
||||
GenOrderNoRequest request = new GenOrderNoRequest();
|
||||
request.setRuleCode(RuleCodeConstant.KF_RKD);
|
||||
request.setTime(receipt0.getReceiptDate());
|
||||
receipt0.setReceiptNo(
|
||||
orderNoRuleService.genOrderNo(
|
||||
RuleCodeConstant.KF_RKD, Ctx.currentUser().getOrganizationId()));
|
||||
request, Ctx.currentUser().getOrganizationId()));
|
||||
|
||||
entity.setReceipt0(receipt0);
|
||||
this.warehouseReceiptDetailRepository.saveAll(receipt0.getDetail());
|
||||
@@ -205,10 +209,12 @@ public class WarehouseReceiptService
|
||||
receipt1.getDetail().stream()
|
||||
.map(WarehouseReceiptDetailEntity::getAmount)
|
||||
.reduce(0.0, Double::sum)));
|
||||
|
||||
GenOrderNoRequest request = new GenOrderNoRequest();
|
||||
request.setRuleCode(RuleCodeConstant.KF_CKD);
|
||||
request.setTime(receipt1.getReceiptDate());
|
||||
receipt1.setReceiptNo(
|
||||
orderNoRuleService.genOrderNo(
|
||||
RuleCodeConstant.KF_CKD, Ctx.currentUser().getOrganizationId()));
|
||||
request, Ctx.currentUser().getOrganizationId()));
|
||||
|
||||
entity.setReceipt1(receipt1);
|
||||
this.save(receipt1);
|
||||
|
||||
Reference in New Issue
Block a user