# Conflicts:
#	yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
This commit is contained in:
aikai 2024-09-04 11:30:05 +08:00
commit f1661ea3b0
8 changed files with 48 additions and 22 deletions

View File

@ -771,12 +771,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
// 如果任务拓展表已经是完成的状态则跳过
BpmTaskExtDO taskExt = taskExtMapper.selectByTaskId(taskId);
if (taskExt == null) {
log.error("[updateTaskExtCancel][taskId({}) 查找不到对应的记录,可能存在问题]", taskId);
log.warn("[updateTaskExtCancel][taskId({}) 查找不到对应的记录,可能存在问题]", taskId);
return;
}
// 如果已经是最终的结果则跳过
if (BpmProcessInstanceResultEnum.isEndResult(taskExt.getResult())) {
log.error("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId, taskExt.getResult());
log.info("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId, taskExt.getResult());
return;
}
@ -791,9 +791,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskExtAssign(Task task) {
// BpmTaskExtDO taskExtDO =
// new BpmTaskExtDO().setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())).setTaskId(task.getId());
// taskExtMapper.updateByTaskId(taskExtDO);
BpmTaskExtDO taskExtDO =
new BpmTaskExtDO().setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())).setTaskId(task.getId());
taskExtMapper.updateByTaskId(taskExtDO);
// 发送通知在事务提交时批量执行操作所以直接查询会无法查询到 ProcessInstance所以这里是通过监听事务的提交来实现
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@ -820,7 +821,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
if(TransactionSynchronization.STATUS_COMMITTED == status){
// ProcessInstance processInstance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
BpmProcessInstanceExtDO processInstance = processInstanceService.getProcessInstanceDO(task.getProcessInstanceId());
// 如果当前审批人是流程发起人
@ -830,8 +830,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
BpmTaskApproveReqVO reqVO = new BpmTaskApproveReqVO();
reqVO.setId(task.getId());
reqVO.setReason(BpmConstants.AUTO_APPRAVAL);
// 另起线程处理 任务通过 避免事务之间重复调用异常
new Thread(() -> approveTask(Long.valueOf(task.getAssignee()), reqVO)).start();
approveTask(Long.valueOf(task.getAssignee()), reqVO);
} else {
// 判断不是加签状态的流程
@ -853,7 +854,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
BpmTaskApproveReqVO reqVO = new BpmTaskApproveReqVO();
reqVO.setId(task.getId());
reqVO.setReason(BpmConstants.AUTO_APPRAVAL);
approveTask(Long.valueOf(task.getAssignee()), reqVO);
// 另起线程处理 任务通过 避免事务之间重复调用异常
new Thread(() -> approveTask(Long.valueOf(task.getAssignee()), reqVO)).start();
}
}
}

View File

@ -209,7 +209,7 @@ public interface ErrorCodeConstants {
ErrorCode CANNOT_FIND_THE_RECORD_THAT_NEEDS_TO_BE_REPLACED = new ErrorCode(1_003_018_000, "查询不到需要补卡的记录");
ErrorCode LOG_FORM_NOT_USE = new ErrorCode(1_009_010_004, "你不使用该日志模板");
ErrorCode LOG_FORM_NOT_USE = new ErrorCode(1_009_010_004, "你不使用该日志模板");
ErrorCode LOG_USE_NOT_EXISTS = new ErrorCode(1_009_010_005, "模板不存在");

View File

@ -31,10 +31,10 @@ public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
.orderByDesc(LogInstanceDO::getCreateTime));
}
default Long getLogByType(Integer type, Long userId, List<String> dateList) {
default Long getLogByFormId(Long formId, Long userId, List<String> dateList) {
return selectCount(new LambdaQueryWrapperX<LogInstanceDO>()
.eq(LogInstanceDO::getType, type)
.eq(LogInstanceDO::getFormId, formId)
.eq(LogInstanceDO::getStartUserId, userId)
.in(LogInstanceDO::getTime, dateList));
}

View File

@ -88,6 +88,7 @@ public class FactoryUserServiceImpl implements FactoryUserService{
user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
user.setPassword(encodePassword()); // 设置默认密码
user.setUserType(2); // 设置用户类型为 工厂用户
user.setUserStaffing(7);
userMapper.insert(user);
// 查询部门下是否绑定考勤设备

View File

@ -168,7 +168,7 @@ public class LogInstanceServiceImpl implements LogInstanceService {
createReqVO.setTime(times[1]);
}
Long count = logInstanceMapper.getLogByType(createReqVO.getType(), getLoginUserId(), dateList);
Long count = logInstanceMapper.getLogByFormId(createReqVO.getFormId(), getLoginUserId(), dateList);
if (count > 0L) {
throw exception(ErrorCodeConstants.LOG_TYPE_EXISTS);

View File

@ -64,7 +64,16 @@
SELECT
role.id, role.data_scope, role.data_scope_dept_ids
FROM
( SELECT role_id FROM system_role_menu a LEFT JOIN system_menu role ON a.menu_id = role.id WHERE role.permission = 'system:view-log:query' AND a.role_id != 1 AND a.role_id != 101 ) menu
(
SELECT role_id
FROM system_role_menu a
LEFT JOIN system_menu role ON a.menu_id = role.id
WHERE
role.permission = 'system:view-log:query'
AND a.role_id != 1
AND a.role_id != 101
AND a.deleted = 0
) menu
LEFT JOIN system_role role on role.id = menu.role_id
) role_id ON u_role.role_id = role_id.id
WHERE u_role.deleted = 0

View File

@ -1,15 +1,14 @@
package cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 工厂信息 Response VO")
@Data
@ -40,6 +39,15 @@ public class FactoryInfoRespVO {
@ExcelProperty("工厂简介")
private String description;
@Schema(description = "省id")
private Long provinceId;
@Schema(description = "城市id")
private Long cityId;
@Schema(description = "区县id")
private Long adCode;
@Schema(description = "省名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "江西省")
@ExcelProperty("省名称")
private String provinceName;
@ -56,6 +64,12 @@ public class FactoryInfoRespVO {
@ExcelProperty("工厂地址")
private String address;
@Schema(description = "经度")
private BigDecimal lng;
@Schema(description = "纬度")
private BigDecimal lat;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("common_status") // TODO 代码优化建议设置到对应的 DictTypeConstants 枚举类中