|
@@ -79,7 +79,7 @@ public class PartnerInfoServiceImpl extends ServiceImpl<PartnerInfoMapper, Partn
|
|
|
private LambdaQueryWrapper<PartnerInfo> buildQueryWrapper(PartnerInfoBo bo) {
|
|
private LambdaQueryWrapper<PartnerInfo> buildQueryWrapper(PartnerInfoBo bo) {
|
|
|
Map<String, Object> params = bo.getParams();
|
|
Map<String, Object> params = bo.getParams();
|
|
|
LambdaQueryWrapper<PartnerInfo> lqw = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<PartnerInfo> lqw = Wrappers.lambdaQuery();
|
|
|
- lqw.orderByAsc(PartnerInfo::getId);
|
|
|
|
|
|
|
+ lqw.orderByDesc(PartnerInfo::getCreateTime);
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getPartnerNo()), PartnerInfo::getPartnerNo, bo.getPartnerNo());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getPartnerNo()), PartnerInfo::getPartnerNo, bo.getPartnerNo());
|
|
|
lqw.like(StringUtils.isNotBlank(bo.getPartnerName()), PartnerInfo::getPartnerName, bo.getPartnerName());
|
|
lqw.like(StringUtils.isNotBlank(bo.getPartnerName()), PartnerInfo::getPartnerName, bo.getPartnerName());
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getCompany()), PartnerInfo::getCompany, bo.getCompany());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getCompany()), PartnerInfo::getCompany, bo.getCompany());
|
|
@@ -104,6 +104,8 @@ public class PartnerInfoServiceImpl extends ServiceImpl<PartnerInfoMapper, Partn
|
|
|
public Boolean insertByBo(PartnerInfoBo bo) {
|
|
public Boolean insertByBo(PartnerInfoBo bo) {
|
|
|
PartnerInfo add = MapstructUtils.convert(bo, PartnerInfo.class);
|
|
PartnerInfo add = MapstructUtils.convert(bo, PartnerInfo.class);
|
|
|
validEntityBeforeSave(add);
|
|
validEntityBeforeSave(add);
|
|
|
|
|
+ // 自动生成伙伴商编号
|
|
|
|
|
+ add.setPartnerNo(generatePartnerNo());
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
|
bo.setId(add.getId());
|
|
bo.setId(add.getId());
|
|
@@ -200,4 +202,37 @@ public class PartnerInfoServiceImpl extends ServiceImpl<PartnerInfoMapper, Partn
|
|
|
|
|
|
|
|
return baseMapper.selectVoList(wrapper);
|
|
return baseMapper.selectVoList(wrapper);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 生成伙伴商编号(格式:P + 年份(4位) + 序号(3位),例如:P2026001)
|
|
|
|
|
+ */
|
|
|
|
|
+ private String generatePartnerNo() {
|
|
|
|
|
+ // 获取当前年份
|
|
|
|
|
+ String year = String.valueOf(java.time.LocalDate.now().getYear());
|
|
|
|
|
+
|
|
|
|
|
+ // 查询当年最大的编号
|
|
|
|
|
+ LambdaQueryWrapper<PartnerInfo> lqw = Wrappers.lambdaQuery();
|
|
|
|
|
+ lqw.select(PartnerInfo::getPartnerNo);
|
|
|
|
|
+ lqw.likeRight(PartnerInfo::getPartnerNo, "P" + year);
|
|
|
|
|
+ lqw.orderByDesc(PartnerInfo::getPartnerNo);
|
|
|
|
|
+ lqw.last("LIMIT 1");
|
|
|
|
|
+ PartnerInfo maxRecord = baseMapper.selectOne(lqw);
|
|
|
|
|
+
|
|
|
|
|
+ int nextNum = 1;
|
|
|
|
|
+ if (maxRecord != null && StringUtils.isNotBlank(maxRecord.getPartnerNo())) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 提取序号部分(最后3位)
|
|
|
|
|
+ String no = maxRecord.getPartnerNo();
|
|
|
|
|
+ if (no.length() >= 8) { // P + 4位年份 + 至少3位序号
|
|
|
|
|
+ String seqStr = no.substring(no.length() - 3);
|
|
|
|
|
+ nextNum = Integer.parseInt(seqStr) + 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
|
+ log.warn("解析伙伴商编号失败: {}", maxRecord.getPartnerNo());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 格式化为 P + 年份 + 3位序号,如 P2026001
|
|
|
|
|
+ return String.format("P%s%03d", year, nextNum);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|