Browse Source

Merge remote-tracking branch 'origin/dev' into dev

nantong
时子升 2 months ago
parent
commit
08944e5422
  1. 5
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  2. 2
      dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml
  3. 4
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  4. 39
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java
  5. 6
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java
  6. 26
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java
  7. 5
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java
  8. 11
      dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java
  9. 2
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java
  10. 1
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysUserMapper.java
  11. 2
      dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelService.java
  12. 2
      dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java
  13. 33
      dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java
  14. 8
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  15. 14
      dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml
  16. 13
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java
  17. 2
      dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java
  18. 5
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java
  19. 83
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
  20. 2
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
  21. 5
      dk-modules/workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml

5
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -375,6 +375,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
try {
page.getRecords().forEach(businessAlertVo->{
businessAlertVo.setHandleType(null);
if (businessAlertVo.getBusinessType() == 2){
businessAlertVo.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_DKCY, businessAlertVo.getImages(), 3600).toString());
}else {
@ -431,6 +432,10 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
wrapper.like("t.job_name", bo.getJobName());
}
if (ObjectUtil.isNotEmpty(bo.getLabelEn())){
wrapper.eq("t.label_en", bo.getLabelEn());
}
if (ObjectUtil.isNotEmpty(bo.getStartTime()) && ObjectUtil.isNotEmpty(bo.getEndTime())){
wrapper.ge("DATE_FORMAT(t.create_time, '%Y-%m-%d')", bo.getStartTime());
wrapper.le("DATE_FORMAT(t.create_time, '%Y-%m-%d')", bo.getEndTime());

2
dk-modules/business/src/main/resources/mapper/business/BusinessTaskMapper.xml

@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</when>
</choose>
</where>
order by t.status,t.create_time desc
order by t.create_time desc
</select>
<select id="queryBusinessTask" resultMap="businessTaskMap">
SELECT

4
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java

@ -119,7 +119,7 @@ public class DeviceController {
* @param deviceSn
* @return
*/
@PutMapping("/devices/{device_sn}")
@PutMapping("/{workspace_id}/devices/{device_sn}")
@Operation(summary = "更新设备信息。", description = "更新设备信息。")
public HttpResultResponse updateDevice(@RequestBody DeviceDTO device,
@PathVariable("workspace_id") String workspaceId,
@ -136,7 +136,7 @@ public class DeviceController {
* @return
*/
@Operation(summary = "设备离线固件升级任务。", description = "设备离线固件升级任务。")
@PostMapping("/devices/ota")
@PostMapping("/{workspace_id}/devices/ota")
public HttpResultResponse createOtaJob(@PathVariable("workspace_id") String workspaceId,
@RequestBody List<DeviceFirmwareUpgradeDTO> upgradeDTOS) {
return deviceService.createDeviceOtaJob(workspaceId, upgradeDTOS);

39
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java

@ -49,6 +49,17 @@ public class DeviceProController {
return HttpResultResponse.success(devices);
}
/**
* 查询项目组下拉列表
* @return
*/
@Operation(summary = "查询项目组下拉列表", description = "查询项目组下拉列表")
@GetMapping("/list")
public HttpResultResponse<List<DeviceProEntity>> listDevicePro(){
return HttpResultResponse.success(deviceProService.listDevicePro());
}
//2、添加项目组
/**
* 新增/更新项目
@ -89,15 +100,37 @@ public class DeviceProController {
return HttpResultResponse.success(deviceProService.updateDevice(dict));
}
/**
* 开启配置
* @param proId
* @return
*/
@Operation(summary = "开启配置", description = "开启配置")
@PostMapping("/enable/{proId}")
public HttpResultResponse<Boolean> enablePro(@PathVariable("proId") Integer proId) {
return HttpResultResponse.success(deviceProService.enablePro(proId));
}
/**
* 关闭配置
* @param proId
* @return
*/
@Operation(summary = "关闭配置", description = "关闭配置")
@PostMapping("/disable/{proId}")
public HttpResultResponse<Boolean> disablePro(@PathVariable("proId") Integer proId) {
return HttpResultResponse.success(deviceProService.disablePro(proId));
}
/**
* 根据人员获取项目组(feign调用接口)
*/
@GetMapping("/feign/user")
public List<Integer> listDeviceGroup(@RequestParam("userId") Long userId) {
@GetMapping("/list/pro")
public R<List<Integer>> listDeviceGroup(@RequestParam("userId") Long userId) {
log.info("----------------------------开始调用feign接口查询项目组----------------------------");
List<Integer> result = deviceProService.listDeviceGroup(userId);
log.info("----------------------------调用feign接口查询项目组结束----------------------------");
return result;
return R.ok(result);
}
/**

6
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java

@ -43,4 +43,10 @@ public interface IDeviceProService {
List<Integer> listDeviceGroup(Long userId);
List<String> listDevice(Long userId);
List<DeviceProEntity> listDevicePro();
Boolean enablePro(Integer proId);
Boolean disablePro(Integer proId);
}

26
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java

@ -297,6 +297,32 @@ public class DeviceProServiceImpl implements IDeviceProService {
return ListUtil.empty();
}
@Override
public List<DeviceProEntity> listDevicePro() {
return deviceProMapper.selectList(new LambdaQueryWrapper<DeviceProEntity>());
}
@Override
public Boolean enablePro(Integer proId) {
LambdaUpdateWrapper<DeviceProEntity> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(DeviceProEntity::getId, proId);
wrapper.set(DeviceProEntity::getBindType,1);
return this.deviceProMapper.update(wrapper) > 0;
}
@Override
public Boolean disablePro(Integer proId) {
LambdaUpdateWrapper<DeviceProEntity> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(DeviceProEntity::getId, proId);
wrapper.set(DeviceProEntity::getBindType,0);
return this.deviceProMapper.update(wrapper) > 0;
}
@Override
public Boolean saveAndUpdate(DeviceProEntity entity) {
boolean flag = true;

5
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.sample.manage.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -404,7 +405,7 @@ public class DeviceServiceImpl implements IDeviceService {
.map(WorkspaceDTO::getWorkspaceName).orElse("") : "")
.firmwareStatus(DeviceFirmwareStatusEnum.NOT_UPGRADE)
.videoId(dockVideoId)
.thingVersion(entity.getVersion()).build();
.thingVersion(entity.getVersion()).proId(ObjectUtil.isNotEmpty(entity.getProId())?String.valueOf(entity.getProId()):"").build();
} catch (CloudSDKException e) {
log.error(e.getLocalizedMessage() + "Entity: {}", entity);
}
@ -709,7 +710,7 @@ public class DeviceServiceImpl implements IDeviceService {
.firmwareVersion(dto.getFirmwareVersion())
.compatibleStatus(dto.getFirmwareStatus() == null ? null :
DeviceFirmwareStatusEnum.CONSISTENT_UPGRADE != dto.getFirmwareStatus())
.deviceDesc(dto.getDeviceDesc())
.deviceDesc(dto.getDeviceDesc()).proId(ObjectUtil.isNotEmpty(dto.getProId())?Integer.valueOf(dto.getProId()):null)
.build();
}
}

11
dk-modules/system/src/main/java/org/dromara/system/controller/system/AiLabelController.java

@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -56,6 +57,16 @@ public class AiLabelController extends BaseController {
return aiLabelService.allList();
}
/**
* 下拉框集合
*/
@GetMapping("/{postCode}/list")
public List<AiLabelVo> listPostCodeLabel(@PathVariable("postCode") String postCode) {
return aiLabelService.selectLabelByList(postCode);
}
/**
* 导出ai 识别类型列表

2
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@ -309,7 +309,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
*/
@Override
public List<RemoteUserVo> selectListByIds(List<Long> userIds) {
List<SysUserVo> sysUserVos = userService.selectUserByIds(userIds, null);
List<SysUserVo> sysUserVos = userService.selectFlwByIds(userIds, null);
return MapstructUtils.convert(sysUserVos, RemoteUserVo.class);
}

1
dk-modules/system/src/main/java/org/dromara/system/mapper/SysUserMapper.java

@ -91,4 +91,5 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
})
int updateById(@Param(Constants.ENTITY) SysUser user);
List<SysUserVo> selectFlwByIds(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
}

2
dk-modules/system/src/main/java/org/dromara/system/service/IAiLabelService.java

@ -74,4 +74,6 @@ public interface IAiLabelService {
List<AiLabel> queryListByLabel(List<Long> labelIds);
String getFlowCode(String labelCode);
List<AiLabelVo> selectLabelByList(String postCode);
}

2
dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -271,4 +271,6 @@ public interface ISysUserService {
List<SysUserVo> selectUserByUserIds(List<Long> userIds);
List<SysUserVo> assignUserSelect(Long deptId);
List<SysUserVo> selectFlwByIds(List<Long> userIds, Long deptId);
}

33
dk-modules/system/src/main/java/org/dromara/system/service/impl/AiLabelServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.system.service.impl;
import cn.hutool.core.collection.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -9,6 +10,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.domain.vo.AiLabelPostVo;
import org.dromara.system.domain.vo.SysPostVo;
import org.dromara.system.service.IAiLabelPostService;
import org.dromara.system.service.ISysPostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.system.domain.bo.AiLabelBo;
import org.dromara.system.domain.vo.AiLabelVo;
@ -20,6 +27,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* ai 识别类型Service业务层处理
@ -33,6 +41,12 @@ public class AiLabelServiceImpl implements IAiLabelService {
private final AiLabelMapper baseMapper;
@Autowired
private ISysPostService sysPostService;
@Autowired
private IAiLabelPostService aiLabelPostService;
/**
* 查询ai 识别类型
*
@ -148,4 +162,23 @@ public class AiLabelServiceImpl implements IAiLabelService {
public String getFlowCode(String labelCode) {
return this.baseMapper.selectOne(new LambdaQueryWrapper<AiLabel>().eq(AiLabel::getLabelEn, labelCode)).getFlowCode();
}
@Override
public List<AiLabelVo> selectLabelByList(String postCode) {
SysPostVo sysPostVo = sysPostService.selectLableByList(postCode,null);
if(sysPostVo != null){
List<AiLabelPostVo> postVoList = aiLabelPostService.queryListByLabel(sysPostVo.getPostId());
return postVoList.stream()
.map(aiLabel -> {
AiLabelVo aiLabelVo = new AiLabelVo();
aiLabelVo.setLabelId(aiLabel.getLabelId());
aiLabelVo.setLabelEn(aiLabel.getLabelEn());
aiLabelVo.setLabelCn(aiLabel.getLabelCn());
aiLabelVo.setAiName(aiLabel.getAiName());
return aiLabelVo;
})
.collect(Collectors.toList());
}
return ListUtil.empty();
}
}

8
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@ -576,6 +576,14 @@ public class SysUserServiceImpl implements ISysUserService {
.in(ObjectUtil.isNotNull(departIdList), SysUser::getDeptId, departIdList));
}
@Override
public List<SysUserVo> selectFlwByIds(List<Long> userIds, Long deptId) {
return baseMapper.selectFlwByIds(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber).eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
.in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
}
/**
* 通过用户ID查询用户账户
*

14
dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml

@ -83,4 +83,18 @@
${ew.getCustomSqlSegment}
</select>
<select id="selectFlwByIds" resultMap="SysUserResult">
select
<if test="ew.getSqlSelect != null">
${ew.getSqlSelect}
</if>
<if test="ew.getSqlSelect == null">
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.product_name
</if>
from sys_user u
${ew.getCustomSqlSegment}
</select>
</mapper>

13
dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java

@ -1,5 +1,6 @@
package org.dromara.workflow.controller;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -50,6 +51,10 @@ public class FlwTaskController extends BaseController {
@PostMapping("/startWorkFlow")
public R<RemoteStartProcessReturn> startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) {
RemoteStartProcessReturn startProcessReturn = flwTaskService.startWorkFlow(startProcessBo);
//加签
flwTaskService.addSign(startProcessReturn.getProcessInstanceId());
return R.ok("提交成功", startProcessReturn);
}
@ -62,7 +67,13 @@ public class FlwTaskController extends BaseController {
@RepeatSubmit()
@PostMapping("/completeTask")
public R<Void> completeTask(@Validated(AddGroup.class) @RequestBody CompleteTaskBo completeTaskBo) {
return toAjax(flwTaskService.completeTask(completeTaskBo));
String instanceId = flwTaskService.completeTask(completeTaskBo);
if (ObjectUtil.isNotEmpty(instanceId)){
return toAjax(flwTaskService.addSign(Long.valueOf(instanceId)));
}
return toAjax(true);
}
/**

2
dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java

@ -57,4 +57,6 @@ public interface FlwTaskMapper {
*/
Page<FlowTaskVo> getTaskCopyByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
List<String> getPermissionFlag(@Param("definitionId") Long definitionId,
@Param("nodeCode") String nodeCode, @Param("nodeType") Integer nodeType);
}

5
dk-modules/workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java

@ -37,7 +37,7 @@ public interface IFlwTaskService {
* @param completeTaskBo 办理任务参数
* @return 结果
*/
boolean completeTask(CompleteTaskBo completeTaskBo);
String completeTask(CompleteTaskBo completeTaskBo);
/**
* 查询当前用户的待办任务
@ -223,4 +223,7 @@ public interface IFlwTaskService {
* @return 节点
*/
FlowNode getByNodeCode(String nodeCode, Long definitionId);
Boolean addSign(Long instanceId);
}

83
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -41,6 +42,7 @@ import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.enums.MessageTypeEnum;
import org.dromara.workflow.common.enums.TaskAssigneeEnum;
import org.dromara.workflow.common.enums.TaskAssigneeType;
import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.bo.*;
@ -159,7 +161,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean completeTask(CompleteTaskBo completeTaskBo) {
public String completeTask(CompleteTaskBo completeTaskBo) {
try {
// 获取任务ID并查询对应的流程任务和实例信息
Long taskId = completeTaskBo.getTaskId();
@ -217,7 +219,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
}
//设置下一环节处理人
setNextHandler(ins.getId());
return true;
return String.valueOf(ins.getId());
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
@ -713,9 +715,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Task task = taskService.getById(taskId);
FlowNode flowNode = getByNodeCode(task.getNodeCode(), task.getDefinitionId());
if ("addSignature".equals(taskOperation) || "reductionSignature".equals(taskOperation)) {
if (flowNode.getNodeRatio().compareTo(BigDecimal.ZERO) == 0) {
throw new ServiceException(task.getNodeName() + "不是会签节点!");
}
// if (flowNode.getNodeRatio().compareTo(BigDecimal.ZERO) == 0) {
// throw new ServiceException(task.getNodeName() + "不是会签节点!");
// }
}
// 设置任务状态并执行对应的任务操作
switch (taskOperation) {
@ -864,7 +866,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
completeTaskBo.setTaskId(taskId);
completeTaskBo.setMessageType(List.of(MessageTypeEnum.SYSTEM_MESSAGE.getCode()));
IFlwTaskService service = applicationContext.getBean(IFlwTaskService.class);
return service.completeTask(completeTaskBo);
service.completeTask(completeTaskBo);
return true;
}
/**
@ -880,4 +883,72 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
.eq(FlowNode::getDefinitionId, definitionId));
}
@Override
public Boolean addSign(Long instanceId) {
try {
List<FlowTask> flowTasks = selectByInstId(instanceId);
FlowTask flowTask1 = flowTasks.getFirst();
//判断是否有人员,进行加签
//获取当前任务的办理人
List<RemoteUserVo> currentTaskUser = currentTaskAllUser(flowTask1.getId());
FlowTask flowTask = flowTaskMapper.selectById(flowTask1.getId());
if (ObjectUtil.isNull(flowTask)) {
throw new ServiceException("流程任务不存在或任务已审批!");
}
Instance ins = insService.getById(flowTask.getInstanceId());
//根据配置的人员查询系统中的用户
Long definitionId = ins.getDefinitionId();
String nodeCode = ins.getNodeCode();
Integer nodeType = ins.getNodeType();
List<String> permissionUser = this.flwTaskMapper.getPermissionFlag(definitionId,nodeCode,nodeType);
String first = permissionUser.getFirst();
List<RemoteUserVo> totalUser = new ArrayList<>();
if (ObjectUtil.isNotEmpty(first)){
String[] split = first.split("@@");
for (String handleFlag : split) {
if (!handleFlag.equals("${handler}")){
List<RemoteUserVo> remoteUserVos = flwTaskAssigneeService.fetchUsersByStorageId(handleFlag);
totalUser.addAll(remoteUserVos);
}
}
}
//比较差值
List<RemoteUserVo> different = totalUser.stream()
.filter(user -> currentTaskUser.stream().noneMatch(u -> u.getUserId().equals(user.getUserId())))
.toList();
List<String> userIds = different.stream()
.map(RemoteUserVo::getUserId)
.distinct()
.map(String::valueOf)
.toList();
//加签
if (ObjectUtil.isNotEmpty(userIds)){
TaskOperationBo taskOperationBo = new TaskOperationBo();
taskOperationBo.setUserIds(userIds);
taskOperationBo.setTaskId(flowTask1.getId());
IFlwTaskService flwTaskService = applicationContext.getBean(IFlwTaskService.class);
flwTaskService.taskOperation(taskOperationBo,"addSignature");
}
return true;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage(), e);
return false;
}
}
}

2
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java

@ -136,7 +136,7 @@ public class WorkflowServiceImpl implements WorkflowService {
*/
@Override
public boolean completeTask(RemoteCompleteTask completeTask) {
return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class));
return ObjectUtil.isNotEmpty(flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class)));
}
/**

5
dk-modules/workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml

@ -112,4 +112,9 @@
) t
${ew.getCustomSqlSegment}
</select>
<select id="getPermissionFlag" resultType="java.lang.String">
select fn.permission_flag from flow_node fn where fn.definition_id = #{definitionId} and fn.node_type = #{nodeType} and fn.node_code = #{nodeCode} and fn.del_flag = '0'
</select>
</mapper>

Loading…
Cancel
Save