Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
5c5a87ea
You need to sign in or sign up before continuing.
Commit
5c5a87ea
authored
Jan 14, 2025
by
chenyuxi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 不购买商险审核代码提交
parent
5b0899d4
Show whitespace changes
Inline
Side-by-side
Showing
136 changed files
with
9397 additions
and
10 deletions
+9397
-10
pom.xml
pom.xml
+1
-0
pom.xml
yifu-common/pom.xml
+1
-0
CacheConstants.java
...oud/plus/v1/yifu/common/core/constant/CacheConstants.java
+3
-0
CommonConstants.java
...ud/plus/v1/yifu/common/core/constant/CommonConstants.java
+14
-0
ServiceNameConstants.java
...us/v1/yifu/common/core/constant/ServiceNameConstants.java
+2
-0
Common.java
.../com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java
+31
-0
BeanCopyUtils.java
...oud/plus/v1/yifu/common/core/util/bean/BeanCopyUtils.java
+36
-0
pom.xml
yifu-common/yifu-common-dapr/pom.xml
+13
-1
DaprProcessProperties.java
...lus/v1/yifu/common/dapr/config/DaprProcessProperties.java
+30
-0
ProcessDaprUtils.java
...cloud/plus/v1/yifu/common/dapr/util/ProcessDaprUtils.java
+21
-0
pom.xml
yifu-common/yifu-common-process/pom.xml
+49
-0
ProcessConstants.java
...cloud/plus/v1/yifu/process/constant/ProcessConstants.java
+24
-0
TNodePrimission.java
...fu/cloud/plus/v1/yifu/process/entity/TNodePrimission.java
+94
-0
TNodeReaderPromission.java
...ud/plus/v1/yifu/process/entity/TNodeReaderPromission.java
+87
-0
TNodeRoute.java
...om/yifu/cloud/plus/v1/yifu/process/entity/TNodeRoute.java
+123
-0
TNodeRouteCondition.java
...loud/plus/v1/yifu/process/entity/TNodeRouteCondition.java
+61
-0
TNodeTransferConfig.java
...loud/plus/v1/yifu/process/entity/TNodeTransferConfig.java
+65
-0
TProcessNode.java
.../yifu/cloud/plus/v1/yifu/process/entity/TProcessNode.java
+141
-0
CommonProcessUserUtil.java
...loud/plus/v1/yifu/process/util/CommonProcessUserUtil.java
+62
-0
ExpressionUtil.java
.../yifu/cloud/plus/v1/yifu/process/util/ExpressionUtil.java
+75
-0
ProcessAuditUtil.java
...ifu/cloud/plus/v1/yifu/process/util/ProcessAuditUtil.java
+245
-0
DeleteProcessIdsVo.java
...ifu/cloud/plus/v1/yifu/process/vo/DeleteProcessIdsVo.java
+32
-0
ProcessVo.java
...ava/com/yifu/cloud/plus/v1/yifu/process/vo/ProcessVo.java
+38
-0
TNodePrimissionVo.java
...yifu/cloud/plus/v1/yifu/process/vo/TNodePrimissionVo.java
+20
-0
TNodeReaderPromissionVo.java
...loud/plus/v1/yifu/process/vo/TNodeReaderPromissionVo.java
+20
-0
TApprovalRecord.java
...cloud/plus/v1/yifu/insurances/entity/TApprovalRecord.java
+123
-0
TAuditCopyInfo.java
.../cloud/plus/v1/yifu/insurances/entity/TAuditCopyInfo.java
+86
-0
TAuditNodeProocess.java
...ud/plus/v1/yifu/insurances/entity/TAuditNodeProocess.java
+105
-0
TInsuranceUnpurchaseApply.java
.../v1/yifu/insurances/entity/TInsuranceUnpurchaseApply.java
+2
-4
TApprovalRecordSearchVo.java
...d/plus/v1/yifu/insurances/vo/TApprovalRecordSearchVo.java
+42
-0
TApprovalRecordController.java
...yifu/insurances/controller/TApprovalRecordController.java
+121
-0
TAuditCopyInfoController.java
.../yifu/insurances/controller/TAuditCopyInfoController.java
+80
-0
TAuditNodeProocessController.java
...u/insurances/controller/TAuditNodeProocessController.java
+80
-0
TInsuranceUnpurchaseApplyController.java
...ances/controller/TInsuranceUnpurchaseApplyController.java
+123
-0
TApprovalRecordMapper.java
...u/insurances/mapper/insurances/TApprovalRecordMapper.java
+36
-0
TAuditCopyInfoMapper.java
...fu/insurances/mapper/insurances/TAuditCopyInfoMapper.java
+20
-0
TAuditNodeProocessMapper.java
...nsurances/mapper/insurances/TAuditNodeProocessMapper.java
+19
-0
TInsuranceUnpurchaseApplyMapper.java
...es/mapper/insurances/TInsuranceUnpurchaseApplyMapper.java
+46
-0
TApprovalRecordService.java
.../insurances/service/insurance/TApprovalRecordService.java
+38
-0
TAuditCopyInfoService.java
...u/insurances/service/insurance/TAuditCopyInfoService.java
+15
-0
TAuditNodeProocessService.java
...surances/service/insurance/TAuditNodeProocessService.java
+17
-0
TInsuranceUnpurchaseApplyService.java
...s/service/insurance/TInsuranceUnpurchaseApplyService.java
+36
-0
AbastractAuditProcess.java
...urances/service/insurance/impl/AbastractAuditProcess.java
+566
-0
TApprovalRecordServiceImpl.java
...es/service/insurance/impl/TApprovalRecordServiceImpl.java
+54
-0
TAuditCopyInfoServiceImpl.java
...ces/service/insurance/impl/TAuditCopyInfoServiceImpl.java
+20
-0
TAuditNodeProocessServiceImpl.java
...service/insurance/impl/TAuditNodeProocessServiceImpl.java
+22
-0
TInsuranceUnpurchaseApplyServiceImpl.java
.../insurance/impl/TInsuranceUnpurchaseApplyServiceImpl.java
+118
-0
TInsuranceUnpurchaseApplyAuditProcess.java
...e/impl/process/TInsuranceUnpurchaseApplyAuditProcess.java
+229
-0
application-test.yml
...fu-insurances-biz/src/main/resources/application-test.yml
+18
-1
TApprovalRecordMapper.xml
...ain/resources/mapper/insurances/TApprovalRecordMapper.xml
+166
-0
TAuditCopyInfoMapper.xml
...main/resources/mapper/insurances/TAuditCopyInfoMapper.xml
+85
-0
TAuditNodeProocessMapper.xml
.../resources/mapper/insurances/TAuditNodeProocessMapper.xml
+105
-0
TInsuranceUnpurchaseApplyMapper.xml
...ces/mapper/insurances/TInsuranceUnpurchaseApplyMapper.xml
+70
-4
.gitignore
yifu-process/.gitignore
+62
-0
pom.xml
yifu-process/pom.xml
+19
-0
pom.xml
yifu-process/yifu-process-api/pom.xml
+33
-0
TDelayNodeConfig.java
...u/cloud/plus/v1/yifu/process/entity/TDelayNodeConfig.java
+48
-0
TNodeConfig.java
...m/yifu/cloud/plus/v1/yifu/process/entity/TNodeConfig.java
+50
-0
TNodeTimeoutConfig.java
...cloud/plus/v1/yifu/process/entity/TNodeTimeoutConfig.java
+51
-0
TProcess.java
.../com/yifu/cloud/plus/v1/yifu/process/entity/TProcess.java
+72
-0
TProcessApprovalConf.java
...oud/plus/v1/yifu/process/entity/TProcessApprovalConf.java
+68
-0
TServiceTransferConfig.java
...d/plus/v1/yifu/process/entity/TServiceTransferConfig.java
+55
-0
CheckNodeVo.java
...a/com/yifu/cloud/plus/v1/yifu/process/vo/CheckNodeVo.java
+28
-0
TProcessViewVo.java
...om/yifu/cloud/plus/v1/yifu/process/vo/TProcessViewVo.java
+52
-0
Dockerfile
yifu-process/yifu-process-biz/Dockerfile
+15
-0
build-prd.sh
yifu-process/yifu-process-biz/build-prd.sh
+2
-0
build-test.sh
yifu-process/yifu-process-biz/build-test.sh
+2
-0
build.sh
yifu-process/yifu-process-biz/build.sh
+3
-0
pom.xml
yifu-process/yifu-process-biz/pom.xml
+147
-0
YifuProcessApplication.java
...fu/cloud/plus/v1/yifu/process/YifuProcessApplication.java
+20
-0
ProcessDataSourceConfig.java
.../plus/v1/yifu/process/config/ProcessDataSourceConfig.java
+86
-0
TDelayNodeConfigController.java
...1/yifu/process/controller/TDelayNodeConfigController.java
+97
-0
TNodeConfigController.java
...lus/v1/yifu/process/controller/TNodeConfigController.java
+97
-0
TNodePrimissionController.java
...v1/yifu/process/controller/TNodePrimissionController.java
+115
-0
TNodeReaderPromissionController.java
...u/process/controller/TNodeReaderPromissionController.java
+97
-0
TNodeRouteConditionController.java
...ifu/process/controller/TNodeRouteConditionController.java
+97
-0
TNodeRouteController.java
...plus/v1/yifu/process/controller/TNodeRouteController.java
+113
-0
TNodeTimeoutConfigController.java
...yifu/process/controller/TNodeTimeoutConfigController.java
+97
-0
TNodeTransferConfigController.java
...ifu/process/controller/TNodeTransferConfigController.java
+97
-0
TProcessApprovalConfController.java
...fu/process/controller/TProcessApprovalConfController.java
+165
-0
TProcessController.java
...d/plus/v1/yifu/process/controller/TProcessController.java
+215
-0
TProcessNodeController.java
...us/v1/yifu/process/controller/TProcessNodeController.java
+130
-0
TServiceTransferConfigController.java
.../process/controller/TServiceTransferConfigController.java
+97
-0
TDelayNodeConfigMapper.java
...d/plus/v1/yifu/process/mapper/TDelayNodeConfigMapper.java
+28
-0
TNodeConfigMapper.java
.../cloud/plus/v1/yifu/process/mapper/TNodeConfigMapper.java
+27
-0
TNodePrimissionMapper.java
...ud/plus/v1/yifu/process/mapper/TNodePrimissionMapper.java
+36
-0
TNodeReaderPromissionMapper.java
...s/v1/yifu/process/mapper/TNodeReaderPromissionMapper.java
+36
-0
TNodeRouteConditionMapper.java
...lus/v1/yifu/process/mapper/TNodeRouteConditionMapper.java
+28
-0
TNodeRouteMapper.java
...u/cloud/plus/v1/yifu/process/mapper/TNodeRouteMapper.java
+35
-0
TNodeTimeoutConfigMapper.java
...plus/v1/yifu/process/mapper/TNodeTimeoutConfigMapper.java
+28
-0
TNodeTransferConfigMapper.java
...lus/v1/yifu/process/mapper/TNodeTransferConfigMapper.java
+28
-0
TProcessApprovalConfMapper.java
...us/v1/yifu/process/mapper/TProcessApprovalConfMapper.java
+26
-0
TProcessMapper.java
...ifu/cloud/plus/v1/yifu/process/mapper/TProcessMapper.java
+28
-0
TProcessNodeMapper.java
...cloud/plus/v1/yifu/process/mapper/TProcessNodeMapper.java
+35
-0
TServiceTransferConfigMapper.java
.../v1/yifu/process/mapper/TServiceTransferConfigMapper.java
+28
-0
TDelayNodeConfigService.java
...plus/v1/yifu/process/service/TDelayNodeConfigService.java
+25
-0
TNodeConfigService.java
...loud/plus/v1/yifu/process/service/TNodeConfigService.java
+25
-0
TNodePrimissionService.java
.../plus/v1/yifu/process/service/TNodePrimissionService.java
+34
-0
TNodeReaderPromissionService.java
...v1/yifu/process/service/TNodeReaderPromissionService.java
+33
-0
TNodeRouteConditionService.java
...s/v1/yifu/process/service/TNodeRouteConditionService.java
+25
-0
TNodeRouteService.java
...cloud/plus/v1/yifu/process/service/TNodeRouteService.java
+33
-0
TNodeTimeoutConfigService.java
...us/v1/yifu/process/service/TNodeTimeoutConfigService.java
+25
-0
TNodeTransferConfigService.java
...s/v1/yifu/process/service/TNodeTransferConfigService.java
+25
-0
TProcessApprovalConfService.java
.../v1/yifu/process/service/TProcessApprovalConfService.java
+26
-0
TProcessNodeService.java
...oud/plus/v1/yifu/process/service/TProcessNodeService.java
+33
-0
TProcessService.java
...u/cloud/plus/v1/yifu/process/service/TProcessService.java
+85
-0
TServiceTransferConfigService.java
...1/yifu/process/service/TServiceTransferConfigService.java
+25
-0
TDelayNodeConfigServiceImpl.java
...ifu/process/service/impl/TDelayNodeConfigServiceImpl.java
+32
-0
TNodeConfigServiceImpl.java
.../v1/yifu/process/service/impl/TNodeConfigServiceImpl.java
+31
-0
TNodePrimissionServiceImpl.java
...yifu/process/service/impl/TNodePrimissionServiceImpl.java
+43
-0
TNodeReaderPromissionServiceImpl.java
...rocess/service/impl/TNodeReaderPromissionServiceImpl.java
+43
-0
TNodeRouteConditionServiceImpl.java
.../process/service/impl/TNodeRouteConditionServiceImpl.java
+31
-0
TNodeRouteServiceImpl.java
...s/v1/yifu/process/service/impl/TNodeRouteServiceImpl.java
+43
-0
TNodeTimeoutConfigServiceImpl.java
...u/process/service/impl/TNodeTimeoutConfigServiceImpl.java
+31
-0
TNodeTransferConfigServiceImpl.java
.../process/service/impl/TNodeTransferConfigServiceImpl.java
+31
-0
TProcessApprovalConfServiceImpl.java
...process/service/impl/TProcessApprovalConfServiceImpl.java
+192
-0
TProcessNodeServiceImpl.java
...v1/yifu/process/service/impl/TProcessNodeServiceImpl.java
+43
-0
TProcessServiceImpl.java
...lus/v1/yifu/process/service/impl/TProcessServiceImpl.java
+1012
-0
TServiceTransferConfigServiceImpl.java
...ocess/service/impl/TServiceTransferConfigServiceImpl.java
+31
-0
application-dev.yml
...s/yifu-process-biz/src/main/resources/application-dev.yml
+32
-0
application-prd.yml
...s/yifu-process-biz/src/main/resources/application-prd.yml
+29
-0
application-test.yml
.../yifu-process-biz/src/main/resources/application-test.yml
+32
-0
application.yml
...ocess/yifu-process-biz/src/main/resources/application.yml
+77
-0
logback-spring.xml
...ss/yifu-process-biz/src/main/resources/logback-spring.xml
+98
-0
TDelayNodeConfigMapper.xml
...-biz/src/main/resources/mapper/TDelayNodeConfigMapper.xml
+49
-0
TNodeConfigMapper.xml
...ocess-biz/src/main/resources/mapper/TNodeConfigMapper.xml
+47
-0
TNodePrimissionMapper.xml
...s-biz/src/main/resources/mapper/TNodePrimissionMapper.xml
+87
-0
TNodeReaderPromissionMapper.xml
...src/main/resources/mapper/TNodeReaderPromissionMapper.xml
+79
-0
TNodeRouteConditionMapper.xml
...z/src/main/resources/mapper/TNodeRouteConditionMapper.xml
+52
-0
TNodeRouteMapper.xml
...rocess-biz/src/main/resources/mapper/TNodeRouteMapper.xml
+123
-0
TNodeTimeoutConfigMapper.xml
...iz/src/main/resources/mapper/TNodeTimeoutConfigMapper.xml
+52
-0
TNodeTransferConfigMapper.xml
...z/src/main/resources/mapper/TNodeTransferConfigMapper.xml
+62
-0
TProcessApprovalConfMapper.xml
.../src/main/resources/mapper/TProcessApprovalConfMapper.xml
+52
-0
TProcessMapper.xml
...-process-biz/src/main/resources/mapper/TProcessMapper.xml
+95
-0
TProcessNodeMapper.xml
...cess-biz/src/main/resources/mapper/TProcessNodeMapper.xml
+99
-0
TServiceTransferConfigMapper.xml
...rc/main/resources/mapper/TServiceTransferConfigMapper.xml
+52
-0
No files found.
pom.xml
View file @
5c5a87ea
...
...
@@ -114,6 +114,7 @@
<module>
yifu-msg
</module>
<module>
yifu-permission
</module>
<module>
yifu-ekp
</module>
<module>
yifu-process
</module>
</modules>
<dependencyManagement>
...
...
yifu-common/pom.xml
View file @
5c5a87ea
...
...
@@ -42,5 +42,6 @@
<module>
yifu-common-swagger
</module>
<module>
yifu-common-ldap
</module>
<module>
yifu-common-ekp
</module>
<module>
yifu-common-process
</module>
</modules>
</project>
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CacheConstants.java
View file @
5c5a87ea
...
...
@@ -202,4 +202,7 @@ public interface CacheConstants {
public
static
final
String
MVP_TOC_PHONE_CODE_PREFIX
=
"MVP_TOC_PHONE_CODE_"
;
public
static
final
String
WX_JSAPI_TICKET
=
"WX_JSAPI_TICKET"
;
// 商险不购买审批流分布式锁key InsuranceUnpurchase
public
static
final
String
INSURANCEUNPURCHASE_PROCESS_CACHE
=
ServiceNameConstants
.
SERVICE_NAME_MVP
+
"_"
+
"ProcessCache:InsuranceUnpurchase"
;
}
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java
View file @
5c5a87ea
...
...
@@ -636,4 +636,18 @@ public interface CommonConstants {
String
USER_DIR
=
"user.dir"
;
String
DOUBLE_LINE
=
"//"
;
public
static
final
int
THIRTY_INT
=
30
;
public
static
final
int
TWENTY_SEVEN_INT
=
27
;
/**
*未删除标志
**/
public
static
final
String
NOT_DELETE_FLAG
=
"0"
;
/**
*已删除标志
**/
public
static
final
String
DELETE_FLAG
=
"1"
;
//单条数据检索SQL
public
static
final
String
SQL_LIMIT_ONE
=
" limit 1 "
;
}
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/ServiceNameConstants.java
View file @
5c5a87ea
...
...
@@ -50,4 +50,6 @@ public interface ServiceNameConstants {
* hr b端Client id
**/
String
CLIENT_ID_HR_B
=
"hrCustomer"
;
String
SERVICE_NAME_MVP
=
"mvp"
;
}
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java
View file @
5c5a87ea
...
...
@@ -93,6 +93,37 @@ public class Common {
return
false
;
}
/**
* 集合不为空
*
* @param collection
* @return
*/
public
static
boolean
isNotKong
(
Collection
collection
)
{
return
null
!=
collection
&&
collection
.
size
()
>
0
;
}
/**
* obj不是null
*
* @param obj
* @return
* @author: fxj
*/
public
static
boolean
isNotKong
(
Object
obj
)
{
return
null
!=
obj
;
}
/**
* 集合为空
*
* @param collection
* @return
*/
public
static
boolean
isEmpty
(
Collection
collection
)
{
return
null
==
collection
||
collection
.
size
()
==
0
;
}
// 金额验证
public
static
boolean
isNumber
(
String
str
)
{
// 判断小数点后2位的数字的正则表达式
...
...
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/bean/BeanCopyUtils.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
core
.
util
.
bean
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
import
java.util.HashSet
;
import
java.util.Set
;
/**
* @auther wangan
* @date 2019/12/3
* bean复制,忽视空串
*/
public
class
BeanCopyUtils
{
public
static
String
[]
getNullPropertyNames
(
Object
source
)
{
final
BeanWrapper
src
=
new
BeanWrapperImpl
(
source
);
java
.
beans
.
PropertyDescriptor
[]
pds
=
src
.
getPropertyDescriptors
();
Set
<
String
>
emptyNames
=
new
HashSet
<>();
for
(
java
.
beans
.
PropertyDescriptor
pd
:
pds
)
{
Object
srcValue
=
src
.
getPropertyValue
(
pd
.
getName
());
if
(
srcValue
==
null
)
{
emptyNames
.
add
(
pd
.
getName
());
}
}
String
[]
result
=
new
String
[
emptyNames
.
size
()];
return
emptyNames
.
toArray
(
result
);
}
public
static
void
copyProperties
(
Object
src
,
Object
target
)
{
BeanUtils
.
copyProperties
(
src
,
target
,
getNullPropertyNames
(
src
));
}
}
yifu-common/yifu-common-dapr/pom.xml
View file @
5c5a87ea
...
...
@@ -62,6 +62,18 @@
<version>
1.0.0
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-process-api
</artifactId>
<version>
1.0.0
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-process
</artifactId>
<version>
1.0.0
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<properties>
...
...
yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/config/DaprProcessProperties.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
dapr
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.PropertySource
;
import
org.springframework.stereotype.Component
;
/**
* @author chenyuxi
* @date 2025/01/09
* @version 1.7.5
*/
@Data
@Component
@PropertySource
(
"classpath:daprConfig.properties"
)
@ConfigurationProperties
(
value
=
"dapr.process"
,
ignoreInvalidFields
=
false
)
public
class
DaprProcessProperties
{
String
appUrl
;
String
appId
;
String
appPort
;
String
httpPort
;
String
grpcPort
;
String
metricsPort
;
}
yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/util/ProcessDaprUtils.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
dapr
.
util
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprProcessProperties
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
/**
* @Author huyc
* @Date 2022-07-18
* @Description
* @Version 1.0
*/
@Log4j2
@EnableConfigurationProperties
(
DaprProcessProperties
.
class
)
public
class
ProcessDaprUtils
{
@Autowired
private
DaprProcessProperties
daprProcessProperties
;
}
yifu-common/yifu-common-process/pom.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns=
"http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common
</artifactId>
<version>
1.0.0
</version>
</parent>
<artifactId>
yifu-common-process
</artifactId>
<packaging>
jar
</packaging>
<description>
审批流程-工具类
</description>
<dependencies>
<!-- core 工具类 -->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-core
</artifactId>
</dependency>
<!--UPMS API-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-upms-api
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot
</artifactId>
</dependency>
<!--swagger 注解-->
<dependency>
<groupId>
io.swagger.core.v3
</groupId>
<artifactId>
swagger-annotations
</artifactId>
</dependency>
<!--mybatis 依赖-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-mybatis
</artifactId>
</dependency>
<!-- 编译表达式 -->
<dependency>
<groupId>
com.googlecode.aviator
</groupId>
<artifactId>
aviator
</artifactId>
<version>
2.0
</version>
</dependency>
</dependencies>
</project>
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/constant/ProcessConstants.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
constant
;
/**
* @auther wangan
* @date 2020/9/17
*/
public
class
ProcessConstants
{
//审批中心各个节点类型
public
static
final
String
PROCESS_NODE_TYPE_CHOICE
=
"choice"
;
public
static
final
String
PROCESS_NODE_BEGIN
=
"begin"
;
public
static
final
String
PROCESS_NODE_END
=
"end"
;
public
static
final
String
PROCESS_NODE_EMBED
=
"embed"
;
public
static
final
String
PROCESS_NODE_SERVICE
=
"service"
;
// 【含风险项目商险不购买申请流程】条件判断审批节点名称
public
static
final
String
PROCESS_NODE_INSURANCEUNPURCHASE_REASON_TYPE
=
"是否为已购买社保"
;
public
static
final
String
PROCESS_NODE_INSURANCEUNPURCHASE_DEPT_PROPERTY
=
"是否属于子分公司"
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodePrimission.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_primission"
)
@Schema
(
description
=
"流程处理权限表(允许多个,多个代表有主办和经办)"
)
public
class
TNodePrimission
extends
Model
<
TNodePrimission
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@Length
(
max
=
255
,
message
=
"指定用户处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定用户处理节点"
)
private
String
user
;
@Length
(
max
=
255
,
message
=
"指定权限处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定权限处理节点"
)
private
String
role
;
@Length
(
max
=
255
,
message
=
"指定职位处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定职位处理节点"
)
private
String
post
;
@Length
(
max
=
255
,
message
=
"指定组织处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定组织处理节点"
)
private
String
organization
;
@NotBlank
(
message
=
"与流程申请人关系(0发起人部门主管/1同区域最高级/2所在单位最高级)不能为空"
)
@Length
(
max
=
1
,
message
=
"与流程申请人关系(0发起人部门主管/1同区域最高级/2所在单位最高级)不能超过1个字符"
)
@Schema
(
description
=
"与流程申请人关系(0发起人部门主管/1同区域最高级/2所在单位最高级)"
)
private
String
realationCreateUser
;
@NotBlank
(
message
=
"标识(系统自动生成MD5串)不能为空"
)
@Length
(
max
=
255
,
message
=
"标识(系统自动生成MD5串)不能超过255个字符"
)
@Schema
(
description
=
"标识(系统自动生成MD5串)"
)
private
String
logoTitle
;
@NotBlank
(
message
=
"节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"节点ID不能超过255个字符"
)
@Schema
(
description
=
"节点ID"
)
private
String
nodeId
;
@NotBlank
(
message
=
"办理类型(0主办/1经办;如果为经办,则必须有主办权限存在)不能为空"
)
@Length
(
max
=
1
,
message
=
"办理类型(0主办/1经办;如果为经办,则必须有主办权限存在)不能超过1个字符"
)
@Schema
(
description
=
"办理类型(0主办/1经办;如果为经办,则必须有主办权限存在)"
)
private
String
dealType
;
@NotBlank
(
message
=
"流程ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程ID不能超过255个字符"
)
@Schema
(
description
=
"流程ID"
)
private
String
processId
;
@NotBlank
(
message
=
"节点编码不能为空"
)
@Length
(
max
=
255
,
message
=
"节点编码不能超过255个字符"
)
@Schema
(
description
=
"节点编码-关联节点"
)
private
String
nodeLogoTitle
;
@Length
(
max
=
1
,
message
=
"类型:不能超过1个字符"
)
@Schema
(
description
=
"类型:0指定职位;1与申请人关系;2指定权限;3指定用户;4指定组织;5指定角色(crm);6指定事业部配置表"
)
private
Integer
type
;
@Length
(
max
=
20
,
message
=
"指定角色id不能超过20个字符"
)
@Schema
(
description
=
"指定角色id"
)
private
String
approvalRole
;
@Length
(
max
=
10
,
message
=
"指定事业部配置表负责人标识不能超过10个字符"
)
@Schema
(
description
=
"指定事业部配置表负责人标识"
)
private
String
divisionIdentification
;
@Length
(
max
=
1
,
message
=
"是否允许直接通过不能超过1个字符"
)
@Schema
(
description
=
"是否允许直接通过(0:不允许,1允许)"
)
private
String
isPass
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeReaderPromission.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 流程审阅权限表(抄送/仅有查看权限)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_reader_promission"
)
@Schema
(
description
=
"流程审阅权限表(抄送/仅有查看权限)"
)
public
class
TNodeReaderPromission
extends
Model
<
TNodeReaderPromission
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@Length
(
max
=
255
,
message
=
"指定用户处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定用户处理节点"
)
private
String
user
;
@Length
(
max
=
255
,
message
=
"指定权限处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定权限处理节点"
)
private
String
role
;
@Length
(
max
=
255
,
message
=
"指定职位处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定职位处理节点"
)
private
String
post
;
@Length
(
max
=
255
,
message
=
"指定组织处理节点不能超过255个字符"
)
@Schema
(
description
=
"指定组织处理节点"
)
private
String
organization
;
@NotBlank
(
message
=
"与流程申请人关系(0上级/1同区域最高级/2同部门最高级)不能为空"
)
@Length
(
max
=
1
,
message
=
"与流程申请人关系(0上级/1同区域最高级/2同部门最高级)不能超过1个字符"
)
@Schema
(
description
=
"与流程申请人关系(0上级/1同区域最高级/2同部门最高级)"
)
private
String
realationCreateUser
;
@NotBlank
(
message
=
"标识(系统自动生成MD5串)不能为空"
)
@Length
(
max
=
255
,
message
=
"标识(系统自动生成MD5串)不能超过255个字符"
)
@Schema
(
description
=
"标识(系统自动生成MD5串)"
)
private
String
logoTitle
;
@NotBlank
(
message
=
"节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"节点ID不能超过255个字符"
)
@Schema
(
description
=
"节点ID"
)
private
String
nodeId
;
@NotBlank
(
message
=
"流程ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程ID不能超过255个字符"
)
@Schema
(
description
=
"流程ID"
)
private
String
processId
;
@NotBlank
(
message
=
"节点编码不能为空"
)
@Length
(
max
=
255
,
message
=
"节点编码不能超过255个字符"
)
@Schema
(
description
=
"节点编码"
)
private
String
nodeLogoTitle
;
@Length
(
max
=
1
,
message
=
"类型:不能超过1个字符"
)
@Schema
(
description
=
"类型:0指定职位;1与申请人关系;2指定权限;3指定用户;4指定组织;5指定角色(crm)"
)
private
Integer
type
;
@Length
(
max
=
20
,
message
=
"指定角色id不能超过20个字符"
)
@Schema
(
description
=
"指定角色id"
)
private
String
approvalRole
;
@Length
(
max
=
20
,
message
=
"指定使用的代码自定义判断的标识字段不能超过20个字符"
)
@Schema
(
description
=
"指定使用的代码自定义判断的标识字段"
)
private
String
customizeField
;
@Schema
(
description
=
"是否代码自定义"
)
private
String
isCustomize
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeRoute.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* 流程路由表(节点与节点之间的路由关系)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_route"
)
@Schema
(
description
=
"流程路由表(节点与节点之间的路由关系)"
)
public
class
TNodeRoute
extends
Model
<
TNodeRoute
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程ID不能超过255个字符"
)
@Schema
(
description
=
"流程ID"
)
private
String
processId
;
@Length
(
max
=
255
,
message
=
"前置节点不能超过255个字符"
)
@Schema
(
description
=
"前置节点"
)
private
String
prewNode
;
@NotBlank
(
message
=
"下个节点不能为空"
)
@Length
(
max
=
255
,
message
=
"下个节点不能超过255个字符"
)
@Schema
(
description
=
"下个节点"
)
private
String
nextNode
;
@Length
(
max
=
1
,
message
=
"连线起点位置不能超过1个字符"
)
@Schema
(
description
=
"连线起点位置"
)
private
String
preNodeAnchor
;
@Length
(
max
=
1
,
message
=
"连线终点位置不能超过1个字符"
)
@Schema
(
description
=
"连线终点位置"
)
private
String
nextNodeAnchor
;
@Length
(
max
=
100
,
message
=
"元素的图形:不能超过100个字符"
)
@Schema
(
description
=
"元素的图形"
)
private
String
shape
;
@Length
(
max
=
255
,
message
=
"标识(系统自动生成MD5串)不能超过255个字符"
)
@Schema
(
description
=
"标识(系统自动生成MD5串)"
)
private
String
logoTitle
;
@NotBlank
(
message
=
"创建人不能为空"
)
@Length
(
max
=
255
,
message
=
"创建人不能超过255个字符"
)
@Schema
(
description
=
"创建人"
)
private
String
createUser
;
@Schema
(
description
=
"创建时间"
)
private
LocalDateTime
createDate
;
@Length
(
max
=
255
,
message
=
"更新人不能超过255个字符"
)
@Schema
(
description
=
"更新人"
)
private
String
updateUser
;
@Schema
(
description
=
"更新时间"
)
private
LocalDateTime
updateDate
;
@NotBlank
(
message
=
"路由名称(默认为“未命名”,添加时需要保存格式为:前置节点名称(to:下一节点名称))不能为空"
)
@Length
(
max
=
255
,
message
=
"路由名称(默认为“未命名”,添加时需要保存格式为:前置节点名称(to:下一节点名称))不能超过255个字符"
)
@Schema
(
description
=
"路由名称(默认为“未命名”,添加时需要保存格式为:前置节点名称(to:下一节点名称))"
)
private
String
name
;
@Length
(
max
=
255
,
message
=
"描述不能超过255个字符"
)
@Schema
(
description
=
"描述"
)
private
String
description
;
@Schema
(
description
=
"顺序号"
)
private
Integer
sequenceNo
;
@Length
(
max
=
255
,
message
=
"默认意见不能超过255个字符"
)
@Schema
(
description
=
"默认意见"
)
private
String
opinion
;
@NotBlank
(
message
=
"意见是否必填(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"意见是否必填(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"意见是否必填(0是/1否)"
)
private
String
opinionMustFlag
;
@NotBlank
(
message
=
"路由类型(1默认路由/2回退路由/3转交(转交不触发活动事件))不能为空"
)
@Length
(
max
=
1
,
message
=
"路由类型(1默认路由/2回退路由/3转交(转交不触发活动事件))不能超过1个字符"
)
@Schema
(
description
=
"路由类型(1默认路由/2回退路由/3转交(转交不触发活动事件))"
)
private
String
routeType
;
@NotBlank
(
message
=
"是否优先(0是/1否:仅在分支/并列下使用,单节点路由不存在优先级)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否优先(0是/1否:仅在分支/并列下使用,单节点路由不存在优先级)不能超过1个字符"
)
@Schema
(
description
=
"是否优先(0是/1否:仅在分支/并列下使用,单节点路由不存在优先级)"
)
private
String
priorityFlag
;
@NotBlank
(
message
=
"活动超时时自动流转(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"活动超时时自动流转(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"活动超时时自动流转(0是/1否)"
)
private
String
timeoutRoam
;
@NotBlank
(
message
=
"与上一活动处理人相同时自动流转(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"与上一活动处理人相同时自动流转(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"与上一活动处理人相同时自动流转(0是/1否)"
)
private
String
sameForPrew
;
@TableField
(
exist
=
false
)
List
<
TNodeRouteCondition
>
nodeRouteConditionList
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeRouteCondition.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 流程路由条件
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_route_condition"
)
@Schema
(
description
=
"流程路由条件"
)
public
class
TNodeRouteCondition
extends
Model
<
TNodeRouteCondition
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"条件字段不能为空"
)
@Length
(
max
=
255
,
message
=
"条件字段不能超过255个字符"
)
@Schema
(
description
=
"条件字段"
)
private
String
field
;
@NotBlank
(
message
=
"判断条件:大于/等于/大于等于/小于/小于等于/不等于/包含/不包含不能为空"
)
@Length
(
max
=
255
,
message
=
"判断条件:大于/等于/大于等于/小于/小于等于/不等于/包含/不包含不能超过255个字符"
)
@Schema
(
description
=
"判断条件:大于/等于/大于等于/小于/小于等于/不等于/包含/不包含"
)
private
String
conditions
;
@NotBlank
(
message
=
"参与判定的值(可能存在类型转换)不能为空"
)
@Length
(
max
=
255
,
message
=
"参与判定的值(可能存在类型转换)不能超过255个字符"
)
@Schema
(
description
=
"参与判定的值(可能存在类型转换)"
)
private
String
conditionValue
;
@NotBlank
(
message
=
"与其他条件之间的关系(0没有关系或单独条件/1或的关系/2并且关系)不能为空"
)
@Length
(
max
=
1
,
message
=
"与其他条件之间的关系(0没有关系或单独条件/1或的关系/2并且关系)不能超过1个字符"
)
@Schema
(
description
=
"与其他条件之间的关系(0没有关系或单独条件/1或的关系/2并且关系)"
)
private
String
realation
;
@NotBlank
(
message
=
"流程路由ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程路由ID不能超过255个字符"
)
@Schema
(
description
=
"流程路由ID"
)
private
String
nodeRouteId
;
@NotBlank
(
message
=
"类型:1.正常条件 2.正则表达式'不能为空"
)
@Length
(
max
=
255
,
message
=
"类型:1.正常条件 2.正则表达式255个字符"
)
@Schema
(
description
=
"类型:1.正常条件 2.正则表达式"
)
private
String
type
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeTransferConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 流程调用配置(子流程调用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_transfer_config"
)
@Schema
(
description
=
"流程调用配置(子流程调用)"
)
public
class
TNodeTransferConfig
extends
Model
<
TNodeTransferConfig
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程节点ID不能超过255个字符"
)
@Schema
(
description
=
"流程节点ID"
)
private
String
nodeId
;
@NotBlank
(
message
=
"流程ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程ID不能超过255个字符"
)
@Schema
(
description
=
"流程ID"
)
private
String
processId
;
@NotBlank
(
message
=
"调用方式(0同步/1异步)不能为空"
)
@Length
(
max
=
1
,
message
=
"调用方式(0同步/1异步)不能超过1个字符"
)
@Schema
(
description
=
"调用方式(0同步/1异步)"
)
private
String
transferType
;
@NotBlank
(
message
=
"是否拷贝数据(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否拷贝数据(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否拷贝数据(0是/1否)"
)
private
String
copyData
;
@NotBlank
(
message
=
"是否拷贝附件(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否拷贝附件(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否拷贝附件(0是/1否)"
)
private
String
copyAtta
;
@NotBlank
(
message
=
"启动者(0当前流程的启动者/1上一个活动的处理人/2指定一个启动者)不能为空"
)
@Length
(
max
=
1
,
message
=
"启动者(0当前流程的启动者/1上一个活动的处理人/2指定一个启动者)不能超过1个字符"
)
@Schema
(
description
=
"启动者(0当前流程的启动者/1上一个活动的处理人/2指定一个启动者)"
)
private
String
starterType
;
@Length
(
max
=
255
,
message
=
"启动者(STARTER_TYPE 为2时启用)不能超过255个字符"
)
@Schema
(
description
=
"启动者(STARTER_TYPE 为2时启用)"
)
private
String
starter
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TProcessNode.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 流程节点表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_process_node"
)
@Schema
(
description
=
"流程节点表"
)
public
class
TProcessNode
extends
Model
<
TProcessNode
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
/**
* 类型:{
* begin:开始
* end:结束
* cancel:取消
* choice:选择
* split:拆分
* parallel:并行
* merge:合并
* embed:流程调用
* delay:定时
* invoke:服务调用
* service:服务
* agent:脚本
* }
*/
@NotBlank
(
message
=
"类型:不能为空"
)
@Length
(
max
=
20
,
message
=
"类型:不能超过20个字符"
)
@Schema
(
description
=
"类型"
)
private
String
type
;
@NotBlank
(
message
=
"标识(自动生成MD5串)不能为空"
)
@Length
(
max
=
255
,
message
=
"标识(自动生成MD5串)不能超过255个字符"
)
@Schema
(
description
=
"标识(自动生成MD5串)"
)
private
String
logoTitle
;
@NotBlank
(
message
=
"节点名称不能为空"
)
@Length
(
max
=
255
,
message
=
"节点名称不能超过255个字符"
)
@Schema
(
description
=
"节点名称"
)
private
String
name
;
@Length
(
max
=
255
,
message
=
"节点描述不能超过255个字符"
)
@Schema
(
description
=
"节点描述"
)
private
String
description
;
@Length
(
max
=
255
,
message
=
"表单ID不能超过255个字符"
)
@Schema
(
description
=
"表单ID"
,
name
=
"form"
)
private
String
form
;
@NotBlank
(
message
=
"是否允许调度(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否允许调度(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否允许调度(0是/1否)"
)
private
String
allowDispatch
;
@NotBlank
(
message
=
"是否允许调度到此活动不能为空"
)
@Length
(
max
=
1
,
message
=
"是否允许调度到此活动不能超过1个字符"
)
@Schema
(
description
=
"是否允许调度到此活动"
)
private
String
allowThis
;
@NotBlank
(
message
=
"流程ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程ID不能超过255个字符"
)
@Schema
(
description
=
"流程ID"
)
private
String
processId
;
@NotBlank
(
message
=
"经办人是否允许办理完成后进入下一步(0允许/1不允许)不能为空"
)
@Length
(
max
=
1
,
message
=
"经办人是否允许办理完成后进入下一步(0允许/1不允许)不能超过1个字符"
)
@Schema
(
description
=
"经办人是否允许办理完成后进入下一步(0允许/1不允许)"
)
private
String
handleAllowNext
;
@NotBlank
(
message
=
"会签方式(0允许会签/1强制会签/2禁止会签)不能为空"
)
@Length
(
max
=
1
,
message
=
"会签方式(0允许会签/1强制会签/2禁止会签)不能超过1个字符"
)
@Schema
(
description
=
"会签方式(0允许会签/1强制会签/2禁止会签)"
)
private
String
countersign
;
@NotBlank
(
message
=
"回退方式(0不允许/1回退上一步/2回退至起点)不能为空"
)
@Length
(
max
=
1
,
message
=
"回退方式(0不允许/1回退上一步/2回退至起点)不能超过1个字符"
)
@Schema
(
description
=
"回退方式(0不允许/1回退上一步/2回退至起点)"
)
private
String
backType
;
@Length
(
max
=
100
,
message
=
"元素的图形:不能超过100个字符"
)
@Schema
(
description
=
"元素的图形"
)
private
String
shape
;
@Length
(
max
=
100
,
message
=
"节点大小:不能超过100个字符"
)
@Schema
(
description
=
"节点大小"
)
private
String
size
;
@Length
(
max
=
20
,
message
=
"X坐标:不能超过20个字符"
)
@Schema
(
description
=
"X坐标"
)
private
String
coordinatex
;
@Length
(
max
=
20
,
message
=
"Y坐标:不能超过20个字符"
)
@Schema
(
description
=
"Y坐标"
)
private
String
coordinatey
;
@Length
(
max
=
50
,
message
=
"颜色:不能超过50个字符"
)
@Schema
(
description
=
"颜色"
)
private
String
color
;
@TableField
(
exist
=
false
)
private
List
<
TNodePrimission
>
nodePrimissionList
=
new
ArrayList
<>();
@TableField
(
exist
=
false
)
private
List
<
TNodeReaderPromission
>
nodeReaderPromissionList
=
new
ArrayList
<>();
@TableField
(
exist
=
false
)
private
List
<
TNodeTransferConfig
>
nodeTransferConfigs
;
@Schema
(
description
=
"允许加签"
)
private
String
allowAddSign
;
/**
* 节点抄送权限列表(流程预览使用,将当前节点的抄送权限绑定在下一个节点上,因为当前的代码逻辑不返回抄送节点,有冲突)
* 【之后优化@TableField注解,不能在实体类里面直接用@TableField,要建一个包装类】
*/
@TableField
(
exist
=
false
)
private
List
<
TNodeReaderPromission
>
preNodeReaderPromissionList
=
new
ArrayList
<>();
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/util/CommonProcessUserUtil.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
util
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author chenyuxi
* @date 2020/9/22
* 通用流程工具类
*/
public
class
CommonProcessUserUtil
{
private
CommonProcessUserUtil
()
{
}
public
static
final
String
FEGIN_USER_FAIL
=
"调用用户服务失败"
;
public
static
final
String
FEGIN_USER_RETURN_FAIL
=
"调用用户服务回失败"
;
/**
* 获取crm部门审核人
* @param nodePrimission
* @param departId
* @return List<SysUser>
**/
public
static
List
<
SysUser
>
getDepartAuditUser
(
TNodePrimission
nodePrimission
,
String
departId
)
{
SysUser
remoteSysUser
=
null
;
List
<
SysUser
>
remoteSysUserList
=
new
ArrayList
<>();
if
(
CommonConstants
.
THREE_INT
==
nodePrimission
.
getType
().
intValue
())
{
//3.指定用户
if
(
Common
.
isEmpty
(
nodePrimission
.
getUser
()))
{
throw
new
CheckedException
(
"未查询当前流程权限对应的用户"
);
}
// 查找当前用户
// todo 通过用户id查询用户角色
// remoteSysUser = RemoteRequestUtil.getSysUser(remoteUserService, Integer.parseInt(nodePrimission.getUser()));
remoteSysUserList
.
add
(
remoteSysUser
);
}
else
if
(
CommonConstants
.
TWO_INT
==
nodePrimission
.
getType
().
intValue
())
{
//2.指定角色
if
(
Common
.
isEmpty
(
nodePrimission
.
getRole
()))
{
throw
new
CheckedException
(
"未查询当前流程对应的组织权限"
);
}
//如果下个节点是角色这要取下个角色是否存在
// remoteSysUser = RemoteRequestUtil.getUserManagerByRoleAndDepartId(remoteUserService, departId, nodePrimission.getRole());
remoteSysUserList
.
add
(
remoteSysUser
);
}
else
if
(
CommonConstants
.
FIVE_INT
==
nodePrimission
.
getType
().
intValue
()){
// 5.指定角色(crm)
if
(
Common
.
isEmpty
(
nodePrimission
.
getApprovalRole
()))
{
throw
new
CheckedException
(
"未查询当前节点配置的审核角色"
);
}
// remoteSysUserList = RemoteRequestUtil.getUserByRoleIdForCrm(remoteUserService, departId, nodePrimission.getApprovalRole());
}
return
remoteSysUserList
;
}
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/util/ExpressionUtil.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
lombok.extern.slf4j.Slf4j
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @auther wangan
* @date 2020/9/2
* goole表达式
*/
@Slf4j
public
class
ExpressionUtil
{
private
ExpressionUtil
()
{
}
/**
* @param expression
* @param obj
* @Author: wangan
* @Date: 2020/9/2
* @Description: 根据表达式判断数据大小
* @return: boolean
**/
public
static
boolean
isMatchExpression
(
String
expression
,
Object
obj
)
{
Map
<
String
,
Object
>
env
=
new
HashMap
<>();
if
(
obj
instanceof
BigDecimal
)
{
env
.
put
(
"x"
,
Double
.
parseDouble
(
obj
.
toString
()));
}
else
{
env
.
put
(
"x"
,
obj
.
toString
());
}
try
{
return
(
Boolean
)
AviatorEvaluator
.
execute
(
expression
,
env
);
}
catch
(
Exception
e
)
{
log
.
error
(
"表达式数据{},表达式{}"
,
expression
,
JSON
.
toJSONString
(
env
));
log
.
error
(
"执行异常"
,
e
);
throw
new
CheckedException
(
"表达式执行出错"
);
}
}
/**
* @param expression
* @param obj1
* @param obj2
* @Author: wangan
* @Date: 2020/9/2
* @Description: 根据表达式判断数据大小
* @return: boolean
**/
public
static
boolean
isMatchExpression
(
String
expression
,
Object
obj1
,
Object
obj2
)
{
Map
<
String
,
Object
>
env
=
new
HashMap
<>();
if
(
obj1
instanceof
BigDecimal
)
{
env
.
put
(
"x"
,
Double
.
parseDouble
(
obj1
.
toString
()));
}
else
{
env
.
put
(
"x"
,
obj1
.
toString
());
}
if
(
obj2
instanceof
BigDecimal
)
{
env
.
put
(
"y"
,
Double
.
parseDouble
(
obj2
.
toString
()));
}
else
{
env
.
put
(
"y"
,
obj2
.
toString
());
}
try
{
return
(
Boolean
)
AviatorEvaluator
.
execute
(
expression
,
env
);
}
catch
(
Exception
e
)
{
log
.
error
(
"表达式数据{},表达式{}"
,
expression
,
JSON
.
toJSONString
(
env
));
log
.
error
(
"执行异常"
,
e
);
throw
new
CheckedException
(
"表达式执行出错"
);
}
}
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/util/ProcessAuditUtil.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
util
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.process.constant.ProcessConstants
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
import
java.util.List
;
/**
* @auther wangan
* @date 2020/9/17
*/
@Slf4j
public
class
ProcessAuditUtil
{
private
ProcessAuditUtil
()
{
}
public
static
final
String
END_NODE_NO_FOUND
=
"未找到结束节点"
;
public
static
final
String
END_PRE_NODE_NO_FOUND
=
"未找到结束节点前一个节点"
;
public
static
final
String
BEGIN_NODE_NO_FOUND
=
"未找到开始节点"
;
/**
* @param
* @param processId
* @Author: wangan
* @Date: 2020/9/21
* @Description: 获通过流程id, 获取流程
* @return: com.yifu.cloud.plus.v1.process.api.vo.ProcessVo
**/
public
static
ProcessVo
getProcessVo
(
String
processId
)
{
// todo 改成dapr请求
//R<ProcessVo> processVoR = remoteProcessService.getProcessVoByName(processId, SecurityConstants.FROM_IN);
R
<
ProcessVo
>
processVoR
=
new
R
<>();
if
(
processVoR
==
null
)
{
throw
new
CheckedException
(
"调用流程服务返回为空"
);
}
if
(
CommonConstants
.
SUCCESS
!=
processVoR
.
getCode
())
{
throw
new
CheckedException
(
"调用流程服务返回失败"
);
}
ProcessVo
processVo
=
processVoR
.
getData
();
if
(
processVo
==
null
)
{
throw
new
CheckedException
(
"调用流程服务返回数据为空"
);
}
return
processVo
;
}
/**
* @param nodeRouteList
* @param nodeRouteConditionList
* @param object
* @Author: wangan
* @Date: 2020/9/17
* @Description: 条件节点:通过条件表达式判断路由的下一个节点
* @return: com.yifu.cloud.plus.v1.process.api.entity.TNodeRoute
**/
public
static
TNodeRoute
getTNodeRoteByExpress
(
List
<
TNodeRoute
>
nodeRouteList
,
List
<
TNodeRouteCondition
>
nodeRouteConditionList
,
Object
object
,
Class
<?>
parameterTypes
)
{
TNodeRoute
matchNodeRoute
=
null
;
for
(
TNodeRouteCondition
nodeRouteCondition
:
nodeRouteConditionList
)
{
if
(
StringUtils
.
equals
(
CommonConstants
.
dingleDigitStrArray
[
2
],
nodeRouteCondition
.
getType
())
&&
object
!=
null
&&
ExpressionUtil
.
isMatchExpression
(
nodeRouteCondition
.
getField
(),
object
))
{
//满足正则表达式条件
String
nextNodeRouteId
=
nodeRouteCondition
.
getNodeRouteId
();
matchNodeRoute
=
gettNodeRoute
(
nodeRouteList
,
matchNodeRoute
,
nextNodeRouteId
);
}
else
if
(
StringUtils
.
equals
(
CommonConstants
.
dingleDigitStrArray
[
1
],
nodeRouteCondition
.
getType
()))
{
//满足正常条件
if
(
StringUtils
.
equals
(
CommonConstants
.
ZERO_STRING
,
nodeRouteCondition
.
getRealation
()))
{
if
(
object
==
null
){
if
(
object
==
null
&&
StringUtils
.
equals
(
"<>"
,
nodeRouteCondition
.
getConditions
()))
{
//防止其他异常问题,找不到节点,则取不等于节点
matchNodeRoute
=
gettNodeRoute
(
nodeRouteList
,
matchNodeRoute
,
nodeRouteCondition
.
getNodeRouteId
());
}
}
else
{
//与其他条件之间的关系(0没有关系或单独条件)
for
(
Field
field
:
parameterTypes
.
getDeclaredFields
())
{
String
fieldName
=
field
.
getName
();
if
(
fieldName
!=
null
&&
StringUtils
.
equals
(
fieldName
,
nodeRouteCondition
.
getField
()))
{
String
methodName
=
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
try
{
Method
method
=
parameterTypes
.
getDeclaredMethod
(
"get"
+
methodName
);
String
value
=
String
.
valueOf
(
method
.
invoke
(
object
));
if
(
StringUtils
.
equals
(
"="
,
nodeRouteCondition
.
getConditions
())
&&
StringUtils
.
equals
(
value
,
nodeRouteCondition
.
getConditionValue
()))
{
matchNodeRoute
=
gettNodeRoute
(
nodeRouteList
,
matchNodeRoute
,
nodeRouteCondition
.
getNodeRouteId
());
}
else
if
(
StringUtils
.
equals
(
"<>"
,
nodeRouteCondition
.
getConditions
())
&&
!
StringUtils
.
equals
(
value
,
nodeRouteCondition
.
getConditionValue
()))
{
matchNodeRoute
=
gettNodeRoute
(
nodeRouteList
,
matchNodeRoute
,
nodeRouteCondition
.
getNodeRouteId
());
}
}
catch
(
Exception
e
)
{
log
.
error
(
"执行失败:{}"
,
e
);
}
}
}
}
}
}
}
if
(
matchNodeRoute
==
null
)
{
log
.
error
(
"未找到匹配条件判断的节点:{}"
,
nodeRouteList
.
get
(
CommonConstants
.
ZERO_INT
).
getPrewNode
());
throw
new
CheckedException
(
"未找到匹配条件判断的节点"
);
}
return
matchNodeRoute
;
}
private
static
TNodeRoute
gettNodeRoute
(
List
<
TNodeRoute
>
nodeRouteList
,
TNodeRoute
matchNodeRoute
,
String
nodeRouteId
)
{
for
(
TNodeRoute
nodeRoute
:
nodeRouteList
)
{
if
(
StringUtils
.
equals
(
nodeRouteId
,
nodeRoute
.
getId
()))
{
matchNodeRoute
=
nodeRoute
;
}
}
return
matchNodeRoute
;
}
/**
* @param processVo
* @Author: wangan
* @Date: 2020/9/17
* @Description: 获取最后一个节点的前一个节点
* @return: com.yifu.cloud.plus.v1.process.api.entity.TProcessNode
**/
public
static
TProcessNode
getPreEndTProcessNode
(
ProcessVo
processVo
,
TProcessNode
endNode
)
{
List
<
TNodeRoute
>
nodeRouteList
=
processVo
.
getNodeRouteList
();
List
<
TProcessNode
>
processNodeList
=
processVo
.
getProcessNodeList
();
//结束节点前一个节点
String
preEndNode
=
null
;
TProcessNode
preEndTProcessNode
=
null
;
for
(
TNodeRoute
nodeRoute
:
nodeRouteList
)
{
if
(
StringUtils
.
equals
(
endNode
.
getLogoTitle
(),
nodeRoute
.
getNextNode
()))
{
preEndNode
=
nodeRoute
.
getPrewNode
();
}
}
for
(
TProcessNode
processNode
:
processNodeList
)
{
if
(
StringUtils
.
equals
(
processNode
.
getLogoTitle
(),
preEndNode
))
{
preEndTProcessNode
=
processNode
;
}
}
if
(
preEndTProcessNode
==
null
)
{
throw
new
CheckedException
(
END_PRE_NODE_NO_FOUND
);
}
return
preEndTProcessNode
;
}
/**
* @param processVo
* @Author: wangan
* @Date: 2020/9/17
* @Description: 获取开始节点
* @return: com.yifu.cloud.plus.v1.process.api.entity.TProcessNode
**/
public
static
TProcessNode
getBeginProcessNode
(
ProcessVo
processVo
)
{
//获取当前节点的下个节点
List
<
TProcessNode
>
processNodeList
=
processVo
.
getProcessNodeList
();
//开始节点
TProcessNode
startTProcessNode
=
null
;
for
(
TProcessNode
processNode
:
processNodeList
)
{
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_BEGIN
,
processNode
.
getType
()))
{
startTProcessNode
=
processNode
;
}
}
if
(
startTProcessNode
==
null
)
{
throw
new
CheckedException
(
BEGIN_NODE_NO_FOUND
);
}
return
startTProcessNode
;
}
/**
* @param processVo
* @Author: wangan
* @Date: 2020/9/17
* @Description: 获取结束节点
* @return: com.yifu.cloud.plus.v1.process.api.entity.TProcessNode
**/
public
static
TProcessNode
getEndProcessNode
(
ProcessVo
processVo
)
{
List
<
TProcessNode
>
processNodeList
=
processVo
.
getProcessNodeList
();
TProcessNode
endNode
=
null
;
for
(
TProcessNode
processNode
:
processNodeList
)
{
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_END
,
processNode
.
getType
()))
{
endNode
=
processNode
;
}
}
if
(
endNode
==
null
)
{
throw
new
CheckedException
(
END_NODE_NO_FOUND
);
}
return
endNode
;
}
/**
* @param processVo
* @Author: wangan
* @Date: 2020/9/17
* @Description: 获取当前流程节点
* @return: com.yifu.cloud.plus.v1.process.api.entity.TProcessNode
**/
public
static
TProcessNode
getCurrentProcessNode
(
ProcessVo
processVo
,
String
currentNodeString
)
{
TProcessNode
currentTProcessNode
=
null
;
for
(
TProcessNode
processNode
:
processVo
.
getProcessNodeList
())
{
if
(
StringUtils
.
equals
(
processNode
.
getId
(),
currentNodeString
))
{
currentTProcessNode
=
processNode
;
}
}
if
(
currentTProcessNode
==
null
)
{
log
.
error
(
"流程封装类:"
,
processVo
);
log
.
error
(
"当前流程节点ID:"
,
currentNodeString
);
throw
new
CheckedException
(
"未找到当前节点"
+
currentNodeString
);
}
return
currentTProcessNode
;
}
/**
* @param
* @Author: wangan
* @Date: 2020/9/21
* @Description:
* @return: 当前节点为服务调用或者结束节点, 获取下一个节点路由类型
**/
public
static
TNodeRoute
getNexTNodeRoute
(
List
<
TNodeRoute
>
nodeRouteList
,
String
currentNodeString
)
{
TNodeRoute
reNodeRoute
=
null
;
for
(
TNodeRoute
nodeRoute
:
nodeRouteList
)
{
if
(
StringUtils
.
equals
(
currentNodeString
,
nodeRoute
.
getPrewNode
()))
{
reNodeRoute
=
nodeRoute
;
}
}
if
(
reNodeRoute
==
null
)
{
throw
new
CheckedException
(
"未获取到服务节点的下一个节点路由"
);
}
return
reNodeRoute
;
}
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/DeleteProcessIdsVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
/**
* @Description: 流程需要删除的idsVo
* @Author: hgw
* @Date: 2020-7-27 11:04:13
* @return:
**/
@Getter
@Setter
public
class
DeleteProcessIdsVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
// 节点ids
private
String
[]
nodeIds
;
// 子流程ids
private
String
[]
nodeTransferConfigIds
;
// 线ids
private
String
[]
roteIds
;
// 线权限ids
private
String
[]
roteConditionIds
;
// 权限ids
private
String
[]
primissionIds
;
// 抄送ids
private
String
[]
readPrimissionIds
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/ProcessVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Description: 流程Vo
* @Author: hgw
* @Date: 2019/10/23 15:40
* @return:
**/
@Getter
@Setter
public
class
ProcessVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
// 主流程id
private
String
processId
;
private
String
name
;
// 节点list
private
List
<
TProcessNode
>
processNodeList
;
// 流程路由list
private
List
<
TNodeRoute
>
nodeRouteList
;
// 删除的ids
private
DeleteProcessIdsVo
deleteIdsVo
;
// 标志是否是流程预览 0是 1否
private
String
isPreview
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/TNodePrimissionVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @program: yifu_cloud
* @description: 流程处理权限vo类
* @author: wangdayu
* @create: 2023-10-23 17:28
* @since:
*/
@Data
public
class
TNodePrimissionVo
extends
TNodePrimission
implements
Serializable
{
@Schema
(
description
=
"审核人姓名"
)
private
String
userName
;
}
yifu-common/yifu-common-process/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/TNodeReaderPromissionVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @program: yifu_cloud
* @description: 抄送权限vo类
* @author: wangdayu
* @create: 2023-10-23 17:30
* @since:
*/
@Data
public
class
TNodeReaderPromissionVo
extends
TNodeReaderPromission
implements
Serializable
{
@Schema
(
description
=
"审核人姓名"
)
private
String
userName
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TApprovalRecord.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Data
@TableName
(
"t_approval_record"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Schema
(
description
=
"审批记录表"
)
public
class
TApprovalRecord
extends
BaseEntity
{
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程id不能为空"
)
@Length
(
max
=
32
,
message
=
"流程id不能超过32个字符"
)
@Schema
(
description
=
"流程id"
)
private
String
flowId
;
@NotBlank
(
message
=
"实体id不能为空"
)
@Length
(
max
=
32
,
message
=
"实体id不能超过32个字符"
)
@Schema
(
description
=
"实体id"
)
private
String
domainId
;
@NotBlank
(
message
=
"节点id不能为空"
)
@Length
(
max
=
32
,
message
=
"节点id不能超过32个字符"
)
@Schema
(
description
=
"节点id"
)
private
String
nodeId
;
@NotBlank
(
message
=
"审核人id不能为空"
)
@Length
(
max
=
32
,
message
=
"审核人id不能超过32个字符"
)
@Schema
(
description
=
"审核人id"
)
private
String
approvalMan
;
@NotBlank
(
message
=
"审核人姓名不能为空"
)
@Length
(
max
=
50
,
message
=
"审核人姓名不能超过50个字符"
)
@Schema
(
description
=
"审核人姓名"
)
private
String
approvalManName
;
@Schema
(
description
=
"审核时间"
)
private
LocalDateTime
approvalTime
;
@Length
(
max
=
1
,
message
=
"审核结果0:通过1:不通过 2 待审核不能超过1个字符"
)
@Schema
(
description
=
"审核结果0:通过1:不通过 2 待审核 3提交"
)
private
String
approvalResult
;
@Length
(
max
=
500
,
message
=
"审核意见不能超过500个字符"
)
@Schema
(
description
=
"审核意见"
)
private
String
approvalOpinion
;
@Length
(
max
=
1
,
message
=
"删除表示 0未删除 1删除不能超过1个字符"
)
@Schema
(
description
=
"删除表示 0未删除 1删除"
)
@TableLogic
private
String
deleteFlag
;
@Length
(
max
=
1
,
message
=
"之前审核记录标识不能超过1个字符"
)
@Schema
(
description
=
"之前审核记录标识 0之前记录 1当前审核记录。用于当前审核流程过滤判断"
)
private
String
preFlag
;
@Length
(
max
=
32
,
message
=
"提交人id不能超过32个字符"
)
@Schema
(
description
=
"提交人id"
)
private
String
submitMan
;
@Length
(
max
=
32
,
message
=
"提交人姓名不能超过32个字符"
)
@Schema
(
description
=
"提交人姓名"
)
private
String
submitManName
;
@Length
(
max
=
500
,
message
=
"申请原因不能超过500个字符"
)
@Schema
(
description
=
"申请原因"
)
private
String
reason
;
@Length
(
max
=
2
,
message
=
"审核类型 0不购买商险审核不能超过2个字符"
)
@Schema
(
description
=
"审核类型 0不购买商险审核"
)
private
String
auditType
;
@Schema
(
description
=
"创建时间"
)
private
LocalDateTime
createTime
;
@Length
(
max
=
50
,
message
=
"节点名称不能超过50个字符"
)
@Schema
(
description
=
"节点名称"
)
private
String
nodeName
;
@Length
(
max
=
300
,
message
=
"实体名称不能超过300个字符"
)
@Schema
(
description
=
"实体名称"
)
private
String
entityName
;
@Schema
(
description
=
"提交时间"
)
private
LocalDateTime
submitCreateTime
;
@Length
(
max
=
1
,
message
=
"退回状态 0 未退回 1已退回不能超过1个字符"
)
@Schema
(
description
=
"退回状态 0 未退回 1已退回"
)
private
String
backFlag
;
@Length
(
max
=
50
,
message
=
"退回节点名称不能超过50个字符"
)
@Schema
(
description
=
"退回节点名称"
)
private
String
backNodeName
;
@Length
(
max
=
32
,
message
=
"退回节点Id不能超过32个字符"
)
@Schema
(
description
=
"退回节点Id"
)
private
String
backNodeId
;
@Length
(
max
=
32
,
message
=
"加签节点的id不能超过32个字符"
)
@Schema
(
description
=
"加签节点的id"
)
private
String
addSignNodeId
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TAuditCopyInfo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* 审批抄送记录信息表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Data
@TableName
(
"t_audit_copy_info"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Schema
(
description
=
"审批抄送记录信息表"
)
public
class
TAuditCopyInfo
extends
BaseEntity
{
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"抄送人id不能为空"
)
@Length
(
max
=
32
,
message
=
"抄送人id不能超过32个字符"
)
@Schema
(
description
=
"抄送人id"
)
private
String
auditUserId
;
@NotBlank
(
message
=
"抄送人姓名不能为空"
)
@Length
(
max
=
32
,
message
=
"抄送人姓名不能超过32个字符"
)
@Schema
(
description
=
"抄送人姓名"
)
private
String
auditUser
;
@Length
(
max
=
32
,
message
=
"实体id不能超过32个字符"
)
@Schema
(
description
=
"实体id"
)
private
String
domainId
;
@Schema
(
description
=
"创建时间"
)
private
LocalDateTime
createTime
;
@Length
(
max
=
32
,
message
=
"流程id不能超过32个字符"
)
@Schema
(
description
=
"流程id"
)
private
String
flowId
;
@Length
(
max
=
32
,
message
=
"节点id不能超过32个字符"
)
@Schema
(
description
=
"节点id"
)
private
String
nodeId
;
@Length
(
max
=
1
,
message
=
"删除表示 0未删除 1删除不能超过1个字符"
)
@Schema
(
description
=
"删除表示 0未删除 1删除"
)
@TableLogic
private
String
deleteFlag
;
@Length
(
max
=
50
,
message
=
"节点名称不能超过50个字符"
)
@Schema
(
description
=
"节点名称"
)
private
String
nodeName
;
@Length
(
max
=
2
,
message
=
"审核类型 0不购买商险审核不能超过2个字符"
)
@Schema
(
description
=
"审核类型 0不购买商险审核"
)
private
String
auditType
;
@Length
(
max
=
1
,
message
=
"之前审核记录标识 不能超过1个字符"
)
@Schema
(
description
=
"之前审核记录标识 0之前记录 1当前审核记录。用于当前审核流程过滤判断"
)
private
String
preFlag
;
@Length
(
max
=
32
,
message
=
"提交人id不能超过32个字符"
)
@Schema
(
description
=
"提交人id"
)
private
String
submitMan
;
@Length
(
max
=
32
,
message
=
"提交人姓名不能超过32个字符"
)
@Schema
(
description
=
"提交人姓名"
)
private
String
submitManName
;
@Schema
(
description
=
"提交时间"
)
private
LocalDateTime
submitCreateTime
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TAuditNodeProocess.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* 审批主流程记录表节点表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Data
@TableName
(
"t_audit_node_proocess"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Schema
(
description
=
"审批主流程记录表节点表"
)
public
class
TAuditNodeProocess
extends
BaseEntity
{
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程id不能为空"
)
@Length
(
max
=
32
,
message
=
"流程id不能超过32个字符"
)
@Schema
(
description
=
"流程id"
)
private
String
processId
;
@NotBlank
(
message
=
"节点id不能为空"
)
@Length
(
max
=
32
,
message
=
"节点id不能超过32个字符"
)
@Schema
(
description
=
"节点id"
)
private
String
nodeId
;
@NotBlank
(
message
=
"节点类型不能为空"
)
@Length
(
max
=
32
,
message
=
"节点类型不能超过32个字符"
)
@Schema
(
description
=
"节点类型"
)
private
String
nodeType
;
@Schema
(
description
=
"创建时间"
)
private
LocalDateTime
createTime
;
@Length
(
max
=
32
,
message
=
"实体id不能超过32个字符"
)
@Schema
(
description
=
"实体id"
)
private
String
domainId
;
@NotBlank
(
message
=
"0主流程,1子流程不能为空"
)
@Length
(
max
=
1
,
message
=
"0主流程,1子流程不能超过1个字符"
)
@Schema
(
description
=
"0主流程,1子流程"
)
private
String
mainType
;
@Length
(
max
=
255
,
message
=
"节点标识不能超过255个字符"
)
@Schema
(
description
=
"节点标识"
)
private
String
logoTitle
;
@Length
(
max
=
32
,
message
=
"节点名称不能超过32个字符"
)
@Schema
(
description
=
"节点名称"
)
private
String
nodeName
;
@Length
(
max
=
32
,
message
=
"流程名称不能超过32个字符"
)
@Schema
(
description
=
"流程名称"
)
private
String
processName
;
@Length
(
max
=
32
,
message
=
"父流程id不能超过32个字符"
)
@Schema
(
description
=
"父流程id"
)
private
String
parentProcessId
;
@Length
(
max
=
1
,
message
=
"删除表示 0未删除 1删除不能超过1个字符"
)
@Schema
(
description
=
"删除表示 0未删除 1删除"
)
@TableLogic
private
String
deleteFlag
;
@Length
(
max
=
2
,
message
=
"审核类型 0客户新增 1.客户信息变更 2合同审核流程 3合同办理 4商机审核 5报价单 6团队共享不能超过2个字符"
)
@Schema
(
description
=
"审核类型 0客户新增 1.客户信息变更 2合同审核流程 3合同办理 4商机审核 5报价单 6团队共享"
)
private
String
type
;
@Length
(
max
=
32
,
message
=
"加签节点的父节点id(不是加签节点的默认设置为0)不能超过32个字符"
)
@Schema
(
description
=
"加签节点的父节点id(不是加签节点的默认设置为0)"
)
private
String
addSignParentNodeId
;
@Length
(
max
=
32
,
message
=
"加签节点的审核部门id(不是加签节点的默认设置为0)不能超过32个字符"
)
@Schema
(
description
=
"加签节点的审核部门id(不是加签节点的默认设置为0)"
)
private
String
addSignDepartmentId
;
@Length
(
max
=
32
,
message
=
"实体名称不能超过32个字符"
)
@Schema
(
description
=
"实体名称"
)
private
String
domainName
;
@Length
(
max
=
255
,
message
=
"加签人id不能超过255个字符"
)
@Schema
(
description
=
"加签人id"
)
private
String
addSignApprovalMan
;
@Length
(
max
=
255
,
message
=
"加签人名字不能超过255个字符"
)
@Schema
(
description
=
"加签人名字"
)
private
String
addSignApprovalManName
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TInsuranceUnpurchaseApply.java
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
...
...
@@ -58,6 +55,7 @@ public class TInsuranceUnpurchaseApply extends BaseEntity {
private
String
companyFlag
;
@Schema
(
description
=
"是否删除 0未删除/1删除"
)
@TableLogic
private
String
deleteFlag
;
@Schema
(
description
=
"申请状态 0 草稿 1待提交 2 待审核 3 审核通过 4 审核不通过"
)
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/TApprovalRecordSearchVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
*/
@Data
public
class
TApprovalRecordSearchVo
extends
TApprovalRecord
{
/**
* 多选导出或删除等操作
*/
@Schema
(
description
=
"选中ID,多个逗号分割"
)
private
String
ids
;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema
(
description
=
"创建时间区间"
)
private
LocalDateTime
[]
createTimes
;
/**
* @Author fxj
* 查询数据起
**/
@Schema
(
description
=
"查询limit 开始"
)
private
int
limitStart
;
/**
* @Author fxj
* 查询数据止
**/
@Schema
(
description
=
"查询limit 数据条数"
)
private
int
limitEnd
;
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TApprovalRecordController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TApprovalRecordService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TApprovalRecordSearchVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tapprovalrecord"
)
@Tag
(
name
=
"审批记录表管理"
)
public
class
TApprovalRecordController
{
private
final
TApprovalRecordService
tApprovalRecordService
;
/**
* 简单分页查询
* @param page 分页对象
* @param tApprovalRecord 审批记录表
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TApprovalRecord
>>
getTApprovalRecordPage
(
Page
<
TApprovalRecord
>
page
,
TApprovalRecordSearchVo
tApprovalRecord
)
{
return
new
R
<>(
tApprovalRecordService
.
getTApprovalRecordPage
(
page
,
tApprovalRecord
));
}
/**
* 通过实体id和审核类型查询所有的审核记录
* @param domainId 实体id
* @param auditType 审核类型 0不购买商险审核
* @return R<Map<String, Object>> key=auditInfo表示审批记录列表
**/
@Operation
(
description
=
"通过实体id查询所有的审核记录"
)
@GetMapping
(
"/getAuditInfoByDomainIdAndAuditType"
)
public
R
<
Map
<
String
,
Object
>>
getAuditInfoByDomainIdAndAuditType
(
@RequestParam
String
domainId
,
@RequestParam
String
auditType
)
{
if
(
Common
.
isEmpty
(
domainId
)
||
Common
.
isEmpty
(
auditType
))
{
return
R
.
failed
(
"实体id或审核类型不能为空"
);
}
return
tApprovalRecordService
.
getAuditInfoByDomainIdAndAuditType
(
domainId
,
auditType
);
}
/**
* 通过id查询审批记录表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id查询"
,
description
=
"通过id查询:hasPermission('insurances_tapprovalrecord_get')"
)
@GetMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tapprovalrecord_get')"
)
public
R
<
TApprovalRecord
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tApprovalRecordService
.
getById
(
id
));
}
/**
* 新增审批记录表
* @param tApprovalRecord 审批记录表
* @return R
*/
@Operation
(
summary
=
"新增审批记录表"
,
description
=
"新增审批记录表:hasPermission('insurances_tapprovalrecord_add')"
)
@SysLog
(
"新增审批记录表"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tapprovalrecord_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TApprovalRecord
tApprovalRecord
)
{
return
R
.
ok
(
tApprovalRecordService
.
save
(
tApprovalRecord
));
}
/**
* 修改审批记录表
* @param tApprovalRecord 审批记录表
* @return R
*/
@Operation
(
summary
=
"修改审批记录表"
,
description
=
"修改审批记录表:hasPermission('insurances_tapprovalrecord_edit')"
)
@SysLog
(
"修改审批记录表"
)
@PutMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tapprovalrecord_edit')"
)
public
R
<
Boolean
>
updateById
(
@RequestBody
TApprovalRecord
tApprovalRecord
)
{
return
R
.
ok
(
tApprovalRecordService
.
updateById
(
tApprovalRecord
));
}
/**
* 通过id删除审批记录表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除审批记录表"
,
description
=
"通过id删除审批记录表:hasPermission('insurances_tapprovalrecord_del')"
)
@SysLog
(
"通过id删除审批记录表"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tapprovalrecord_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tApprovalRecordService
.
removeById
(
id
));
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TAuditCopyInfoController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
controller
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TAuditCopyInfoService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
/**
* 审批抄送记录信息表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tauditcopyinfo"
)
@Tag
(
name
=
"审批抄送记录信息表管理"
)
public
class
TAuditCopyInfoController
{
private
final
TAuditCopyInfoService
tAuditCopyInfoService
;
/**
* 通过id查询审批抄送记录信息表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id查询"
,
description
=
"通过id查询:hasPermission('insurances_tauditcopyinfo_get')"
)
@GetMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditcopyinfo_get')"
)
public
R
<
TAuditCopyInfo
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tAuditCopyInfoService
.
getById
(
id
));
}
/**
* 新增审批抄送记录信息表
* @param tAuditCopyInfo 审批抄送记录信息表
* @return R
*/
@Operation
(
summary
=
"新增审批抄送记录信息表"
,
description
=
"新增审批抄送记录信息表:hasPermission('insurances_tauditcopyinfo_add')"
)
@SysLog
(
"新增审批抄送记录信息表"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditcopyinfo_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TAuditCopyInfo
tAuditCopyInfo
)
{
return
R
.
ok
(
tAuditCopyInfoService
.
save
(
tAuditCopyInfo
));
}
/**
* 修改审批抄送记录信息表
* @param tAuditCopyInfo 审批抄送记录信息表
* @return R
*/
@Operation
(
summary
=
"修改审批抄送记录信息表"
,
description
=
"修改审批抄送记录信息表:hasPermission('insurances_tauditcopyinfo_edit')"
)
@SysLog
(
"修改审批抄送记录信息表"
)
@PutMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditcopyinfo_edit')"
)
public
R
<
Boolean
>
updateById
(
@RequestBody
TAuditCopyInfo
tAuditCopyInfo
)
{
return
R
.
ok
(
tAuditCopyInfoService
.
updateById
(
tAuditCopyInfo
));
}
/**
* 通过id删除审批抄送记录信息表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除审批抄送记录信息表"
,
description
=
"通过id删除审批抄送记录信息表:hasPermission('insurances_tauditcopyinfo_del')"
)
@SysLog
(
"通过id删除审批抄送记录信息表"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditcopyinfo_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tAuditCopyInfoService
.
removeById
(
id
));
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TAuditNodeProocessController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
controller
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TAuditNodeProocessService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
/**
* 审批主流程记录表节点表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tauditnodeproocess"
)
@Tag
(
name
=
"审批主流程记录表节点表管理"
)
public
class
TAuditNodeProocessController
{
private
final
TAuditNodeProocessService
tAuditNodeProocessService
;
/**
* 通过id查询审批主流程记录表节点表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id查询"
,
description
=
"通过id查询:hasPermission('insurances_tauditnodeproocess_get')"
)
@GetMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditnodeproocess_get')"
)
public
R
<
TAuditNodeProocess
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tAuditNodeProocessService
.
getById
(
id
));
}
/**
* 新增审批主流程记录表节点表
* @param tAuditNodeProocess 审批主流程记录表节点表
* @return R
*/
@Operation
(
summary
=
"新增审批主流程记录表节点表"
,
description
=
"新增审批主流程记录表节点表:hasPermission('insurances_tauditnodeproocess_add')"
)
@SysLog
(
"新增审批主流程记录表节点表"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditnodeproocess_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TAuditNodeProocess
tAuditNodeProocess
)
{
return
R
.
ok
(
tAuditNodeProocessService
.
save
(
tAuditNodeProocess
));
}
/**
* 修改审批主流程记录表节点表
* @param tAuditNodeProocess 审批主流程记录表节点表
* @return R
*/
@Operation
(
summary
=
"修改审批主流程记录表节点表"
,
description
=
"修改审批主流程记录表节点表:hasPermission('insurances_tauditnodeproocess_edit')"
)
@SysLog
(
"修改审批主流程记录表节点表"
)
@PutMapping
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditnodeproocess_edit')"
)
public
R
<
Boolean
>
updateById
(
@RequestBody
TAuditNodeProocess
tAuditNodeProocess
)
{
return
R
.
ok
(
tAuditNodeProocessService
.
updateById
(
tAuditNodeProocess
));
}
/**
* 通过id删除审批主流程记录表节点表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除审批主流程记录表节点表"
,
description
=
"通过id删除审批主流程记录表节点表:hasPermission('insurances_tauditnodeproocess_del')"
)
@SysLog
(
"通过id删除审批主流程记录表节点表"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('insurances_tauditnodeproocess_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tAuditNodeProocessService
.
removeById
(
id
));
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceUnpurchaseApplyController.java
View file @
5c5a87ea
...
...
@@ -2,21 +2,29 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceUnpurchaseApply
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceUnpurchaseApplyService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceUnpurchaseApplySearchVo
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Map
;
/**
...
...
@@ -29,6 +37,7 @@ import javax.servlet.http.HttpServletResponse;
@RequiredArgsConstructor
@RequestMapping
(
"/tinsuranceunpurchaseapply"
)
@Tag
(
name
=
"含风险项目不购买申请表管理"
)
@Slf4j
public
class
TInsuranceUnpurchaseApplyController
{
private
final
TInsuranceUnpurchaseApplyService
tInsuranceUnpurchaseApplyService
;
...
...
@@ -116,4 +125,118 @@ public class TInsuranceUnpurchaseApplyController {
menuUtil
.
setAuthSql
(
user
,
searchVo
);
tInsuranceUnpurchaseApplyService
.
listExport
(
response
,
searchVo
);
}
/**
* 审核分页查询
*
* @param page 分页对象
* @param unpurchaseApplySearchVo 不购买申请查询信息
* @param type 0待审核、1已处理、2抄送我
*
* @return R
*/
@Operation
(
description
=
"审核分页查询"
)
@GetMapping
(
"/getAuditPage"
)
public
R
<
IPage
<
TInsuranceUnpurchaseApply
>>
getAuditPage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
TInsuranceUnpurchaseApplySearchVo
unpurchaseApplySearchVo
,
String
type
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
null
==
user
){
return
R
.
failed
(
ResultConstants
.
NO_USER
);
}
String
userId
=
String
.
valueOf
(
user
.
getId
());
return
R
.
ok
(
tInsuranceUnpurchaseApplyService
.
getAuditPage
(
page
,
unpurchaseApplySearchVo
,
userId
,
type
));
}
/**
* 审核数量
*
* @return R
*/
@Operation
(
description
=
"审核数量查询"
)
@GetMapping
(
"/getAuditCount"
)
public
R
<
Map
<
String
,
Integer
>>
getAuditCount
()
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
null
==
user
){
return
R
.
failed
(
ResultConstants
.
NO_USER
);
}
String
userId
=
String
.
valueOf
(
user
.
getId
());
return
R
.
ok
(
tInsuranceUnpurchaseApplyService
.
getAuditCount
(
userId
));
}
/**
* 提交审核
* @param id 实体id
* @return R<String>
**/
@Operation
(
description
=
"提交审核"
)
@SysLog
(
"提交审核"
)
@PostMapping
(
"/commitOne"
)
public
R
<
String
>
commitOne
(
@RequestParam
String
id
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
Common
.
isEmpty
(
user
)){
return
R
.
failed
(
CommonConstants
.
USER_FAIL
);
}
if
(
Common
.
isNotKong
(
id
))
{
String
requestId
;
String
redisKey
=
CacheConstants
.
INSURANCEUNPURCHASE_PROCESS_CACHE
.
concat
(
id
);
try
{
requestId
=
RedisDistributedLock
.
getLock
(
redisKey
,
"10"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取锁失败:{}"
,
e
);
return
R
.
failed
(
ResultConstants
.
NO_GETLOCK_DATA
);
}
if
(
Common
.
isNotKong
(
requestId
))
{
R
<
String
>
saveR
=
tInsuranceUnpurchaseApplyService
.
commitOne
(
id
);
//主动释放锁
RedisDistributedLock
.
unlock
(
redisKey
,
requestId
);
return
saveR
;
}
else
{
return
R
.
failed
(
ResultConstants
.
NO_GETLOCK_DATA
);
}
}
else
{
return
R
.
failed
(
"请选择提交的记录!"
);
}
}
/**
* 审核
* @param tApprovalRecord 审批信息
* @return R<String>
**/
@Operation
(
description
=
"审核"
)
@SysLog
(
"审核"
)
@PostMapping
(
"/audit"
)
public
R
<
String
>
audit
(
@RequestBody
TApprovalRecord
tApprovalRecord
)
{
if
(
Common
.
isEmpty
(
tApprovalRecord
.
getApprovalResult
()))
{
return
R
.
failed
(
"审核结果不能为空!"
);
}
if
(
Common
.
isNotNull
(
tApprovalRecord
.
getApprovalOpinion
())
&&
tApprovalRecord
.
getApprovalOpinion
().
length
()>
100
)
{
return
R
.
failed
(
"审核意见不能超过100个字"
);
}
if
(
Common
.
isEmpty
(
tApprovalRecord
.
getDomainId
()))
{
return
R
.
failed
(
"id不能为空!"
);
}
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
Common
.
isEmpty
(
user
)){
return
R
.
failed
(
CommonConstants
.
USER_FAIL
);
}
TInsuranceUnpurchaseApply
insuranceUnpurchaseApply
=
tInsuranceUnpurchaseApplyService
.
getById
(
tApprovalRecord
.
getDomainId
());
if
(
Common
.
isEmpty
(
insuranceUnpurchaseApply
)){
return
R
.
failed
(
"该实体信息不存在!"
);
}
String
requestId
;
String
redisKey
=
CacheConstants
.
INSURANCEUNPURCHASE_PROCESS_CACHE
.
concat
(
tApprovalRecord
.
getDomainId
());
try
{
requestId
=
RedisDistributedLock
.
tryLockAndTime
(
redisKey
,
"10"
);
}
catch
(
Exception
e
)
{
return
R
.
failed
(
ResultConstants
.
REQUEST_LOCK_FAIL
);
}
if
(
Common
.
isNotKong
(
requestId
))
{
return
tInsuranceUnpurchaseApplyService
.
auditAndCommit
(
insuranceUnpurchaseApply
,
tApprovalRecord
.
getApprovalResult
(),
tApprovalRecord
.
getApprovalOpinion
(),
user
);
}
return
R
.
failed
(
ResultConstants
.
REQUEST_LOCK_FAIL
);
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/insurances/TApprovalRecordMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
mapper
.
insurances
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Mapper
public
interface
TApprovalRecordMapper
extends
BaseMapper
<
TApprovalRecord
>
{
/**
* 审批记录表简单分页查询
* @param tApprovalRecord 审批记录表
* @return
*/
IPage
<
TApprovalRecord
>
getTApprovalRecordPage
(
Page
<
TApprovalRecord
>
page
,
@Param
(
"tApprovalRecord"
)
TApprovalRecord
tApprovalRecord
);
/**
* 通过实体id和审核类型查询所有的审核记录
*
* @param domainId 实体id
* @param auditType 审核类型 0不购买商险审核
* @return List<TApprovalRecord>
**/
List
<
TApprovalRecord
>
getApprovalRecordList
(
@Param
(
"domainId"
)
String
domainId
,
@Param
(
"auditType"
)
String
auditType
);
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/insurances/TAuditCopyInfoMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
mapper
.
insurances
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 审批抄送记录信息表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Mapper
public
interface
TAuditCopyInfoMapper
extends
BaseMapper
<
TAuditCopyInfo
>
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/insurances/TAuditNodeProocessMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
mapper
.
insurances
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 审批主流程记录表节点表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Mapper
public
interface
TAuditNodeProocessMapper
extends
BaseMapper
<
TAuditNodeProocess
>
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/insurances/TInsuranceUnpurchaseApplyMapper.java
View file @
5c5a87ea
...
...
@@ -40,4 +40,50 @@ public interface TInsuranceUnpurchaseApplyMapper extends BaseMapper<TInsuranceUn
*/
List
<
TInsuranceUnpurchaseApply
>
getTInsuranceUnpurchaseApplyExportList
(
@Param
(
"tInsuranceUnpurchaseApply"
)
TInsuranceUnpurchaseApplySearchVo
tInsuranceUnpurchaseApply
);
/**
* 待审核分页查询
* @param page 分页信息
* @param tInsuranceUnpurchaseApply 不购买申请查询信息
* @param userId 登录用户id
* @return IPage
*/
IPage
<
TInsuranceUnpurchaseApply
>
getAuditPage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
@Param
(
"tInsuranceUnpurchaseApply"
)
TInsuranceUnpurchaseApplySearchVo
tInsuranceUnpurchaseApply
,
@Param
(
"userId"
)
String
userId
);
/**
* 已审核分页查询
* @param page 分页信息
* @param tInsuranceUnpurchaseApply 不购买申请查询信息
* @param userId 登录用户id
* @return IPage
*/
IPage
<
TInsuranceUnpurchaseApply
>
getHistoryHandlePage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
@Param
(
"tInsuranceUnpurchaseApply"
)
TInsuranceUnpurchaseApplySearchVo
tInsuranceUnpurchaseApply
,
@Param
(
"userId"
)
String
userId
);
/**
* 待审核数量
* @param userId 登录用户id
* @return IPage
*/
Integer
getAuditCount
(
@Param
(
"userId"
)
String
userId
);
/**
* 已审核数量
* @param userId 登录用户id
* @return IPage
*/
Integer
getHistoryHandleCount
(
@Param
(
"userId"
)
String
userId
);
/**
* 抄送分页查询
* @param page 分页信息
* @param tInsuranceUnpurchaseApply 不购买申请查询信息
* @param userId 登录用户id
* @return IPage
*/
IPage
<
TInsuranceUnpurchaseApply
>
getCopyPage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
@Param
(
"tInsuranceUnpurchaseApply"
)
TInsuranceUnpurchaseApplySearchVo
tInsuranceUnpurchaseApply
,
@Param
(
"userId"
)
String
userId
);
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/TApprovalRecordService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TApprovalRecordSearchVo
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.Map
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
public
interface
TApprovalRecordService
extends
IService
<
TApprovalRecord
>
{
/**
* 审批记录表简单分页查询
* @param tApprovalRecord 审批记录表
* @return
*/
IPage
<
TApprovalRecord
>
getTApprovalRecordPage
(
Page
<
TApprovalRecord
>
page
,
TApprovalRecordSearchVo
tApprovalRecord
);
/**
* 通过实体id和审核类型查询所有的审核记录
* @param domainId 实体id
* @param auditType 审核类型 0不购买商险审核
* @return R<Map<String, Object>> key=auditInfo表示审批记录列表
**/
R
<
Map
<
String
,
Object
>>
getAuditInfoByDomainIdAndAuditType
(
String
domainId
,
String
auditType
);
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/TAuditCopyInfoService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo
;
/**
* 审批抄送记录信息表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
public
interface
TAuditCopyInfoService
extends
IService
<
TAuditCopyInfo
>
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/TAuditNodeProocessService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
/**
* 审批主流程记录表节点表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
public
interface
TAuditNodeProocessService
extends
IService
<
TAuditNodeProocess
>
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/TInsuranceUnpurchaseApplyService.java
View file @
5c5a87ea
...
...
@@ -3,11 +3,14 @@ package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceUnpurchaseApply
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceUnpurchaseApplySearchVo
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Map
;
/**
* 含风险项目不购买申请表
...
...
@@ -27,5 +30,38 @@ public interface TInsuranceUnpurchaseApplyService extends IService<TInsuranceUnp
void
listExport
(
HttpServletResponse
response
,
TInsuranceUnpurchaseApplySearchVo
searchVo
);
/**
* 审核分页
* @param page 分页信息
* @param unpurchaseApplySearchVo 不购买申请查询信息
* @param userId 登录用户id
* @param type 0待审核、1已处理、2抄送我
* @return IPage
*/
IPage
<
TInsuranceUnpurchaseApply
>
getAuditPage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
TInsuranceUnpurchaseApplySearchVo
unpurchaseApplySearchVo
,
String
userId
,
String
type
);
/**
* 审核数量
* @param userId 登录用户id
* @return IPage
*/
Map
<
String
,
Integer
>
getAuditCount
(
String
userId
);
/**
* 提交审核
* @param id 实体id
* @return R<String>
**/
R
<
String
>
commitOne
(
String
id
)
throws
CheckedException
;
/**
* 审核
* @param insuranceUnpurchaseApply 审批信息
* @return R<String>
**/
R
<
String
>
auditAndCommit
(
TInsuranceUnpurchaseApply
insuranceUnpurchaseApply
,
String
approvalResult
,
String
approvalOpinion
,
YifuUser
user
)
throws
CheckedException
;
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/AbastractAuditProcess.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.collect.Lists
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceUnpurchaseApply
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TApprovalRecordService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TAuditNodeProocessService
;
import
com.yifu.cloud.plus.v1.yifu.process.constant.ProcessConstants
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.*
;
import
com.yifu.cloud.plus.v1.yifu.process.util.CommonProcessUserUtil
;
import
com.yifu.cloud.plus.v1.yifu.process.util.ProcessAuditUtil
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.*
;
/**
* 流程审批抽象类——仿照crm流程处理
* @author 陈宇茜
* @date 2025/01/13
* @since 1.7.5
*/
@Slf4j
public
abstract
class
AbastractAuditProcess
<
T
,
E
extends
T
>
{
@Resource
protected
TAuditNodeProocessService
auditNodeProocessService
;
@Resource
protected
TApprovalRecordService
approvalRecordService
;
public
static
final
String
BIGIN_NODE_NO_FOUND
=
"未找到开始审批节点,请联系管理员"
;
public
static
final
String
NEXT_NODE_USER_NULL
=
"未查询到下个节点的用户,请联系管理员"
;
public
static
final
String
NEXT_AUDIT_NODE_NOT_FOUND
=
"未查询到下一个审核节点,请联系管理员"
;
/**
* 审核成功并结束逻辑
* @param entity 业务实体
* @param approvalRecord 审批记录
* @param loginUser 当前登录用户
* @return R<String>
**/
abstract
public
R
<
String
>
auditSuccess
(
T
entity
,
TApprovalRecord
approvalRecord
,
YifuUser
loginUser
);
/**
* 审核成功并结束逻辑
* @param entity 业务实体
* @param approvalRecord 审批记录
* @param remoteSysUserList 当前登录用户
* @return R<String>
**/
abstract
public
R
<
String
>
auditSuccessAndNex
(
T
entity
,
List
<
SysUser
>
remoteSysUserList
,
TApprovalRecord
approvalRecord
);
/**
* 审核不通过处理逻辑
* @param entity 业务实体
* @param approvalRecord 审批记录
* @return R<String>
**/
abstract
public
R
<
String
>
auditFail
(
T
entity
,
TApprovalRecord
approvalRecord
);
/**
* 选择节点。不同类型可能有不同选择节点
* @param entity 业务实体
* @return TProcessNode
**/
abstract
public
TProcessNode
choiceGetNode
(
ProcessVo
processVo
,
List
<
TNodeRoute
>
nodeRouteList
,
List
<
TNodeRouteCondition
>
nodeRouteConditionList
,
TProcessNode
currentNode
,
T
entity
,
String
type
,
YifuUser
loginUser
);
/**
* 审批发消息
* @param users 发送人
* @param entity 实体信息
* @param type 1发送审批消息 2发送抄送消息
* @return R<String>
**/
abstract
public
R
<
String
>
sendMessage
(
List
<
SysUser
>
users
,
T
entity
,
String
type
,
TApprovalRecord
approvalRecord
);
/**
* 根据事业部条线获取审批用户
* @param nodePrimission
* @param entity
* @return List<SysUser>
**/
abstract
public
List
<
SysUser
>
getDivisionAuditUser
(
TNodePrimission
nodePrimission
,
T
entity
);
/**
* 获取当前节点的审批人
* @param sysUserTprocessNode 当前节点
* @param departId 部门id
* @param entityId 实体id
* @return List<SysUser>
**/
private
List
<
SysUser
>
getAuditUserByTprocessNode
(
TProcessNode
sysUserTprocessNode
,
String
departId
,
String
entityId
,
String
auditType
,
T
entity
,
TApprovalRecord
approvalRecord
)
{
// todo 获取当前流程 改成dapr写法
R
<
ProcessVo
>
processVoByName
=
null
;
// remoteProcessService.getProcessVoByName(sysUserTprocessNode.getProcessId());
// todo 临时
if
(
processVoByName
==
null
){
throw
new
CheckedException
(
"未找到审批节点,请联系管理员"
);
}
ProcessVo
processVo
=
processVoByName
.
getData
();
List
<
TNodePrimission
>
nodePrimissions
=
null
;
for
(
TProcessNode
processNode
:
processVo
.
getProcessNodeList
())
{
if
(
StringUtils
.
equals
(
sysUserTprocessNode
.
getLogoTitle
(),
processNode
.
getLogoTitle
()))
{
List
<
TNodePrimission
>
nodePrimissionList
=
processNode
.
getNodePrimissionList
();
if
(
nodePrimissionList
!=
null
&&
!
nodePrimissionList
.
isEmpty
())
{
nodePrimissions
=
nodePrimissionList
;
}
}
}
if
(
nodePrimissions
==
null
)
{
throw
new
CheckedException
(
"未找到审批节点,请联系管理员"
);
}
// 获取所有审批用户
List
<
SysUser
>
sysUserList
=
new
ArrayList
<>();
// 节点是否允许跳过(0:不允许,1允许)
Integer
isPass
=
CommonConstants
.
ZERO_INT
;
for
(
TNodePrimission
nodePrimission
:
nodePrimissions
)
{
// 审核用户改造; 2指定权限;3指定用户;5指定角色(crm);6指定事业部配置表
if
(
CommonConstants
.
THREE_INT
==
nodePrimission
.
getType
().
intValue
()
||
CommonConstants
.
TWO_INT
==
nodePrimission
.
getType
().
intValue
()
||
CommonConstants
.
FIVE_INT
==
nodePrimission
.
getType
().
intValue
())
{
// todo
sysUserList
=
CommonProcessUserUtil
.
getDepartAuditUser
(
nodePrimission
,
departId
);
}
if
(
CommonConstants
.
SIX_INT
==
nodePrimission
.
getType
().
intValue
())
{
// todo 根据事业部条线获取审批用户
sysUserList
=
this
.
getDivisionAuditUser
(
nodePrimission
,
entity
);
}
if
(
Common
.
isEmpty
(
sysUserList
))
{
throw
new
CheckedException
(
"未找到审批用户,请联系管理员"
);
}
// 事业部条线没有审批人直接审核通过,配置了可以跳过
if
(
Common
.
isEmpty
(
sysUserList
)
&&
CommonConstants
.
ONE_STRING
.
equals
(
nodePrimission
.
getIsPass
())){
// 标记节点可以跳过
isPass
=
CommonConstants
.
ONE_INT
;
// todo 系统自动给当前节点完成审核,将审核通过
// sysAutoAudit(sysUserTprocessNode,entity,processVo);
}
else
{
if
(
Common
.
isEmpty
(
sysUserList
))
{
throw
new
CheckedException
(
"未找到审批用户"
);
}
//微信审批通知发送
//发送审批消息
sendMessage
(
sysUserList
,
entity
,
CommonConstants
.
ONE_STRING
,
approvalRecord
);
for
(
SysUser
sysUser
:
sysUserList
)
{
// 新增指派审核流程记录
TApprovalRecord
newEntity
=
new
TApprovalRecord
();
newEntity
.
setDomainId
(
entityId
);
newEntity
.
setFlowId
(
sysUserTprocessNode
.
getProcessId
());
newEntity
.
setNodeId
(
sysUserTprocessNode
.
getId
());
newEntity
.
setApprovalMan
(
String
.
valueOf
(
sysUser
.
getUserId
()));
newEntity
.
setApprovalManName
(
sysUser
.
getNickname
());
newEntity
.
setDeleteFlag
(
CommonConstants
.
NOT_DELETE_FLAG
);
newEntity
.
setPreFlag
(
CommonConstants
.
ONE_STRING
);
newEntity
.
setApprovalResult
(
CommonConstants
.
TWO_STRING
);
newEntity
.
setNodeName
(
sysUserTprocessNode
.
getName
());
// 获取提交人信息
TApprovalRecord
tApprovalRecord
=
approvalRecordService
.
getOne
(
Wrappers
.<
TApprovalRecord
>
query
().
lambda
().
eq
(
TApprovalRecord:
:
getDomainId
,
entityId
)
.
eq
(
TApprovalRecord:
:
getAuditType
,
auditType
)
.
eq
(
TApprovalRecord:
:
getPreFlag
,
CommonConstants
.
ONE_STRING
)
.
eq
(
TApprovalRecord:
:
getApprovalResult
,
CommonConstants
.
THREE_STRING
)
.
orderByDesc
(
TApprovalRecord:
:
getId
).
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
if
(
Common
.
isNotNull
(
tApprovalRecord
))
{
newEntity
.
setSubmitMan
(
tApprovalRecord
.
getSubmitMan
());
newEntity
.
setSubmitManName
(
tApprovalRecord
.
getSubmitManName
());
newEntity
.
setSubmitCreateTime
(
tApprovalRecord
.
getSubmitCreateTime
());
newEntity
.
setReason
(
tApprovalRecord
.
getReason
());
newEntity
.
setEntityName
(
tApprovalRecord
.
getEntityName
());
newEntity
.
setAuditType
(
tApprovalRecord
.
getAuditType
());
}
newEntity
.
setCreateTime
(
LocalDateTime
.
now
());
approvalRecordService
.
save
(
newEntity
);
}
// todo 存当前审核人信息[AUDIT_USER]多个用逗号隔开
}
}
// 事业部条线没有审批人直接审核通过,配置了可以跳过
if
(
Common
.
isEmpty
(
sysUserList
)
&&
isPass
==
CommonConstants
.
ONE_INT
){
sysUserList
=
new
ArrayList
<>();
SysUser
sysUserTemp
=
new
SysUser
();
sysUserList
.
add
(
sysUserTemp
);
}
return
sysUserList
;
}
/**
* 提交审核:获取审核人
* @param id 实体id
* @param loginUser 当前登录人
* @param departId 部门id 通过该部门获取审批流程
* @param processType 流程类型 1不购买商险申请
* @param auditType 审核类型 0不购买商险审核
* @return R<List<SysUser>>
**/
public
R
<
List
<
SysUser
>>
commitAuditUserList
(
String
id
,
YifuUser
loginUser
,
String
departId
,
String
processType
,
String
auditType
,
String
reason
,
String
entityName
,
T
entity
,
Class
<
T
>
clazz
)
{
//获取合同审批流程与下一个审核人节点
ProcessVo
processVo
=
null
;
//获取正确流程
TProcessApprovalConf
processApprovalConf
=
getProcessApprovalConf
(
processType
);
// todo 改成dapr获取
//processVo = ProcessAuditUtil.getProcessVo(remoteProcessService, processApprovalConf.getProcessId());
if
(
processVo
==
null
)
{
throw
new
CheckedException
(
"未找到满足条件的主流程,请联系管理员"
);
}
//获取开始节点
TProcessNode
startTProcessNode
=
ProcessAuditUtil
.
getBeginProcessNode
(
processVo
);
if
(
startTProcessNode
==
null
)
{
return
R
.
failed
(
BIGIN_NODE_NO_FOUND
);
}
String
currentNode
=
startTProcessNode
.
getLogoTitle
();
// 保存TAuditNodeProocess节点信息
saveNodeProcess
(
processVo
,
currentNode
,
id
,
auditType
);
// 获取开始节点下一个审核节点
TProcessNode
sysUserTprocessNode
=
getNextNode
(
processVo
,
currentNode
,
id
,
auditType
,
entity
,
loginUser
);
if
(
sysUserTprocessNode
==
null
)
{
throw
new
CheckedException
(
NEXT_AUDIT_NODE_NOT_FOUND
);
}
// 记录提交审核日志
TApprovalRecord
submitApprovalRecord
=
new
TApprovalRecord
();
submitApprovalRecord
.
setDomainId
(
id
);
submitApprovalRecord
.
setFlowId
(
startTProcessNode
.
getProcessId
());
submitApprovalRecord
.
setNodeId
(
startTProcessNode
.
getId
());
submitApprovalRecord
.
setApprovalMan
(
String
.
valueOf
(
loginUser
.
getId
()));
submitApprovalRecord
.
setApprovalManName
(
loginUser
.
getNickname
());
// 审批结果为“提交”
submitApprovalRecord
.
setApprovalResult
(
CommonConstants
.
dingleDigitStrArray
[
3
]);
submitApprovalRecord
.
setDeleteFlag
(
CommonConstants
.
NOT_DELETE_FLAG
);
submitApprovalRecord
.
setApprovalTime
(
LocalDateTime
.
now
());
// 审核记录标识 1当前审核记录
submitApprovalRecord
.
setPreFlag
(
CommonConstants
.
ONE_STRING
);
submitApprovalRecord
.
setSubmitMan
(
String
.
valueOf
(
loginUser
.
getId
()));
submitApprovalRecord
.
setSubmitManName
(
loginUser
.
getNickname
());
//申请原因
submitApprovalRecord
.
setReason
(
reason
);
//审核类型
submitApprovalRecord
.
setAuditType
(
auditType
);
submitApprovalRecord
.
setCreateTime
(
LocalDateTime
.
now
());
submitApprovalRecord
.
setNodeName
(
"提交"
);
submitApprovalRecord
.
setSubmitCreateTime
(
LocalDateTime
.
now
());
submitApprovalRecord
.
setEntityName
(
entityName
);
approvalRecordService
.
save
(
submitApprovalRecord
);
// 获取节点审核人
List
<
SysUser
>
remoteSysUserList
=
getAuditUserByTprocessNode
(
sysUserTprocessNode
,
departId
,
id
,
auditType
,
entity
,
submitApprovalRecord
);
if
(
remoteSysUserList
==
null
)
{
throw
new
CheckedException
(
NEXT_NODE_USER_NULL
);
}
return
new
R
<>(
remoteSysUserList
);
}
/**
* 审核并提交下一个节点:获取下一个审核人
* @param id 实体id
* @param approvalResult 审核标识 0审核通过 其他审核不通过
* @param approvalOpinion 审核意见
* @param loginUser 当前登录人
* @param auditType 审核类型 0不购买商险审核
* @param entity 实体类:用于审核通过逻辑
* @return R<String>
**/
public
R
<
String
>
auditUserList
(
String
id
,
String
approvalResult
,
String
approvalOpinion
,
YifuUser
loginUser
,
String
auditType
,
T
entity
,
String
departId
)
{
String
loginUserId
=
loginUser
.
getId
();
// 判断当前审核是否为最新待审核记录
List
<
TApprovalRecord
>
approvalRecords
=
approvalRecordService
.
list
(
Wrappers
.<
TApprovalRecord
>
query
().
lambda
().
eq
(
TApprovalRecord:
:
getDomainId
,
id
)
.
eq
(
TApprovalRecord:
:
getAuditType
,
auditType
)
.
eq
(
TApprovalRecord:
:
getDeleteFlag
,
CommonConstants
.
NOT_DELETE_FLAG
)
.
eq
(
TApprovalRecord:
:
getApprovalResult
,
CommonConstants
.
TWO_STRING
)
.
eq
(
TApprovalRecord:
:
getApprovalMan
,
loginUserId
));
if
(
approvalRecords
.
size
()
!=
CommonConstants
.
ONE_INT
)
{
return
R
.
failed
(
"当前用户不能审核该记录"
);
}
// 更新审核记录信息
TApprovalRecord
approvalRecord
=
approvalRecords
.
get
(
0
);
approvalRecord
.
setApprovalResult
(
approvalResult
);
approvalRecord
.
setApprovalOpinion
(
approvalOpinion
);
approvalRecord
.
setApprovalTime
(
LocalDateTime
.
now
());
approvalRecordService
.
updateById
(
approvalRecord
);
// 移除同一个节点的另外审批人。多个节点一个人审批就够了,其他都移除
approvalRecordService
.
remove
(
Wrappers
.<
TApprovalRecord
>
query
().
lambda
()
.
eq
(
TApprovalRecord:
:
getDomainId
,
id
)
.
eq
(
TApprovalRecord:
:
getAuditType
,
auditType
)
.
isNull
(
TApprovalRecord:
:
getApprovalTime
));
// 审核通过处理
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
approvalResult
))
{
// 获取流程,并判断是否是最后一个节点
// 获取流程的主流程
TAuditNodeProocess
auditNodeProocess
=
auditNodeProocessService
.
getOne
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
id
)
.
eq
(
TAuditNodeProocess:
:
getType
,
auditType
)
.
eq
(
TAuditNodeProocess:
:
getMainType
,
CommonConstants
.
ZERO_STRING
)
.
eq
(
TAuditNodeProocess:
:
getDeleteFlag
,
CommonConstants
.
NOT_DELETE_FLAG
)
.
orderByDesc
(
TAuditNodeProocess:
:
getId
)
.
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
if
(
auditNodeProocess
==
null
)
{
throw
new
CheckedException
(
"未获取到审批记录流程数据"
);
}
// todo 改成dapr获取
ProcessVo
processVo
=
null
;
// ProcessAuditUtil.getProcessVo(remoteProcessService, auditNodeProocess.getProcessId());
// todo 临时
if
(
processVo
==
null
)
{
throw
new
CheckedException
(
"未获取到结束节点"
);
}
TProcessNode
endProcessNode
=
ProcessAuditUtil
.
getEndProcessNode
(
processVo
);
if
(
endProcessNode
==
null
)
{
throw
new
CheckedException
(
"未获取到结束节点"
);
}
TProcessNode
preEndTProcessNode
=
ProcessAuditUtil
.
getPreEndTProcessNode
(
processVo
,
endProcessNode
);
if
(
preEndTProcessNode
==
null
)
{
throw
new
CheckedException
(
"未找到结束节点前一个节点"
);
}
// 当前是结束节点前的一个节点
if
(
StringUtils
.
equals
(
preEndTProcessNode
.
getId
(),
approvalRecord
.
getNodeId
()))
{
// 走审核通过处理
return
auditSuccess
(
entity
,
approvalRecord
,
loginUser
);
}
else
{
// todo 改成dapr——获取自动下一个审核人
// 获取流程的下一个节点,可能下一个节点是子流程,也可能是主节点,所以重新获取当前执行审批的流程和节点
ProcessVo
processVoByApproval
=
null
;
// ProcessAuditUtil.getProcessVo(remoteProcessService, approvalRecord.getFlowId());
// todo 临时
if
(
processVoByApproval
==
null
)
{
throw
new
CheckedException
(
"未获取到下一个审核人节点"
);
}
// todo 判断当前是否是当前审核节点到下一个审核节点前的加签节点
TProcessNode
currentProcessNode
=
ProcessAuditUtil
.
getCurrentProcessNode
(
processVoByApproval
,
approvalRecord
.
getNodeId
());
TProcessNode
sysUserTprocessNode
=
getNextNode
(
processVoByApproval
,
currentProcessNode
.
getLogoTitle
(),
id
,
auditType
,
entity
,
loginUser
);
if
(
sysUserTprocessNode
==
null
)
{
throw
new
CheckedException
(
NEXT_AUDIT_NODE_NOT_FOUND
);
}
auditNodeProocess
=
auditNodeProocessService
.
getOne
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
id
)
.
eq
(
TAuditNodeProocess:
:
getType
,
auditType
)
.
eq
(
TAuditNodeProocess:
:
getMainType
,
CommonConstants
.
ZERO_STRING
)
.
eq
(
TAuditNodeProocess:
:
getDeleteFlag
,
CommonConstants
.
NOT_DELETE_FLAG
)
.
orderByDesc
(
TAuditNodeProocess:
:
getId
)
.
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
// 如果返回的是end节点:判断是不是返回的是不是主流程结束节点
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_END
,
sysUserTprocessNode
.
getType
())
&&
StringUtils
.
equals
(
auditNodeProocess
.
getProcessId
(),
sysUserTprocessNode
.
getProcessId
()))
{
//审核通过流程
return
auditSuccess
(
entity
,
approvalRecord
,
loginUser
);
}
// 获取审批用户
List
<
SysUser
>
remoteSysUserList
=
getAuditUserByTprocessNode
(
sysUserTprocessNode
,
departId
,
id
,
auditType
,
entity
,
approvalRecord
);
if
(
remoteSysUserList
==
null
)
{
throw
new
CheckedException
(
NEXT_NODE_USER_NULL
);
}
// 流程中的审核结束,继续下一个节点
return
auditSuccessAndNex
(
entity
,
remoteSysUserList
,
approvalRecord
);
}
}
else
{
//审核不通过处理
return
auditFail
(
entity
,
approvalRecord
);
}
}
/**
* 获取下一个节点
* @param processVo 流程记录
* @param currentNodeString 当前节点
* @param id 实体id
**/
private
TProcessNode
getNextNode
(
ProcessVo
processVo
,
String
currentNodeString
,
String
id
,
String
auditType
,
T
entity
,
YifuUser
loginUser
)
{
// 判断进行到的节点当前流程是主流程还是子流程,如果是主流程,则进行主流程,如果是子流程,则进行子流程判断
TAuditNodeProocess
auditNodeProocess
=
auditNodeProocessService
.
getOne
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
id
)
.
eq
(
TAuditNodeProocess:
:
getType
,
auditType
)
.
eq
(
TAuditNodeProocess:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
)
.
isNotNull
(
TAuditNodeProocess:
:
getLogoTitle
)
.
orderByDesc
(
TAuditNodeProocess:
:
getId
).
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
// 流程预览功能无需判断当前节点是否一致
if
(
auditNodeProocess
!=
null
&&
!
StringUtils
.
equals
(
currentNodeString
,
auditNodeProocess
.
getLogoTitle
()))
{
throw
new
CheckedException
(
"记录的流程节点和当前执行节点不匹配"
);
}
List
<
TProcessNode
>
processNodeList
=
processVo
.
getProcessNodeList
();
List
<
TNodeRoute
>
nodeRouteList
=
processVo
.
getNodeRouteList
();
//判断当前节点类型,如果是选择节点则进行条件表达式判断判断
TProcessNode
currentNode
=
null
;
for
(
TProcessNode
processNode
:
processNodeList
)
{
if
(
StringUtils
.
equals
(
currentNodeString
,
processNode
.
getLogoTitle
()))
{
currentNode
=
processNode
;
}
}
if
(
currentNode
==
null
)
{
throw
new
CheckedException
(
"未获取到当前节点"
);
}
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_TYPE_CHOICE
,
currentNode
.
getType
()))
{
// 当前节点为选择节点,获取当前节点路由类型
List
<
TNodeRouteCondition
>
nodeRouteConditionList
=
Lists
.
newArrayList
();
for
(
TNodeRoute
nodeRoute
:
nodeRouteList
)
{
if
(
StringUtils
.
equals
(
currentNode
.
getLogoTitle
(),
nodeRoute
.
getPrewNode
()))
{
nodeRouteConditionList
.
addAll
(
nodeRoute
.
getNodeRouteConditionList
());
}
}
return
choiceGetNode
(
processVo
,
nodeRouteList
,
nodeRouteConditionList
,
currentNode
,
entity
,
auditType
,
loginUser
);
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_END
,
currentNode
.
getType
()))
{
TProcessNode
endNode
=
ProcessAuditUtil
.
getEndProcessNode
(
processVo
);
if
(
StringUtils
.
equals
(
currentNode
.
getId
(),
endNode
.
getId
()))
{
return
endNode
;
}
else
{
throw
new
CheckedException
(
"当前不是结束节点"
);
}
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_BEGIN
,
currentNode
.
getType
())
||
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_SERVICE
,
currentNode
.
getType
()))
{
//查找下个节点
try
{
TNodeRoute
nexTNodeRoute
=
ProcessAuditUtil
.
getNexTNodeRoute
(
nodeRouteList
,
currentNodeString
);
saveNodeProcess
(
processVo
,
nexTNodeRoute
.
getNextNode
(),
id
,
auditType
);
return
validateTwoNextNode
(
processVo
,
nexTNodeRoute
.
getNextNode
(),
id
,
nexTNodeRoute
.
getRouteType
(),
auditType
,
entity
,
loginUser
);
}
catch
(
Exception
e
){
if
(
Common
.
isEmpty
(
processVo
.
getIsPreview
())){
throw
e
;
}
return
null
;
}
}
else
{
throw
new
CheckedException
(
"未知的流程节点类型"
);
}
}
/**
* 通过表中配置的字段名称去取对应判断条件
* @param type 流程类型:类型 1不购买商险申请
* @return TProcessApprovalConf
**/
private
TProcessApprovalConf
getProcessApprovalConf
(
String
type
)
{
return
null
;
// todo 找到对应的流程查看判断的类名和字段名
// R<TProcessApprovalConf> processApprovalConfR = remoteProcessService.getRecordbyTypeAndParentId(type);
// if (processApprovalConfR != null && processApprovalConfR.getData() != null && CommonConstants.SUCCESS == processApprovalConfR.getCode()) {
// return processApprovalConfR.getData();
// } else {
// throw new CheckedException("未获取到对应流程配置");
// }
// throw new CheckedException("调用流程服务返回数据为空");
}
/**
* 校验下一个节点
* @param processVo 流程配置信息
* @param currentNodeString 当前节点
* @param id 实体id
* @param routeType 上一个路由类型
* @return TProcessNode
**/
protected
TProcessNode
validateTwoNextNode
(
ProcessVo
processVo
,
String
currentNodeString
,
String
id
,
String
routeType
,
String
auditType
,
T
entity
,
YifuUser
loginUser
)
{
List
<
TProcessNode
>
processNodeList
=
processVo
.
getProcessNodeList
();
// 判断当前节点类型,如果是选择节点则进行条件表达式判断判断
TProcessNode
currentNode
=
null
;
for
(
TProcessNode
processNode
:
processNodeList
)
{
if
(
StringUtils
.
equals
(
currentNodeString
,
processNode
.
getLogoTitle
()))
{
currentNode
=
processNode
;
}
}
if
(
Common
.
isEmpty
(
currentNode
)){
throw
new
CheckedException
(
"未获取到当前节点,请联系管理员处理"
);
}
// 1.7.5 未引入抄送逻辑:获取下个抄送节点信息(暂未引入)
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_TYPE_CHOICE
,
currentNode
.
getType
()))
{
return
getNextNode
(
processVo
,
currentNodeString
,
id
,
auditType
,
entity
,
loginUser
);
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_SERVICE
,
currentNode
.
getType
()))
{
if
(
StringUtils
.
equals
(
routeType
,
CommonConstants
.
ONE_STRING
))
{
// 是审批节点
return
currentNode
;
}
else
if
(
StringUtils
.
equals
(
routeType
,
CommonConstants
.
THREE_STRING
))
{
// 1.7.5 未引入抄送逻辑
// 继续找下一个节点
return
getNextNode
(
processVo
,
currentNode
.
getLogoTitle
(),
id
,
auditType
,
entity
,
loginUser
);
}
else
{
throw
new
CheckedException
(
"未知的节点"
);
}
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_BEGIN
,
currentNode
.
getType
()))
{
return
getNextNode
(
processVo
,
currentNode
.
getLogoTitle
(),
id
,
auditType
,
entity
,
loginUser
);
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_END
,
currentNode
.
getType
()))
{
return
getNextNode
(
processVo
,
currentNode
.
getLogoTitle
(),
id
,
auditType
,
entity
,
loginUser
);
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_EMBED
,
currentNode
.
getType
()))
{
return
getNextNode
(
processVo
,
currentNode
.
getLogoTitle
(),
id
,
auditType
,
entity
,
loginUser
);
}
else
{
throw
new
CheckedException
(
"未知的节点"
);
}
}
/**
* 保存经过流程节点记录
* @param processVo
* @param nextNodeString
* @param entityId
**/
protected
void
saveNodeProcess
(
ProcessVo
processVo
,
String
nextNodeString
,
String
entityId
,
String
type
)
{
TProcessNode
processNode
=
null
;
for
(
TProcessNode
node
:
processVo
.
getProcessNodeList
())
{
if
(
StringUtils
.
equals
(
nextNodeString
,
node
.
getLogoTitle
()))
{
processNode
=
node
;
}
}
if
(
processNode
==
null
)
{
throw
new
CheckedException
(
"节点id为空"
);
}
TAuditNodeProocess
auditNodeProocess
=
new
TAuditNodeProocess
();
saveProcessNodeProcess
(
processVo
,
entityId
,
type
,
processNode
,
auditNodeProocess
);
}
/**
* 保存经过流程节点记录
* @param processVo
* @param entityId
* @param processNode
* @param auditNodeProocess
**/
private
void
saveProcessNodeProcess
(
ProcessVo
processVo
,
String
entityId
,
String
type
,
TProcessNode
processNode
,
TAuditNodeProocess
auditNodeProocess
)
{
auditNodeProocess
.
setDomainId
(
entityId
);
auditNodeProocess
.
setNodeId
(
processNode
.
getId
());
auditNodeProocess
.
setProcessId
(
processNode
.
getProcessId
());
auditNodeProocess
.
setCreateTime
(
LocalDateTime
.
now
());
// todo 新版流程审批默认主节点
auditNodeProocess
.
setMainType
(
CommonConstants
.
ZERO_STRING
);
auditNodeProocess
.
setLogoTitle
(
processNode
.
getLogoTitle
());
auditNodeProocess
.
setNodeType
(
processNode
.
getType
());
auditNodeProocess
.
setNodeName
(
processNode
.
getName
());
auditNodeProocess
.
setProcessName
(
processVo
.
getName
());
auditNodeProocess
.
setDeleteFlag
(
CommonConstants
.
ZERO_STRING
);
auditNodeProocess
.
setType
(
type
);
auditNodeProocessService
.
save
(
auditNodeProocess
);
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TApprovalRecordServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Maps
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TApprovalRecordMapper
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TApprovalRecordService
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TApprovalRecordSearchVo
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.List
;
import
java.util.Map
;
/**
* 审批记录表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Log4j2
@Service
public
class
TApprovalRecordServiceImpl
extends
ServiceImpl
<
TApprovalRecordMapper
,
TApprovalRecord
>
implements
TApprovalRecordService
{
/**
* 审批记录表简单分页查询
* @param tApprovalRecord 审批记录表
* @return
*/
@Override
public
IPage
<
TApprovalRecord
>
getTApprovalRecordPage
(
Page
<
TApprovalRecord
>
page
,
TApprovalRecordSearchVo
tApprovalRecord
){
return
baseMapper
.
getTApprovalRecordPage
(
page
,
tApprovalRecord
);
}
/**
* 通过实体id和审核类型查询所有的审核记录
*
* @param domainId 实体id
* @param auditType 审核类型 0不购买商险审核
* @return R<Map < String, Object>> key=auditInfo表示审批记录列表
**/
@Override
public
R
<
Map
<
String
,
Object
>>
getAuditInfoByDomainIdAndAuditType
(
String
domainId
,
String
auditType
)
{
Map
<
String
,
Object
>
resultMap
=
Maps
.
newHashMap
();
// 获取审批列表
List
<
TApprovalRecord
>
auditInfoList
=
baseMapper
.
getApprovalRecordList
(
domainId
,
auditType
);
resultMap
.
put
(
"auditInfo"
,
auditInfoList
);
return
new
R
<>(
resultMap
);
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TAuditCopyInfoServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo
;
import
com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TAuditCopyInfoMapper
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TAuditCopyInfoService
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
/**
* 审批抄送记录信息表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
*/
@Log4j2
@Service
public
class
TAuditCopyInfoServiceImpl
extends
ServiceImpl
<
TAuditCopyInfoMapper
,
TAuditCopyInfo
>
implements
TAuditCopyInfoService
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TAuditNodeProocessServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TAuditNodeProocessMapper
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TAuditNodeProocessService
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
/**
* 审批主流程记录表节点表
*
* @author chenyuxi
* @date 2025-01-10 17:47:32
* @since 1.7.5
*/
@Log4j2
@Service
public
class
TAuditNodeProocessServiceImpl
extends
ServiceImpl
<
TAuditNodeProocessMapper
,
TAuditNodeProocess
>
implements
TAuditNodeProocessService
{
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TInsuranceUnpurchaseApplyServiceImpl.java
View file @
5c5a87ea
...
...
@@ -4,24 +4,39 @@ import com.alibaba.excel.EasyExcel;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceUnpurchaseApply
;
import
com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceUnpurchaseApplyMapper
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceTypeRateService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceUnpurchaseApplyService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.impl.process.TInsuranceUnpurchaseApplyAuditProcess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceUnpurchaseApplySearchVo
;
import
lombok.extern.log4j.Log4j2
;
import
org.apache.commons.lang.ArrayUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 含风险项目不购买申请表
...
...
@@ -32,6 +47,11 @@ import java.util.List;
@Log4j2
@Service
public
class
TInsuranceUnpurchaseApplyServiceImpl
extends
ServiceImpl
<
TInsuranceUnpurchaseApplyMapper
,
TInsuranceUnpurchaseApply
>
implements
TInsuranceUnpurchaseApplyService
{
@Resource
@Lazy
private
TInsuranceUnpurchaseApplyAuditProcess
tInsuranceUnpurchaseApplyAuditProcess
;
/**
* 含风险项目不购买申请表简单分页查询
*
...
...
@@ -43,6 +63,7 @@ public class TInsuranceUnpurchaseApplyServiceImpl extends ServiceImpl<TInsurance
return
baseMapper
.
getTInsuranceUnpurchaseApplyPage
(
page
,
tInsuranceUnpurchaseApply
);
}
@Override
public
R
deleteById
(
String
id
)
{
TInsuranceUnpurchaseApply
apply
=
baseMapper
.
selectById
(
id
);
if
(
Common
.
isNotNull
(
apply
))
{
...
...
@@ -100,4 +121,101 @@ public class TInsuranceUnpurchaseApplyServiceImpl extends ServiceImpl<TInsurance
log
.
error
(
"执行异常"
,
e
);
}
}
/**
* 报价单审核分页
*
* @param page 分页信息
* @param unpurchaseApplySearchVo 不购买申请查询信息
* @param userId 登录用户id
* @param type 0待审核、1已处理、2抄送我
* @return IPage
*/
@Override
public
IPage
<
TInsuranceUnpurchaseApply
>
getAuditPage
(
Page
<
TInsuranceUnpurchaseApply
>
page
,
TInsuranceUnpurchaseApplySearchVo
unpurchaseApplySearchVo
,
String
userId
,
String
type
)
{
IPage
<
TInsuranceUnpurchaseApply
>
auditUnpurchaseIPage
;
if
(
StringUtils
.
equals
(
CommonConstants
.
ZERO_STRING
,
type
))
{
auditUnpurchaseIPage
=
baseMapper
.
getAuditPage
(
page
,
unpurchaseApplySearchVo
,
userId
);
}
else
if
(
StringUtils
.
equals
(
CommonConstants
.
ONE_STRING
,
type
))
{
auditUnpurchaseIPage
=
baseMapper
.
getHistoryHandlePage
(
page
,
unpurchaseApplySearchVo
,
userId
);
}
else
if
(
StringUtils
.
equals
(
CommonConstants
.
TWO_STRING
,
type
))
{
auditUnpurchaseIPage
=
baseMapper
.
getCopyPage
(
page
,
unpurchaseApplySearchVo
,
userId
);
}
else
{
return
null
;
}
return
auditUnpurchaseIPage
;
}
/**
* 审核数量
*
* @param userId 登录用户id
* @return IPage
*/
@Override
public
Map
<
String
,
Integer
>
getAuditCount
(
String
userId
)
{
Map
<
String
,
Integer
>
auditCountMap
=
new
HashMap
<>();
Integer
pendingCount
=
baseMapper
.
getAuditCount
(
userId
);
Integer
processedCount
=
baseMapper
.
getHistoryHandleCount
(
userId
);
auditCountMap
.
put
(
"pending"
,
pendingCount
);
auditCountMap
.
put
(
"processed"
,
processedCount
);
auditCountMap
.
put
(
"copy"
,
0
);
return
auditCountMap
;
}
/**
* 提交审核
* @param id 实体id
* @return R<String>
**/
@Transactional
@Override
public
R
<
String
>
commitOne
(
String
id
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
==
null
||
Common
.
isEmpty
(
user
.
getId
()))
{
return
R
.
failed
(
CommonConstants
.
PLEASE_LOG_IN
);
}
TInsuranceUnpurchaseApply
entity
=
this
.
getById
(
id
);
if
(
entity
==
null
){
return
R
.
failed
(
ResultConstants
.
FAIL_INFO_NO_MODEL
);
}
if
(!
StringUtils
.
equals
(
entity
.
getStatus
(),
CommonConstants
.
ONE_STRING
)){
return
R
.
failed
(
"当前记录不为待提交状态"
);
}
String
[]
reasonType
=
{
"1"
,
"2"
};
if
(!
ArrayUtils
.
contains
(
reasonType
,
entity
.
getReasonType
()))
{
return
R
.
failed
(
"未维护【不购买原因】选项,请联系管理员"
);
}
// “已购买社保" 并且“项目有审批通过记录”,无需发起审核流程
if
(
CommonConstants
.
ONE_STRING
.
equals
(
entity
.
getReasonType
())
&&
CommonConstants
.
ZERO_STRING
.
equals
(
entity
.
getAuditFlag
())){
return
R
.
failed
(
"【已购买社保】并且【项目有审批通过记录】,无需发起审核流程"
);
}
String
[]
companyFlag
=
{
"0"
,
"1"
};
if
(!
ArrayUtils
.
contains
(
companyFlag
,
entity
.
getCompanyFlag
()))
{
return
R
.
failed
(
"未维护【申请人是否属于子分公司】,请联系管理员"
);
}
if
(
Common
.
isEmpty
(
entity
.
getCreateUserDeptId
())){
return
R
.
failed
(
"申请人所属部门id不能为空"
);
}
// 传流程类型 1不购买商险申请,审核类型 0不购买商险审核
// R<List<SysUser>> auditUserListR = tInsuranceUnpurchaseApplyAuditProcess.commitAuditUserList(id, user, entity.getCreateUserDeptId(), CommonConstants.ONE_STRING, CommonConstants.ZERO_STRING,
// "",entity.getApplyNo(),entity,TInsuranceUnpurchaseApply.class);
// if (auditUserListR == null || auditUserListR.getCode() != CommonConstants.SUCCESS || auditUserListR.getData() == null) {
// throw new CheckedException("获取审批人失败,请联系管理员");
// }
entity
.
setStatus
(
CommonConstants
.
TWO_STRING
);
this
.
updateById
(
entity
);
return
R
.
ok
(
null
,
"提交成功"
);
}
@Override
@Transactional
public
R
<
String
>
auditAndCommit
(
TInsuranceUnpurchaseApply
insuranceUnpurchaseApply
,
String
approvalResult
,
String
approvalOpinion
,
YifuUser
user
)
{
return
R
.
ok
(
"审核完毕"
);
// return tInsuranceUnpurchaseApplyAuditProcess.auditUserList(insuranceUnpurchaseApply.getId(), approvalResult, approvalOpinion, user, CommonConstants.ZERO_STRING,
// insuranceUnpurchaseApply, insuranceUnpurchaseApply.getCreateUserDeptId());
}
}
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/process/TInsuranceUnpurchaseApplyAuditProcess.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
service
.
insurance
.
impl
.
process
;
import
cn.hutool.core.date.DatePattern
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.exception.CheckedException
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceUnpurchaseApply
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceUnpurchaseApplyService
;
import
com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.impl.AbastractAuditProcess
;
import
com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceUnpurchaseApplySearchVo
;
import
com.yifu.cloud.plus.v1.yifu.process.constant.ProcessConstants
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
com.yifu.cloud.plus.v1.yifu.process.util.ProcessAuditUtil
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @auther wangan
* @date 2021/4/26
* 商机审核
*/
@Component
public
class
TInsuranceUnpurchaseApplyAuditProcess
extends
AbastractAuditProcess
<
TInsuranceUnpurchaseApply
,
TInsuranceUnpurchaseApplySearchVo
>
{
@Resource
private
TInsuranceUnpurchaseApplyService
tInsuranceUnpurchaseApplyService
;
@Override
public
R
<
String
>
auditSuccess
(
TInsuranceUnpurchaseApply
entity
,
TApprovalRecord
approvalRecord
,
YifuUser
loginUser
)
{
// 改实体审核状态为审核通过
entity
.
setAuditFlag
(
CommonConstants
.
THREE_STRING
);
boolean
res
=
tInsuranceUnpurchaseApplyService
.
updateById
(
entity
);
if
(
res
)
{
// todo 删除当前实体所有的流程节点,数据量太大影响审批效率
// 防止死锁,先查询再删除
TAuditNodeProocess
auditNodeProocessInfo
=
auditNodeProocessService
.
getOne
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
entity
.
getId
())
.
in
(
TAuditNodeProocess:
:
getType
,
approvalRecord
.
getAuditType
())
.
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
if
(
Common
.
isNotKong
(
auditNodeProocessInfo
))
{
auditNodeProocessService
.
remove
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
().
eq
(
TAuditNodeProocess:
:
getDomainId
,
entity
.
getId
())
.
in
(
TAuditNodeProocess:
:
getType
,
approvalRecord
.
getAuditType
()));
}
//记录末尾节点审核
//sysMessageInfoService.saveApprovalLastAgree(CrmConstants.OPPORTUNITY_MODUL_TYPE, approvalRecord);
}
return
R
.
ok
(
"审核通过"
);
}
@Override
public
R
<
String
>
auditSuccessAndNex
(
TInsuranceUnpurchaseApply
entity
,
List
<
SysUser
>
remoteSysUserList
,
TApprovalRecord
approvalRecord
)
{
return
R
.
ok
(
"审核通过"
);
}
@Override
public
R
<
String
>
auditFail
(
TInsuranceUnpurchaseApply
entity
,
TApprovalRecord
approvalRecord
)
{
// 以后有抄送再加逻辑:参照crm-更改之前抄送记录状态为0
// 改实体审核状态为审核不通过
entity
.
setAuditFlag
(
CommonConstants
.
FOUR_STRING
);
tInsuranceUnpurchaseApplyService
.
updateById
(
entity
);
// todo 删除当前实体所有的流程节点,数据量太大影响审批效率
// 防止死锁,先查询再删除
TAuditNodeProocess
auditNodeProocessInfo
=
auditNodeProocessService
.
getOne
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
entity
.
getId
())
.
in
(
TAuditNodeProocess:
:
getType
,
approvalRecord
.
getAuditType
())
.
last
(
CommonConstants
.
SQL_LIMIT_ONE
));
if
(
Common
.
isNotKong
(
auditNodeProocessInfo
))
{
auditNodeProocessService
.
remove
(
Wrappers
.<
TAuditNodeProocess
>
query
().
lambda
()
.
eq
(
TAuditNodeProocess:
:
getDomainId
,
entity
.
getId
())
.
in
(
TAuditNodeProocess:
:
getType
,
approvalRecord
.
getAuditType
()));
}
//记录末尾节点审核
//sysMessageInfoService.saveApprovalRejectToSubmit(CrmConstants.OPPORTUNITY_MODUL_TYPE, approvalRecord);
return
R
.
ok
(
"审核成功"
);
}
@Override
public
TProcessNode
choiceGetNode
(
ProcessVo
processVo
,
List
<
TNodeRoute
>
nodeRouteList
,
List
<
TNodeRouteCondition
>
nodeRouteConditionList
,
TProcessNode
currentNode
,
TInsuranceUnpurchaseApply
entity
,
String
type
,
YifuUser
loginUser
)
{
// 根据不购买原因判断 1 已购买社保 2 人员已离职选择
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_INSURANCEUNPURCHASE_REASON_TYPE
,
currentNode
.
getName
())){
TNodeRoute
nodeRoute
=
ProcessAuditUtil
.
getTNodeRoteByExpress
(
nodeRouteList
,
nodeRouteConditionList
,
entity
.
getReasonType
(),
null
);
saveNodeProcess
(
processVo
,
nodeRoute
.
getNextNode
(),
entity
.
getId
(),
type
);
return
validateTwoNextNode
(
processVo
,
nodeRoute
.
getNextNode
(),
entity
.
getId
(),
nodeRoute
.
getRouteType
(),
type
,
entity
,
loginUser
);
}
else
if
(
StringUtils
.
equals
(
ProcessConstants
.
PROCESS_NODE_INSURANCEUNPURCHASE_DEPT_PROPERTY
,
currentNode
.
getName
())){
// 根据申请部门 是否属于子分公司
TNodeRoute
nodeRoute
=
ProcessAuditUtil
.
getTNodeRoteByExpress
(
nodeRouteList
,
nodeRouteConditionList
,
entity
.
getCompanyFlag
(),
null
);
saveNodeProcess
(
processVo
,
nodeRoute
.
getNextNode
(),
entity
.
getId
(),
type
);
return
validateTwoNextNode
(
processVo
,
nodeRoute
.
getNextNode
(),
entity
.
getId
(),
nodeRoute
.
getRouteType
(),
type
,
entity
,
loginUser
);
}
else
{
throw
new
CheckedException
(
"未知的条件节点类型,请联系管理员"
);
}
}
@Override
public
R
<
String
>
sendMessage
(
List
<
SysUser
>
users
,
TInsuranceUnpurchaseApply
entity
,
String
type
,
TApprovalRecord
approvalRecord
)
{
sendMessageToWx
(
users
,
entity
,
type
,
approvalRecord
);
return
R
.
ok
(
null
,
ResultConstants
.
SUCCESS_INFO
);
}
/**
* 根据事业部条线获取审批用户
* @param nodePrimission
* @param entity
* @return List<SysUser>
**/
@Override
public
List
<
SysUser
>
getDivisionAuditUser
(
TNodePrimission
nodePrimission
,
TInsuranceUnpurchaseApply
entity
)
{
SysUser
remoteSysUser
=
null
;
List
<
SysUser
>
remoteSysUserList
=
new
ArrayList
<>();
if
(
CommonConstants
.
SIX_INT
==
nodePrimission
.
getType
().
intValue
())
{
// 6.指定事业部审批
if
(
Common
.
isEmpty
(
nodePrimission
.
getDivisionIdentification
()))
{
throw
new
CheckedException
(
"未查询当前节点配置的事业部审批人标识"
);
}
// todo 根据配置条件查找用户
// remoteSysUserList = RemoteRequestUtil.getUserByDivisionConfig(remoteUserService, advancePaymentEntity.getDivision(), advancePaymentEntity.getDivisionLine(), nodePrimission.getDivisionIdentification());
}
return
remoteSysUserList
;
}
/**
* 功能描述: 企业微信发送通知
* @Param: [users, customerContract, type 发送提示类型 1审批 2抄送]
*/
private
void
sendMessageToWx
(
List
<
SysUser
>
users
,
TInsuranceUnpurchaseApply
insuranceUnpurchaseApply
,
String
type
,
TApprovalRecord
approvalRecord
)
{
StringBuilder
sendUser
=
null
;
for
(
SysUser
user
:
users
)
{
if
(
Common
.
isNotKong
(
user
.
getWxMessage
()))
{
if
(
sendUser
==
null
)
{
sendUser
=
new
StringBuilder
(
user
.
getWxMessage
());
}
else
{
sendUser
=
sendUser
.
append
(
"|"
).
append
(
user
.
getWxMessage
());
}
}
}
if
(
sendUser
!=
null
)
{
RestTemplate
restTemplate
=
new
RestTemplate
();
Map
<
String
,
Object
>
requestMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
textcard
=
new
HashMap
<>();
textcard
.
put
(
"title"
,
"含风险项目不购买商险申请"
);
// todo
textcard
.
put
(
"page"
,
"pages/sale/page/businessAuditDetail/businessAuditDetail?businessId="
+
insuranceUnpurchaseApply
.
getId
());
// todo
textcard
.
put
(
"appid"
,
"111"
);
textcard
.
put
(
"emphasis_first_item"
,
false
);
List
<
Map
<
String
,
String
>>
contentItemList
=
new
ArrayList
<>();
Map
<
String
,
String
>
contentItemMap
=
new
HashMap
<>();
contentItemMap
.
put
(
"key"
,
"申请人:"
);
contentItemMap
.
put
(
"value"
,
insuranceUnpurchaseApply
.
getCreateName
().
length
()>
CommonConstants
.
THIRTY_INT
?
insuranceUnpurchaseApply
.
getCreateName
().
substring
(
CommonConstants
.
ZERO_INT
,
CommonConstants
.
TWENTY_SEVEN_INT
)+
"..."
:
insuranceUnpurchaseApply
.
getCreateName
());
contentItemList
.
add
(
contentItemMap
);
contentItemMap
=
new
HashMap
<>();
contentItemMap
.
put
(
"key"
,
"项目编码:"
);
contentItemMap
.
put
(
"value"
,
insuranceUnpurchaseApply
.
getDeptNo
());
contentItemList
.
add
(
contentItemMap
);
contentItemMap
=
new
HashMap
<>();
contentItemMap
.
put
(
"key"
,
"项目名称:"
);
contentItemMap
.
put
(
"value"
,
insuranceUnpurchaseApply
.
getDeptName
().
length
()>
CommonConstants
.
THIRTY_INT
?
insuranceUnpurchaseApply
.
getDeptName
().
substring
(
CommonConstants
.
ZERO_INT
,
CommonConstants
.
TWENTY_SEVEN_INT
)+
"..."
:
insuranceUnpurchaseApply
.
getDeptName
());
contentItemList
.
add
(
contentItemMap
);
// 不购买原因 1 已购买社保 2 人员已离职
Map
<
String
,
String
>
reasonTypeMap
=
new
HashMap
<>();
reasonTypeMap
.
put
(
"1"
,
"已购买社保"
);
reasonTypeMap
.
put
(
"2"
,
"人员已离职"
);
contentItemMap
=
new
HashMap
<>();
contentItemMap
.
put
(
"key"
,
"不购买原因:"
);
contentItemMap
.
put
(
"value"
,
reasonTypeMap
.
get
(
insuranceUnpurchaseApply
.
getReasonType
()));
contentItemList
.
add
(
contentItemMap
);
contentItemMap
=
new
HashMap
<>();
contentItemMap
.
put
(
"key"
,
"不购买人数:"
);
// todo 等雨辰的字段
contentItemMap
.
put
(
"value"
,
insuranceUnpurchaseApply
.
getDeptNo
());
contentItemList
.
add
(
contentItemMap
);
textcard
.
put
(
"content_item"
,
contentItemList
);
requestMap
.
put
(
"touser"
,
sendUser
);
requestMap
.
put
(
"msgtype"
,
"miniprogram_notice"
);
requestMap
.
put
(
"miniprogram_notice"
,
textcard
);
requestMap
.
put
(
"enable_id_trans"
,
0
);
requestMap
.
put
(
"enable_duplicate_check"
,
0
);
requestMap
.
put
(
"duplicate_check_interval"
,
1800
);
// todo 必须加上header说明 等房哥的企微
// if (!wxConfig.sendAppTextCard(restTemplate, requestMap)) {
// wxConfig.sendAppTextCard(restTemplate, requestMap);
// }
}
}
}
yifu-insurances/yifu-insurances-biz/src/main/resources/application-test.yml
View file @
5c5a87ea
...
...
@@ -35,3 +35,20 @@ ekp:
docStatus
:
'
20'
LoginName
:
'
admin'
docSubject
:
'
接口发起流程'
# spring security 配置
security
:
oauth2
:
resource
:
loadBalanced
:
true
token-info-uri
:
http://yifu-auth/oauth/check_token
ignore
:
# 通用放行URL,服务个性化,请在对应配置文件覆盖
urls
:
-
/v3/api-docs
-
/swagger-ui/**
-
/tapprovalrecord/getAuditInfoByDomainIdAndAuditType
-
/tinsuranceunpurchaseapply/getAuditPage
-
/tinsuranceunpurchaseapply/getAuditCount
-
/tinsuranceunpurchaseapply/commitOne
-
/tinsuranceunpurchaseapply/audit
yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/insurances/TApprovalRecordMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TApprovalRecordMapper"
>
<resultMap
id=
"tApprovalRecordMap"
type=
"com.yifu.cloud.plus.v1.yifu.insurances.entity.TApprovalRecord"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"flowId"
column=
"flow_id"
/>
<result
property=
"domainId"
column=
"domain_id"
/>
<result
property=
"nodeId"
column=
"node_id"
/>
<result
property=
"approvalMan"
column=
"approval_man"
/>
<result
property=
"approvalManName"
column=
"approval_man_name"
/>
<result
property=
"approvalTime"
column=
"approval_time"
/>
<result
property=
"approvalResult"
column=
"approval_result"
/>
<result
property=
"approvalOpinion"
column=
"approval_opinion"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
/>
<result
property=
"preFlag"
column=
"pre_flag"
/>
<result
property=
"submitMan"
column=
"submit_man"
/>
<result
property=
"submitManName"
column=
"submit_man_name"
/>
<result
property=
"reason"
column=
"reason"
/>
<result
property=
"auditType"
column=
"audit_type"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"nodeName"
column=
"node_name"
/>
<result
property=
"entityName"
column=
"entity_name"
/>
<result
property=
"submitCreateTime"
column=
"submit_create_time"
/>
<result
property=
"backFlag"
column=
"back_flag"
/>
<result
property=
"backNodeName"
column=
"back_node_name"
/>
<result
property=
"backNodeId"
column=
"back_node_id"
/>
<result
property=
"addSignNodeId"
column=
"add_sign_node_id"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.id,
a.flow_id,
a.domain_id,
a.node_id,
a.approval_man,
a.approval_man_name,
a.approval_time,
a.approval_result,
a.approval_opinion,
a.delete_flag,
a.pre_flag,
a.submit_man,
a.submit_man_name,
a.reason,
a.audit_type,
a.create_time,
a.node_name,
a.entity_name,
a.submit_create_time,
a.back_flag,
a.back_node_name,
a.back_node_id,
a.add_sign_node_id
</sql>
<sql
id=
"tApprovalRecord_where"
>
<if
test=
"tApprovalRecord != null"
>
<if
test=
"tApprovalRecord.id != null and tApprovalRecord.id.trim() != ''"
>
AND a.id = #{tApprovalRecord.id}
</if>
<if
test=
"tApprovalRecord.flowId != null and tApprovalRecord.flowId.trim() != ''"
>
AND a.flow_id = #{tApprovalRecord.flowId}
</if>
<if
test=
"tApprovalRecord.domainId != null and tApprovalRecord.domainId.trim() != ''"
>
AND a.domain_id = #{tApprovalRecord.domainId}
</if>
<if
test=
"tApprovalRecord.nodeId != null and tApprovalRecord.nodeId.trim() != ''"
>
AND a.node_id = #{tApprovalRecord.nodeId}
</if>
<if
test=
"tApprovalRecord.approvalMan != null and tApprovalRecord.approvalMan.trim() != ''"
>
AND a.approval_man = #{tApprovalRecord.approvalMan}
</if>
<if
test=
"tApprovalRecord.approvalManName != null and tApprovalRecord.approvalManName.trim() != ''"
>
AND a.approval_man_name = #{tApprovalRecord.approvalManName}
</if>
<if
test=
"tApprovalRecord.approvalTime != null"
>
AND a.approval_time = #{tApprovalRecord.approvalTime}
</if>
<if
test=
"tApprovalRecord.approvalResult != null and tApprovalRecord.approvalResult.trim() != ''"
>
AND a.approval_result = #{tApprovalRecord.approvalResult}
</if>
<if
test=
"tApprovalRecord.approvalOpinion != null and tApprovalRecord.approvalOpinion.trim() != ''"
>
AND a.approval_opinion = #{tApprovalRecord.approvalOpinion}
</if>
<if
test=
"tApprovalRecord.deleteFlag != null and tApprovalRecord.deleteFlag.trim() != ''"
>
AND a.delete_flag = #{tApprovalRecord.deleteFlag}
</if>
<if
test=
"tApprovalRecord.preFlag != null and tApprovalRecord.preFlag.trim() != ''"
>
AND a.pre_flag = #{tApprovalRecord.preFlag}
</if>
<if
test=
"tApprovalRecord.submitMan != null and tApprovalRecord.submitMan.trim() != ''"
>
AND a.submit_man = #{tApprovalRecord.submitMan}
</if>
<if
test=
"tApprovalRecord.submitManName != null and tApprovalRecord.submitManName.trim() != ''"
>
AND a.submit_man_name = #{tApprovalRecord.submitManName}
</if>
<if
test=
"tApprovalRecord.reason != null and tApprovalRecord.reason.trim() != ''"
>
AND a.reason = #{tApprovalRecord.reason}
</if>
<if
test=
"tApprovalRecord.auditType != null and tApprovalRecord.auditType.trim() != ''"
>
AND a.audit_type = #{tApprovalRecord.auditType}
</if>
<if
test=
"tApprovalRecord.createTime != null"
>
AND a.create_time = #{tApprovalRecord.createTime}
</if>
<if
test=
"tApprovalRecord.nodeName != null and tApprovalRecord.nodeName.trim() != ''"
>
AND a.node_name = #{tApprovalRecord.nodeName}
</if>
<if
test=
"tApprovalRecord.entityName != null and tApprovalRecord.entityName.trim() != ''"
>
AND a.entity_name = #{tApprovalRecord.entityName}
</if>
<if
test=
"tApprovalRecord.submitCreateTime != null"
>
AND a.submit_create_time = #{tApprovalRecord.submitCreateTime}
</if>
<if
test=
"tApprovalRecord.backFlag != null and tApprovalRecord.backFlag.trim() != ''"
>
AND a.back_flag = #{tApprovalRecord.backFlag}
</if>
<if
test=
"tApprovalRecord.backNodeName != null and tApprovalRecord.backNodeName.trim() != ''"
>
AND a.back_node_name = #{tApprovalRecord.backNodeName}
</if>
<if
test=
"tApprovalRecord.backNodeId != null and tApprovalRecord.backNodeId.trim() != ''"
>
AND a.back_node_id = #{tApprovalRecord.backNodeId}
</if>
<if
test=
"tApprovalRecord.addSignNodeId != null and tApprovalRecord.addSignNodeId.trim() != ''"
>
AND a.add_sign_node_id = #{tApprovalRecord.addSignNodeId}
</if>
</if>
</sql>
<!--tApprovalRecord简单分页查询-->
<select
id=
"getTApprovalRecordPage"
resultMap=
"tApprovalRecordMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_approval_record a
<where>
1=1
<include
refid=
"tApprovalRecord_where"
/>
</where>
</select>
<!--查询审核记录数据-->
<select
id=
"getApprovalRecordList"
resultMap=
"tApprovalRecordMap"
>
SELECT
a.id,
a.flow_id,
a.domain_id,
a.node_id,
a.approval_man,
a.approval_man_name,
a.approval_time,
a.approval_result,
a.approval_opinion,
a.submit_man,
a.submit_man_name,
a.reason,
a.create_time,
a.node_name,
a.entity_name,
a.submit_create_time
FROM t_approval_record a
<where>
a.domain_id = #{domainId} AND a.audit_type = #{auditType}
AND a.delete_flag = '0'
order by a.create_time,a.id
</where>
</select>
</mapper>
yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/insurances/TAuditCopyInfoMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TAuditCopyInfoMapper"
>
<resultMap
id=
"tAuditCopyInfoMap"
type=
"com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditCopyInfo"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"auditUserId"
column=
"audit_user_id"
/>
<result
property=
"auditUser"
column=
"audit_user"
/>
<result
property=
"domainId"
column=
"domain_id"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"flowId"
column=
"flow_id"
/>
<result
property=
"nodeId"
column=
"node_id"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
/>
<result
property=
"nodeName"
column=
"node_name"
/>
<result
property=
"auditType"
column=
"audit_type"
/>
<result
property=
"preFlag"
column=
"pre_flag"
/>
<result
property=
"submitMan"
column=
"submit_man"
/>
<result
property=
"submitManName"
column=
"submit_man_name"
/>
<result
property=
"submitCreateTime"
column=
"submit_create_time"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.id,
a.audit_user_id,
a.audit_user,
a.domain_id,
a.create_time,
a.flow_id,
a.node_id,
a.delete_flag,
a.node_name,
a.audit_type,
a.pre_flag,
a.submit_man,
a.submit_man_name,
a.submit_create_time
</sql>
<sql
id=
"tAuditCopyInfo_where"
>
<if
test=
"tAuditCopyInfo != null"
>
<if
test=
"tAuditCopyInfo.id != null and tAuditCopyInfo.id.trim() != ''"
>
AND a.id = #{tAuditCopyInfo.id}
</if>
<if
test=
"tAuditCopyInfo.auditUserId != null and tAuditCopyInfo.auditUserId.trim() != ''"
>
AND a.audit_user_id = #{tAuditCopyInfo.auditUserId}
</if>
<if
test=
"tAuditCopyInfo.auditUser != null and tAuditCopyInfo.auditUser.trim() != ''"
>
AND a.audit_user = #{tAuditCopyInfo.auditUser}
</if>
<if
test=
"tAuditCopyInfo.domainId != null and tAuditCopyInfo.domainId.trim() != ''"
>
AND a.domain_id = #{tAuditCopyInfo.domainId}
</if>
<if
test=
"tAuditCopyInfo.createTime != null"
>
AND a.create_time = #{tAuditCopyInfo.createTime}
</if>
<if
test=
"tAuditCopyInfo.flowId != null and tAuditCopyInfo.flowId.trim() != ''"
>
AND a.flow_id = #{tAuditCopyInfo.flowId}
</if>
<if
test=
"tAuditCopyInfo.nodeId != null and tAuditCopyInfo.nodeId.trim() != ''"
>
AND a.node_id = #{tAuditCopyInfo.nodeId}
</if>
<if
test=
"tAuditCopyInfo.deleteFlag != null and tAuditCopyInfo.deleteFlag.trim() != ''"
>
AND a.delete_flag = #{tAuditCopyInfo.deleteFlag}
</if>
<if
test=
"tAuditCopyInfo.nodeName != null and tAuditCopyInfo.nodeName.trim() != ''"
>
AND a.node_name = #{tAuditCopyInfo.nodeName}
</if>
<if
test=
"tAuditCopyInfo.auditType != null and tAuditCopyInfo.auditType.trim() != ''"
>
AND a.audit_type = #{tAuditCopyInfo.auditType}
</if>
<if
test=
"tAuditCopyInfo.preFlag != null and tAuditCopyInfo.preFlag.trim() != ''"
>
AND a.pre_flag = #{tAuditCopyInfo.preFlag}
</if>
<if
test=
"tAuditCopyInfo.submitMan != null and tAuditCopyInfo.submitMan.trim() != ''"
>
AND a.submit_man = #{tAuditCopyInfo.submitMan}
</if>
<if
test=
"tAuditCopyInfo.submitManName != null and tAuditCopyInfo.submitManName.trim() != ''"
>
AND a.submit_man_name = #{tAuditCopyInfo.submitManName}
</if>
<if
test=
"tAuditCopyInfo.submitCreateTime != null"
>
AND a.submit_create_time = #{tAuditCopyInfo.submitCreateTime}
</if>
</if>
</sql>
</mapper>
yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/insurances/TAuditNodeProocessMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TAuditNodeProocessMapper"
>
<resultMap
id=
"tAuditNodeProocessMap"
type=
"com.yifu.cloud.plus.v1.yifu.insurances.entity.TAuditNodeProocess"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"processId"
column=
"process_id"
/>
<result
property=
"nodeId"
column=
"node_id"
/>
<result
property=
"nodeType"
column=
"node_type"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"domainId"
column=
"domain_id"
/>
<result
property=
"mainType"
column=
"main_type"
/>
<result
property=
"logoTitle"
column=
"logo_title"
/>
<result
property=
"nodeName"
column=
"node_name"
/>
<result
property=
"processName"
column=
"process_name"
/>
<result
property=
"parentProcessId"
column=
"parent_process_id"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"addSignParentNodeId"
column=
"add_sign_parent_node_id"
/>
<result
property=
"addSignDepartmentId"
column=
"add_sign_department_id"
/>
<result
property=
"domainName"
column=
"domain_name"
/>
<result
property=
"addSignApprovalMan"
column=
"add_sign_approval_man"
/>
<result
property=
"addSignApprovalManName"
column=
"add_sign_approval_man_name"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.id,
a.process_id,
a.node_id,
a.node_type,
a.create_time,
a.domain_id,
a.main_type,
a.logo_title,
a.node_name,
a.process_name,
a.parent_process_id,
a.delete_flag,
a.type,
a.add_sign_parent_node_id,
a.add_sign_department_id,
a.domain_name,
a.add_sign_approval_man,
a.add_sign_approval_man_name
</sql>
<sql
id=
"tAuditNodeProocess_where"
>
<if
test=
"tAuditNodeProocess != null"
>
<if
test=
"tAuditNodeProocess.id != null and tAuditNodeProocess.id.trim() != ''"
>
AND a.id = #{tAuditNodeProocess.id}
</if>
<if
test=
"tAuditNodeProocess.processId != null and tAuditNodeProocess.processId.trim() != ''"
>
AND a.process_id = #{tAuditNodeProocess.processId}
</if>
<if
test=
"tAuditNodeProocess.nodeId != null and tAuditNodeProocess.nodeId.trim() != ''"
>
AND a.node_id = #{tAuditNodeProocess.nodeId}
</if>
<if
test=
"tAuditNodeProocess.nodeType != null and tAuditNodeProocess.nodeType.trim() != ''"
>
AND a.node_type = #{tAuditNodeProocess.nodeType}
</if>
<if
test=
"tAuditNodeProocess.createTime != null"
>
AND a.create_time = #{tAuditNodeProocess.createTime}
</if>
<if
test=
"tAuditNodeProocess.domainId != null and tAuditNodeProocess.domainId.trim() != ''"
>
AND a.domain_id = #{tAuditNodeProocess.domainId}
</if>
<if
test=
"tAuditNodeProocess.mainType != null and tAuditNodeProocess.mainType.trim() != ''"
>
AND a.main_type = #{tAuditNodeProocess.mainType}
</if>
<if
test=
"tAuditNodeProocess.logoTitle != null and tAuditNodeProocess.logoTitle.trim() != ''"
>
AND a.logo_title = #{tAuditNodeProocess.logoTitle}
</if>
<if
test=
"tAuditNodeProocess.nodeName != null and tAuditNodeProocess.nodeName.trim() != ''"
>
AND a.node_name = #{tAuditNodeProocess.nodeName}
</if>
<if
test=
"tAuditNodeProocess.processName != null and tAuditNodeProocess.processName.trim() != ''"
>
AND a.process_name = #{tAuditNodeProocess.processName}
</if>
<if
test=
"tAuditNodeProocess.parentProcessId != null and tAuditNodeProocess.parentProcessId.trim() != ''"
>
AND a.parent_process_id = #{tAuditNodeProocess.parentProcessId}
</if>
<if
test=
"tAuditNodeProocess.deleteFlag != null and tAuditNodeProocess.deleteFlag.trim() != ''"
>
AND a.delete_flag = #{tAuditNodeProocess.deleteFlag}
</if>
<if
test=
"tAuditNodeProocess.type != null and tAuditNodeProocess.type.trim() != ''"
>
AND a.type = #{tAuditNodeProocess.type}
</if>
<if
test=
"tAuditNodeProocess.addSignParentNodeId != null and tAuditNodeProocess.addSignParentNodeId.trim() != ''"
>
AND a.add_sign_parent_node_id = #{tAuditNodeProocess.addSignParentNodeId}
</if>
<if
test=
"tAuditNodeProocess.addSignDepartmentId != null and tAuditNodeProocess.addSignDepartmentId.trim() != ''"
>
AND a.add_sign_department_id = #{tAuditNodeProocess.addSignDepartmentId}
</if>
<if
test=
"tAuditNodeProocess.domainName != null and tAuditNodeProocess.domainName.trim() != ''"
>
AND a.domain_name = #{tAuditNodeProocess.domainName}
</if>
<if
test=
"tAuditNodeProocess.addSignApprovalMan != null and tAuditNodeProocess.addSignApprovalMan.trim() != ''"
>
AND a.add_sign_approval_man = #{tAuditNodeProocess.addSignApprovalMan}
</if>
<if
test=
"tAuditNodeProocess.addSignApprovalManName != null and tAuditNodeProocess.addSignApprovalManName.trim() != ''"
>
AND a.add_sign_approval_man_name = #{tAuditNodeProocess.addSignApprovalManName}
</if>
</if>
</sql>
</mapper>
yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/insurances/TInsuranceUnpurchaseApplyMapper.xml
View file @
5c5a87ea
...
...
@@ -84,7 +84,7 @@
<include
refid=
"Base_Column_List"
/>
FROM t_insurance_unpurchase_apply a
<where>
1=1 and
a.DELETE_FLAG = '0'
a.DELETE_FLAG = '0'
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
</select>
...
...
@@ -95,7 +95,7 @@
count(1)
FROM t_insurance_unpurchase_apply a
<where>
1=1 and
a.DELETE_FLAG = '0'
a.DELETE_FLAG = '0'
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
</select>
...
...
@@ -119,8 +119,74 @@
ELSE a.STATUS END as "STATUS"
FROM t_insurance_unpurchase_apply a
<where>
1=1 and
a.DELETE_FLAG = '0'
a.DELETE_FLAG = '0'
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
</select>
<select
id=
"getAuditPage"
resultMap=
"tInsuranceUnpurchaseApplyMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_insurance_unpurchase_apply a
left join t_approval_record r on a.id=r.domain_id
<where>
a.DELETE_FLAG='0' and r.approval_man= #{userId} and r.audit_type='0' and r.approval_result = '2' and r.delete_flag='0'
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
order by r.CREATE_TIME asc
</select>
<select
id=
"getHistoryHandlePage"
resultMap=
"tInsuranceUnpurchaseApplyMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_insurance_unpurchase_apply a
left join (
select min(approval_time) approval_time,domain_id,approval_man from t_approval_record
where approval_result in('0','1') and audit_type = '0' and delete_flag='0'
group by domain_id,approval_man
) r on a.id=r.domain_id
<where>
a.DELETE_FLAG='0' and r.approval_man= #{userId}
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
order by r.approval_time desc
</select>
<select
id=
"getAuditCount"
resultType=
"integer"
>
SELECT count(1) FROM t_insurance_unpurchase_apply a
left join t_approval_record r on a.id=r.domain_id
<where>
a.DELETE_FLAG='0' and r.approval_man= #{userId} and r.audit_type='0' and r.approval_result = '2' and r.delete_flag='0'
</where>
</select>
<select
id=
"getHistoryHandleCount"
resultType=
"integer"
>
SELECT count(1) FROM t_insurance_unpurchase_apply a
left join (
select min(approval_time) approval_time,domain_id,approval_man from t_approval_record
where approval_result in('0','1') and audit_type = '0' and delete_flag='0'
group by domain_id,approval_man
) r on a.id=r.domain_id
<where>
a.DELETE_FLAG='0' and r.approval_man= #{userId}
</where>
</select>
<select
id=
"getCopyPage"
resultMap=
"tInsuranceUnpurchaseApplyMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_insurance_unpurchase_apply a
left join (
select min(create_time) create_time,domain_id,audit_user_id from t_audit_copy_info
where audit_type = '0' and delete_flag = '0'
group by domain_id,audit_user_id
) r on a.id=r.domain_id
<where>
a.DELETE_FLAG='0' and r.audit_user_id= #{userId}
<include
refid=
"tInsuranceUnpurchaseApply_where"
/>
</where>
order by r.create_time desc
</select>
</mapper>
yifu-process/.gitignore
0 → 100644
View file @
5c5a87ea
# 忽略匹配下列规则的Git 提交 V2.1.0
### gradle ###
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
### STS ###
.settings/
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
bin/
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
*.lock
rebel.xml
### NetBeans ###
nbproject/private/
build/
nbbuild/
nbdist/
.nb-gradle/
### maven ###
target/
*.war
*.ear
*.zip
*.tar
*.tar.gz
### logs ####
/logs/
*.log
### temp ignore ###
*.cache
*.diff
*.patch
*.tmp
*.java~
*.properties~
*.xml~
### system ignore ###
.DS_Store
Thumbs.db
Servers
.metadata
upload
gen_code
### node ###
node_modules
yifu-process/pom.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
yifu
</artifactId>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<version>
1.0.0
</version>
</parent>
<artifactId>
yifu-process
</artifactId>
<description>
审批流程
</description>
<packaging>
pom
</packaging>
<!--项目子模块-->
<modules>
<module>
yifu-process-api
</module>
<module>
yifu-process-biz
</module>
</modules>
</project>
yifu-process/yifu-process-api/pom.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
yifu
</artifactId>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<version>
1.0.0
</version>
</parent>
<artifactId>
yifu-process-api
</artifactId>
<packaging>
jar
</packaging>
<description>
审批流程服务 接口模块
</description>
<dependencies>
<!-- core 工具类 -->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-core
</artifactId>
</dependency>
<!--swagger 注解-->
<dependency>
<groupId>
io.swagger.core.v3
</groupId>
<artifactId>
swagger-annotations
</artifactId>
</dependency>
<!--mybatis 依赖-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-mybatis
</artifactId>
</dependency>
</dependencies>
</project>
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TDelayNodeConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* 定时流程节点配置
*
* @author hgw
* @date 2020-07-16 17:48:52
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_delay_node_config"
)
@Schema
(
description
=
"定时流程节点配置"
)
public
class
TDelayNodeConfig
extends
Model
<
TDelayNodeConfig
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"定时方式(0延时指定的分钟后执行/1指定一个时间点执行)不能为空"
)
@Length
(
max
=
1
,
message
=
"定时方式(0延时指定的分钟后执行/1指定一个时间点执行)不能超过1个字符"
)
@Schema
(
description
=
"定时方式(0延时指定的分钟后执行/1指定一个时间点执行)"
)
private
String
delayType
;
@Schema
(
description
=
"分钟"
)
private
Integer
minutes
;
@Schema
(
description
=
"时间"
)
private
LocalDateTime
time
;
@NotBlank
(
message
=
"流程节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"流程节点ID不能超过255个字符"
)
@Schema
(
description
=
"流程节点ID"
)
private
String
nodeId
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 流程节点配置表(规则配置)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_config"
)
@Schema
(
description
=
"流程节点配置表(规则配置)"
)
public
class
TNodeConfig
extends
Model
<
TNodeConfig
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"是否允许撤回(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否允许撤回(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否允许撤回(0是/1否)"
)
private
String
allowWithdraw
;
@NotBlank
(
message
=
"是否允许流程回溯(0是/1否)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否允许流程回溯(0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否允许流程回溯(0是/1否)"
)
private
String
allowBacktrack
;
@NotBlank
(
message
=
"是否发起处理提醒(0是/1否;提醒会在站内和移动端提醒)不能为空"
)
@Length
(
max
=
1
,
message
=
"是否发起处理提醒(0是/1否;提醒会在站内和移动端提醒)不能超过1个字符"
)
@Schema
(
description
=
"是否发起处理提醒(0是/1否;提醒会在站内和移动端提醒)"
)
private
String
allowDealRemind
;
@NotBlank
(
message
=
"节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"节点ID不能超过255个字符"
)
@Schema
(
description
=
"节点ID"
)
private
String
nodeId
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TNodeTimeoutConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 节点超时配置表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_node_timeout_config"
)
@Schema
(
description
=
"节点超时配置表"
)
public
class
TNodeTimeoutConfig
extends
Model
<
TNodeTimeoutConfig
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程是否超时(0不超时/1指定时长/2脚本)不能为空"
)
@Length
(
max
=
1
,
message
=
"流程是否超时(0不超时/1指定时长/2脚本)不能超过1个字符"
)
@Schema
(
description
=
"流程是否超时(0不超时/1指定时长/2脚本)"
)
private
String
timeOut
;
@Schema
(
description
=
"天数(TIME_OUT为2时启用)"
)
private
Integer
day
;
@Schema
(
description
=
"小时(TIME_OUT为2时启用)"
)
private
Integer
hour
;
@Length
(
max
=
1
,
message
=
"是否仅计算工作时间(TIME_OUT为2时启用,0是/1否)不能超过1个字符"
)
@Schema
(
description
=
"是否仅计算工作时间(TIME_OUT为2时启用,0是/1否)"
)
private
String
workHourFlag
;
@NotBlank
(
message
=
"节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"节点ID不能超过255个字符"
)
@Schema
(
description
=
"节点ID"
)
private
String
nodeId
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TProcess.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.time.LocalDateTime
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_process"
)
@Schema
(
description
=
"主流程表"
)
public
class
TProcess
extends
Model
<
TProcess
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"流程名称不能为空"
)
@Length
(
max
=
255
,
message
=
"流程名称不能超过255个字符"
)
@Schema
(
description
=
"流程名称"
)
private
String
name
;
@Length
(
max
=
255
,
message
=
"流程标识(系统自动生成MD5串)不能超过255个字符"
)
@Schema
(
description
=
"流程标识(系统自动生成MD5串)"
)
private
String
logoTitle
;
@NotBlank
(
message
=
"流程创建人不能为空"
)
@Length
(
max
=
255
,
message
=
"流程创建人不能超过255个字符"
)
@Schema
(
description
=
"流程创建人"
)
private
String
createUser
;
@Schema
(
description
=
"流程创建时间"
)
private
LocalDateTime
createDate
;
@Length
(
max
=
255
,
message
=
"流程更新人不能超过255个字符"
)
@Schema
(
description
=
"流程更新人"
)
private
String
updateUser
;
@Schema
(
description
=
"流程更新时间"
)
private
LocalDateTime
updateDate
;
@Length
(
max
=
255
,
message
=
"流程描述不能超过255个字符"
)
@Schema
(
description
=
"流程描述"
)
private
String
description
;
@Length
(
max
=
1
,
message
=
"删除表示 0未删除 1删除不能超过1个字符"
)
@Schema
(
description
=
"删除表示 0未删除 1删除"
)
private
String
deleteFlag
;
@Length
(
max
=
1
,
message
=
"是否通用不能超过1个字符"
)
@Schema
(
description
=
"是否通用0是1否"
)
private
String
commonUse
;
@Length
(
max
=
1
,
message
=
"是否在用不能超过1个字符"
)
@Schema
(
description
=
"是否在用 0在用 1历史"
)
private
String
processIsUse
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TProcessApprovalConf.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 审批配置表
*
* @author wangan
* @date 2020-12-07 14:08:38
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_process_approval_conf"
)
@Schema
(
description
=
"审批配置表"
)
public
class
TProcessApprovalConf
extends
Model
<
TProcessApprovalConf
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"字段名称不能为空"
)
@Length
(
max
=
32
,
message
=
"字段名称不能超过32个字符"
)
@Schema
(
description
=
"字段名称"
)
private
String
fieldName
;
@NotBlank
(
message
=
"字段值不能为空"
)
@Length
(
max
=
32
,
message
=
"字段值不能超过32个字符"
)
@Schema
(
description
=
"字段值"
)
private
String
fieldValue
;
@NotBlank
(
message
=
"类名不能为空"
)
@Length
(
max
=
32
,
message
=
"类名不能超过32个字符"
)
@Schema
(
description
=
"类名"
)
private
String
className
;
@Length
(
max
=
32
,
message
=
"主流程id不能超过32个字符"
)
@Schema
(
description
=
"主流程id"
)
private
String
processId
;
@NotBlank
(
message
=
"父配置id不能为空"
)
@Length
(
max
=
32
,
message
=
"父配置id不能超过32个字符"
)
@Schema
(
description
=
"父配置id"
)
private
String
parentId
;
@NotBlank
(
message
=
"类型不能为空"
)
@Length
(
max
=
1
,
message
=
"类型不能超过1个字符"
)
@Schema
(
description
=
"类型 1不购买商险申请"
)
private
String
type
;
@Length
(
max
=
1
,
message
=
"删除表示 0未删除 1删除不能超过1个字符"
)
@Schema
(
description
=
"删除表示 0未删除 1删除"
)
private
String
deleteFlag
;
@Length
(
max
=
100
,
message
=
"备注不能超过100个字符"
)
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/entity/TServiceTransferConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* 远程服务调用(在节点为服务调用节点时使用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_service_transfer_config"
)
@Schema
(
description
=
"远程服务调用(在节点为服务调用节点时使用)"
)
public
class
TServiceTransferConfig
extends
Model
<
TServiceTransferConfig
>
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@Schema
(
description
=
"主键"
)
private
String
id
;
@NotBlank
(
message
=
"服务协议(0jaxws/1jaxrs)不能为空"
)
@Length
(
max
=
1
,
message
=
"服务协议(0jaxws/1jaxrs)不能超过1个字符"
)
@Schema
(
description
=
"服务协议(0jaxws/1jaxrs)"
)
private
String
serviceAgreement
;
@NotBlank
(
message
=
"调用方式(0同步/1异步)不能为空"
)
@Length
(
max
=
1
,
message
=
"调用方式(0同步/1异步)不能超过1个字符"
)
@Schema
(
description
=
"调用方式(0同步/1异步)"
)
private
String
transferType
;
@NotBlank
(
message
=
"WSDL地址不能为空"
)
@Length
(
max
=
255
,
message
=
"WSDL地址不能超过255个字符"
)
@Schema
(
description
=
"WSDL地址"
)
private
String
wsdlAddress
;
@Length
(
max
=
255
,
message
=
"调用方法不能超过255个字符"
)
@Schema
(
description
=
"调用方法"
)
private
String
transferFunc
;
@NotBlank
(
message
=
"节点ID不能为空"
)
@Length
(
max
=
255
,
message
=
"节点ID不能超过255个字符"
)
@Schema
(
description
=
"节点ID"
)
private
String
nodeId
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/CheckNodeVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @program: yifu_cloud
* @description:
* @author: wangdayu
* @create: 2023-10-25 17:10
* @since:
*/
@Data
public
class
CheckNodeVo
implements
Serializable
{
private
String
PrewNode
;
private
String
NextNode
;
private
String
ProcessId
;
private
String
NodeRouteId
;
private
String
Field
;
private
String
LogoTitle
;
}
yifu-process/yifu-process-api/src/main/java/com/yifu/cloud/plus/v1/yifu/process/vo/TProcessViewVo.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcess
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.Set
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
TProcessViewVo
extends
TProcess
{
private
static
final
long
serialVersionUID
=
1L
;
@Schema
(
description
=
"类型 1不购买商险申请"
)
private
String
type
;
@Schema
(
description
=
"部门ids"
)
private
Set
<
String
>
departIds
;
@Schema
(
description
=
"用章类型"
)
private
Set
<
String
>
chapterUnits
;
@Schema
(
description
=
"删除部门ids"
)
private
Set
<
String
>
delDepartIds
;
@Schema
(
description
=
"删除用章类型"
)
private
Set
<
String
>
delChapterUnits
;
@Schema
(
description
=
"类型(条件查询用)"
)
private
String
processType
;
@Schema
(
description
=
"部门(条件查询用)"
)
private
String
departId
;
@Schema
(
description
=
"流程ids"
)
private
Set
<
String
>
processIds
;
@Schema
(
description
=
"指定权限类型"
)
private
Integer
nodePermissionType
;
@Schema
(
description
=
"指定权限处理节点"
)
private
String
role
;
}
yifu-process/yifu-process-biz/Dockerfile
0 → 100644
View file @
5c5a87ea
FROM
moxm/java:1.8-full
RUN
mkdir
-p
/yifu-process-biz
WORKDIR
yifu-process-biz
ARG
JAR_FILE=target/yifu-process-biz.jar
COPY
${JAR_FILE} app.jar
EXPOSE
25087
ENV
TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
CMD
sleep 60; java -jar app.jar $JAVA_OPTS
yifu-process/yifu-process-biz/build-prd.sh
0 → 100644
View file @
5c5a87ea
#!/usr/bin/env bash
mvn clean package
-Pprd
-Dmaven
.test.skip
=
true
docker:build
-DpushImage
\ No newline at end of file
yifu-process/yifu-process-biz/build-test.sh
0 → 100644
View file @
5c5a87ea
#!/usr/bin/env bash
mvn clean package
-Ptest
-Dmaven
.test.skip
=
true
docker:build
-DpushImage
yifu-process/yifu-process-biz/build.sh
0 → 100644
View file @
5c5a87ea
#!/usr/bin/env bash
mvn clean package
-Dmaven
.test.skip
=
true
docker:build
-DpushImage
yifu-process/yifu-process-biz/pom.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
yifu
</artifactId>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<version>
1.0.0
</version>
</parent>
<artifactId>
yifu-process-biz
</artifactId>
<description>
审批流程服务 业务模块
</description>
<packaging>
jar
</packaging>
<dependencies>
<!-- seata 依赖 -->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-seata
</artifactId>
</dependency>
<!--必备:undertow容器-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-undertow
</artifactId>
</dependency>
<!--upms api、model 模块-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-upms-api
</artifactId>
<version>
1.0.0
</version>
</dependency>
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-process-api
</artifactId>
<version>
1.0.0
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-process
</artifactId>
<version>
1.0.0
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-core
</artifactId>
</dependency>
<!--必备:日志处理-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-log
</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
</dependency>
<!--数据库-->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
<!--必备:安全模块-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-security
</artifactId>
</dependency>
<!--必备:swagger-->
<dependency>
<groupId>
com.yifu.cloud.plus.v1
</groupId>
<artifactId>
yifu-common-swagger
</artifactId>
</dependency>
<dependency>
<groupId>
commons-collections
</groupId>
<artifactId>
commons-collections
</artifactId>
<version>
3.2.2
</version>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<version>
5.8.0
</version>
<artifactId>
hutool-all
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<configuration>
<encoding>
UTF-8
</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>
xls
</nonFilteredFileExtension>
<nonFilteredFileExtension>
xlsx
</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>
com.spotify
</groupId>
<artifactId>
docker-maven-plugin
</artifactId>
<version>
1.1.0
</version>
<configuration>
<serverId>
docker-hub
</serverId>
<!--指定生成的镜像名-->
<imageName>
${my.hub.host}/${map.group.name}/${project.artifactId}:${project.version}
</imageName>
<dockerDirectory>
${project.basedir}/
</dockerDirectory>
<!--指定远程 docker api地址-->
<!--<dockerHost>http://172.16.66.232:2375</dockerHost>-->
<!-- 这里是复制 jar 包到 docker 容器指定目录配置-->
<resources>
<resource>
<targetPath>
/
</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>
${project.build.directory}
</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>
${project.build.finalName}.jar
</include>
</resource>
</resources>
<forceTags>
true
</forceTags>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
true
</filtering>
<excludes>
<exclude>
**/*.xlsx
</exclude>
<exclude>
**/*.xls
</exclude>
</excludes>
</resource>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
false
</filtering>
<includes>
<include>
**/*.xlsx
</include>
<include>
**/*.xls
</include>
</includes>
</resource>
</resources>
</build>
</project>
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/YifuProcessApplication.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.EnableYifuResourceServer
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.context.annotation.ComponentScan
;
/**
* @author pig archetype
* <p>
* 项目启动类
*/
@EnableYifuResourceServer
@SpringBootApplication
public
class
YifuProcessApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
YifuProcessApplication
.
class
,
args
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/config/ProcessDataSourceConfig.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
config
;
import
com.baomidou.mybatisplus.core.config.GlobalConfig
;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.config.MybatisPlusMetaObjectHandler
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.plugins.YifuPaginationInnerInterceptor
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.mybatis.spring.SqlSessionTemplate
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.jdbc.DataSourceBuilder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
import
org.springframework.core.io.support.ResourcePatternResolver
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
javax.sql.DataSource
;
/**
* @author chenyuxi
* @date 2025-01-10
* @since 1.7.5
*/
@Configuration
@MapperScan
(
basePackages
=
"com.yifu.cloud.plus.v1.yifu.process.mapper"
,
sqlSessionTemplateRef
=
"processSqlSessionTemplate"
,
sqlSessionFactoryRef
=
"processSqlSessionFactory"
)
public
class
ProcessDataSourceConfig
{
@Bean
(
name
=
"processDataSource"
)
@ConfigurationProperties
(
prefix
=
"spring.datasource.process"
)
@Primary
public
DataSource
processDataSource
()
{
return
DataSourceBuilder
.
create
().
build
();
}
@Bean
public
SqlSessionFactory
processSqlSessionFactory
(
@Qualifier
(
"processDataSource"
)
DataSource
dataSource
)
throws
Exception
{
MybatisSqlSessionFactoryBean
bean
=
new
MybatisSqlSessionFactoryBean
();
bean
.
setDataSource
(
dataSource
);
//多数据源 myMetaObjectHandler不起作用问题解决
GlobalConfig
globalConfig
=
new
GlobalConfig
();
globalConfig
.
setMetaObjectHandler
(
new
MybatisPlusMetaObjectHandler
());
globalConfig
.
setDbConfig
(
new
GlobalConfig
.
DbConfig
());
globalConfig
.
setBanner
(
false
);
bean
.
setGlobalConfig
(
globalConfig
);
//添加XML目录
ResourcePatternResolver
resolver
=
new
PathMatchingResourcePatternResolver
();
try
{
bean
.
setMapperLocations
(
resolver
.
getResources
(
"classpath:mapper/*.xml"
));
//分页插件配置,不配置分页插件无效,否则会出现total为0的情况
bean
.
setPlugins
(
processPlusInterceptor
());
SqlSessionFactory
sqlSessionFactory
=
bean
.
getObject
();
sqlSessionFactory
.
getConfiguration
().
setMapUnderscoreToCamelCase
(
true
);
return
sqlSessionFactory
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
RuntimeException
(
e
);
}
}
@Bean
(
name
=
"processTransactionManager"
)
@Primary
public
DataSourceTransactionManager
processTransactionManager
(
@Qualifier
(
"processDataSource"
)
DataSource
dataSource
)
{
return
new
DataSourceTransactionManager
(
dataSource
);
}
@Bean
public
SqlSessionTemplate
processSqlSessionTemplate
(
@Qualifier
(
"processSqlSessionFactory"
)
SqlSessionFactory
sqlSessionFactory
)
{
return
new
SqlSessionTemplate
(
sqlSessionFactory
);
}
@Bean
public
TransactionTemplate
processTransactionTemplate
(
@Qualifier
(
"processTransactionManager"
)
DataSourceTransactionManager
dataSourceTransactionManager
)
{
return
new
TransactionTemplate
(
dataSourceTransactionManager
);
}
@Bean
public
MybatisPlusInterceptor
processPlusInterceptor
()
{
MybatisPlusInterceptor
interceptor
=
new
MybatisPlusInterceptor
();
interceptor
.
addInnerInterceptor
(
new
YifuPaginationInnerInterceptor
());
return
interceptor
;
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TDelayNodeConfigController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TDelayNodeConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TDelayNodeConfigService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 定时流程节点配置
*
* @author hgw
* @date 2020-07-16 17:48:52
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tdelaynodeconfig"
)
@Tag
(
name
=
"定时流程节点配置"
)
public
class
TDelayNodeConfigController
{
@Resource
private
TDelayNodeConfigService
tDelayNodeConfigService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tDelayNodeConfig 定时流程节点配置
* @return
*/
@Operation
(
summary
=
"简单分页查询"
,
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TDelayNodeConfig
>>
getTDelayNodeConfigPage
(
Page
<
TDelayNodeConfig
>
page
,
TDelayNodeConfig
tDelayNodeConfig
)
{
return
R
.
ok
(
tDelayNodeConfigService
.
getTDelayNodeConfigPage
(
page
,
tDelayNodeConfig
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TDelayNodeConfig
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tDelayNodeConfigService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tDelayNodeConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TDelayNodeConfig
tDelayNodeConfig
)
{
return
R
.
ok
(
tDelayNodeConfigService
.
save
(
tDelayNodeConfig
));
}
/**
* 修改记录
*
* @param tDelayNodeConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@SysLog
(
"修改定时流程节点配置"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TDelayNodeConfig
tDelayNodeConfig
)
{
return
R
.
ok
(
tDelayNodeConfigService
.
updateById
(
tDelayNodeConfig
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除定时流程节点配置"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tDelayNodeConfigService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeConfigController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeConfigService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 流程节点配置表(规则配置)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnodeconfig"
)
@Tag
(
name
=
"流程节点配置表(规则配置)"
)
public
class
TNodeConfigController
{
@Resource
private
TNodeConfigService
tNodeConfigService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeConfig 流程节点配置表(规则配置)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeConfig
>>
getTNodeConfigPage
(
Page
<
TNodeConfig
>
page
,
TNodeConfig
tNodeConfig
)
{
return
new
R
<>(
tNodeConfigService
.
getTNodeConfigPage
(
page
,
tNodeConfig
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeConfig
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeConfigService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeConfig
tNodeConfig
)
{
return
new
R
<>(
tNodeConfigService
.
save
(
tNodeConfig
));
}
/**
* 修改记录
*
* @param tNodeConfig
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改流程节点配置表(规则配置)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeConfig
tNodeConfig
)
{
return
new
R
<>(
tNodeConfigService
.
updateById
(
tNodeConfig
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程节点配置表(规则配置)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeConfigService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodePrimissionController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodePrimissionService
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
import
java.util.Set
;
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnodeprimission"
)
@Tag
(
name
=
"流程处理权限表(允许多个,多个代表有主办和经办)"
)
public
class
TNodePrimissionController
{
@Resource
private
TNodePrimissionService
tNodePrimissionService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodePrimission 流程处理权限表(允许多个,多个代表有主办和经办)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodePrimission
>>
getTNodePrimissionPage
(
Page
<
TNodePrimission
>
page
,
TNodePrimission
tNodePrimission
)
{
return
new
R
<>(
tNodePrimissionService
.
getTNodePrimissionPage
(
page
,
tNodePrimission
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodePrimission
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodePrimissionService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodePrimission
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodePrimission
tNodePrimission
)
{
return
new
R
<>(
tNodePrimissionService
.
save
(
tNodePrimission
));
}
/**
* 修改记录
*
* @param tNodePrimission
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改流程处理权限表(允许多个,多个代表有主办和经办)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodePrimission
tNodePrimission
)
{
return
new
R
<>(
tNodePrimissionService
.
updateById
(
tNodePrimission
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程处理权限表(允许多个,多个代表有主办和经办)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodePrimissionService
.
removeById
(
id
));
}
/**
* todo 功能描述: 通过流程ID查询对应的办理人和归档人
* @Param: [processId]
* @Return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List<TNodePrimission>>
* @Author: zhouyang
* @Date: 2021/12/2 16:23
*/
@Inner
@GetMapping
(
"/inner/getTNodePrimission/byProcessId"
)
public
R
<
List
<
TNodePrimission
>>
getTNodePrimissionByProcessId
(
@RequestParam
(
"processId"
)
Set
<
String
>
processId
){
List
<
TNodePrimission
>
list
=
tNodePrimissionService
.
list
(
Wrappers
.<
TNodePrimission
>
query
().
lambda
().
in
(
TNodePrimission:
:
getProcessId
,
processId
));
return
new
R
<>(
list
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeReaderPromissionController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeReaderPromissionService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 流程审阅权限表(抄送/仅有查看权限)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnodereaderpromission"
)
@Tag
(
name
=
"流程审阅权限表(抄送/仅有查看权限)"
)
public
class
TNodeReaderPromissionController
{
@Resource
private
TNodeReaderPromissionService
tNodeReaderPromissionService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeReaderPromission 流程审阅权限表(抄送/仅有查看权限)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeReaderPromission
>>
getTNodeReaderPromissionPage
(
Page
<
TNodeReaderPromission
>
page
,
TNodeReaderPromission
tNodeReaderPromission
)
{
return
new
R
<>(
tNodeReaderPromissionService
.
getTNodeReaderPromissionPage
(
page
,
tNodeReaderPromission
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeReaderPromission
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeReaderPromissionService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeReaderPromission
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeReaderPromission
tNodeReaderPromission
)
{
return
new
R
<>(
tNodeReaderPromissionService
.
save
(
tNodeReaderPromission
));
}
/**
* 修改记录
*
* @param tNodeReaderPromission
* @return R
*/
@Operation
(
summary
=
"修改(yifu-module:tnodereaderpromission_edit)"
)
@SysLog
(
"修改流程审阅权限表(抄送/仅有查看权限)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeReaderPromission
tNodeReaderPromission
)
{
return
new
R
<>(
tNodeReaderPromissionService
.
updateById
(
tNodeReaderPromission
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除(yifu-module:tnodereaderpromission_del)"
)
@SysLog
(
"删除流程审阅权限表(抄送/仅有查看权限)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeReaderPromissionService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeRouteConditionController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeRouteConditionService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 流程路由条件
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnoderoutecondition"
)
@Tag
(
name
=
"流程路由条件"
)
public
class
TNodeRouteConditionController
{
@Resource
private
TNodeRouteConditionService
tNodeRouteConditionService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeRouteCondition 流程路由条件
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeRouteCondition
>>
getTNodeRouteConditionPage
(
Page
<
TNodeRouteCondition
>
page
,
TNodeRouteCondition
tNodeRouteCondition
)
{
return
new
R
<>(
tNodeRouteConditionService
.
getTNodeRouteConditionPage
(
page
,
tNodeRouteCondition
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeRouteCondition
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeRouteConditionService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeRouteCondition
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeRouteCondition
tNodeRouteCondition
)
{
return
new
R
<>(
tNodeRouteConditionService
.
save
(
tNodeRouteCondition
));
}
/**
* 修改记录
*
* @param tNodeRouteCondition
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改流程路由条件"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeRouteCondition
tNodeRouteCondition
)
{
return
new
R
<>(
tNodeRouteConditionService
.
updateById
(
tNodeRouteCondition
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程路由条件"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeRouteConditionService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeRouteController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeRouteService
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
/**
* 流程路由表(节点与节点之间的路由关系)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnoderoute"
)
@Tag
(
name
=
"流程路由表(节点与节点之间的路由关系)"
)
public
class
TNodeRouteController
{
@Resource
private
TNodeRouteService
tNodeRouteService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeRoute 流程路由表(节点与节点之间的路由关系)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeRoute
>>
getTNodeRoutePage
(
Page
<
TNodeRoute
>
page
,
TNodeRoute
tNodeRoute
)
{
return
new
R
<>(
tNodeRouteService
.
getTNodeRoutePage
(
page
,
tNodeRoute
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeRoute
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeRouteService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeRoute
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeRoute
tNodeRoute
)
{
return
new
R
<>(
tNodeRouteService
.
save
(
tNodeRoute
));
}
/**
* 修改记录
*
* @param tNodeRoute
* @return R
*/
@Operation
(
summary
=
"修改(yifu-module:tnoderoute_edit)"
)
@SysLog
(
"修改流程路由表(节点与节点之间的路由关系)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeRoute
tNodeRoute
)
{
return
new
R
<>(
tNodeRouteService
.
updateById
(
tNodeRoute
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程路由表(节点与节点之间的路由关系)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeRouteService
.
removeById
(
id
));
}
/**
* todo 功能描述: 根据流程id查询路由记录
* @Param: [processId]
* @Return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List<TNodeRoute>>
* @Author: zhouyang
* @Date: 2021/9/3 11:46
*/
@Inner
@GetMapping
(
"/inner/getNodeRoute/byProcessId"
)
public
R
<
List
<
TNodeRoute
>>
getNodeRouteByProcessId
(
@RequestParam
(
"processId"
)
String
processId
)
{
List
<
TNodeRoute
>
tNodeRoute
=
tNodeRouteService
.
list
(
Wrappers
.<
TNodeRoute
>
query
().
lambda
().
eq
(
TNodeRoute:
:
getProcessId
,
processId
));
return
new
R
<>(
tNodeRoute
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeTimeoutConfigController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTimeoutConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeTimeoutConfigService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 节点超时配置表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnodetimeoutconfig"
)
@Tag
(
name
=
"节点超时配置表"
)
public
class
TNodeTimeoutConfigController
{
@Resource
private
TNodeTimeoutConfigService
tNodeTimeoutConfigService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeTimeoutConfig 节点超时配置表
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeTimeoutConfig
>>
getTNodeTimeoutConfigPage
(
Page
<
TNodeTimeoutConfig
>
page
,
TNodeTimeoutConfig
tNodeTimeoutConfig
)
{
return
new
R
<>(
tNodeTimeoutConfigService
.
getTNodeTimeoutConfigPage
(
page
,
tNodeTimeoutConfig
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeTimeoutConfig
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeTimeoutConfigService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeTimeoutConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeTimeoutConfig
tNodeTimeoutConfig
)
{
return
new
R
<>(
tNodeTimeoutConfigService
.
save
(
tNodeTimeoutConfig
));
}
/**
* 修改记录
*
* @param tNodeTimeoutConfig
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改节点超时配置表"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeTimeoutConfig
tNodeTimeoutConfig
)
{
return
new
R
<>(
tNodeTimeoutConfigService
.
updateById
(
tNodeTimeoutConfig
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除节点超时配置表"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeTimeoutConfigService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TNodeTransferConfigController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTransferConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeTransferConfigService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 流程调用配置(子流程调用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tnodetransferconfig"
)
@Tag
(
name
=
"流程调用配置(子流程调用)"
)
public
class
TNodeTransferConfigController
{
@Resource
private
TNodeTransferConfigService
tNodeTransferConfigService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tNodeTransferConfig 流程调用配置(子流程调用)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TNodeTransferConfig
>>
getTNodeTransferConfigPage
(
Page
<
TNodeTransferConfig
>
page
,
TNodeTransferConfig
tNodeTransferConfig
)
{
return
new
R
<>(
tNodeTransferConfigService
.
getTNodeTransferConfigPage
(
page
,
tNodeTransferConfig
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TNodeTransferConfig
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tNodeTransferConfigService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tNodeTransferConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TNodeTransferConfig
tNodeTransferConfig
)
{
return
new
R
<>(
tNodeTransferConfigService
.
save
(
tNodeTransferConfig
));
}
/**
* 修改记录
*
* @param tNodeTransferConfig
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改流程调用配置(子流程调用)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TNodeTransferConfig
tNodeTransferConfig
)
{
return
new
R
<>(
tNodeTransferConfigService
.
updateById
(
tNodeTransferConfig
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程调用配置(子流程调用)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tNodeTransferConfigService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TProcessApprovalConfController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessApprovalConf
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessApprovalConfService
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
/**
* 审批配置表
*
* @author wangan
* @date 2020-12-03 09:58:15
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tprocessapprovalconf"
)
@Tag
(
name
=
"审批配置表"
)
public
class
TProcessApprovalConfController
{
@Resource
private
TProcessApprovalConfService
tProcessApprovalConfService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tProcessApprovalConf 审批配置表
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TProcessApprovalConf
>>
getTProcessApprovalConfPage
(
Page
<
TProcessApprovalConf
>
page
,
TProcessApprovalConf
tProcessApprovalConf
)
{
return
new
R
<>(
tProcessApprovalConfService
.
getTProcessApprovalConfPage
(
page
,
tProcessApprovalConf
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TProcessApprovalConf
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tProcessApprovalConfService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tProcessApprovalConf
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TProcessApprovalConf
tProcessApprovalConf
)
{
return
new
R
<>(
tProcessApprovalConfService
.
save
(
tProcessApprovalConf
));
}
/**
* 修改记录
*
* @param tProcessApprovalConf
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改审批配置表"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TProcessApprovalConf
tProcessApprovalConf
)
{
return
new
R
<>(
tProcessApprovalConfService
.
updateById
(
tProcessApprovalConf
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除审批配置表"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tProcessApprovalConfService
.
removeById
(
id
));
}
/**
* todo
* @param type
* @param parentId
* @Author: wangan
* @Date: 2020/12/7
* @Description: 通过类型和父类名称去获取字段名称
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<TProcessApprovalConf>
* @see com.yifu.cloud.plus.v1.process.controller
**/
@Inner
@GetMapping
(
"/inner/getRecord/byTypeAndParentId"
)
public
R
<
TProcessApprovalConf
>
getRecordbyTypeAndParentId
(
@RequestParam
(
"type"
)
String
type
,
@RequestParam
(
"parentId"
)
String
parentId
)
{
List
<
TProcessApprovalConf
>
list
=
tProcessApprovalConfService
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getType
,
type
)
.
eq
(
TProcessApprovalConf:
:
getParentId
,
parentId
)
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
if
(
list
.
isEmpty
())
{
return
new
R
<>(
null
);
}
return
new
R
<>(
list
.
get
(
CommonConstants
.
ZERO_INT
));
}
/**
* todo
* @param type
* @param parentId
* @Author: wangan
* @Date: 2020/12/7
* @Description: 通过相关条件获取正确的一个主流程
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<TProcessApprovalConf>
* @see com.yifu.cloud.plus.v1.process.controller
**/
@Inner
@GetMapping
(
"/inner/getRecord/byCondition"
)
public
R
<
TProcessApprovalConf
>
getRecordByCondition
(
@RequestParam
(
"type"
)
String
type
,
@RequestParam
(
"parentId"
)
String
parentId
,
@RequestParam
(
"fieldName"
)
String
fieldName
,
@RequestParam
(
"fieldValue"
)
String
fieldValue
)
{
return
tProcessApprovalConfService
.
getRecordByCondition
(
type
,
parentId
,
fieldName
,
fieldValue
);
}
/**
* todo
* @param processId
* @Author: wangan
* @Date: 2020/12/7
* @Description: 通过流程获取记录
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<TProcessApprovalConf>
* @see com.yifu.cloud.plus.v1.process.controller
**/
@Inner
@GetMapping
(
"/inner/getRecord/byProcessId"
)
public
R
<
List
<
TProcessApprovalConf
>>
getRecordByProcessId
(
@RequestParam
(
"processId"
)
String
processId
)
{
List
<
TProcessApprovalConf
>
processApprovalConf
=
tProcessApprovalConfService
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
().
eq
(
TProcessApprovalConf:
:
getProcessId
,
processId
));
return
new
R
<>(
processApprovalConf
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TProcessController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcess
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.TProcessViewVo
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessService
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tprocess"
)
@Tag
(
name
=
"主流程表"
)
public
class
TProcessController
{
@Resource
private
TProcessService
tProcessService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tProcess 主流程表
* @param type 0:在用流程 1非在用
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TProcessViewVo
>>
getTProcessPage
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
,
String
type
)
{
return
new
R
<>(
tProcessService
.
getTProcessPage
(
page
,
tProcess
,
type
));
}
/**
* 通过id查询单条记录
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TProcess
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tProcessService
.
getById
(
id
));
}
/**
* 通过ids查询多条记录
* @param ids
* @return R
*/
@Operation
(
summary
=
"ids查询"
)
@GetMapping
(
"/get/byIds"
)
public
R
<
TProcess
>
getByIds
(
@RequestParam
(
"ids"
)
String
[]
ids
)
{
return
new
R
(
tProcessService
.
list
(
Wrappers
.<
TProcess
>
query
().
lambda
().
in
(
TProcess:
:
getId
,
ids
)));
}
/**
* @param id
* @Description: 根据id查询ProcessVo
* @Author: hgw
* @Date: 2020/7/17 11:05
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<ProcessVo>
**/
@Operation
(
summary
=
"根据id查询ProcessVo"
)
@GetMapping
(
"/getProcessVoById"
)
public
R
<
ProcessVo
>
getProcessVoById
(
String
id
)
{
return
new
R
<>(
tProcessService
.
getProcessVoById
(
id
));
}
/**
* todo
* @param processId 流程名称
* @Description: 根据流程名称查询ProcessVo
* @Author: hgw
* @Date: 2020-7-22 18:17:29
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<ProcessVo>
**/
@Operation
(
summary
=
"根据流程名称查询ProcessVo"
)
@PostMapping
(
"/inner/getProcessVoByName"
)
@Inner
public
R
<
ProcessVo
>
getProcessVoByName
(
String
processId
)
{
return
tProcessService
.
getProcessVoByName
(
processId
);
}
/**
* 新增记录
* @param processVo
* @return R
*/
@Operation
(
summary
=
"新增流程"
)
@PostMapping
(
"/saveProcessVo"
)
public
R
saveProcessVo
(
@RequestBody
ProcessVo
processVo
)
{
return
tProcessService
.
saveProcessVo
(
processVo
);}
/**
* 新增记录
*
* @param tProcess
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
String
>
save
(
@RequestBody
TProcessViewVo
tProcess
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
tProcess
.
setCreateDate
(
LocalDateTime
.
now
());
tProcess
.
setCreateUser
(
String
.
valueOf
(
user
.
getId
()));
return
tProcessService
.
add
(
tProcess
);
}
/**
* 修改记录
*
* @param vo
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改主流程表"
)
@PutMapping
public
R
<
String
>
update
(
@RequestBody
TProcessViewVo
vo
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
vo
.
setUpdateDate
(
LocalDateTime
.
now
());
vo
.
setUpdateUser
(
String
.
valueOf
(
user
.
getId
()));
return
tProcessService
.
modify
(
vo
);
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除主流程表"
)
@DeleteMapping
(
"/{id}"
)
public
R
removeById
(
@PathVariable
String
id
)
{
return
tProcessService
.
delete
(
id
);
}
/**
* 审批角色流程检测
*
* @param tProcess 审批角色
* @return R<List<ProcessVo>>
* @author chenyuxi
* @date 2023-10-23 09:48:57
* @since crm2.12.0
*/
@Operation
(
summary
=
"审批角色流程检测列表"
)
@GetMapping
(
"/getProcessPageByRoleId"
)
public
R
<
IPage
<
TProcessViewVo
>>
getProcessPageByRoleId
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
)
{
if
(
Common
.
isEmpty
(
tProcess
.
getRole
()))
{
return
R
.
failed
(
"审批角色Id不能为空"
);
}
// 设置角色类型:5指定角色(crm)
tProcess
.
setNodePermissionType
(
CommonConstants
.
FIVE_INT
);
return
new
R
<>(
tProcessService
.
getProcessPageByRoleId
(
page
,
tProcess
));
}
/**
* 审批角色流程检测
*
* @param tProcess 审批角色
* @return R<List<ProcessVo>>
* @author chenyuxi
* @date 2023-10-23 09:48:57
* @since crm2.12.0
*/
@Operation
(
summary
=
"审批角色流程检测"
)
@GetMapping
(
"/checkProcessByRoleId"
)
public
R
<
String
>
checkProcessByRoleId
(
TProcessViewVo
tProcess
)
{
if
(
Common
.
isEmpty
(
tProcess
.
getRole
()))
{
return
R
.
failed
(
"审批角色Id不能为空"
);
}
// 设置角色类型:5指定角色(crm)
tProcess
.
setNodePermissionType
(
CommonConstants
.
FIVE_INT
);
return
new
R
<>(
tProcessService
.
checkProcessByRoleId
(
tProcess
));
}
/**
* 流程弃用(弃用的流程会在历史流程列表里)
* @Author: wangdayu
* @Date: 2023年10月24日14:46
* @param id:流程id
* @return R
*/
@Operation
(
summary
=
"流程弃用(弃用的流程会在历史流程列表里"
)
@GetMapping
(
"/noUse"
)
public
R
<
String
>
noUse
(
@RequestParam
(
value
=
"id"
)
String
id
)
{
TProcess
tProcess
=
new
TProcess
();
tProcess
.
setId
(
id
);
return
tProcessService
.
noUse
(
tProcess
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TProcessNodeController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessNodeService
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
/**
* 流程节点表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tprocessnode"
)
@Tag
(
name
=
"流程节点表"
)
public
class
TProcessNodeController
{
@Resource
private
TProcessNodeService
tProcessNodeService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tProcessNode 流程节点表
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TProcessNode
>>
getTProcessNodePage
(
Page
<
TProcessNode
>
page
,
TProcessNode
tProcessNode
)
{
return
new
R
<>(
tProcessNodeService
.
getTProcessNodePage
(
page
,
tProcessNode
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TProcessNode
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tProcessNodeService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tProcessNode
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TProcessNode
tProcessNode
)
{
return
new
R
<>(
tProcessNodeService
.
save
(
tProcessNode
));
}
/**
* 修改记录
*
* @param tProcessNode
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改流程节点表"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TProcessNode
tProcessNode
)
{
return
new
R
<>(
tProcessNodeService
.
updateById
(
tProcessNode
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除流程节点表"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tProcessNodeService
.
removeById
(
id
));
}
/**
* todo
* @param processId
* @param nodeId
* @Author: wangan
* @Date: 2020/9/4
* @Description:
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<ProcessVo>
**/
@Operation
(
summary
=
"根据流程名称查询ProcessVo"
)
@PostMapping
(
"/inner/getNodeByVoId"
)
@Inner
public
R
<
TProcessNode
>
getNodeByVoId
(
@RequestParam
(
"processId"
)
String
processId
,
@RequestParam
(
"nodeId"
)
String
nodeId
)
{
return
new
R
(
tProcessNodeService
.
getOne
(
Wrappers
.<
TProcessNode
>
query
().
lambda
().
eq
(
TProcessNode:
:
getProcessId
,
processId
).
eq
(
TProcessNode:
:
getId
,
nodeId
)));
}
/**
* todo 功能描述: 查询流程id查询节点数据
* @Param: [processId]
* @Return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List<TProcessNode>>
* @Author: zhouyang
* @Date: 2021/11/3 14:33
*/
@Operation
(
summary
=
"根据流程id查询ProcessNode"
)
@PostMapping
(
"/inner/getNodeByVoProcessId"
)
@Inner
public
R
<
List
<
TProcessNode
>>
getNodeByVoProcessId
(
@RequestParam
(
"processId"
)
String
processId
)
{
return
new
R
(
tProcessNodeService
.
list
((
Wrappers
.<
TProcessNode
>
query
().
lambda
().
eq
(
TProcessNode:
:
getProcessId
,
processId
))));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/controller/TServiceTransferConfigController.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TServiceTransferConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TServiceTransferConfigService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
/**
* 远程服务调用(在节点为服务调用节点时使用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tservicetransferconfig"
)
@Tag
(
name
=
"远程服务调用(在节点为服务调用节点时使用)"
)
public
class
TServiceTransferConfigController
{
@Resource
private
TServiceTransferConfigService
tServiceTransferConfigService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tServiceTransferConfig 远程服务调用(在节点为服务调用节点时使用)
* @return
*/
@Operation
(
summary
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TServiceTransferConfig
>>
getTServiceTransferConfigPage
(
Page
<
TServiceTransferConfig
>
page
,
TServiceTransferConfig
tServiceTransferConfig
)
{
return
new
R
<>(
tServiceTransferConfigService
.
getTServiceTransferConfigPage
(
page
,
tServiceTransferConfig
));
}
/**
* 通过id查询单条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TServiceTransferConfig
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
new
R
<>(
tServiceTransferConfigService
.
getById
(
id
));
}
/**
* 新增记录
*
* @param tServiceTransferConfig
* @return R
*/
@Operation
(
summary
=
"新增"
)
@PostMapping
public
R
<
Boolean
>
save
(
@Valid
@RequestBody
TServiceTransferConfig
tServiceTransferConfig
)
{
return
new
R
<>(
tServiceTransferConfigService
.
save
(
tServiceTransferConfig
));
}
/**
* 修改记录
*
* @param tServiceTransferConfig
* @return R
*/
@Operation
(
summary
=
"修改"
)
@SysLog
(
"修改远程服务调用(在节点为服务调用节点时使用)"
)
@PutMapping
public
R
<
Boolean
>
update
(
@RequestBody
TServiceTransferConfig
tServiceTransferConfig
)
{
return
new
R
<>(
tServiceTransferConfigService
.
updateById
(
tServiceTransferConfig
));
}
/**
* 通过id删除一条记录
*
* @param id
* @return R
*/
@Operation
(
summary
=
"删除"
)
@SysLog
(
"删除远程服务调用(在节点为服务调用节点时使用)"
)
@DeleteMapping
(
"/{id}"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
new
R
<>(
tServiceTransferConfigService
.
removeById
(
id
));
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TDelayNodeConfigMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TDelayNodeConfig
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 定时流程节点配置
*
* @author hgw
* @date 2020-07-16 17:48:52
*/
@Mapper
public
interface
TDelayNodeConfigMapper
extends
BaseMapper
<
TDelayNodeConfig
>
{
/**
* 定时流程节点配置简单分页查询
*
* @param tDelayNodeConfig 定时流程节点配置
* @return
*/
IPage
<
TDelayNodeConfig
>
getTDelayNodeConfigPage
(
Page
<
TDelayNodeConfig
>
page
,
@Param
(
"tDelayNodeConfig"
)
TDelayNodeConfig
tDelayNodeConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeConfigMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeConfig
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程节点配置表(规则配置)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeConfigMapper
extends
BaseMapper
<
TNodeConfig
>
{
/**
* 流程节点配置表(规则配置)简单分页查询
*
* @param tNodeConfig 流程节点配置表(规则配置)
* @return
*/
IPage
<
TNodeConfig
>
getTNodeConfigPage
(
Page
<
TNodeConfig
>
page
,
@Param
(
"tNodeConfig"
)
TNodeConfig
tNodeConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodePrimissionMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodePrimissionMapper
extends
BaseMapper
<
TNodePrimission
>
{
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)简单分页查询
*
* @param tNodePrimission 流程处理权限表(允许多个,多个代表有主办和经办)
* @return
*/
IPage
<
TNodePrimission
>
getTNodePrimissionPage
(
Page
<
TNodePrimission
>
page
,
@Param
(
"tNodePrimission"
)
TNodePrimission
tNodePrimission
);
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:32
* @return: int
**/
int
deleteByProcessId
(
@Param
(
"processId"
)
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeReaderPromissionMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程审阅权限表(抄送/仅有查看权限)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeReaderPromissionMapper
extends
BaseMapper
<
TNodeReaderPromission
>
{
/**
* 流程审阅权限表(抄送/仅有查看权限)简单分页查询
*
* @param tNodeReaderPromission 流程审阅权限表(抄送/仅有查看权限)
* @return
*/
IPage
<
TNodeReaderPromission
>
getTNodeReaderPromissionPage
(
Page
<
TNodeReaderPromission
>
page
,
@Param
(
"tNodeReaderPromission"
)
TNodeReaderPromission
tNodeReaderPromission
);
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:32
* @return: int
**/
int
deleteByProcessId
(
@Param
(
"processId"
)
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeRouteConditionMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程路由条件
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeRouteConditionMapper
extends
BaseMapper
<
TNodeRouteCondition
>
{
/**
* 流程路由条件简单分页查询
*
* @param tNodeRouteCondition 流程路由条件
* @return
*/
IPage
<
TNodeRouteCondition
>
getTNodeRouteConditionPage
(
Page
<
TNodeRouteCondition
>
page
,
@Param
(
"tNodeRouteCondition"
)
TNodeRouteCondition
tNodeRouteCondition
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeRouteMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程路由表(节点与节点之间的路由关系)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeRouteMapper
extends
BaseMapper
<
TNodeRoute
>
{
/**
* 流程路由表(节点与节点之间的路由关系)简单分页查询
*
* @param tNodeRoute 流程路由表(节点与节点之间的路由关系)
* @return
*/
IPage
<
TNodeRoute
>
getTNodeRoutePage
(
Page
<
TNodeRoute
>
page
,
@Param
(
"tNodeRoute"
)
TNodeRoute
tNodeRoute
);
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:32
* @return: int
**/
int
deleteByProcessId
(
@Param
(
"processId"
)
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeTimeoutConfigMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTimeoutConfig
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 节点超时配置表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeTimeoutConfigMapper
extends
BaseMapper
<
TNodeTimeoutConfig
>
{
/**
* 节点超时配置表简单分页查询
*
* @param tNodeTimeoutConfig 节点超时配置表
* @return
*/
IPage
<
TNodeTimeoutConfig
>
getTNodeTimeoutConfigPage
(
Page
<
TNodeTimeoutConfig
>
page
,
@Param
(
"tNodeTimeoutConfig"
)
TNodeTimeoutConfig
tNodeTimeoutConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TNodeTransferConfigMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTransferConfig
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程调用配置(子流程调用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TNodeTransferConfigMapper
extends
BaseMapper
<
TNodeTransferConfig
>
{
/**
* 流程调用配置(子流程调用)简单分页查询
*
* @param tNodeTransferConfig 流程调用配置(子流程调用)
* @return
*/
IPage
<
TNodeTransferConfig
>
getTNodeTransferConfigPage
(
Page
<
TNodeTransferConfig
>
page
,
@Param
(
"tNodeTransferConfig"
)
TNodeTransferConfig
tNodeTransferConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TProcessApprovalConfMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessApprovalConf
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 审批配置表
*
* @author wangan
* @date 2020-12-03 09:58:15
*/
@Mapper
public
interface
TProcessApprovalConfMapper
extends
BaseMapper
<
TProcessApprovalConf
>
{
/**
* 审批配置表简单分页查询
* @param tProcessApprovalConf 审批配置表
* @return
*/
IPage
<
TProcessApprovalConf
>
getTProcessApprovalConfPage
(
Page
<
TProcessApprovalConf
>
page
,
@Param
(
"tProcessApprovalConf"
)
TProcessApprovalConf
tProcessApprovalConf
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TProcessMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcess
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.TProcessViewVo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TProcessMapper
extends
BaseMapper
<
TProcess
>
{
/**
* 主流程表简单分页查询
*
* @param tProcess 主流程表
* @return
*/
IPage
<
TProcessViewVo
>
getTProcessPage
(
Page
<
TProcessViewVo
>
page
,
@Param
(
"tProcess"
)
TProcessViewVo
tProcess
,
@Param
(
"type"
)
String
type
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TProcessNodeMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 流程节点表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TProcessNodeMapper
extends
BaseMapper
<
TProcessNode
>
{
/**
* 流程节点表简单分页查询
*
* @param tProcessNode 流程节点表
* @return
*/
IPage
<
TProcessNode
>
getTProcessNodePage
(
Page
<
TProcessNode
>
page
,
@Param
(
"tProcessNode"
)
TProcessNode
tProcessNode
);
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:32
* @return: int
**/
int
deleteByProcessId
(
@Param
(
"processId"
)
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/mapper/TServiceTransferConfigMapper.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TServiceTransferConfig
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* 远程服务调用(在节点为服务调用节点时使用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Mapper
public
interface
TServiceTransferConfigMapper
extends
BaseMapper
<
TServiceTransferConfig
>
{
/**
* 远程服务调用(在节点为服务调用节点时使用)简单分页查询
*
* @param tServiceTransferConfig 远程服务调用(在节点为服务调用节点时使用)
* @return
*/
IPage
<
TServiceTransferConfig
>
getTServiceTransferConfigPage
(
Page
<
TServiceTransferConfig
>
page
,
@Param
(
"tServiceTransferConfig"
)
TServiceTransferConfig
tServiceTransferConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TDelayNodeConfigService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TDelayNodeConfig
;
/**
* 定时流程节点配置
*
* @author hgw
* @date 2020-07-16 17:48:52
*/
public
interface
TDelayNodeConfigService
extends
IService
<
TDelayNodeConfig
>
{
/**
* 定时流程节点配置简单分页查询
*
* @param tDelayNodeConfig 定时流程节点配置
* @return
*/
IPage
<
TDelayNodeConfig
>
getTDelayNodeConfigPage
(
Page
<
TDelayNodeConfig
>
page
,
TDelayNodeConfig
tDelayNodeConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeConfigService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeConfig
;
/**
* 流程节点配置表(规则配置)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeConfigService
extends
IService
<
TNodeConfig
>
{
/**
* 流程节点配置表(规则配置)简单分页查询
*
* @param tNodeConfig 流程节点配置表(规则配置)
* @return
*/
IPage
<
TNodeConfig
>
getTNodeConfigPage
(
Page
<
TNodeConfig
>
page
,
TNodeConfig
tNodeConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodePrimissionService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodePrimissionService
extends
IService
<
TNodePrimission
>
{
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)简单分页查询
*
* @param tNodePrimission 流程处理权限表(允许多个,多个代表有主办和经办)
* @return
*/
IPage
<
TNodePrimission
>
getTNodePrimissionPage
(
Page
<
TNodePrimission
>
page
,
TNodePrimission
tNodePrimission
);
/**
* @param processId 流程id
* @Description: 根据id删除节点
* @Author: hgw
* @Date: 2020-7-22 17:01:54
* @return: int
**/
int
deleteByProcessId
(
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeReaderPromissionService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission
;
/**
* 流程审阅权限表(抄送/仅有查看权限)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeReaderPromissionService
extends
IService
<
TNodeReaderPromission
>
{
/**
* 流程审阅权限表(抄送/仅有查看权限)简单分页查询
*
* @param tNodeReaderPromission 流程审阅权限表(抄送/仅有查看权限)
* @return
*/
IPage
<
TNodeReaderPromission
>
getTNodeReaderPromissionPage
(
Page
<
TNodeReaderPromission
>
page
,
TNodeReaderPromission
tNodeReaderPromission
);
/**
* @param processId 流程id
* @Description: 根据id删除节点
* @Author: hgw
* @Date: 2020-7-22 17:01:54
* @return: int
**/
int
deleteByProcessId
(
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeRouteConditionService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
/**
* 流程路由条件
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeRouteConditionService
extends
IService
<
TNodeRouteCondition
>
{
/**
* 流程路由条件简单分页查询
*
* @param tNodeRouteCondition 流程路由条件
* @return
*/
IPage
<
TNodeRouteCondition
>
getTNodeRouteConditionPage
(
Page
<
TNodeRouteCondition
>
page
,
TNodeRouteCondition
tNodeRouteCondition
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeRouteService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
/**
* 流程路由表(节点与节点之间的路由关系)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeRouteService
extends
IService
<
TNodeRoute
>
{
/**
* 流程路由表(节点与节点之间的路由关系)简单分页查询
*
* @param tNodeRoute 流程路由表(节点与节点之间的路由关系)
* @return
*/
IPage
<
TNodeRoute
>
getTNodeRoutePage
(
Page
<
TNodeRoute
>
page
,
TNodeRoute
tNodeRoute
);
/**
* @param processId 流程id
* @Description: 根据id删除节点
* @Author: hgw
* @Date: 2020/7/17 11:19
* @return: int
**/
int
deleteByProcessId
(
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeTimeoutConfigService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTimeoutConfig
;
/**
* 节点超时配置表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeTimeoutConfigService
extends
IService
<
TNodeTimeoutConfig
>
{
/**
* 节点超时配置表简单分页查询
*
* @param tNodeTimeoutConfig 节点超时配置表
* @return
*/
IPage
<
TNodeTimeoutConfig
>
getTNodeTimeoutConfigPage
(
Page
<
TNodeTimeoutConfig
>
page
,
TNodeTimeoutConfig
tNodeTimeoutConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TNodeTransferConfigService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTransferConfig
;
/**
* 流程调用配置(子流程调用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TNodeTransferConfigService
extends
IService
<
TNodeTransferConfig
>
{
/**
* 流程调用配置(子流程调用)简单分页查询
*
* @param tNodeTransferConfig 流程调用配置(子流程调用)
* @return
*/
IPage
<
TNodeTransferConfig
>
getTNodeTransferConfigPage
(
Page
<
TNodeTransferConfig
>
page
,
TNodeTransferConfig
tNodeTransferConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TProcessApprovalConfService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessApprovalConf
;
/**
* 审批配置表
*
* @author wangan
* @date 2020-12-03 09:58:15
*/
public
interface
TProcessApprovalConfService
extends
IService
<
TProcessApprovalConf
>
{
/**
* 审批配置表简单分页查询
* @param tProcessApprovalConf 审批配置表
* @return
*/
IPage
<
TProcessApprovalConf
>
getTProcessApprovalConfPage
(
Page
<
TProcessApprovalConf
>
page
,
TProcessApprovalConf
tProcessApprovalConf
);
R
<
TProcessApprovalConf
>
getRecordByCondition
(
String
type
,
String
parentId
,
String
fieldName
,
String
fieldValue
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TProcessNodeService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
/**
* 流程节点表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TProcessNodeService
extends
IService
<
TProcessNode
>
{
/**
* 流程节点表简单分页查询
*
* @param tProcessNode 流程节点表
* @return
*/
IPage
<
TProcessNode
>
getTProcessNodePage
(
Page
<
TProcessNode
>
page
,
TProcessNode
tProcessNode
);
/**
* @param processId 流程id
* @Description: 根据id删除节点
* @Author: hgw
* @Date: 2020/7/17 11:19
* @return: int
**/
int
deleteByProcessId
(
String
processId
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TProcessService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcess
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.TProcessViewVo
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TProcessService
extends
IService
<
TProcess
>
{
/**
* 主流程表简单分页查询
*
* @param tProcess 主流程表
* @return
*/
IPage
<
TProcessViewVo
>
getTProcessPage
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
,
String
type
);
/**
* @param id
* @Description: 返回ProcessVo
* @Author: hgw
* @Date: 2020/7/17 10:59
* @return: ProcessVo
**/
ProcessVo
getProcessVoById
(
String
id
);
/**
* @param processId
* @Description: 返回ProcessVo
* @Author: hgw
* @Date: 2020-7-22 18:18:42
* @return: ProcessVo
**/
R
<
ProcessVo
>
getProcessVoByName
(
String
processId
);
/**
* @param processVo
* @Description: 保存流程
* @Author: hgw
* @Date: 2020/7/17 11:13
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
**/
R
saveProcessVo
(
ProcessVo
processVo
);
/**
* @param processId
* @Description: 删除流程
* @Author: hgw
* @Date: 2020/7/17 17:20
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
**/
R
deleteById
(
String
processId
);
R
<
String
>
add
(
TProcessViewVo
tProcess
);
R
<
String
>
modify
(
TProcessViewVo
vo
);
R
<
String
>
delete
(
String
id
);
R
<
String
>
noUse
(
TProcess
tProcess
);
/**
* 根据角色ID获取关联流程
*
* @param tProcess 审批角色
* @return IPage<TProcessViewVo>
* @author chenyuxi
* @date 2023-10-23 09:48:57
* @since crm2.12.0
*/
IPage
<
TProcessViewVo
>
getProcessPageByRoleId
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
);
String
checkProcessByRoleId
(
TProcessViewVo
tProcess
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/TServiceTransferConfigService.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TServiceTransferConfig
;
/**
* 远程服务调用(在节点为服务调用节点时使用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
public
interface
TServiceTransferConfigService
extends
IService
<
TServiceTransferConfig
>
{
/**
* 远程服务调用(在节点为服务调用节点时使用)简单分页查询
*
* @param tServiceTransferConfig 远程服务调用(在节点为服务调用节点时使用)
* @return
*/
IPage
<
TServiceTransferConfig
>
getTServiceTransferConfigPage
(
Page
<
TServiceTransferConfig
>
page
,
TServiceTransferConfig
tServiceTransferConfig
);
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TDelayNodeConfigServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TDelayNodeConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TDelayNodeConfigService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TDelayNodeConfigMapper
;
import
org.springframework.stereotype.Service
;
/**
* 定时流程节点配置
*
* @author hgw
* @date 2020-07-16 17:48:52
*/
@Service
public
class
TDelayNodeConfigServiceImpl
extends
ServiceImpl
<
TDelayNodeConfigMapper
,
TDelayNodeConfig
>
implements
TDelayNodeConfigService
{
/**
* 定时流程节点配置简单分页查询
*
* @param tDelayNodeConfig 定时流程节点配置
* @return
*/
@Override
public
IPage
<
TDelayNodeConfig
>
getTDelayNodeConfigPage
(
Page
<
TDelayNodeConfig
>
page
,
TDelayNodeConfig
tDelayNodeConfig
)
{
return
baseMapper
.
getTDelayNodeConfigPage
(
page
,
tDelayNodeConfig
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeConfigServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeConfigService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeConfigMapper
;
import
org.springframework.stereotype.Service
;
/**
* 流程节点配置表(规则配置)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeConfigServiceImpl
extends
ServiceImpl
<
TNodeConfigMapper
,
TNodeConfig
>
implements
TNodeConfigService
{
/**
* 流程节点配置表(规则配置)简单分页查询
*
* @param tNodeConfig 流程节点配置表(规则配置)
* @return
*/
@Override
public
IPage
<
TNodeConfig
>
getTNodeConfigPage
(
Page
<
TNodeConfig
>
page
,
TNodeConfig
tNodeConfig
)
{
return
baseMapper
.
getTNodeConfigPage
(
page
,
tNodeConfig
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodePrimissionServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodePrimissionMapper
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodePrimissionService
;
import
org.springframework.stereotype.Service
;
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodePrimissionServiceImpl
extends
ServiceImpl
<
TNodePrimissionMapper
,
TNodePrimission
>
implements
TNodePrimissionService
{
/**
* 流程处理权限表(允许多个,多个代表有主办和经办)简单分页查询
*
* @param tNodePrimission 流程处理权限表(允许多个,多个代表有主办和经办)
* @return
*/
@Override
public
IPage
<
TNodePrimission
>
getTNodePrimissionPage
(
Page
<
TNodePrimission
>
page
,
TNodePrimission
tNodePrimission
)
{
return
baseMapper
.
getTNodePrimissionPage
(
page
,
tNodePrimission
);
}
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020-7-22 17:02:34
* @return: int
**/
@Override
public
int
deleteByProcessId
(
String
processId
)
{
return
baseMapper
.
deleteByProcessId
(
processId
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeReaderPromissionServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeReaderPromissionMapper
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeReaderPromissionService
;
import
org.springframework.stereotype.Service
;
/**
* 流程审阅权限表(抄送/仅有查看权限)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeReaderPromissionServiceImpl
extends
ServiceImpl
<
TNodeReaderPromissionMapper
,
TNodeReaderPromission
>
implements
TNodeReaderPromissionService
{
/**
* 流程审阅权限表(抄送/仅有查看权限)简单分页查询
*
* @param tNodeReaderPromission 流程审阅权限表(抄送/仅有查看权限)
* @return
*/
@Override
public
IPage
<
TNodeReaderPromission
>
getTNodeReaderPromissionPage
(
Page
<
TNodeReaderPromission
>
page
,
TNodeReaderPromission
tNodeReaderPromission
)
{
return
baseMapper
.
getTNodeReaderPromissionPage
(
page
,
tNodeReaderPromission
);
}
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020-7-22 17:02:38
* @return: int
**/
@Override
public
int
deleteByProcessId
(
String
processId
)
{
return
baseMapper
.
deleteByProcessId
(
processId
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeRouteConditionServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeRouteConditionService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeRouteConditionMapper
;
import
org.springframework.stereotype.Service
;
/**
* 流程路由条件
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeRouteConditionServiceImpl
extends
ServiceImpl
<
TNodeRouteConditionMapper
,
TNodeRouteCondition
>
implements
TNodeRouteConditionService
{
/**
* 流程路由条件简单分页查询
*
* @param tNodeRouteCondition 流程路由条件
* @return
*/
@Override
public
IPage
<
TNodeRouteCondition
>
getTNodeRouteConditionPage
(
Page
<
TNodeRouteCondition
>
page
,
TNodeRouteCondition
tNodeRouteCondition
)
{
return
baseMapper
.
getTNodeRouteConditionPage
(
page
,
tNodeRouteCondition
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeRouteServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeRouteService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeRouteMapper
;
import
org.springframework.stereotype.Service
;
/**
* 流程路由表(节点与节点之间的路由关系)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeRouteServiceImpl
extends
ServiceImpl
<
TNodeRouteMapper
,
TNodeRoute
>
implements
TNodeRouteService
{
/**
* 流程路由表(节点与节点之间的路由关系)简单分页查询
*
* @param tNodeRoute 流程路由表(节点与节点之间的路由关系)
* @return
*/
@Override
public
IPage
<
TNodeRoute
>
getTNodeRoutePage
(
Page
<
TNodeRoute
>
page
,
TNodeRoute
tNodeRoute
)
{
return
baseMapper
.
getTNodeRoutePage
(
page
,
tNodeRoute
);
}
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:25
* @return: int
**/
@Override
public
int
deleteByProcessId
(
String
processId
)
{
return
baseMapper
.
deleteByProcessId
(
processId
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeTimeoutConfigServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTimeoutConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeTimeoutConfigService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeTimeoutConfigMapper
;
import
org.springframework.stereotype.Service
;
/**
* 节点超时配置表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeTimeoutConfigServiceImpl
extends
ServiceImpl
<
TNodeTimeoutConfigMapper
,
TNodeTimeoutConfig
>
implements
TNodeTimeoutConfigService
{
/**
* 节点超时配置表简单分页查询
*
* @param tNodeTimeoutConfig 节点超时配置表
* @return
*/
@Override
public
IPage
<
TNodeTimeoutConfig
>
getTNodeTimeoutConfigPage
(
Page
<
TNodeTimeoutConfig
>
page
,
TNodeTimeoutConfig
tNodeTimeoutConfig
)
{
return
baseMapper
.
getTNodeTimeoutConfigPage
(
page
,
tNodeTimeoutConfig
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TNodeTransferConfigServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTransferConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TNodeTransferConfigService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeTransferConfigMapper
;
import
org.springframework.stereotype.Service
;
/**
* 流程调用配置(子流程调用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TNodeTransferConfigServiceImpl
extends
ServiceImpl
<
TNodeTransferConfigMapper
,
TNodeTransferConfig
>
implements
TNodeTransferConfigService
{
/**
* 流程调用配置(子流程调用)简单分页查询
*
* @param tNodeTransferConfig 流程调用配置(子流程调用)
* @return
*/
@Override
public
IPage
<
TNodeTransferConfig
>
getTNodeTransferConfigPage
(
Page
<
TNodeTransferConfig
>
page
,
TNodeTransferConfig
tNodeTransferConfig
)
{
return
baseMapper
.
getTNodeTransferConfigPage
(
page
,
tNodeTransferConfig
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TProcessApprovalConfServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcess
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessApprovalConf
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessApprovalConfMapper
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessApprovalConfService
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessService
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
core
.
constant
.
CommonConstants
.
SEARCH_SUCCESS
;
/**
* 审批配置表
*
* @author wangan
* @date 2020-12-03 09:58:15
*/
@Service
public
class
TProcessApprovalConfServiceImpl
extends
ServiceImpl
<
TProcessApprovalConfMapper
,
TProcessApprovalConf
>
implements
TProcessApprovalConfService
{
@Resource
@Lazy
private
TProcessService
tProcessService
;
/**
* 审批配置表简单分页查询
* @param tProcessApprovalConf 审批配置表
* @return
*/
@Override
public
IPage
<
TProcessApprovalConf
>
getTProcessApprovalConfPage
(
Page
<
TProcessApprovalConf
>
page
,
TProcessApprovalConf
tProcessApprovalConf
){
return
baseMapper
.
getTProcessApprovalConfPage
(
page
,
tProcessApprovalConf
);
}
@Override
public
R
<
TProcessApprovalConf
>
getRecordByCondition
(
String
type
,
String
parentId
,
String
fieldName
,
String
fieldValue
)
{
//存储流程配置信息
List
<
TProcessApprovalConf
>
list
=
new
ArrayList
<>();
//hro垫付不需查询在用的流程
if
(!
CommonConstants
.
FOUR_STRING
.
equals
(
type
)){
/*
* 1.查找所有在用的流程
*/
List
<
TProcess
>
inUse
=
tProcessService
.
list
(
Wrappers
.<
TProcess
>
query
().
lambda
()
.
eq
(
TProcess:
:
getDeleteFlag
,
CommonConstants
.
NOT_DELETE_FLAG
)
.
eq
(
TProcess:
:
getProcessIsUse
,
CommonConstants
.
ZERO_STRING
));
/*
* 2.将在用的流程过滤出id
*/
//在用流程id存放集合
List
<
String
>
inUseIdList
=
new
ArrayList
<>();
//开始根据是否通用分组
if
(
Common
.
isNotKong
(
inUse
)){
inUseIdList
=
inUse
.
stream
().
map
(
TProcess:
:
getId
).
collect
(
Collectors
.
toList
());
}
else
{
return
R
.
failed
(
"当前部门未配置在用流程"
);
}
/*
* 3.获取当前部门流程配置
*/
list
=
this
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getType
,
type
)
.
eq
(
TProcessApprovalConf:
:
getFieldName
,
fieldName
)
.
eq
(
TProcessApprovalConf:
:
getFieldValue
,
fieldValue
)
.
eq
(
TProcessApprovalConf:
:
getParentId
,
parentId
)
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
List
<
TProcessApprovalConf
>
one
=
new
ArrayList
<>();
/*
* 4.当前部门配置流程未找到 找不到找在用的通用的流程
*/
if
(
Common
.
isEmpty
(
list
))
{
//找在用的通用流程
one
=
getCommonInUseProcess
(
type
,
inUseIdList
);
//4.1在用的通用流程未找到,报错
if
(
Common
.
isEmpty
(
one
)){
return
R
.
failed
(
"找不到流程"
);
}
//4.2当前类型的在用的通用流程找到不止一条
if
(
one
.
size
()
>
CommonConstants
.
ONE_INT
){
return
R
.
failed
(
"当前类型在用的通用流程不止一条"
);
}
return
R
.
ok
(
one
.
get
(
CommonConstants
.
ZERO_INT
),
SEARCH_SUCCESS
);
}
/*
* 5.当前部门配置流程找到了只有一条
*/
//判断是否在 在用列表里
if
(
list
.
size
()
==
CommonConstants
.
ONE_INT
){
if
(
Common
.
isNotKong
(
inUseIdList
)
&&
inUseIdList
.
contains
(
list
.
get
(
CommonConstants
.
ZERO_INT
).
getProcessId
())){
return
R
.
ok
(
list
.
get
(
CommonConstants
.
ZERO_INT
),
SEARCH_SUCCESS
);
}
else
{
//找在用的通用流程
one
=
getCommonInUseProcess
(
type
,
inUseIdList
);
//4.1在用的通用流程未找到,报错
if
(
Common
.
isEmpty
(
one
)){
return
R
.
failed
(
"找不到流程"
);
}
//4.2当前类型的在用的通用流程找到不止一条
if
(
one
.
size
()
>
CommonConstants
.
ONE_INT
){
return
R
.
failed
(
"当前类型的在用的通用流程不止一条"
);
}
return
R
.
ok
(
one
.
get
(
CommonConstants
.
ZERO_INT
),
SEARCH_SUCCESS
);
}
}
/*
* 6.当前部门配置流程找到了多于一条
*/
//返回在用的那一条流程
one
=
new
ArrayList
<>();
for
(
TProcessApprovalConf
tProcessApprovalConf
:
list
)
{
if
(
inUseIdList
.
contains
(
tProcessApprovalConf
.
getProcessId
())){
one
.
add
(
tProcessApprovalConf
);
}
}
//在用流程和配置的流程一条都没匹配上,返回在用的通用流程
if
(
one
.
isEmpty
())
{
//找在用的通用流程
one
=
getCommonInUseProcess
(
type
,
inUseIdList
);
//4.1在用的通用流程未找到,报错
if
(
Common
.
isEmpty
(
one
)){
return
R
.
failed
(
"找不到流程"
);
}
//4.2当前类型的在用的通用流程找到不止一条
if
(
one
.
size
()
>
CommonConstants
.
ONE_INT
){
return
R
.
failed
(
"当前类型的在用的通用流程不止一条"
);
}
return
R
.
ok
(
one
.
get
(
CommonConstants
.
ZERO_INT
),
SEARCH_SUCCESS
);
}
//在用流程和配置的流程匹配上了不止一条
if
(
one
.
size
()
>
CommonConstants
.
ONE_INT
)
{
return
R
.
failed
(
"满足当前条件的流程不止一条"
);
}
//在用流程和配置的流程匹配上了一条
return
R
.
ok
(
one
.
get
(
CommonConstants
.
ZERO_INT
),
SEARCH_SUCCESS
);
}
else
{
//垫付走原先流程
list
=
this
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getType
,
type
).
eq
(
TProcessApprovalConf:
:
getFieldName
,
fieldName
)
.
eq
(
TProcessApprovalConf:
:
getFieldValue
,
fieldValue
).
eq
(
TProcessApprovalConf:
:
getParentId
,
parentId
)
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
if
(
list
.
isEmpty
())
{
return
new
R
<>(
null
);
}
if
(
list
.
size
()
>
CommonConstants
.
ONE_INT
)
{
return
R
.
failed
(
"满足当前条件的流程不为一条"
);
}
return
new
R
<>(
list
.
get
(
CommonConstants
.
ZERO_INT
));
}
}
private
List
<
TProcessApprovalConf
>
getCommonInUseProcess
(
String
type
,
List
<
String
>
inUseIdList
)
{
LambdaQueryWrapper
<
TProcessApprovalConf
>
query
=
new
LambdaQueryWrapper
<>();
//获取该类型下面的流程配置,并判断当前类型的流程是否是在用流程,若是,则提示重复,否则正常保存
query
.
eq
(
TProcessApprovalConf:
:
getType
,
type
)
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
)
.
and
(
wq
->
wq
.
isNull
(
TProcessApprovalConf:
:
getFieldValue
).
or
()
.
eq
(
TProcessApprovalConf:
:
getFieldValue
,
CommonConstants
.
EMPTY_STRING
));
List
<
TProcessApprovalConf
>
commonProcess
=
this
.
list
(
query
);
List
<
TProcessApprovalConf
>
one
=
new
ArrayList
<>();
if
(
Common
.
isNotKong
(
commonProcess
)){
for
(
TProcessApprovalConf
process
:
commonProcess
)
{
if
(
inUseIdList
.
contains
(
process
.
getProcessId
())){
one
.
add
(
process
);
}
}
}
return
one
;
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TProcessNodeServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TProcessNodeService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessNodeMapper
;
import
org.springframework.stereotype.Service
;
/**
* 流程节点表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TProcessNodeServiceImpl
extends
ServiceImpl
<
TProcessNodeMapper
,
TProcessNode
>
implements
TProcessNodeService
{
/**
* 流程节点表简单分页查询
*
* @param tProcessNode 流程节点表
* @return
*/
@Override
public
IPage
<
TProcessNode
>
getTProcessNodePage
(
Page
<
TProcessNode
>
page
,
TProcessNode
tProcessNode
)
{
return
baseMapper
.
getTProcessNodePage
(
page
,
tProcessNode
);
}
/**
* @param processId 流程id
* @Description: 删除
* @Author: hgw
* @Date: 2020/7/17 11:25
* @return: int
**/
@Override
public
int
deleteByProcessId
(
String
processId
)
{
return
baseMapper
.
deleteByProcessId
(
processId
);
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TProcessServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Sets
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.bean.BeanCopyUtils
;
import
com.yifu.cloud.plus.v1.yifu.process.service.*
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.CheckNodeVo
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessMapper
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.DeleteProcessIdsVo
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.ProcessVo
;
import
com.yifu.cloud.plus.v1.yifu.process.vo.TProcessViewVo
;
import
com.yifu.cloud.plus.v1.yifu.process.service.*
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
core
.
constant
.
ResultConstants
.
FAIL_INFO_NO_MODEL
;
/**
* 主流程表
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TProcessServiceImpl
extends
ServiceImpl
<
TProcessMapper
,
TProcess
>
implements
TProcessService
{
@Resource
private
TProcessNodeService
processNodeService
;
@Resource
private
TNodeRouteService
nodeRouteService
;
@Resource
private
TNodePrimissionService
nodePrimissionService
;
@Resource
private
TNodeReaderPromissionService
nodeReaderPromissionService
;
static
final
List
<
String
>
departIdType
=
Arrays
.
asList
(
"1"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"10"
,
"11"
,
"12"
);
static
final
List
<
String
>
chapterUnitType
=
Arrays
.
asList
(
"2"
,
"3"
);
@Resource
private
TNodeRouteConditionService
nodeRouteConditionService
;
@Resource
private
TNodeTransferConfigService
nodeTransferConfigService
;
@Resource
private
TProcessApprovalConfService
processApprovalConfService
;
/**
* 主流程表简单分页查询
*
* @param tProcess 主流程表
* @return
*/
@Override
public
IPage
<
TProcessViewVo
>
getTProcessPage
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
,
String
type
)
{
//参数处理
if
(
Common
.
isEmpty
(
tProcess
.
getProcessIsUse
())){
//默认查询在用
tProcess
.
setProcessIsUse
(
CommonConstants
.
ZERO_STRING
);
}
// getProcessIds为空表示从流程管理页面进来查询的。不为空是用流程检测列表来的
List
<
TProcessApprovalConf
>
thisDepartIdConfig
=
new
ArrayList
<>();
if
(
Common
.
isEmpty
(
tProcess
.
getProcessIds
()))
{
//先获得符合条件的配置流程
thisDepartIdConfig
=
processApprovalConfService
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
Common
.
isNotNull
(
tProcess
.
getProcessType
()),
TProcessApprovalConf:
:
getType
,
tProcess
.
getProcessType
())
.
eq
(
Common
.
isNotNull
(
tProcess
.
getDepartId
()),
TProcessApprovalConf:
:
getFieldValue
,
tProcess
.
getDepartId
())
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
//用于流程信息查询方法 where查询的范围参数
Set
<
String
>
processIdSet
=
new
HashSet
<>();
if
(
Common
.
isNotKong
(
thisDepartIdConfig
)){
//将符合条件的流程id封装起来
processIdSet
=
thisDepartIdConfig
.
stream
().
map
(
TProcessApprovalConf:
:
getProcessId
).
collect
(
Collectors
.
toSet
());
tProcess
.
setProcessIds
(
processIdSet
);
}
else
{
//若条件查到为0条,则下面获得流程信息也应为0条
processIdSet
.
add
(
CommonConstants
.
ZERO_STRING
);
tProcess
.
setProcessIds
(
processIdSet
);
}
}
else
{
thisDepartIdConfig
=
processApprovalConfService
.
list
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
}
IPage
<
TProcessViewVo
>
tProcessPage
=
baseMapper
.
getTProcessPage
(
page
,
tProcess
,
type
);
List
<
TProcessViewVo
>
records
=
tProcessPage
.
getRecords
();
if
(
Common
.
isEmpty
(
records
))
{
return
tProcessPage
;
}
//合同和部门用章单位
//获取所有流程id的数据
//key: 流程, value:部门
Map
<
String
,
Set
<
String
>>
departIdTypeMap
=
Maps
.
newHashMap
();
//key: 流程, value:流程类型
Map
<
String
,
String
>
processTypeMap
=
Maps
.
newHashMap
();
//key: 流程, value:用章单位
Map
<
String
,
Set
<
String
>>
chapterUnitTypeMap
=
Maps
.
newHashMap
();
if
(
Common
.
isNotKong
(
thisDepartIdConfig
))
{
for
(
TProcessApprovalConf
processApprovalConf
:
thisDepartIdConfig
)
{
processTypeMap
.
put
(
processApprovalConf
.
getProcessId
(),
processApprovalConf
.
getType
());
//部门类型
if
(
departIdType
.
contains
(
processApprovalConf
.
getType
()))
{
Set
<
String
>
processDepartSet
=
departIdTypeMap
.
get
(
processApprovalConf
.
getProcessId
());
if
(
processDepartSet
==
null
)
{
processDepartSet
=
Sets
.
newHashSet
();
processDepartSet
.
add
(
processApprovalConf
.
getFieldValue
());
departIdTypeMap
.
put
(
processApprovalConf
.
getProcessId
(),
processDepartSet
);
}
else
{
processDepartSet
.
add
(
processApprovalConf
.
getFieldValue
());
}
}
//用章单位类型
if
(
chapterUnitType
.
contains
(
processApprovalConf
.
getType
()))
{
Set
<
String
>
processChapterUnitSet
=
chapterUnitTypeMap
.
get
(
processApprovalConf
.
getProcessId
());
if
(
processChapterUnitSet
==
null
)
{
processChapterUnitSet
=
Sets
.
newHashSet
();
processChapterUnitSet
.
add
(
processApprovalConf
.
getFieldValue
());
chapterUnitTypeMap
.
put
(
processApprovalConf
.
getProcessId
(),
processChapterUnitSet
);
}
else
{
processChapterUnitSet
.
add
(
processApprovalConf
.
getFieldValue
());
}
}
}
}
for
(
TProcessViewVo
record
:
records
)
{
record
.
setType
(
processTypeMap
.
get
(
record
.
getId
()));
Set
<
String
>
strings
=
departIdTypeMap
.
get
(
record
.
getId
());
record
.
setDepartIds
(
departIdTypeMap
.
get
(
record
.
getId
()));
record
.
setChapterUnits
(
chapterUnitTypeMap
.
get
(
record
.
getId
()));
}
return
tProcessPage
;
}
/**
* @param id
* @Description: 获取包装类
* @Author: hgw
* @Date: 2020/7/17 11:05
* @return: ProcessVo
**/
@Override
public
ProcessVo
getProcessVoById
(
String
id
)
{
// 主流程表
ProcessVo
processVo
=
new
ProcessVo
();
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isEmpty
(
id
)))
{
return
processVo
;
}
processVo
.
setProcessId
(
id
);
// 节点
TProcessNode
processNode
=
new
TProcessNode
();
processNode
.
setProcessId
(
id
);
// 节点查询
QueryWrapper
<
TProcessNode
>
queryWrapperPn
=
new
QueryWrapper
<>();
queryWrapperPn
.
setEntity
(
processNode
);
// 节点列表
List
<
TProcessNode
>
processNodeList
=
processNodeService
.
list
(
queryWrapperPn
);
if
(
processNodeList
!=
null
&&
!
processNodeList
.
isEmpty
())
{
// 权限
TNodePrimission
nodePrimission
;
// 权限查询
QueryWrapper
<
TNodePrimission
>
queryWrapperNp
;
// 权限列表
List
<
TNodePrimission
>
nodePrimissionList
;
// 抄送
TNodeReaderPromission
nodeReaderPromission
;
// 抄送查询
QueryWrapper
<
TNodeReaderPromission
>
queryWrapperNrp
;
// 抄送列表
List
<
TNodeReaderPromission
>
nodeReaderPromissionList
;
for
(
TProcessNode
proNode
:
processNodeList
)
{
nodePrimission
=
new
TNodePrimission
();
nodePrimission
.
setNodeId
(
proNode
.
getId
());
queryWrapperNp
=
new
QueryWrapper
<>();
queryWrapperNp
.
setEntity
(
nodePrimission
);
nodePrimissionList
=
nodePrimissionService
.
list
(
queryWrapperNp
);
proNode
.
setNodePrimissionList
(
nodePrimissionList
);
nodeReaderPromission
=
new
TNodeReaderPromission
();
nodeReaderPromission
.
setNodeId
(
proNode
.
getId
());
queryWrapperNrp
=
new
QueryWrapper
<>();
queryWrapperNrp
.
setEntity
(
nodeReaderPromission
);
nodeReaderPromissionList
=
nodeReaderPromissionService
.
list
(
queryWrapperNrp
);
proNode
.
setNodeReaderPromissionList
(
nodeReaderPromissionList
);
//子流程
proNode
.
setNodeTransferConfigs
(
nodeTransferConfigService
.
list
(
Wrappers
.<
TNodeTransferConfig
>
query
().
lambda
().
eq
(
TNodeTransferConfig:
:
getNodeId
,
proNode
.
getId
())));
}
}
processVo
.
setProcessNodeList
(
processNodeList
);
// 路由
TNodeRoute
nodeRoute
=
new
TNodeRoute
();
nodeRoute
.
setProcessId
(
id
);
// 路由查询
QueryWrapper
<
TNodeRoute
>
queryWrapperNr
=
new
QueryWrapper
<>();
queryWrapperNr
.
setEntity
(
nodeRoute
);
// 路由列表
List
<
TNodeRoute
>
nodeRouteList
=
nodeRouteService
.
list
(
queryWrapperNr
);
//路由条件
for
(
TNodeRoute
tNodeRoute
:
nodeRouteList
)
{
tNodeRoute
.
setNodeRouteConditionList
(
nodeRouteConditionService
.
list
(
Wrappers
.<
TNodeRouteCondition
>
query
().
lambda
().
eq
(
TNodeRouteCondition:
:
getNodeRouteId
,
tNodeRoute
.
getId
())));
}
processVo
.
setNodeRouteList
(
nodeRouteList
);
return
processVo
;
}
/**
* @param processId
* @Description: 获取包装类
* @Author: hgw
* @Date: 2020/7/17 11:05
* @return: ProcessVo
**/
@Override
public
R
<
ProcessVo
>
getProcessVoByName
(
String
processId
)
{
// 主流程表
ProcessVo
processVo
=
new
ProcessVo
();
TProcess
process
=
this
.
getById
(
processId
);
if
(
process
==
null
)
{
return
R
.
failed
(
"获取流程失败"
);
}
processVo
.
setProcessId
(
processId
);
processVo
.
setName
(
process
.
getName
());
// 节点
TProcessNode
processNode
=
new
TProcessNode
();
processNode
.
setProcessId
(
processId
);
// 节点查询
QueryWrapper
<
TProcessNode
>
queryWrapperPn
=
new
QueryWrapper
<>();
queryWrapperPn
.
setEntity
(
processNode
);
// 节点列表
List
<
TProcessNode
>
processNodeList
=
processNodeService
.
list
(
queryWrapperPn
);
if
(
processNodeList
!=
null
&&
!
processNodeList
.
isEmpty
())
{
// 权限
TNodePrimission
nodePrimission
;
// 权限查询
QueryWrapper
<
TNodePrimission
>
queryWrapperNp
;
// 权限列表
List
<
TNodePrimission
>
nodePrimissionList
;
// 抄送
TNodeReaderPromission
nodeReaderPromission
;
// 抄送查询
QueryWrapper
<
TNodeReaderPromission
>
queryWrapperNrp
;
// 抄送列表
List
<
TNodeReaderPromission
>
nodeReaderPromissionList
;
for
(
TProcessNode
proNode
:
processNodeList
)
{
nodePrimission
=
new
TNodePrimission
();
nodePrimission
.
setNodeId
(
proNode
.
getId
());
queryWrapperNp
=
new
QueryWrapper
<>();
queryWrapperNp
.
setEntity
(
nodePrimission
);
nodePrimissionList
=
nodePrimissionService
.
list
(
queryWrapperNp
);
proNode
.
setNodePrimissionList
(
nodePrimissionList
);
nodeReaderPromission
=
new
TNodeReaderPromission
();
nodeReaderPromission
.
setNodeId
(
proNode
.
getId
());
queryWrapperNrp
=
new
QueryWrapper
<>();
queryWrapperNrp
.
setEntity
(
nodeReaderPromission
);
nodeReaderPromissionList
=
nodeReaderPromissionService
.
list
(
queryWrapperNrp
);
proNode
.
setNodeReaderPromissionList
(
nodeReaderPromissionList
);
//子流程
proNode
.
setNodeTransferConfigs
(
nodeTransferConfigService
.
list
(
Wrappers
.<
TNodeTransferConfig
>
query
().
lambda
().
eq
(
TNodeTransferConfig:
:
getNodeId
,
proNode
.
getId
())));
}
}
processVo
.
setProcessNodeList
(
processNodeList
);
// 路由
TNodeRoute
nodeRoute
=
new
TNodeRoute
();
nodeRoute
.
setProcessId
(
processId
);
// 路由查询
QueryWrapper
<
TNodeRoute
>
queryWrapperNr
=
new
QueryWrapper
<>();
queryWrapperNr
.
setEntity
(
nodeRoute
);
// 路由列表
List
<
TNodeRoute
>
nodeRouteList
=
nodeRouteService
.
list
(
queryWrapperNr
);
for
(
TNodeRoute
tNodeRoute
:
nodeRouteList
)
{
tNodeRoute
.
setNodeRouteConditionList
(
nodeRouteConditionService
.
list
(
Wrappers
.<
TNodeRouteCondition
>
query
().
lambda
().
eq
(
TNodeRouteCondition:
:
getNodeRouteId
,
tNodeRoute
.
getId
())));
}
processVo
.
setNodeRouteList
(
nodeRouteList
);
return
new
R
<>(
processVo
);
}
/**
* @param processVo 流程VO
* @Description: 保存流程
* @Author: hgw
* @Date: 2020/7/17 11:14
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
**/
@Override
@Transactional
public
R
saveProcessVo
(
ProcessVo
processVo
)
{
// 主流程表
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isEmpty
(
processVo
.
getProcessId
())))
{
return
R
.
failed
(
"流程id不可为空!"
);
}
// 流程id
String
processId
=
processVo
.
getProcessId
();
// 删除之前保存的且被删掉的节点、线、权限、抄送
this
.
deleteIds
(
processVo
.
getDeleteIdsVo
());
// 用户
YifuUser
user
=
SecurityUtils
.
getUser
();
// 用户id
String
userId
=
String
.
valueOf
(
user
.
getId
());
// 当前时间
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
// 保存流程节点
if
(
processVo
.
getProcessNodeList
()
!=
null
)
{
// 循环节点
R
err
=
saveOrUpdateNode
(
processVo
,
processId
);
if
(
Common
.
isNotKong
(
err
)){
return
err
;
}
}
// 保存节点路由
if
(
processVo
.
getNodeRouteList
()
!=
null
&&
!
processVo
.
getNodeRouteList
().
isEmpty
())
{
//crm2.12.0 保存之前先进行校验 配置保存的时候验证同一个节点相同路由条件不能指向不同的节点
R
r
=
saveBeforeCheck
(
processVo
);
if
(
Common
.
isNotKong
(
r
)){
return
r
;
}
saveOrUpdateRoute
(
processVo
,
processId
,
userId
,
nowTime
);
}
return
R
.
ok
(
"保存成功"
);
}
/**
* @param processVo 流程vo
* @param processId 流程id
* @param userId 用户id
* @param nowTime 当前时间
* @Description: 保存线
* @Author: hgw
* @Date: 2020/7/27 14:12
* @return: void
**/
private
void
saveOrUpdateRoute
(
ProcessVo
processVo
,
String
processId
,
String
userId
,
LocalDateTime
nowTime
)
{
for
(
TNodeRoute
nodeRoute
:
processVo
.
getNodeRouteList
())
{
nodeRoute
.
setProcessId
(
processId
);
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
nodeRoute
.
getId
())))
{
nodeRoute
.
setUpdateDate
(
nowTime
);
nodeRoute
.
setUpdateUser
(
userId
);
nodeRouteService
.
updateById
(
nodeRoute
);
}
else
{
nodeRoute
.
setCreateDate
(
nowTime
);
nodeRoute
.
setCreateUser
(
userId
);
nodeRouteService
.
save
(
nodeRoute
);
}
saveOrUpdateRouteCondition
(
nodeRoute
);
}
}
/**
* 功能描述: 校验同一个节点相同路由条件不能指向不同的节点
* @Param: []
* @Return: void
* @Author: wangdayu
* @Date: 2023/10/25 15:10
* @Since:
*/
private
R
saveBeforeCheck
(
ProcessVo
processVo
)
{
List
<
CheckNodeVo
>
checkList
=
new
ArrayList
<>();
for
(
TNodeRoute
tNodeRoute
:
processVo
.
getNodeRouteList
())
{
//将需要的信息封装起来
CheckNodeVo
one
=
new
CheckNodeVo
();
one
.
setProcessId
(
tNodeRoute
.
getProcessId
());
one
.
setPrewNode
(
tNodeRoute
.
getPrewNode
());
one
.
setNextNode
(
tNodeRoute
.
getNextNode
());
one
.
setLogoTitle
(
tNodeRoute
.
getLogoTitle
());
if
(
Common
.
isNotKong
(
tNodeRoute
.
getNodeRouteConditionList
()))
{
for
(
TNodeRouteCondition
tNodeRouteCondition
:
tNodeRoute
.
getNodeRouteConditionList
())
{
one
.
setNodeRouteId
(
tNodeRouteCondition
.
getNodeRouteId
());
one
.
setField
(
tNodeRouteCondition
.
getField
());
}
}
checkList
.
add
(
one
);
}
if
(
Common
.
isNotKong
(
checkList
)){
Map
<
String
,
List
<
CheckNodeVo
>>
groupMap
=
checkList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
CheckNodeVo:
:
getPrewNode
));
if
(
Common
.
isNotKong
(
groupMap
))
{
for
(
String
key
:
groupMap
.
keySet
())
{
List
<
CheckNodeVo
>
checkNodeVoList
=
groupMap
.
get
(
key
);
for
(
CheckNodeVo
checkNodeVo
:
checkNodeVoList
)
{
for
(
CheckNodeVo
nodeVo
:
checkNodeVoList
)
{
//位置重合路由
if
(
Common
.
isNotKong
(
checkNodeVo
.
getPrewNode
())
&&
Common
.
isNotKong
(
nodeVo
.
getPrewNode
())
&&
!
StringUtils
.
equals
(
checkNodeVo
.
getLogoTitle
(),
nodeVo
.
getLogoTitle
())
&&
StringUtils
.
equals
(
checkNodeVo
.
getPrewNode
(),
nodeVo
.
getPrewNode
())
&&
StringUtils
.
equals
(
checkNodeVo
.
getNextNode
(),
nodeVo
.
getNextNode
())){
return
R
.
failed
(
"存在重合路由!"
);
}
//如果表达式相同且后置节点相同,跳过,否则抛出异常
if
(
Common
.
isNotKong
(
checkNodeVo
.
getField
())
&&
Common
.
isNotKong
(
nodeVo
.
getField
()))
{
if
(
checkNodeVo
.
getField
().
equals
(
nodeVo
.
getField
()))
{
if
(
Common
.
isNotKong
(
checkNodeVo
.
getNextNode
())
&&
Common
.
isNotKong
(
nodeVo
.
getNextNode
())
&&
!
checkNodeVo
.
getNextNode
().
equals
(
nodeVo
.
getNextNode
()))
{
return
R
.
failed
(
"存在相同表达式路由指向不同节点!"
);
}
}
}
}
}
}
}
}
return
null
;
}
/**
* 保存路由条件
* @param nodeRoute
*/
private
void
saveOrUpdateRouteCondition
(
TNodeRoute
nodeRoute
){
List
<
TNodeRouteCondition
>
nodeRouteConditionList
=
nodeRoute
.
getNodeRouteConditionList
();
if
(
nodeRouteConditionList
!=
null
)
{
for
(
TNodeRouteCondition
nodeRouteCondition
:
nodeRouteConditionList
)
{
nodeRouteCondition
.
setNodeRouteId
(
nodeRoute
.
getId
());
nodeRouteConditionService
.
saveOrUpdate
(
nodeRouteCondition
);
}
}
}
/**
* @param processVo 流程vo
* @param processId 流程id
* @Description: 保存节点
* @Author: hgw
* @Date: 2020/7/27 14:11
* @return: void
**/
private
R
saveOrUpdateNode
(
ProcessVo
processVo
,
String
processId
)
{
//保存之前先进行节点重合判断
String
flag
=
saveBeforeCheckoverlap
(
processVo
.
getProcessNodeList
());
if
(
Common
.
isNotKong
(
flag
)){
return
R
.
failed
(
flag
);
}
for
(
TProcessNode
processNode
:
processVo
.
getProcessNodeList
())
{
processNode
.
setProcessId
(
processId
);
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
processNode
.
getId
())))
{
processNodeService
.
updateById
(
processNode
);
}
else
{
processNodeService
.
save
(
processNode
);
}
saveNodePromission
(
processId
,
processNode
);
saveNodeReaderPromission
(
processId
,
processNode
);
saveOrUpdateNodeTransferConfigs
(
processNode
);
}
return
null
;
}
/**
* 功能描述: 保存节点前先进行做坐标重合判断
* @Param: [processNodeList]
* @Return: java.lang.Boolean
* @Author: wangdayu
* @Date: 2023/10/31 14:26
* @Since:
*/
private
String
saveBeforeCheckoverlap
(
List
<
TProcessNode
>
processNodeList
)
{
if
(
Common
.
isNotKong
(
processNodeList
)){
for
(
TProcessNode
first
:
processNodeList
)
{
for
(
TProcessNode
second
:
processNodeList
)
{
if
(
Common
.
isNotKong
(
first
.
getLogoTitle
())
&&
Common
.
isNotKong
(
second
.
getLogoTitle
())
&&!
first
.
getLogoTitle
().
equals
(
second
.
getLogoTitle
())){
//这里和前端保持一致逻辑,坐标差值在5以内,判定为重复节点
if
(
Math
.
abs
(
Double
.
valueOf
(
first
.
getCoordinatex
())
-
Double
.
valueOf
(
second
.
getCoordinatex
()))
<
Double
.
valueOf
(
CommonConstants
.
FIVE_STRING
)
&&
Math
.
abs
(
Double
.
valueOf
(
first
.
getCoordinatey
())
-
Double
.
valueOf
(
second
.
getCoordinatey
()))<
Double
.
valueOf
(
CommonConstants
.
FIVE_STRING
)){
return
"存在节点位置重复"
;
}
}
}
}
Set
<
String
>
logoTitleSet
=
processNodeList
.
stream
().
map
(
TProcessNode:
:
getLogoTitle
).
collect
(
Collectors
.
toSet
());
if
(
processNodeList
.
size
()
!=
logoTitleSet
.
size
()){
return
"存在节点标志重复"
;
}
}
return
CommonConstants
.
EMPTY_STRING
;
}
/**
* 保存子流程
* @param processNode
*/
private
void
saveOrUpdateNodeTransferConfigs
(
TProcessNode
processNode
){
List
<
TNodeTransferConfig
>
nodeRouteConditionList
=
processNode
.
getNodeTransferConfigs
();
if
(
nodeRouteConditionList
!=
null
)
{
for
(
TNodeTransferConfig
nodeTransferConfig
:
nodeRouteConditionList
)
{
nodeTransferConfig
.
setNodeId
(
processNode
.
getId
());
nodeTransferConfigService
.
saveOrUpdate
(
nodeTransferConfig
);
}
}
}
/**
* @param deleteIdsVo 需要删除的ids
* @Description: 删除流程内的相关
* @Author: hgw
* @Date: 2020/7/27 11:10
* @return: void
**/
private
void
deleteIds
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
deleteIdsVo
!=
null
)
{
// 删除子流程节点
deleteNodeTransferConfig
(
deleteIdsVo
);
// 删除线权限
deleteRoteCondition
(
deleteIdsVo
);
// 删除权限
deletePrimission
(
deleteIdsVo
);
// 删除抄送
deleteReadPrimission
(
deleteIdsVo
);
// 删除节点路由
deleteRoute
(
deleteIdsVo
);
// 删除流程节点
deleteNode
(
deleteIdsVo
);
}
}
/**
* @param deleteIdsVo 删除id
* @Description: 删除流程节点
* @Author: hgw
* @Date: 2020/7/27 11:26
* @return: void
**/
private
void
deleteNode
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getNodeIds
()))
&&
deleteIdsVo
.
getNodeIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getNodeIds
())
{
processNodeService
.
removeById
(
id
);
}
}
}
/**
* 删除子流程
* @param deleteIdsVo
*/
private
void
deleteNodeTransferConfig
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getNodeTransferConfigIds
()))
&&
deleteIdsVo
.
getNodeTransferConfigIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getNodeTransferConfigIds
())
{
nodeTransferConfigService
.
removeById
(
id
);
}
}
}
/**
* @param deleteIdsVo 删除id
* @Description: 删除线
* @Author: hgw
* @Date: 2020/7/27 11:26
* @return: void
**/
private
void
deleteRoute
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getRoteIds
()))
&&
deleteIdsVo
.
getRoteIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getRoteIds
())
{
nodeRouteService
.
removeById
(
id
);
}
}
}
/**
* @param deleteIdsVo 删除id
* @Description: 删除线权限id
* @Author: hgw
* @Date: 2020/7/27 11:26
* @return: void
**/
private
void
deleteRoteCondition
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getRoteConditionIds
()))
&&
deleteIdsVo
.
getRoteConditionIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getRoteConditionIds
())
{
nodeRouteConditionService
.
removeById
(
id
);
}
}
}
/**
* @param deleteIdsVo 删除id
* @Description: 删除抄送
* @Author: hgw
* @Date: 2020/7/27 11:26
* @return: void
**/
private
void
deleteReadPrimission
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getReadPrimissionIds
()))
&&
deleteIdsVo
.
getReadPrimissionIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getReadPrimissionIds
())
{
nodeReaderPromissionService
.
removeById
(
id
);
}
}
}
/**
* @param deleteIdsVo 删除id
* @Description: 删除权限
* @Author: hgw
* @Date: 2020/7/27 11:26
* @return: void
**/
private
void
deletePrimission
(
DeleteProcessIdsVo
deleteIdsVo
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
deleteIdsVo
.
getPrimissionIds
()))
&&
deleteIdsVo
.
getPrimissionIds
().
length
>
0
)
{
for
(
String
id
:
deleteIdsVo
.
getPrimissionIds
())
{
nodePrimissionService
.
removeById
(
id
);
}
}
}
/**
* @param processId 流程id
* @param processNode 节点
* @Description: 保存抄送
* @Author: hgw
* @Date: 2020/7/24 20:18
* @return: void
**/
private
void
saveNodeReaderPromission
(
String
processId
,
TProcessNode
processNode
)
{
if
(
processNode
.
getNodeReaderPromissionList
()
!=
null
)
{
for
(
TNodeReaderPromission
nodeReaderPrimission
:
processNode
.
getNodeReaderPromissionList
())
{
nodeReaderPrimission
.
setProcessId
(
processId
);
nodeReaderPrimission
.
setNodeId
(
processNode
.
getId
());
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
nodeReaderPrimission
.
getId
())))
{
nodeReaderPromissionService
.
updateById
(
nodeReaderPrimission
);
}
else
{
nodeReaderPromissionService
.
save
(
nodeReaderPrimission
);
}
}
}
}
/**
* @param processId 流程id
* @param processNode 节点
* @Description: 保存权限
* @Author: hgw
* @Date: 2020/7/24 20:19
* @return: void
**/
private
void
saveNodePromission
(
String
processId
,
TProcessNode
processNode
)
{
if
(
processNode
.
getNodePrimissionList
()
!=
null
)
{
for
(
TNodePrimission
nodePrimission
:
processNode
.
getNodePrimissionList
())
{
nodePrimission
.
setProcessId
(
processId
);
nodePrimission
.
setNodeId
(
processNode
.
getId
());
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isNotKong
(
nodePrimission
.
getId
())))
{
nodePrimissionService
.
updateById
(
nodePrimission
);
}
else
{
nodePrimissionService
.
save
(
nodePrimission
);
}
}
}
}
/**
* @param processId 流程id
* @Description: 删除流程以及节点、路由
* @Author: hgw
* @Date: 2020/7/17 17:22
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
**/
@Override
public
R
deleteById
(
String
processId
)
{
if
(
Boolean
.
TRUE
.
equals
(
Common
.
isEmpty
(
processId
)))
{
return
R
.
failed
(
"流程id不可为空!"
);
}
// 删除节点路由
nodeRouteService
.
deleteByProcessId
(
processId
);
// 删除流程节点
processNodeService
.
deleteByProcessId
(
processId
);
// 主流程表
this
.
removeById
(
processId
);
return
R
.
ok
(
"删除成功"
);
}
/**
* @param vo
* @Author: wangan
* @Date: 2021/6/16
* @Description: 根据不同类型判断是
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R
* @see com.yifu.cloud.plus.v1.process.service.impl
* 类型 1客户合同审批 2客户合同办理 3客户合同归档 4垫付 5crm客户审批
* 如果类型非 合同办理和合同归档,则判断部门
* 如果类型为 合同办理和合同归档,为用章档案
* 如果数据为空。则直接过,为了兼容hr页面
**/
@Override
@Transactional
public
R
<
String
>
add
(
TProcessViewVo
vo
)
{
TProcess
tProcess
=
new
TProcess
();
BeanCopyUtils
.
copyProperties
(
vo
,
tProcess
);
if
(
Common
.
isEmpty
(
vo
.
getProcessIsUse
())){
//设置默认在用
tProcess
.
setProcessIsUse
(
CommonConstants
.
ZERO_STRING
);
}
if
(
Common
.
isNotKong
(
vo
.
getType
()))
{
// 若选则了通用
//if (CommonConstants.ZERO_STRING.equals(vo.getCommonUse())){
return
commonUseSave
(
vo
,
tProcess
);
// } else {
// // 1.7.5 只留通用流程
// if (departIdType.contains(vo.getType())) {
// return addDepartConfs(vo, tProcess);
// } else {
// return R.failCheckGeneric("未知的类型", CommonConstants.NULL);
// }
// }
}
else
{
this
.
save
(
tProcess
);
return
R
.
ok
(
CommonConstants
.
NULL
,
ResultConstants
.
SUCCESS_INFO
);
}
}
/**
* @param vo
* @Author: wangan
* @Date: 2021/6/16
* @Description: 修改
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
* @see com.yifu.cloud.plus.v1.process.service.impl
* 新增逻辑不变。增加删除逻辑
**/
@Override
@Transactional
public
R
<
String
>
modify
(
TProcessViewVo
vo
)
{
TProcess
tProcess
=
new
TProcess
();
BeanCopyUtils
.
copyProperties
(
vo
,
tProcess
);
if
(
Common
.
isNotKong
(
vo
.
getType
()))
{
// todo 1.7.5 只留通用流程若选则了通用
//if (CommonConstants.ZERO_STRING.equals(vo.getCommonUse())){
return
commonUseSave
(
vo
,
tProcess
);
//}
// if (departIdType.contains(vo.getType())) {
// if (vo.getDepartIds()!=null && !vo.getDepartIds().isEmpty()) {
// R<String> addDepartConfsR = addDepartConfs(vo, tProcess);
// if(addDepartConfsR==null ||addDepartConfsR.getCode()!=CommonConstants.SUCCESS){
// throw new CheckedException(addDepartConfsR.getMsg());
// }
// }
// if(vo.getDelDepartIds()!=null && !vo.getDelDepartIds().isEmpty()){
// //删除部门配置
// processApprovalConfService.remove(Wrappers.<TProcessApprovalConf>query().lambda()
// .eq(TProcessApprovalConf::getType, vo.getType()).eq(TProcessApprovalConf::getDeleteFlag, CommonConstants.ZERO_STRING)
// .in(TProcessApprovalConf::getFieldValue, vo.getDelDepartIds()));
// }
// this.updateById(tProcess);
// return R.successCheckGeneric(ResultConstants.SUCCESS_INFO,CommonConstants.NULL);
// } else {
// return R.failCheckGeneric("未知的类型", CommonConstants.NULL);
// }
}
else
{
this
.
updateById
(
tProcess
);
return
R
.
ok
(
CommonConstants
.
NULL
,
ResultConstants
.
SUCCESS_INFO
);
}
}
/**
* @param id
* @Author: wangan
* @Date: 2021/6/18
* @Description: 数据都重置为假删除
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
* @see com.yifu.cloud.plus.v1.process.service.impl
**/
@Override
public
R
<
String
>
delete
(
String
id
)
{
TProcess
process
=
this
.
getById
(
id
);
if
(
process
==
null
)
{
return
R
.
failed
(
CommonConstants
.
NULL
,
ResultConstants
.
FAIL_INFO_NO_MODEL
);
}
//更新配置表为删除
TProcessApprovalConf
processApprovalConf
=
new
TProcessApprovalConf
();
processApprovalConf
.
setDeleteFlag
(
CommonConstants
.
DELETE_FLAG
);
processApprovalConfService
.
update
(
processApprovalConf
,
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getProcessId
,
id
));
//更新流程表为删除
process
.
setDeleteFlag
(
CommonConstants
.
DELETE_FLAG
);
this
.
updateById
(
process
);
return
R
.
ok
(
CommonConstants
.
NULL
,
ResultConstants
.
SUCCESS_INFO
);
}
/**
* @param vo
* @param tProcess
* @Author: wangdayu
* @Date: 2023年10月27日10:45
* @Description: 通用流程保存逻辑
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
* @see com.yifu.cloud.plus.v1.process.service.impl
**/
private
R
<
String
>
commonUseSave
(
TProcessViewVo
vo
,
TProcess
tProcess
)
{
LambdaQueryWrapper
<
TProcessApprovalConf
>
query
=
new
LambdaQueryWrapper
<>();
//获取该类型下面的通用流程配置,并判断当前类型的流程是否是在用流程,若是,则提示重复,否则正常保存
query
.
eq
(
TProcessApprovalConf:
:
getType
,
vo
.
getType
())
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
)
.
and
(
wq
->
wq
.
isNull
(
TProcessApprovalConf:
:
getFieldValue
).
or
()
.
eq
(
TProcessApprovalConf:
:
getFieldValue
,
CommonConstants
.
EMPTY_STRING
));
List
<
TProcessApprovalConf
>
commonProcess
=
processApprovalConfService
.
list
(
query
);
//存在该类型的流程配置
if
(
Common
.
isNotKong
(
commonProcess
))
{
Boolean
inUse
=
judgeInuse
(
commonProcess
);
if
(
inUse
)
{
if
(
Common
.
isEmpty
(
vo
.
getId
())){
return
R
.
failed
(
"当前流程类型存在正在使用的流程"
);
}
}
}
//删除部门配置
processApprovalConfService
.
remove
(
Wrappers
.<
TProcessApprovalConf
>
query
().
lambda
()
.
eq
(
TProcessApprovalConf:
:
getType
,
vo
.
getType
())
.
eq
(
TProcessApprovalConf:
:
getProcessId
,
vo
.
getId
())
.
eq
(
TProcessApprovalConf:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
));
//校验通过后插入数据
if
(
Common
.
isEmpty
(
vo
.
getId
()))
{
//如果没有id则是新增
this
.
save
(
tProcess
);
}
TProcessApprovalConf
processApprovalConf
=
new
TProcessApprovalConf
();
processApprovalConf
.
setType
(
vo
.
getType
());
if
(
departIdType
.
contains
(
vo
.
getType
()))
{
processApprovalConf
.
setClassName
(
"OrganizationInfo"
);
processApprovalConf
.
setFieldName
(
"id"
);
}
else
if
(
chapterUnitType
.
contains
(
vo
.
getType
()))
{
processApprovalConf
.
setClassName
(
"TCustomerContract"
);
processApprovalConf
.
setFieldName
(
"chapterUnit"
);
}
processApprovalConf
.
setDeleteFlag
(
CommonConstants
.
ZERO_STRING
);
processApprovalConf
.
setFieldValue
(
CommonConstants
.
EMPTY_STRING
);
processApprovalConf
.
setParentId
(
CommonConstants
.
ZERO_STRING
);
processApprovalConf
.
setProcessId
(
tProcess
.
getId
());
processApprovalConf
.
setRemark
(
tProcess
.
getName
());
processApprovalConfService
.
save
(
processApprovalConf
);
this
.
updateById
(
tProcess
);
return
R
.
ok
(
CommonConstants
.
NULL
,
ResultConstants
.
SUCCESS_INFO
);
}
/**
* 功能描述: 校验当前类型流程是否存在在用
* @Param: [processId]
* @Return: java.lang.Boolean
* @Author: wangdayu
* @Date: 2023/10/27 10:32
* @Since:
*/
private
Boolean
judgeInuse
(
List
<
TProcessApprovalConf
>
tprocessApprovalConf
)
{
if
(
Common
.
isNotKong
(
tprocessApprovalConf
))
{
Set
<
String
>
processId
=
tprocessApprovalConf
.
stream
().
map
(
TProcessApprovalConf:
:
getProcessId
)
.
collect
(
Collectors
.
toSet
());
//在流程表里面判断是否是在用流程
List
<
TProcess
>
tProcesses
=
this
.
listByIds
(
processId
);
if
(
Common
.
isNotKong
(
tProcesses
))
{
Boolean
inUseFlag
=
tProcesses
.
stream
().
anyMatch
(
t
->
(
CommonConstants
.
ZERO_STRING
.
equals
(
t
.
getProcessIsUse
())
&&
CommonConstants
.
NOT_DELETE_FLAG
.
equals
(
t
.
getDeleteFlag
())));
//若当前类型的流程配置存在在用,则提示重复
return
inUseFlag
;
}
}
return
Boolean
.
FALSE
;
}
@Override
public
R
<
String
>
noUse
(
TProcess
tProcess
)
{
//1.参数校验
if
(
Common
.
isEmpty
(
tProcess
.
getId
())){
return
R
.
failed
(
"id不能为空"
);
}
//2.实体是否存在校验
TProcess
process
=
this
.
getById
(
tProcess
.
getId
());
if
(
Common
.
isEmpty
(
process
)){
return
R
.
failed
(
FAIL_INFO_NO_MODEL
);
}
//3.修改条件封装:实体存在则进行状态修改
UpdateWrapper
<
TProcess
>
updateWrapper
=
new
UpdateWrapper
();
updateWrapper
.
lambda
()
.
eq
(
TProcess:
:
getId
,
tProcess
.
getId
())
.
eq
(
TProcess:
:
getDeleteFlag
,
CommonConstants
.
NOT_DELETE_FLAG
)
.
set
(
TProcess:
:
getProcessIsUse
,
CommonConstants
.
ONE_STRING
);
//4.返回结果
if
(
this
.
update
(
updateWrapper
)){
return
R
.
ok
(
ResultConstants
.
MODIFY_SUCCESS
);
}
return
R
.
failed
(
ResultConstants
.
MODIFY_FAIL
);
}
/**
* 根据角色ID获取关联流程
*
* @param tProcess 审批角色
* @return IPage<TProcessViewVo>
* @author chenyuxi
* @date 2023-10-23 09:48:57
* @since crm2.12.0
*/
@Override
public
IPage
<
TProcessViewVo
>
getProcessPageByRoleId
(
Page
<
TProcessViewVo
>
page
,
TProcessViewVo
tProcess
)
{
Set
<
String
>
processIds
=
new
HashSet
<>();
// 查关联角色的流程ID
LambdaQueryWrapper
<
TNodePrimission
>
nodePrimissionQuery
=
Wrappers
.<
TNodePrimission
>
lambdaQuery
()
.
eq
(
TNodePrimission:
:
getApprovalRole
,
tProcess
.
getRole
())
.
eq
(
TNodePrimission:
:
getType
,
tProcess
.
getNodePermissionType
());
List
<
TNodePrimission
>
nodePrimissionList
=
nodePrimissionService
.
list
(
nodePrimissionQuery
);
if
(
Common
.
isNotKong
(
nodePrimissionList
))
{
processIds
=
nodePrimissionList
.
stream
().
map
(
TNodePrimission:
:
getProcessId
).
collect
(
Collectors
.
toSet
());
}
// 查关联角色的抄送流程ID t_node_reader_promission
LambdaQueryWrapper
<
TNodeReaderPromission
>
nodeReaderPrimissionQuery
=
Wrappers
.<
TNodeReaderPromission
>
lambdaQuery
()
.
eq
(
TNodeReaderPromission:
:
getApprovalRole
,
tProcess
.
getRole
())
.
eq
(
TNodeReaderPromission:
:
getType
,
tProcess
.
getNodePermissionType
());
List
<
TNodeReaderPromission
>
nodeReaderPrimissionList
=
nodeReaderPromissionService
.
list
(
nodeReaderPrimissionQuery
);
if
(
Common
.
isNotKong
(
nodeReaderPrimissionList
))
{
for
(
TNodeReaderPromission
nodeReaderPromission
:
nodeReaderPrimissionList
)
{
processIds
.
add
(
nodeReaderPromission
.
getProcessId
());
}
}
if
(
Common
.
isEmpty
(
processIds
))
{
return
null
;
}
// 传流程ID集合查流程列表
tProcess
.
setProcessIds
(
processIds
);
return
this
.
getTProcessPage
(
page
,
tProcess
,
CommonConstants
.
ZERO_STRING
);
}
@Override
public
String
checkProcessByRoleId
(
TProcessViewVo
tProcess
)
{
LambdaQueryWrapper
<
TNodePrimission
>
nodePrimissionQuery
=
Wrappers
.<
TNodePrimission
>
lambdaQuery
()
.
eq
(
TNodePrimission:
:
getApprovalRole
,
tProcess
.
getRole
())
.
eq
(
TNodePrimission:
:
getType
,
tProcess
.
getNodePermissionType
());
List
<
TNodePrimission
>
nodePrimissionList
=
nodePrimissionService
.
list
(
nodePrimissionQuery
);
LambdaQueryWrapper
<
TNodeReaderPromission
>
nodeReaderPrimissionQuery
=
Wrappers
.<
TNodeReaderPromission
>
lambdaQuery
()
.
eq
(
TNodeReaderPromission:
:
getApprovalRole
,
tProcess
.
getRole
())
.
eq
(
TNodeReaderPromission:
:
getType
,
tProcess
.
getNodePermissionType
());
List
<
TNodeReaderPromission
>
nodeReaderPrimissionList
=
nodeReaderPromissionService
.
list
(
nodeReaderPrimissionQuery
);
if
(
nodePrimissionList
.
size
()
==
0
&&
nodeReaderPrimissionList
.
size
()
==
0
)
{
return
CommonConstants
.
ZERO_STRING
;
}
else
{
Set
<
String
>
processIds
=
new
HashSet
<>();
if
(
Common
.
isNotKong
(
nodePrimissionList
))
{
processIds
=
nodePrimissionList
.
stream
().
map
(
TNodePrimission:
:
getProcessId
).
collect
(
Collectors
.
toSet
());
}
if
(
Common
.
isNotKong
(
nodeReaderPrimissionList
))
{
for
(
TNodeReaderPromission
nodeReaderPromission
:
nodeReaderPrimissionList
)
{
processIds
.
add
(
nodeReaderPromission
.
getProcessId
());
}
}
// 检测关联的流程是否被删除
LambdaQueryWrapper
<
TProcess
>
processQuery
=
Wrappers
.<
TProcess
>
lambdaQuery
()
.
in
(
TProcess:
:
getId
,
processIds
)
.
eq
(
TProcess:
:
getDeleteFlag
,
CommonConstants
.
ZERO_STRING
);
long
processCount
=
this
.
count
(
processQuery
);
if
(
processCount
==
0
)
{
return
CommonConstants
.
ZERO_STRING
;
}
}
return
CommonConstants
.
ONE_STRING
;
}
}
yifu-process/yifu-process-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/process/service/impl/TServiceTransferConfigServiceImpl.java
0 → 100644
View file @
5c5a87ea
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
process
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.process.entity.TServiceTransferConfig
;
import
com.yifu.cloud.plus.v1.yifu.process.service.TServiceTransferConfigService
;
import
com.yifu.cloud.plus.v1.yifu.process.mapper.TServiceTransferConfigMapper
;
import
org.springframework.stereotype.Service
;
/**
* 远程服务调用(在节点为服务调用节点时使用)
*
* @author hgw
* @date 2020-07-16 15:44:02
*/
@Service
public
class
TServiceTransferConfigServiceImpl
extends
ServiceImpl
<
TServiceTransferConfigMapper
,
TServiceTransferConfig
>
implements
TServiceTransferConfigService
{
/**
* 远程服务调用(在节点为服务调用节点时使用)简单分页查询
*
* @param tServiceTransferConfig 远程服务调用(在节点为服务调用节点时使用)
* @return
*/
@Override
public
IPage
<
TServiceTransferConfig
>
getTServiceTransferConfigPage
(
Page
<
TServiceTransferConfig
>
page
,
TServiceTransferConfig
tServiceTransferConfig
)
{
return
baseMapper
.
getTServiceTransferConfigPage
(
page
,
tServiceTransferConfig
);
}
}
yifu-process/yifu-process-biz/src/main/resources/application-dev.yml
0 → 100644
View file @
5c5a87ea
# 数据源配置
spring
:
mvc
:
pathmatch
:
matching-strategy
:
ant_path_matcher
config
:
activate
:
on-profile
:
dev
redis
:
host
:
127.0.0.1
port
:
6379
password
:
'
@yf_2017'
datasource
:
process
:
type
:
com.zaxxer.hikari.HikariDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
username
:
root
password
:
yf_zsk
jdbc-url
:
jdbc:mysql://192.168.1.65:43306/mvp_process?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari
:
driver-class-name
:
${spring.datasource.driver-class-name}
jdbc-url
:
${spring.datasource.url}
username
:
${spring.datasource.username}
password
:
${spring.datasource.password}
pool-name
:
AmytangHikariCP
minimum-idle
:
20
# 最小空闲连接数量
idle-timeout
:
60000
# 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size
:
100
# 连接池最大连接数,默认是10
auto-commit
:
true
#此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime
:
0
#此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
yifu-process/yifu-process-biz/src/main/resources/application-prd.yml
0 → 100644
View file @
5c5a87ea
spring
:
mvc
:
pathmatch
:
matching-strategy
:
ant_path_matcher
config
:
activate
:
on-profile
:
prd
redis
:
host
:
192.168.0.222
port
:
22379
password
:
'
@yf_2022'
datasource
:
process
:
type
:
com.zaxxer.hikari.HikariDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
username
:
root
password
:
yf_zsk
jdbc-url
:
jdbc:mysql://192.168.0.222:22306/mvp_process?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari
:
driver-class-name
:
${spring.datasource.driver-class-name}
jdbc-url
:
${spring.datasource.url}
username
:
${spring.datasource.username}
password
:
${spring.datasource.password}
pool-name
:
AmytangHikariCP
minimum-idle
:
20
# 最小空闲连接数量
idle-timeout
:
60000
# 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size
:
100
# 连接池最大连接数,默认是10
auto-commit
:
true
#此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime
:
0
#此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
yifu-process/yifu-process-biz/src/main/resources/application-test.yml
0 → 100644
View file @
5c5a87ea
spring
:
mvc
:
pathmatch
:
matching-strategy
:
ant_path_matcher
config
:
activate
:
on-profile
:
test
redis
:
host
:
192.168.1.65
port
:
22379
password
:
'
@yf_2017'
datasource
:
process
:
type
:
com.zaxxer.hikari.HikariDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
username
:
root
password
:
yf_zsk
jdbc-url
:
jdbc:mysql://192.168.1.65:43306/mvp_process?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari
:
driver-class-name
:
${spring.datasource.driver-class-name}
jdbc-url
:
${spring.datasource.url}
username
:
${spring.datasource.username}
password
:
${spring.datasource.password}
pool-name
:
AmytangHikariCP
minimum-idle
:
10
# 最小空闲连接数量
idle-timeout
:
60000
# 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size
:
12
# 连接池最大连接数,默认是10
auto-commit
:
true
#此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime
:
0
#此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
servlet
:
multipart
:
location
:
/data/tmp/
yifu-process/yifu-process-biz/src/main/resources/application.yml
0 → 100644
View file @
5c5a87ea
server
:
port
:
25087
# 加解密根密码
jasypt
:
encryptor
:
password
:
yifu
#根密码
# 暴露监控端点
management
:
endpoints
:
web
:
exposure
:
include
:
"
*"
endpoint
:
health
:
show-details
:
ALWAYS
# mybaits-plus配置
mybatis-plus
:
mapper-locations
:
classpath:/mapper/*Mapper.xml
global-config
:
banner
:
false
db-config
:
id-type
:
auto
table-underline
:
true
logic-delete-value
:
1
logic-not-delete-value
:
0
configuration
:
map-underscore-to-camel-case
:
true
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
# spring security 配置
security
:
oauth2
:
resource
:
loadBalanced
:
true
token-info-uri
:
http://yifu-auth/oauth/check_token
ignore
:
# 通用放行URL,服务个性化,请在对应配置文件覆盖
urls
:
-
/v3/api-docs
-
/actuator/**
-
/swagger-ui/**
# Spring 相关
spring
:
application
:
name
:
@
artifactId@
#mvc:
# pathmatch:
# matching-strategy: ANT_PATH_MATCHER
servlet
:
multipart
:
#所有上传文件最大大小
max-request-size
:
100MB
#单个文件最大大小
max-file-size
:
50MB
springdoc
:
api-docs
:
#是否开启文档功能
enabled
:
true
#swagger后端请求地址
path
:
/api-docs
swagger-ui
:
#自定义swagger前端请求路径,输入http:127.0.0.1:8080/test会自动重定向到swagger页面
path
:
/api
#包扫描路径
packages-to-scan
:
com.yifu.cloud.plus.v1.yifu.process.controller
#这里定义了两个分组,可定义多个,也可以不定义
group-configs
:
#分组名
#- group: admin
#按路径匹配
# pathsToMatch: /admin/**
#分组名
-
group
:
insurances
#按包路径匹配
packagesToScan
:
com.yifu.cloud.plus.v1.yifu.process.controller
yifu-process/yifu-process-biz/src/main/resources/logback-spring.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
scan=
"false"
>
<springProperty
scop=
"context"
name=
"springAppName"
source=
"spring.application.name"
defaultValue=
""
/>
<springProperty
scop=
"context"
name=
"springAppActive"
source=
"spring.profiles.active"
defaultValue=
""
/>
<property
name=
"log.path"
value=
"logs/${springAppName}"
/>
<!-- 彩色日志格式 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- Console log output -->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
${CONSOLE_LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- Log file debug output -->
<appender
name=
"debug"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${log.path}/debug.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<fileNamePattern>
${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<maxFileSize>
50MB
</maxFileSize>
<maxHistory>
30
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
</pattern>
</encoder>
</appender>
<!-- Log file error output -->
<appender
name=
"error"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${log.path}/error.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<fileNamePattern>
${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<maxFileSize>
50MB
</maxFileSize>
<maxHistory>
30
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
ERROR
</level>
</filter>
</appender>
<!--邮件提醒-->
<appender
name=
"MAIL"
class=
"ch.qos.logback.classic.net.SMTPAppender"
>
<smtpHost>
smtp.exmail.qq.com
</smtpHost>
<smtpPort>
465
</smtpPort>
<username>
information@wanxin-holdings.com
</username>
<password>
QmdCaQSPmCAQEddd
</password>
<SSL>
true
</SSL>
<asynchronousSending>
true
</asynchronousSending>
<to>
wangpeng@wanxin-holdings.com,fangxinjiang@wanxin-holdings.com,hongguangwu@wanxin-holdings.com
</to>
<from>
information@wanxin-holdings.com
</from>
<subject>
hro-mvp ${springAppActive}环境 ${springAppName}服务: %-20msg 错误
</subject>
<charsetEncoding>
UTF-8
</charsetEncoding>
<cyclicBufferTracker
class=
"ch.qos.logback.core.spi.CyclicBufferTracker"
>
<!-- <!– 每个电子邮件只发送一个日志条目 –>-->
<bufferSize>
1
</bufferSize>
</cyclicBufferTracker>
<layout
class=
"ch.qos.logback.classic.html.HTMLLayout"
/>
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
ERROR
</level>
</filter>
</appender>
<springProfile
name=
"prd"
>
<root
level=
"error"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"debug"
/>
<appender-ref
ref=
"error"
/>
<appender-ref
ref=
"MAIL"
/>
</root>
</springProfile>
<springProfile
name=
"dev"
>
<root
level=
"error"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"debug"
/>
<appender-ref
ref=
"error"
/>
</root>
</springProfile>
<springProfile
name=
"test"
>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root
level=
"info"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"debug"
/>
<appender-ref
ref=
"error"
/>
</root>
</springProfile>
</configuration>
yifu-process/yifu-process-biz/src/main/resources/mapper/TDelayNodeConfigMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TDelayNodeConfigMapper"
>
<resultMap
id=
"tDelayNodeConfigMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TDelayNodeConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"delayType"
column=
"DELAY_TYPE"
/>
<result
property=
"minutes"
column=
"MINUTES"
/>
<result
property=
"time"
column=
"TIME"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.DELAY_TYPE,
a.MINUTES,
a.TIME,
a.NODE_ID
</sql>
<sql
id=
"tDelayNodeConfig_where"
>
<if
test=
"tDelayNodeConfig != null"
>
<if
test=
"tDelayNodeConfig.id != null and tDelayNodeConfig.id.trim() != ''"
>
AND a.ID = #{tDelayNodeConfig.id}
</if>
<if
test=
"tDelayNodeConfig.delayType != null and tDelayNodeConfig.delayType.trim() != ''"
>
AND a.DELAY_TYPE = #{tDelayNodeConfig.delayType}
</if>
<if
test=
"tDelayNodeConfig.minutes != null"
>
AND a.MINUTES = #{tDelayNodeConfig.minutes}
</if>
<if
test=
"tDelayNodeConfig.time != null"
>
AND a.TIME = #{tDelayNodeConfig.time}
</if>
<if
test=
"tDelayNodeConfig.nodeId != null and tDelayNodeConfig.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tDelayNodeConfig.nodeId}
</if>
</if>
</sql>
<!--tDelayNodeConfig简单分页查询-->
<select
id=
"getTDelayNodeConfigPage"
resultMap=
"tDelayNodeConfigMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_delay_node_config a
<where>
1=1
<include
refid=
"tDelayNodeConfig_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeConfigMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeConfigMapper"
>
<resultMap
id=
"tNodeConfigMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"allowWithdraw"
column=
"ALLOW_WITHDRAW"
/>
<result
property=
"allowBacktrack"
column=
"ALLOW_BACKTRACK"
/>
<result
property=
"allowDealRemind"
column=
"ALLOW_DEAL_REMIND"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.ALLOW_WITHDRAW,
a.ALLOW_BACKTRACK,
a.ALLOW_DEAL_REMIND,
a.NODE_ID
</sql>
<sql
id=
"tNodeConfig_where"
>
<if
test=
"tNodeConfig != null"
>
<if
test=
"tNodeConfig.id != null and tNodeConfig.id.trim() != ''"
>
AND a.ID = #{tNodeConfig.id}
</if>
<if
test=
"tNodeConfig.allowWithdraw != null and tNodeConfig.allowWithdraw.trim() != ''"
>
AND a.ALLOW_WITHDRAW = #{tNodeConfig.allowWithdraw}
</if>
<if
test=
"tNodeConfig.allowBacktrack != null and tNodeConfig.allowBacktrack.trim() != ''"
>
AND a.ALLOW_BACKTRACK = #{tNodeConfig.allowBacktrack}
</if>
<if
test=
"tNodeConfig.allowDealRemind != null and tNodeConfig.allowDealRemind.trim() != ''"
>
AND a.ALLOW_DEAL_REMIND = #{tNodeConfig.allowDealRemind}
</if>
<if
test=
"tNodeConfig.nodeId != null and tNodeConfig.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tNodeConfig.nodeId}
</if>
</if>
</sql>
<!--tNodeConfig简单分页查询-->
<select
id=
"getTNodeConfigPage"
resultMap=
"tNodeConfigMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_config a
<where>
1=1
<include
refid=
"tNodeConfig_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodePrimissionMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodePrimissionMapper"
>
<resultMap
id=
"tNodePrimissionMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodePrimission"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"user"
column=
"USER"
/>
<result
property=
"role"
column=
"ROLE"
/>
<result
property=
"post"
column=
"POST"
/>
<result
property=
"organization"
column=
"ORGANIZATION"
/>
<result
property=
"realationCreateUser"
column=
"REALATION_CREATE_USER"
/>
<result
property=
"logoTitle"
column=
"LOGO_TITLE"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
<result
property=
"dealType"
column=
"DEAL_TYPE"
/>
<result
property=
"processId"
column=
"PROCESS_ID"
/>
<result
property=
"nodeLogoTitle"
column=
"NODE_LOGO_TITLE"
/>
<result
property=
"type"
column=
"TYPE"
/>
<result
property=
"approvalRole"
column=
"approval_role"
/>
<result
property=
"divisionIdentification"
column=
"division_identification"
/>
<result
property=
"isPass"
column=
"is_pass"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.USER,
a.ROLE,
a.POST,
a.ORGANIZATION,
a.REALATION_CREATE_USER,
a.LOGO_TITLE,
a.NODE_ID,
a.DEAL_TYPE,
a.PROCESS_ID,
a.NODE_LOGO_TITLE,
a.TYPE,
a.approval_role,
a.division_identification,
a.is_pass
</sql>
<sql
id=
"tNodePrimission_where"
>
<if
test=
"tNodePrimission != null"
>
<if
test=
"tNodePrimission.id != null and tNodePrimission.id.trim() != ''"
>
AND a.ID = #{tNodePrimission.id}
</if>
<if
test=
"tNodePrimission.user != null and tNodePrimission.user.trim() != ''"
>
AND a.USER = #{tNodePrimission.user}
</if>
<if
test=
"tNodePrimission.role != null and tNodePrimission.role.trim() != ''"
>
AND a.ROLE = #{tNodePrimission.role}
</if>
<if
test=
"tNodePrimission.post != null and tNodePrimission.post.trim() != ''"
>
AND a.POST = #{tNodePrimission.post}
</if>
<if
test=
"tNodePrimission.organization != null and tNodePrimission.organization.trim() != ''"
>
AND a.ORGANIZATION = #{tNodePrimission.organization}
</if>
<if
test=
"tNodePrimission.realationCreateUser != null and tNodePrimission.realationCreateUser.trim() != ''"
>
AND a.REALATION_CREATE_USER = #{tNodePrimission.realationCreateUser}
</if>
<if
test=
"tNodePrimission.logoTitle != null and tNodePrimission.logoTitle.trim() != ''"
>
AND a.LOGO_TITLE = #{tNodePrimission.logoTitle}
</if>
<if
test=
"tNodePrimission.nodeId != null and tNodePrimission.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tNodePrimission.nodeId}
</if>
<if
test=
"tNodePrimission.dealType != null and tNodePrimission.dealType.trim() != ''"
>
AND a.DEAL_TYPE = #{tNodePrimission.dealType}
</if>
<if
test=
"tNodePrimission.approvalRole != null and tNodePrimission.approvalRole.trim() != ''"
>
AND a.approval_role = #{tNodePrimission.approvalRole}
</if>
</if>
</sql>
<!--tNodePrimission简单分页查询-->
<select
id=
"getTNodePrimissionPage"
resultMap=
"tNodePrimissionMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_primission a
<where>
1=1
<include
refid=
"tNodePrimission_where"
/>
</where>
</select>
<!--删除-->
<delete
id=
"deleteByProcessId"
>
delete from t_node_primission where PROCESS_ID = #{processId}
</delete>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeReaderPromissionMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeReaderPromissionMapper"
>
<resultMap
id=
"tNodeReaderPromissionMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeReaderPromission"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"user"
column=
"USER"
/>
<result
property=
"role"
column=
"ROLE"
/>
<result
property=
"post"
column=
"POST"
/>
<result
property=
"organization"
column=
"ORGANIZATION"
/>
<result
property=
"realationCreateUser"
column=
"REALATION_CREATE_USER"
/>
<result
property=
"logoTitle"
column=
"LOGO_TITLE"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
<result
property=
"processId"
column=
"PROCESS_ID"
/>
<result
property=
"nodeLogoTitle"
column=
"NODE_LOGO_TITLE"
/>
<result
property=
"type"
column=
"TYPE"
/>
<result
property=
"approvalRole"
column=
"approval_role"
/>
<result
property=
"customizeField"
column=
"customize_field"
/>
<result
property=
"isCustomize"
column=
"is_customize"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.USER,
a.ROLE,
a.POST,
a.ORGANIZATION,
a.REALATION_CREATE_USER,
a.LOGO_TITLE,
a.NODE_ID,
a.PROCESS_ID,
a.NODE_LOGO_TITLE,
a.TYPE,
a.approval_role,
a.customize_field,
a.is_customize
</sql>
<sql
id=
"tNodeReaderPromission_where"
>
<if
test=
"tNodeReaderPromission != null"
>
<if
test=
"tNodeReaderPromission.id != null and tNodeReaderPromission.id.trim() != ''"
>
AND a.ID = #{tNodeReaderPromission.id}
</if>
<if
test=
"tNodeReaderPromission.user != null and tNodeReaderPromission.user.trim() != ''"
>
AND a.USER = #{tNodeReaderPromission.user}
</if>
<if
test=
"tNodeReaderPromission.role != null and tNodeReaderPromission.role.trim() != ''"
>
AND a.ROLE = #{tNodeReaderPromission.role}
</if>
<if
test=
"tNodeReaderPromission.post != null and tNodeReaderPromission.post.trim() != ''"
>
AND a.POST = #{tNodeReaderPromission.post}
</if>
<if
test=
"tNodeReaderPromission.organization != null and tNodeReaderPromission.organization.trim() != ''"
>
AND a.ORGANIZATION = #{tNodeReaderPromission.organization}
</if>
<if
test=
"tNodeReaderPromission.realationCreateUser != null and tNodeReaderPromission.realationCreateUser.trim() != ''"
>
AND a.REALATION_CREATE_USER = #{tNodeReaderPromission.realationCreateUser}
</if>
<if
test=
"tNodeReaderPromission.logoTitle != null and tNodeReaderPromission.logoTitle.trim() != ''"
>
AND a.LOGO_TITLE = #{tNodeReaderPromission.logoTitle}
</if>
<if
test=
"tNodeReaderPromission.nodeId != null and tNodeReaderPromission.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tNodeReaderPromission.nodeId}
</if>
</if>
</sql>
<!--tNodeReaderPromission简单分页查询-->
<select
id=
"getTNodeReaderPromissionPage"
resultMap=
"tNodeReaderPromissionMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_reader_promission a
<where>
1=1
<include
refid=
"tNodeReaderPromission_where"
/>
</where>
</select>
<!--删除-->
<delete
id=
"deleteByProcessId"
>
delete from t_node_reader_promission where PROCESS_ID = #{processId}
</delete>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeRouteConditionMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeRouteConditionMapper"
>
<resultMap
id=
"tNodeRouteConditionMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRouteCondition"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"field"
column=
"FIELD"
/>
<result
property=
"conditions"
column=
"CONDITIONS"
/>
<result
property=
"conditionValue"
column=
"CONDITION_VALUE"
/>
<result
property=
"realation"
column=
"REALATION"
/>
<result
property=
"nodeRouteId"
column=
"NODE_ROUTE_ID"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.FIELD,
a.CONDITIONS,
a.CONDITION_VALUE,
a.REALATION,
a.NODE_ROUTE_ID
</sql>
<sql
id=
"tNodeRouteCondition_where"
>
<if
test=
"tNodeRouteCondition != null"
>
<if
test=
"tNodeRouteCondition.id != null and tNodeRouteCondition.id.trim() != ''"
>
AND a.ID = #{tNodeRouteCondition.id}
</if>
<if
test=
"tNodeRouteCondition.field != null and tNodeRouteCondition.field.trim() != ''"
>
AND a.FIELD = #{tNodeRouteCondition.field}
</if>
<if
test=
"tNodeRouteCondition.conditions != null and tNodeRouteCondition.conditions.trim() != ''"
>
AND a.CONDITIONS = #{tNodeRouteCondition.conditions}
</if>
<if
test=
"tNodeRouteCondition.conditionValue != null and tNodeRouteCondition.conditionValue.trim() != ''"
>
AND a.CONDITION_VALUE = #{tNodeRouteCondition.conditionValue}
</if>
<if
test=
"tNodeRouteCondition.realation != null and tNodeRouteCondition.realation.trim() != ''"
>
AND a.REALATION = #{tNodeRouteCondition.realation}
</if>
<if
test=
"tNodeRouteCondition.nodeRouteId != null and tNodeRouteCondition.nodeRouteId.trim() != ''"
>
AND a.NODE_ROUTE_ID = #{tNodeRouteCondition.nodeRouteId}
</if>
</if>
</sql>
<!--tNodeRouteCondition简单分页查询-->
<select
id=
"getTNodeRouteConditionPage"
resultMap=
"tNodeRouteConditionMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_route_condition a
<where>
1=1
<include
refid=
"tNodeRouteCondition_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeRouteMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeRouteMapper"
>
<resultMap
id=
"tNodeRouteMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeRoute"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"processId"
column=
"PROCESS_ID"
/>
<result
property=
"prewNode"
column=
"PREW_NODE"
/>
<result
property=
"nextNode"
column=
"NEXT_NODE"
/>
<result
property=
"logoTitle"
column=
"LOGO_TITLE"
/>
<result
property=
"createUser"
column=
"CREATE_USER"
/>
<result
property=
"createDate"
column=
"CREATE_DATE"
/>
<result
property=
"updateUser"
column=
"UPDATE_USER"
/>
<result
property=
"updateDate"
column=
"UPDATE_DATE"
/>
<result
property=
"name"
column=
"NAME"
/>
<result
property=
"description"
column=
"DESCRIPTION"
/>
<result
property=
"sequenceNo"
column=
"SEQUENCE_NO"
/>
<result
property=
"opinion"
column=
"OPINION"
/>
<result
property=
"opinionMustFlag"
column=
"OPINION_MUST_FLAG"
/>
<result
property=
"routeType"
column=
"ROUTE_TYPE"
/>
<result
property=
"priorityFlag"
column=
"PRIORITY_FLAG"
/>
<result
property=
"timeoutRoam"
column=
"TIMEOUT_ROAM"
/>
<result
property=
"sameForPrew"
column=
"SAME_FOR_PREW"
/>
<result
property=
"shape"
column=
"SHAPE"
/>
<result
property=
"preNodeAnchor"
column=
"PRE_NODE_ANCHOR"
/>
<result
property=
"nextNodeAnchor"
column=
"NEXT_NODE_ANCHOR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.PROCESS_ID,
a.PREW_NODE,
a.NEXT_NODE,
a.LOGO_TITLE,
a.CREATE_USER,
a.CREATE_DATE,
a.UPDATE_USER,
a.UPDATE_DATE,
a.NAME,
a.DESCRIPTION,
a.SEQUENCE_NO,
a.OPINION,
a.OPINION_MUST_FLAG,
a.ROUTE_TYPE,
a.PRIORITY_FLAG,
a.TIMEOUT_ROAM,
a.SAME_FOR_PREW,
a.SHAPE,
a.PRE_NODE_ANCHOR,
a.NEXT_NODE_ANCHOR
</sql>
<sql
id=
"tNodeRoute_where"
>
<if
test=
"tNodeRoute != null"
>
<if
test=
"tNodeRoute.id != null and tNodeRoute.id.trim() != ''"
>
AND a.ID = #{tNodeRoute.id}
</if>
<if
test=
"tNodeRoute.processId != null and tNodeRoute.processId.trim() != ''"
>
AND a.PROCESS_ID = #{tNodeRoute.processId}
</if>
<if
test=
"tNodeRoute.prewNode != null and tNodeRoute.prewNode.trim() != ''"
>
AND a.PREW_NODE = #{tNodeRoute.prewNode}
</if>
<if
test=
"tNodeRoute.nextNode != null and tNodeRoute.nextNode.trim() != ''"
>
AND a.NEXT_NODE = #{tNodeRoute.nextNode}
</if>
<if
test=
"tNodeRoute.logoTitle != null and tNodeRoute.logoTitle.trim() != ''"
>
AND a.LOGO_TITLE = #{tNodeRoute.logoTitle}
</if>
<if
test=
"tNodeRoute.createUser != null and tNodeRoute.createUser.trim() != ''"
>
AND a.CREATE_USER = #{tNodeRoute.createUser}
</if>
<if
test=
"tNodeRoute.createDate != null"
>
AND a.CREATE_DATE = #{tNodeRoute.createDate}
</if>
<if
test=
"tNodeRoute.updateUser != null and tNodeRoute.updateUser.trim() != ''"
>
AND a.UPDATE_USER = #{tNodeRoute.updateUser}
</if>
<if
test=
"tNodeRoute.updateDate != null"
>
AND a.UPDATE_DATE = #{tNodeRoute.updateDate}
</if>
<if
test=
"tNodeRoute.name != null and tNodeRoute.name.trim() != ''"
>
AND a.NAME = #{tNodeRoute.name}
</if>
<if
test=
"tNodeRoute.description != null and tNodeRoute.description.trim() != ''"
>
AND a.DESCRIPTION = #{tNodeRoute.description}
</if>
<if
test=
"tNodeRoute.sequenceNo != null"
>
AND a.SEQUENCE_NO = #{tNodeRoute.sequenceNo}
</if>
<if
test=
"tNodeRoute.opinion != null and tNodeRoute.opinion.trim() != ''"
>
AND a.OPINION = #{tNodeRoute.opinion}
</if>
<if
test=
"tNodeRoute.opinionMustFlag != null and tNodeRoute.opinionMustFlag.trim() != ''"
>
AND a.OPINION_MUST_FLAG = #{tNodeRoute.opinionMustFlag}
</if>
<if
test=
"tNodeRoute.routeType != null and tNodeRoute.routeType.trim() != ''"
>
AND a.ROUTE_TYPE = #{tNodeRoute.routeType}
</if>
<if
test=
"tNodeRoute.priorityFlag != null and tNodeRoute.priorityFlag.trim() != ''"
>
AND a.PRIORITY_FLAG = #{tNodeRoute.priorityFlag}
</if>
<if
test=
"tNodeRoute.timeoutRoam != null and tNodeRoute.timeoutRoam.trim() != ''"
>
AND a.TIMEOUT_ROAM = #{tNodeRoute.timeoutRoam}
</if>
<if
test=
"tNodeRoute.sameForPrew != null and tNodeRoute.sameForPrew.trim() != ''"
>
AND a.SAME_FOR_PREW = #{tNodeRoute.sameForPrew}
</if>
</if>
</sql>
<!--tNodeRoute简单分页查询-->
<select
id=
"getTNodeRoutePage"
resultMap=
"tNodeRouteMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_route a
<where>
1=1
<include
refid=
"tNodeRoute_where"
/>
</where>
</select>
<!--删除-->
<delete
id=
"deleteByProcessId"
>
delete from t_node_route where PROCESS_ID = #{processId}
</delete>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeTimeoutConfigMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeTimeoutConfigMapper"
>
<resultMap
id=
"tNodeTimeoutConfigMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTimeoutConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"timeOut"
column=
"TIME_OUT"
/>
<result
property=
"day"
column=
"DAY"
/>
<result
property=
"hour"
column=
"HOUR"
/>
<result
property=
"workHourFlag"
column=
"WORK_HOUR_FLAG"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.TIME_OUT,
a.DAY,
a.HOUR,
a.WORK_HOUR_FLAG,
a.NODE_ID
</sql>
<sql
id=
"tNodeTimeoutConfig_where"
>
<if
test=
"tNodeTimeoutConfig != null"
>
<if
test=
"tNodeTimeoutConfig.id != null and tNodeTimeoutConfig.id.trim() != ''"
>
AND a.ID = #{tNodeTimeoutConfig.id}
</if>
<if
test=
"tNodeTimeoutConfig.timeOut != null and tNodeTimeoutConfig.timeOut.trim() != ''"
>
AND a.TIME_OUT = #{tNodeTimeoutConfig.timeOut}
</if>
<if
test=
"tNodeTimeoutConfig.day != null"
>
AND a.DAY = #{tNodeTimeoutConfig.day}
</if>
<if
test=
"tNodeTimeoutConfig.hour != null"
>
AND a.HOUR = #{tNodeTimeoutConfig.hour}
</if>
<if
test=
"tNodeTimeoutConfig.workHourFlag != null and tNodeTimeoutConfig.workHourFlag.trim() != ''"
>
AND a.WORK_HOUR_FLAG = #{tNodeTimeoutConfig.workHourFlag}
</if>
<if
test=
"tNodeTimeoutConfig.nodeId != null and tNodeTimeoutConfig.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tNodeTimeoutConfig.nodeId}
</if>
</if>
</sql>
<!--tNodeTimeoutConfig简单分页查询-->
<select
id=
"getTNodeTimeoutConfigPage"
resultMap=
"tNodeTimeoutConfigMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_timeout_config a
<where>
1=1
<include
refid=
"tNodeTimeoutConfig_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TNodeTransferConfigMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TNodeTransferConfigMapper"
>
<resultMap
id=
"tNodeTransferConfigMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TNodeTransferConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
<result
property=
"processId"
column=
"PROCESS_ID"
/>
<result
property=
"transferType"
column=
"TRANSFER_TYPE"
/>
<result
property=
"copyData"
column=
"COPY_DATA"
/>
<result
property=
"copyAtta"
column=
"COPY_ATTA"
/>
<result
property=
"starterType"
column=
"STARTER_TYPE"
/>
<result
property=
"starter"
column=
"STARTER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.NODE_ID,
a.PROCESS_ID,
a.TRANSFER_TYPE,
a.COPY_DATA,
a.COPY_ATTA,
a.STARTER_TYPE,
a.STARTER
</sql>
<sql
id=
"tNodeTransferConfig_where"
>
<if
test=
"tNodeTransferConfig != null"
>
<if
test=
"tNodeTransferConfig.id != null and tNodeTransferConfig.id.trim() != ''"
>
AND a.ID = #{tNodeTransferConfig.id}
</if>
<if
test=
"tNodeTransferConfig.nodeId != null and tNodeTransferConfig.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tNodeTransferConfig.nodeId}
</if>
<if
test=
"tNodeTransferConfig.processId != null and tNodeTransferConfig.processId.trim() != ''"
>
AND a.PROCESS_ID = #{tNodeTransferConfig.processId}
</if>
<if
test=
"tNodeTransferConfig.transferType != null and tNodeTransferConfig.transferType.trim() != ''"
>
AND a.TRANSFER_TYPE = #{tNodeTransferConfig.transferType}
</if>
<if
test=
"tNodeTransferConfig.copyData != null and tNodeTransferConfig.copyData.trim() != ''"
>
AND a.COPY_DATA = #{tNodeTransferConfig.copyData}
</if>
<if
test=
"tNodeTransferConfig.copyAtta != null and tNodeTransferConfig.copyAtta.trim() != ''"
>
AND a.COPY_ATTA = #{tNodeTransferConfig.copyAtta}
</if>
<if
test=
"tNodeTransferConfig.starterType != null and tNodeTransferConfig.starterType.trim() != ''"
>
AND a.STARTER_TYPE = #{tNodeTransferConfig.starterType}
</if>
<if
test=
"tNodeTransferConfig.starter != null and tNodeTransferConfig.starter.trim() != ''"
>
AND a.STARTER = #{tNodeTransferConfig.starter}
</if>
</if>
</sql>
<!--tNodeTransferConfig简单分页查询-->
<select
id=
"getTNodeTransferConfigPage"
resultMap=
"tNodeTransferConfigMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_node_transfer_config a
<where>
1=1
<include
refid=
"tNodeTransferConfig_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TProcessApprovalConfMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessApprovalConfMapper"
>
<resultMap
id=
"tProcessApprovalConfMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TProcessApprovalConf"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"fieldName"
column=
"field_name"
/>
<result
property=
"processId"
column=
"process_id"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.id,
a.field_name,
a.process_id,
a.parent_id,
a.type,
a.delete_flag
</sql>
<sql
id=
"tProcessApprovalConf_where"
>
<if
test=
"tProcessApprovalConf != null"
>
<if
test=
"tProcessApprovalConf.id != null and tProcessApprovalConf.id.trim() != ''"
>
AND a.id = #{tProcessApprovalConf.id}
</if>
<if
test=
"tProcessApprovalConf.fieldName != null and tProcessApprovalConf.fieldName.trim() != ''"
>
AND a.field_name = #{tProcessApprovalConf.fieldName}
</if>
<if
test=
"tProcessApprovalConf.processId != null and tProcessApprovalConf.processId.trim() != ''"
>
AND a.process_id = #{tProcessApprovalConf.processId}
</if>
<if
test=
"tProcessApprovalConf.parentId != null and tProcessApprovalConf.parentId.trim() != ''"
>
AND a.parent_id = #{tProcessApprovalConf.parentId}
</if>
<if
test=
"tProcessApprovalConf.type != null and tProcessApprovalConf.type.trim() != ''"
>
AND a.type = #{tProcessApprovalConf.type}
</if>
<if
test=
"tProcessApprovalConf.deleteFlag != null and tProcessApprovalConf.deleteFlag.trim() != ''"
>
AND a.delete_flag = #{tProcessApprovalConf.deleteFlag}
</if>
</if>
</sql>
<!--tProcessApprovalConf简单分页查询-->
<select
id=
"getTProcessApprovalConfPage"
resultMap=
"tProcessApprovalConfMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_process_approval_conf a
<where>
1=1
<include
refid=
"tProcessApprovalConf_where"
/>
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TProcessMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessMapper"
>
<resultMap
id=
"tProcessMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TProcess"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"name"
column=
"NAME"
/>
<result
property=
"logoTitle"
column=
"LOGO_TITLE"
/>
<result
property=
"createUser"
column=
"CREATE_USER"
/>
<result
property=
"createDate"
column=
"CREATE_DATE"
/>
<result
property=
"updateUser"
column=
"UPDATE_USER"
/>
<result
property=
"updateDate"
column=
"UPDATE_DATE"
/>
<result
property=
"description"
column=
"DESCRIPTION"
/>
<result
property=
"deleteFlag"
column=
"DELETE_FLAG"
/>
<result
property=
"commonUse"
column=
"common_use"
/>
<result
property=
"processIsUse"
column=
"process_is_use"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.NAME,
a.LOGO_TITLE,
a.CREATE_USER,
a.CREATE_DATE,
a.UPDATE_USER,
a.UPDATE_DATE,
a.DESCRIPTION,
a.delete_flag,
a.common_use,
a.process_is_use
</sql>
<sql
id=
"tProcess_where"
>
<if
test=
"tProcess != null"
>
<if
test=
"tProcess.id != null and tProcess.id.trim() != ''"
>
AND a.ID = #{tProcess.id}
</if>
<if
test=
"tProcess.name != null and tProcess.name.trim() != ''"
>
AND a.NAME like CONCAT('%' , #{tProcess.name},'%')
</if>
<if
test=
"tProcess.logoTitle != null and tProcess.logoTitle.trim() != ''"
>
AND a.LOGO_TITLE like CONCAT('%' , #{tProcess.logoTitle},'%')
</if>
<if
test=
"tProcess.createUser != null and tProcess.createUser.trim() != ''"
>
AND a.CREATE_USER like CONCAT('%' , #{tProcess.createUser},'%')
</if>
<if
test=
"tProcess.createDate != null"
>
AND a.CREATE_DATE = #{tProcess.createDate}
</if>
<if
test=
"tProcess.updateUser != null and tProcess.updateUser.trim() != ''"
>
AND a.UPDATE_USER = #{tProcess.updateUser}
</if>
<if
test=
"tProcess.updateDate != null"
>
AND a.UPDATE_DATE = #{tProcess.updateDate}
</if>
<if
test=
"tProcess.description != null and tProcess.description.trim() != ''"
>
AND a.DESCRIPTION = #{tProcess.description}
</if>
<if
test=
"tProcess.commonUse != null and tProcess.commonUse.trim() != ''"
>
AND a.common_use = #{tProcess.commonUse}
</if>
<if
test=
"tProcess.processIsUse != null and tProcess.processIsUse.trim() != ''"
>
AND a.process_is_use = #{tProcess.processIsUse}
</if>
<if
test=
"tProcess.processIds != null and tProcess.processIds.size()>0"
>
AND a.ID IN
<foreach
collection=
"tProcess.processIds"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</if>
</if>
</sql>
<!--tProcess简单分页查询-->
<select
id=
"getTProcessPage"
resultType=
"com.yifu.cloud.plus.v1.yifu.process.vo.TProcessViewVo"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_process a
<where>
delete_flag='0'
<include
refid=
"tProcess_where"
/>
<if
test=
"type != null and type.trim() != ''"
>
<if
test=
"type == 0"
>
and exists(select 1 from t_process_approval_conf where process_id=a.id and delete_flag='0' )
</if>
<if
test=
"type == 1"
>
and exists(select 1 from t_process_approval_conf where process_id=a.id and delete_flag='1' )
</if>
</if>
<if
test=
"tProcess.processIds != null and tProcess.processIds.size() > 0"
>
and a.ID IN
<foreach
collection=
"tProcess.processIds"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
order by a.CREATE_DATE desc
</where>
</select>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TProcessNodeMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TProcessNodeMapper"
>
<resultMap
id=
"tProcessNodeMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TProcessNode"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"type"
column=
"TYPE"
/>
<result
property=
"logoTitle"
column=
"LOGO_TITLE"
/>
<result
property=
"name"
column=
"NAME"
/>
<result
property=
"description"
column=
"DESCRIPTION"
/>
<result
property=
"form"
column=
"FORM"
/>
<result
property=
"allowDispatch"
column=
"ALLOW_DISPATCH"
/>
<result
property=
"allowThis"
column=
"ALLOW_THIS"
/>
<result
property=
"processId"
column=
"PROCESS_ID"
/>
<result
property=
"handleAllowNext"
column=
"HANDLE_ALLOW_NEXT"
/>
<result
property=
"countersign"
column=
"COUNTERSIGN"
/>
<result
property=
"backType"
column=
"BACK_TYPE"
/>
<result
property=
"shape"
column=
"SHAPE"
/>
<result
property=
"size"
column=
"SIZE"
/>
<result
property=
"coordinatex"
column=
"COORDINATEX"
/>
<result
property=
"coordinatey"
column=
"COORDINATEY"
/>
<result
property=
"color"
column=
"COLOR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.TYPE,
a.LOGO_TITLE,
a.NAME,
a.DESCRIPTION,
a.FORM,
a.ALLOW_DISPATCH,
a.ALLOW_THIS,
a.PROCESS_ID,
a.HANDLE_ALLOW_NEXT,
a.COUNTERSIGN,
a.BACK_TYPE,
a.SHAPE,
a.SIZE,
a.COORDINATEX,
a.COORDINATEY,
a.COLOR,
a.allow_add_sign
</sql>
<sql
id=
"tProcessNode_where"
>
<if
test=
"tProcessNode != null"
>
<if
test=
"tProcessNode.id != null and tProcessNode.id.trim() != ''"
>
AND a.ID = #{tProcessNode.id}
</if>
<if
test=
"tProcessNode.type != null and tProcessNode.type.trim() != ''"
>
AND a.TYPE = #{tProcessNode.type}
</if>
<if
test=
"tProcessNode.logoTitle != null and tProcessNode.logoTitle.trim() != ''"
>
AND a.LOGO_TITLE = #{tProcessNode.logoTitle}
</if>
<if
test=
"tProcessNode.name != null and tProcessNode.name.trim() != ''"
>
AND a.NAME = #{tProcessNode.name}
</if>
<if
test=
"tProcessNode.description != null and tProcessNode.description.trim() != ''"
>
AND a.DESCRIPTION = #{tProcessNode.description}
</if>
<if
test=
"tProcessNode.form != null and tProcessNode.form.trim() != ''"
>
AND a.FORM = #{tProcessNode.form}
</if>
<if
test=
"tProcessNode.allowDispatch != null and tProcessNode.allowDispatch.trim() != ''"
>
AND a.ALLOW_DISPATCH = #{tProcessNode.allowDispatch}
</if>
<if
test=
"tProcessNode.allowThis != null and tProcessNode.allowThis.trim() != ''"
>
AND a.ALLOW_THIS = #{tProcessNode.allowThis}
</if>
<if
test=
"tProcessNode.processId != null and tProcessNode.processId.trim() != ''"
>
AND a.PROCESS_ID = #{tProcessNode.processId}
</if>
<if
test=
"tProcessNode.handleAllowNext != null and tProcessNode.handleAllowNext.trim() != ''"
>
AND a.HANDLE_ALLOW_NEXT = #{tProcessNode.handleAllowNext}
</if>
<if
test=
"tProcessNode.countersign != null and tProcessNode.countersign.trim() != ''"
>
AND a.COUNTERSIGN = #{tProcessNode.countersign}
</if>
<if
test=
"tProcessNode.backType != null and tProcessNode.backType.trim() != ''"
>
AND a.BACK_TYPE = #{tProcessNode.backType}
</if>
</if>
</sql>
<!--tProcessNode简单分页查询-->
<select
id=
"getTProcessNodePage"
resultMap=
"tProcessNodeMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_process_node a
<where>
1=1
<include
refid=
"tProcessNode_where"
/>
</where>
</select>
<!--删除-->
<delete
id=
"deleteByProcessId"
>
delete from t_process_node where PROCESS_ID = #{processId}
</delete>
</mapper>
yifu-process/yifu-process-biz/src/main/resources/mapper/TServiceTransferConfigMapper.xml
0 → 100644
View file @
5c5a87ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.process.mapper.TServiceTransferConfigMapper"
>
<resultMap
id=
"tServiceTransferConfigMap"
type=
"com.yifu.cloud.plus.v1.yifu.process.entity.TServiceTransferConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"serviceAgreement"
column=
"SERVICE_AGREEMENT"
/>
<result
property=
"transferType"
column=
"TRANSFER_TYPE"
/>
<result
property=
"wsdlAddress"
column=
"WSDL_ADDRESS"
/>
<result
property=
"transferFunc"
column=
"TRANSFER_FUNC"
/>
<result
property=
"nodeId"
column=
"NODE_ID"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
a.SERVICE_AGREEMENT,
a.TRANSFER_TYPE,
a.WSDL_ADDRESS,
a.TRANSFER_FUNC,
a.NODE_ID
</sql>
<sql
id=
"tServiceTransferConfig_where"
>
<if
test=
"tServiceTransferConfig != null"
>
<if
test=
"tServiceTransferConfig.id != null and tServiceTransferConfig.id.trim() != ''"
>
AND a.ID = #{tServiceTransferConfig.id}
</if>
<if
test=
"tServiceTransferConfig.serviceAgreement != null and tServiceTransferConfig.serviceAgreement.trim() != ''"
>
AND a.SERVICE_AGREEMENT = #{tServiceTransferConfig.serviceAgreement}
</if>
<if
test=
"tServiceTransferConfig.transferType != null and tServiceTransferConfig.transferType.trim() != ''"
>
AND a.TRANSFER_TYPE = #{tServiceTransferConfig.transferType}
</if>
<if
test=
"tServiceTransferConfig.wsdlAddress != null and tServiceTransferConfig.wsdlAddress.trim() != ''"
>
AND a.WSDL_ADDRESS = #{tServiceTransferConfig.wsdlAddress}
</if>
<if
test=
"tServiceTransferConfig.transferFunc != null and tServiceTransferConfig.transferFunc.trim() != ''"
>
AND a.TRANSFER_FUNC = #{tServiceTransferConfig.transferFunc}
</if>
<if
test=
"tServiceTransferConfig.nodeId != null and tServiceTransferConfig.nodeId.trim() != ''"
>
AND a.NODE_ID = #{tServiceTransferConfig.nodeId}
</if>
</if>
</sql>
<!--tServiceTransferConfig简单分页查询-->
<select
id=
"getTServiceTransferConfigPage"
resultMap=
"tServiceTransferConfigMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_service_transfer_config a
<where>
1=1
<include
refid=
"tServiceTransferConfig_where"
/>
</where>
</select>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment