From e4977022ba645252235c245b31c7460e55e30567 Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Thu, 20 Jun 2024 18:23:19 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BB=BB=E5=8A=A1=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E5=8D=95=E9=85=8D=E7=BD=AE,=20=E9=85=8D=E7=BD=AE=E8=AF=A6?= =?UTF-8?q?=E6=83=85,=20=E4=BB=BB=E5=8A=A1=E5=AE=A2=E6=88=B7=E7=BB=8F?= =?UTF-8?q?=E7=90=86=E7=AD=BE=E5=90=8D,=20=E4=B8=9A=E5=8A=A1=E5=91=98?= =?UTF-8?q?=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/log/annotation/SysLog.java | 4 - .../common/log/aspect/SysLogAspect.java | 14 +- .../common/log/enums/BusinessType.java | 4 + .../common/mybatis/annotation/Condition.java | 2 + chushang-common/chushang-common-redis/pom.xml | 5 + .../filter/SanyiResponseGlobalFilter.java | 88 ------------- .../project/entity/dto/TaskGraphDTO.java | 31 +++++ .../project/entity/dto/UserAutographDTO.java | 41 ++++++ .../project/entity/po/InspectionConfig.java | 15 +++ .../project/entity/po/InspectionData.java | 10 ++ .../project/entity/po/InspectionDetail.java | 22 +++- .../entity/po/PollingTaskAutograph.java | 5 +- .../project/entity/po/UserAutograph.java | 45 +++++++ .../project/entity/query/InsConfigQuery.java | 23 ++++ .../project/entity/query/InsDetailQuery.java | 19 +++ .../project/entity/vo/DetailsVO.java | 40 ++++++ .../project/entity/vo/InsConfigVO.java | 47 +++++++ .../controller/InsConfigController.java | 107 ++++++++++++++++ .../controller/InsDetailController.java | 121 ++++++++++++++++++ .../PollingTaskAutographController.java | 52 ++++++++ .../controller/UserAutographController.java | 86 +++++++++++++ .../project/mapper/UserAutographMapper.java | 11 ++ .../service/InspectionConfigService.java | 27 ++++ .../service/InspectionDetailService.java | 26 ++++ .../service/PollingTaskAutographService.java | 11 ++ .../project/service/UserAutographService.java | 11 ++ .../impl/InspectionConfigServiceImpl.java | 62 +++++++++ .../impl/InspectionDetailServiceImpl.java | 30 +++++ .../impl/UserAutographServiceImpl.java | 17 +++ .../loan/domin/entity/LoanEntity.java | 1 + 30 files changed, 870 insertions(+), 107 deletions(-) delete mode 100644 chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/SanyiResponseGlobalFilter.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskGraphDTO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/UserAutographDTO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/UserAutograph.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsConfigQuery.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsDetailQuery.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/DetailsVO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/InsConfigVO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollingTaskAutographController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/UserAutographController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/UserAutographMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/UserAutographService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/UserAutographServiceImpl.java diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java index ebb479c..904fd4e 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java @@ -27,9 +27,5 @@ public @interface SysLog { * 操作类型 */ BusinessType businessType() default BusinessType.OTHER; - /** - * 是否 入库 - */ - boolean isDatabase() default true; } diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java index 73d0511..874b1bb 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java @@ -124,6 +124,9 @@ public class SysLogAspect { .collect(Collectors.toList()); sysLogEntity.setParams(JSON.toJSONString(argList)); } + }else if (null != ex){ + sysLogEntity.setOperation("异常日志"); + sysLogEntity.setOperationType(BusinessType.ERROR.getCode()); } //获取request @@ -168,15 +171,16 @@ public class SysLogAspect { // 日志类型 sysLogEntity.setType(type); sysLogEntity.setException(ex); + // sysLog 不一定未空, 如果为 需要入库时, 必定不为空 assert syslog != null; - if (syslog.isDatabase()){ +// if (null != ex){ // 入队列, 方便在system 统一查询 RList list = redissonClient.getList(ServiceConstant.QUEUE_NAME); list.add(sysLogEntity); -// sysLogService.save(sysLogEntity); - }else { - log.info("log {}", JSONObject.toJSONString(sysLogEntity)); - } +//// sysLogService.save(sysLogEntity); +// }else { +// log.info("log {}", JSONObject.toJSONString(sysLogEntity)); +// } } catch (Exception e) { HttpServletRequest request = ServletUtils.getRequest(); // 保存日志失败 不应当影响 正常的操作 diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java index af27b46..c27efb5 100644 --- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java +++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/BusinessType.java @@ -61,6 +61,10 @@ public enum BusinessType * 清空数据 */ CLEAR(10,"清空数据"), + /** + * 异常日志 + */ + ERROR(11, "异常日志"), ; private final Integer code; private final String desc; diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java index 8bdd270..5a0fcdd 100644 --- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java +++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java @@ -16,6 +16,8 @@ public @interface Condition { ConditionType[] type() default {eq}; + + enum ConditionType { ge, le, diff --git a/chushang-common/chushang-common-redis/pom.xml b/chushang-common/chushang-common-redis/pom.xml index 56e16f7..0a9223f 100644 --- a/chushang-common/chushang-common-redis/pom.xml +++ b/chushang-common/chushang-common-redis/pom.xml @@ -16,5 +16,10 @@ org.redisson redisson-spring-boot-starter + + + org.springframework.boot + spring-boot-starter-cache + diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/SanyiResponseGlobalFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/SanyiResponseGlobalFilter.java deleted file mode 100644 index fe9f505..0000000 --- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/SanyiResponseGlobalFilter.java +++ /dev/null @@ -1,88 +0,0 @@ -//package com.chushang.gateway.filter; -// -//import cn.hutool.json.JSONObject; -//import cn.hutool.json.JSONUtil; -//import com.chushang.common.core.web.Result; -//import lombok.extern.slf4j.Slf4j; -//import org.reactivestreams.Publisher; -//import org.springframework.cloud.gateway.filter.GatewayFilterChain; -//import org.springframework.cloud.gateway.filter.GlobalFilter; -//import org.springframework.cloud.gateway.filter.factory.rewrite.CachedBodyOutputMessage; -//import org.springframework.cloud.gateway.support.BodyInserterContext; -//import org.springframework.cloud.gateway.support.ServerWebExchangeUtils; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.core.Ordered; -//import org.springframework.core.io.buffer.DataBuffer; -//import org.springframework.core.io.buffer.DataBufferUtils; -//import org.springframework.http.HttpHeaders; -//import org.springframework.http.HttpStatus; -//import org.springframework.http.server.reactive.ServerHttpResponse; -//import org.springframework.http.server.reactive.ServerHttpResponseDecorator; -//import org.springframework.web.reactive.function.BodyInserter; -//import org.springframework.web.reactive.function.BodyInserters; -//import org.springframework.web.reactive.function.client.ClientResponse; -//import org.springframework.web.server.ServerWebExchange; -//import reactor.core.publisher.Flux; -//import reactor.core.publisher.Mono; -// -//@Slf4j -//@Configuration -//public class SanyiResponseGlobalFilter implements GlobalFilter, Ordered { -// -// @Override -// public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { -// ServerHttpResponse originalResponse = exchange.getResponse(); -// ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(originalResponse) { -// @Override -// public Mono writeWith(Publisher body) { -// String originalResponseContentType = exchange.getAttribute(ServerWebExchangeUtils.ORIGINAL_RESPONSE_CONTENT_TYPE_ATTR); -// HttpHeaders httpHeaders = new HttpHeaders(); -// // explicitly add it in this way instead of -// // 'httpHeaders.setContentType(originalResponseContentType)' -// // this will prevent exception in case of using non-standard media -// // types like "Content-Type: image" -// httpHeaders.add(HttpHeaders.CONTENT_TYPE, originalResponseContentType); -// ClientResponse clientResponse = -// prepareClientResponse(exchange.getResponse().getStatusCode(),body,httpHeaders); -// Mono modifiedBody = clientResponse.bodyToMono(String.class).flatMap(responseBody -> { -// JSONObject jsonObject = JSONUtil.parseObj(responseBody); -// log.info("error : {}", jsonObject); -// if (jsonObject.containsKey("timestamp")) { -// return Mono.just(JSONUtil.toJsonStr(Result.restResult(jsonObject.getStr("path"), -// jsonObject.getInt("status"), -// jsonObject.getStr("error")))); -// } -// return Mono.just(responseBody); -// }); -// BodyInserter bodyInserter = BodyInserters.fromPublisher(modifiedBody, String.class); -// HttpHeaders headers = new HttpHeaders(); -// headers.putAll(exchange.getResponse().getHeaders()); -// headers.remove(HttpHeaders.CONTENT_LENGTH); -// CachedBodyOutputMessage outputMessage = new CachedBodyOutputMessage(exchange, headers); -// return bodyInserter.insert(outputMessage, new BodyInserterContext()).then(Mono.defer(() -> { -// Mono messageBody = DataBufferUtils.join(outputMessage.getBody()); -// if (!headers.containsKey(HttpHeaders.TRANSFER_ENCODING) -// || headers.containsKey(HttpHeaders.CONTENT_LENGTH)) { -// messageBody = messageBody.doOnNext(data -> headers.setContentLength(data.readableByteCount())); -// } -// // TODO: fail if isStreamingMediaType? -// return getDelegate().writeWith(messageBody); -// })); -// } -// }; -// // replace response with decorator -// return chain.filter(exchange.mutate().response(decoratedResponse).build()); -// } -// -// @Override -// public int getOrder() { -// // -1 is response write filter, must be called before that -// return -2; -// } -// -// private ClientResponse prepareClientResponse(HttpStatus httpStatus, Publisher body, HttpHeaders httpHeaders) { -// ClientResponse.Builder builder; -// builder = ClientResponse.create(httpStatus); -// return builder.headers(headers -> headers.putAll(httpHeaders)).body(Flux.from(body)).build(); -// } -//} \ No newline at end of file diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskGraphDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskGraphDTO.java new file mode 100644 index 0000000..ed025eb --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/TaskGraphDTO.java @@ -0,0 +1,31 @@ +package com.chushang.inspection.project.entity.dto; + +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaskGraphDTO { + + @NotNull(message = "任务id不能为空", groups = Create.class) + @NotNull(message = "任务id不能为空", groups = Update.class) + private Long taskId; + + @NotBlank(message = "签名名称不能为空", groups = Create.class) + @NotBlank(message = "签名名称不能为空", groups = Update.class) + private String graphName; + + @NotBlank(message = "签名图片不能为空", groups = Create.class) + @NotBlank(message = "签名图片不能为空", groups = Update.class) + private String imgUrl; + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/UserAutographDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/UserAutographDTO.java new file mode 100644 index 0000000..998032a --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/dto/UserAutographDTO.java @@ -0,0 +1,41 @@ +package com.chushang.inspection.project.entity.dto; + +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; + +/** + * @auther: zhao + * @date: 2024/6/14 11:04 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UserAutographDTO { + + + /** + * 对应所属的任务id + */ + @NotNull(message = "用户Id不能为空", groups = {Create.class, Update.class}) + private Long userId; + /** + * 对应的签名图片 + */ + @NotNull(message = "用户Id不能为空", groups = {Create.class, Update.class}) + private String imgUrl; + /** + * 签名人 + */ + private String userName; + /** + * 昵称 + */ + private String nickName; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionConfig.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionConfig.java index d3e2ff9..db0668a 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionConfig.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionConfig.java @@ -4,12 +4,18 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.base.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Null; + /** * @auther: zhao * @date: 2024/6/18 15:39 @@ -24,12 +30,16 @@ public class InspectionConfig extends BaseEntity { * 配置id 主键 */ @TableId(value = "config_id", type = IdType.ASSIGN_ID) + @NotNull(message = "配置id 不能为空", groups = Update.class) + @Null(message = "配置id 必须为空", groups = Create.class) private Long configId; /** * 任务id */ @TableField(value = "task_id") + @Condition(name = "task_id", type = Condition.ConditionType.eq) + @NotNull(message = "所属任务不能为空", groups = Create.class) private Long taskId; /** @@ -42,17 +52,22 @@ public class InspectionConfig extends BaseEntity { * 配置名称 name */ @TableField(value = "config_name") + @Condition(name = "config_name", type = Condition.ConditionType.eq) private String configName; /** * 配置别名 */ @TableField(value = "`alias`") + @Condition(name = "`alias`", type = Condition.ConditionType.eq) + @NotNull(message = "巡检单别名不能为空", groups = {Update.class,Create.class}) private String alias; /** * 模板名称 */ @TableField(value = "`template`") + @Condition(name = "`template`", type = Condition.ConditionType.eq) + @NotNull(message = "巡检单模板名称不能为空", groups = {Update.class,Create.class}) private String template; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionData.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionData.java index df946b0..ba57458 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionData.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionData.java @@ -31,6 +31,16 @@ public class InspectionData extends BaseEntity { */ @TableField(value = "config_id") private Long configId; + /** + * 详情id + */ + @TableField(value = "detail_id") + private Long detailId; + /** + * 对应工单id + */ + @TableField(value = "ins_id") + private Long insId; /** * 对应部门Id diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionDetail.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionDetail.java index 05500f3..2535c9d 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionDetail.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/InspectionDetail.java @@ -4,12 +4,17 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; import com.chushang.common.mybatis.base.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Null; + /** * @auther: zhao * @date: 2024/6/18 15:39 @@ -21,16 +26,17 @@ import lombok.NoArgsConstructor; @TableName(value = "inspection_detail") public class InspectionDetail extends BaseEntity { /** - * 配置id 主键 + * 详情id */ - @TableId(value = "config_id", type = IdType.ASSIGN_ID) - private Long configId; - + @TableId(value = "detail_id", type = IdType.ASSIGN_ID) + @NotNull(message = "detail_id 不能为空", groups = {Update.class}) + private Long detailId; /** - * 任务id + * 配置id */ - @TableField(value = "inspection_id") - private Long inspectionId; + @TableField(value = "config_id") + @NotNull(message = "config_id 不能为空", groups = {Create.class, Update.class}) + private Long configId; /** * 对应部门Id @@ -48,11 +54,13 @@ public class InspectionDetail extends BaseEntity { * 配置对应key */ @TableField(value = "config_key") + @NotNull(message = "config_key 不能为空", groups = {Create.class, Update.class}) private String configKey; /** * key 对应类型 */ @TableField(value = "config_type") + @NotNull(message = "config_type 不能为空", groups = {Create.class, Update.class}) private Short configType; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTaskAutograph.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTaskAutograph.java index 4fd35d5..78b7000 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTaskAutograph.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/PollingTaskAutograph.java @@ -15,15 +15,14 @@ import lombok.NoArgsConstructor; * @date: 2024/6/18 15:39 */ @Data -@EqualsAndHashCode(callSuper=true) @AllArgsConstructor @NoArgsConstructor @TableName(value = "polling_task_autograph") -public class PollingTaskAutograph extends BaseEntity { +public class PollingTaskAutograph { /** * 签名所属任务 */ - @TableId(value = "task_id", type = IdType.ASSIGN_ID) + @TableId(value = "task_id", type = IdType.INPUT) private Long taskId; /** diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/UserAutograph.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/UserAutograph.java new file mode 100644 index 0000000..731090c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/po/UserAutograph.java @@ -0,0 +1,45 @@ +package com.chushang.inspection.project.entity.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/14 11:04 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "user_autograph") +public class UserAutograph { + + /** + * 对应所属的任务id + */ + @TableId(value = "user_id", type = IdType.INPUT) + private Long userId; + /** + * 对应的签名图片 + */ + @TableField(value = "img_url") + private String imgUrl; + /** + * 签名人 + */ + @TableField(value = "user_name") + private String userName; + /** + * 昵称 + */ + @TableField(value = "nick_name") + private String nickName; + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsConfigQuery.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsConfigQuery.java new file mode 100644 index 0000000..1557dcb --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsConfigQuery.java @@ -0,0 +1,23 @@ +package com.chushang.inspection.project.entity.query; + +import com.chushang.common.mybatis.annotation.Condition; +import com.chushang.common.mybatis.page.CommonParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +/** + * @auther: zhao + * @date: 2024/6/20 9:59 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class InsConfigQuery extends CommonParam { + + @Size(max = 128, message = "名称或别名不能超过128字符") + @Condition(name = "name,alias", type = Condition.ConditionType.or_like) + private String blurry; + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsDetailQuery.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsDetailQuery.java new file mode 100644 index 0000000..aa375ed --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/query/InsDetailQuery.java @@ -0,0 +1,19 @@ +package com.chushang.inspection.project.entity.query; + +import com.chushang.common.mybatis.page.CommonParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * @auther: zhao + * @date: 2024/6/20 17:29 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class InsDetailQuery extends CommonParam { + /** 配置id */ + @NotNull(message = "配置id不能为空") + private Long configId; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/DetailsVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/DetailsVO.java new file mode 100644 index 0000000..01004f0 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/DetailsVO.java @@ -0,0 +1,40 @@ +package com.chushang.inspection.project.entity.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DetailsVO implements Serializable { + /** + * 详情id + */ + private Long detailId; + /** + * 配置id 主键 + */ + private Long configId; + /** + * 配置对应label + */ + private String configLabel; + + /** + * 配置对应key + */ + private String configKey; + + /** + * key 对应类型 + */ + private Short configType; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/InsConfigVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/InsConfigVO.java new file mode 100644 index 0000000..475eecc --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/project/entity/vo/InsConfigVO.java @@ -0,0 +1,47 @@ +package com.chushang.inspection.project.entity.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsConfigVO implements Serializable { + + /** + * 配置id + */ + private Long configId; + /** + * 名称 + */ + private String configName; + + /** + * 别名 + */ + private String alias; + + /** + * 模板路径 + */ + private String template; + /** + * 所属任务id + */ + private Long taskId; + /** + * 所属 部门id + */ + private Long deptId; + /** + * 配置详情 + */ + private List details; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java new file mode 100644 index 0000000..bd77338 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java @@ -0,0 +1,107 @@ +package com.chushang.inspection.project.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.core.exception.utils.AssertUtil; +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.common.mybatis.utils.WrapperUtils; +import com.chushang.inspection.project.entity.po.InspectionConfig; +import com.chushang.inspection.project.entity.query.InsConfigQuery; +import com.chushang.inspection.project.service.InspectionConfigService; +import com.chushang.security.annotation.RequiresPermissions; +import com.chushang.security.utils.SecurityUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 电子巡检单配置 + * @auther: zhao + * @date: 2024/6/20 9:57 + */ +@RestController +@RequestMapping("/ins/config") +public class InsConfigController { + + @Resource + InspectionConfigService configService; + + /** + * 分页查询 + * + * @param query 条件 + * @return 分页信息 + */ + @PostMapping("/page") + @RequiresPermissions("ins:config:page") + public AjaxResult findPage(@RequestBody @Validated InsConfigQuery query) { + return AjaxResult.success(configService.pageList(query)); + } + + /** + * 获取巡检单类型详细信息 + * + * @param configId 字典类型id + * @return 详细信息 + */ + @PostMapping("/info/{configId}") + @RequiresPermissions("ins:config:info") + public AjaxResult get(@PathVariable Long configId) { + return AjaxResult.success(configService.getById(configId)); + } + + /** + * 别名查询巡检单信息 + * + * @return 详细信息 + */ + @PostMapping("/alias/{alias}") + @RequiresPermissions("ins:config:info") + public AjaxResult get(@PathVariable String alias) { + return AjaxResult.success(configService.getByAlias(alias)); + } + + /** + * 新增 + */ + @SysLog(value = "巡检单配置", businessType = BusinessType.INSERT) + @PostMapping("/save") + @RequiresPermissions("wrk:config:save") + public AjaxResult save(@RequestBody@Validated(Create.class) InspectionConfig config) { + config.setConfigId(null); + config.setDeptId(SecurityUtils.getDeptId()); + String alias = config.getAlias(); + LambdaQueryWrapper configSql = WrapperUtils.builder(); + configSql.eq(InspectionConfig::getAlias, alias); + long count = configService.count(configSql); + AssertUtil.invalidate(count > 0 , "巡检单别名重复"); + configService.saveEntity(config); + return AjaxResult.success(config.getConfigId()); + } + + /** + * 添加 + */ + @SysLog(value = "巡检单配置", businessType = BusinessType.UPDATE) + @PostMapping("/update") + @RequiresPermissions("wrk:config:update") + public AjaxResult update(@RequestBody @Validated(Update.class) InspectionConfig config) { + Long configId = config.getConfigId(); + AssertUtil.invalidate(null == configId, "未找寻到对应的巡检单配置"); + String alias = config.getAlias(); + LambdaQueryWrapper configSql = WrapperUtils.builder(); + configSql.eq(InspectionConfig::getAlias, alias) + .ne(InspectionConfig::getConfigId, configId); + long count = configService.count(configSql); + AssertUtil.invalidate(count > 0 , "巡检单别名重复"); + + configService.updateByEntityId(config); + return AjaxResult.success(config.getConfigId()); + } + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java new file mode 100644 index 0000000..4be85f8 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java @@ -0,0 +1,121 @@ +package com.chushang.inspection.project.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.core.exception.utils.AssertUtil; +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.common.mybatis.utils.WrapperUtils; +import com.chushang.inspection.project.entity.dto.Delete; +import com.chushang.inspection.project.entity.po.InspectionDetail; +import com.chushang.inspection.project.entity.query.InsDetailQuery; +import com.chushang.inspection.project.service.InspectionDetailService; +import com.chushang.security.annotation.RequiresPermissions; +import com.chushang.security.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @auther: zhao + * @date: 2024/6/20 17:27 + */ +@Slf4j +@RestController +@RequestMapping("/ins/detail") +public class InsDetailController { + + @Resource + InspectionDetailService detailService; + + /** + * 分页查询 + * + * @param query 条件 + * @return 分页信息 + */ + @PostMapping("/page") + @RequiresPermissions("ins:detail:page") + public AjaxResult findPage(@RequestBody @Validated InsDetailQuery query) { + return AjaxResult.success(detailService.findPage(query)); + } + + /** + * 获取字典类型详细信息 + * + * @return 详细信息 + */ + @PostMapping("/info/{detailId}") + @RequiresPermissions("ins:details:info") + public AjaxResult get(@PathVariable Long detailId) { + return AjaxResult.success(detailService.getById(detailId)); + } + + /** + * 添加 + * + */ + @SysLog(value = "巡检单配置详情", businessType = BusinessType.INSERT) + @PostMapping("/save") + @RequiresPermissions("ins:details:save") + public AjaxResult save(@RequestBody @Validated(Create.class) InspectionDetail detail) { + detail.setDetailId(null); + Long configId = detail.getConfigId(); + AssertUtil.invalidate(null == configId, "巡检单配置id 不能为空"); + + detail.setDeptId(SecurityUtils.getDeptId()); + + String configKey = detail.getConfigKey(); + AssertUtil.invalidate(null == configKey, "巡检单配置key 不能为空"); + + LambdaQueryWrapper detailSql = WrapperUtils.builder(); + detailSql.eq(InspectionDetail::getConfigId, configId) + .eq(InspectionDetail::getConfigKey, configKey); + long count = detailService.count(detailSql); + AssertUtil.invalidate(count > 0, "巡检单配置key 重复"); + + detailService.saveEntity(detail); + + return AjaxResult.success(); + } + + /** + * 修改 + */ + @SysLog(value = "巡检单配置详情", businessType = BusinessType.UPDATE) + @PostMapping("/update") + @RequiresPermissions("ins:details:update") + public AjaxResult update(@RequestBody @Validated(Update.class) InspectionDetail detail) { + Long detailId = detail.getDetailId(); + AssertUtil.invalidate(null == detailId, "detail_id 不能为空"); + Long configId = detail.getConfigId(); + AssertUtil.invalidate(null == configId, "configId 不能为空"); + String configKey = detail.getConfigKey(); + AssertUtil.invalidate(null == configKey, "巡检单配置key 不能为空"); + LambdaQueryWrapper detailSql = WrapperUtils.builder(); + detailSql.eq(InspectionDetail::getConfigId, configId) + .eq(InspectionDetail::getConfigKey, configKey) + .ne(InspectionDetail::getDetailId, detailId); + long count = detailService.count(detailSql); + AssertUtil.invalidate(count > 0, "巡检单配置key 重复"); + + detailService.updateByEntityId(detail); + return AjaxResult.success(); + } + + /** + * 删除 + */ + @SysLog(value = "巡检单配置详情", businessType = BusinessType.DELETE) + @PostMapping("/delete") + @RequiresPermissions("ins:details:delete") + public AjaxResult delete(@RequestBody @Validated Delete delete) { + detailService.removeByEntityIds(delete.getIds()); + return AjaxResult.success(); + } + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollingTaskAutographController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollingTaskAutographController.java new file mode 100644 index 0000000..0a576e2 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollingTaskAutographController.java @@ -0,0 +1,52 @@ +package com.chushang.inspection.project.controller; + +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.inspection.project.entity.dto.TaskGraphDTO; +import com.chushang.inspection.project.service.PollingTaskAutographService; +import com.chushang.security.annotation.RequiresPermissions; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 支行签名 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/graph/task") +public class PollingTaskAutographController { + + private final PollingTaskAutographService taskAutographService; + + /** + * 查询 客户经理签名 + */ + @GetMapping("/{taskId}") + @RequiresPermissions("task:graph:query") + public AjaxResult get(@PathVariable Long taskId) { + return AjaxResult.success(taskAutographService.getById(taskId)); + } + + @PostMapping("/save") + @RequiresPermissions("task:graph:save") + @SysLog(value = "任务签名", businessType = BusinessType.INSERT) + public AjaxResult save(@RequestBody @Validated(Create.class) TaskGraphDTO task) { + taskAutographService.save(task); + return AjaxResult.success(); + } + + @PostMapping("/update") + @RequiresPermissions("task:graph:update") + @SysLog(value = "任务签名", businessType = BusinessType.UPDATE) + public AjaxResult update(@RequestBody @Validated(Update.class) TaskGraphDTO task) { + taskAutographService.update(task); + return AjaxResult.success(); + } + + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/UserAutographController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/UserAutographController.java new file mode 100644 index 0000000..0185c44 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/UserAutographController.java @@ -0,0 +1,86 @@ +package com.chushang.inspection.project.controller; + +import cn.hutool.core.bean.BeanUtil; +import com.chushang.common.core.exception.utils.AssertUtil; +import com.chushang.common.core.validator.Create; +import com.chushang.common.core.validator.Update; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.inspection.project.entity.dto.Delete; +import com.chushang.inspection.project.entity.dto.UserAutographDTO; +import com.chushang.inspection.project.entity.po.UserAutograph; +import com.chushang.inspection.project.service.UserAutographService; +import com.chushang.security.annotation.RequiresPermissions; +import lombok.RequiredArgsConstructor; +import lombok.extern.java.Log; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @auther: zhao + * @date: 2024/6/14 11:07 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@RequestMapping("/graph/user") +public class UserAutographController { + + private final UserAutographService userAutographService; + + /** + * 修改用户签名 + * 业务员--> 即维修人员 + */ + @PostMapping("/update") + @RequiresPermissions("user:graph:update") + @SysLog(value = "用户签名",businessType = BusinessType.UPDATE) + public AjaxResult update(@RequestBody @Validated({Create.class, Update.class}) UserAutographDTO autographDTO) { + userAutographService.updateById(BeanUtil.copyProperties(autographDTO, UserAutograph.class)); + return AjaxResult.success(); + } + + /** + * 新增用户签名 + */ + @PostMapping("/save") + @RequiresPermissions("user:graph:save") + @SysLog(value = "用户签名",businessType = BusinessType.INSERT) + public AjaxResult save(@RequestBody @Validated({Create.class, Update.class}) UserAutographDTO autographDTO) { + userAutographService.save(BeanUtil.copyProperties(autographDTO, UserAutograph.class)); + return AjaxResult.success(); + } + + /** + * 删除用户签名 + */ + @PostMapping("/delete") + @RequiresPermissions("user:graph:del") + @SysLog(value = "用户签名",businessType = BusinessType.DELETE) + public AjaxResult delete(@RequestBody @Validated Delete delete) { + userAutographService.removeByIds(delete.getIds()); + return AjaxResult.success(); + } + /** + * 查询用户签名 + */ + @GetMapping("/{userId}") + @RequiresPermissions("user:graph:query") + public AjaxResult query(@PathVariable Long userId) { + return AjaxResult.success(userAutographService.getById(userId)); + } + + @GetMapping("/test") + public void test(){ + log.info("test"); + } + + @GetMapping("/error") + public void error(){ + AssertUtil.invalidate(false, "水水水水"); + } + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/UserAutographMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/UserAutographMapper.java new file mode 100644 index 0000000..a0b6ca4 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/UserAutographMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.project.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.project.entity.po.UserAutograph; + +/** + * @auther: zhao + * @date: 2024/6/20 9:39 + */ +public interface UserAutographMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java index fe889e1..76ddd98 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java @@ -1,7 +1,18 @@ package com.chushang.inspection.project.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.common.mybatis.page.CommonParam; +import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.inspection.project.entity.po.InspectionConfig; +import com.chushang.inspection.project.entity.po.WrkProjectContract; +import com.chushang.inspection.project.entity.query.InsConfigQuery; +import com.chushang.inspection.project.entity.vo.InsConfigVO; +import org.springframework.cache.annotation.CacheEvict; + +import java.util.List; /** * @auther: zhao @@ -10,4 +21,20 @@ import com.chushang.inspection.project.entity.po.InspectionConfig; public interface InspectionConfigService extends IService{ + default PageResult pageList(InsConfigQuery query){ + CommonParam commonParam = CommonParam.buildPageRequest(); + LambdaQueryWrapper configSql = WrapperUtils.builder(query, commonParam); + IPage page = this.page( + new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()), + configSql + ); + return new PageResult(page); + } + + InsConfigVO getByAlias(String alias); + + + void updateByEntityId(InspectionConfig config); + + void saveEntity(InspectionConfig config); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDetailService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDetailService.java index e6656b2..d0cf36b 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDetailService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDetailService.java @@ -1,7 +1,17 @@ package com.chushang.inspection.project.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.common.mybatis.page.CommonParam; +import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.common.mybatis.utils.WrapperUtils; +import com.chushang.datascope.annotation.DataScope; +import com.chushang.inspection.project.entity.po.InspectionConfig; import com.chushang.inspection.project.entity.po.InspectionDetail; +import com.chushang.inspection.project.entity.query.InsDetailQuery; + +import java.util.List; /** * @auther: zhao @@ -10,4 +20,20 @@ import com.chushang.inspection.project.entity.po.InspectionDetail; public interface InspectionDetailService extends IService{ + @DataScope + default PageResult findPage(InsDetailQuery query){ + CommonParam commonParam = CommonParam.buildPageRequest(); + LambdaQueryWrapper detailSql = WrapperUtils.builder(query, commonParam); + IPage page = this.page( + new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()), + detailSql + ); + return new PageResult(page); + } + + void saveEntity(InspectionDetail detail); + + void updateByEntityId(InspectionDetail detail); + + void removeByEntityIds(List ids); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskAutographService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskAutographService.java index 79bd5d7..39083b1 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskAutographService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/PollingTaskAutographService.java @@ -1,6 +1,8 @@ package com.chushang.inspection.project.service; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.inspection.project.entity.dto.TaskGraphDTO; import com.chushang.inspection.project.entity.po.PollingTaskAutograph; /** @@ -10,4 +12,13 @@ import com.chushang.inspection.project.entity.po.PollingTaskAutograph; public interface PollingTaskAutographService extends IService{ + default void save(TaskGraphDTO task){ + PollingTaskAutograph pollingTaskAutograph = BeanUtil.copyProperties(task, PollingTaskAutograph.class); + save(pollingTaskAutograph); + } + + default void update(TaskGraphDTO task){ + PollingTaskAutograph pollingTaskAutograph = BeanUtil.copyProperties(task, PollingTaskAutograph.class); + updateById(pollingTaskAutograph); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/UserAutographService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/UserAutographService.java new file mode 100644 index 0000000..c7ec0c2 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/UserAutographService.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.project.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.inspection.project.entity.po.UserAutograph; + +/** + * @auther: zhao + * @date: 2024/6/20 9:38 + */ +public interface UserAutographService extends IService { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java index 6d376f2..d7a8f65 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java @@ -1,15 +1,77 @@ package com.chushang.inspection.project.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.mybatis.enums.Operator; +import com.chushang.common.mybatis.page.CommonParam; +import com.chushang.common.mybatis.utils.WrapperUtils; +import com.chushang.inspection.project.entity.po.InspectionDetail; +import com.chushang.inspection.project.entity.vo.DetailsVO; +import com.chushang.inspection.project.entity.vo.InsConfigVO; import com.chushang.inspection.project.service.InspectionConfigService; +import com.chushang.inspection.project.service.InspectionDetailService; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.project.entity.po.InspectionConfig; import com.chushang.inspection.project.mapper.InspectionConfigMapper; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + /** * @auther: zhao * @date: 2024/6/18 15:39 */ @Service +@CacheConfig(cacheNames = "inspection_config") public class InspectionConfigServiceImpl extends ServiceImpl implements InspectionConfigService { + @Resource + InspectionDetailService detailService; + + @Override + @CachePut(key = "#alias") + public InsConfigVO getByAlias(String alias) { + LambdaQueryWrapper configSql = WrapperUtils.builder(); + configSql.eq(InspectionConfig::getAlias, alias).last(Operator.LIMIT_ONE.getCharacter()); + InspectionConfig insConfig = getOne(configSql); + InsConfigVO insConfigVO = BeanUtil.copyProperties(insConfig, InsConfigVO.class); + if (ObjectUtil.isNotEmpty(insConfigVO)){ + LambdaQueryWrapper detailSql = WrapperUtils.builder(); + detailSql.eq(InspectionDetail::getConfigId, insConfigVO.getConfigId()); + List list = detailService.list(detailSql); + if (CollectionUtil.isNotEmpty(list)){ + List detailsList = BeanUtil.copyToList(list, DetailsVO.class); + insConfigVO.setDetails(detailsList); + } + } + return insConfigVO; + } + + /** + * CacheEvict 需要 allEntries = true 才能 删除成功, 同时必须 为void 方法, 等以后有机会在改吧 + */ + @Override + @CacheEvict(allEntries = true) + @Transactional + public void updateByEntityId(InspectionConfig config) { + removeById(config); + } + + /** + * CacheEvict 需要 allEntries = true 才能 删除成功, 同时必须 为void 方法, 等以后有机会在改吧 + */ + @Override + @CacheEvict(allEntries = true) + @Transactional + public void saveEntity(InspectionConfig config) { + save(config); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDetailServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDetailServiceImpl.java index cf03f88..ec1f868 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDetailServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDetailServiceImpl.java @@ -1,15 +1,45 @@ package com.chushang.inspection.project.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.mybatis.page.CommonParam; +import com.chushang.common.mybatis.utils.WrapperUtils; +import com.chushang.datascope.annotation.DataScope; +import com.chushang.inspection.project.entity.query.InsDetailQuery; import com.chushang.inspection.project.service.InspectionDetailService; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.project.entity.po.InspectionDetail; import com.chushang.inspection.project.mapper.InspectionDetailMapper; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + /** * @auther: zhao * @date: 2024/6/18 15:39 */ @Service +@CacheConfig(cacheNames = "inspection_config") public class InspectionDetailServiceImpl extends ServiceImpl implements InspectionDetailService { + @Override + @CacheEvict(allEntries = true) + public void saveEntity(InspectionDetail detail) { + save(detail); + } + + @Override + @CacheEvict(allEntries = true) + public void updateByEntityId(InspectionDetail detail) { + updateById(detail); + } + + @Override + @CacheEvict(allEntries = true) + @Transactional + public void removeByEntityIds(List ids) { + removeByIds(ids); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/UserAutographServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/UserAutographServiceImpl.java new file mode 100644 index 0000000..b26263b --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/UserAutographServiceImpl.java @@ -0,0 +1,17 @@ +package com.chushang.inspection.project.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.project.entity.po.UserAutograph; +import com.chushang.inspection.project.mapper.UserAutographMapper; +import com.chushang.inspection.project.service.UserAutographService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @auther: zhao + * @date: 2024/6/20 9:39 + */ +@Slf4j +@Service +public class UserAutographServiceImpl extends ServiceImpl implements UserAutographService { +} diff --git a/chushang-modules/chushang-module-loan/loan-service/src/main/java/com/chushang/loan/domin/entity/LoanEntity.java b/chushang-modules/chushang-module-loan/loan-service/src/main/java/com/chushang/loan/domin/entity/LoanEntity.java index 0bd97d5..2aaf7df 100644 --- a/chushang-modules/chushang-module-loan/loan-service/src/main/java/com/chushang/loan/domin/entity/LoanEntity.java +++ b/chushang-modules/chushang-module-loan/loan-service/src/main/java/com/chushang/loan/domin/entity/LoanEntity.java @@ -21,6 +21,7 @@ import java.util.List; * @author mybatis-flex-helper automatic generation * @since 1.0 */ +@EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor @NoArgsConstructor