@@ -94,7 +94,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
// 更新
TemplateInstanceDO templateInstanceDO = templateInstanceMapper . selectById ( updateReqVO . getId ( ) ) ;
TemplateInstanceDO updateObj = BeanUtils . toBean ( updateReqVO , TemplateInstanceDO . class ) ;
// updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
// updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
templateInstanceMapper . updateById ( updateObj ) ;
}
@@ -148,7 +148,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
}
// private String incrementVersion(String currentVersion) {
// private String incrementVersion(String currentVersion) {
// // 处理空值或空字符串
// if (currentVersion == null || currentVersion.trim().isEmpty()) {
// return "v1.0";
@@ -205,40 +205,40 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
// String newNumberPart = String.join(".", segments);
// return prefix + newNumberPart + suffix;
// }
private String incrementVersion ( String currentVersion ) {
// 处理空值或空字符串
if ( currentVersion = = null | | currentVersion . trim ( ) . isEmpty ( ) ) {
return " v1 " ;
private String incrementVersion ( String currentVersion ) {
// 处理空值或空字符串
if ( currentVersion = = null | | currentVersion . trim ( ) . isEmpty ( ) ) {
return " v1 " ;
}
String version = currentVersion . trim ( ) ;
// 正则模式:前缀(可选) + 数字部分 + 后缀(可选)
// 数字部分匹配一个或多个数字
Pattern VERSION_PATTERN = Pattern . compile ( " ^([^0-9]*?)( \\ d+)(.*)$ " ) ;
Matcher matcher = VERSION_PATTERN . matcher ( version ) ;
if ( ! matcher . matches ( ) ) {
// 没有找到数字部分,返回默认版本
return version + " 1 " ;
}
String prefix = matcher . group ( 1 ) ; // 前缀部分(如 "v", "version-" 等)
String numberPart = matcher . group ( 2 ) ; // 数字部分(如 "1", "123")
String suffix = matcher . group ( 3 ) ; // 后缀部分
try {
// 将数字部分解析为整数并加1
int number = Integer . parseInt ( numberPart ) ;
number + + ;
// 重新组合版本号
return prefix + number + suffix ;
} catch ( NumberFormatException e ) {
// 解析数字格式异常时的 fallback
return prefix + " 1 " + suffix ;
}
}
String version = currentVersion . trim ( ) ;
// 正则模式:前缀(可选) + 数字部分 + 后缀(可选)
// 数字部分匹配一个或多个数字
Pattern VERSION_PATTERN = Pattern . compile ( " ^([^0-9]*?)( \\ d+)(.*)$ " ) ;
Matcher matcher = VERSION_PATTERN . matcher ( version ) ;
if ( ! matcher . matches ( ) ) {
// 没有找到数字部分,返回默认版本
return version + " 1 " ;
}
String prefix = matcher . group ( 1 ) ; // 前缀部分(如 "v", "version-" 等)
String numberPart = matcher . group ( 2 ) ; // 数字部分(如 "1", "123")
String suffix = matcher . group ( 3 ) ; // 后缀部分
try {
// 将数字部分解析为整数并加1
int number = Integer . parseInt ( numberPart ) ;
number + + ;
// 重新组合版本号
return prefix + number + suffix ;
} catch ( NumberFormatException e ) {
// 解析数字格式异常时的 fallback
return prefix + " 1 " + suffix ;
}
}
@Override
public List < String > getDeptByInstanId ( Long instanId ) {
@@ -270,7 +270,7 @@ private String incrementVersion(String currentVersion) {
throw exception ( STATUS_OPERATION_FAIL ) ;
}
} ) ;
log . info ( " 发布模版实例【{}】 " , publishReqVOS . stream ( ) . map ( PublishTemplateInstanceReqVO : : getId ) ) ;
templateInstanceMapper . update ( new LambdaUpdateWrapper < TemplateInstanceDO > ( )
. in ( TemplateInstanceDO : : getId , publishReqVOS . stream ( )
. map ( PublishTemplateInstanceReqVO : : getId )
@@ -286,14 +286,18 @@ private String incrementVersion(String currentVersion) {
@Override
public void setDisableOrEnable ( DisableEnableReqVO reqVO ) {
validateTemplateInstanceExists ( reqVO . getIds ( ) . stream ( ) . map ( Long : : valueOf ) . toList ( ) ) ;
String code ;
String code = " " ;
if ( reqVO . getType ( ) . equals ( " disable " ) ) {
// 禁用
code = TmplStsEnum . STOPPED . getCode ( ) ;
} else {
} else if ( reqVO . getType ( ) . equals ( " enable " ) ) {
// 启用
code = TmplStsEnum . PUBLISHED . getCode ( ) ;
}
if ( code . isEmpty ( ) ) {
throw exception ( ILLEGAL_OPERATION_TYPE ) ;
}
log . info ( " =============================当前操作记录为【{}】操作动作为:【{}】================================ " , reqVO . getIds ( ) , reqVO . getType ( ) ) ;
templateInstanceMapper . update ( new LambdaUpdateWrapper < TemplateInstanceDO > ( )
. set ( TemplateInstanceDO : : getSts , code )
. in ( TemplateInstanceDO : : getId , reqVO . getIds ( ) ) ) ;
@@ -312,15 +316,15 @@ private String incrementVersion(String currentVersion) {
newTpInstanceDO . setUpdateTime ( null ) ;
templateInstanceMapper . insert ( newTpInstanceDO ) ;
templateInstanceMapper . update ( new LambdaUpdateWrapper < TemplateInstanceDO > ( )
. set ( TemplateInstanceDO : : getSts , TmplStsEnum . STOPPED . getCode ( ) )
. set ( TemplateInstanceDO : : getSts , TmplStsEnum . STOPPED . getCode ( ) )
. eq ( TemplateInstanceDO : : getId , id ) ) ;
List < TemplateInstanceDataDO > templateInstanceDataDOS = new ArrayList < > ( ) ;
List < TemplateInstanceItemDO > templateInstanceItemDOS = new ArrayList < > ( ) ;
List < TemplateInstanceItemDO > templateInstanceItemDOS = new ArrayList < > ( ) ;
List < DepartmentInstanceRelativityDO > newDepartmentInstanceRelativityDOS = new ArrayList < > ( ) ;
//设置部门
List < DepartmentInstanceRelativityDO > departmentInstanceRelativityDOS = departmentInstanceRelativityMapper
. selectList ( new LambdaQueryWrapper < DepartmentInstanceRelativityDO > ( )
. eq ( DepartmentInstanceRelativityDO : : getTemplateInstanceId , id ) ) ;
. eq ( DepartmentInstanceRelativityDO : : getTemplateInstanceId , id ) ) ;
departmentInstanceRelativityDOS . forEach ( departmentInstanceRelativityDO - > {
DepartmentInstanceRelativityDO newDepartmentInstanceRelativityDO = new DepartmentInstanceRelativityDO ( ) ;
newDepartmentInstanceRelativityDO . setTemplateInstanceId ( String . valueOf ( newTpInstanceDO . getId ( ) ) ) ;
@@ -330,20 +334,20 @@ private String incrementVersion(String currentVersion) {
//设置条款
templateInstanceItemMapper . selectList ( new LambdaQueryWrapper < TemplateInstanceItemDO > ( )
. eq ( TemplateInstanceItemDO : : getInscId , id ) ) . forEach ( templateInstanceItemDO - > {
TemplateInstanceItemDO newTemplateInstanceItemDO = new TemplateInstanceItemDO ( ) ;
newTemplateInstanceItemDO . setInscId ( String . valueOf ( newTpInstanceDO . getId ( ) ) ) ;
newTemplateInstanceItemDO . setItmId ( templateInstanceItemDO . getItmId ( ) ) ;
newTemplateInstanceItemDO . setVal ( templateInstanceItemDO . getVal ( ) ) ;
templateInstanceItemDOS . add ( newTemplateInstanceItemDO ) ;
TemplateInstanceItemDO newTemplateInstanceItemDO = new TemplateInstanceItemDO ( ) ;
newTemplateInstanceItemDO . setInscId ( String . valueOf ( newTpInstanceDO . getId ( ) ) ) ;
newTemplateInstanceItemDO . setItmId ( templateInstanceItemDO . getItmId ( ) ) ;
newTemplateInstanceItemDO . setVal ( templateInstanceItemDO . getVal ( ) ) ;
templateInstanceItemDOS . add ( newTemplateInstanceItemDO ) ;
} ) ;
//设置实例字段
templateInstanceDataMapper . selectList ( new LambdaQueryWrapper < TemplateInstanceDataDO > ( )
. eq ( TemplateInstanceDataDO : : getInscId , id ) ) . forEach ( templateInstanceDataDO - > {
TemplateInstanceDataDO newTemplateInstanceDataDO = new TemplateInstanceDataDO ( ) ;
newTemplateInstanceDataDO . setInscId ( String . valueOf ( newTpInstanceDO . getId ( ) ) ) ;
newTemplateInstanceDataDO . setFldKy ( templateInstanceDataDO . getFldKy ( ) ) ;
newTemplateInstanceDataDO . setFldVal ( templateInstanceDataDO . getFldVal ( ) ) ;
templateInstanceDataDOS . add ( newTemplateInstanceDataDO ) ;
TemplateInstanceDataDO newTemplateInstanceDataDO = new TemplateInstanceDataDO ( ) ;
newTemplateInstanceDataDO . setInscId ( String . valueOf ( newTpInstanceDO . getId ( ) ) ) ;
newTemplateInstanceDataDO . setFldKy ( templateInstanceDataDO . getFldKy ( ) ) ;
newTemplateInstanceDataDO . setFldVal ( templateInstanceDataDO . getFldVal ( ) ) ;
templateInstanceDataDOS . add ( newTemplateInstanceDataDO ) ;
} ) ;
templateInstanceDataMapper . insertBatch ( templateInstanceDataDOS ) ;
log . info ( " ==================实例字段插入成功,共插入【{}】条记录================== " , templateInstanceDataDOS . size ( ) ) ;
@@ -352,6 +356,7 @@ private String incrementVersion(String currentVersion) {
departmentInstanceRelativityMapper . insertBatch ( newDepartmentInstanceRelativityDOS ) ;
log . info ( " ==================部门实例关系插入成功,共插入【{}】条记录================== " , newDepartmentInstanceRelativityDOS . size ( ) ) ;
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils . toBean ( newTpInstanceDO , TemplateInstanceRespVO . class ) ;
log . info ( " ==================模板实例插入成功================== " ) ;
getDetailedInfo ( templateInstanceRespVO ) ;
return templateInstanceRespVO ;
}
@@ -361,7 +366,7 @@ private String incrementVersion(String currentVersion) {
validateTemplateInstanceExists ( Long . valueOf ( id ) ) ;
String ver = templateInstanceMapper . selectById ( id ) . getVer ( ) ;
String newVer = incrementVersion ( ver ) ;
return Map . of ( " version " , ver , " newVersion " , newVer ) ;
return Map . of ( " version " , ver , " newVersion " , newVer ) ;
}
@Override
@@ -378,11 +383,7 @@ private String incrementVersion(String currentVersion) {
return templateInstanceRespVOS ;
}
@Override
public Map < String , Object > saveFile ( MultipartFile file , String id ) {
return Map . of ( ) ;
}
@Override
@@ -392,6 +393,13 @@ private String incrementVersion(String currentVersion) {
templateInstanceRespVO . setTemplateInstanceDataRespVOS ( setTemplateInstanceDataRespVOS ( templateInstanceRespVO . getId ( ) ) ) ; // 实例字段
}
@Override
public boolean updateTemplateInstanceFileUrlByInstanceId ( String id , String params ) {
validateTemplateInstanceExists ( Long . valueOf ( id ) ) ;
LambdaUpdateWrapper < TemplateInstanceDO > updateWrapper = new LambdaUpdateWrapper < > ( ) ;
updateWrapper . eq ( TemplateInstanceDO : : getId , id ) . set ( TemplateInstanceDO : : getCntt , params ) ;
return templateInstanceMapper . update ( updateWrapper ) > 0 ;
}
// 实例条款值
private List < TemplateInstanceItemRespVO > setInstanceItemRespVOS ( Long id ) {
List < TemplateInstanceItemDO > templateInstanceItemDOS = templateInstanceItemMapper . selectList ( new LambdaQueryWrapper < TemplateInstanceItemDO > ( )
@@ -400,7 +408,7 @@ private String incrementVersion(String currentVersion) {
List < TemplateInstanceItemRespVO > templateInstanceItemRespVOS = BeanUtils . toBean ( templateInstanceItemDOS , TemplateInstanceItemRespVO . class ) ;
TmplItmMapper tmplItmMapper = SpringUtil . getBean ( TmplItmMapper . class ) ;
List < String > ids = templateInstanceItemRespVOS . stream ( ) . map ( TemplateInstanceItemRespVO : : getItmId ) . toList ( ) ;
if ( ids . isEmpty ( ) ) {
if ( ids . isEmpty ( ) ) {
return templateInstanceItemRespVOS ;
}
List < TmplItmDO > tmplItmDOS = tmplItmMapper . selectByIds ( ids ) ;
@@ -411,7 +419,7 @@ private String incrementVersion(String currentVersion) {
}
} ) ;
} ) ;
return templateInstanceItemRespVOS ;
return templateInstanceItemRespVOS ;
}
// 实例数据
@@ -428,6 +436,9 @@ private String incrementVersion(String currentVersion) {
boolean transitionAllowed = false ;
if ( deleteStatusEnum ! = null ) {
transitionAllowed = deleteStatusEnum . isTransitionAllowed ( TmplStsEnum . DRAFT . getCode ( ) ) ;
if ( ! transitionAllowed ) {
transitionAllowed = deleteStatusEnum . isTransitionAllowed ( TmplStsEnum . STOPPED . getCode ( ) ) ;
}
}
if ( ! transitionAllowed ) {
throw exception ( STATUS_OPERATION_FAIL ) ;
@@ -458,7 +469,8 @@ private String incrementVersion(String currentVersion) {
throw exception ( STATUS_OPERATION_FAIL ) ;
}
}
private String getCdg ( ) {
private String getCdg ( ) {
return " TP " + DateUtils . format ( new Date ( ) , " yyyyMMddHHmmssSSS " ) + RandomUtil . randomNumbers ( 4 ) ;
}
}