From 97a288581a281eb50f8db96fc99b462494240567 Mon Sep 17 00:00:00 2001 From: "ys.git" <18439391935@163.com> Date: Sun, 14 Dec 2025 19:53:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=88=86=E6=9E=90=E5=BC=80?= =?UTF-8?q?=E5=8F=91=EF=BC=8C=E5=8F=82=E6=95=B0=E6=95=B0=E5=80=BC=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ActivitiProcessController.java | 8 +++ .../controller/AnalysisCommonController.java | 7 ++- .../request/ApprovalByPlatformRequest.java | 21 +++++++ .../pojo/view/AnalysisModelParamterView.java | 14 ++++- .../AnalysisModelParamterViewAndParam.java | 12 ++++ .../service/ActivitiProcessService.java | 2 + .../AnalysisCommonParametersService.java | 6 +- .../impl/ActivitiProcessServiceImpl.java | 26 ++++++++- .../AnalysisCommonParametersServiceImpl.java | 57 ++++++++++++++++--- .../impl/EngineParamDetailServiceImpl.java | 12 +++- .../service/impl/TodoTaskServiceImpl.java | 12 ++-- 11 files changed, 150 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/xdap/self_development/controller/request/ApprovalByPlatformRequest.java create mode 100644 src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterViewAndParam.java diff --git a/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java b/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java index cf1525c..9059f0f 100644 --- a/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java +++ b/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java @@ -2,6 +2,7 @@ package com.xdap.self_development.controller; import com.definesys.mpaas.common.http.Response; +import com.xdap.self_development.controller.request.ApprovalByPlatformRequest; import com.xdap.self_development.controller.request.ApprovalNodeRequest; import com.xdap.self_development.controller.request.EngineReviewListRequest; import com.xdap.self_development.pojo.dto.*; @@ -34,6 +35,13 @@ public class ActivitiProcessController { List msg = activitiProcessService.initiateApproval(modelID,userID); return Response.ok().data(msg); }; +// //平台发起审批时生成本地审批流 +// @PostMapping(value = "/startActivitiByPlatform") +// public Response startActivitiByPlatform(@RequestBody ApprovalByPlatformRequest request) { +// activitiProcessService.startActivitiByPlatform(request); +// return Response.ok(); +// } + //正式发起审批 @PostMapping(value = "/startActiviti") public Response startActiviti(@RequestBody ApprovalNodeRequest approvalNodeRequest) { diff --git a/src/main/java/com/xdap/self_development/controller/AnalysisCommonController.java b/src/main/java/com/xdap/self_development/controller/AnalysisCommonController.java index a2d9c92..268f6da 100644 --- a/src/main/java/com/xdap/self_development/controller/AnalysisCommonController.java +++ b/src/main/java/com/xdap/self_development/controller/AnalysisCommonController.java @@ -4,6 +4,7 @@ import com.definesys.mpaas.common.http.Response; import com.xdap.self_development.controller.request.AnalysisRequest; import com.xdap.self_development.controller.request.ReportRequest; import com.xdap.self_development.pojo.view.AnalysisModelParamterView; +import com.xdap.self_development.pojo.view.AnalysisModelParamterViewAndParam; import com.xdap.self_development.service.AnalysisCommonParametersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -20,7 +21,7 @@ public class AnalysisCommonController { //机型常用返回机型数据 暂未使用 @PostMapping("/selectModelParamByCommon") public Response selectModelParamByCommon(@RequestBody AnalysisRequest analysisRequest) { - ArrayList lists = analysisCommonParametersService.selectModelParamByCommon(analysisRequest); + ArrayList lists = analysisCommonParametersService.selectModelParamByCommon(analysisRequest); return Response.ok().data(lists); } @@ -28,8 +29,8 @@ public class AnalysisCommonController { //统计分析图表 @PostMapping("/showReport") public Response showReport(@RequestBody ReportRequest request) { - ArrayList lists = analysisCommonParametersService.showReport(request); - return Response.ok().data(lists); + AnalysisModelParamterViewAndParam andParam = analysisCommonParametersService.showReport(request); + return Response.ok().data(andParam); } // //模糊查询下拉列表 diff --git a/src/main/java/com/xdap/self_development/controller/request/ApprovalByPlatformRequest.java b/src/main/java/com/xdap/self_development/controller/request/ApprovalByPlatformRequest.java new file mode 100644 index 0000000..ac8fcc7 --- /dev/null +++ b/src/main/java/com/xdap/self_development/controller/request/ApprovalByPlatformRequest.java @@ -0,0 +1,21 @@ +package com.xdap.self_development.controller.request; + + +import lombok.Data; + +import java.util.List; + + +@Data +public class ApprovalByPlatformRequest { + + //document,model,申请人,当前状态,当前审批人 + private String documentID; + private String modelID; + private String applicant; + private String statusDescription; + private String nodeName; + private List approverPersons; + + +} diff --git a/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterView.java b/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterView.java index 8eca65e..1d16cb6 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterView.java @@ -7,7 +7,15 @@ import java.util.List; @Data public class AnalysisModelParamterView { - String modelID; - String modelName; - List pojos; + private String modelID; + private String modelName; + private String plate; + private String platform; + private String series; + private String projectName; + private String projectNumber; + private String emission; + private String burnType; + private String engineCapacity; + List pojos; } diff --git a/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterViewAndParam.java b/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterViewAndParam.java new file mode 100644 index 0000000..f95a858 --- /dev/null +++ b/src/main/java/com/xdap/self_development/pojo/view/AnalysisModelParamterViewAndParam.java @@ -0,0 +1,12 @@ +package com.xdap.self_development.pojo.view; + +import com.xdap.self_development.pojo.EngineParamDetailPojo; +import lombok.Data; + +import java.util.List; + +@Data +public class AnalysisModelParamterViewAndParam { + List paramList; + List pojos; +} diff --git a/src/main/java/com/xdap/self_development/service/ActivitiProcessService.java b/src/main/java/com/xdap/self_development/service/ActivitiProcessService.java index d9afd95..8085baf 100644 --- a/src/main/java/com/xdap/self_development/service/ActivitiProcessService.java +++ b/src/main/java/com/xdap/self_development/service/ActivitiProcessService.java @@ -1,6 +1,7 @@ package com.xdap.self_development.service; +import com.xdap.self_development.controller.request.ApprovalByPlatformRequest; import com.xdap.self_development.controller.request.ApprovalNodeRequest; import com.xdap.self_development.pojo.dto.ActivitiDataAndRecordDTO; import com.xdap.self_development.pojo.dto.ActivitiDataDTO; @@ -18,4 +19,5 @@ public interface ActivitiProcessService { //操作 String handleApproval(HandleApprovalDTO handleApprovalDTO); + void startActivitiByPlatform(ApprovalByPlatformRequest request); } diff --git a/src/main/java/com/xdap/self_development/service/AnalysisCommonParametersService.java b/src/main/java/com/xdap/self_development/service/AnalysisCommonParametersService.java index fbb6af4..30ae374 100644 --- a/src/main/java/com/xdap/self_development/service/AnalysisCommonParametersService.java +++ b/src/main/java/com/xdap/self_development/service/AnalysisCommonParametersService.java @@ -9,13 +9,15 @@ import com.xdap.self_development.pojo.dto.ActivitiDataDTO; import com.xdap.self_development.pojo.dto.HandleApprovalDTO; import com.xdap.self_development.pojo.dto.ShowActivitiDTO; import com.xdap.self_development.pojo.view.AnalysisModelParamterView; +import com.xdap.self_development.pojo.view.AnalysisModelParamterViewAndParam; import java.util.ArrayList; import java.util.List; public interface AnalysisCommonParametersService { //查询常用参数返回机型数据 - ArrayList selectModelParamByCommon(AnalysisRequest analysisRequest); + ArrayList selectModelParamByCommon(AnalysisRequest analysisRequest); + + AnalysisModelParamterViewAndParam showReport(ReportRequest analysisRequest); - ArrayList showReport(ReportRequest analysisRequest); } diff --git a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java index 44e10c4..8ef5021 100644 --- a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java @@ -2,6 +2,7 @@ package com.xdap.self_development.service.impl; import com.definesys.mpaas.query.MpaasQueryFactory; import com.xdap.api.moudle.user.pojo.XdapUsers; +import com.xdap.self_development.controller.request.ApprovalByPlatformRequest; import com.xdap.self_development.controller.request.ApprovalNodeRequest; import com.xdap.self_development.enums.CurrentNodeEnum; import com.xdap.self_development.enums.ParamOperation; @@ -48,7 +49,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { engineParamDetailPojos = engineParamDetailService.selectByModelNewVersion(modelID) .stream() .filter(x -> ParamOperation.UPDATE.toString() - .equals(x.getOperation())).collect(Collectors.toList()); + .equals(x.getOperation()) && userID.equals(x.getLastUpdatedBy() == null ? "" : x.getLastUpdatedBy())).collect(Collectors.toList()); if (ObjectUtils.isEmpty(engineParamDetailPojos)) { throw new RuntimeException(); } @@ -251,7 +252,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { EngineReviewListPojo reviewListPojo = sw.buildFromDatasource("xdap_app_223770822127386625") .eq("id", approvalId).doQuery(EngineReviewListPojo.class).get(0); if (reviewListPojo == null || reviewListPojo.getStatusCode() == ParamValueVersionEnum.REFUSE.getCode() - || reviewListPojo.getStatusCode() == ParamValueVersionEnum.PASSED.getCode()) { + || reviewListPojo.getStatusCode() == ParamValueVersionEnum.PASSED.getCode()) { throw new RuntimeException("无效的审批记录请检查是否已经审批完成或被拒绝"); } //查看当前人是否有权限审批 @@ -463,6 +464,27 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { return "已审批"; } + @Override + public void startActivitiByPlatform(ApprovalByPlatformRequest request) { + + DataEntryEngineModelPojo dataEntryEngineModelPojo = dataEntryEngineModelService.selectBymodelId(request.getModelID()); + EngineReviewListPojo engineReviewListPojo = new EngineReviewListPojo(); + engineReviewListPojo.setId(request.getDocumentID()); + engineReviewListPojo.setModelId(request.getModelID()); + engineReviewListPojo.setModelName(dataEntryEngineModelPojo.getModelName()); + engineReviewListPojo.setYcOrOth(dataEntryEngineModelPojo.getYcOrOth()); + engineReviewListPojo.setProcessTopic(processTopic); + engineReviewListPojo.setStatusCode(ParamValueVersionEnum.UNDER.getCode()); + engineReviewListPojo.setApplicant(request.getApplicant()); + engineReviewListPojo.setStatusDescription(ParamValueVersionEnum.UNDER.getDesc()); + engineReviewListPojo.setNodeName(request.getNodeName()); + engineReviewListPojo.setApproverPersons(String.join(",", request.getApproverPersons())); + engineReviewListPojo.setCreationDate(new Date()); + engineReviewListPojo.setCreatedBy(request.getApplicant()); + sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(engineReviewListPojo); + + } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 public void batchInsertParamDetail(List engineParamDetailPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(engineParamDetailPojos); diff --git a/src/main/java/com/xdap/self_development/service/impl/AnalysisCommonParametersServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/AnalysisCommonParametersServiceImpl.java index f75cbf1..8667a22 100644 --- a/src/main/java/com/xdap/self_development/service/impl/AnalysisCommonParametersServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/AnalysisCommonParametersServiceImpl.java @@ -3,6 +3,7 @@ package com.xdap.self_development.service.impl; import java.util.regex.Matcher; import java.util.regex.Pattern; + import com.xdap.self_development.config.BusinessDatabase; import com.xdap.self_development.controller.request.*; import com.xdap.self_development.enums.ParamPermissionEnum; @@ -10,6 +11,7 @@ import com.xdap.self_development.exception.CommonException; import com.xdap.self_development.pojo.*; import com.xdap.self_development.pojo.dto.PageResultDTO; import com.xdap.self_development.pojo.view.AnalysisModelParamterView; +import com.xdap.self_development.pojo.view.AnalysisModelParamterViewAndParam; import com.xdap.self_development.pojo.view.MenuParamView; import com.xdap.self_development.service.*; import lombok.extern.slf4j.Slf4j; @@ -34,6 +36,8 @@ public class AnalysisCommonParametersServiceImpl implements AnalysisCommonParame EngineParamDetailService engineParamDetailService; @Autowired DataEntryEngineModelService dataEntryEngineModelService; + private static final Pattern ALL_NUMBER_PATTERN = Pattern.compile("^[-+]?\\d+(\\.\\d+)?([Ee][-+]?\\d+)?$"); + @Override public ArrayList selectModelParamByCommon(AnalysisRequest analysisRequest) { @@ -67,11 +71,12 @@ public class AnalysisCommonParametersServiceImpl implements AnalysisCommonParame analysisModelParamterViews.add(analysisModelParamterView); } + return analysisModelParamterViews; } @Override - public ArrayList showReport(ReportRequest request) { + public AnalysisModelParamterViewAndParam showReport(ReportRequest request) { List queryResult = businessDatabase.getBusinessDatabase() // .eq("yc_or_oth", request.getYcOrOth()) @@ -89,22 +94,58 @@ public class AnalysisCommonParametersServiceImpl implements AnalysisCommonParame Double engineCapacityMin = request.getEngineCapacityMin(); Double engineCapacityMax = request.getEngineCapacityMax(); - List engineModelPojos = queryResult.stream().filter(dataEntryEngineModelPojo -> { - String engineCapacity = dataEntryEngineModelPojo.getEngineCapacity(); - Double ec = extractDisplacement(engineCapacity); - return (Double.compare(ec, engineCapacityMin) >= 0 && Double.compare(ec, engineCapacityMax) < 0); - }).collect(Collectors.toList()); - + List engineModelPojos = queryResult; + if (ObjectUtils.isNotEmpty(engineCapacityMin) && ObjectUtils.isNotEmpty(engineCapacityMax)) { + engineModelPojos = queryResult.stream().filter(dataEntryEngineModelPojo -> { + String engineCapacity = dataEntryEngineModelPojo.getEngineCapacity(); + Double ec = extractDisplacement(engineCapacity); + return (Double.compare(ec, engineCapacityMin) >= 0 && Double.compare(ec, engineCapacityMax) < 0); + }).collect(Collectors.toList()); + } + AnalysisModelParamterViewAndParam andParam = new AnalysisModelParamterViewAndParam(); ArrayList analysisModelParamterViews = new ArrayList<>(); + for (DataEntryEngineModelPojo engineModelPojo : engineModelPojos) { AnalysisModelParamterView analysisModelParamterView = new AnalysisModelParamterView(); List pojoList = engineParamDetailService.selectByModelNewVersion(engineModelPojo.getId()); + pojoList = pojoList.stream().filter(x->ObjectUtils.isNotEmpty(x.getParameterValue()) && isNumber(x.getParameterValue())).collect(Collectors.toList()); analysisModelParamterView.setModelID(engineModelPojo.getId()); analysisModelParamterView.setModelName(engineModelPojo.getModelName()); + BeanUtils.copyProperties(engineModelPojo, analysisModelParamterView); analysisModelParamterView.setPojos(pojoList); analysisModelParamterViews.add(analysisModelParamterView); } - return analysisModelParamterViews; + List list = new ArrayList<>(); + for (AnalysisModelParamterView analysisModelParamterView : analysisModelParamterViews) { + analysisModelParamterView.getPojos().stream().forEach(x->list.add(x.getParameterName())); + } + List strings = list.stream().distinct().collect(Collectors.toList()); + andParam.setParamList(strings); + andParam.setPojos(analysisModelParamterViews); + return andParam; + } + + /** + * 验证所有数值类型 + */ + public static boolean isNumber(String str) { + if (str == null || str.trim().isEmpty()) { + return false; + } + return ALL_NUMBER_PATTERN.matcher(str.trim()).matches(); + } + + public List selectParamOnlyNum(ArrayList analysisModelParamterViews) { + List list = new ArrayList<>(); + for (AnalysisModelParamterView analysisModelParamterView : analysisModelParamterViews) { + for (EngineParamDetailPojo pojo : analysisModelParamterView.getPojos()) { + String parameterValue = pojo.getParameterValue(); + if (ObjectUtils.isEmpty(parameterValue) && isNumber(parameterValue)) { + list.add(pojo.getParameterName()); + } + } + } + return list; } public static Double extractDisplacement(String displacementStr) { diff --git a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java index cd0de68..260a0a7 100644 --- a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.definesys.mpaas.query.MpaasQueryFactory; import com.xdap.api.moudle.user.pojo.XdapUsers; +import com.xdap.runtime.service.RuntimeAppContextService; import com.xdap.self_development.common.UserPermissionGetter; import com.xdap.self_development.controller.request.EngineParamDetailExcel; import com.xdap.self_development.controller.request.EngineParamDetailRequest; @@ -25,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; @@ -55,6 +57,8 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { private ResponsiblePerService responsiblePerService; @Autowired UserPermissionGetter userPermissionGetter; + @Autowired + private RuntimeAppContextService runtimeAppContextService; private Integer versionNumber = 0; private String createdBy = "Excel导入"; @@ -163,7 +167,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { public Map>> selectParamListAndModel(String modelID) { HashMap>> map = new HashMap<>(); DataEntryEngineModelPojo dataEntryEngineModelPojo = dataEntryEngineModelService.selectBymodelId(modelID); - String s =dataEntryEngineModelPojo.getProductNumber(); + String s = dataEntryEngineModelPojo.getProductNumber(); HashMap> stringListMap = selectParamList(modelID); map.put(s, stringListMap); return map; @@ -382,7 +386,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { */ @Override public void updateParamValue(List engineParamDetailPojos) { - + String currentUserId = runtimeAppContextService.getCurrentUserId(); for (EngineParamDetailPojo engineParamDetailPojo : engineParamDetailPojos) { @@ -394,6 +398,8 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { .update("minor_version", engineParamDetailPojo.getParameterValue()) .update("version_status", ParamValueVersionEnum.DRAFT.getCode()) .update("operation", String.valueOf(ParamOperation.UPDATE)) + .update("last_updated_by", currentUserId) + .update("last_update_date", new Date()) .rowid("id", engineParamDetailPojoById.getId()) .doUpdate(EngineParamDetailPojo.class); } else if (engineParamDetailPojo.getOperation().equals(String.valueOf(ParamOperation.DELETE))) { @@ -402,6 +408,8 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { .update("is_delete", "1") .update("version_status", ParamValueVersionEnum.DRAFT.getCode()) .update("operation", String.valueOf(ParamOperation.DELETE)) + .update("last_updated_by", currentUserId) + .update("last_update_date", new Date()) .rowid("id", id) .doUpdate(EngineParamDetailPojo.class); diff --git a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java index f01b151..d30fb95 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java @@ -2,6 +2,7 @@ package com.xdap.self_development.service.impl; import com.definesys.mpaas.query.MpaasQueryFactory; +import com.definesys.mpaas.query.db.PageQueryResult; import com.xdap.api.moudle.user.pojo.XdapUsers; import com.xdap.self_development.controller.request.TodoReturnRequest; import com.xdap.self_development.controller.request.TodoTaskRequest; @@ -95,16 +96,13 @@ public class TodoTaskServiceImpl implements TodoTaskService { // } // } PageResultDTO pageResultDTO = new PageResultDTO(); - List todoTaskPojosTotal = sw.buildFromDatasource("xdap_app_223770822127386625") + PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") .eq("owner_id", todoTaskRequest.getPersonId()) .eq("is_delete", 0) - .doQuery(TodoTaskPojo.class); - List todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625") - .eq("owner_id", todoTaskRequest.getPersonId()) - .eq("is_delete", 0) - .doPageQuery(todoTaskRequest.getPage(), todoTaskRequest.getSize(), TodoTaskPojo.class).getResult(); + .doPageQuery(todoTaskRequest.getPage(), todoTaskRequest.getSize(), TodoTaskPojo.class); + List todoTaskPojos = queryResult.getResult() ; pageResultDTO.setList(todoTaskPojos); - pageResultDTO.setTotalCount(todoTaskPojosTotal.size()); + pageResultDTO.setTotalCount(queryResult.getCount()); return pageResultDTO; }