From f77217c85161d5c46db69a1ff7dd091ee82b4d4a Mon Sep 17 00:00:00 2001 From: RTGK Date: Sun, 28 Apr 2024 13:48:41 +0800 Subject: [PATCH] first commit --- .../abnl-RTHIT-api-extend.iml | 316 ++++++++++ abnl-RTHIT-api-extend/pom.xml | 45 ++ .../com/qzing/ime/abnl/AbnlEventResponse.java | 28 + .../com/qzing/ime/abnl/BaseAbnlRequest.java | 18 + .../com/qzing/ime/abnl/BaseAbnlResponse.java | 82 +++ .../qzing/ime/abnl/BaseBatchAbnlRequest.java | 20 + .../com/qzing/ime/abnl/BaseOptResponse.java | 25 + .../com/qzing/ime/abnl/BaseResponse.java | 19 + .../com/qzing/ime/abnl/BatchResponse.java | 23 + .../extend/com/qzing/ime/abnl/JsonUtil.java | 32 + .../abnlevent/api/AbnlEventFeignClient.java | 94 +++ .../model/constant/AbnlEventConstant.java | 37 ++ .../abnlevent/model/enums/BusiStatusEnum.java | 47 ++ .../model/enums/HandleResultEnum.java | 21 + .../model/enums/ProcessRecordEnum.java | 44 ++ .../model/enums/ResponseResultEnum.java | 21 + .../model/request/AbnlEventCloseRequest.java | 17 + .../model/request/AbnlEventCreateRequest.java | 33 ++ .../request/AbnlEventFinishHandleRequest.java | 21 + .../AbnlEventFinishRespondRequest.java | 25 + .../request/AbnlEventStartHandleRequest.java | 24 + .../model/request/AbnlEventUpdateRequest.java | 29 + .../model/request/AbnlRepairTaskRequest.java | 63 ++ .../model/request/EquipAbnlDataRequest.java | 16 + .../api/AbnlUserRelationFeignClient.java | 22 + .../constant/AbnlUserRelationConstant.java | 41 ++ .../model/enums/AbnlTypeEnum.java | 64 ++ .../model/enums/BusiTypeEnum.java | 25 + .../AbnlUserRelationCreateRequest.java | 17 + .../AbnlUserRelationUpdateRequest.java | 18 + .../model/request/BaseBatchRequest.java | 20 + .../handlemode/api/HandleModeFeignClient.java | 21 + .../model/enums/HandleModeEnum.java | 21 + .../model/enums/OtherHandleModeEnum.java | 8 + .../model/enums/RepairHandleModeEnum.java | 17 + .../request/HandleModeCreateRequest.java | 17 + .../request/HandleModeUpdateRequest.java | 17 + .../ime/abnl/dashboard/dto/AbnlException.java | 29 + .../abnl/dashboard/dto/IotEquipAbnlDto.java | 22 + .../dashboard/dto/IotEquipAbnlTypeDto.java | 23 + .../dto/IotResponseEquipAbnlTypeDto.java | 17 + .../api/EarlyWarningNoticeClient.java | 49 ++ .../EarlyWarningNoticeCreateRequest.java | 133 +++++ .../EarlyWarningNoticeDetailRequest.java | 51 ++ .../EarlyWarningNoticeUpdateRequest.java | 133 +++++ .../EarlyWarningNoticeDetailResponse.java | 44 ++ .../response/EarlyWarningNoticeResponse.java | 137 +++++ .../abnl-RTHIT-service-extend.iml | 445 ++++++++++++++ abnl-RTHIT-service-extend/pom.xml | 58 ++ .../ime/abnl/abnlevent/CalendarTest.java | 82 +++ .../application/AbnlEventAppServiceImpl.java | 556 ++++++++++++++++++ .../controller/AbnlEventFeignClientImpl.java | 482 +++++++++++++++ .../abnl/abnlevent/dao/StdAbnlExtendDao.java | 47 ++ .../ime/abnl/abnlevent/entity/AbnlEvent.java | 40 ++ .../ime/abnl/abnlevent/entity/AbnlExtend.java | 30 + .../ime/abnl/abnlevent/entity/AbnlRecord.java | 30 + .../AbnlUserRelationAppServiceImpl.java | 12 + .../AbnlUserRelationFeignClientImpl.java | 15 + .../entity/AbnlUserRelation.java | 27 + .../application/HandleModeAppServiceImpl.java | 12 + .../controller/HandleModeFeignClientImpl.java | 17 + .../abnl/handlemode/entity/HandleMode.java | 27 + .../EarlyWarningNoticeService.java | 40 ++ .../EarlyWarningNoticeServiceImpl.java | 188 ++++++ .../EarlyWarningNoticeClientImpl.java | 67 +++ .../dao/EarlyWarningNoticeDao.java | 15 + .../dao/EarlyWarningNoticeDetailDao.java | 10 + .../entity/EarlyWarningNotice.java | 152 +++++ .../entity/EarlyWarningNoticeDetail.java | 51 ++ abnl-RTHIT-service-parent.iml | 12 + .../abnl-RTHIT-service-start.iml | 505 ++++++++++++++++ abnl-RTHIT-service-start/pom.xml | 198 +++++++ .../ime/abnl/AbnlGlobalErrorController.java | 72 +++ .../ime/abnl/AbnlGlobalResponseHandler.java | 130 ++++ .../com/qzing/ime/abnl/StartApplication.java | 14 + .../src/main/resources/application.yml | 16 + .../src/main/resources/bootstrap.yml | 22 + .../src/main/resources/redisson.yaml | 18 + .../jpa/JpaRepositoryFactoryBeanExt.java | 54 ++ .../advance/jpa/JpaRepositoryFactoryExt.java | 71 +++ .../java/com/qzing/ime/abnl/ImeGenerator.java | 44 ++ .../com/qzing/ime/abnl/TestApplication.java | 13 + pom.xml | 57 ++ 83 files changed, 5675 insertions(+) create mode 100644 abnl-RTHIT-api-extend/abnl-RTHIT-api-extend.iml create mode 100644 abnl-RTHIT-api-extend/pom.xml create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/AbnlEventResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseBatchAbnlRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseOptResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BatchResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/JsonUtil.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/api/AbnlEventFeignClient.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/constant/AbnlEventConstant.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/BusiStatusEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/HandleResultEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ProcessRecordEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ResponseResultEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCloseRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCreateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishHandleRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishRespondRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventStartHandleRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventUpdateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlRepairTaskRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/EquipAbnlDataRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/api/AbnlUserRelationFeignClient.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/constant/AbnlUserRelationConstant.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/AbnlTypeEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/BusiTypeEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationCreateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationUpdateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/BaseBatchRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/api/HandleModeFeignClient.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/HandleModeEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/OtherHandleModeEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/RepairHandleModeEnum.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeCreateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeUpdateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/AbnlException.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlDto.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlTypeDto.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotResponseEquipAbnlTypeDto.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/api/EarlyWarningNoticeClient.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeCreateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeDetailRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeUpdateRequest.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeDetailResponse.java create mode 100644 abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeResponse.java create mode 100644 abnl-RTHIT-service-extend/abnl-RTHIT-service-extend.iml create mode 100644 abnl-RTHIT-service-extend/pom.xml create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/CalendarTest.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/application/AbnlEventAppServiceImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/controller/AbnlEventFeignClientImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/dao/StdAbnlExtendDao.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlEvent.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlExtend.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlRecord.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/application/AbnlUserRelationAppServiceImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/controller/AbnlUserRelationFeignClientImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/entity/AbnlUserRelation.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/application/HandleModeAppServiceImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/controller/HandleModeFeignClientImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/entity/HandleMode.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeService.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeServiceImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/controller/EarlyWarningNoticeClientImpl.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDao.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDetailDao.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNotice.java create mode 100644 abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNoticeDetail.java create mode 100644 abnl-RTHIT-service-parent.iml create mode 100644 abnl-RTHIT-service-start/abnl-RTHIT-service-start.iml create mode 100644 abnl-RTHIT-service-start/pom.xml create mode 100644 abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalErrorController.java create mode 100644 abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalResponseHandler.java create mode 100644 abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/StartApplication.java create mode 100644 abnl-RTHIT-service-start/src/main/resources/application.yml create mode 100644 abnl-RTHIT-service-start/src/main/resources/bootstrap.yml create mode 100644 abnl-RTHIT-service-start/src/main/resources/redisson.yaml create mode 100644 abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryBeanExt.java create mode 100644 abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryExt.java create mode 100644 abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/ImeGenerator.java create mode 100644 abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/TestApplication.java create mode 100644 pom.xml diff --git a/abnl-RTHIT-api-extend/abnl-RTHIT-api-extend.iml b/abnl-RTHIT-api-extend/abnl-RTHIT-api-extend.iml new file mode 100644 index 0000000..317f40b --- /dev/null +++ b/abnl-RTHIT-api-extend/abnl-RTHIT-api-extend.iml @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-api-extend/pom.xml b/abnl-RTHIT-api-extend/pom.xml new file mode 100644 index 0000000..dce136f --- /dev/null +++ b/abnl-RTHIT-api-extend/pom.xml @@ -0,0 +1,45 @@ + + + + abnl-RTHIT-service-parent + com.qzing.mes.abnl + 1.0.1-SNAPSHOT + + 4.0.0 + abnl-RTHIT-api-extend + ${abnl-RTHIT-version} + + + + com.qzing + ime-abnl-api + ${abnl-version} + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + generate-sources + + add-source + + + + ${project.basedir}/src/main/extend + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/AbnlEventResponse.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/AbnlEventResponse.java new file mode 100644 index 0000000..dbfb356 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/AbnlEventResponse.java @@ -0,0 +1,28 @@ +package com.qzing.ime.abnl; + +import com.qzing.ime.framework.dto.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class AbnlEventResponse extends BaseRequest { + private String code; + private String type; + private Long phenomenonCode; + private Boolean mainAbnl; + private String busiType; + private String context; + //异常位置 + private String exceptionLocation; + //是否停机 + private Boolean isStop; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlRequest.java new file mode 100644 index 0000000..eae0db6 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlRequest.java @@ -0,0 +1,18 @@ +package com.qzing.ime.abnl; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-05 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class BaseAbnlRequest { + private Long gid; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlResponse.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlResponse.java new file mode 100644 index 0000000..78f3728 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseAbnlResponse.java @@ -0,0 +1,82 @@ +package com.qzing.ime.abnl; + +import com.qzing.ime.framework.dto.BaseBatchExtraResponse; +import com.qzing.ime.framework.dto.BaseBatchResponse; +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author: yuzhao + * @create: 2021-11-02 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("设备基础输出参数") +public class BaseAbnlResponse extends BaseBatchExtraResponse { + private Long gid; + private String code; + private String equipCode; + private String name; + private String message; + + public BaseAbnlResponse(Long gid, String code, String equipCode, String name, String message, Long successTotal, List errorData, List responseDtls) { + super(null,successTotal,errorData,responseDtls); + this.gid = gid; + this.code = code; + this.equipCode = equipCode; + this.name = name; + this.message = message; + } + + + public static BaseAbnlResponse success(Long gid, String equipCode, String name, String message){ + return new BaseAbnlResponse(gid,"0000",equipCode,name,message); + } + + public static BaseAbnlResponse success(Long gid, String equipCode, String message){ + return new BaseAbnlResponse(gid,"0000",equipCode,null,message); + } + + public static BaseAbnlResponse success(String equipCode, String message){ + return new BaseAbnlResponse(null,"0000",equipCode,null,message); + } + + public static BaseAbnlResponse success(Long gid, String message){ + return new BaseAbnlResponse(gid,"0000",null,null,message); + } + + public static BaseAbnlResponse success(String message){ + return new BaseAbnlResponse(null,"0000",null,null,message); + } + + public static BaseAbnlResponse error(Long gid, String equipCode, String name, String message){ + return new BaseAbnlResponse(gid,"10000",equipCode,name,message); + } + + public static BaseAbnlResponse error(Long gid, String equipCode, String message){ + return new BaseAbnlResponse(gid,"10000",equipCode,null,message); + } + + public static BaseAbnlResponse error(String equipCode, String message){ + return new BaseAbnlResponse(null,"10000",equipCode,null,message); + } + + public static BaseAbnlResponse error(Long gid, String message){ + return new BaseAbnlResponse(gid,"10000",null,null,message); + } + + public static BaseAbnlResponse error(String message){ + return new BaseAbnlResponse(null,"10000",null,null,message); + } + + public static BaseAbnlResponse successBatch(Long successTotal, List errorData, List responseDtls, String message){ + return new BaseAbnlResponse(null,"0000",null,null,message,successTotal,errorData,responseDtls); + } +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseBatchAbnlRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseBatchAbnlRequest.java new file mode 100644 index 0000000..579ba34 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseBatchAbnlRequest.java @@ -0,0 +1,20 @@ +package com.qzing.ime.abnl; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author: yuzhao + * @create: 2021-11-05 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class BaseBatchAbnlRequest { + private List gidList; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseOptResponse.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseOptResponse.java new file mode 100644 index 0000000..86811d0 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseOptResponse.java @@ -0,0 +1,25 @@ +package com.qzing.ime.abnl; + +import com.qzing.ieep.data.common.RestResponse; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author: yuzhao + * @create: 2021-11-11 + **/ +public class BaseOptResponse { + public static RestResponse create(String msg, Long successTotal, List errorList){ + Map map = new HashMap<>(); + map.put("successTotal",successTotal); + map.put("errorData",errorList); + map.put("action",msg); + + RestResponse sp = new RestResponse(); + sp.setExtra(map); + sp.setCode("0000"); + return sp; + } +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseResponse.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseResponse.java new file mode 100644 index 0000000..6115bf1 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BaseResponse.java @@ -0,0 +1,19 @@ +package com.qzing.ime.abnl; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class BaseResponse { + private Long gid; + private String code; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BatchResponse.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BatchResponse.java new file mode 100644 index 0000000..906fa97 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/BatchResponse.java @@ -0,0 +1,23 @@ +package com.qzing.ime.abnl; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class BatchResponse { + private String code; + private List list; + private String processState; + private String message; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/JsonUtil.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/JsonUtil.java new file mode 100644 index 0000000..91320c5 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/JsonUtil.java @@ -0,0 +1,32 @@ +package com.qzing.ime.abnl; + +import com.alibaba.fastjson.JSONObject; +import com.qzing.ieep.util.StringUtils; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +public class JsonUtil { + public static boolean isJson(String content) { + if (StringUtils.isEmpty(content)) { + return false; + } + boolean isJsonObject = true; + boolean isJsonArray = true; + try { + JSONObject.parseObject(content); + } catch (Exception e) { + isJsonObject = false; + } + try { + JSONObject.parseArray(content); + } catch (Exception e) { + isJsonArray = false; + } + if (!isJsonObject && !isJsonArray) { //不是json格式 + return false; + } + return true; + } +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/api/AbnlEventFeignClient.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/api/AbnlEventFeignClient.java new file mode 100644 index 0000000..6363271 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/api/AbnlEventFeignClient.java @@ -0,0 +1,94 @@ +package com.qzing.ime.abnl.abnlevent.api; + +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.abnl.BaseAbnlRequest; +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.BaseBatchAbnlRequest; +import com.qzing.ime.abnl.abnlevent.model.request.*; +import com.qzing.ime.framework.feign.ImeBaseFeignApi; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; +import java.util.Map; + +/** + * Created by chenyapeng on 2021/9/28 14:26 + */ +@FeignClient("${ime.abnl}/abnl/abnlevent") +public interface AbnlEventFeignClient extends ImeBaseFeignApi { + + + @ApiOperation("异常事件创建") + @PostMapping({"/save"}) + BaseAbnlResponse createAbnlEvent(@RequestBody AbnlEventCreateRequest request); + + @ApiOperation("异常事件更新") + @PostMapping({"/update"}) + BaseAbnlResponse updateAbnlEvent(@RequestBody AbnlEventUpdateRequest request); + + @ApiOperation("异常事件开始响应") + @PostMapping({"/startrespond"}) + BaseAbnlResponse startRespond(@RequestBody BaseAbnlRequest request); + + @ApiOperation("异常事件完成响应") + @PostMapping({"/finishrespond"}) + BaseAbnlResponse finishRespond(@RequestBody AbnlEventFinishRespondRequest request); + + @ApiOperation("异常事件完成响应") + @PostMapping({"/close"}) + BaseAbnlResponse closeAbnlEvent(@RequestBody AbnlEventCloseRequest request); + + @ApiOperation("异常事件删除") + @PostMapping({"/delete"}) + RestResponse deleteAbnlEvent(@RequestBody BaseBatchAbnlRequest request); + + @ApiOperation("异常事件开始处置") + @PostMapping({"/starthandle"}) + BaseAbnlResponse starthandleAbnlEvent(@RequestBody AbnlEventStartHandleRequest request); + + @ApiOperation("异常事件完成处置") + @PostMapping({"/finishhandle"}) + RestResponse finishhandleAbnlEvent(@RequestBody AbnlEventFinishHandleRequest request); + + + @ApiOperation("异常事件发送消息") + @PostMapping({"/sendmessage"}) + void sendmessageAbnlEvent(@RequestBody AbnlRepairTaskRequest request); + + + + + @ApiOperation("设备异常非计划性停机时长") + @PostMapping({"/unplannedtime"}) + RestResponse> unPlannedTime(@RequestBody List equipCodes); + + @ApiOperation("设备异常非计划性停机时长(设备异常)") + @PostMapping("getEquipAbnlData") + RestResponse getEquipAbnlData(@RequestBody EquipAbnlDataRequest request); + + @ApiOperation("设备异常非计划性停机时长(前一周)") + @PostMapping("getUnplannedStopData") + RestResponse getUnplannedStopData(@RequestBody EquipAbnlDataRequest request); + + + @ApiOperation("设备,质量,生产异常") + @PostMapping("getAbnlException") + RestResponse getAbnlException(@RequestParam("workCenterCode") String workCenterCode); + + @ApiOperation("按作业批次或批次生产单查询异常事件") + @PostMapping("getAbnlList") + RestResponse getAbnlList(@RequestBody Map abnlParam); + + @ApiOperation("异常事件逾期响应通知") + @PostMapping({"/replyTimeOut"}) + RestResponse abnlEventReplyTimeOut(); + + @ApiOperation("异常事件逾期处置通知") + @PostMapping({"/handleTimeOut"}) + RestResponse abnlEventHandleTimeOut(); + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/constant/AbnlEventConstant.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/constant/AbnlEventConstant.java new file mode 100644 index 0000000..f9bcea0 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/constant/AbnlEventConstant.java @@ -0,0 +1,37 @@ +package com.qzing.ime.abnl.abnlevent.model.constant; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +public class AbnlEventConstant { + + public static final String ABNL_CODE = "YCGL"; + public static final String SUCCESS_CODE = "0000"; + public static final String ERROR_CODE = "10000"; + + /** + * 异常附属信息不符合JSON格式 + */ + public static final String CONTEXT_IS_NOT_JSON = "context_is_not_json"; + + /** + * 异常事件不存在 + */ + public static final String ABNL_EVENT_IS_NOT_EXIST = "abnl_event_is_not_exist"; + + /** + * 当前状态不允许关闭 + */ + public static final String ABNL_EVENT_CAN_NOT_CLOSE = "abnl_event_can_not_close"; + /** + * 当前状态不允许处置 + */ + public static final String ABNL_EVENT_CAN_NOT_HANDLE = "abnl_event_can_not_handle"; + + /** + * b不能删除 + */ + public static final String CANNOT_DELETE = "abnl_event_cannot_delete"; + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/BusiStatusEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/BusiStatusEnum.java new file mode 100644 index 0000000..1be251f --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/BusiStatusEnum.java @@ -0,0 +1,47 @@ +package com.qzing.ime.abnl.abnlevent.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum BusiStatusEnum { + + /** + * 待响应 + */ + TORESPONDED, + + /** + * 开始响应 + */ + + STARTRESPONSE, + + /** + * 完成响应 + */ + FINISHRESPONSE, + + /** + * 开始处置 + */ + STARTHANDLE, + + /** + * 完成处置 + */ + FINISHHANDLE, + + /** + * 升级处置 + */ + UPGRADE, + + /** + * 关闭 + */ + CLOSE + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/HandleResultEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/HandleResultEnum.java new file mode 100644 index 0000000..4605baa --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/HandleResultEnum.java @@ -0,0 +1,21 @@ +package com.qzing.ime.abnl.abnlevent.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum HandleResultEnum { + + /** + * 完成处置 + */ + COMPLETE, + + /** + * 升级 + */ + + UPGRADE +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ProcessRecordEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ProcessRecordEnum.java new file mode 100644 index 0000000..ae9903e --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ProcessRecordEnum.java @@ -0,0 +1,44 @@ +package com.qzing.ime.abnl.abnlevent.model.enums; + +public enum ProcessRecordEnum { + /** + *发起异常 + */ + TORESPONDED, + + /** + * 开始响应 + */ + + STARTRESPONSE, + + /** + * 完成响应 + */ + FINISHRESPONSE, + + /** + * 开始处置 + */ + STARTHANDLE, + + /** + * 完成处置 + */ + FINISHHANDLE, + + /** + * 升级处置 + */ + UPGRADE, + + /** + * 关闭异常 + */ + CLOSEABNL, + + /** + * 误判取消 + */ + MISJUDGECANCEL +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ResponseResultEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ResponseResultEnum.java new file mode 100644 index 0000000..4730723 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/enums/ResponseResultEnum.java @@ -0,0 +1,21 @@ +package com.qzing.ime.abnl.abnlevent.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum ResponseResultEnum { + + /** + * 受理异常 + */ + ACCEPTANCE, + + /** + * 取消 + */ + + CANCEL +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCloseRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCloseRequest.java new file mode 100644 index 0000000..f967e1b --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCloseRequest.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件完成请求") +public class AbnlEventCloseRequest extends StdAbnlEventCloseRequest{ +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCreateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCreateRequest.java new file mode 100644 index 0000000..e2e30b5 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventCreateRequest.java @@ -0,0 +1,33 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件保存请求") +public class AbnlEventCreateRequest extends StdAbnlEventCreateRequest{ + + //产线编码 + private String workCenterCode; + //产线名称 + private String workCenterName; + //异常位置 + private String exceptionLocation; + //是否停机 + private Boolean isStop; + //响应人ID + private String[] allocatedResponseUserId; + //批次生产单 + private String workOrderCode; + //作业批次 + private String sfcCode; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishHandleRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishHandleRequest.java new file mode 100644 index 0000000..08ce7e8 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishHandleRequest.java @@ -0,0 +1,21 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * Created by chenyapeng on 2021/11/8 10:48 + */ + + +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件完成处理请求") +public class AbnlEventFinishHandleRequest extends StdAbnlEventFinishHandleRequest{ + + + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishRespondRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishRespondRequest.java new file mode 100644 index 0000000..1d7a005 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventFinishRespondRequest.java @@ -0,0 +1,25 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件完成请求") +public class AbnlEventFinishRespondRequest extends StdAbnlEventFinishRespondRequest { + + @ApiModelProperty("已分配关闭人编码") + private String allocatedCloseUserCode; + + + @ApiModelProperty("已分配关闭人名称") + private String allocatedCloseUserName; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventStartHandleRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventStartHandleRequest.java new file mode 100644 index 0000000..3e0407c --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventStartHandleRequest.java @@ -0,0 +1,24 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件处理请求") +public class AbnlEventStartHandleRequest extends StdAbnlEventStartHandleRequest{ + @ApiModelProperty("处置结果") + private String handleFinishRemark; + @ApiModelProperty("处置完成时间") + private Date handleFinishDate; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventUpdateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventUpdateRequest.java new file mode 100644 index 0000000..668601e --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlEventUpdateRequest.java @@ -0,0 +1,29 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-04 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常事件更新请求") +public class AbnlEventUpdateRequest extends StdAbnlEventUpdateRequest { + //产线编码 + private String workCenterCode; + //产线名称 + private String workCenterName; + //异常位置 + private String exceptionLocation; + //是否停机 + private Boolean isStop; + //批次生产单 + private String workOrderCode; + //作业批次 + private String sfcCode; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlRepairTaskRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlRepairTaskRequest.java new file mode 100644 index 0000000..a63c8ae --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/AbnlRepairTaskRequest.java @@ -0,0 +1,63 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-08 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("设备-异常监听消息") +public class AbnlRepairTaskRequest { + @ApiModelProperty("设备编码") + private String equipSerialCode; + + @ApiModelProperty("设备名称") + private String equipSerialName; + + @ApiModelProperty(value = "次故障现象编码") + private String phenomenonCode; + + @ApiModelProperty(value = "次故障现象名称") + private String phenomenonName; + + @ApiModelProperty(value = "主故障现象编码") + private String mainPhenomenonCode; + + @ApiModelProperty(value = "主故障现象名称") + private String mainPhenomenonName; + + @ApiModelProperty(value = "工厂编码") + protected String plantCode; + + @ApiModelProperty(value = "工厂名称") + protected String plantName; + + @ApiModelProperty(value = "公司编码") + protected String companyCode; + + @ApiModelProperty(value = "公司名称") + protected String companyName; + + @ApiModelProperty(value = "编排编码") + protected String code; + + @ApiModelProperty(value = "异常类型") + protected String type; + + @ApiModelProperty(value = "是否生成任务信息") + protected String isTask="true"; + + @ApiModelProperty(value = "编排报错信息") + protected String message; + + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/EquipAbnlDataRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/EquipAbnlDataRequest.java new file mode 100644 index 0000000..ef1277b --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/model/request/EquipAbnlDataRequest.java @@ -0,0 +1,16 @@ +package com.qzing.ime.abnl.abnlevent.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("设备-异常监听消息") +public class EquipAbnlDataRequest { + private String workCenterCode; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/api/AbnlUserRelationFeignClient.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/api/AbnlUserRelationFeignClient.java new file mode 100644 index 0000000..1facd86 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/api/AbnlUserRelationFeignClient.java @@ -0,0 +1,22 @@ +package com.qzing.ime.abnl.abnluserrelation.api; + +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.abnluserrelation.model.request.AbnlUserRelationCreateRequest; +import com.qzing.ime.abnl.abnluserrelation.model.request.AbnlUserRelationUpdateRequest; +import com.qzing.ime.framework.feign.ImeBaseFeignApi; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * Created by chenyapeng on 2021/9/28 14:26 + */ +@FeignClient("${ime.abnl}/abnl/abnluserrelation") +public interface AbnlUserRelationFeignClient extends ImeBaseFeignApi { + + @ApiOperation("异常用户关系创建") + @PostMapping({"/save"}) + BaseAbnlResponse createAbnlUserRelation(@RequestBody AbnlUserRelationCreateRequest request); + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/constant/AbnlUserRelationConstant.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/constant/AbnlUserRelationConstant.java new file mode 100644 index 0000000..b64128c --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/constant/AbnlUserRelationConstant.java @@ -0,0 +1,41 @@ +package com.qzing.ime.abnl.abnluserrelation.model.constant; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +public class AbnlUserRelationConstant { + + public static final String ABNL_CODE = "YCGL"; + + /** + * 校验人员编码,业务类型,类型,联合唯一,否则提示“已存在相同记录” + */ + public static final String ABN_USER_RELATION_IS_EXISTS = "abn_user_relation_is_exists"; + + + /** + * 编码已存在 + */ + public static final String ABNL_CODE_IS_EXISTS = "abnl_code_is_exists"; + + /** + * 此数据不存在,请检查 + */ + public static final String ABNL_DATA_NOT_EXISTS = "abnl_data_not_exists"; + + /** + * 所选异常现象未停用,不可编辑 + */ + public static final String ABNL_PHENOMENON_CAN_NOT_EDIT = "abnl_phenomenon_can_not_edit"; + + /** + * 该异常现象已启用,无需重复启用 + */ + public static final String ABNL_PHENOMENON_CAN_NOT_ENABLE = "abnl_phenomenon_can_not_enable"; + + /** + * 该异常现象已停用,无需重复停用 + */ + public static final String ABNL_PHENOMENON_CAN_NOT_DISABLE = "abnl_phenomenon_can_not_disable"; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/AbnlTypeEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/AbnlTypeEnum.java new file mode 100644 index 0000000..8d77a4f --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/AbnlTypeEnum.java @@ -0,0 +1,64 @@ +package com.qzing.ime.abnl.abnluserrelation.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum AbnlTypeEnum { + + /** + * 设备异常 + */ + EQUIPEXCP, + + /** + * 物料异常 + */ + MATERIALEXCP, + + /** + * 人员异常 + */ + PERSONNELEXCP, + + /** + * 品质异常 + */ + QUALITYEXCP, + + /** + * 工艺异常 + */ + ROUTEEXCP, + + /** + * 计划异常 + */ + PLANEXCP, + + /** + * 其它异常 + */ + OTHEREXCP; + + public static String getDesc(String name){ + if(AbnlTypeEnum.EQUIPEXCP.name().equals(name)){ + return "设备异常"; + } else if(AbnlTypeEnum.MATERIALEXCP.name().equals(name)){ + return "物料异常"; + }else if(AbnlTypeEnum.PERSONNELEXCP.name().equals(name)){ + return "人员异常"; + }else if(AbnlTypeEnum.QUALITYEXCP.name().equals(name)){ + return "品质异常"; + }else if(AbnlTypeEnum.ROUTEEXCP.name().equals(name)){ + return "工艺异常"; + }else if(AbnlTypeEnum.PLANEXCP.name().equals(name)){ + return "计划异常"; + }else if(AbnlTypeEnum.OTHEREXCP.name().equals(name)){ + return "其它异常"; + } + return null; + } +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/BusiTypeEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/BusiTypeEnum.java new file mode 100644 index 0000000..e40706a --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/enums/BusiTypeEnum.java @@ -0,0 +1,25 @@ +package com.qzing.ime.abnl.abnluserrelation.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum BusiTypeEnum { + + /** + * 响应 + */ + RESPOND, + + /** + * 处置 + */ + HANDLE, + + /** + * 关闭 + */ + CLOSE, +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationCreateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationCreateRequest.java new file mode 100644 index 0000000..ffd613b --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationCreateRequest.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.abnluserrelation.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常用户关系保存请求") +public class AbnlUserRelationCreateRequest extends StdAbnlUserRelationCreateRequest{ +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationUpdateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationUpdateRequest.java new file mode 100644 index 0000000..39ac5ca --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/AbnlUserRelationUpdateRequest.java @@ -0,0 +1,18 @@ +package com.qzing.ime.abnl.abnluserrelation.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("异常用户关系保存请求") +public class AbnlUserRelationUpdateRequest extends StdAbnlUserRelationUpdateRequest { + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/BaseBatchRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/BaseBatchRequest.java new file mode 100644 index 0000000..e7ee86c --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/model/request/BaseBatchRequest.java @@ -0,0 +1,20 @@ +package com.qzing.ime.abnl.abnluserrelation.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("删除request") +public class BaseBatchRequest { + private List gidList; +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/api/HandleModeFeignClient.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/api/HandleModeFeignClient.java new file mode 100644 index 0000000..01cbd31 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/api/HandleModeFeignClient.java @@ -0,0 +1,21 @@ +package com.qzing.ime.abnl.handlemode.api; + +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.handlemode.model.request.HandleModeCreateRequest; +import com.qzing.ime.abnl.handlemode.model.request.HandleModeUpdateRequest; +import com.qzing.ime.framework.feign.ImeBaseFeignApi; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * Created by chenyapeng on 2021/9/28 14:26 + */ +@FeignClient("${ime.abnl}/abnl/handlemode") +public interface HandleModeFeignClient extends ImeBaseFeignApi { + @ApiOperation("处置方式更新接口") + @PostMapping({"/update"}) + BaseAbnlResponse updateHandleMode(@RequestBody HandleModeUpdateRequest request); + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/HandleModeEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/HandleModeEnum.java new file mode 100644 index 0000000..9987598 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/HandleModeEnum.java @@ -0,0 +1,21 @@ +package com.qzing.ime.abnl.handlemode.model.enums; + +import lombok.Getter; + +/** + * Created by chenyapeng on 2020/11/25 17:06 + */ +@Getter +public enum HandleModeEnum { + + /** + * 维修处理 + */ + REPAIRHANDLE, + + /** + * 其他 + */ + OTHER + +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/OtherHandleModeEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/OtherHandleModeEnum.java new file mode 100644 index 0000000..d05bae4 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/OtherHandleModeEnum.java @@ -0,0 +1,8 @@ +package com.qzing.ime.abnl.handlemode.model.enums; + +public enum OtherHandleModeEnum { + /** + *无 + */ + NONE +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/RepairHandleModeEnum.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/RepairHandleModeEnum.java new file mode 100644 index 0000000..cb768f7 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/enums/RepairHandleModeEnum.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.handlemode.model.enums; + +/** + * @author: yuzhao + * @create: 2021-11-03 + **/ +public enum RepairHandleModeEnum { + /** + * 创建维修任务 + */ + CREATEREPAIR, + + /** + * 其他 + */ + NONE +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeCreateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeCreateRequest.java new file mode 100644 index 0000000..310326f --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeCreateRequest.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.handlemode.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-03 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("处置方式配置") +public class HandleModeCreateRequest extends StdHandleModeCreateRequest{ +} diff --git a/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeUpdateRequest.java b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeUpdateRequest.java new file mode 100644 index 0000000..28a091e --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/extend/com/qzing/ime/abnl/handlemode/model/request/HandleModeUpdateRequest.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.handlemode.model.request; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2021-11-03 + **/ +@Setter +@Getter +@NoArgsConstructor +@ApiModel("处置方式配置") +public class HandleModeUpdateRequest extends StdHandleModeUpdateRequest{ +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/AbnlException.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/AbnlException.java new file mode 100644 index 0000000..1b72e18 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/AbnlException.java @@ -0,0 +1,29 @@ +package com.qzing.ime.abnl.dashboard.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * Created by chenyapeng on 2022/7/27 13:41 + */ + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class AbnlException { + + + + private List list; + + + private String type; + + + private Integer totalException; +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlDto.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlDto.java new file mode 100644 index 0000000..6fa96f9 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlDto.java @@ -0,0 +1,22 @@ +package com.qzing.ime.abnl.dashboard.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class IotEquipAbnlDto { + + private String typeException; + private String equipCode; + private String equipName; + private String phenomenonCode; + private String phenomenonName; + private String time; +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlTypeDto.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlTypeDto.java new file mode 100644 index 0000000..7e4e0ce --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotEquipAbnlTypeDto.java @@ -0,0 +1,23 @@ +package com.qzing.ime.abnl.dashboard.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author: yuzhao + * @create: 2022-04-13 + **/ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class IotEquipAbnlTypeDto extends IotEquipAbnlDto{ + /** + * 1.新增 + * 2.删除 + * 3.修改 + */ + private Integer type; +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotResponseEquipAbnlTypeDto.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotResponseEquipAbnlTypeDto.java new file mode 100644 index 0000000..1769f71 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/dashboard/dto/IotResponseEquipAbnlTypeDto.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.dashboard.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class IotResponseEquipAbnlTypeDto { + private String equipCode; + private String field; + private String phenomenonName; + private String time; +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/api/EarlyWarningNoticeClient.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/api/EarlyWarningNoticeClient.java new file mode 100644 index 0000000..6ffc080 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/api/EarlyWarningNoticeClient.java @@ -0,0 +1,49 @@ +package com.qzing.ime.abnl.earlywarningnotice.api; + +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeCreateRequest; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeUpdateRequest; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author DWJ + */ +@FeignClient("${ime.abnl}/abnl/earlyWarningNotice") +public interface EarlyWarningNoticeClient { + + /** + * 创建 + */ + @PostMapping("/create") + RestResponse create(@RequestBody EarlyWarningNoticeCreateRequest request); + + /** + * 修改 + */ + @PostMapping("/modify") + RestResponse modify(@RequestBody EarlyWarningNoticeUpdateRequest request); + + /** + * 删除 + */ + @PostMapping("/delete") + RestResponse delete(@RequestBody List gids); + + /** + * 启用/停用 + */ + @PostMapping("/enable") + RestResponse enable(@RequestBody EarlyWarningNoticeUpdateRequest request); + + /** + * 根据编码查询信息 + */ + @PostMapping("findByCode") + RestResponse findByCode(@RequestParam(value = "code") String code); + +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeCreateRequest.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeCreateRequest.java new file mode 100644 index 0000000..6a79306 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeCreateRequest.java @@ -0,0 +1,133 @@ +package com.qzing.ime.abnl.earlywarningnotice.model.request; + +import com.qzing.ime.framework.dto.BaseCreateRequest; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; + +/** + * @author DWJ + */ +@Getter +@Setter +@NoArgsConstructor +public class EarlyWarningNoticeCreateRequest extends BaseCreateRequest { + + /** + * 预警类型编码 + */ + private String code; + + /** + * 预警类型名称 + */ + private String name; + + /** + * 消息模板编码 + */ + private String msgCode; + + /** + * 消息模板名称 + */ + private String msgName; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 执行方式(FIXED:固定间隔,DETAIL:明细设置,TIMELY:及时) + */ + private String detailRateType; + + /** + * 固定间隔 - 定时执行类型:SECOND:秒,MINUTE:分钟,HOUR:时,DAILY:天 + */ + private String fixedRateType; + + /** + * 固定间隔 - 定时执行间隔:默认为 0 + */ + private Integer fixedRateValue; + + /** + * 明细设置 - 执行时间小时数 + */ + private Integer detailHour; + + /** + * 明细设置 - 执行时间分钟数 + */ + private Integer detailMinute; + + /** + * 及时类型 - 间隔时长 + */ + private Integer timelyValue; + + /** + * 及时类型 - 时间单位(分钟、小时) + */ + private String timelyType; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 备注 + */ + private String remark; + + /** + * 状态(启用|1,停用|2) + */ + private String status; + + /** + * 定时任务id + */ + private Long jobId; + + /** + * 预警级别(一般、重要) + */ + private String noticeLevel; + + /** + * 一般预警接收角色id + */ + private String generalRoleId; + + /** + * 一般预警接收角色编码 + */ + private String generalRoleCode; + + /** + * 一般预警接收角色名称 + */ + private String generalRoleName; + + /** + * 重要预警接收角色id + */ + private String importantRoleId; + + /** + * 重要预警接收角色编码 + */ + private String importantRoleCode; + + /** + * 重要预警接收角色名称 + */ + private String importantRoleName; + +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeDetailRequest.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeDetailRequest.java new file mode 100644 index 0000000..044ec83 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeDetailRequest.java @@ -0,0 +1,51 @@ +package com.qzing.ime.abnl.earlywarningnotice.model.request; + +import com.qzing.ime.framework.dto.BaseCreateRequest; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author DWJ + */ +@Getter +@Setter +@NoArgsConstructor +public class EarlyWarningNoticeDetailRequest extends BaseCreateRequest { + + /** + * gid + */ + private Long gid; + + /** + * 主表gid + */ + private Long noticeGid; + + /** + * 车间编码 + */ + private String workCenterCode; + + /** + * 车间名称 + */ + private String workCenterName; + + /** + * 接收人编码 + */ + private String userCode; + + /** + * 接收人名称 + */ + private String userName; + + + +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeUpdateRequest.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeUpdateRequest.java new file mode 100644 index 0000000..90428fb --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/request/EarlyWarningNoticeUpdateRequest.java @@ -0,0 +1,133 @@ +package com.qzing.ime.abnl.earlywarningnotice.model.request; + +import com.qzing.ime.framework.dto.BaseUpdateRequest; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; + +/** + * @author DWJ + */ +@Getter +@Setter +@NoArgsConstructor +public class EarlyWarningNoticeUpdateRequest extends BaseUpdateRequest { + + /** + * 预警类型编码 + */ + private String code; + + /** + * 预警类型名称 + */ + private String name; + + /** + * 消息模板编码 + */ + private String msgCode; + + /** + * 消息模板名称 + */ + private String msgName; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 执行方式(FIXED:固定间隔,DETAIL:明细设置,TIMELY:及时) + */ + private String detailRateType; + + /** + * 固定间隔 - 定时执行类型:SECOND:秒,MINUTE:分钟,HOUR:时,DAILY:天 + */ + private String fixedRateType; + + /** + * 固定间隔 - 定时执行间隔:默认为 0 + */ + private Integer fixedRateValue; + + /** + * 明细设置 - 执行时间小时数 + */ + private Integer detailHour; + + /** + * 明细设置 - 执行时间分钟数 + */ + private Integer detailMinute; + + /** + * 及时类型 - 间隔时长 + */ + private Integer timelyValue; + + /** + * 及时类型 - 时间单位(分钟、小时) + */ + private String timelyType; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 备注 + */ + private String remark; + + /** + * 状态(启用|1,停用|2) + */ + private String status; + + /** + * 定时任务id + */ + private Long jobId; + + /** + * 预警级别(一般、重要) + */ + private String noticeLevel; + + /** + * 一般预警接收角色id + */ + private String generalRoleId; + + /** + * 一般预警接收角色编码 + */ + private String generalRoleCode; + + /** + * 一般预警接收角色名称 + */ + private String generalRoleName; + + /** + * 重要预警接收角色id + */ + private String importantRoleId; + + /** + * 重要预警接收角色编码 + */ + private String importantRoleCode; + + /** + * 重要预警接收角色名称 + */ + private String importantRoleName; + +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeDetailResponse.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeDetailResponse.java new file mode 100644 index 0000000..0019b88 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeDetailResponse.java @@ -0,0 +1,44 @@ +package com.qzing.ime.abnl.earlywarningnotice.model.response; + +import com.qzing.ime.framework.dto.BaseResponse; +import lombok.Getter; +import lombok.Setter; + +/** + * @author DWJ + */ +@Getter +@Setter +public class EarlyWarningNoticeDetailResponse extends BaseResponse { + + /** + * gid + */ + private Long gid; + + /** + * 主表gid + */ + private Long noticeGid; + + /** + * 车间编码 + */ + private String workCenterCode; + + /** + * 车间名称 + */ + private String workCenterName; + + /** + * 接收人编码 + */ + private String userCode; + + /** + * 接收人名称 + */ + private String userName; + +} diff --git a/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeResponse.java b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeResponse.java new file mode 100644 index 0000000..7d1ff43 --- /dev/null +++ b/abnl-RTHIT-api-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/model/response/EarlyWarningNoticeResponse.java @@ -0,0 +1,137 @@ +package com.qzing.ime.abnl.earlywarningnotice.model.response; + + +import com.qzing.ime.framework.dto.BaseResponse; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +/** + * @author DWJ + */ +@Getter +@Setter +public class EarlyWarningNoticeResponse extends BaseResponse { + + /** + * gid + */ + private Long gid; + + /** + * 预警类型编码 + */ + private String code; + + /** + * 预警类型名称 + */ + private String name; + + /** + * 消息模板编码 + */ + private String msgCode; + + /** + * 消息模板名称 + */ + private String msgName; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 执行方式(FIXED:固定间隔,DETAIL:明细设置,TIMELY:及时) + */ + private String detailRateType; + + /** + * 固定间隔 - 定时执行类型:SECOND:秒,MINUTE:分钟,HOUR:时,DAILY:天 + */ + private String fixedRateType; + + /** + * 固定间隔 - 定时执行间隔:默认为 0 + */ + private Integer fixedRateValue; + + /** + * 明细设置 - 执行时间小时数 + */ + private Integer detailHour; + + /** + * 明细设置 - 执行时间分钟数 + */ + private Integer detailMinute; + + /** + * 及时类型 - 间隔时长 + */ + private Integer timelyValue; + + /** + * 及时类型 - 时间单位(分钟、小时) + */ + private String timelyType; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 备注 + */ + private String remark; + + /** + * 状态(启用|1,停用|2) + */ + private String status; + + /** + * 定时任务id + */ + private Long jobId; + + /** + * 预警级别(一般、重要) + */ + private String noticeLevel; + + /** + * 一般预警接收角色id + */ + private String generalRoleId; + + /** + * 一般预警接收角色编码 + */ + private String generalRoleCode; + + /** + * 一般预警接收角色名称 + */ + private String generalRoleName; + + /** + * 重要预警接收角色id + */ + private String importantRoleId; + + /** + * 重要预警接收角色编码 + */ + private String importantRoleCode; + + /** + * 重要预警接收角色名称 + */ + private String importantRoleName; + +} diff --git a/abnl-RTHIT-service-extend/abnl-RTHIT-service-extend.iml b/abnl-RTHIT-service-extend/abnl-RTHIT-service-extend.iml new file mode 100644 index 0000000..99293b8 --- /dev/null +++ b/abnl-RTHIT-service-extend/abnl-RTHIT-service-extend.iml @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-service-extend/pom.xml b/abnl-RTHIT-service-extend/pom.xml new file mode 100644 index 0000000..5791845 --- /dev/null +++ b/abnl-RTHIT-service-extend/pom.xml @@ -0,0 +1,58 @@ + + + + abnl-RTHIT-service-parent + com.qzing.mes.abnl + 1.0.1-SNAPSHOT + + 4.0.0 + abnl-RTHIT-service-extend + ${abnl-RTHIT-version} + + + com.qzing.mes.abnl + abnl-RTHIT-api-extend + + + com.qzing + ime-abnl-graphql + ${abnl-version} + + + com.qzing.ieep2 + ieep2-api-RTHIT + 1.8.6-SNAPSHOT + + + com.qzing.md + md-RTHIT-api-masterdata + 2.7.3-SNAPSHOT + compile + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + generate-sources + + add-source + + + + ${project.basedir}/src/main/extend + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/CalendarTest.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/CalendarTest.java new file mode 100644 index 0000000..ce1a6dc --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/CalendarTest.java @@ -0,0 +1,82 @@ +package com.qzing.ime.abnl.abnlevent; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * Created by chenyapeng on 2022/4/14 15:35 + */ +public class CalendarTest { + + /** + * 获取当前日期的当月第一天 + * + * @return String + */ + public static String getFirstDayOfMonth() { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间 + Calendar firstDay = Calendar.getInstance(); + firstDay.set(Calendar.DAY_OF_MONTH, 1); + firstDay.set(Calendar.HOUR_OF_DAY, 0); + firstDay.set(Calendar.MINUTE, 0); + return simpleDateFormat.format(firstDay.getTime()); + } + + /** + * 获取当前日期的 上个月的第一天和 最后一天 + * + * @return String + */ + public static String getFirstDayOfLastMonth() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间 +//获取上个月的第一天 + Calendar cal_1 = Calendar.getInstance();//获取当前日期 + cal_1.add(Calendar.MONTH, -1); + cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号 + cal_1.set(Calendar.HOUR_OF_DAY, 0); + cal_1.set(Calendar.MINUTE, 0); + cal_1.set(Calendar.SECOND, 0); + String firstDay = format.format(cal_1.getTime()); +//例如今天 2021/8/11 sout后会输出:2021/7/1 00:00:00 + + return firstDay; + + } + + /** + * 获取当前日期的 上个月的第一天和 最后一天 + * + * @return String + */ + public static String getEndDayOfLastMonth() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间 +//获取上个月的最后一天 + Calendar cal_2 = Calendar.getInstance(); + cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天 + cal_2.set(Calendar.HOUR_OF_DAY, 23); + cal_2.set(Calendar.MINUTE, 59); + cal_2.set(Calendar.SECOND, 59); + String lastDay = format.format(cal_2.getTime()); + return lastDay; + + } + + /** + * 获取当前日期的 本周第一天 + * + * @return String + */ + public static String getFisrtDayOfThisWeek() { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间 +//获取当前日期的 本周第一天 + Calendar cal_2 = Calendar.getInstance(); + cal_2.set(Calendar.DAY_OF_WEEK, 1); + cal_2.set(Calendar.HOUR_OF_DAY, 0); + cal_2.set(Calendar.MINUTE, 0); + cal_2.set(Calendar.SECOND, 0); + String firstDay = format.format(cal_2.getTime()); + return firstDay; + + } + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/application/AbnlEventAppServiceImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/application/AbnlEventAppServiceImpl.java new file mode 100644 index 0000000..9365b1e --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/application/AbnlEventAppServiceImpl.java @@ -0,0 +1,556 @@ +package com.qzing.ime.abnl.abnlevent.application; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Sets; +import com.qzing.framework.core.utils.StringUtil; +import com.qzing.ieep.context.CurrentContextHelper; +import com.qzing.ieep.context.UserAuthInfo; +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ieep.util.CollectionUtils; +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.abnlevent.application.impl.StdAbnlEventAppService; +import com.qzing.ime.abnl.abnlevent.dao.AbnlEventDao; +import com.qzing.ime.abnl.abnlevent.dao.AbnlExtendDao; +import com.qzing.ime.abnl.abnlevent.dao.StdAbnlExtendDao; +import com.qzing.ime.abnl.abnlevent.entity.AbnlEvent; +import com.qzing.ime.abnl.abnlevent.entity.AbnlExtend; +import com.qzing.ime.abnl.abnlevent.entity.AbnlRecord; +import com.qzing.ime.abnl.abnlevent.model.constant.AbnlEventConstant; +import com.qzing.ime.abnl.abnlevent.model.enums.BusiStatusEnum; +import com.qzing.ime.abnl.abnlevent.model.enums.ProcessRecordEnum; +import com.qzing.ime.abnl.abnlevent.model.enums.ResponseResultEnum; +import com.qzing.ime.abnl.abnlevent.model.request.AbnlEventCloseRequest; +import com.qzing.ime.abnl.abnlevent.model.request.AbnlEventFinishRespondRequest; +import com.qzing.ime.abnl.abnlevent.model.request.AbnlEventStartHandleRequest; +import com.qzing.ime.abnl.abnlevent.model.request.EquipAbnlDataRequest; +import com.qzing.ime.abnl.abnluserrelation.model.enums.AbnlTypeEnum; +import com.qzing.ime.abnl.dashboard.dto.AbnlException; +import com.qzing.ime.abnl.dashboard.dto.IotEquipAbnlDto; +import com.qzing.ime.framework.toolkit.exception.ImeExceptionUtils; +import com.qzing.ime.framework.toolkit.utils.ImeI18NUtils; +import com.qzing.ime.framework.toolkit.utils.ImeLogger; +import com.qzing.toolkit.spring.api.QZingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.client.RestTemplate; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author: yuzhao + * @create: 2021-10-12 + **/ +@QZingService(api = AbnlEventAppServiceImpl.class) +public class AbnlEventAppServiceImpl extends StdAbnlEventAppService implements AbnlEventAppService { + private ImeLogger imeLogger = ImeLogger.getInstance(StdAbnlEventAppService.class, "al_abnl_event_relation"); + @Autowired + private AbnlEventDao abnlEventDao; + @Autowired + private StdAbnlExtendDao stdAbnlExtendDao; + + @Autowired + private AbnlExtendDao abnlExtendDao; + + @Autowired + private RestTemplate restTemplate; + + @Value("${sdk.url}") + private String sdkUrl; + + public BaseAbnlResponse closeAbnlEvent(AbnlEventCloseRequest request) { + AbnlEvent abnlEvent = (AbnlEvent) this.abnlEventDao.getById(request.getGid()); + ImeExceptionUtils.isTrue(abnlEvent != null, ImeI18NUtils.getText("abnl_event_is_not_exist")); +// ImeExceptionUtils.isTrue(abnlEvent.getBusiStatus().equals(BusiStatusEnum.FINISHHANDLE.name()), ImeI18NUtils.getText("abnl_event_can_not_close", new Object[]{abnlEvent.getCode()})); + abnlEvent.setCloseDate(new Date()); + abnlEvent.setCloseRemark(request.getCloseRemark()); + abnlEvent.setBusiStatus(BusiStatusEnum.CLOSE.name()); + UserAuthInfo info = CurrentContextHelper.getUserAuthInfo(); + abnlEvent.setCloseUserCode(info.getUserCode()); + abnlEvent.setCloseUserName(info.getUserName()); + AbnlRecord abnlRecord = new AbnlRecord(); + abnlRecord.setProcessNode(ProcessRecordEnum.CLOSEABNL.name()); + abnlRecord.setExcuteDate(new Date()); + abnlRecord.setExcuteUserCode(info.getUserCode()); + abnlRecord.setExcuteUserName(info.getUserName()); + abnlRecord.setRemark(abnlEvent.getCloseRemark()); + abnlRecord.setPlantCode(abnlEvent.getPlantCode()); + abnlRecord.setPlantName(abnlEvent.getPlantName()); + abnlRecord.setCompanyCode(abnlEvent.getCompanyCode()); + abnlRecord.setCompanyName(abnlEvent.getCompanyName()); + abnlEvent.getAbnlRecordList().add(abnlRecord); + AbnlEvent save = (AbnlEvent) this.abnlEventDao.save(abnlEvent); + this.imeLogger.infoToDb(save.getGid(), save.getCode(), "异常事件关闭"); + return BaseAbnlResponse.success(save.getGid(), save.getCode(), "异常事件关闭"); + } + + @Override + public BaseAbnlResponse finishRespond(AbnlEventFinishRespondRequest request) { + AbnlEvent abnlEvent = abnlEventDao.getById(request.getGid()); + ImeExceptionUtils.isTrue(abnlEvent != null, ImeI18NUtils.getText(AbnlEventConstant.ABNL_EVENT_IS_NOT_EXIST)); + + UserAuthInfo info = CurrentContextHelper.getUserAuthInfo(); + + BeanUtil.copyProperties(request, abnlEvent); + //状态:当响应结果为“受理异常”时,状态为“完成响应”,否则状态为“待响应” + AbnlRecord abnlRecord = new AbnlRecord(); + if (request.getResponseResult().equals(ResponseResultEnum.ACCEPTANCE.name())) { + abnlEvent.setBusiStatus(BusiStatusEnum.FINISHRESPONSE.name()); + abnlEvent.setFinishResponseDate(new Date()); + abnlRecord.setProcessNode(ProcessRecordEnum.FINISHRESPONSE.name()); + abnlEvent.setResponseUserCode(info.getUserCode()); + abnlEvent.setResponseUserName(info.getUserName()); + } else { + //误判取消,状态改为关闭 + abnlEvent.setCloseDate(new Date()); + abnlEvent.setBusiStatus(BusiStatusEnum.CLOSE.name()); + abnlEvent.setCloseUserCode(info.getUserCode()); + abnlEvent.setCloseUserName(info.getUserName()); + abnlRecord.setProcessNode(ProcessRecordEnum.MISJUDGECANCEL.name()); + } + abnlRecord.setExcuteDate(new Date()); + abnlRecord.setExcuteUserCode(info.getUserCode()); + abnlRecord.setExcuteUserName(info.getUserName()); + abnlRecord.setPlantCode(abnlEvent.getPlantCode()); + abnlRecord.setPlantName(abnlEvent.getPlantName()); + abnlRecord.setCompanyCode(abnlEvent.getCompanyCode()); + abnlRecord.setCompanyName(abnlEvent.getCompanyName()); + abnlRecord.setRemark(abnlEvent.getFinishResponseRemark()); + abnlEvent.getAbnlRecordList().add(abnlRecord); + AbnlEvent save = abnlEventDao.save(abnlEvent); + + + if (request.getResponseResult().equals(ResponseResultEnum.ACCEPTANCE.name())) { + imeLogger.infoToDb(save.getGid(), save.getCode(), "异常事件响应完成"); + } else { + imeLogger.infoToDb(save.getGid(), save.getCode(), "异常事件误判取消"); + } + + return BaseAbnlResponse.success(save.getGid(), save.getCode(), "异常事件响应完成"); + } + + @Override + public BaseAbnlResponse starthandleAbnlEvent(AbnlEventStartHandleRequest request) { + Long gid = request.getGid(); + AbnlEvent abnlEvent = abnlEventDao.getById(gid); + Boolean sign = false; + if (!abnlEvent.getBusiStatus().equals(BusiStatusEnum.FINISHRESPONSE.name())) { + sign = true; + } + ImeExceptionUtils.isFalse(sign, AbnlEventConstant.ABNL_EVENT_CAN_NOT_HANDLE); + //记录 + UserAuthInfo info = CurrentContextHelper.getUserAuthInfo(); + abnlEvent.setHandleFinishDate(request.getHandleFinishDate()); + abnlEvent.setHandleUserCode(info.getUserCode()); + abnlEvent.setHandleUserName(info.getUserName()); + abnlEvent.setHandleFinishRemark(request.getHandleFinishRemark()); + abnlEvent.setCloseDate(new Date()); + abnlEvent.setBusiStatus(BusiStatusEnum.CLOSE.name()); + abnlEvent.setHandleFinishDate(new Date()); + abnlEvent.setCloseUserCode(info.getUserCode()); + abnlEvent.setCloseUserName(info.getUserName()); + AbnlRecord abnlRecord = new AbnlRecord(); + abnlRecord.setExcuteDate(new Date()); + abnlRecord.setExcuteUserCode(info.getUserCode()); + abnlRecord.setExcuteUserName(info.getUserName()); + abnlRecord.setRemark(abnlEvent.getHandleFinishRemark()); + abnlRecord.setPlantCode(abnlEvent.getPlantCode()); + abnlRecord.setPlantName(abnlEvent.getPlantName()); + abnlRecord.setCompanyCode(abnlEvent.getCompanyCode()); + abnlRecord.setCompanyName(abnlEvent.getCompanyName()); + abnlRecord.setProcessNode(BusiStatusEnum.FINISHHANDLE.name()); + abnlEvent.getAbnlRecordList().add(abnlRecord); + + //关闭 + AbnlRecord abnlRecord2 = new AbnlRecord(); + abnlRecord2.setProcessNode(ProcessRecordEnum.CLOSEABNL.name()); + abnlRecord2.setExcuteDate(new Date()); + abnlRecord2.setExcuteUserCode(info.getUserCode()); + abnlRecord2.setExcuteUserName(info.getUserName()); + abnlRecord2.setRemark(abnlEvent.getCloseRemark()); + abnlRecord2.setPlantCode(abnlEvent.getPlantCode()); + abnlRecord2.setPlantName(abnlEvent.getPlantName()); + abnlRecord2.setCompanyCode(abnlEvent.getCompanyCode()); + abnlRecord2.setCompanyName(abnlEvent.getCompanyName()); + abnlEvent.getAbnlRecordList().add(abnlRecord2); + + + AbnlEvent save = abnlEventDao.save(abnlEvent); + + imeLogger.infoToDb(save.getGid(), save.getCode(), "异常事件处置完成,关闭"); + + return BaseAbnlResponse.success(save.getGid(), save.getCode(), "异常事件处置完成"); + } + + public RestResponse getEquipAbnlData(EquipAbnlDataRequest request) { + + List gidList = stdAbnlExtendDao.findOperationGidGidByCode(request.getWorkCenterCode()); + + List> equipCodeByGidList = stdAbnlExtendDao.findEquipCodeByGidList(gidList); + if (CollectionUtil.isEmpty(equipCodeByGidList)) { + return RestResponse.error("无数据"); + } + List codeQueryList = new ArrayList<>(); + List abnlQueryList = new ArrayList<>(); + HashMap codeNameMap = new HashMap<>(); + for (Map stringStringMap : equipCodeByGidList) { + String equipCode = stringStringMap.get("equipCode"); + String equipName = stringStringMap.get("equipName"); + codeQueryList.add(equipCode); + + IotEquipAbnlDto iotEquipAbnlDto = new IotEquipAbnlDto(); + iotEquipAbnlDto.setEquipCode(equipCode); + iotEquipAbnlDto.setEquipName(equipName); + abnlQueryList.add(iotEquipAbnlDto); + + codeNameMap.put(equipCode, equipName); + } + //异常管理中的数据,设备管理 + Map paramMap = new HashMap<>(); + paramMap.put("NOTIN_busiStatus", new String[]{BusiStatusEnum.CLOSE.name(), BusiStatusEnum.FINISHHANDLE.name()}); + paramMap.put("EQ_type", AbnlTypeEnum.EQUIPEXCP.name()); + List abnlEventList = abnlEventDao.findAll(paramMap); + + List abnlList = new ArrayList<>(); + for (AbnlEvent abnlEvent : abnlEventList) { + Long abnlExtendGid = abnlEvent.getAbnlExtendGid(); + Optional byId = abnlExtendDao.findById(abnlExtendGid); + if (byId.isPresent()) { + AbnlExtend abnlExtend = byId.get(); + String context = abnlExtend.getContext(); + IotEquipAbnlDto iotEquipAbnlDto = JSONObject.parseObject(context, IotEquipAbnlDto.class); + if (codeQueryList.contains(iotEquipAbnlDto.getEquipCode())) { + iotEquipAbnlDto.setPhenomenonName(abnlEvent.getMainPhenomenonCode()); + iotEquipAbnlDto.setPhenomenonCode(abnlEvent.getCode()); + abnlList.add(iotEquipAbnlDto); + } + } + } + + //异常管理中的数据,设备管理 +// Map paramMap2 = new HashMap<>(); +// paramMap2.put("NOTIN_busiStatus",new String[]{BusiStatusEnum.CLOSE.name(),BusiStatusEnum.FINISHHANDLE.name()}); +// paramMap2.put("EQ_type", AbnlTypeEnum.MATERIALEXCP.name()); +// List materialList = abnlEventDao.findAll(paramMap2); +// +// List abnlMaterialList = new ArrayList<>(); +// for (IotEquipAbnlDto iotEquipAbnlDto : abnlQueryList) { +// for (AbnlEvent abnlEvent : materialList) { +// +// IotEquipAbnlDto iot = new IotEquipAbnlDto(); +// iot.setEquipCode(iotEquipAbnlDto.getEquipCode()); +// iot.setEquipName(iotEquipAbnlDto.getEquipName()); +// iot.setPhenomenonCode(abnlEvent.getCode()); +// iot.setPhenomenonName(abnlEvent.getMainPhenomenonCode()); +// abnlMaterialList.add(iot); +// } +// } +// +// +// abnlList.addAll(abnlMaterialList); + +// List iotList = new ArrayList<>(); +// +// Object response = restTemplate.postForObject(sdkUrl + "/alert/all", null, Object.class); +// //Object response = restTemplate.postForObject( "http://120.202.38.15:8081/iot/edge/cxf/rongtong-edge-application/alert/all", null, Object.class); +// +// JSONObject responseIot = JSONObject.parseObject(JSON.toJSONString(response)); +// +// if (ObjectUtils.equals(true, responseIot.get("success"))) { +// List iotResponse = JSON.parseArray(responseIot.get("data").toString(), IotResponseEquipAbnlTypeDto.class); +// +// iotResponse.forEach(f->{ +// IotEquipAbnlDto d1 = new IotEquipAbnlDto(); +// BeanUtil.copyProperties(f,d1); +// d1.setPhenomenonCode(f.getField()); +// iotList.add(d1); +// }); +// } + +// List removeList = new ArrayList<>(); +// for (IotEquipAbnlDto iotEquipAbnlDto : iotList) { +// if (!codeQueryList.contains(iotEquipAbnlDto.getEquipCode())){ +// removeList.add(iotEquipAbnlDto); +// }else { +// iotEquipAbnlDto.setEquipName(codeNameMap.get(iotEquipAbnlDto.getEquipCode())); +// } +// } +// iotList.removeAll(removeList); +// abnlList.addAll(iotList); + + //abnlList去重 + // 根据设备编码,异常现象编码两个属性去重 +// abnlList = abnlList.stream().collect( +// Collectors. collectingAndThen( +// Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getEquipCode() + ";" + o.getPhenomenonCode()))), ArrayList::new) +// ); + + //设备编码,设备名称相同的合并phenomenon +// List allList=new ArrayList<>(); +// abnlList.parallelStream().collect(Collectors.groupingBy(o -> (o.getEquipCode()+o.getEquipName()),Collectors.toList())).forEach((id,transfer)->{ +// transfer.stream().reduce((a,b)->new IotEquipAbnlDto(a.getEquipCode(),a.getEquipName(),a.getPhenomenonCode()+","+b.getPhenomenonCode(),a.getPhenomenonName()+","+b.getPhenomenonName())).ifPresent(allList::add); +// }); + + return RestResponse.success("获取设备异常数据成功", abnlList); + } + + public RestResponse getUnplannedStopData(EquipAbnlDataRequest request) { + List gidList = stdAbnlExtendDao.findOperationGidGidByCode(request.getWorkCenterCode()); + + List> equipCodeByGidList = stdAbnlExtendDao.findEquipCodeByGidList(gidList); + if (CollectionUtil.isEmpty(equipCodeByGidList)) { + return RestResponse.error("无数据"); + } + List codeQueryList = new ArrayList<>(); + List abnlQueryList = new ArrayList<>(); + for (Map stringStringMap : equipCodeByGidList) { + String equipCode = stringStringMap.get("equipCode"); + String equipName = stringStringMap.get("equipName"); + codeQueryList.add(equipCode); + + IotEquipAbnlDto iotEquipAbnlDto = new IotEquipAbnlDto(); + iotEquipAbnlDto.setEquipCode(equipCode); + iotEquipAbnlDto.setEquipName(equipName); + abnlQueryList.add(iotEquipAbnlDto); + } + + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List pastDayList = pastDay(sdf.format(date)); + + Map map = new HashMap<>(); + pastDayList.forEach(c -> map.put(c, 0l)); + for (String s : pastDayList) { + String afterDate = getAfterDate(s); + + String hsql = "FROM AbnlEvent WHERE type='EQUIPEXCP' and createTime>'" + s + "' and createTime<'" + afterDate + "'"; + //以工序作业完成时间为基准,查询当天 + List abnlEventList = abnlEventDao.executeQuery(hsql); + + + if (CollectionUtils.isEmpty(abnlEventList)) continue; + long sum = 0l; + for (AbnlEvent abnlEvent : abnlEventList) { + Long abnlExtendGid = abnlEvent.getAbnlExtendGid(); + Optional byId = abnlExtendDao.findById(abnlExtendGid); + if (!byId.isPresent()) continue; + AbnlExtend abnlExtend = byId.get(); + String context = abnlExtend.getContext(); + IotEquipAbnlDto iotEquipAbnlDto = JSONObject.parseObject(context, IotEquipAbnlDto.class); + + if (!codeQueryList.contains(iotEquipAbnlDto.getEquipCode())) continue; + + Date createTime = abnlEvent.getCreateTime().getTime(); + Date closeDate = abnlEvent.getCloseDate(); + Date handleFinishDate = abnlEvent.getHandleFinishDate(); + Date nowDate = new Date(); + if (abnlEvent.getBusiStatus().equals(BusiStatusEnum.CLOSE.name())) { + sum = sum + (closeDate.getTime() - createTime.getTime()); + } else if (abnlEvent.getBusiStatus().equals(BusiStatusEnum.FINISHHANDLE.name())) { + sum = sum + (handleFinishDate.getTime() - createTime.getTime()); + } else { + sum = sum + (nowDate.getTime() - createTime.getTime()); + } + } + map.put(s, sum); + } + + return RestResponse.success("获取设备异常数据成功", map); + } + + /** + * 获取过去第几天的日期 + * + * @param past + * @return + */ + public static String getPastDate(int past, Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - past); + Date today = calendar.getTime(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String result = sdf.format(today); + return result; + } + + /** + * 获取过去7天内的日期数组 + * + * @param time + * @return 日期数组 + */ + public static ArrayList pastDay(String time) { + ArrayList pastDaysList = new ArrayList<>(); + try { + //我这里传来的时间是个string类型的,所以要先转为date类型的。 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = sdf.parse(time); + for (int i = 7; i >= 1; i--) { + pastDaysList.add(getPastDate(i, date)); + } + } catch (ParseException e) { + e.printStackTrace(); + } + return pastDaysList; + } + + + public static String getAfterDate(String time) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = null; + try { + date = sdf.parse(time); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1); + Date today = calendar.getTime(); + String result = sdf.format(today); + return result; + } + + public RestResponse getAbnlException(String workCenterCode) { + List listException = new ArrayList<>(); + //异常管理中的数据 + Map paramMap = new HashMap<>(); + List codeList = stdAbnlExtendDao.findWorkCenterCodesByCode(workCenterCode); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String format = sdf.format(date); + + paramMap.put("NOTIN_busiStatus", new String[]{BusiStatusEnum.CLOSE.name(), BusiStatusEnum.FINISHHANDLE.name()}); + + paramMap.put("GE_createTime",format); + String[] dataCode = codeList.toArray(new String[codeList.size()]); + + + paramMap.put("IN_workCenterCode", dataCode); + LinkedHashSet threeAbnlException = this.findThreeAbnlException(workCenterCode, paramMap); + + return RestResponse.success(threeAbnlException); + } + + + /** + * 查询三种异常 + */ + + + public LinkedHashSet findThreeAbnlException(String workCenterCode, Map paramMap) { + LinkedHashSet set = new LinkedHashSet<>(); + + String[] types = {AbnlTypeEnum.MATERIALEXCP.name(), AbnlTypeEnum.ROUTEEXCP.name(), AbnlTypeEnum.PLANEXCP.name()}; + List abnlEventList = abnlEventDao.findAll(paramMap); + if (CollectionUtil.isNotEmpty(abnlEventList)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + for (AbnlEvent abnlEvent : abnlEventList) { + Long abnlExtendGid = abnlEvent.getAbnlExtendGid(); + Optional byId = abnlExtendDao.findById(abnlExtendGid); + if (byId.isPresent()) { + AbnlExtend abnlExtend = byId.get(); + String context = abnlExtend.getContext(); + IotEquipAbnlDto iotEquipAbnlDto = JSONObject.parseObject(context, IotEquipAbnlDto.class); + //设备异常 + if (abnlEvent.getType().equals(AbnlTypeEnum.EQUIPEXCP.toString())) { + iotEquipAbnlDto.setPhenomenonName(abnlEvent.getMainPhenomenonCode()); + iotEquipAbnlDto.setPhenomenonCode(abnlEvent.getCode()); + Date today = abnlEvent.getCreateTime().getTime(); + String resultTime = sdf.format(today); + resultTime=resultTime.substring(5); + iotEquipAbnlDto.setTime(resultTime); + iotEquipAbnlDto.setTypeException("equip"); + set.add(iotEquipAbnlDto); + + } + + } + } + abnlEventList.stream().forEach(t -> { + if (t.getType().equals(AbnlTypeEnum.QUALITYEXCP.toString())) { + IotEquipAbnlDto iotEquipAbnlDto = new IotEquipAbnlDto(); + iotEquipAbnlDto.setPhenomenonName(t.getMainPhenomenonCode()); + iotEquipAbnlDto.setPhenomenonCode(t.getCode()); + Date today = t.getCreateTime().getTime(); + String resultTime = sdf.format(today); + resultTime=resultTime.substring(5); + iotEquipAbnlDto.setTime(resultTime); + iotEquipAbnlDto.setTypeException("quality"); + set.add(iotEquipAbnlDto); + } + }); + + abnlEventList.stream().forEach(m -> { + if (Arrays.asList(types).contains(m.getType())) { + IotEquipAbnlDto iotEquipAbnlDto = new IotEquipAbnlDto(); + iotEquipAbnlDto.setPhenomenonName(m.getMainPhenomenonCode()); + iotEquipAbnlDto.setPhenomenonCode(m.getCode()); + Date today = m.getCreateTime().getTime(); + String resultTime = sdf.format(today); + resultTime=resultTime.substring(5); + iotEquipAbnlDto.setTime(resultTime); + iotEquipAbnlDto.setTypeException("prodexec"); + set.add(iotEquipAbnlDto); + } + }); + + } + return set; + } + + public Map> getAbnlList(Map abnlParam) { + Map> results = new HashMap<>(); + Map params = new HashMap<>(); + params.put("IN_sfcCode" , abnlParam.keySet()); + List abnlEventList = abnlEventDao.findAllWithoutAssociation(params); + + if(!CollectionUtils.isEmpty(abnlEventList)){ + Map> sfcCodeMap = abnlEventList.stream().collect(Collectors.groupingBy(abnlEvent -> abnlEvent.getSfcCode())); + sfcCodeMap.forEach((k,v) -> { + results.put(k + "_" + abnlParam.get(k) , v); + }); + + Set sfcCodes = abnlEventList.stream().map(abnlEvent -> abnlEvent.getSfcCode()).collect(Collectors.toSet()); + Sets.SetView difference = Sets.difference(abnlParam.keySet(), sfcCodes); + if(difference.size() >= 0){ + HashMap workOrderCodeParam = new HashMap<>(); + difference.forEach(sfcCode -> { + String workOrderCode = abnlParam.get(sfcCode); + if(StringUtil.isNotEmpty(workOrderCode)){ + workOrderCodeParam.put(workOrderCode , sfcCode); + } + }); + + params.clear(); + params.put("IN_workOrderCode" , workOrderCodeParam.keySet()); + abnlEventList = abnlEventDao.findAllWithoutAssociation(params); + if(!CollectionUtils.isEmpty(abnlEventList)){ + Map> workOrderCodeMap = abnlEventList.stream().collect(Collectors.groupingBy(abnlEvent -> abnlEvent.getWorkOrderCode())); + workOrderCodeMap.forEach((k,v) -> { + results.put(workOrderCodeParam.get(k) + "_" + k, v); + }); + } + } + }else{ + params.clear(); + params.put("IN_workOrderCode" , abnlParam.values()); + abnlEventList = abnlEventDao.findAllWithoutAssociation(params); + if(!CollectionUtils.isEmpty(abnlEventList)){ + Map> workOrderCodeMap = abnlEventList.stream().collect(Collectors.groupingBy(abnlEvent -> abnlEvent.getWorkOrderCode())); + abnlParam.forEach((k,v) -> { + if(!CollectionUtils.isEmpty(workOrderCodeMap.get(v))){ + results.put(k + "_" + v, workOrderCodeMap.get(v)); + } + }); + } + } + return results; + } +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/controller/AbnlEventFeignClientImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/controller/AbnlEventFeignClientImpl.java new file mode 100644 index 0000000..4d53b7a --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/controller/AbnlEventFeignClientImpl.java @@ -0,0 +1,482 @@ +package com.qzing.ime.abnl.abnlevent.controller; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; +import com.qzing.core.sys.api.BillSetServiceClient; +import com.qzing.framework.core.utils.DateUtil; +import com.qzing.ieep.context.CurrentContextHelper; +import com.qzing.ieep.context.IeepApplicationContext; +import com.qzing.ieep.context.UserAuthInfo; +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ieep.mail.api.MailSenderClient; +import com.qzing.ieep.mvc.util.UserPermissionUtils; +import com.qzing.ieep.notify.client.NotifySenderClient; +import com.qzing.ieep.notify.dto.NotifySenderParam; +import com.qzing.ieep.roleuserworkcenter.client.RoleUserWorkCenterClient; +import com.qzing.ieep.roleuserworkcenter.model.RoleUserWorkCenterRequest; +import com.qzing.ieep.roleuserworkcenter.model.RoleUserWorkCenterResponse; +import com.qzing.ieep.uaa.api.LoginClient; +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.JsonUtil; +import com.qzing.ime.abnl.abnlevent.CalendarTest; +import com.qzing.ime.abnl.abnlevent.api.AbnlEventFeignClient; +import com.qzing.ime.abnl.abnlevent.application.AbnlEventAppServiceImpl; +import com.qzing.ime.abnl.abnlevent.application.impl.StdAbnlEventAppService; +import com.qzing.ime.abnl.abnlevent.dao.AbnlEventDao; +import com.qzing.ime.abnl.abnlevent.dao.AbnlExtendDao; +import com.qzing.ime.abnl.abnlevent.entity.AbnlEvent; +import com.qzing.ime.abnl.abnlevent.entity.AbnlExtend; +import com.qzing.ime.abnl.abnlevent.entity.AbnlRecord; +import com.qzing.ime.abnl.abnlevent.model.enums.BusiStatusEnum; +import com.qzing.ime.abnl.abnlevent.model.enums.ProcessRecordEnum; +import com.qzing.ime.abnl.abnlevent.model.request.AbnlEventCloseRequest; +import com.qzing.ime.abnl.abnlevent.model.request.AbnlEventCreateRequest; +import com.qzing.ime.abnl.abnlevent.model.request.EquipAbnlDataRequest; +import com.qzing.ime.abnl.abnluserrelation.dao.AbnlUserRelationDao; +import com.qzing.ime.abnl.abnluserrelation.entity.AbnlUserRelation; +import com.qzing.ime.abnl.abnluserrelation.model.enums.BusiTypeEnum; +import com.qzing.ime.abnl.earlywarningnotice.application.EarlyWarningNoticeService; +import com.qzing.ime.abnl.earlywarningnotice.model.response.EarlyWarningNoticeResponse; +import com.qzing.ime.framework.toolkit.exception.ImeExceptionUtils; +import com.qzing.ime.framework.toolkit.utils.ImeI18NUtils; +import com.qzing.ime.framework.toolkit.utils.ImeLogger; +import com.qzing.md.generic.client.api.DataDictClient; +import com.qzing.md.generic.vo.DataDictVo; +import com.qzing.toolkit.spring.api.QZingController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author: yuzhao + * @create: 2021-10-09 + **/ +@QZingController(app = "abnl", domain = "abnlevent") +@Api(tags = "异常事件") +public class AbnlEventFeignClientImpl extends StdAbnlEventFeignClient implements AbnlEventFeignClient { + private ImeLogger imeLogger = ImeLogger.getInstance(StdAbnlEventAppService.class, "al_abnl_event_relation"); + @Autowired + private AbnlEventAppServiceImpl abnlEventAppService; + @Autowired + private AbnlEventDao abnlEventDao; + + @Autowired + private MailSenderClient mailSenderClient; + + @Autowired + private BillSetServiceClient billSetServiceClient; + + @Autowired + private AbnlUserRelationDao abnlUserRelationDao; + + @Autowired + private AbnlExtendDao abnlExtendDao; + @Autowired + private NotifySenderClient notifySenderClient; + + @Autowired + private EarlyWarningNoticeService earlyWarningNoticeService; + + @Autowired + private RoleUserWorkCenterClient roleUserWorkCenterClient; + + @Autowired + private DataDictClient dataDictClient; + + @ApiOperation("异常事件关闭响应") + @PostMapping({"/close"}) + public BaseAbnlResponse closeAbnlEvent(AbnlEventCloseRequest request) { + return abnlEventAppService.closeAbnlEvent(request); + } + + + public RestResponse getEquipAbnlData(EquipAbnlDataRequest request) { + return abnlEventAppService.getEquipAbnlData(request); + } + + + public RestResponse getUnplannedStopData(EquipAbnlDataRequest request) { + return abnlEventAppService.getUnplannedStopData(request); + } + + + @Override + @PostMapping({"getAbnlList"}) + public RestResponse getAbnlList(@RequestBody Map abnlParam) { + Map> abnlMap = abnlEventAppService.getAbnlList(abnlParam); + return RestResponse.success(JSON.toJSONString(abnlMap)); + } + + @Override + @ApiOperation("异常事件逾期响应通知") + @PostMapping({"/replyTimeOut"}) + public RestResponse abnlEventReplyTimeOut() { + Map params = new HashMap<>(); + params.put("EQ_busiStatus", "TORESPONDED"); + params.put("LT_applyDate", new Date(new Date().getTime() - 30 * 60 * 1000)); + List abnlEventList = abnlEventDao.findAll(params); + String code = "ime-abnl#/abnl/abnl/abnlevent/replyTimeOut"; + this.abnlEventNotify(abnlEventList, code); + return RestResponse.success(); + } + + @Override + @ApiOperation("异常事件逾期处置通知") + @PostMapping({"/handleTimeOut"}) + public RestResponse abnlEventHandleTimeOut() { + Map params = new HashMap<>(); + params.put("EQ_busiStatus", "FINISHRESPONSE"); + params.put("LT_startResponseDate", new Date(new Date().getTime() - 30 * 60 * 1000)); + List abnlEventList = abnlEventDao.findAll(params); + String code = "ime-abnl#/abnl/abnl/abnlevent/handleTimeOut"; + this.abnlEventNotify(abnlEventList, code); + return RestResponse.success(); + } + + public void abnlEventNotify(List abnlEventList, String code) { + if (CollectionUtil.isNotEmpty(abnlEventList)) { + RestResponse restResponse = earlyWarningNoticeService.findByCode(code); + if (restResponse.isSuccess()) { + EarlyWarningNoticeResponse earlyWarningNoticeResponse = (EarlyWarningNoticeResponse) restResponse.getData(); + String notifyCode = earlyWarningNoticeResponse.getMsgCode(); + List roleCodeList = new ArrayList<>(); + if ("GENERAL".equals(earlyWarningNoticeResponse.getNoticeLevel())) { + roleCodeList = Arrays.asList(earlyWarningNoticeResponse.getGeneralRoleCode().split(",")); + } else if ("IMPORTANT".equals(earlyWarningNoticeResponse.getNoticeLevel())) { + roleCodeList = Arrays.asList(earlyWarningNoticeResponse.getImportantRoleCode().split(",")); + } + for (String roleCode : roleCodeList) { + RoleUserWorkCenterRequest roleUserWorkCenterRequest = new RoleUserWorkCenterRequest(); + roleUserWorkCenterRequest.setRoleCode(roleCode); + RestResponse responses = roleUserWorkCenterClient.findByRoleCode(roleUserWorkCenterRequest); + if (responses.isSuccess()) { + List responseList = JSONObject.parseArray(responses.getData().toString(), RoleUserWorkCenterResponse.class); + for (RoleUserWorkCenterResponse response : responseList) { + List notifyAbnlEventList = abnlEventList; + if (!"ALL".equals(response.getWorkCenterCode())) { + notifyAbnlEventList = abnlEventList.stream().filter(s -> s.getWorkCenterCode() != null && s.getWorkCenterCode().equals(response.getWorkCenterCode())).collect(Collectors.toList()); + } + if (CollectionUtil.isNotEmpty(notifyAbnlEventList)) { + Map extraParams = new HashMap<>(); + extraParams.put("param1", notifyAbnlEventList.get(0).getCode()); + extraParams.put("param2", this.getDataDictItemName(notifyAbnlEventList.get(0).getType())); + extraParams.put("param3", notifyAbnlEventList.get(0).getMainPhenomenonCode()); + extraParams.put("param4", notifyAbnlEventList.get(notifyAbnlEventList.size() - 1).getCode()); + extraParams.put("param5", this.getDataDictItemName(notifyAbnlEventList.get(notifyAbnlEventList.size() - 1).getType())); + extraParams.put("param6", notifyAbnlEventList.get(notifyAbnlEventList.size() - 1).getMainPhenomenonCode()); + extraParams.put("param7", notifyAbnlEventList.size()); + extraParams.put("param8", cn.hutool.core.date.DateUtil.now()); + NotifySenderParam notifySenderParam = NotifySenderParam.initBuild() + .notifyCode(notifyCode) + .billType("al_abnl_event_relation") + .billId(notifyAbnlEventList.get(0).getGid().toString()) + .senderId(1L) + .receiverId(response.getUserId()) + .extraParams(extraParams) + .buildForPush(); + notifySenderClient.send(notifySenderParam); + } + } + } + } + } + } + } + + public void login() { + // 模拟内部登录 + RestResponse response = IeepApplicationContext.getBean(LoginClient.class).internalLogin("800", "pc", "admin"); + // 转换数据,获取token + Map data = response.convertData(Map.class).getData(); + // 用token获取用户信息 + UserAuthInfo userAuthInfo = UserPermissionUtils.getUserAuthInfo(data.get("token").toString()); + // 将用户信息设置到当前上下文 + CurrentContextHelper.get().setUserAuthInfo(userAuthInfo); + Map httpHeaders = new HashMap<>(); + httpHeaders.put("Authorization", data.get("token").toString()); + CurrentContextHelper.get().setHttpHeaders(httpHeaders); + } + + public String getDataDictItemName(String itemCode) { + this.login(); + Map params = new HashMap(); + params.put("itemCode", itemCode); + JSONObject json = new JSONObject(params); + String jsonParam = json.toString(); + RestResponse response = dataDictClient.getAll(jsonParam); + String ItemName = ""; + if (response.isSuccess()) { + List startDataDictVos = JSONObject.parseArray(response.getData().toString(), DataDictVo.class); + ItemName = startDataDictVos.get(0).getItemName(); + } + return ItemName; + } + + @Override + public RestResponse> unPlannedTime(List equipCodes) { + + + String firstDayOfMonth = CalendarTest.getFirstDayOfMonth(); + String fisrtDayOfThisWeek = CalendarTest.getFisrtDayOfThisWeek(); + String firstDayOfLastMonth = CalendarTest.getFirstDayOfLastMonth(); + String endDayOfLastMonth = CalendarTest.getEndDayOfLastMonth(); + long totalTime = 0l; + /** + * 当天,设备异常完成处置 减去 创建时间 + */ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + Date cuDate = new Date(); + String format = sdf.format(cuDate); + + Map searchParams = new HashMap(); + //上月 + searchParams.put("EQ_type", "EQUIPEXCP"); + searchParams.put("GE_createTime", firstDayOfLastMonth); + searchParams.put("LE_createTime", endDayOfLastMonth); +// searchParams.put("IN_busiStatus", new String[]{"CLOSE", "FINISHHANDLE"}); + + List SYabnlEvents = abnlEventDao.findAll(searchParams); + searchParams.put("GE_createTime", firstDayOfMonth); + searchParams.put("LE_createTime", format + " 23:59:59"); + + + List BZabnlEvents = abnlEventDao.findAll(searchParams); + searchParams.put("GE_createTime", fisrtDayOfThisWeek); + + + List DYabnlEvents = abnlEventDao.findAll(searchParams); + searchParams.put("GE_createTime", format + " 00:00:00"); + + List DTabnlEvents = abnlEventDao.findAll(searchParams); + long syTotalTime = 0l; + long dyTotalTime = 0l; + long dtTotalTime = 0l; + long bzTotalTime = 0l; + if (CollectionUtil.isNotEmpty(SYabnlEvents)) { + + for (AbnlEvent SYabnlEvent : SYabnlEvents) { + Calendar createTime = SYabnlEvent.getCreateTime(); + long startTime = createTime.getTime().getTime(); + String context = SYabnlEvent.getAbnlExtend().getContext(); + JSONObject jsonObject = JSONObject.parseObject(context); + String equipCode = jsonObject.getString("equipCode"); + if (equipCodes.contains(equipCode)) { + if (SYabnlEvent.getBusiStatus().equals("CLOSE") || SYabnlEvent.getBusiStatus().equals("FINISHHANDLE")) { + Date handleFinishDate = SYabnlEvent.getHandleFinishDate(); + if (null != handleFinishDate) { + long endTime = handleFinishDate.getTime(); + + long l = endTime - startTime; + syTotalTime += l; + } + + } else { + long ll = new Date().getTime() - startTime; + if (ll <= 0l) { + ll = 0l; + } + + syTotalTime += ll; + } + } + } + } + if (CollectionUtil.isNotEmpty(DYabnlEvents)) { + for (AbnlEvent DYabnlEvent : DYabnlEvents) { + Calendar createTime = DYabnlEvent.getCreateTime(); + long startTime = createTime.getTime().getTime(); + String context = DYabnlEvent.getAbnlExtend().getContext(); + JSONObject jsonObject = JSONObject.parseObject(context); + String equipCode = jsonObject.getString("equipCode"); + if (DYabnlEvent.getBusiStatus().equals("CLOSE") || DYabnlEvent.getBusiStatus().equals("FINISHHANDLE")) { + + Date handleFinishDate = DYabnlEvent.getHandleFinishDate(); + if (null != handleFinishDate) { + long endTime = handleFinishDate.getTime(); + + long l = endTime - startTime; + dyTotalTime += l; + } + } else { + long ll = new Date().getTime() - startTime; + if (ll <= 0l) { + ll = 0l; + } + + dyTotalTime += ll; + } + + + } + } + if (CollectionUtil.isNotEmpty(BZabnlEvents)) { + for (AbnlEvent BZabnlEvent : BZabnlEvents) { + Calendar createTime = BZabnlEvent.getCreateTime(); + long startTime = createTime.getTime().getTime(); + String context = BZabnlEvent.getAbnlExtend().getContext(); + JSONObject jsonObject = JSONObject.parseObject(context); + String equipCode = jsonObject.getString("equipCode"); + if (BZabnlEvent.getBusiStatus().equals("CLOSE") || BZabnlEvent.getBusiStatus().equals("FINISHHANDLE")) { + + Date handleFinishDate = BZabnlEvent.getHandleFinishDate(); + if (null != handleFinishDate) { + long endTime = handleFinishDate.getTime(); + + long l = endTime - startTime; + bzTotalTime += l; + } + + } else { + long ll = new Date().getTime() - startTime; + if (ll <= 0l) { + ll = 0l; + } + + bzTotalTime += ll; + } + + + } + } + + if (CollectionUtil.isNotEmpty(DTabnlEvents)) { + for (AbnlEvent DTabnlEvent : DTabnlEvents) { + Calendar createTime = DTabnlEvent.getCreateTime(); + long startTime = createTime.getTime().getTime(); + String context = DTabnlEvent.getAbnlExtend().getContext(); + JSONObject jsonObject = JSONObject.parseObject(context); + String equipCode = jsonObject.getString("equipCode"); + if (DTabnlEvent.getBusiStatus().equals("CLOSE") || DTabnlEvent.getBusiStatus().equals("FINISHHANDLE")) { + + Date handleFinishDate = DTabnlEvent.getHandleFinishDate(); + if (null != handleFinishDate) { + long endTime = handleFinishDate.getTime(); + + long l = endTime - startTime; + dtTotalTime += l; + } + } else { + long ll = new Date().getTime() - startTime; + if (ll <= 0l) { + ll = 0l; + } + + dtTotalTime += ll; + } + + + } + + + } + Map hashMap = new HashMap(); + + hashMap.put("dyTotalTime", dyTotalTime); + hashMap.put("dtTotalTime", dtTotalTime); + hashMap.put("syTotalTime", syTotalTime); + hashMap.put("bzTotalTime", bzTotalTime); + return RestResponse.success("异常各阶段查询成功!", hashMap); + } + + @Override + public RestResponse getAbnlException(String workCenterCode) { + return abnlEventAppService.getAbnlException(workCenterCode); + } + + @ApiOperation("异常事件关系创建") + @PostMapping({"/save"}) + public BaseAbnlResponse createAbnlEvent(AbnlEventCreateRequest request) { + String code = request.getCode(); + if (StringUtils.isEmpty(request.getCode())) { + code = this.billSetServiceClient.createNextRunningNum("YCGL"); + } + List allByCode = this.abnlEventDao.findAllByCode(code); + ImeExceptionUtils.isTrue(CollectionUtils.isEmpty(allByCode), ImeI18NUtils.getText("abnl_code_is_exists", new Object[]{code})); + ImeExceptionUtils.isTrue(JsonUtil.isJson(request.getContext()), ImeI18NUtils.getText("context_is_not_json", new Object[]{code})); + AbnlEvent abnlEvent = new AbnlEvent(); + BeanUtil.copyProperties(request, abnlEvent, CopyOptions.create().ignoreNullValue()); + abnlEvent.setCode(code); + abnlEvent.setApplyDate(new Date()); + UserAuthInfo info = CurrentContextHelper.getUserAuthInfo(); + abnlEvent.setApplyUserCode(info.getUserCode()); + abnlEvent.setApplyUserName(info.getUserName()); + abnlEvent.setCreateMode("MANUAL"); + if (request.getAllocatedResponseUserCode() == null && request.getAllocatedResponseUserName() == null) { + List allByBusiTypeAndTypeList = this.abnlUserRelationDao.findAllByBusiTypeAndType(BusiTypeEnum.RESPOND.name(), request.getType()); + String userCodes = (String) allByBusiTypeAndTypeList.stream().map((m) -> { + return m.getUserCode(); + }).collect(Collectors.joining(",")); + String userNames = (String) allByBusiTypeAndTypeList.stream().map((m) -> { + return m.getUserName(); + }).collect(Collectors.joining(",")); + abnlEvent.setAllocatedResponseUserCode(userCodes); + abnlEvent.setAllocatedResponseUserName(userNames); + } + List userLists = null; + if (ObjectUtils.isNotEmpty(request.getAllocatedResponseUserId())) { + userLists = Arrays.stream(request.getAllocatedResponseUserId()) + .map(s -> Long.parseLong(s.trim())).collect(Collectors.toList()); + } + abnlEvent.setBusiStatus(BusiStatusEnum.TORESPONDED.name()); + AbnlExtend abnlExtend = new AbnlExtend(); + abnlExtend.setContext(request.getContext()); + AbnlRecord abnlRecord = new AbnlRecord(); + abnlRecord.setProcessNode(ProcessRecordEnum.TORESPONDED.name()); + abnlRecord.setExcuteDate(new Date()); + abnlRecord.setExcuteUserCode(info.getUserCode()); + abnlRecord.setExcuteUserName(info.getUserName()); + abnlRecord.setRemark(abnlEvent.getApplyRemark()); + abnlRecord.setPlantCode(abnlEvent.getPlantCode()); + abnlRecord.setPlantName(abnlEvent.getPlantName()); + abnlRecord.setCompanyCode(abnlEvent.getCompanyCode()); + abnlRecord.setCompanyName(abnlEvent.getCompanyName()); + List abnlRecordList = new ArrayList(); + abnlRecordList.add(abnlRecord); + AbnlExtend abnlExtendSave = (AbnlExtend) this.abnlExtendDao.saveAndFlush(abnlExtend); + abnlEvent.setAbnlRecordList(abnlRecordList); + abnlEvent.setAbnlExtendGid(abnlExtendSave.getGid()); + AbnlEvent save = (AbnlEvent) this.abnlEventDao.save(abnlEvent); + this.imeLogger.infoToDb(save.getGid(), save.getCode(), "异常事件保存成功"); + senMessage(abnlEvent, userLists); + return BaseAbnlResponse.success(save.getGid(), save.getCode(), "异常事件发起成功"); + } + + void senMessage(AbnlEvent abnlEvent, List userLists) { + Map extraParams = new HashMap<>(); + extraParams.put("code", abnlEvent.getCode()); + extraParams.put("type", abnlEvent.getType()); + extraParams.put("sendDate", DateUtil.formateDatePatternD(new Date())); +// List userLists = new ArrayList<>();// 查找采购 +// userLists.add((1695721949151506432L); + NotifySenderParam notifySenderParam = NotifySenderParam.initBuild() + //消息模板编码 + .notifyCode("ABNL_NOTIFY") + //发送者 + .senderId(1L) + //单据类型 + .billType(abnlEvent.getType()) + //单据id + .billId(abnlEvent.getGid() + "") + //模板额外替换参数 + .extraParams(extraParams) + //接收人 + .receiver(userLists) + .buildForPush(); + //发送待办 + boolean send = notifySenderClient.send(notifySenderParam); + } +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/dao/StdAbnlExtendDao.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/dao/StdAbnlExtendDao.java new file mode 100644 index 0000000..c7586db --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/dao/StdAbnlExtendDao.java @@ -0,0 +1,47 @@ +package com.qzing.ime.abnl.abnlevent.dao; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; +import java.util.Map; + +public interface StdAbnlExtendDao extends AbnlExtendDao { + + + @Query(nativeQuery = true, value = "SELECT\n" + + "\tbmOperationGid \n" + + "FROM\n" + + "\tmasterdata.b_md_bmoperation_workcenter \n" + + "WHERE\n" + + "\tworkCenterGid IN (\n" + + "\tSELECT\n" + + "\t\tgid \n" + + "\tFROM\n" + + "\t\tmasterdata.b_md_bmwork_center \n" + + "\tWHERE\n" + + "\t\tparentGid IN ( SELECT gid FROM masterdata.b_md_bmwork_center WHERE CODE =:workCenterCode ) UNION\n" + + "\tSELECT\n" + + "\t\tgid \n" + + "\tFROM\n" + + "\t\tmasterdata.b_md_bmwork_center \n" + + "WHERE\n" + + "\tCODE =:workCenterCode)") + List findOperationGidGidByCode(@Param("workCenterCode") String workCenterCode); + + + @Query(nativeQuery = true, value = "SELECT code from masterdata.b_md_bmwork_center where parentCode = :workCenterCode or code = :workCenterCode") + List findWorkCenterCodesByCode(@Param("workCenterCode") String workCenterCode); + + + @Query(nativeQuery = true, value = "SELECT\n" + + "\tdistinct(a.code) as equipCode,a.name as equipName\n" + + "FROM\n" + + "\tmasterdata.b_md_bmequip_detail a\n" + + "\tLEFT JOIN masterdata.b_md_bmequip_require b ON a.equipRequireGid = b.gid\n" + + "WHERE\n" + + "\tb.operationGid IN :gidList \n" + + "\tAND b.operationGid IS NOT NULL") + List> findEquipCodeByGidList(List gidList); + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlEvent.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlEvent.java new file mode 100644 index 0000000..3cf2fa2 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlEvent.java @@ -0,0 +1,40 @@ +package com.qzing.ime.abnl.abnlevent.entity; + +import com.qzing.ieep.data.common.DataPermission; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.*; + +/** + * 维保项目 :: 实体 + *

+ * 本代码由代码生成器生成 + * 本代码可能会重复生成,请勿修改除实体方法区域以外的区域 + */ +@Entity +@Table(name = "d_al_abnl_event") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@DataPermission(fields = {"plantCode", "companyCode"}) +public class AbnlEvent extends StdAbnlEvent { + + //产线编码 + private String workCenterCode; + //产线名称 + private String workCenterName; + //异常位置 + private String exceptionLocation; + //是否停机 + private Boolean isStop; + //批次生产单 + private String workOrderCode; + //作业批次 + private String sfcCode; + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlExtend.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlExtend.java new file mode 100644 index 0000000..573b044 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlExtend.java @@ -0,0 +1,30 @@ +package com.qzing.ime.abnl.abnlevent.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + +/** + * 维保项目 :: 实体 + *

+ * 本代码由代码生成器生成 + * 本代码可能会重复生成,请勿修改除实体方法区域以外的区域 + */ +@Entity +@Table(name = "d_al_abnl_extend") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = BaseCacheNameConst.Name) +@DataPermission(fields = {"plantCode", "companyCode"}) +public class AbnlExtend extends StdAbnlExtend { + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlRecord.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlRecord.java new file mode 100644 index 0000000..b8d95f3 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnlevent/entity/AbnlRecord.java @@ -0,0 +1,30 @@ +package com.qzing.ime.abnl.abnlevent.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + +/** + * 维保项目 :: 实体 + *

+ * 本代码由代码生成器生成 + * 本代码可能会重复生成,请勿修改除实体方法区域以外的区域 + */ +@Entity +@Table(name = "d_al_abnl_record") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = BaseCacheNameConst.Name) +@DataPermission(fields = {"plantCode", "companyCode"}) +public class AbnlRecord extends StdAbnlRecord { + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/application/AbnlUserRelationAppServiceImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/application/AbnlUserRelationAppServiceImpl.java new file mode 100644 index 0000000..8317e96 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/application/AbnlUserRelationAppServiceImpl.java @@ -0,0 +1,12 @@ +package com.qzing.ime.abnl.abnluserrelation.application; + +import com.qzing.ime.abnl.abnluserrelation.application.impl.StdAbnlUserRelationAppService; +import com.qzing.toolkit.spring.api.QZingService; + +/** + * @author: yuzhao + * @create: 2021-10-12 + **/ +@QZingService(api = AbnlUserRelationAppService.class) +public class AbnlUserRelationAppServiceImpl extends StdAbnlUserRelationAppService implements AbnlUserRelationAppService { +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/controller/AbnlUserRelationFeignClientImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/controller/AbnlUserRelationFeignClientImpl.java new file mode 100644 index 0000000..8625b5d --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/controller/AbnlUserRelationFeignClientImpl.java @@ -0,0 +1,15 @@ +package com.qzing.ime.abnl.abnluserrelation.controller; + +import com.qzing.ime.abnl.abnluserrelation.api.AbnlUserRelationFeignClient; +import com.qzing.toolkit.spring.api.QZingController; +import io.swagger.annotations.Api; + +/** + * @author: yuzhao + * @create: 2021-10-09 + **/ +@QZingController(app = "abnl", domain = "abnluserrelation") +@Api(tags = "异常用户关系") +public class AbnlUserRelationFeignClientImpl extends StdAbnlUserRelationFeignClient implements AbnlUserRelationFeignClient { + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/entity/AbnlUserRelation.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/entity/AbnlUserRelation.java new file mode 100644 index 0000000..e6ac3e9 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/abnluserrelation/entity/AbnlUserRelation.java @@ -0,0 +1,27 @@ +package com.qzing.ime.abnl.abnluserrelation.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + +/** + * @author: yuzhao + * @create: 2021-10-27 + **/ +@Entity +@Table(name = "d_al_abnl_user_relation") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = BaseCacheNameConst.Name) +@DataPermission(fields = {"plantCode", "companyCode"}) +public class AbnlUserRelation extends StdAbnlUserRelation{ +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/application/HandleModeAppServiceImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/application/HandleModeAppServiceImpl.java new file mode 100644 index 0000000..30b38d4 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/application/HandleModeAppServiceImpl.java @@ -0,0 +1,12 @@ +package com.qzing.ime.abnl.handlemode.application; + +import com.qzing.ime.abnl.handlemode.application.impl.StdHandleModeAppService; +import com.qzing.toolkit.spring.api.QZingService; + +/** + * @author: yuzhao + * @create: 2021-10-12 + **/ +@QZingService(api = HandleModeAppServiceImpl.class) +public class HandleModeAppServiceImpl extends StdHandleModeAppService implements HandleModeAppService { +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/controller/HandleModeFeignClientImpl.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/controller/HandleModeFeignClientImpl.java new file mode 100644 index 0000000..2052300 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/controller/HandleModeFeignClientImpl.java @@ -0,0 +1,17 @@ +package com.qzing.ime.abnl.handlemode.controller; + +import com.qzing.ime.abnl.BaseAbnlResponse; +import com.qzing.ime.abnl.handlemode.api.HandleModeFeignClient; +import com.qzing.ime.abnl.handlemode.model.request.HandleModeUpdateRequest; +import com.qzing.toolkit.spring.api.QZingController; +import io.swagger.annotations.Api; + +/** + * @author: yuzhao + * @create: 2021-10-09 + **/ +@QZingController(app = "abnl", domain = "handlemode") +@Api(tags = "异常用户关系") +public class HandleModeFeignClientImpl extends StdHandleModeFeignClient implements HandleModeFeignClient { + +} diff --git a/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/entity/HandleMode.java b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/entity/HandleMode.java new file mode 100644 index 0000000..8c6075e --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/extend/com/qzing/ime/abnl/handlemode/entity/HandleMode.java @@ -0,0 +1,27 @@ +package com.qzing.ime.abnl.handlemode.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + +/** + * @author: yuzhao + * @create: 2021-11-03 + **/ +@Entity +@Table(name = "d_al_handle_mode") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = BaseCacheNameConst.Name) +@DataPermission(ignore = true) +public class HandleMode extends StdHandleMode { +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeService.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeService.java new file mode 100644 index 0000000..3d17569 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeService.java @@ -0,0 +1,40 @@ +package com.qzing.ime.abnl.earlywarningnotice.application; + +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeCreateRequest; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeUpdateRequest; +import com.qzing.ime.framework.app.ImeCurdAppService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author DWJ + */ +public interface EarlyWarningNoticeService{ + + /** + * 创建 + */ + RestResponse create(EarlyWarningNoticeCreateRequest request); + + /** + * 修改 + */ + RestResponse modify(EarlyWarningNoticeUpdateRequest request); + + /** + * 删除 + */ + RestResponse delete(List gids); + + /** + * 启用/停用 + */ + RestResponse enable(EarlyWarningNoticeUpdateRequest request); + + + RestResponse findByCode(String code); +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeServiceImpl.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeServiceImpl.java new file mode 100644 index 0000000..e339929 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/application/EarlyWarningNoticeServiceImpl.java @@ -0,0 +1,188 @@ +package com.qzing.ime.abnl.earlywarningnotice.application; + +import cn.hutool.core.util.ObjectUtil; +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.abnl.earlywarningnotice.dao.EarlyWarningNoticeDao; +import com.qzing.ime.abnl.earlywarningnotice.entity.EarlyWarningNotice; +import com.qzing.ime.abnl.earlywarningnotice.entity.EarlyWarningNoticeDetail; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeCreateRequest; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeUpdateRequest; +import com.qzing.ime.abnl.earlywarningnotice.model.response.EarlyWarningNoticeResponse; +import com.qzing.ime.framework.toolkit.exception.ImeExceptionUtils; +import com.qzing.scheduler.api.CloudJobClient; +import com.qzing.scheduler.dto.CloudJobDto; +import com.qzing.scheduler.dto.CloudJobState; +import com.qzing.scheduler.entity.CloudJob; +import com.qzing.toolkit.spring.api.QZingService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author DWJ + */ +@QZingService(api = EarlyWarningNoticeService.class) +@Slf4j +public class EarlyWarningNoticeServiceImpl implements EarlyWarningNoticeService { + + @Autowired + private EarlyWarningNoticeDao earlyWarningNoticeDao; + + @Autowired + private CloudJobClient cloudJobClient; + + @Override + public RestResponse create(EarlyWarningNoticeCreateRequest request) { + EarlyWarningNotice oEarlyWarningNotice = earlyWarningNoticeDao.findFirstByCode(request.getCode()); + if (!ObjectUtils.isEmpty(oEarlyWarningNotice)) { + throw new IllegalArgumentException("已存在当前编码的预警管理配置"); + } + EarlyWarningNotice earlyWarningNotice = new EarlyWarningNotice(); + BeanUtils.copyProperties(request, earlyWarningNotice); + earlyWarningNotice.setStatus("2"); + earlyWarningNoticeDao.save(earlyWarningNotice); + return RestResponse.success(); + } + + @Override + public RestResponse modify(EarlyWarningNoticeUpdateRequest request) { + EarlyWarningNotice earlyWarningNotice = earlyWarningNoticeDao.findByGid(request.getGid()); + BeanUtils.copyProperties(request, earlyWarningNotice); + earlyWarningNoticeDao.save(earlyWarningNotice); + return RestResponse.success(); + } + + @Override + public RestResponse delete(List gids) { + List deleteJobIds = new ArrayList<>(); + gids.forEach(f -> { + //删除实体 + EarlyWarningNotice earlyWarningNotice = earlyWarningNoticeDao.findByGid(f); + if (ObjectUtil.isNotEmpty(earlyWarningNotice.getJobId())) { + CloudJobDto cloudJobId = new CloudJobDto(); + cloudJobId.setJobId(earlyWarningNotice.getJobId()); + RestResponse byId = this.cloudJobClient.getById(cloudJobId); + if (ObjectUtil.isNotEmpty(byId.getData())) { + deleteJobIds.add(cloudJobId); + } + } + earlyWarningNoticeDao.delete(earlyWarningNotice); + }); + //删除定时任务 + if (!CollectionUtils.isEmpty(deleteJobIds)) { + RestResponse restDeleteResponse = this.cloudJobClient.deleteById(deleteJobIds); + if (!restDeleteResponse.getCode().equals("0000")) { + ImeExceptionUtils.error("平台删除定时任务失败!"); + } + } + return RestResponse.success(); + } + + @Override + public RestResponse enable(EarlyWarningNoticeUpdateRequest request) { + EarlyWarningNotice earlyWarningNotice = earlyWarningNoticeDao.findByGid(request.getGid()); + //及时类型的直接存值,不做定时任务 + if ("TIMELY".equals(earlyWarningNotice.getDetailRateType())) { + earlyWarningNotice.setStatus(request.getStatus()); + earlyWarningNoticeDao.save(earlyWarningNotice); + return RestResponse.success(); + } + if ("1".equals(request.getStatus())) { + //启用 + if (ObjectUtil.isNotEmpty(earlyWarningNotice.getJobId())) { + //不为空则恢复相应的定时任务 + CloudJobState cloudJobState = new CloudJobState(); + cloudJobState.setJobId(earlyWarningNotice.getJobId()); + RestResponse response = cloudJobClient.resumeById(cloudJobState); + if (!response.getCode().equals("0000")) { + ImeExceptionUtils.error("定时任务修改失败!"); + } + } else { + //为空则创建定时任务 + CloudJob cloudJob = new CloudJob(); + //设置启用和名称 + cloudJob.setStatus(true); + cloudJob.setName(earlyWarningNotice.getName() + "定时任务"); + String detailRateType = earlyWarningNotice.getDetailRateType(); + //执行频率类型(“FIXED:固定间隔,DETAIL:明细设置,4:CRON:表达式设置”) + cloudJob.setFrequencyType(detailRateType); + //固定间隔 - 定时执行类型:SECOND:秒,MINUTE:分钟,HOUR:时,DAILY:天 + if ("FIXED".equals(detailRateType)) { + cloudJob.setDetailRateType("DAILY"); + cloudJob.setFixedRateType(earlyWarningNotice.getFixedRateType()); + cloudJob.setFixedRateValue(earlyWarningNotice.getFixedRateValue()); + //cloudJob.setHours(earlyWarningNotice.getHours()); + //cloudJob.setMinutes(earlyWarningNotice.getMinutes()); + } else if ("DETAIL".equals(detailRateType)) { + //明细类型的记录执行小时数和执行分钟数(例如每天8点执行一次的) + cloudJob.setDetailRateType("DAILY"); + cloudJob.setDetailHour(earlyWarningNotice.getDetailHour()); + cloudJob.setDetailMinute(earlyWarningNotice.getDetailMinute()); + } + //设置开始时间 + if (!ObjectUtils.isEmpty(earlyWarningNotice.getStartTime())) { + cloudJob.setStartTime(earlyWarningNotice.getStartTime()); + cloudJob.setStartTimeFlag(false); + } else { + //没有开始时间设置为立即执行 + cloudJob.setStartTimeFlag(true); + } + //设置结束时间 + if (!ObjectUtils.isEmpty(earlyWarningNotice.getEndTime())) { + cloudJob.setEndTime(earlyWarningNotice.getEndTime()); + //不持续执行 + cloudJob.setEndTimeFlag(false); + } else { + //持续执行 + cloudJob.setEndTimeFlag(true); + } + //设置服务名称 + String[] codes = earlyWarningNotice.getCode().split("#"); + cloudJob.setServiceName(codes[0]); + //设置保存记录 + cloudJob.setWriteBizHistory("1"); + cloudJob.setWriteHistory("1"); + + //设置调度调用接口和参数 + cloudJob.setUri(codes[1]); + cloudJob.setRetry(0); + cloudJob.setWriteBizHistory("0"); + cloudJob.setWriteHistory("0"); + RestResponse restResponse = cloudJobClient.saveOrUpdate(cloudJob); + String jobId = (String) restResponse.getData(); + //更新定时调度id到质检单模板 + earlyWarningNotice.setJobId(Long.valueOf(jobId)); + } + earlyWarningNotice.setStatus("1"); + } else if ("2".equals(request.getStatus())) { + //停用 + CloudJobState cloudJobState = new CloudJobState(); + cloudJobState.setJobId(earlyWarningNotice.getJobId()); + RestResponse response = cloudJobClient.pausedById(cloudJobState); + if (!response.getCode().equals("0000")) { + ImeExceptionUtils.error("定时任务停用失败!"); + } + earlyWarningNotice.setStatus("2"); + } + earlyWarningNoticeDao.save(earlyWarningNotice); + return RestResponse.success(); + } + + @Override + public RestResponse findByCode(String code) { + EarlyWarningNotice earlyWarningNotice = earlyWarningNoticeDao.findFirstByCode(code); + if (ObjectUtils.isEmpty(earlyWarningNotice)) { + return RestResponse.error("未查询到相关配置"); + } else { + EarlyWarningNoticeResponse earlyWarningNoticeResponse = new EarlyWarningNoticeResponse(); + BeanUtils.copyProperties(earlyWarningNotice, earlyWarningNoticeResponse); + return RestResponse.success(earlyWarningNoticeResponse); + } + } + +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/controller/EarlyWarningNoticeClientImpl.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/controller/EarlyWarningNoticeClientImpl.java new file mode 100644 index 0000000..547a28d --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/controller/EarlyWarningNoticeClientImpl.java @@ -0,0 +1,67 @@ +package com.qzing.ime.abnl.earlywarningnotice.controller; + +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.abnl.earlywarningnotice.api.EarlyWarningNoticeClient; +import com.qzing.ime.abnl.earlywarningnotice.application.EarlyWarningNoticeService; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeCreateRequest; +import com.qzing.ime.abnl.earlywarningnotice.model.request.EarlyWarningNoticeUpdateRequest; +import com.qzing.toolkit.spring.api.QZingController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @author DWJ + */ +@QZingController(app = "abnl", domain = "earlyWarningNotice") +public class EarlyWarningNoticeClientImpl implements EarlyWarningNoticeClient { + + @Autowired + private EarlyWarningNoticeService earlyWarningNoticeService; + + /** + * 创建 + */ + @Override + @PostMapping("/create") + public RestResponse create(@RequestBody EarlyWarningNoticeCreateRequest request){ + return earlyWarningNoticeService.create(request); + } + + /** + * 修改 + */ + @Override + @PostMapping("/modify") + public RestResponse modify(@RequestBody EarlyWarningNoticeUpdateRequest request){ + return earlyWarningNoticeService.modify(request); + } + + /** + * 删除 + */ + @Override + @PostMapping("/delete") + public RestResponse delete(@RequestBody List gids){ + return earlyWarningNoticeService.delete(gids); + } + + /** + * 启用/停用 + */ + @Override + @PostMapping("/enable") + public RestResponse enable(@RequestBody EarlyWarningNoticeUpdateRequest request){ + return earlyWarningNoticeService.enable(request); + } + + @Override + @PostMapping("/findByCode") + public RestResponse findByCode(@RequestParam(value = "code") String code) { + return earlyWarningNoticeService.findByCode(code); + } + +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDao.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDao.java new file mode 100644 index 0000000..21a3f65 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDao.java @@ -0,0 +1,15 @@ +package com.qzing.ime.abnl.earlywarningnotice.dao; + +import com.qzing.framwork.domain.dao.ImeDao; +import com.qzing.ime.abnl.earlywarningnotice.entity.EarlyWarningNotice; + +/** + * @author DWJ + */ +public interface EarlyWarningNoticeDao extends ImeDao { + + EarlyWarningNotice findByGid(Long gid); + + EarlyWarningNotice findFirstByCode(String code); + +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDetailDao.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDetailDao.java new file mode 100644 index 0000000..1f01697 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/dao/EarlyWarningNoticeDetailDao.java @@ -0,0 +1,10 @@ +package com.qzing.ime.abnl.earlywarningnotice.dao; + +import com.qzing.framwork.domain.dao.ImeDao; +import com.qzing.ime.abnl.earlywarningnotice.entity.EarlyWarningNoticeDetail; + +/** + * @author DWJ + */ +public interface EarlyWarningNoticeDetailDao extends ImeDao { +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNotice.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNotice.java new file mode 100644 index 0000000..b3558e0 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNotice.java @@ -0,0 +1,152 @@ +package com.qzing.ime.abnl.earlywarningnotice.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import com.qzing.ime.framework.domain.entity.ImeOrgBaseEntity; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; +import java.util.Date; +import java.util.List; + +/** + * @author DWJ + */ +@Entity +@Table(name = "early_warning_notice") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = BaseCacheNameConst.Name) +@DataPermission(fields = {"plantCode", "companyCode"}) +public class EarlyWarningNotice extends ImeOrgBaseEntity { + + /** + * 预警类型编码 + */ + private String code; + + /** + * 预警类型名称 + */ + private String name; + + /** + * 消息模板编码 + */ + private String msgCode; + + /** + * 消息模板名称 + */ + private String msgName; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 执行方式(FIXED:固定间隔,DETAIL:明细设置,TIMELY:及时) + */ + private String detailRateType; + + /** + * 固定间隔 - 定时执行类型:SECOND:秒,MINUTE:分钟,HOUR:时,DAILY:天 + */ + private String fixedRateType; + + /** + * 固定间隔 - 定时执行间隔:默认为 0 + */ + private Integer fixedRateValue; + + /** + * 明细设置 - 执行时间小时数 + */ + private Integer detailHour; + + /** + * 明细设置 - 执行时间分钟数 + */ + private Integer detailMinute; + + /** + * 及时类型 - 间隔时长 + */ + private Integer timelyValue; + + /** + * 及时类型 - 时间单位(分钟、小时) + */ + private String timelyType; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 备注 + */ + private String remark; + + /** + * 状态(启用|1,停用|2) + */ + private String status; + + /** + * 定时任务id + */ + private Long jobId; + + /** + * 预警级别(一般、重要) + */ + private String noticeLevel; + + /** + * 一般预警接收角色id + */ + private String generalRoleId; + + /** + * 一般预警接收角色编码 + */ + private String generalRoleCode; + + /** + * 一般预警接收角色名称 + */ + private String generalRoleName; + + /** + * 重要预警接收角色id + */ + private String importantRoleId; + + /** + * 重要预警接收角色编码 + */ + private String importantRoleCode; + + /** + * 重要预警接收角色名称 + */ + private String importantRoleName; + + /** + * 明细 + */ + //@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY) + //@JoinColumn(name = "noticeGid") + //private List detailList; + +} diff --git a/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNoticeDetail.java b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNoticeDetail.java new file mode 100644 index 0000000..51974b2 --- /dev/null +++ b/abnl-RTHIT-service-extend/src/main/java/com/qzing/ime/abnl/earlywarningnotice/entity/EarlyWarningNoticeDetail.java @@ -0,0 +1,51 @@ +package com.qzing.ime.abnl.earlywarningnotice.entity; + +import com.qzing.ieep.data.common.DataPermission; +import com.qzing.ime.framework.constant.BaseCacheNameConst; +import com.qzing.ime.framework.domain.entity.ImeOrgBaseEntity; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + +/** + * @author DWJ + */ +@Entity +@Table(name = "early_warning_notice_detail") +@DiscriminatorColumn(name = "entitytype", discriminatorType = DiscriminatorType.STRING) +@DiscriminatorValue("Product") +@NoArgsConstructor +@Getter +@Setter +@DataPermission(fields = {"plantCode", "companyCode"}) +public class EarlyWarningNoticeDetail extends ImeOrgBaseEntity { + + /** + * 主表gid + */ + private Long noticeGid; + + /** + * 车间编码 + */ + private String workCenterCode; + + /** + * 车间名称 + */ + private String workCenterName; + + /** + * 接收人编码 + */ + private String userCode; + + /** + * 接收人名称 + */ + private String userName; + +} diff --git a/abnl-RTHIT-service-parent.iml b/abnl-RTHIT-service-parent.iml new file mode 100644 index 0000000..f409c0e --- /dev/null +++ b/abnl-RTHIT-service-parent.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-service-start/abnl-RTHIT-service-start.iml b/abnl-RTHIT-service-start/abnl-RTHIT-service-start.iml new file mode 100644 index 0000000..f72511a --- /dev/null +++ b/abnl-RTHIT-service-start/abnl-RTHIT-service-start.iml @@ -0,0 +1,505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/abnl-RTHIT-service-start/pom.xml b/abnl-RTHIT-service-start/pom.xml new file mode 100644 index 0000000..a422b19 --- /dev/null +++ b/abnl-RTHIT-service-start/pom.xml @@ -0,0 +1,198 @@ + + + + + abnl-RTHIT-service-parent + com.qzing.mes.abnl + 1.0.1-SNAPSHOT + + 4.0.0 + + abnl-RTHIT-service-start + ${abnl-RTHIT-version} + ${packaging} + + + com.qzing.mes.abnl + abnl-RTHIT-service-extend + ${abnl-RTHIT-version} + + + + com.qzing + ime-framework-code-generator + ${revision} + + + + com.graphql-java + graphiql-spring-boot-starter + + + + + org.redisson + redisson-hibernate-53 + + + de.ruedigermoeller + fst + + + com.qzing.ieep2 + ieep2-starter-groovy + + + + com.qzing.ieep2 + ieep2-starter-config + + + + com.qzing.ieep2 + ieep2-starter-mvc + + + + com.qzing.ieep2 + ieep2-starter-log + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.qzing.ieep2 + ieep2-starter-data + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + dev + + dev + jar + + + true + + + + test + + test + war + + + + prod + + war + prod + + + + + + ime-prodexec-${project.version} + + + ${project.basedir}/src/main/resources + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + + true + + lib/ + + com.qzing.ime.abnl.StartApplication + + + + + + org.apache.maven.plugins + maven-shade-plugin + + false + + + + package + + shade + + + + + + com.qzing* + + + true + exec + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + prepare-package + + copy-dependencies + + + ${project.build.directory}/lib + + com.qzing + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.1 + + true + + + + + + diff --git a/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalErrorController.java b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalErrorController.java new file mode 100644 index 0000000..d511a31 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalErrorController.java @@ -0,0 +1,72 @@ +package com.qzing.ime.abnl; + + +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ime.framework.toolkit.exception.ImeException; +import com.qzing.ime.framework.toolkit.exception.ImeImportException; +import com.qzing.ime.framework.toolkit.utils.ImeI18NUtils; +import com.qzing.toolkit.spring.controller.request.VlidateFailedException; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import javax.validation.ConstraintViolation; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +@ControllerAdvice +@Order(Ordered.HIGHEST_PRECEDENCE) +public class AbnlGlobalErrorController { + + static final String STATUS_CODE = "10000"; + + @ExceptionHandler({Exception.class}) + @ResponseBody + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public RestResponse handleException(Exception e) { + RestResponse restResponse = RestResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.toString(), e.getMessage(), Collections.EMPTY_MAP); + e.printStackTrace(); + return restResponse; + } + + @ExceptionHandler({ImeImportException.class}) + @ResponseBody + @ResponseStatus(HttpStatus.OK) + public RestResponse handleException(ImeImportException e) { + return RestResponse.error(String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value()),e.getMessage()); + } + + @ExceptionHandler({ImeException.class}) + @ResponseBody + @ResponseStatus(HttpStatus.OK) + public RestResponse handleException(ImeException e) { + Map extra = new HashMap<>(); + extra.put("imeException", true); + extra.put("imeExceptionCode", STATUS_CODE); + extra.put("imeExceptionMessage", e.getMessage()); + return RestResponse.error(STATUS_CODE,e.getMessage(),extra); + } + + /** + * 处理实体字段校验不通过异常 + * @param ex + * @return + */ + @ExceptionHandler(VlidateFailedException.class) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ResponseBody + public RestResponse validationError(VlidateFailedException ex) { + StringBuilder stringBuilder = new StringBuilder(); + for (ConstraintViolation constraintViolation : ex.getConstraintViolationSet()){ + stringBuilder.append(ImeI18NUtils.getText(constraintViolation.getMessageTemplate())+";"); + } + RestResponse result = RestResponse.error(HttpStatus.INTERNAL_SERVER_ERROR.toString(), stringBuilder.toString(), Collections.EMPTY_MAP); + ex.printStackTrace(); + return result; + } +} diff --git a/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalResponseHandler.java b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalResponseHandler.java new file mode 100644 index 0000000..cb96b87 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/AbnlGlobalResponseHandler.java @@ -0,0 +1,130 @@ +package com.qzing.ime.abnl; + +import com.qzing.framework.core.web.GlobalResponse; +import com.qzing.framework.core.web.PageBeanResponse; +import com.qzing.ieep.data.common.RestResponse; +import com.qzing.ieep.data.jpa.util.DataUtils; +import com.qzing.ime.framework.dto.BaseBatchExtraResponse; +import com.qzing.ime.framework.rest.GlobalHandlerProperties; +import com.qzing.ime.framework.toolkit.utils.ImeI18NUtils; +import com.qzing.orchestration.vo.OrchestrationResult; +import com.qzing.toolkit.spring.api.QZingController; +import com.qzing.ui.utils.PathPatternUtil; +import com.qzing.ui.web.UiGlobalResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.core.MethodParameter; +import org.springframework.core.annotation.Order; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.stereotype.Controller; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + +/** + * 全局返回结果处理器 + * + *

+ * 针对RestController和Controller控制器的非GlobalResponse全局返回结果进行统一拦截处理封装。
+ * 针对spring-data、mybatisplus的分页对象返回进行统一的PageBean封装并返回全局结果。
+ *

+ */ +@Slf4j +@ControllerAdvice(annotations = {RestController.class, Controller.class, QZingController.class}) +@Order(10000) +@EnableConfigurationProperties({GlobalHandlerProperties.class}) +public class AbnlGlobalResponseHandler implements ResponseBodyAdvice { + + @Autowired + private GlobalHandlerProperties globalHandlerProperties; + + @Override + public boolean supports(MethodParameter returnType, Class converterType) { + return true; + } + + @Override + public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, + Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { + + // 排除指定url的全局响应处理 + String path = request.getURI().getPath(); + Collection excludeUrls = new HashSet<>(); + if (globalHandlerProperties != null) { + excludeUrls.addAll(globalHandlerProperties.getResponseHandlerExcludeUrls()); + } + if (excludeUrls.size() > 0 && PathPatternUtil.matches(excludeUrls, path)) { + return body; + } + + Map extra = new HashMap<>(); + + if (body instanceof RestResponse) { + return body; + } + if (body instanceof GlobalResponse) { + return body; + } + if (body instanceof UiGlobalResponse) { + return body; + } + if (body instanceof BaseBatchExtraResponse) { + extra.putAll(DataUtils.parseMap(body)); + return RestResponse.success(null, extra); + } + if (body instanceof OrchestrationResult) { + OrchestrationResult result = (OrchestrationResult) body; + if (result != null) { + Map bpmExtra = result.getExtra(); + if (bpmExtra != null) { + Boolean imeException = (Boolean) bpmExtra.get("imeException"); + if (imeException != null && imeException) { + result.setSuccess(false); + String imeExceptionCode = (String) bpmExtra.get("imeExceptionCode"); + String imeExceptionMessage = bpmExtra.get("imeExceptionMessage") == null ? "执行编排位置异常,请查看编排实例ID" + result.getInstanceId() : (String) bpmExtra.get("imeExceptionMessage"); + if (!StringUtils.isEmpty(imeExceptionCode)) { + result.setCode(imeExceptionCode); + } + if (!StringUtils.isEmpty(imeExceptionMessage)) { + result.setMessage(imeExceptionMessage); + } + } + } + } + return result; + } + + final String returnTypeName = returnType.getParameterType().getName(); + // void直接返回 + if ("void".equals(returnTypeName)) { + return RestResponse.success(null); + } + final Class returnTypeClass = returnType.getParameterType(); + if (PageBeanResponse.class.isAssignableFrom(returnTypeClass)) { + return body; + } + return RestResponse.success(null, body); + } + + private String getActionI18nByPath(String path) { + if (path.endsWith("/")) { + path = path.substring(path.length() - 1); + } + //将/equip/equip/inspectstandard/save 换成/ime/equip/equip/save + //第一固定换成ime + int secondIndex = path.indexOf("/", path.indexOf("/") + 1); + path = "/ime" + path.substring(secondIndex); + //将/替换成为. + String i18nKey = path.substring(1).replace('/', '.') + ".action"; + return ImeI18NUtils.getTextWithReturnNull(i18nKey); + } +} diff --git a/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/StartApplication.java b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/StartApplication.java new file mode 100644 index 0000000..7529390 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/java/com/qzing/ime/abnl/StartApplication.java @@ -0,0 +1,14 @@ +package com.qzing.ime.abnl; + + +import com.qzing.ime.framework.EnableImeServiceApplication; +import org.springframework.boot.SpringApplication; + +@EnableImeServiceApplication +public class StartApplication { + + public static void main(String[] args) { + SpringApplication.run(StartApplication.class, args); + } + +} diff --git a/abnl-RTHIT-service-start/src/main/resources/application.yml b/abnl-RTHIT-service-start/src/main/resources/application.yml new file mode 100644 index 0000000..cfeb6d6 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/resources/application.yml @@ -0,0 +1,16 @@ +### 使用topic+routeKey机制,实现同一个主题可以被多个消费者订阅,但不能被多个环境订阅的功能,每一个环境routeKey唯一 +#eapcloud: +# amqp: +# #routekey 前缀 +## route-key-suffix: ${spring.profiles}${eapcloud.developer:} +# route-key-suffix: wuhan +# #exchange模式 +# exchange-mode: topic #topic, fanout, direct, header +# connection-factory: +# #主机 +# host: 192.168.138.166 +# #用户名 +# username: guest +# #用户密码 +# password: guest +# virtualhost: / \ No newline at end of file diff --git a/abnl-RTHIT-service-start/src/main/resources/bootstrap.yml b/abnl-RTHIT-service-start/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..7a75214 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/resources/bootstrap.yml @@ -0,0 +1,22 @@ +spring: + main: + allow-bean-definition-overriding: true + transaction: + default-timeout: 600 #默认10分钟超时 + application: + name: ${APPLICATION_NAME} + cloud: + config: + override-none: true + nacos: + config: + shared-configs: + - common.yml + server-addr: ${NACOS_ADDR}:8848 + namespace: ${NACOS_NAMESPACE} + file-extension: yml + discovery: + namespace: ${NACOS_NAMESPACE} + server-addr: ${NACOS_ADDR} + service: ${spring.application.name} + group: DEFAULT_GROUP \ No newline at end of file diff --git a/abnl-RTHIT-service-start/src/main/resources/redisson.yaml b/abnl-RTHIT-service-start/src/main/resources/redisson.yaml new file mode 100644 index 0000000..a4f8712 --- /dev/null +++ b/abnl-RTHIT-service-start/src/main/resources/redisson.yaml @@ -0,0 +1,18 @@ +singleServerConfig: + idleConnectionTimeout: 10000 + timeout: 3000 + retryAttempts: 3 + retryInterval: 1500 + password: redis24 + subscriptionsPerConnection: 5 + clientName: null + address: "redis://192.168.1.239:16379" + subscriptionConnectionMinimumIdleSize: 1 + subscriptionConnectionPoolSize: 50 + connectionMinimumIdleSize: 32 + connectionPoolSize: 64 + database: 15 +threads: 0 +nettyThreads: 0 +codec: ! {} +transportMode : "NIO" diff --git a/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryBeanExt.java b/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryBeanExt.java new file mode 100644 index 0000000..07bbfe2 --- /dev/null +++ b/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryBeanExt.java @@ -0,0 +1,54 @@ +package com.qzing.framework.query.advance.jpa; + +import com.qzing.framework.core.repository.proxy.HuijuRepositoryProxyPostProcessor; +import com.qzing.ieep.context.IeepApplicationContext; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.ListableBeanFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; +import org.springframework.data.repository.core.support.RepositoryFactorySupport; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; + +import javax.persistence.EntityManager; + +@SuppressWarnings("rawtypes") +public class JpaRepositoryFactoryBeanExt extends JpaRepositoryFactoryBean implements ApplicationContextAware { + + static ApplicationContext context; + + @Nullable + private HuijuRepositoryProxyPostProcessor huijuRepositoryProxyPostProcessor; + + @SuppressWarnings("unchecked") + public JpaRepositoryFactoryBeanExt(Class repositoryInterface) { + super(repositoryInterface); + } + + @Override + protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) { + JpaRepositoryFactoryExt ext = new JpaRepositoryFactoryExt(entityManager); + if (huijuRepositoryProxyPostProcessor != null) { + ext.addRepositoryProxyPostProcessor(huijuRepositoryProxyPostProcessor); + } + return ext; + } + + @Override + public void setBeanFactory(BeanFactory beanFactory) { + Assert.isInstanceOf(ListableBeanFactory.class, beanFactory); + + super.setBeanFactory(beanFactory); + + ListableBeanFactory listableBeanFactory = (ListableBeanFactory) beanFactory; + this.huijuRepositoryProxyPostProcessor = new HuijuRepositoryProxyPostProcessor(listableBeanFactory); + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + context = applicationContext; + IeepApplicationContext.setApplicationContext(applicationContext); + } +} diff --git a/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryExt.java b/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryExt.java new file mode 100644 index 0000000..2691a57 --- /dev/null +++ b/abnl-RTHIT-service-start/src/test/java/com/qzing/framework/query/advance/jpa/JpaRepositoryFactoryExt.java @@ -0,0 +1,71 @@ +//package com.qzing.framework.query.advance.jpa; +// +//import com.qzing.ieep.data.jpa.dao.JpaDaoImpl; +//import com.qzing.ieep.data.jpa.dao.MultiTenancyJpaDaoImpl; +//import com.qzing.ieep.data.jpa.entity.BaseMultiTenancyEntity; +//import org.springframework.data.jpa.provider.PersistenceProvider; +//import org.springframework.data.jpa.provider.QueryExtractor; +//import org.springframework.data.jpa.repository.support.JpaRepositoryFactory; +//import org.springframework.data.jpa.repository.support.SimpleJpaRepository; +//import org.springframework.data.repository.core.RepositoryInformation; +//import org.springframework.data.repository.core.RepositoryMetadata; +//import org.springframework.data.repository.query.QueryLookupStrategy; +//import org.springframework.data.repository.query.QueryLookupStrategy.Key; +//import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; +// +//import javax.persistence.EntityManager; +//import java.util.Optional; +// +//public class JpaRepositoryFactoryExt extends JpaRepositoryFactory { +// +// private final EntityManager entityManager; +// private final QueryExtractor extractor; +// +// public JpaRepositoryFactoryExt(EntityManager entityManager) { +// super(entityManager); +// this.entityManager = entityManager; +// this.extractor = PersistenceProvider.fromEntityManager(entityManager); +// } +// +// +// // 升级SpringCloud G版本以后的代码 +// @Override +// protected Optional getQueryLookupStrategy(Key key, QueryMethodEvaluationContextProvider evaluationContextProvider) { +// return super.getQueryLookupStrategy(key, evaluationContextProvider).map(m -> new QueryLookupStrategyDelegate(entityManager, extractor, m)); +// } +// +// /** +// * F版本的代码 +// */ +//// @Override +//// protected Optional getQueryLookupStrategy(@Nullable Key key, +//// EvaluationContextProvider evaluationContextProvider) { +//// return super.getQueryLookupStrategy(key, evaluationContextProvider).map(m -> new QueryLookupStrategyDelegate(entityManager, extractor, m)); +//// } +// private EapcloudConfig eapcloudConfig; +// +// public EapcloudConfig getEapcloudConfig() { +// if (this.eapcloudConfig == null) { +// this.eapcloudConfig = JpaRepositoryFactoryBeanExt.context.getBean(EapcloudConfig.class); +// } +// +// return this.eapcloudConfig; +// } +// +// @Override +// protected SimpleJpaRepository getTargetRepository(RepositoryInformation information, EntityManager entityManager) { +// Class domainType = information.getDomainType(); +// if (this.getEapcloudConfig().getMultitenancy().isEnabled() && BaseMultiTenancyEntity.class.isAssignableFrom(domainType)) { +// System.out.println("为实体" + domainType + "初始化多租户基础Dao。"); +// return new MultiTenancyJpaDaoImpl(this.getEntityInformation(domainType), entityManager); +// } else { +// return new JpaDaoImpl(this.getEntityInformation(information.getDomainType()), entityManager); +// } +// } +// +// @Override +// protected Class getRepositoryBaseClass(RepositoryMetadata metadata) { +// Class domainType = metadata.getDomainType(); +// return this.getEapcloudConfig().getMultitenancy().isEnabled() && BaseMultiTenancyEntity.class.isAssignableFrom(domainType) ? MultiTenancyJpaDaoImpl.class : JpaDaoImpl.class; +// } +//} diff --git a/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/ImeGenerator.java b/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/ImeGenerator.java new file mode 100644 index 0000000..dccc3f1 --- /dev/null +++ b/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/ImeGenerator.java @@ -0,0 +1,44 @@ +package com.qzing.ime.abnl; + +import com.qzing.ime.framework.code.spi.CodeGenerator; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +/** + * IME代码生成器 + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = TestApplication.class) +public class ImeGenerator { + @Autowired + private CodeGenerator codeGenerator; + + /** + * 第一步:刷新元数据 + */ + @Test + @Transactional + public void generateMeta() throws Exception { + codeGenerator.generateMeta(); + } + + /** + * 第二步:生成模块代码 + */ + @Test + @Transactional + public void generateModule() throws Exception { + //单独只生成实体、DTO、杂项: + //codeGenerator.generateEntity(ImeModules.PRODEXEC_TEST); + //codeGenerator.generateDto(ImeModules.PRODEXEC_TEST); + //codeGenerator.generateMisc(ImeModules.PRODEXEC_TEST); + + //生成全部 + //codeGenerator.generateAll(ImeModules.abnlMENT_MAINTAIN_APPLY); + //codeGenerator.generateAll(ImeModules.abnlMENT_MAINTAIN_TASK); + } +} diff --git a/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/TestApplication.java b/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/TestApplication.java new file mode 100644 index 0000000..4d1a8aa --- /dev/null +++ b/abnl-RTHIT-service-start/src/test/java/com/qzing/ime/abnl/TestApplication.java @@ -0,0 +1,13 @@ +package com.qzing.ime.abnl; + +import com.qzing.ime.framework.EnableImeServiceApplication; +import org.springframework.boot.SpringApplication; + +@EnableImeServiceApplication +public class TestApplication { + + public static void main(String[] args) { + SpringApplication.run(StartApplication.class, args); + } + +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..792f61f --- /dev/null +++ b/pom.xml @@ -0,0 +1,57 @@ + + + + ime-parent + com.qzing + 4.1.9-SNAPSHOT + + com.qzing.mes.abnl + abnl-RTHIT-service-parent + 1.0.1-SNAPSHOT + + 4.0.0 + pom + + 1.0.1-SNAPSHOT + 1.0.2-SNAPSHOT + + + + abnl-RTHIT-api-extend + abnl-RTHIT-service-extend + abnl-RTHIT-service-start + + + + + + com.qzing.mes.abnl + abnl-RTHIT-api-extend + ${abnl-RTHIT-version} + + + com.qzing.mes.abnl + abnl-RTHIT-service-extend + ${abnl-RTHIT-version} + + + com.qzing + ime-abnl-api + ${abnl-version} + + + com.qzing + ime-abnl-graphql + ${abnl-version} + + + com.qzing + ime-abnl-service + ${abnl-version} + + + + + \ No newline at end of file