Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
项目统一框架
amos-boot-biz
Commits
34ffae7b
Commit
34ffae7b
authored
Jan 11, 2024
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改维保备案变更
parent
9e5c23da
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
252 additions
and
408 deletions
+252
-408
JgMaintenanceContract.java
...amos/boot/module/jg/api/entity/JgMaintenanceContract.java
+6
-0
WorkFlowStatusEnum.java
...oin/amos/boot/module/jg/api/enums/WorkFlowStatusEnum.java
+1
-1
JgMaintenanceContractController.java
...le/jg/biz/controller/JgMaintenanceContractController.java
+1
-47
JgMaintenanceContractServiceImpl.java
...jg/biz/service/impl/JgMaintenanceContractServiceImpl.java
+244
-360
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/entity/JgMaintenanceContract.java
View file @
34ffae7b
...
@@ -214,6 +214,12 @@ public class JgMaintenanceContract extends BaseEntity {
...
@@ -214,6 +214,12 @@ public class JgMaintenanceContract extends BaseEntity {
private
String
createUserId
;
private
String
createUserId
;
/**
/**
* 创建人名称
*/
@TableField
(
"create_user_name"
)
private
String
createUserName
;
/**
* 创建时间
* 创建时间
*/
*/
@TableField
(
"create_date"
)
@TableField
(
"create_date"
)
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/enums/WorkFlowStatusEnum.java
View file @
34ffae7b
...
@@ -25,7 +25,7 @@ public enum WorkFlowStatusEnum {
...
@@ -25,7 +25,7 @@ public enum WorkFlowStatusEnum {
/**
/**
* 维保
流程
* 维保
备案
*/
*/
MAIN_SUBMIT
(
"使用单位提交"
,
"mainSubmit"
,
"使用单位待提交"
,
"维保单位已驳回"
,
"使用单位已撤回"
),
MAIN_SUBMIT
(
"使用单位提交"
,
"mainSubmit"
,
"使用单位待提交"
,
"维保单位已驳回"
,
"使用单位已撤回"
),
MAIN_RECEIVE
(
"维保单位审核确认"
,
"mainReceive"
,
"维保单位待受理"
,
"监管单位已驳回"
,
"维保单位已撤回"
),
MAIN_RECEIVE
(
"维保单位审核确认"
,
"mainReceive"
,
"维保单位待受理"
,
"监管单位已驳回"
,
"维保单位已撤回"
),
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgMaintenanceContractController.java
View file @
34ffae7b
...
@@ -56,51 +56,6 @@ public class JgMaintenanceContractController extends BaseController {
...
@@ -56,51 +56,6 @@ public class JgMaintenanceContractController extends BaseController {
return
ResponseHelper
.
buildResponse
(
jgMaintenanceContractServiceImpl
.
saveOrSubmit
(
submit
,
model
,
reginParams
));
return
ResponseHelper
.
buildResponse
(
jgMaintenanceContractServiceImpl
.
saveOrSubmit
(
submit
,
model
,
reginParams
));
}
}
/**
* 更新维保合同和设备对应关系
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/updateMaintenanceAndEquipment"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"更新维保合同和设备对应关系"
,
notes
=
"更新维保合同和设备对应关系"
)
public
ResponseModel
<
Object
>
updateMaintenanceAndEquipment
(
@RequestBody
Map
<
String
,
Object
>
model
,
@RequestParam
(
value
=
"submit"
,
required
=
false
,
defaultValue
=
"0"
)
String
submit
)
{
JgMaintenanceContractDto
dto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
model
),
JgMaintenanceContractDto
.
class
);
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
model
.
get
(
"equipmentLists"
);
return
ResponseHelper
.
buildResponse
(
jgMaintenanceContractServiceImpl
.
updateMaintenanceAndEquipment
(
submit
,
dto
,
list
));
}
/**
* 提交
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/submit"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"维保合同提交"
,
notes
=
"维保合同提交"
)
public
ResponseModel
<
Object
>
submit
(
@RequestBody
Map
<
String
,
Object
>
model
)
{
JgMaintenanceContractDto
dto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
model
),
JgMaintenanceContractDto
.
class
);
String
comment
=
String
.
valueOf
(
model
.
get
(
"comment"
));
String
operate
=
String
.
valueOf
(
model
.
get
(
"operate"
));
return
ResponseHelper
.
buildResponse
(
jgMaintenanceContractServiceImpl
.
submit
(
dto
,
comment
,
operate
));
}
/**
* 审批
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/approval"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"审批"
,
notes
=
"审批"
)
public
ResponseModel
<
Object
>
approval
(
@RequestBody
Map
<
String
,
Object
>
model
)
{
JgMaintenanceContractDto
dto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
model
.
get
(
"formData"
)),
JgMaintenanceContractDto
.
class
);
String
comment
=
String
.
valueOf
(
model
.
get
(
"comment"
));
String
operate
=
String
.
valueOf
(
model
.
get
(
"operate"
));
return
ResponseHelper
.
buildResponse
(
jgMaintenanceContractServiceImpl
.
approval
(
dto
,
comment
,
operate
));
}
/**
/**
* 撤回
* 撤回
...
@@ -216,8 +171,7 @@ public class JgMaintenanceContractController extends BaseController {
...
@@ -216,8 +171,7 @@ public class JgMaintenanceContractController extends BaseController {
public
ResponseModel
<
Page
<
JgMaintenanceContractVo
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
public
ResponseModel
<
Page
<
JgMaintenanceContractVo
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
value
=
"phase"
)
int
phase
,
@RequestParam
(
value
=
"phase"
)
int
phase
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map
)
{
JgMaintenanceContractDto
maintenanceContractDto
)
{
Page
<
JgMaintenanceContract
>
page
=
new
Page
<>();
Page
<
JgMaintenanceContract
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
page
.
setSize
(
size
);
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgMaintenanceContractServiceImpl.java
View file @
34ffae7b
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContractEq
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContractEq
;
import
com.yeejoin.amos.boot.module.jg.api.enums.*
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.MaintenanceEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractEqMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractEqMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractMapper
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService
;
import
com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService
;
import
com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo
;
import
com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo
;
import
com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.jg.
flc.api.fegin.WorkFlowFeign
Service
;
import
com.yeejoin.amos.boot.module.jg.
biz.service.ICmWorkflow
Service
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.
component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.
feign.systemctl.model.TaskV2Model
;
import
com.yeejoin.amos.feign.workflow.
Workflow
;
import
com.yeejoin.amos.feign.workflow.
model.ActWorkflowBatchDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO
;
import
com.yeejoin.amos.feign.workflow.model.
AjaxResult
;
import
com.yeejoin.amos.feign.workflow.model.
ProcessTaskDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
com.yeejoin.amos.feign.workflow.model.TaskResultDTO
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -35,8 +37,10 @@ import org.springframework.http.HttpStatus;
...
@@ -35,8 +37,10 @@ import org.springframework.http.HttpStatus;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.*
;
import
java.util.*
;
...
@@ -54,37 +58,29 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -54,37 +58,29 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
public
static
final
String
SUBMIT_DATA
=
"0"
;
public
static
final
String
SUBMIT_DATA
=
"0"
;
public
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
public
static
final
String
SUBMIT_TYPE_FLOW
=
"1"
;
public
static
final
String
WB_PROCESS_DEFINITION_KEY
=
"maintenanceFiling"
;
public
static
final
String
WB_PROCESS_DEFINITION_KEY
=
"maintenanceFiling"
;
private
static
final
String
HANDLING_STATUS_DICTIONARY
=
"JGGZZZ"
;
private
static
final
String
USE
=
"使用"
;
@Autowired
@Autowired
TzsServiceFeignClient
tzsServiceFeignClient
;
TzsServiceFeignClient
tzsServiceFeignClient
;
@Autowired
@Autowired
RestHighLevelClient
restHighLevelClient
;
RestHighLevelClient
restHighLevelClient
;
@Autowired
@Autowired
WorkFlowFeignService
workFlowFeginService
;
@Autowired
private
JgMaintenanceContractMapper
maintenanceContractMapper
;
private
JgMaintenanceContractMapper
maintenanceContractMapper
;
@Autowired
@Autowired
private
JgMaintenanceContractEqMapper
maintenanceContractEqMapper
;
private
JgMaintenanceContractEqMapper
maintenanceContractEqMapper
;
@Autowired
@Autowired
private
JgMaintenanceContractEqServiceImpl
jgMaintenanceContractEqService
;
private
JgMaintenanceContractEqServiceImpl
jgMaintenanceContractEqService
;
@Autowired
@Autowired
private
DataDictionaryServiceImpl
iDataDictionaryService
;
@Autowired
RedisUtils
redisUtils
;
RedisUtils
redisUtils
;
@Autowired
ICmWorkflowService
workflowService
;
@Autowired
CommonServiceImpl
commonService
;
/**
/**
* 分页查询
* 分页查询
*/
*/
public
Page
<
JgMaintenanceContractVo
>
queryForPage
(
Page
<
JgMaintenanceContract
>
page
,
public
Page
<
JgMaintenanceContractVo
>
queryForPage
(
Page
<
JgMaintenanceContract
>
page
,
int
phase
,
int
phase
,
Map
<
String
,
Object
>
map
,
ReginParams
reginParams
)
{
// JgMaintenanceContractDto dto,
Map
<
String
,
Object
>
map
,
ReginParams
reginParams
)
{
// JgMaintenanceContractDto dto = new JgMaintenanceContractDto();
// JgMaintenanceContractDto dto = (JgMaintenanceContractDto)map;
JgMaintenanceContractDto
dto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"jgMaintenanceContractDto"
)),
JgMaintenanceContractDto
.
class
);
JgMaintenanceContractDto
dto
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"jgMaintenanceContractDto"
)),
JgMaintenanceContractDto
.
class
);
Page
<
JgMaintenanceContractDto
>
contractList
=
new
Page
<>();
Page
<
JgMaintenanceContractDto
>
contractList
=
new
Page
<>();
...
@@ -117,7 +113,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -117,7 +113,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
BeanUtils
.
copyProperties
(
dto
,
vo
);
BeanUtils
.
copyProperties
(
dto
,
vo
);
vo
.
setMaintenanceContract
(
ObjectUtils
.
isEmpty
(
dto
.
getMaintenanceContract
())
?
null
:
JSON
.
parseArray
(
dto
.
getMaintenanceContract
()));
vo
.
setMaintenanceContract
(
ObjectUtils
.
isEmpty
(
dto
.
getMaintenanceContract
())
?
null
:
JSON
.
parseArray
(
dto
.
getMaintenanceContract
()));
List
<
Map
<
String
,
Object
>>
list
=
maintenanceContractMapper
.
selectEquipList
(
sequenceNbr
);
List
<
Map
<
String
,
Object
>>
list
=
maintenanceContractMapper
.
selectEquipList
(
sequenceNbr
);
if
(!
ObjectUtils
.
isEmpty
(
list
)){
if
(!
ObjectUtils
.
isEmpty
(
list
))
{
vo
.
setEquipmentLists
(
list
);
vo
.
setEquipmentLists
(
list
);
}
}
return
vo
;
return
vo
;
...
@@ -136,9 +132,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -136,9 +132,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
public
void
flowExecute
(
Long
id
,
String
instanceId
,
String
operate
,
String
comment
,
Boolean
update
)
{
public
void
flowExecute
(
Long
id
,
String
instanceId
,
String
operate
,
String
comment
,
Boolean
update
)
{
try
{
try
{
JgMaintenanceContract
jgMaintenanceContract
=
this
.
getBaseMapper
().
selectById
(
id
);
JgMaintenanceContract
jgMaintenanceContract
=
this
.
getBaseMapper
().
selectById
(
id
);
JSONObject
task
=
workFlowFeginService
.
getTaskNoAuth
(
instanceId
);
String
taskId
=
jgMaintenanceContract
.
getNextTaskId
();
JSONObject
taskMessage
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
task
.
get
(
"data"
)));
String
taskId
=
taskMessage
.
getString
(
"id"
);
//组装信息
//组装信息
TaskResultDTO
dto
=
new
TaskResultDTO
();
TaskResultDTO
dto
=
new
TaskResultDTO
();
dto
.
setResultCode
(
"approvalStatus"
);
dto
.
setResultCode
(
"approvalStatus"
);
...
@@ -150,55 +144,30 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -150,55 +144,30 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
map
.
put
(
"approvalStatus"
,
"提交"
);
map
.
put
(
"approvalStatus"
,
"提交"
);
}
}
dto
.
setVariable
(
map
);
dto
.
setVariable
(
map
);
//执行流程
ProcessTaskDTO
complete
=
workflowService
.
complete
(
taskId
,
dto
);
Workflow
.
taskClient
.
completeByTask
(
taskId
,
dto
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
complete
));
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
createTaskModel
(
jgMaintenanceContract
,
complete
.
getNextTask
().
get
(
0
).
getName
(),
operate
,
nextUserIds
);
// 更新下一步执行人
updateExecuteIds
(
complete
,
id
,
operate
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
// 更新下一步执行人
updateExecuteIds
(
instanceId
,
id
,
operate
);
}
}
public
void
updateStatus
(
Long
id
,
String
taskName
,
String
role
,
Boolean
rollBack
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
LambdaQueryWrapper
<
JgMaintenanceContract
>
lambda
=
new
QueryWrapper
<
JgMaintenanceContract
>().
lambda
();
lambda
.
eq
(
JgMaintenanceContract:
:
getSequenceNbr
,
id
);
JgMaintenanceContract
jgMaintenanceContract
=
this
.
getBaseMapper
().
selectOne
(
lambda
);
if
(
"流程结束"
.
equals
(
taskName
))
{
jgMaintenanceContract
.
setStatus
(
taskName
);
jgMaintenanceContract
.
setApplyStatus
(
"已完成"
);
}
else
{
jgMaintenanceContract
.
setNextExecuteIds
(
role
);
jgMaintenanceContract
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
if
(!
ObjectUtils
.
isEmpty
(
jgMaintenanceContract
.
getInstanceStatus
()))
{
jgMaintenanceContract
.
setInstanceStatus
(
jgMaintenanceContract
.
getInstanceStatus
()
+
","
+
role
);
}
else
{
jgMaintenanceContract
.
setInstanceStatus
(
role
);
}
UseStatusEnum
message
=
UseStatusEnum
.
getMessage
(
taskName
);
jgMaintenanceContract
.
setStatus
(
message
.
getPass
());
}
if
(
rollBack
){
this
.
getBaseMapper
().
update
(
jgMaintenanceContract
,
lambda
);
this
.
getBaseMapper
().
updatePromoter
(
jgMaintenanceContract
.
getSequenceNbr
());
}
else
{
this
.
getBaseMapper
().
update
(
jgMaintenanceContract
,
lambda
);
}
}
/**
/**
* 批量删除
* 批量删除
*/
*/
@Transactional
@Transactional
public
Boolean
deleteForBatch
(
Long
[]
ids
)
{
public
Boolean
deleteForBatch
(
Long
[]
ids
)
{
List
<
Long
>
list
=
Arrays
.
asList
(
ids
);
List
<
Long
>
list
=
Arrays
.
asList
(
ids
);
list
.
forEach
(
x
->
{
list
.
forEach
(
x
->
{
QueryWrapper
<
JgMaintenanceContract
>
wrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
JgMaintenanceContract
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"sequence_nbr"
,
x
);
wrapper
.
eq
(
"sequence_nbr"
,
x
);
JgMaintenanceContract
jgMaintenanceContract
=
maintenanceContractMapper
.
selectOne
(
wrapper
);
JgMaintenanceContract
jgMaintenanceContract
=
maintenanceContractMapper
.
selectOne
(
wrapper
);
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
queryWrapper
=
new
LambdaQueryWrapper
<
JgMaintenanceContractEq
>()
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
queryWrapper
=
new
LambdaQueryWrapper
<
JgMaintenanceContractEq
>()
.
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
jgMaintenanceContract
.
getApplyNo
())
.
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
jgMaintenanceContract
.
getApplyNo
())
.
eq
(
JgMaintenanceContractEq:
:
getIsDelete
,
false
);
.
eq
(
JgMaintenanceContractEq:
:
getIsDelete
,
false
);
List
<
Long
>
listSeq
=
jgMaintenanceContractEqService
.
list
(
queryWrapper
).
stream
()
List
<
Long
>
listSeq
=
jgMaintenanceContractEqService
.
list
(
queryWrapper
).
stream
()
.
map
(
JgMaintenanceContractEq:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
.
map
(
JgMaintenanceContractEq:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
...
@@ -208,151 +177,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -208,151 +177,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return
true
;
return
true
;
}
}
public
String
startByVariable
()
{
String
instanceId
=
""
;
//启动流程
try
{
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
WB_PROCESS_DEFINITION_KEY
);
dto
.
setBusinessKey
(
"submit"
);
AjaxResult
ajaxResult
=
Workflow
.
taskClient
.
startByVariable
(
dto
);
instanceId
=
((
Map
<?,
?>)
ajaxResult
.
get
(
"data"
)).
get
(
"id"
).
toString
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
instanceId
;
}
/**
* 维保合同提交
*/
@Transactional
public
Boolean
submit
(
JgMaintenanceContractDto
dto
,
String
comment
,
String
operate
)
{
String
instanceId
=
""
;
try
{
AjaxResult
ajaxResult
;
ActWorkflowStartDTO
flowDto
=
new
ActWorkflowStartDTO
();
flowDto
.
setProcessDefinitionKey
(
WB_PROCESS_DEFINITION_KEY
);
flowDto
.
setBusinessKey
(
"1"
);
ajaxResult
=
Workflow
.
taskClient
.
startByVariable
(
flowDto
);
instanceId
=
((
Map
<?,
?>)
ajaxResult
.
get
(
"data"
)).
get
(
"id"
).
toString
();
ajaxResult
=
Workflow
.
taskClient
.
getTask
(
instanceId
);
// 执行一步
JSONObject
dataObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
ajaxResult
.
get
(
"data"
)));
String
taskId
=
dataObject
.
getString
(
"id"
);
//组装信息
TaskResultDTO
taskResultDTO
=
new
TaskResultDTO
();
taskResultDTO
.
setResultCode
(
"approvalStatus"
);
taskResultDTO
.
setTaskId
(
taskId
);
taskResultDTO
.
setComment
(
comment
);
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"approvalStatus"
,
operate
);
taskResultDTO
.
setVariable
(
map
);
//执行流程
Workflow
.
taskClient
.
completeByTask
(
taskId
,
taskResultDTO
);
Workflow
.
taskClient
.
completeByTask
(
taskId
,
taskResultDTO
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
dto
.
setApplyStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
dto
.
setInstanceId
(
instanceId
);
dto
.
setReceiveOrgCode
(
null
);
return
this
.
updateBySequenceNbr
(
dto
);
}
@Transactional
public
Boolean
approval
(
JgMaintenanceContractDto
dto
,
String
comment
,
String
operate
)
{
String
instanceId
=
dto
.
getInstanceId
();
try
{
AjaxResult
ajaxResult
;
ajaxResult
=
Workflow
.
taskClient
.
getTask
(
instanceId
);
JSONObject
dataObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
ajaxResult
.
get
(
"data"
)));
String
taskId
=
dataObject
.
getString
(
"id"
);
//组装信息
TaskResultDTO
taskResultDTO
=
new
TaskResultDTO
();
taskResultDTO
.
setResultCode
(
"approvalStatus"
);
taskResultDTO
.
setTaskId
(
taskId
);
taskResultDTO
.
setComment
(
comment
);
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"approvalStatus"
,
operate
);
taskResultDTO
.
setVariable
(
map
);
//执行流程
Workflow
.
taskClient
.
completeByTask
(
taskId
,
taskResultDTO
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
// if("tongguo"){
// if("weibao"){
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }else {
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }
// }else {
// if("weibao"){
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }else {
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }
// }
if
(
"1"
.
equals
(
operate
)){
}
//审批通过
if
(
"0"
.
equals
(
operate
)){
}
dto
.
setApplyStatus
(
FlowStatusEnum
.
TO_BE_PROCESSED
.
getName
());
dto
.
setInstanceId
(
instanceId
);
dto
.
setReceiveOrgCode
(
null
);
return
this
.
updateBySequenceNbr
(
dto
);
}
/**
/**
* 维保合同撤回
* 维保合同撤回
*/
*/
@Transactional
public
void
revocation
(
String
instanceId
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
String
taskCode
=
""
;
JgMaintenanceContract
jgMaintenanceContract
=
new
JgMaintenanceContract
();
LambdaQueryWrapper
<
JgMaintenanceContract
>
lambda
=
new
QueryWrapper
<
JgMaintenanceContract
>().
lambda
();
lambda
.
eq
(
JgMaintenanceContract:
:
getInstanceId
,
instanceId
);
ArrayList
<
String
>
roleList
=
new
ArrayList
<>();
try
{
workFlowFeginService
.
rollBack
(
instanceId
);
JSONObject
taskNoAuth
=
workFlowFeginService
.
getTaskNoAuth
(
instanceId
);
JSONObject
nextTask
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskNoAuth
.
get
(
"data"
)));
taskCode
=
nextTask
.
getString
(
"name"
);
if
(!
ObjectUtils
.
isEmpty
(
taskNoAuth
.
get
(
"data"
)))
{
String
nextTaskId
=
nextTask
.
getString
(
"id"
);
FeignClientResult
<
JSONObject
>
nodeInfo
=
workFlowFeginService
.
getNodeInfo
(
nextTaskId
);
JSONObject
result
=
nodeInfo
.
getResult
();
Map
<
String
,
Object
>
taskInfo
=
(
Map
<
String
,
Object
>)
result
.
get
(
"taskInfo"
);
taskCode
=
String
.
valueOf
(
taskInfo
.
get
(
"taskDefinitionKey"
));
AjaxResult
taskGroupName
=
Workflow
.
taskClient
.
getTaskGroupName
(
nextTaskId
);
JSONArray
data
=
JSON
.
parseArray
(
JSON
.
toJSONString
(
taskGroupName
.
get
(
"data"
)));
for
(
Object
datum
:
data
)
{
if
(((
Map
<?,
?>)
datum
).
containsKey
(
"groupId"
))
{
roleList
.
add
(((
Map
<?,
?>)
datum
).
get
(
"groupId"
).
toString
());
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(!
ObjectUtils
.
isEmpty
(
taskCode
))
{
jgMaintenanceContract
.
setStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getRollBack
());
public
void
revocation
(
String
instanceId
)
{
// 执行流程
JgMaintenanceContract
contract
=
new
JgMaintenanceContract
();
QueryWrapper
<
JgMaintenanceContract
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
lambda
().
eq
(
JgMaintenanceContract:
:
getInstanceId
,
instanceId
);
List
<
String
>
roleListNext
=
new
ArrayList
<>();
List
<
String
>
roleListAll
=
new
ArrayList
<>();
ProcessTaskDTO
processTaskDTO
=
workflowService
.
rollBack
(
instanceId
);
String
nextTaskId
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getId
();
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleListNext
,
roleListAll
);
// 待调整
String
taskCode
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getKey
();
if
(!
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
().
equals
(
taskCode
))
{
contract
.
setApplyStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getRollBack
());
}
}
String
join
=
String
.
join
(
","
,
roleList
);
contract
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgMaintenanceContract
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
contract
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
jgMaintenanceContract
.
setNextExecuteIds
(
join
);
contract
.
setNextTaskId
(
nextTaskId
);
this
.
update
(
jgMaintenanceContract
,
lambda
);
this
.
update
(
contract
,
queryWrapper
);
// 删除待办
commonService
.
deleteTaskModel
(
contract
.
getInstanceId
());
commonService
.
rollbackTask
(
contract
.
getInstanceId
());
}
}
/**
/**
...
@@ -360,12 +210,13 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -360,12 +210,13 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
saveOrSubmit
(
String
submit
,
Map
<
String
,
Object
>
map
,
ReginParams
reginParams
)
{
public
Boolean
saveOrSubmit
(
String
submit
,
Map
<
String
,
Object
>
map
,
ReginParams
reginParams
)
{
JgMaintenanceContractDto
d
to
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
),
JgMaintenanceContractDto
.
class
);
JgMaintenanceContractDto
contractD
to
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
),
JgMaintenanceContractDto
.
class
);
List
<
Map
<
String
,
Object
>>
equipmentLists
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"equipmentLists"
);
List
<
Map
<
String
,
Object
>>
equipmentLists
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"equipmentLists"
);
CompanyBo
company
=
reginParams
.
getCompany
();
CompanyBo
company
=
reginParams
.
getCompany
();
JgMaintenanceContract
contract
=
new
JgMaintenanceContract
();
// JgMaintenanceContract contract = new JgMaintenanceContract();
BeanUtils
.
copyProperties
(
dto
,
contract
);
// BeanUtils.copyProperties(contractDto, contract);
contract
.
setCreateDate
(
new
Date
());
contractDto
.
setCreateDate
(
new
Date
());
contractDto
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
//获取维保备案编号
//获取维保备案编号
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
WBBA
.
getCode
(),
1
);
ResponseModel
<
List
<
String
>>
listResponseModel
=
tzsServiceFeignClient
.
applicationFormCode
(
ApplicationFormTypeEnum
.
WBBA
.
getCode
(),
1
);
if
(!
ObjectUtils
.
isEmpty
(
listResponseModel
)
&&
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
if
(!
ObjectUtils
.
isEmpty
(
listResponseModel
)
&&
listResponseModel
.
getStatus
()
!=
HttpStatus
.
OK
.
value
())
{
...
@@ -373,36 +224,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -373,36 +224,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return
false
;
return
false
;
}
}
String
wbApplyNo
=
listResponseModel
.
getResult
().
get
(
0
);
String
wbApplyNo
=
listResponseModel
.
getResult
().
get
(
0
);
contract
.
setApplyNo
(
wbApplyNo
);
contract
Dto
.
setApplyNo
(
wbApplyNo
);
contract
.
setUseUnitCode
(
company
.
getCompanyCode
());
contract
Dto
.
setUseUnitCode
(
company
.
getCompanyCode
());
contract
.
setUseUnitName
(
company
.
getCompanyName
());
contract
Dto
.
setUseUnitName
(
company
.
getCompanyName
());
//管理员信息
//管理员信息
String
[]
MaintenanceManager
=
d
to
.
getMaintenanceManagerId
().
split
(
"_"
);
String
[]
MaintenanceManager
=
contractD
to
.
getMaintenanceManagerId
().
split
(
"_"
);
contract
.
setMaintenanceManagerId
(
MaintenanceManager
[
0
]);
contract
Dto
.
setMaintenanceManagerId
(
MaintenanceManager
[
0
]);
contract
.
setMaintenanceManagerName
(
MaintenanceManager
[
1
]);
contract
Dto
.
setMaintenanceManagerName
(
MaintenanceManager
[
1
]);
//接收机构信息
//接收机构信息
String
[]
splitReceiveOrgCode
=
d
to
.
getReceiveOrgCode
().
split
(
"_"
);
String
[]
splitReceiveOrgCode
=
contractD
to
.
getReceiveOrgCode
().
split
(
"_"
);
contract
.
setReceiveOrgCode
(
splitReceiveOrgCode
[
0
]);
contract
Dto
.
setReceiveOrgCode
(
splitReceiveOrgCode
[
0
]);
contract
.
setReceiveOrgName
(
splitReceiveOrgCode
[
1
]);
contract
Dto
.
setReceiveOrgName
(
splitReceiveOrgCode
[
1
]);
//维保单位信息
//维保单位信息
String
[]
splitMaintenanceUnitCode
=
dto
.
getMaintenanceUnitCode
().
split
(
"_"
);
String
[]
splitMaintenanceUnitCode
=
contractDto
.
getMaintenanceUnitCode
().
split
(
"_"
);
contract
.
setMaintenanceUnitCode
(
splitMaintenanceUnitCode
[
0
]);
contractDto
.
setMaintenanceUnitCode
(
splitMaintenanceUnitCode
[
0
]);
contract
.
setMaintenanceUnitName
(
splitMaintenanceUnitCode
[
1
]);
contractDto
.
setMaintenanceUnitName
(
splitMaintenanceUnitCode
[
1
]);
contractDto
.
setApplyStatus
(
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getName
());
contract
.
setApplyStatus
(
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getName
());
contractDto
.
setEquNum
(
equipmentLists
.
size
());
contract
.
setEquNum
(
equipmentLists
.
size
());
JgMaintenanceContract
contract
=
getById
(
contractDto
.
getSequenceNbr
());
BeanUtils
.
copyProperties
(
contractDto
,
contract
);
// 新增编辑
if
(!
"add"
.
equals
(
String
.
valueOf
(
map
.
get
(
"pageType"
))))
{
if
(
"add"
.
equals
(
String
.
valueOf
(
map
.
get
(
"pageType"
))))
{
//编辑
contract
.
setStatus
(
SUBMIT_DATA
.
equals
(
submit
)
?
WorkFlowStatusEnum
.
MAIN_SUBMIT
.
getPass
()
:
WorkFlowStatusEnum
.
MAIN_RECEIVE
.
getPass
());
this
.
save
(
contract
);
}
else
{
this
.
getBaseMapper
().
updateById
(
contract
);
this
.
getBaseMapper
().
updateById
(
contract
);
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
lambda
=
new
QueryWrapper
<
JgMaintenanceContractEq
>().
lambda
();
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
lambda
=
new
QueryWrapper
<
JgMaintenanceContractEq
>().
lambda
();
lambda
.
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
contract
.
getSequenceNbr
());
lambda
.
eq
(
JgMaintenanceContractEq:
:
getEquipTransferId
,
contract
.
getSequenceNbr
());
jgMaintenanceContractEqService
.
getBaseMapper
().
delete
(
lambda
);
jgMaintenanceContractEqService
.
getBaseMapper
().
delete
(
lambda
);
}
}
//关联设备信息
//关联设备信息
List
<
JgMaintenanceContractEq
>
equipList
=
new
ArrayList
<>();
List
<
JgMaintenanceContractEq
>
equipList
=
new
ArrayList
<>();
equipmentLists
.
forEach
(
x
->
{
equipmentLists
.
forEach
(
x
->
{
...
@@ -413,162 +260,198 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
...
@@ -413,162 +260,198 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
});
});
// 保存维保关联设备信息
// 保存维保关联设备信息
jgMaintenanceContractEqService
.
saveBatch
(
equipList
);
jgMaintenanceContractEqService
.
saveBatch
(
equipList
);
// 判断当前是否为提交
List
<
String
>
roleListNext
=
new
ArrayList
<>();
List
<
String
>
roleListAll
=
new
ArrayList
<>();
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
String
instanceId
=
null
;
if
(!
StringUtils
.
isEmpty
(
contract
.
getInstanceId
()))
{
// 提交启动流程
// 发起流程
if
(
map
.
containsKey
(
"instanceId"
)
&&
!
ObjectUtils
.
isEmpty
(
map
.
get
(
"instanceId"
)))
{
try
{
instanceId
=
String
.
valueOf
(
map
.
get
(
"instanceId"
));
List
<
ProcessTaskDTO
>
processTasks
=
new
ArrayList
<>();
ActWorkflowBatchDTO
actWorkflowBatchDTO
=
new
ActWorkflowBatchDTO
();
List
<
ActWorkflowStartDTO
>
list
=
new
ArrayList
<>();
ActWorkflowStartDTO
dto
=
new
ActWorkflowStartDTO
();
dto
.
setProcessDefinitionKey
(
WB_PROCESS_DEFINITION_KEY
);
dto
.
setBusinessKey
(
contract
.
getApplyNo
());
dto
.
setCompleteFirstTask
(
true
);
list
.
add
(
dto
);
actWorkflowBatchDTO
.
setProcess
(
list
);
processTasks
=
workflowService
.
startBatch
(
actWorkflowBatchDTO
);
String
instanceId
=
processTasks
.
get
(
0
).
getProcessInstance
().
getId
();
String
nextTaskId
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getId
();
String
taskName
=
processTasks
.
get
(
0
).
getNextTask
().
get
(
0
).
getName
();
this
.
buildRoleList
(
processTasks
,
roleListNext
,
roleListAll
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
processTasks
);
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
contract
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
contract
.
setInstanceId
(
instanceId
);
contract
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
contract
.
setNextTaskId
(
nextTaskId
);
// 创建待办
JgMaintenanceContract
bean
=
new
JgMaintenanceContract
();
BeanUtil
.
copyProperties
(
contract
,
bean
);
createTaskModel
(
bean
,
taskName
,
"1"
,
nextUserIds
);
}
catch
(
Exception
e
)
{
log
.
error
(
"提交失败:{}"
,
e
);
throw
new
BadRequest
(
"提交失败"
+
e
.
getMessage
());
}
}
else
{
}
else
{
instanceId
=
startByVariable
();
// 执行一步
}
ProcessTaskDTO
processTaskDTO
=
this
.
submit
(
"0"
,
contract
.
getNextTaskId
());
if
(!
ObjectUtils
.
isEmpty
(
instanceId
))
{
String
nextTaskId
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getId
();
// 修改数据信息
String
taskName
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getName
();
updateExecuteIds
(
instanceId
,
contract
.
getSequenceNbr
(),
"0"
);
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleListNext
,
roleListAll
);
// 默认执行流程
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
));
flowExecute
(
contract
.
getSequenceNbr
(),
instanceId
,
"0"
,
""
,
false
);
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
// 查询下节点任务
if
(!
ObjectUtils
.
isEmpty
(
contract
.
getInstanceStatus
()))
{
contract
.
setInstanceStatus
(
contract
.
getInstanceStatus
()
+
","
+
String
.
join
(
""
,
roleListNext
));
}
else
{
contract
.
setInstanceStatus
(
String
.
join
(
","
,
roleListAll
));
}
contract
.
setPromoter
(
RequestContext
.
getExeUserId
());
contract
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
contract
.
setApplyStatus
(
String
.
valueOf
(
WorkFlowStatusEnum
.
MAIN_RECEIVE
.
getPass
()));
contract
.
setNextTaskId
(
nextTaskId
);
executeOneStep
(
contract
,
taskName
,
nextUserIds
);
}
}
updateById
(
contract
);
}
else
{
// 新增
contract
.
setStatus
(
SUBMIT_DATA
.
equals
(
submit
)
?
WorkFlowStatusEnum
.
MAIN_SUBMIT
.
getPass
()
:
WorkFlowStatusEnum
.
MAIN_RECEIVE
.
getPass
());
this
.
save
(
contract
);
}
}
return
true
;
return
true
;
}
}
public
void
updateExecuteIds
(
String
instanceId
,
Long
sequenceNbr
,
String
operate
){
public
ProcessTaskDTO
submit
(
String
op
,
String
taskId
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
//组装信息
String
role
=
""
;
TaskResultDTO
dto
=
new
TaskResultDTO
();
String
taskCode
=
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
();
dto
.
setResultCode
(
"approvalStatus"
);
ArrayList
<
String
>
roleList
=
new
ArrayList
<>();
dto
.
setTaskId
(
taskId
);
JgMaintenanceContract
jgMaintenanceContract
=
this
.
getBaseMapper
().
selectById
(
sequenceNbr
);
dto
.
setComment
(
"提交流程"
);
try
{
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
// 查询下节点任务
map
.
put
(
"approvalStatus"
,
op
);
dto
.
setVariable
(
map
);
return
workflowService
.
complete
(
taskId
,
dto
);
}
JSONObject
taskNoAuth
=
workFlowFeginService
.
getTaskNoAuth
(
instanceId
);
private
void
buildRoleList
(
List
<
ProcessTaskDTO
>
processTasks
,
List
<
String
>
roleListNext
,
List
<
String
>
roleListAll
)
{
if
(!
ObjectUtils
.
isEmpty
(
taskNoAuth
.
get
(
"data"
)))
{
processTasks
.
forEach
(
p
->
{
JSONObject
nextTask
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskNoAuth
.
get
(
"data"
)));
p
.
getNextCandidateGroups
().
values
().
forEach
(
e
->
{
String
nextTaskId
=
nextTask
.
getString
(
"id"
);
roleListNext
.
addAll
(
e
);
FeignClientResult
<
JSONObject
>
nodeInfo
=
workFlowFeginService
.
getNodeInfo
(
nextTaskId
);
roleListAll
.
addAll
(
e
);
JSONObject
result
=
nodeInfo
.
getResult
();
});
Map
<
String
,
Object
>
taskInfo
=
(
Map
<
String
,
Object
>)
result
.
get
(
"taskInfo"
);
roleListAll
.
addAll
(
p
.
getCandidateGroups
());
taskCode
=
String
.
valueOf
(
taskInfo
.
get
(
"taskDefinitionKey"
));
});
AjaxResult
taskGroupName
=
Workflow
.
taskClient
.
getTaskGroupName
(
nextTaskId
);
}
JSONArray
data
=
JSON
.
parseArray
(
JSON
.
toJSONString
(
taskGroupName
.
get
(
"data"
)));
for
(
Object
datum
:
data
)
{
public
void
updateExecuteIds
(
ProcessTaskDTO
processTaskDTO
,
Long
sequenceNbr
,
String
operate
)
{
if
(((
Map
)
datum
).
containsKey
(
"groupId"
))
{
List
<
String
>
roleListNext
=
new
ArrayList
<>();
roleList
.
add
(((
Map
)
datum
).
get
(
"groupId"
).
toString
());
List
<
String
>
roleListAll
=
new
ArrayList
<>();
}
String
taskCode
=
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
();
}
String
taskName
=
""
;
}
String
nextTaskId
=
""
;
}
catch
(
Exception
e
)
{
JgMaintenanceContract
contract
=
this
.
getBaseMapper
().
selectById
(
sequenceNbr
);
e
.
printStackTrace
();
if
(
processTaskDTO
!=
null
&&
processTaskDTO
.
getNextTask
()
!=
null
&&
processTaskDTO
.
getNextTask
().
size
()
>
0
)
{
taskCode
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getKey
();
taskName
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getName
();
nextTaskId
=
processTaskDTO
.
getNextTask
().
get
(
0
).
getId
();
}
}
if
(!
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
().
equals
(
taskCode
)){
if
(!
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
().
equals
(
taskCode
))
{
role
=
String
.
join
(
","
,
roleList
);
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleListNext
,
roleListAll
);
jgMaintenanceContract
.
setNextExecuteIds
(
role
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
commonService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
));
jgMaintenanceContract
.
setPromoter
(
reginParams
.
getUserModel
().
getUserId
());
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
jgMaintenanceContract
.
setInstanceId
(
instanceId
);
contract
.
setNextExecuteIds
(
String
.
join
(
","
,
roleListNext
));
if
(!
ObjectUtils
.
isEmpty
(
jgMaintenanceContract
.
getInstanceStatus
()))
{
contract
.
setPromoter
(
RequestContext
.
getExeUserId
());
jgMaintenanceContract
.
setInstanceStatus
(
jgMaintenanceContract
.
getInstanceStatus
()
+
","
+
role
);
contract
.
setInstanceId
(
processTaskDTO
.
getProcessInstance
().
getId
());
contract
.
setNextTaskId
(
nextTaskId
);
if
(!
ObjectUtils
.
isEmpty
(
contract
.
getInstanceStatus
()))
{
contract
.
setInstanceStatus
(
contract
.
getInstanceStatus
()
+
","
+
String
.
join
(
","
,
roleListNext
));
}
else
{
}
else
{
jgMaintenanceContract
.
setInstanceStatus
(
role
);
contract
.
setInstanceStatus
(
String
.
join
(
","
,
roleListNext
)
);
}
}
if
(
"0"
.
equals
(
operate
)){
if
(
"0"
.
equals
(
operate
))
{
// 通过操作
// 通过操作
jgMaintenanceC
ontract
.
setStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getPass
());
c
ontract
.
setStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getPass
());
}
else
{
}
else
{
// 驳回操作
// 驳回操作
jgMaintenanceC
ontract
.
setStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getReject
());
c
ontract
.
setStatus
(
WorkFlowStatusEnum
.
getMessage
(
taskCode
).
getReject
());
jgMaintenanceC
ontract
.
setPromoter
(
null
);
c
ontract
.
setPromoter
(
null
);
}
}
executeOneStep
(
contract
,
taskName
,
nextUserIds
);
}
else
{
}
else
{
jgMaintenanceContract
.
setApplyDate
(
new
Date
());
contract
.
setApplyDate
(
new
Date
());
jgMaintenanceContract
.
setStatus
(
taskCode
);
contract
.
setStatus
(
taskCode
);
updateTaskModel
(
contract
);
}
}
this
.
getBaseMapper
().
updateById
(
jgMaintenanceContract
);
this
.
getBaseMapper
().
updateById
(
contract
);
}
private
void
executeOneStep
(
JgMaintenanceContract
contract
,
String
taskName
,
String
nextUserIds
)
{
// 先更新之前的待办
TaskV2Model
taskV2Model
=
updateTaskModel
(
contract
);
// 再插入新代办、数据待定
taskV2Model
.
setTaskName
(
taskName
);
taskV2Model
.
setExecuteUserIds
(
nextUserIds
);
taskV2Model
.
setTaskStatus
(
this
.
getTaskStatusByName
(
contract
.
getApplyStatus
()));
taskV2Model
.
setTaskStatusLabel
(
contract
.
getApplyStatus
());
TaskModelDto
modelDto
=
new
TaskModelDto
();
BeanUtil
.
copyProperties
(
taskV2Model
,
modelDto
);
modelDto
.
setNextExecuteUser
(
contract
.
getNextExecuteIds
());
modelDto
.
setModel
(
contract
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
modelDto
));
}
}
private
void
extracted
(
String
instanceId
,
ArrayList
<
String
>
roleList
,
JgMaintenanceContract
contract
)
{
JSONObject
taskNoAuth
=
workFlowFeginService
.
getTaskNoAuth
(
instanceId
);
private
TaskV2Model
updateTaskModel
(
JgMaintenanceContract
contract
)
{
if
(!
ObjectUtils
.
isEmpty
(
taskNoAuth
.
get
(
"data"
)))
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
JSONObject
nextTask
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
taskNoAuth
.
get
(
"data"
)));
params
.
put
(
"relationId"
,
contract
.
getInstanceId
());
String
nextTaskId
=
nextTask
.
getString
(
"id"
);
params
.
put
(
"taskStatus"
,
this
.
getTaskStatusByName
(
contract
.
getApplyStatus
()));
AjaxResult
taskGroupName
=
Workflow
.
taskClient
.
getTaskGroupName
(
nextTaskId
);
params
.
put
(
"taskStatusLabel"
,
contract
.
getApplyStatus
());
JSONArray
data
=
JSON
.
parseArray
(
JSON
.
toJSONString
(
taskGroupName
.
get
(
"data"
)));
return
commonService
.
updateTaskModel
(
params
);
for
(
Object
datum
:
data
)
{
if
(((
Map
<?,
?>)
datum
).
containsKey
(
"groupId"
))
{
roleList
.
add
(((
Map
<?,
?>)
datum
).
get
(
"groupId"
).
toString
());
}
}
}
contract
.
setInstanceStatus
(
String
.
join
(
","
,
roleList
));
}
}
/**
private
Integer
getTaskStatusByName
(
String
auditStatus
)
{
* 更新维保合同和设备对应关系
return
commonService
.
getDictionaryCodeByName
(
auditStatus
);
*/
}
@Transactional
public
Boolean
updateMaintenanceAndEquipment
(
String
submit
,
JgMaintenanceContractDto
dto
,
List
<
Map
<
String
,
Object
>>
list
)
{
String
instanceId
=
null
;
//更新维保合同表
private
void
createTaskModel
(
JgMaintenanceContract
dto
,
String
taskName
,
String
submitType
,
String
nextUserIds
)
{
String
[]
MaintenanceManager
=
dto
.
getMaintenanceManagerId
().
split
(
"_"
);
ReginParams
reginParams
=
JSON
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
dto
.
setMaintenanceManagerId
(
dto
.
getMaintenanceManagerId
());
if
(
"1"
.
equals
(
submitType
))
{
dto
.
setMaintenanceManagerName
(
MaintenanceManager
[
1
]);
TaskModelDto
taskModelDto
=
new
TaskModelDto
();
taskModelDto
.
setFlowCreateDate
(
dto
.
getApplyDate
());
taskModelDto
.
setTaskName
(
taskName
);
taskModelDto
.
setTaskCode
(
dto
.
getApplyNo
());
taskModelDto
.
setTaskContent
(
this
.
buildTaskContent
(
dto
));
taskModelDto
.
setTaskDesc
(
""
);
taskModelDto
.
setTaskType
(
BusinessTypeEnum
.
JG_MAINTENANCE_RECORD
.
getCode
());
taskModelDto
.
setTaskTypeLabel
(
BusinessTypeEnum
.
JG_MAINTENANCE_RECORD
.
getName
());
taskModelDto
.
setRelationId
(
dto
.
getInstanceId
());
taskModelDto
.
setExecuteUserIds
(
nextUserIds
);
taskModelDto
.
setTaskStatus
(
this
.
getTaskCodeByName
(
dto
.
getApplyStatus
()));
taskModelDto
.
setTaskStatusLabel
(
dto
.
getApplyStatus
());
taskModelDto
.
setStartUserId
(
dto
.
getCreateUserId
());
taskModelDto
.
setStartUser
(
reginParams
.
getUserModel
().
getRealName
());
taskModelDto
.
setStartUserCompanyName
(
dto
.
getUseUnitName
());
taskModelDto
.
setNextExecuteUser
(
dto
.
getNextExecuteIds
());
taskModelDto
.
setStartDate
(
dto
.
getCreateDate
());
taskModelDto
.
setModel
(
dto
);
commonService
.
buildTaskModel
(
Collections
.
singletonList
(
taskModelDto
));
}
}
String
[]
splitReceiveOrgCode
=
dto
.
getReceiveOrgCode
().
split
(
"_"
);
private
Integer
getTaskCodeByName
(
String
auditStatus
)
{
dto
.
setReceiveOrgCode
(
splitReceiveOrgCode
[
0
]
);
return
commonService
.
getDictionaryCodeByName
(
auditStatus
);
dto
.
setReceiveOrgName
(
splitReceiveOrgCode
[
1
]);
}
String
[]
splitMaintenanceUnitCode
=
dto
.
getMaintenanceUnitCode
().
split
(
"_"
);
/**
dto
.
setMaintenanceUnitCode
(
dto
.
getMaintenanceUnitCode
());
* 摘要构建
dto
.
setMaintenanceUnitName
(
splitMaintenanceUnitCode
[
1
]);
*
// 判断当前是否为提交
* @param dto 业务
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submit
))
{
* @return 摘要
// 发起流程
*/
try
{
private
String
buildTaskContent
(
JgMaintenanceContract
dto
)
{
ActWorkflowStartDTO
flowDto
=
new
ActWorkflowStartDTO
();
return
"申请单号:"
+
dto
.
getApplyNo
()
+
"的业务办理"
;
flowDto
.
setProcessDefinitionKey
(
WB_PROCESS_DEFINITION_KEY
);
flowDto
.
setBusinessKey
(
"1"
);
AjaxResult
ajaxResult
=
Workflow
.
taskClient
.
startByVariable
(
flowDto
);
instanceId
=
((
Map
<?,
?>)
ajaxResult
.
get
(
"data"
)).
get
(
"id"
).
toString
();
ajaxResult
=
Workflow
.
taskClient
.
getTask
(
instanceId
);
// 执行一步
JSONObject
dataObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
ajaxResult
.
get
(
"data"
)));
String
taskId
=
dataObject
.
getString
(
"id"
);
TaskResultDTO
taskResultDTO
=
new
TaskResultDTO
();
taskResultDTO
.
setResultCode
(
"approvalStatus"
);
taskResultDTO
.
setTaskId
(
taskId
);
taskResultDTO
.
setComment
(
"提交流程"
);
HashMap
<
String
,
Object
>
hashMap
=
new
HashMap
<>();
hashMap
.
put
(
"approvalStatus"
,
"0"
);
taskResultDTO
.
setVariable
(
hashMap
);
//执行流程
Workflow
.
taskClient
.
completeByTask
(
taskId
,
taskResultDTO
);
// dto.setApplyFlow(MaintenanceEnum.SHIYONG.getMsg()+","+MaintenanceEnum.WEIBAO.getMsg());
dto
.
setInstanceId
(
instanceId
);
}
catch
(
Exception
e
)
{
log
.
error
(
"维保使用单位提交流程启动失败:{}"
,
e
);
}
}
this
.
updateBySequenceNbr
(
dto
);
//更新对应设备表
if
(!
list
.
isEmpty
())
{
//先删除原先设备对应关系
LambdaQueryWrapper
<
JgMaintenanceContractEq
>
queryWrapper
=
new
LambdaQueryWrapper
<
JgMaintenanceContractEq
>()
.
eq
(
JgMaintenanceContractEq:
:
getEquId
,
list
.
get
(
0
).
get
(
"SEQUENCE_NBR"
))
.
eq
(
JgMaintenanceContractEq:
:
getIsDelete
,
false
);
List
<
Long
>
listSeq
=
jgMaintenanceContractEqService
.
list
(
queryWrapper
).
stream
()
.
map
(
JgMaintenanceContractEq:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
jgMaintenanceContractEqService
.
deleteBatchSeq
(
listSeq
);
//重新生成关系表
List
<
JgMaintenanceContractEq
>
equipList
=
new
ArrayList
<>();
list
.
forEach
(
x
->
{
JgMaintenanceContractEq
equip
=
new
JgMaintenanceContractEq
();
equip
.
setEquId
(
String
.
valueOf
(
x
.
get
(
"SEQUENCE_NBR"
)));
equip
.
setEquipTransferId
(
dto
.
getApplyNo
());
equipList
.
add
(
equip
);
});
return
jgMaintenanceContractEqService
.
saveBatch
(
equipList
);
}
return
true
;
}
}
}
}
\ No newline at end of file
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