修改:大部分修改3.0
This commit is contained in:
parent
00a73659e2
commit
2f58e702e5
@ -27,6 +27,24 @@ public class TemplateApprovalController {
|
||||
@Resource
|
||||
private RuntimeDatasourceService runtimeDatasourceService;
|
||||
|
||||
// 获取可修改节点
|
||||
@GetMapping("/getEditableNodes")
|
||||
public Response getEditableNodes(
|
||||
@NotBlank @RequestParam String flowId
|
||||
) {
|
||||
List<String> nodes = templateApprovalService.getEditableNodes(flowId);
|
||||
return Response.ok().data(nodes);
|
||||
}
|
||||
|
||||
// 修改节点
|
||||
@PostMapping("/updateNode")
|
||||
public Response updateNode(
|
||||
@RequestBody UpdateNodeForm form
|
||||
) {
|
||||
templateApprovalService.updateNode(form);
|
||||
return Response.ok();
|
||||
}
|
||||
|
||||
// 修改流程主题
|
||||
@GetMapping("/updateFlowTitle")
|
||||
public Response updateFlowTitle(
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.xdap.self_development.controller.form;
|
||||
|
||||
import com.xdap.self_development.pojo.dto.ApprovalNodeDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UpdateNodeForm {
|
||||
@NotBlank(message = "用户不能为空")
|
||||
private String userId;
|
||||
@NotBlank(message = "流程不能为空")
|
||||
private String flowId;
|
||||
// 审批环节配置列表
|
||||
@NotEmpty(message = "环节不能为空")
|
||||
private List<ApprovalNodeDTO> nodeList;
|
||||
}
|
||||
@ -9,4 +9,5 @@ public class ModelComparisonExportRequest {
|
||||
String userID;
|
||||
List<ModelItem> modelIds;
|
||||
List<String> subsystemParts;
|
||||
List<String> parameterIds;
|
||||
}
|
||||
|
||||
@ -167,6 +167,7 @@ public class EngineModelListener implements ReadListener<DataEntryEngineModelExc
|
||||
engineParamDetailPojo.setParameterType(parameter.getParameterType());
|
||||
engineParamDetailPojo.setPartsName(parameter.getPartsName());
|
||||
engineParamDetailPojo.setParameterName(parameter.getParameterName());
|
||||
engineParamDetailPojo.setParameterSource(parameter.getParameterSource());
|
||||
engineParamDetailPojo.setDepartment(parameter.getDepartment());
|
||||
engineParamDetailPojo.setMajorVersion(versionNumber);
|
||||
engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode());
|
||||
|
||||
@ -54,7 +54,8 @@ public interface ActivitiProcessService {
|
||||
void updateTasks(
|
||||
EngineReviewListPojo flow,
|
||||
String status,
|
||||
Integer enableReturn
|
||||
Integer enableReturn,
|
||||
ApprovalConfigPojo currentNode
|
||||
);
|
||||
void processNextNode(
|
||||
EngineReviewListPojo flow,
|
||||
|
||||
@ -54,7 +54,7 @@ public interface BenchmarkingReportService {
|
||||
|
||||
void cancelProcess(ApprovalFlow flow, ApprovalConfigPojo node, String status, String userId);
|
||||
|
||||
void updateTasks(ApprovalFlow flow, String status, Integer enableReturn);
|
||||
void updateTasks(ApprovalFlow flow, String status, Integer enableReturn, ApprovalConfigPojo currentNode);
|
||||
|
||||
ApprovalNodesDTO getApprovalUsers(@NotBlank String flowId);
|
||||
|
||||
|
||||
@ -37,6 +37,8 @@ public interface EngineParamDetailService {
|
||||
void updateToInsertFiledBy(List<EngineParamDetailPojo> engineParamDetailPojos, String userID);
|
||||
|
||||
List<Parameter> selectAllByNewVersion();
|
||||
List<Parameter> selectNeedFillByNewVersion();
|
||||
|
||||
List<Parameter> selectAllAndTcByNewVersion();
|
||||
/**
|
||||
* 根据型号查询最新的引擎参数详情列表
|
||||
|
||||
@ -43,7 +43,7 @@ public interface TemplateApprovalService {
|
||||
|
||||
boolean checkNodeComplete(ApprovalFlow flow, ApprovalConfigPojo node);
|
||||
|
||||
void updateTasks(ApprovalFlow flow, String status, Integer enableReturn);
|
||||
void updateTasks(ApprovalFlow flow, String status, Integer enableReturn, ApprovalConfigPojo currentNode);
|
||||
|
||||
void addNodeTodo(ApprovalFlow flow, ApprovalConfigPojo node, Template template, String createBy, Integer enableReturn);
|
||||
|
||||
@ -54,4 +54,8 @@ public interface TemplateApprovalService {
|
||||
boolean getIsDirect(String flowId);
|
||||
|
||||
void updateFlowTitle(String flowId, String title);
|
||||
|
||||
List<String> getEditableNodes(@NotBlank String flowId);
|
||||
|
||||
void updateNode(UpdateNodeForm form);
|
||||
}
|
||||
|
||||
@ -506,17 +506,19 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
bd.getBusinessDatabase().doInsert(todoTask);
|
||||
}
|
||||
// 更新发起和已办
|
||||
myself.updateTasks(flow, status.getDesc(), 0);
|
||||
myself.updateTasks(flow, status.getDesc(), 0, node);
|
||||
}
|
||||
public void updateTasks(
|
||||
EngineReviewListPojo flow,
|
||||
String status,
|
||||
Integer enableReturn
|
||||
Integer enableReturn,
|
||||
ApprovalConfigPojo currentNode
|
||||
) {
|
||||
// 更新已发起的任务状态
|
||||
bd.getBusinessDatabase()
|
||||
.update("current_node", status)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.eq("document_no", flow.getId())
|
||||
.update("enable_return", enableReturn)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
@ -524,6 +526,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
bd.getBusinessDatabase()
|
||||
.update("current_node", status)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.eq("document_no", flow.getId())
|
||||
.doUpdate(CompletedTaskPojo.class);
|
||||
}
|
||||
@ -553,7 +556,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
}
|
||||
else {
|
||||
// 待办环节修改
|
||||
myself.updateTasks(flow, ParamValueVersionEnum.PASSED.getDesc(), 0);
|
||||
myself.updateTasks(flow, ParamValueVersionEnum.PASSED.getDesc(), 0, null);
|
||||
// 所有环节完成
|
||||
DataEntryEngineModelPojo modelPojos = bd.getBusinessDatabase()
|
||||
.eq("id", flow.getModelId())
|
||||
@ -645,7 +648,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
todoTaskPojo.setIsDelete(0);
|
||||
bd.getBusinessDatabase().doInsert(todoTaskPojo);
|
||||
}
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn);
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn, node);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -873,7 +873,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
.update("status", report.getStatus())
|
||||
.doUpdate(BenchmarkingReport.class);
|
||||
// 待办环节修改
|
||||
myself.updateTasks(flow, "已完成", 0);
|
||||
myself.updateTasks(flow, "已完成", 0, null);
|
||||
} else {
|
||||
flow.setCurrentNode(nextNode.getNodeOrder());
|
||||
myself.addNodeTodo(flow, nextNode, report, userId, 0);
|
||||
@ -916,7 +916,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
}
|
||||
|
||||
// 更新已办和发起的状态
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn);
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn, node);
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
bd.getBusinessDatabase().doBatchInsert(list);
|
||||
@ -972,18 +972,20 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
todoTask.setCurrentProcessor(JSON.toJSONString(Collections.singletonList(flow.getCreateBy())));
|
||||
bd.getBusinessDatabase().doInsert(todoTask);
|
||||
}
|
||||
myself.updateTasks(flow, Objects.equals(report.getStatus(), "RETURNED") ? "已撤回" : "已拒绝", 0);
|
||||
myself.updateTasks(flow, Objects.equals(report.getStatus(), "RETURNED") ? "已撤回" : "已拒绝", 0, node);
|
||||
}
|
||||
|
||||
public void updateTasks(ApprovalFlow flow, String status, Integer enableReturn) {
|
||||
public void updateTasks(ApprovalFlow flow, String status, Integer enableReturn, ApprovalConfigPojo currentNode) {
|
||||
// 更新已办和发起的节点状态
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.update("current_node", status)
|
||||
.doUpdate(CompletedTaskPojo.class);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_node", status)
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.update("enable_return", enableReturn)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
}
|
||||
|
||||
@ -339,6 +339,7 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
|
||||
engineParamDetailPojo.setPartsName(parameter.getPartsName());
|
||||
engineParamDetailPojo.setParameterName(parameter.getParameterName());
|
||||
engineParamDetailPojo.setDepartment(parameter.getDepartment());
|
||||
engineParamDetailPojo.setParameterSource(parameter.getParameterSource());
|
||||
engineParamDetailPojo.setMajorVersion(newVersionNum);
|
||||
engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode());
|
||||
engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null);
|
||||
@ -472,7 +473,7 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
|
||||
}
|
||||
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("model_id", modelId)
|
||||
.eq("id", modelId)
|
||||
.doDelete(DataEntryEngineModelPojo.class);
|
||||
}
|
||||
|
||||
|
||||
@ -344,6 +344,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
||||
.eq("version_status", code)
|
||||
.eq("subsystem_name", subsystem)
|
||||
.eq("parts_name", type)
|
||||
.eq("parameter_source", "数据平台手工录入")
|
||||
.doQuery(EngineParamDetailPojo.class));
|
||||
} else if (ObjectUtils.isNotEmpty(resId)) {
|
||||
//若传入责任人则查询责任人需要分发的参数
|
||||
@ -353,6 +354,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
||||
.eq("version_status", code)
|
||||
.eq("subsystem_name", subsystem)
|
||||
.eq("parts_name", type)
|
||||
.eq("parameter_source", "数据平台手工录入")
|
||||
.doQuery(EngineParamDetailPojo.class));
|
||||
} else {
|
||||
detailPojos.addAll(sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
@ -360,6 +362,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
||||
.eq("version_status", code)
|
||||
.eq("subsystem_name", subsystem)
|
||||
.eq("parts_name", type)
|
||||
.eq("parameter_source", "数据平台手工录入")
|
||||
.doQuery(EngineParamDetailPojo.class));
|
||||
// 加权限先注释 List<EngineParamDetailPojo> pojoList = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
// .eq("engine_model_id", engineModelID)
|
||||
@ -716,6 +719,53 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
||||
.doQuery(TemplateAndParameter.class);
|
||||
List<String> pIds = templateAndParameters.stream().map(x -> x.getParameterId()).collect(Collectors.toList());
|
||||
|
||||
List<Parameter> parameterList = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.in("id", pIds)
|
||||
.doQuery(Parameter.class);
|
||||
//不需要TC数据来源的参数
|
||||
parameterList = parameterList.stream().filter(x -> {
|
||||
if (ObjectUtils.isEmpty(x.getParameterSource())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}).collect(Collectors.toList());
|
||||
if (ObjectUtils.isEmpty(parameterList)) {
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
return parameterList;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Parameter> selectNeedFillByNewVersion() {
|
||||
//读取已通过审核的版本 DRAFT(草稿)、APPROVING(审批中)、COMPLETE(已完成)、RETURNED(已撤回)、REJECTED(已拒绝)
|
||||
List<Template> templates =
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("status", "COMPLETE")
|
||||
.doQuery(Template.class);
|
||||
if (ObjectUtils.isEmpty(templates)) {
|
||||
throw new RuntimeException("未找到未找到已发布的参数模板");
|
||||
}
|
||||
//查找每个模板最新版本
|
||||
Map<String, Template> latestTemplateMap = templates.stream()
|
||||
// 按模板ID分组
|
||||
.collect(Collectors.groupingBy(
|
||||
Template::getTemplateName,
|
||||
// 每组内按版本号降序,取第一个(最新版本)
|
||||
Collectors.collectingAndThen(
|
||||
Collectors.maxBy(Comparator.comparingInt(Template::getVersion)),
|
||||
Optional::get
|
||||
)
|
||||
));
|
||||
ArrayList<Template> templatesMax = new ArrayList<>(latestTemplateMap.values());
|
||||
List<String> strings = templatesMax.stream().map(x -> x.getId()).collect(Collectors.toList());
|
||||
//查找最新模板关联的参数
|
||||
List<TemplateAndParameter> templateAndParameters =
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.in("template_id", strings)
|
||||
.doQuery(TemplateAndParameter.class);
|
||||
List<String> pIds = templateAndParameters.stream().map(x -> x.getParameterId()).collect(Collectors.toList());
|
||||
|
||||
List<Parameter> parameterList = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.in("id", pIds)
|
||||
.doQuery(Parameter.class);
|
||||
|
||||
@ -11,6 +11,7 @@ import com.xdap.self_development.controller.request.AnalysisRequest;
|
||||
import com.xdap.self_development.controller.request.AnalysisVerRequest;
|
||||
import com.xdap.self_development.controller.request.ModelComparisonExportRequest;
|
||||
import com.xdap.self_development.controller.request.ModelItem;
|
||||
import com.xdap.self_development.exception.CommonException;
|
||||
import com.xdap.self_development.pojo.*;
|
||||
import com.xdap.self_development.service.DataEntryEngineModelService;
|
||||
import com.xdap.self_development.service.EngineParamDetailService;
|
||||
@ -429,7 +430,7 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
log.error("导出失败:用户ID为空");
|
||||
throw new RuntimeException("导出失败:用户ID不能为空");
|
||||
}
|
||||
if (subsystemParts == null) {
|
||||
if (subsystemParts.isEmpty()) {
|
||||
log.error("导出失败:子系统部件列表为null");
|
||||
throw new RuntimeException("导出失败:子系统部件列表不能为空");
|
||||
}
|
||||
@ -492,6 +493,7 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
List<EngineParamDetailPojo> allPojos = objectMapper.readValue(cachedData,
|
||||
objectMapper.getTypeFactory().constructCollectionType(List.class, EngineParamDetailPojo.class));
|
||||
|
||||
|
||||
// 根据子系统部件筛选数据
|
||||
List<EngineParamDetailPojo> filteredPojos = allPojos.stream()
|
||||
.filter(pojo -> subsystemParts.stream().anyMatch(part -> {
|
||||
@ -500,6 +502,10 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
String subsystem = parts[0];
|
||||
String partsName = parts[1];
|
||||
|
||||
if (!request.getParameterIds().isEmpty()) {
|
||||
return request.getParameterIds().contains(pojo.getParameterId());
|
||||
}
|
||||
|
||||
// 如果部件名为"/",表示只匹配子系统
|
||||
if ("/".equals(partsName)) {
|
||||
return subsystem.equals(pojo.getSubsystemName());
|
||||
@ -533,7 +539,10 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
String errorMsg = String.format("从Redis读取机型%s数据失败: %s", model.getModelId(), e.toString());
|
||||
String errorMsg = null;
|
||||
if (model != null) {
|
||||
errorMsg = String.format("从Redis读取机型%s数据失败: %s", model.getModelId(), e.toString());
|
||||
}
|
||||
log.error(errorMsg, e); // 记录完整异常栈
|
||||
throw new RuntimeException(errorMsg, e); // 传递异常根因
|
||||
}
|
||||
@ -610,8 +619,8 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
DataEntryEngineModelPojo dataEntryEngineModelPojo = engineModelService.selectBymodelId(analysisRequest.getEngineModelID());
|
||||
|
||||
// 预加载所有参数信息
|
||||
Map<String, List<Parameter>> parameterMap = parameters.stream()
|
||||
.collect(Collectors.groupingBy(p -> p.getPartsName() + "&&" + p.getParameterName()));
|
||||
// Map<String, List<Parameter>> parameterMap = parameters.stream()
|
||||
// .collect(Collectors.groupingBy(p -> p.getPartsName() + "&&" + p.getParameterName()));
|
||||
|
||||
//解析所有子系统-零部件对
|
||||
List<Map.Entry<String, String>> subsystemPartsPairs = analysisRequest.getSubsystemParts().stream()
|
||||
@ -633,6 +642,7 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
.eq("major_version", analysisRequest.getParameterVersion())
|
||||
.eq("subsystem_name", subsystemPartsPair.getKey())
|
||||
.eq("parts_name", subsystemPartsPair.getValue())
|
||||
.ne("parameter_source", "TC分类表")
|
||||
.doQuery(EngineParamDetailPojo.class);
|
||||
if (ObjectUtils.isNotEmpty(pojoList)) {
|
||||
systemDataList.addAll(pojoList);
|
||||
@ -647,7 +657,20 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
// allPojos.addAll(filteredSystemData);
|
||||
|
||||
//批量查询所有TC数据
|
||||
List<String> uniquePartsNames = subsystemPartsPairs.stream()
|
||||
Map<String, List<Parameter>> parameterMapTc = parameters.stream()
|
||||
.filter(x-> Objects.equals(x.getParameterSource(), "TC分类表"))
|
||||
.collect(Collectors.groupingBy(p -> p.getPartsName() + "&&" + p.getParameterName()));
|
||||
List<Map.Entry<String, String>> subsystemPartsPairsTc = analysisRequest.getSubsystemParts().stream()
|
||||
.map(subsystemType -> {
|
||||
if (subsystemType.split("-").length != 2) {
|
||||
throw new RuntimeException("查询条件异常,需子系统-零部件名称,若零部件为空则传入“/ ”");
|
||||
}
|
||||
String subsystem = subsystemType.split("-")[0];
|
||||
String parts_name = subsystemType.split("-")[1];
|
||||
return new AbstractMap.SimpleEntry<>(subsystem, parts_name);
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
List<String> uniquePartsNames = subsystemPartsPairsTc.stream()
|
||||
.map(Map.Entry::getValue)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
@ -680,7 +703,7 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
}
|
||||
|
||||
// 处理每个子系统-零部件对
|
||||
for (Map.Entry<String, String> pair : subsystemPartsPairs) {
|
||||
for (Map.Entry<String, String> pair : subsystemPartsPairsTc) {
|
||||
String subsystem = pair.getKey();
|
||||
String partsName = pair.getValue();
|
||||
|
||||
@ -698,15 +721,16 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
|
||||
|
||||
//批量处理分类属性
|
||||
List<EngineParamDetailPojo> tcDataPojos = allAttributes.stream()
|
||||
.filter(attr -> parameterMap.containsKey(partsName + "&&" + attr.getIdattrtbutehame()))
|
||||
.filter(attr -> parameterMapTc.containsKey(partsName + "&&" + attr.getIdattrtbutehame()))
|
||||
.map(attr -> {
|
||||
Parameter param = parameterMap.get(partsName + "&&" + attr.getIdattrtbutehame()).get(0);
|
||||
Parameter param = parameterMapTc.get(partsName + "&&" + attr.getIdattrtbutehame()).get(0);
|
||||
EngineParamDetailPojo pojo = new EngineParamDetailPojo();
|
||||
pojo.setEngineModelId(dataEntryEngineModelPojo.getId());
|
||||
pojo.setPartsName(param.getPartsName());
|
||||
pojo.setSubsystemName(param.getSubsystemName());
|
||||
pojo.setParameterName(param.getParameterName());
|
||||
pojo.setParameterValue(attr.getFieldvalue());
|
||||
pojo.setParameterId(param.getId());
|
||||
return pojo;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@ -489,7 +489,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
bd.getBusinessDatabase().doInsert(todoTask);
|
||||
}
|
||||
// 更新发起和已办
|
||||
myself.updateTasks(flow, Objects.equals(status, "REJECTED") ? "已拒绝" : "已撤回", 0);
|
||||
myself.updateTasks(flow, Objects.equals(status, "REJECTED") ? "已拒绝" : "已撤回", 0, node);
|
||||
}
|
||||
|
||||
// 处理下一节点流转
|
||||
@ -530,7 +530,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.update("published_time", Timestamp.valueOf(LocalDateTime.now()))
|
||||
.doUpdate(Template.class);
|
||||
// 待办环节修改
|
||||
myself.updateTasks(flow, "已完成", 0);
|
||||
myself.updateTasks(flow, "已完成", 0, nextNode);
|
||||
// 更新机型版本
|
||||
// dataEntryEngineModelService.updateModelForNewVersion();
|
||||
} else {
|
||||
@ -595,7 +595,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
}
|
||||
|
||||
// 更新已办和发起的状态
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn);
|
||||
myself.updateTasks(flow, node.getNodeName(), enableReturn, node);
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
bd.getBusinessDatabase().doBatchInsert(list);
|
||||
@ -707,15 +707,84 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
}
|
||||
|
||||
public void updateTasks(ApprovalFlow flow, String status, Integer enableReturn) {
|
||||
@Override
|
||||
public List<String> getEditableNodes(String flowId) {
|
||||
ApprovalFlow flow = bd.getBusinessDatabase()
|
||||
.eq("id", flowId)
|
||||
.ne("flow_status", "COMPLETE")
|
||||
.doQueryFirst(ApprovalFlow.class);
|
||||
|
||||
if (flow == null) {
|
||||
throw new CommonException("流程不存在");
|
||||
}
|
||||
|
||||
List<ApprovalConfigPojo> nodes = bd.getBusinessDatabase()
|
||||
.eq("approval_id", flow.getId())
|
||||
.gteq("node_order", flow.getCurrentNode())
|
||||
.doQuery(ApprovalConfigPojo.class);
|
||||
|
||||
if (nodes.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
return nodes.stream().map(ApprovalConfigPojo::getNodeName).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateNode(UpdateNodeForm form) {
|
||||
// 检查流程
|
||||
ApprovalFlow flow = bd.getBusinessDatabase()
|
||||
.eq("id", form.getFlowId())
|
||||
.ne("flow_status", "COMPLETE")
|
||||
.doQueryFirst(ApprovalFlow.class);
|
||||
|
||||
if (flow == null) {
|
||||
throw new CommonException("流程不存在");
|
||||
}
|
||||
|
||||
// 获取可更新流程节点名称
|
||||
List<String> enableEditNodes = getEditableNodes(form.getFlowId());
|
||||
// 将节点列表转换为 Map,方便后续查找
|
||||
Map<String, ApprovalNodeDTO> map = form.getNodeList().stream()
|
||||
.collect(Collectors.toMap(
|
||||
ApprovalNodeDTO::getNodeName,
|
||||
node -> node,
|
||||
(oldValue, newValue) -> oldValue
|
||||
));
|
||||
|
||||
// 更新节点前,先删除待办
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", form.getFlowId())
|
||||
.eq("is_delete", 0)
|
||||
.update("is_delete", 1)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
|
||||
// 遍历更新节点
|
||||
enableEditNodes.forEach(nodeName -> {
|
||||
if (map.containsKey(nodeName)) {
|
||||
ApprovalNodeDTO nodeForm = map.get(nodeName);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("approval_id", form.getFlowId())
|
||||
.eq("node_order", nodeForm.getNodeOrder())
|
||||
.eq("node_name", nodeForm.getNodeName())
|
||||
.update("assignees", JSON.toJSONString(nodeForm.getAssignees()))
|
||||
.doUpdate(ApprovalConfigPojo.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updateTasks(ApprovalFlow flow, String status, Integer enableReturn, ApprovalConfigPojo currentNode) {
|
||||
// 更新已办和发起的节点状态
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.update("current_node", status)
|
||||
.doUpdate(CompletedTaskPojo.class);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_node", status)
|
||||
.update("current_processor", currentNode == null ? "" : currentNode.getAssignees())
|
||||
.update("enable_return", enableReturn)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
}
|
||||
@ -901,7 +970,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
nodeView.setTodoUserName(getUserNames(JSON.parseArray(node.getAssignees()).toJavaList(String.class)));
|
||||
nodeView.setApprovalTime(reversedTime.get(0).getApprovalTime());
|
||||
nodeView.setOpinions(records.stream().map(approvalRecord ->
|
||||
getUserNames(Collections.singletonList(approvalRecord.getUserId())) + ":" + approvalRecord.getOpinion()).collect(Collectors.toList()));
|
||||
getUserNames(Collections.singletonList(approvalRecord.getUserId())) + ":" + (approvalRecord.getOpinion() == null ? "" : approvalRecord.getOpinion())).collect(Collectors.toList()));
|
||||
} else {
|
||||
// 节点未完成
|
||||
nodeView.setNodeOrder(node.getNodeOrder());
|
||||
|
||||
@ -161,14 +161,14 @@ public class TodoTaskServiceImpl implements TodoTaskService {
|
||||
public PageResultDTO<CompletedTaskPojo> selectByresPersonCompletedPage(TodoTaskRequest taskRequest) {
|
||||
|
||||
PageResultDTO<CompletedTaskPojo> pageResultDTO = new PageResultDTO<>();
|
||||
PageQueryResult<CompletedTaskPojo> queryResult = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
List<CompletedTaskPojo> completedTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("owner_id", taskRequest.getPersonId())
|
||||
.eq("is_delete", 0)
|
||||
.orderBy("creation_date", "desc")
|
||||
.doPageQuery(taskRequest.getPage(), taskRequest.getSize(), CompletedTaskPojo.class);
|
||||
.doQuery(CompletedTaskPojo.class);
|
||||
|
||||
List<CompletedTaskPojo> tods = new ArrayList<>();
|
||||
for (CompletedTaskPojo taskPojo : queryResult.getResult()) {
|
||||
for (CompletedTaskPojo taskPojo : completedTaskPojos) {
|
||||
CompletedTaskPojo taskPojo1 = new CompletedTaskPojo();
|
||||
String currentProcessor = taskPojo.getCurrentProcessor();
|
||||
BeanUtils.copyProperties(taskPojo, taskPojo1);
|
||||
@ -199,8 +199,14 @@ public class TodoTaskServiceImpl implements TodoTaskService {
|
||||
.maxBy(Comparator.comparing(CompletedTaskPojo::getCreationDate))))
|
||||
.values());
|
||||
collect.sort(Comparator.comparing(CompletedTaskPojo::getCreationDate).reversed());
|
||||
pageResultDTO.setList(collect);
|
||||
pageResultDTO.setTotalCount(queryResult.getCount());
|
||||
|
||||
// 分页
|
||||
int fromIndex = (taskRequest.getPage() - 1) * taskRequest.getSize();
|
||||
int toIndex = Math.min(fromIndex + taskRequest.getSize(), collect.size());
|
||||
List<CompletedTaskPojo> paginatedList = collect.subList(fromIndex, toIndex);
|
||||
|
||||
pageResultDTO.setList(paginatedList);
|
||||
pageResultDTO.setTotalCount(completedTaskPojos.size());
|
||||
return pageResultDTO;
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user