修改:修复userId获取混乱问题

This commit is contained in:
zjh 2025-12-15 17:38:54 +08:00
parent 78b3000120
commit 81b19e5465
18 changed files with 130 additions and 85 deletions

View File

@ -22,18 +22,13 @@ public class UserPermissionGetter {
@Resource @Resource
private RuntimeAppContextService runtimeAppContextService; private RuntimeAppContextService runtimeAppContextService;
public String getCurrentUserId() {
return runtimeAppContextService.getCurrentUserId();
// return "zjh";
}
// 获取子系统下的参数权限 // 获取子系统下的参数权限
public List<String> getParamPermissions(String subsystem) { public List<String> getParamPermissions(String subsystem, String userId) {
String currentUserId = getCurrentUserId();
Set<String> result = new HashSet<>(); Set<String> result = new HashSet<>();
try { try {
// 获取用户权限 // 获取用户权限
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(currentUserId) Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(userId)
.stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem)); .stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem));
if (collected.containsKey(subsystem)) { if (collected.containsKey(subsystem)) {
result.addAll(collected.get(subsystem) result.addAll(collected.get(subsystem)
@ -41,7 +36,7 @@ public class UserPermissionGetter {
} }
// 获取用户所在部门权限 // 获取用户所在部门权限
List<String> deptIds = businessDatabase.getBusinessDatabase() List<String> deptIds = businessDatabase.getBusinessDatabase()
.eq("user_id", currentUserId).doQuery(XdapDeptUsers.class) .eq("user_id", userId).doQuery(XdapDeptUsers.class)
.stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList()); .stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList());
for (String deptId : deptIds) { for (String deptId : deptIds) {
Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId) Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId)
@ -58,13 +53,11 @@ public class UserPermissionGetter {
} }
// 获取全部参数权限 // 获取全部参数权限
public List<String> getParamPermissions() { public List<String> getParamPermissions(String userId) {
String currentUserId = runtimeAppContextService.getCurrentUserId();
// String currentUserId = "1232";
Set<String> result = new HashSet<>(); Set<String> result = new HashSet<>();
try { try {
// 获取用户权限 // 获取用户权限
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(currentUserId) Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(userId)
.stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem)); .stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem));
for (String subsystem : collected.keySet()) { for (String subsystem : collected.keySet()) {
result.addAll(collected.get(subsystem) result.addAll(collected.get(subsystem)
@ -72,7 +65,7 @@ public class UserPermissionGetter {
} }
// 获取用户所在部门权限 // 获取用户所在部门权限
List<String> deptIds = businessDatabase.getBusinessDatabase() List<String> deptIds = businessDatabase.getBusinessDatabase()
.eq("user_id", currentUserId).doQuery(XdapDeptUsers.class) .eq("user_id", userId).doQuery(XdapDeptUsers.class)
.stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList()); .stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList());
for (String deptId : deptIds) { for (String deptId : deptIds) {
Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId) Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId)

View File

@ -21,4 +21,9 @@ public class BusinessDatabase {
public MpaasQuery getBusinessDatabase() { public MpaasQuery getBusinessDatabase() {
return queryFactory.buildFromDatasource(DatasourceConstant.XDAP_MYSQL_PREFIX + tenantId); return queryFactory.buildFromDatasource(DatasourceConstant.XDAP_MYSQL_PREFIX + tenantId);
} }
@Bean
public MpaasQuery getTCDatabase() {
return queryFactory.buildFromDatasource("yc_lrs_test_relsult");
}
} }

View File

@ -28,8 +28,10 @@ public class CommonParameterController {
// 查询机型参数常用 // 查询机型参数常用
@GetMapping("/getModelCommon") @GetMapping("/getModelCommon")
public Response getModelCommonParameter() { public Response getModelCommonParameter(
List<ModelCommon> list = commonParameterService.getModelCommonParameter(); @NotBlank @RequestParam String userId
) {
List<ModelCommon> list = commonParameterService.getModelCommonParameter(userId);
return Response.ok().data(list); return Response.ok().data(list);
} }
// 新增机型参数常用 // 新增机型参数常用

View File

@ -1,15 +1,20 @@
package com.xdap.self_development.controller; package com.xdap.self_development.controller;
import com.definesys.mpaas.common.http.Response;
import com.definesys.mpaas.query.MpaasQueryFactory; import com.definesys.mpaas.query.MpaasQueryFactory;
import com.xdap.motor.entity.SnowflakeIdWorker; import com.xdap.motor.entity.SnowflakeIdWorker;
import com.xdap.runtime.service.RuntimeAppContextService; import com.xdap.runtime.service.RuntimeAppContextService;
import com.xdap.self_development.common.UserPermissionGetter; import com.xdap.self_development.common.UserPermissionGetter;
import com.xdap.self_development.config.BusinessDatabase; import com.xdap.self_development.config.BusinessDatabase;
import com.xdap.self_development.feign.ApaasMyTokenFeign; import com.xdap.self_development.feign.ApaasMyTokenFeign;
import com.xdap.self_development.pojo.ClassificationAttribute;
import com.xdap.self_development.pojo.EnginePartsCollection;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -35,4 +40,28 @@ public class DeleteController {
private String clientId; private String clientId;
@Value("${apaas.token.clientSecred}") @Value("${apaas.token.clientSecred}")
private String clientSecret; private String clientSecret;
@GetMapping("/getTC")
public Response getTC(
@RequestParam String productNumber,
@RequestParam String partsName,
@RequestParam String parameterName
) {
EnginePartsCollection enginePartsCollection = bd.getTCDatabase()
.eq("ztj", productNumber)
.eq("lbjmc", partsName)
.doQueryFirst(EnginePartsCollection.class);
if (enginePartsCollection == null || enginePartsCollection.getLbjth() == null) {
return Response.error("无法找到图号");
}
ClassificationAttribute classificationAttribute = bd.getTCDatabase()
.eq("pitemId", enginePartsCollection.getLbjth())
.eq("idattrtbutehame", parameterName)
.doQueryFirst(ClassificationAttribute.class);
if (classificationAttribute != null && classificationAttribute.getFieldvalue() != null) {
String fieldvalue = classificationAttribute.getFieldvalue();
return Response.ok().data(fieldvalue);
}
return Response.error("无法找到参数值");
}
} }

View File

@ -80,9 +80,10 @@ public class TemplateController {
@PostMapping("/import") @PostMapping("/import")
public Response importTemplate( public Response importTemplate(
@RequestPart("file") MultipartFile file, @RequestPart("file") MultipartFile file,
@RequestPart(value = "templateRowId", required = false) String templateRowId @RequestPart(value = "templateRowId", required = false) String templateRowId,
@RequestPart("userId") String userId
) { ) {
MyResponse templateImportProblemView = templateService.importTemplate(file, templateRowId); MyResponse templateImportProblemView = templateService.importTemplate(file, templateRowId, userId);
if (templateImportProblemView.getFlag()) { if (templateImportProblemView.getFlag()) {
return Response.error("导入异常").data(templateImportProblemView); return Response.error("导入异常").data(templateImportProblemView);
} else { } else {

View File

@ -10,4 +10,5 @@ public class ApprovalListForm {
private String username; private String username;
private String createDate; private String createDate;
private String status; private String status;
private String userId;
} }

View File

@ -6,6 +6,9 @@ import javax.validation.constraints.NotBlank;
@Data @Data
public class InsertTemplateForm { public class InsertTemplateForm {
@NotBlank(message = "用户不能为空")
private String userId;
@NotBlank(message = "模板名不能为空") @NotBlank(message = "模板名不能为空")
private String templateName; private String templateName;
} }

View File

@ -45,6 +45,6 @@ public class SaveBenchmarkingReportForm {
@NotEmpty(message = "批准人员不能为空") @NotEmpty(message = "批准人员不能为空")
private List<String> approveUsers; private List<String> approveUsers;
@NotBlank(message = "发起人不能为空") @NotBlank(message = "发起人不能为空")
private String createBy; private String userId;
private String explanation; private String explanation;
} }

View File

@ -8,6 +8,9 @@ import java.util.List;
@Data @Data
public class StartApprovalRequest { public class StartApprovalRequest {
@NotBlank(message = "用户不能为空")
private String userId;
@NotBlank(message = "请选择审核内容") @NotBlank(message = "请选择审核内容")
private String templateRowId; private String templateRowId;
@NotEmpty(message = "校对人员不能为空") @NotEmpty(message = "校对人员不能为空")

View File

@ -13,4 +13,6 @@ public class UpdateParameterForm {
private String templateRowId; private String templateRowId;
@Valid @NotEmpty(message = "请至少修改一项参数") @Valid @NotEmpty(message = "请至少修改一项参数")
private List<ParameterForm> parameterForms; private List<ParameterForm> parameterForms;
@NotBlank(message = "用户不能为空")
private String userId;
} }

View File

@ -7,6 +7,9 @@ import javax.validation.constraints.NotNull;
@Data @Data
public class UpdateTemplateForm { public class UpdateTemplateForm {
@NotBlank(message = "用户不能为空")
private String userId;
@NotNull(message = "顺序不能为空") @NotNull(message = "顺序不能为空")
private Integer orderNum; private Integer orderNum;

View File

@ -10,7 +10,7 @@ import java.util.List;
public interface CommonParameterService { public interface CommonParameterService {
List<ModelCommonItem> getSystemAndPara(); List<ModelCommonItem> getSystemAndPara();
List<ModelCommon> getModelCommonParameter(); List<ModelCommon> getModelCommonParameter(String userId);
void insertModelCommonParameter(@Valid ModelCommonParameterInsertForm form); void insertModelCommonParameter(@Valid ModelCommonParameterInsertForm form);

View File

@ -14,7 +14,7 @@ import java.util.List;
public interface TemplateService { public interface TemplateService {
PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form); PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form);
MyResponse importTemplate(MultipartFile file, String templateRowId); MyResponse importTemplate(MultipartFile file, String templateRowId, String userId);
void processSheetData(List<Parameter> dataList, String sheetName, void processSheetData(List<Parameter> dataList, String sheetName,
String templateRowId, String createBy, MyResponse problems,Integer maxOrder); String templateRowId, String createBy, MyResponse problems,Integer maxOrder);

View File

@ -74,7 +74,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
report.setFilePath(form.getFileUrl() == null ? "" : form.getFileUrl()); report.setFilePath(form.getFileUrl() == null ? "" : form.getFileUrl());
report.setUploadTime(Timestamp.valueOf(LocalDateTime.now())); report.setUploadTime(Timestamp.valueOf(LocalDateTime.now()));
report.setStatus("APPROVING"); report.setStatus("APPROVING");
report.setCreateBy(form.getCreateBy()); report.setCreateBy(form.getUserId());
bd.getBusinessDatabase().doInsert(report); bd.getBusinessDatabase().doInsert(report);
// 2. 创建审批流程 // 2. 创建审批流程
ApprovalFlow flow = new ApprovalFlow(); ApprovalFlow flow = new ApprovalFlow();
@ -85,7 +85,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
flow.setReviewUsers(JSON.toJSONString(form.getReviewUsers())); flow.setReviewUsers(JSON.toJSONString(form.getReviewUsers()));
flow.setCountersignUsers(JSON.toJSONString(form.getCountersignUsers())); flow.setCountersignUsers(JSON.toJSONString(form.getCountersignUsers()));
flow.setApproveUsers(JSON.toJSONString(form.getApproveUsers())); flow.setApproveUsers(JSON.toJSONString(form.getApproveUsers()));
flow.setCreateBy(form.getCreateBy()); flow.setCreateBy(form.getUserId());
flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now())); flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now()));
flow.setFlowType(2); // 设置为报告审批流程 flow.setFlowType(2); // 设置为报告审批流程
flow.setExplanation(form.getExplanation()); flow.setExplanation(form.getExplanation());
@ -95,8 +95,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
List<TodoTaskPojo> list = new ArrayList<>(); List<TodoTaskPojo> list = new ArrayList<>();
for (String person : form.getProofreadUsers()) { for (String person : form.getProofreadUsers()) {
TodoTaskPojo todoTask = new TodoTaskPojo(); TodoTaskPojo todoTask = new TodoTaskPojo();
todoTask.setCreatedById(permissionGetter.getCurrentUserId()); todoTask.setCreatedById(form.getUserId());
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(form.getUserId()).getUsername());
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
todoTask.setDataType("-"); todoTask.setDataType("-");
todoTask.setDocumentNo(flow.getId()); todoTask.setDocumentNo(flow.getId());
@ -336,25 +336,25 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
request.getUserId()); request.getUserId());
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.eq("owner_id", permissionGetter.getCurrentUserId()) .eq("owner_id", request.getUserId())
.update("is_delete", 1) .update("is_delete", 1)
.doUpdate(TodoTaskPojo.class); .doUpdate(TodoTaskPojo.class);
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.ne("owner_id", permissionGetter.getCurrentUserId()) .ne("owner_id", request.getUserId())
.update("is_delete", 2) .update("is_delete", 2)
.doDelete(TodoTaskPojo.class); .doDelete(TodoTaskPojo.class);
// 处理驳回逻辑 // 处理驳回逻辑
if ("REJECT".equals(request.getResult())) { if ("REJECT".equals(request.getResult())) {
cancelProcess(flow, "REJECTED"); cancelProcess(flow, "REJECTED", request.getUserId());
return; return;
} }
// 处理通过逻辑流转到下一节点 // 处理通过逻辑流转到下一节点
processNextNode(flow, currentNode); processNextNode(flow, currentNode, request.getUserId());
} }
private void processNextNode(ApprovalFlow flow, String currentNode) { private void processNextNode(ApprovalFlow flow, String currentNode, String userId) {
// 检查当前节点是否满足流转条件 // 检查当前节点是否满足流转条件
if (!checkNodeComplete(flow, currentNode)) { if (!checkNodeComplete(flow, currentNode)) {
return; // 未满足条件不流转 return; // 未满足条件不流转
@ -378,7 +378,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
clearProcessed(flow); clearProcessed(flow);
} else { } else {
flow.setCurrentNode(nextNode); flow.setCurrentNode(nextNode);
addNodeTodo(flow, nextNode, report); addNodeTodo(flow, nextNode, report, userId);
} }
bd.getBusinessDatabase() bd.getBusinessDatabase()
@ -402,7 +402,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
} }
} }
private void addNodeTodo(ApprovalFlow flow, String node, BenchmarkingReport report) { private void addNodeTodo(ApprovalFlow flow, String node, BenchmarkingReport report, String createBy) {
List<String> users = getNodeUsers(flow, node); List<String> users = getNodeUsers(flow, node);
users.forEach(userId -> { users.forEach(userId -> {
redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId()); redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId());
@ -411,8 +411,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
List<TodoTaskPojo> list = new ArrayList<>(); List<TodoTaskPojo> list = new ArrayList<>();
for (String person : users) { for (String person : users) {
TodoTaskPojo todoTask = new TodoTaskPojo(); TodoTaskPojo todoTask = new TodoTaskPojo();
todoTask.setCreatedById(permissionGetter.getCurrentUserId()); todoTask.setCreatedById(createBy);
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername());
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
todoTask.setDataType("-"); todoTask.setDataType("-");
todoTask.setDocumentNo(flow.getId()); todoTask.setDocumentNo(flow.getId());
@ -450,7 +450,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
} }
} }
private void cancelProcess(ApprovalFlow flow, String status) { private void cancelProcess(ApprovalFlow flow, String status, String userId) {
flow.setFlowStatus(status); flow.setFlowStatus(status);
bd.getBusinessDatabase() bd.getBusinessDatabase()
.rowid("id", flow.getRowId()) .rowid("id", flow.getRowId())
@ -466,18 +466,18 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
.update("status", report.getStatus()) .update("status", report.getStatus())
.doUpdate(BenchmarkingReport.class); .doUpdate(BenchmarkingReport.class);
// 清除所有待办 // 清除所有待办
clearAllTodo(flow); clearAllTodo(flow, userId);
clearProcessed(flow); clearProcessed(flow);
} }
private void clearAllTodo(ApprovalFlow flow) { private void clearAllTodo(ApprovalFlow flow, String userId) {
clearNodeTodo(flow, "PROOFREAD"); clearNodeTodo(flow, "PROOFREAD");
clearNodeTodo(flow, "REVIEW"); clearNodeTodo(flow, "REVIEW");
clearNodeTodo(flow, "APPROVE"); clearNodeTodo(flow, "APPROVE");
// 清除已有待办 // 清除已有待办
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.ne("owner_id", permissionGetter.getCurrentUserId()) .ne("owner_id", userId)
.update("is_delete", 2) .update("is_delete", 2)
.doDelete(TodoTaskPojo.class); .doDelete(TodoTaskPojo.class);
} }

View File

@ -22,8 +22,6 @@ import java.util.stream.Collectors;
public class CommonParameterServiceImpl implements CommonParameterService { public class CommonParameterServiceImpl implements CommonParameterService {
@Resource @Resource
private BusinessDatabase bd; private BusinessDatabase bd;
@Resource
private UserPermissionGetter permissionGetter;
@Override @Override
public List<ModelCommonItem> getSystemAndPara() { public List<ModelCommonItem> getSystemAndPara() {
@ -36,9 +34,9 @@ public class CommonParameterServiceImpl implements CommonParameterService {
} }
@Override @Override
public List<ModelCommon> getModelCommonParameter() { public List<ModelCommon> getModelCommonParameter(String userId) {
List<CommonParameter> commonParameters = bd.getBusinessDatabase() List<CommonParameter> commonParameters = bd.getBusinessDatabase()
.eq("create_by", permissionGetter.getCurrentUserId()) .eq("create_by", userId)
.eq("common_type", 1) .eq("common_type", 1)
.doQuery(CommonParameter.class); .doQuery(CommonParameter.class);
@ -60,7 +58,9 @@ public class CommonParameterServiceImpl implements CommonParameterService {
public void insertModelCommonParameter(ModelCommonParameterInsertForm form) { public void insertModelCommonParameter(ModelCommonParameterInsertForm form) {
// 检查名字是否重复 // 检查名字是否重复
List<CommonParameter> modelCommonParameters1 = bd.getBusinessDatabase() List<CommonParameter> modelCommonParameters1 = bd.getBusinessDatabase()
.eq("common_name", form.getCommonName()).doQuery(CommonParameter.class); .eq("common_name", form.getCommonName())
.eq("create_by", form.getUserId())
.doQuery(CommonParameter.class);
if (!modelCommonParameters1.isEmpty()) { if (!modelCommonParameters1.isEmpty()) {
throw new CommonException("常用名重复,请重新命名"); throw new CommonException("常用名重复,请重新命名");
} }

View File

@ -93,13 +93,14 @@ public class ParameterServiceImpl implements ParameterService {
// 校验模板状态 // 校验模板状态
validateTemplateStatus(benchmark); validateTemplateStatus(benchmark);
// 创建/复用新版本模板 // 创建/复用新版本模板
Template newVersionTemplate = createOrReuseNewTemplate(benchmark); Template newVersionTemplate = createOrReuseNewTemplate(benchmark, form.getUserId());
// 处理参数变更 // 处理参数变更
ParameterProcessingResult processingResult = processParameters( ParameterProcessingResult processingResult = processParameters(
form.getParameterForms(), form.getParameterForms(),
benchmark.getParameters(), benchmark.getParameters(),
benchmark.getBaseTemplate(), benchmark.getBaseTemplate(),
newVersionTemplate newVersionTemplate,
form.getUserId()
); );
// 保存所有数据 // 保存所有数据
@ -130,7 +131,7 @@ public class ParameterServiceImpl implements ParameterService {
/** /**
* 创建/复用新版本模板 * 创建/复用新版本模板
*/ */
private Template createOrReuseNewTemplate(TemplateBenchmark benchmark) { private Template createOrReuseNewTemplate(TemplateBenchmark benchmark, String userId) {
Template baseTemplate = benchmark.getBaseTemplate(); Template baseTemplate = benchmark.getBaseTemplate();
// 草稿状态复用原模板已发布创建新版本 // 草稿状态复用原模板已发布创建新版本
if ("DRAFT".equals(baseTemplate.getStatus())) { if ("DRAFT".equals(baseTemplate.getStatus())) {
@ -142,7 +143,7 @@ public class ParameterServiceImpl implements ParameterService {
"DRAFT", "DRAFT",
Timestamp.valueOf(LocalDateTime.now()), Timestamp.valueOf(LocalDateTime.now()),
null, null,
permissionGetter.getCurrentUserId(), userId,
getMaxOrder() getMaxOrder()
); );
bd.getBusinessDatabase().doInsert(newTemplate); bd.getBusinessDatabase().doInsert(newTemplate);
@ -234,8 +235,9 @@ public class ParameterServiceImpl implements ParameterService {
List<ParameterForm> parameterForms, List<ParameterForm> parameterForms,
List<Parameter> existingParameters, List<Parameter> existingParameters,
Template baseTemplate, Template baseTemplate,
Template newTemplate) Template newTemplate,
{ String userId
) {
Map<String, Parameter> parameterMap = existingParameters.stream() Map<String, Parameter> parameterMap = existingParameters.stream()
.collect(Collectors.toMap(Parameter::getId, param -> param, (k1, k2) -> { .collect(Collectors.toMap(Parameter::getId, param -> param, (k1, k2) -> {
throw new IllegalStateException("发现重复的参数ID: " + k1); throw new IllegalStateException("发现重复的参数ID: " + k1);
@ -252,10 +254,10 @@ public class ParameterServiceImpl implements ParameterService {
ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation()); ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation());
switch (operation) { switch (operation) {
case INSERT: case INSERT:
handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate); handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate, userId);
break; break;
case UPDATE: case UPDATE:
handleUpdateOperation(parameterForm, parameterMap, newTemplate, newParameters, revisionRecords, baseTemplate); handleUpdateOperation(parameterForm, parameterMap, newTemplate, newParameters, revisionRecords, baseTemplate, userId);
break; break;
case DELETE: case DELETE:
handleDeleteOperation(parameterForm, parameterMap, newTemplate, revisionRecords, baseTemplate); handleDeleteOperation(parameterForm, parameterMap, newTemplate, revisionRecords, baseTemplate);
@ -278,11 +280,11 @@ public class ParameterServiceImpl implements ParameterService {
private void handleInsertOperation( private void handleInsertOperation(
ParameterForm form, Template newTemplate, ParameterForm form, Template newTemplate,
List<Parameter> newParameters, List<RevisionRecord> revisionRecords, List<Parameter> newParameters, List<RevisionRecord> revisionRecords,
Template baseTemplate Template baseTemplate, String userId
) { ) {
Parameter newParameter = new Parameter(); Parameter newParameter = new Parameter();
BeanUtils.copyProperties(form, newParameter); BeanUtils.copyProperties(form, newParameter);
newParameter.setCreatedBy(permissionGetter.getCurrentUserId()); newParameter.setCreatedBy(userId);
newParameter.setId(null); newParameter.setId(null);
Parameter parameter = bd.getBusinessDatabase() Parameter parameter = bd.getBusinessDatabase()
@ -323,7 +325,8 @@ public class ParameterServiceImpl implements ParameterService {
private void handleUpdateOperation( private void handleUpdateOperation(
ParameterForm form, Map<String, Parameter> parameterMap, ParameterForm form, Map<String, Parameter> parameterMap,
Template newTemplate, List<Parameter> newParameters, Template newTemplate, List<Parameter> newParameters,
List<RevisionRecord> revisionRecords, Template baseTemplate List<RevisionRecord> revisionRecords, Template baseTemplate,
String userId
) { ) {
Parameter originalParameter = parameterMap.get(form.getId()); Parameter originalParameter = parameterMap.get(form.getId());
@ -337,7 +340,7 @@ public class ParameterServiceImpl implements ParameterService {
if (Objects.equals(baseTemplate.getId(), newTemplate.getId())) { if (Objects.equals(baseTemplate.getId(), newTemplate.getId())) {
BeanUtils.copyProperties(form, updatedParameter); BeanUtils.copyProperties(form, updatedParameter);
updatedParameter.setId(null); updatedParameter.setId(null);
updatedParameter.setCreatedBy(permissionGetter.getCurrentUserId()); updatedParameter.setCreatedBy(userId);
detail = getParameterChange(originalParameter, updatedParameter); detail = getParameterChange(originalParameter, updatedParameter);
bd.getBusinessDatabase() bd.getBusinessDatabase()
.rowid("id", originalParameter.getRowId()) .rowid("id", originalParameter.getRowId())
@ -346,7 +349,7 @@ public class ParameterServiceImpl implements ParameterService {
// 如果是新模板就新增 // 如果是新模板就新增
else { else {
BeanUtils.copyProperties(form, updatedParameter); BeanUtils.copyProperties(form, updatedParameter);
updatedParameter.setCreatedBy(permissionGetter.getCurrentUserId()); updatedParameter.setCreatedBy(userId);
updatedParameter.setId(null); updatedParameter.setId(null);
detail = getParameterChange(originalParameter, updatedParameter); detail = getParameterChange(originalParameter, updatedParameter);
bd.getBusinessDatabase().doInsert(updatedParameter); bd.getBusinessDatabase().doInsert(updatedParameter);

View File

@ -97,7 +97,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
flow.setReviewUsers(JSON.toJSONString(request.getReviewUsers())); flow.setReviewUsers(JSON.toJSONString(request.getReviewUsers()));
flow.setCountersignUsers(JSON.toJSONString(request.getCountersignUsers())); flow.setCountersignUsers(JSON.toJSONString(request.getCountersignUsers()));
flow.setApproveUsers(JSON.toJSONString(request.getApproveUsers())); flow.setApproveUsers(JSON.toJSONString(request.getApproveUsers()));
flow.setCreateBy(permissionGetter.getCurrentUserId()); flow.setCreateBy(request.getUserId());
flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now())); flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now()));
flow.setFlowType(1); // 设置为模板审批流程 flow.setFlowType(1); // 设置为模板审批流程
flow.setExplanation(request.getExplanation()); flow.setExplanation(request.getExplanation());
@ -107,8 +107,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
List<TodoTaskPojo> list = new ArrayList<>(); List<TodoTaskPojo> list = new ArrayList<>();
for (String person : request.getProofreadUsers()) { for (String person : request.getProofreadUsers()) {
TodoTaskPojo todoTask = new TodoTaskPojo(); TodoTaskPojo todoTask = new TodoTaskPojo();
todoTask.setCreatedById(permissionGetter.getCurrentUserId()); todoTask.setCreatedById(request.getUserId());
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(request.getUserId()).getUsername());
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
todoTask.setDataType("-"); todoTask.setDataType("-");
todoTask.setDocumentNo(flow.getId()); todoTask.setDocumentNo(flow.getId());
@ -147,13 +147,13 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
// .view("getAllApproval") // .view("getAllApproval")
// .doQuery(TodoAndTemplateView.class); // .doQuery(TodoAndTemplateView.class);
List<TodoAndTemplateView> approvalList = new ArrayList<>(); List<TodoAndTemplateView> approvalList = new ArrayList<>();
Set<String> flowIds = new HashSet<>(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + permissionGetter.getCurrentUserId()))); Set<String> flowIds = new HashSet<>(Objects.requireNonNull(redisTemplate.opsForSet().members(TODO_PREFIX + form.getUserId())));
List<String> ids = new ArrayList<>(flowIds); List<String> ids = new ArrayList<>(flowIds);
List<TodoAndTemplateView> todoList =bd.getBusinessDatabase() List<TodoAndTemplateView> todoList =bd.getBusinessDatabase()
.viewQueryMode(true) .viewQueryMode(true)
.view("getTodoAndTemplate") .view("getTodoAndTemplate")
.setVar("ids", ids) .setVar("ids", ids)
.setVar("createBy", permissionGetter.getCurrentUserId()) .setVar("createBy", form.getUserId())
.setVar("templateName", form.getTemplateName()) .setVar("templateName", form.getTemplateName())
.setVar("status", form.getStatus()) .setVar("status", form.getStatus())
.setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate()) .setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate())
@ -251,28 +251,28 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
} else { } else {
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.ne("owner_id", permissionGetter.getCurrentUserId()) .ne("owner_id", request.getUserId())
.update("is_delete", 2) .update("is_delete", 2)
.doDelete(TodoTaskPojo.class); .doDelete(TodoTaskPojo.class);
} }
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.eq("owner_id", permissionGetter.getCurrentUserId()) .eq("owner_id", request.getUserId())
.update("is_delete", 1) .update("is_delete", 1)
.doUpdate(TodoTaskPojo.class); .doUpdate(TodoTaskPojo.class);
// 处理驳回逻辑 // 处理驳回逻辑
if ("REJECT".equals(request.getResult())) { if ("REJECT".equals(request.getResult())) {
// 审批人退回 // 审批人退回
cancelProcess(flow, "REJECTED"); cancelProcess(flow, "REJECTED", request.getUserId());
return; return;
} else if ("RETURN".equals(request.getResult())) { } else if ("RETURN".equals(request.getResult())) {
// 申请人撤回 // 申请人撤回
cancelProcess(flow, "RETURNED"); cancelProcess(flow, "RETURNED", request.getUserId());
return; return;
} }
// 处理通过逻辑流转到下一节点 // 处理通过逻辑流转到下一节点
processNextNode(flow, currentNode); processNextNode(flow, currentNode, request.getUserId());
} }
@Override @Override
@ -340,8 +340,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
bd.getBusinessDatabase().doInsert(record); bd.getBusinessDatabase().doInsert(record);
// 申请人撤回 // 申请人撤回
cancelProcess(flow, "RETURNED"); cancelProcess(flow, "RETURNED", request.getUserId());
} { }
else {
throw new CommonException("无法撤回"); throw new CommonException("无法撤回");
} }
@ -368,7 +369,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
// 处理下一节点流转 // 处理下一节点流转
@Transactional(rollbackFor = CommonException.class) @Transactional(rollbackFor = CommonException.class)
public void processNextNode(ApprovalFlow flow, String currentNode) { public void processNextNode(ApprovalFlow flow, String currentNode, String userId) {
// 检查当前节点是否满足流转条件 // 检查当前节点是否满足流转条件
if (!checkNodeComplete(flow, currentNode)) { if (!checkNodeComplete(flow, currentNode)) {
return; // 未满足条件不流转 return; // 未满足条件不流转
@ -399,10 +400,10 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
.doUpdate(Template.class); .doUpdate(Template.class);
// 更新机型版本 // 更新机型版本
// dataEntryEngineModelService.updateModelForNewVersion(); // dataEntryEngineModelService.updateModelForNewVersion();
clearProcessed(flow); clearProcessed(flow, userId);
} else { } else {
flow.setCurrentNode(nextNode); flow.setCurrentNode(nextNode);
addNodeTodo(flow, nextNode, template); addNodeTodo(flow, nextNode, template, userId);
} }
bd.getBusinessDatabase() bd.getBusinessDatabase()
@ -445,7 +446,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
} }
} }
private void cancelProcess(ApprovalFlow flow, String status) { private void cancelProcess(ApprovalFlow flow, String status, String userId) {
// 更新流程状态 // 更新流程状态
flow.setFlowStatus(status); flow.setFlowStatus(status);
bd.getBusinessDatabase() bd.getBusinessDatabase()
@ -462,8 +463,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
.update("status", template.getStatus()) .update("status", template.getStatus())
.doUpdate(Template.class); .doUpdate(Template.class);
// 清除所有待办 // 清除所有待办
clearAllTodo(flow); clearAllTodo(flow, userId);
clearProcessed(flow); clearProcessed(flow, userId);
} }
private boolean hasPermission(ApprovalFlow flow, String node, String userId) { private boolean hasPermission(ApprovalFlow flow, String node, String userId) {
@ -481,7 +482,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
} }
} }
private void addNodeTodo(ApprovalFlow flow, String node, Template template) { private void addNodeTodo(ApprovalFlow flow, String node, Template template, String createBy) {
List<String> users = getNodeUsers(flow, node); List<String> users = getNodeUsers(flow, node);
users.forEach(userId -> { users.forEach(userId -> {
redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId()); redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId());
@ -490,8 +491,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
List<TodoTaskPojo> list = new ArrayList<>(); List<TodoTaskPojo> list = new ArrayList<>();
for (String person : users) { for (String person : users) {
TodoTaskPojo todoTask = new TodoTaskPojo(); TodoTaskPojo todoTask = new TodoTaskPojo();
todoTask.setCreatedById(permissionGetter.getCurrentUserId()); todoTask.setCreatedById(createBy);
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername()); todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername());
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode())); todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
todoTask.setDataType("-"); todoTask.setDataType("-");
todoTask.setDocumentNo(flow.getId()); todoTask.setDocumentNo(flow.getId());
@ -515,7 +516,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
}); });
} }
private void clearProcessed(ApprovalFlow flow) { private void clearProcessed(ApprovalFlow flow, String userId) {
redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "PROOFREAD"); redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "PROOFREAD");
redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "REVIEW"); redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "REVIEW");
if (flow.getCountersignUsers() != null) { if (flow.getCountersignUsers() != null) {
@ -524,7 +525,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "APPROVE"); redisTemplate.delete(NODE_PROCESSED_PREFIX + flow.getId() + ":" + "APPROVE");
} }
private void clearAllTodo(ApprovalFlow flow) { private void clearAllTodo(ApprovalFlow flow, String userId) {
clearNodeTodo(flow, "PROOFREAD"); clearNodeTodo(flow, "PROOFREAD");
clearNodeTodo(flow, "REVIEW"); clearNodeTodo(flow, "REVIEW");
if (flow.getCountersignUsers() != null) { if (flow.getCountersignUsers() != null) {
@ -534,7 +535,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
// 清除已有待办 // 清除已有待办
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("document_no", flow.getId()) .eq("document_no", flow.getId())
.ne("owner_id", permissionGetter.getCurrentUserId()) .ne("owner_id", userId)
.update("is_delete", 2) .update("is_delete", 2)
.doDelete(TodoTaskPojo.class); .doDelete(TodoTaskPojo.class);
} }

View File

@ -62,7 +62,7 @@ public class TemplateServiceImpl implements TemplateService {
// 创建新模板 // 创建新模板
Template newTemplate = new Template( Template newTemplate = new Template(
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
null, permissionGetter.getCurrentUserId(), getMaxOrder() null, form.getUserId(), getMaxOrder()
); );
bd.getBusinessDatabase().doInsert(newTemplate); bd.getBusinessDatabase().doInsert(newTemplate);
@ -110,7 +110,7 @@ public class TemplateServiceImpl implements TemplateService {
Template newTemplate = new Template( Template newTemplate = new Template(
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()), form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
null, permissionGetter.getCurrentUserId(), 1 null, form.getUserId(), 1
); );
bd.getBusinessDatabase() bd.getBusinessDatabase()
@ -120,8 +120,7 @@ public class TemplateServiceImpl implements TemplateService {
@Override @Override
@Transactional(rollbackFor = CommonException.class) @Transactional(rollbackFor = CommonException.class)
public MyResponse importTemplate(MultipartFile file, String templateRowId) { public MyResponse importTemplate(MultipartFile file, String templateRowId, String userId) {
String createBy = permissionGetter.getCurrentUserId();
// 验证文件是否为工作表 // 验证文件是否为工作表
if (file == null || file.isEmpty()) { if (file == null || file.isEmpty()) {
throw new CommonException("文件不能为空"); throw new CommonException("文件不能为空");
@ -141,7 +140,7 @@ public class TemplateServiceImpl implements TemplateService {
EasyExcel.read( EasyExcel.read(
inputStream, inputStream,
Parameter.class, Parameter.class,
new SheetDataListener(this, templateRowId, createBy, problems, maxOrder) new SheetDataListener(this, templateRowId, userId, problems, maxOrder)
).doReadAll(); ).doReadAll();
} catch (IOException e) { } catch (IOException e) {
@ -235,7 +234,7 @@ public class TemplateServiceImpl implements TemplateService {
// 验证公式 // 验证公式
for (Parameter data : dataList) { for (Parameter data : dataList) {
data.setCreatedBy(permissionGetter.getCurrentUserId()); data.setCreatedBy(createBy);
if (Objects.equals(data.getParameterSource(), "公式计算")) { if (Objects.equals(data.getParameterSource(), "公式计算")) {
Map<String, Object> validationResult = FormulaValidator.validateFormulaDetailed( Map<String, Object> validationResult = FormulaValidator.validateFormulaDetailed(
data.getNumberOrFormula()); data.getNumberOrFormula());