修改:修复userId获取混乱问题
This commit is contained in:
parent
78b3000120
commit
81b19e5465
@ -22,18 +22,13 @@ public class UserPermissionGetter {
|
||||
@Resource
|
||||
private RuntimeAppContextService runtimeAppContextService;
|
||||
|
||||
public String getCurrentUserId() {
|
||||
return runtimeAppContextService.getCurrentUserId();
|
||||
// return "zjh";
|
||||
}
|
||||
|
||||
// 获取子系统下的参数权限
|
||||
public List<String> getParamPermissions(String subsystem) {
|
||||
String currentUserId = getCurrentUserId();
|
||||
public List<String> getParamPermissions(String subsystem, String userId) {
|
||||
Set<String> result = new HashSet<>();
|
||||
try {
|
||||
// 获取用户权限
|
||||
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(currentUserId)
|
||||
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(userId)
|
||||
.stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem));
|
||||
if (collected.containsKey(subsystem)) {
|
||||
result.addAll(collected.get(subsystem)
|
||||
@ -41,7 +36,7 @@ public class UserPermissionGetter {
|
||||
}
|
||||
// 获取用户所在部门权限
|
||||
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());
|
||||
for (String deptId : deptIds) {
|
||||
Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId)
|
||||
@ -58,13 +53,11 @@ public class UserPermissionGetter {
|
||||
}
|
||||
|
||||
// 获取全部参数权限
|
||||
public List<String> getParamPermissions() {
|
||||
String currentUserId = runtimeAppContextService.getCurrentUserId();
|
||||
// String currentUserId = "1232";
|
||||
public List<String> getParamPermissions(String userId) {
|
||||
Set<String> result = new HashSet<>();
|
||||
try {
|
||||
// 获取用户权限
|
||||
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(currentUserId)
|
||||
Map<String, List<MenuParamView>> collected = modelRoleService.selectPersByUser(userId)
|
||||
.stream().collect(Collectors.groupingBy(MenuParamView::getSubsystem));
|
||||
for (String subsystem : collected.keySet()) {
|
||||
result.addAll(collected.get(subsystem)
|
||||
@ -72,7 +65,7 @@ public class UserPermissionGetter {
|
||||
}
|
||||
// 获取用户所在部门权限
|
||||
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());
|
||||
for (String deptId : deptIds) {
|
||||
Map<String, List<MenuParamView>> collected1 = modelRoleService.selectPersByUser(deptId)
|
||||
|
||||
@ -21,4 +21,9 @@ public class BusinessDatabase {
|
||||
public MpaasQuery getBusinessDatabase() {
|
||||
return queryFactory.buildFromDatasource(DatasourceConstant.XDAP_MYSQL_PREFIX + tenantId);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public MpaasQuery getTCDatabase() {
|
||||
return queryFactory.buildFromDatasource("yc_lrs_test_relsult");
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,8 +28,10 @@ public class CommonParameterController {
|
||||
|
||||
// 查询机型参数常用
|
||||
@GetMapping("/getModelCommon")
|
||||
public Response getModelCommonParameter() {
|
||||
List<ModelCommon> list = commonParameterService.getModelCommonParameter();
|
||||
public Response getModelCommonParameter(
|
||||
@NotBlank @RequestParam String userId
|
||||
) {
|
||||
List<ModelCommon> list = commonParameterService.getModelCommonParameter(userId);
|
||||
return Response.ok().data(list);
|
||||
}
|
||||
// 新增机型参数常用
|
||||
|
||||
@ -1,15 +1,20 @@
|
||||
package com.xdap.self_development.controller;
|
||||
|
||||
import com.definesys.mpaas.common.http.Response;
|
||||
import com.definesys.mpaas.query.MpaasQueryFactory;
|
||||
import com.xdap.motor.entity.SnowflakeIdWorker;
|
||||
import com.xdap.runtime.service.RuntimeAppContextService;
|
||||
import com.xdap.self_development.common.UserPermissionGetter;
|
||||
import com.xdap.self_development.config.BusinessDatabase;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
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.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -35,4 +40,28 @@ public class DeleteController {
|
||||
private String clientId;
|
||||
@Value("${apaas.token.clientSecred}")
|
||||
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("无法找到参数值");
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,9 +80,10 @@ public class TemplateController {
|
||||
@PostMapping("/import")
|
||||
public Response importTemplate(
|
||||
@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()) {
|
||||
return Response.error("导入异常").data(templateImportProblemView);
|
||||
} else {
|
||||
|
||||
@ -10,4 +10,5 @@ public class ApprovalListForm {
|
||||
private String username;
|
||||
private String createDate;
|
||||
private String status;
|
||||
private String userId;
|
||||
}
|
||||
|
||||
@ -6,6 +6,9 @@ import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class InsertTemplateForm {
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
|
||||
@NotBlank(message = "模板名不能为空")
|
||||
private String templateName;
|
||||
}
|
||||
|
||||
@ -45,6 +45,6 @@ public class SaveBenchmarkingReportForm {
|
||||
@NotEmpty(message = "批准人员不能为空")
|
||||
private List<String> approveUsers;
|
||||
@NotBlank(message = "发起人不能为空")
|
||||
private String createBy;
|
||||
private String userId;
|
||||
private String explanation;
|
||||
}
|
||||
|
||||
@ -8,6 +8,9 @@ import java.util.List;
|
||||
|
||||
@Data
|
||||
public class StartApprovalRequest {
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
|
||||
@NotBlank(message = "请选择审核内容")
|
||||
private String templateRowId;
|
||||
@NotEmpty(message = "校对人员不能为空")
|
||||
|
||||
@ -13,4 +13,6 @@ public class UpdateParameterForm {
|
||||
private String templateRowId;
|
||||
@Valid @NotEmpty(message = "请至少修改一项参数")
|
||||
private List<ParameterForm> parameterForms;
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class UpdateTemplateForm {
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
|
||||
@NotNull(message = "顺序不能为空")
|
||||
private Integer orderNum;
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import java.util.List;
|
||||
public interface CommonParameterService {
|
||||
List<ModelCommonItem> getSystemAndPara();
|
||||
|
||||
List<ModelCommon> getModelCommonParameter();
|
||||
List<ModelCommon> getModelCommonParameter(String userId);
|
||||
|
||||
void insertModelCommonParameter(@Valid ModelCommonParameterInsertForm form);
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ import java.util.List;
|
||||
public interface TemplateService {
|
||||
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,
|
||||
String templateRowId, String createBy, MyResponse problems,Integer maxOrder);
|
||||
|
||||
@ -74,7 +74,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
report.setFilePath(form.getFileUrl() == null ? "" : form.getFileUrl());
|
||||
report.setUploadTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||
report.setStatus("APPROVING");
|
||||
report.setCreateBy(form.getCreateBy());
|
||||
report.setCreateBy(form.getUserId());
|
||||
bd.getBusinessDatabase().doInsert(report);
|
||||
// 2. 创建审批流程
|
||||
ApprovalFlow flow = new ApprovalFlow();
|
||||
@ -85,7 +85,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
flow.setReviewUsers(JSON.toJSONString(form.getReviewUsers()));
|
||||
flow.setCountersignUsers(JSON.toJSONString(form.getCountersignUsers()));
|
||||
flow.setApproveUsers(JSON.toJSONString(form.getApproveUsers()));
|
||||
flow.setCreateBy(form.getCreateBy());
|
||||
flow.setCreateBy(form.getUserId());
|
||||
flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||
flow.setFlowType(2); // 设置为报告审批流程
|
||||
flow.setExplanation(form.getExplanation());
|
||||
@ -95,8 +95,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
List<TodoTaskPojo> list = new ArrayList<>();
|
||||
for (String person : form.getProofreadUsers()) {
|
||||
TodoTaskPojo todoTask = new TodoTaskPojo();
|
||||
todoTask.setCreatedById(permissionGetter.getCurrentUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername());
|
||||
todoTask.setCreatedById(form.getUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(form.getUserId()).getUsername());
|
||||
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
|
||||
todoTask.setDataType("-");
|
||||
todoTask.setDocumentNo(flow.getId());
|
||||
@ -336,25 +336,25 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
request.getUserId());
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.eq("owner_id", permissionGetter.getCurrentUserId())
|
||||
.eq("owner_id", request.getUserId())
|
||||
.update("is_delete", 1)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.ne("owner_id", permissionGetter.getCurrentUserId())
|
||||
.ne("owner_id", request.getUserId())
|
||||
.update("is_delete", 2)
|
||||
.doDelete(TodoTaskPojo.class);
|
||||
|
||||
// 处理驳回逻辑
|
||||
if ("REJECT".equals(request.getResult())) {
|
||||
cancelProcess(flow, "REJECTED");
|
||||
cancelProcess(flow, "REJECTED", request.getUserId());
|
||||
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)) {
|
||||
return; // 未满足条件,不流转
|
||||
@ -378,7 +378,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
clearProcessed(flow);
|
||||
} else {
|
||||
flow.setCurrentNode(nextNode);
|
||||
addNodeTodo(flow, nextNode, report);
|
||||
addNodeTodo(flow, nextNode, report, userId);
|
||||
}
|
||||
|
||||
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);
|
||||
users.forEach(userId -> {
|
||||
redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId());
|
||||
@ -411,8 +411,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
List<TodoTaskPojo> list = new ArrayList<>();
|
||||
for (String person : users) {
|
||||
TodoTaskPojo todoTask = new TodoTaskPojo();
|
||||
todoTask.setCreatedById(permissionGetter.getCurrentUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername());
|
||||
todoTask.setCreatedById(createBy);
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername());
|
||||
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
|
||||
todoTask.setDataType("-");
|
||||
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);
|
||||
bd.getBusinessDatabase()
|
||||
.rowid("id", flow.getRowId())
|
||||
@ -466,18 +466,18 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
.update("status", report.getStatus())
|
||||
.doUpdate(BenchmarkingReport.class);
|
||||
// 清除所有待办
|
||||
clearAllTodo(flow);
|
||||
clearAllTodo(flow, userId);
|
||||
clearProcessed(flow);
|
||||
}
|
||||
|
||||
private void clearAllTodo(ApprovalFlow flow) {
|
||||
private void clearAllTodo(ApprovalFlow flow, String userId) {
|
||||
clearNodeTodo(flow, "PROOFREAD");
|
||||
clearNodeTodo(flow, "REVIEW");
|
||||
clearNodeTodo(flow, "APPROVE");
|
||||
// 清除已有待办
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.ne("owner_id", permissionGetter.getCurrentUserId())
|
||||
.ne("owner_id", userId)
|
||||
.update("is_delete", 2)
|
||||
.doDelete(TodoTaskPojo.class);
|
||||
}
|
||||
|
||||
@ -22,8 +22,6 @@ import java.util.stream.Collectors;
|
||||
public class CommonParameterServiceImpl implements CommonParameterService {
|
||||
@Resource
|
||||
private BusinessDatabase bd;
|
||||
@Resource
|
||||
private UserPermissionGetter permissionGetter;
|
||||
|
||||
@Override
|
||||
public List<ModelCommonItem> getSystemAndPara() {
|
||||
@ -36,9 +34,9 @@ public class CommonParameterServiceImpl implements CommonParameterService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ModelCommon> getModelCommonParameter() {
|
||||
public List<ModelCommon> getModelCommonParameter(String userId) {
|
||||
List<CommonParameter> commonParameters = bd.getBusinessDatabase()
|
||||
.eq("create_by", permissionGetter.getCurrentUserId())
|
||||
.eq("create_by", userId)
|
||||
.eq("common_type", 1)
|
||||
.doQuery(CommonParameter.class);
|
||||
|
||||
@ -60,7 +58,9 @@ public class CommonParameterServiceImpl implements CommonParameterService {
|
||||
public void insertModelCommonParameter(ModelCommonParameterInsertForm form) {
|
||||
// 检查名字是否重复
|
||||
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()) {
|
||||
throw new CommonException("常用名重复,请重新命名");
|
||||
}
|
||||
|
||||
@ -93,13 +93,14 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
// 校验模板状态
|
||||
validateTemplateStatus(benchmark);
|
||||
// 创建/复用新版本模板
|
||||
Template newVersionTemplate = createOrReuseNewTemplate(benchmark);
|
||||
Template newVersionTemplate = createOrReuseNewTemplate(benchmark, form.getUserId());
|
||||
// 处理参数变更
|
||||
ParameterProcessingResult processingResult = processParameters(
|
||||
form.getParameterForms(),
|
||||
benchmark.getParameters(),
|
||||
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();
|
||||
// 草稿状态复用原模板,已发布创建新版本
|
||||
if ("DRAFT".equals(baseTemplate.getStatus())) {
|
||||
@ -142,7 +143,7 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
"DRAFT",
|
||||
Timestamp.valueOf(LocalDateTime.now()),
|
||||
null,
|
||||
permissionGetter.getCurrentUserId(),
|
||||
userId,
|
||||
getMaxOrder()
|
||||
);
|
||||
bd.getBusinessDatabase().doInsert(newTemplate);
|
||||
@ -234,8 +235,9 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
List<ParameterForm> parameterForms,
|
||||
List<Parameter> existingParameters,
|
||||
Template baseTemplate,
|
||||
Template newTemplate)
|
||||
{
|
||||
Template newTemplate,
|
||||
String userId
|
||||
) {
|
||||
Map<String, Parameter> parameterMap = existingParameters.stream()
|
||||
.collect(Collectors.toMap(Parameter::getId, param -> param, (k1, k2) -> {
|
||||
throw new IllegalStateException("发现重复的参数ID: " + k1);
|
||||
@ -252,10 +254,10 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation());
|
||||
switch (operation) {
|
||||
case INSERT:
|
||||
handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate);
|
||||
handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate, userId);
|
||||
break;
|
||||
case UPDATE:
|
||||
handleUpdateOperation(parameterForm, parameterMap, newTemplate, newParameters, revisionRecords, baseTemplate);
|
||||
handleUpdateOperation(parameterForm, parameterMap, newTemplate, newParameters, revisionRecords, baseTemplate, userId);
|
||||
break;
|
||||
case DELETE:
|
||||
handleDeleteOperation(parameterForm, parameterMap, newTemplate, revisionRecords, baseTemplate);
|
||||
@ -278,11 +280,11 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
private void handleInsertOperation(
|
||||
ParameterForm form, Template newTemplate,
|
||||
List<Parameter> newParameters, List<RevisionRecord> revisionRecords,
|
||||
Template baseTemplate
|
||||
Template baseTemplate, String userId
|
||||
) {
|
||||
Parameter newParameter = new Parameter();
|
||||
BeanUtils.copyProperties(form, newParameter);
|
||||
newParameter.setCreatedBy(permissionGetter.getCurrentUserId());
|
||||
newParameter.setCreatedBy(userId);
|
||||
newParameter.setId(null);
|
||||
|
||||
Parameter parameter = bd.getBusinessDatabase()
|
||||
@ -323,7 +325,8 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
private void handleUpdateOperation(
|
||||
ParameterForm form, Map<String, Parameter> parameterMap,
|
||||
Template newTemplate, List<Parameter> newParameters,
|
||||
List<RevisionRecord> revisionRecords, Template baseTemplate
|
||||
List<RevisionRecord> revisionRecords, Template baseTemplate,
|
||||
String userId
|
||||
) {
|
||||
Parameter originalParameter = parameterMap.get(form.getId());
|
||||
|
||||
@ -337,7 +340,7 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
if (Objects.equals(baseTemplate.getId(), newTemplate.getId())) {
|
||||
BeanUtils.copyProperties(form, updatedParameter);
|
||||
updatedParameter.setId(null);
|
||||
updatedParameter.setCreatedBy(permissionGetter.getCurrentUserId());
|
||||
updatedParameter.setCreatedBy(userId);
|
||||
detail = getParameterChange(originalParameter, updatedParameter);
|
||||
bd.getBusinessDatabase()
|
||||
.rowid("id", originalParameter.getRowId())
|
||||
@ -346,7 +349,7 @@ public class ParameterServiceImpl implements ParameterService {
|
||||
// 如果是新模板,就新增
|
||||
else {
|
||||
BeanUtils.copyProperties(form, updatedParameter);
|
||||
updatedParameter.setCreatedBy(permissionGetter.getCurrentUserId());
|
||||
updatedParameter.setCreatedBy(userId);
|
||||
updatedParameter.setId(null);
|
||||
detail = getParameterChange(originalParameter, updatedParameter);
|
||||
bd.getBusinessDatabase().doInsert(updatedParameter);
|
||||
|
||||
@ -97,7 +97,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
flow.setReviewUsers(JSON.toJSONString(request.getReviewUsers()));
|
||||
flow.setCountersignUsers(JSON.toJSONString(request.getCountersignUsers()));
|
||||
flow.setApproveUsers(JSON.toJSONString(request.getApproveUsers()));
|
||||
flow.setCreateBy(permissionGetter.getCurrentUserId());
|
||||
flow.setCreateBy(request.getUserId());
|
||||
flow.setCreatedTime(Timestamp.valueOf(LocalDateTime.now()));
|
||||
flow.setFlowType(1); // 设置为模板审批流程
|
||||
flow.setExplanation(request.getExplanation());
|
||||
@ -107,8 +107,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
List<TodoTaskPojo> list = new ArrayList<>();
|
||||
for (String person : request.getProofreadUsers()) {
|
||||
TodoTaskPojo todoTask = new TodoTaskPojo();
|
||||
todoTask.setCreatedById(permissionGetter.getCurrentUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername());
|
||||
todoTask.setCreatedById(request.getUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(request.getUserId()).getUsername());
|
||||
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
|
||||
todoTask.setDataType("-");
|
||||
todoTask.setDocumentNo(flow.getId());
|
||||
@ -147,13 +147,13 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
// .view("getAllApproval")
|
||||
// .doQuery(TodoAndTemplateView.class);
|
||||
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<TodoAndTemplateView> todoList =bd.getBusinessDatabase()
|
||||
.viewQueryMode(true)
|
||||
.view("getTodoAndTemplate")
|
||||
.setVar("ids", ids)
|
||||
.setVar("createBy", permissionGetter.getCurrentUserId())
|
||||
.setVar("createBy", form.getUserId())
|
||||
.setVar("templateName", form.getTemplateName())
|
||||
.setVar("status", form.getStatus())
|
||||
.setVar("createdTime", form.getCreateDate() == null ? "" : form.getCreateDate())
|
||||
@ -251,28 +251,28 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
} else {
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.ne("owner_id", permissionGetter.getCurrentUserId())
|
||||
.ne("owner_id", request.getUserId())
|
||||
.update("is_delete", 2)
|
||||
.doDelete(TodoTaskPojo.class);
|
||||
}
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.eq("owner_id", permissionGetter.getCurrentUserId())
|
||||
.eq("owner_id", request.getUserId())
|
||||
.update("is_delete", 1)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
|
||||
// 处理驳回逻辑
|
||||
if ("REJECT".equals(request.getResult())) {
|
||||
// 审批人退回
|
||||
cancelProcess(flow, "REJECTED");
|
||||
cancelProcess(flow, "REJECTED", request.getUserId());
|
||||
return;
|
||||
} else if ("RETURN".equals(request.getResult())) {
|
||||
// 申请人撤回
|
||||
cancelProcess(flow, "RETURNED");
|
||||
cancelProcess(flow, "RETURNED", request.getUserId());
|
||||
return;
|
||||
}
|
||||
// 处理通过逻辑,流转到下一节点
|
||||
processNextNode(flow, currentNode);
|
||||
processNextNode(flow, currentNode, request.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -340,8 +340,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
bd.getBusinessDatabase().doInsert(record);
|
||||
|
||||
// 申请人撤回
|
||||
cancelProcess(flow, "RETURNED");
|
||||
} {
|
||||
cancelProcess(flow, "RETURNED", request.getUserId());
|
||||
}
|
||||
else {
|
||||
throw new CommonException("无法撤回");
|
||||
}
|
||||
|
||||
@ -368,7 +369,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
|
||||
// 处理下一节点流转
|
||||
@Transactional(rollbackFor = CommonException.class)
|
||||
public void processNextNode(ApprovalFlow flow, String currentNode) {
|
||||
public void processNextNode(ApprovalFlow flow, String currentNode, String userId) {
|
||||
// 检查当前节点是否满足流转条件
|
||||
if (!checkNodeComplete(flow, currentNode)) {
|
||||
return; // 未满足条件,不流转
|
||||
@ -399,10 +400,10 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.doUpdate(Template.class);
|
||||
// 更新机型版本
|
||||
// dataEntryEngineModelService.updateModelForNewVersion();
|
||||
clearProcessed(flow);
|
||||
clearProcessed(flow, userId);
|
||||
} else {
|
||||
flow.setCurrentNode(nextNode);
|
||||
addNodeTodo(flow, nextNode, template);
|
||||
addNodeTodo(flow, nextNode, template, userId);
|
||||
}
|
||||
|
||||
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);
|
||||
bd.getBusinessDatabase()
|
||||
@ -462,8 +463,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.update("status", template.getStatus())
|
||||
.doUpdate(Template.class);
|
||||
// 清除所有待办
|
||||
clearAllTodo(flow);
|
||||
clearProcessed(flow);
|
||||
clearAllTodo(flow, userId);
|
||||
clearProcessed(flow, 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);
|
||||
users.forEach(userId -> {
|
||||
redisTemplate.opsForSet().add(TODO_PREFIX+ userId, flow.getId());
|
||||
@ -490,8 +491,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
List<TodoTaskPojo> list = new ArrayList<>();
|
||||
for (String person : users) {
|
||||
TodoTaskPojo todoTask = new TodoTaskPojo();
|
||||
todoTask.setCreatedById(permissionGetter.getCurrentUserId());
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(permissionGetter.getCurrentUserId()).getUsername());
|
||||
todoTask.setCreatedById(createBy);
|
||||
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(createBy).getUsername());
|
||||
todoTask.setCurrentNode(getNodeName(flow.getCurrentNode()));
|
||||
todoTask.setDataType("-");
|
||||
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() + ":" + "REVIEW");
|
||||
if (flow.getCountersignUsers() != null) {
|
||||
@ -524,7 +525,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
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, "REVIEW");
|
||||
if (flow.getCountersignUsers() != null) {
|
||||
@ -534,7 +535,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
// 清除已有待办
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.ne("owner_id", permissionGetter.getCurrentUserId())
|
||||
.ne("owner_id", userId)
|
||||
.update("is_delete", 2)
|
||||
.doDelete(TodoTaskPojo.class);
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
// 创建新模板
|
||||
Template newTemplate = new Template(
|
||||
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
|
||||
null, permissionGetter.getCurrentUserId(), getMaxOrder()
|
||||
null, form.getUserId(), getMaxOrder()
|
||||
);
|
||||
|
||||
bd.getBusinessDatabase().doInsert(newTemplate);
|
||||
@ -110,7 +110,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
Template newTemplate = new Template(
|
||||
form.getTemplateName(), 1, "DRAFT", Timestamp.valueOf(LocalDateTime.now()),
|
||||
null, permissionGetter.getCurrentUserId(), 1
|
||||
null, form.getUserId(), 1
|
||||
);
|
||||
|
||||
bd.getBusinessDatabase()
|
||||
@ -120,8 +120,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = CommonException.class)
|
||||
public MyResponse importTemplate(MultipartFile file, String templateRowId) {
|
||||
String createBy = permissionGetter.getCurrentUserId();
|
||||
public MyResponse importTemplate(MultipartFile file, String templateRowId, String userId) {
|
||||
// 验证文件是否为工作表
|
||||
if (file == null || file.isEmpty()) {
|
||||
throw new CommonException("文件不能为空");
|
||||
@ -141,7 +140,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
EasyExcel.read(
|
||||
inputStream,
|
||||
Parameter.class,
|
||||
new SheetDataListener(this, templateRowId, createBy, problems, maxOrder)
|
||||
new SheetDataListener(this, templateRowId, userId, problems, maxOrder)
|
||||
).doReadAll();
|
||||
|
||||
} catch (IOException e) {
|
||||
@ -235,7 +234,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
|
||||
// 验证公式
|
||||
for (Parameter data : dataList) {
|
||||
data.setCreatedBy(permissionGetter.getCurrentUserId());
|
||||
data.setCreatedBy(createBy);
|
||||
if (Objects.equals(data.getParameterSource(), "公式计算")) {
|
||||
Map<String, Object> validationResult = FormulaValidator.validateFormulaDetailed(
|
||||
data.getNumberOrFormula());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user