From 7fd574d4ad030761efbce62445c0c339d1dca001 Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Fri, 28 Jun 2024 09:43:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E8=B0=83=E6=95=B4condition=20,=20?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E6=96=B9=E5=BC=8F=E8=BF=9B=E8=A1=8Cwhere=20?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dict/jackson/DictJsonSerializer.java | 19 +- .../common/mybatis/annotation/Condition.java | 8 +- .../common/mybatis/utils/WrapperUtils.java | 310 +++++++++++++----- .../chushang/inspection/work/po/WrkInfo.java | 42 +-- .../inspection/work/po/WrkInfoAudit.java | 80 +++++ .../work/po/WrkInfoStoreRecord.java | 62 ---- .../work/po/WrkInfoTerminalRecord.java | 54 --- .../inspection/work/query/ReviewedQuery.java | 130 ++++++++ .../inspection/work/query/WrkInfoQuery.java | 24 +- .../inspection/work/vo/WrkAuditVO.java | 109 ++++++ .../inspection/work/vo/WrkDispatchVO.java | 94 ++++++ .../controller/WrkInfoAuditController.java | 12 + .../work/controller/WrkInfoController.java | 52 ++- .../controller/WrkInfoPhoneController.java | 5 +- .../work/mapper/WrkInfoAuditMapper.java | 11 + .../inspection/work/mapper/WrkInfoMapper.java | 13 + .../work/service/WrkInfoAuditService.java | 12 + .../work/service/WrkInfoService.java | 17 +- .../service/impl/WrkInfoAuditServiceImpl.java | 16 + .../service/impl/WrkInfoPhoneServiceImpl.java | 112 ++++++- .../work/service/impl/WrkInfoServiceImpl.java | 35 ++ .../resources/mapper/WrkInfoAuditMapper.xml | 28 ++ .../main/resources/mapper/WrkInfoMapper.xml | 99 +++--- 23 files changed, 1047 insertions(+), 297 deletions(-) create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoAudit.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/ReviewedQuery.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkAuditVO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkDispatchVO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoAuditController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoAuditMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoAuditService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoAuditServiceImpl.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoAuditMapper.xml diff --git a/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/jackson/DictJsonSerializer.java b/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/jackson/DictJsonSerializer.java index 55742d7..f6eb892 100644 --- a/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/jackson/DictJsonSerializer.java +++ b/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/jackson/DictJsonSerializer.java @@ -36,16 +36,21 @@ public class DictJsonSerializer extends JsonSerializer implements Contex @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { try { - String dictLabel = DictUtils.getDictLabel(dictType, Convert.toStr(value)); - if (rewrite) { - // 重写了 原先的 code - gen.writeString(dictLabel); + if (null != value){ + String dictLabel = DictUtils.getDictLabel(dictType, Convert.toStr(value)); + if (rewrite) { + // 重写了 原先的 code + gen.writeString(dictLabel); + }else { + // value == code + gen.writeObject(value); + gen.writeFieldName(gen.getOutputContext().getCurrentName() + "Name"); + gen.writeString(dictLabel); + } }else { - // value == code gen.writeObject(value); - gen.writeFieldName(gen.getOutputContext().getCurrentName() + "Name"); - gen.writeString(dictLabel); } + } catch (BeansException e) { log.error("字典数据未查到, 采用默认处理【{}】", e.getMessage()); gen.writeObject(value); 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 eb71c77..042a037 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 @@ -13,9 +13,13 @@ public @interface Condition { String name(); - ConditionType[] type() default {eq}; - + String tableName() default ""; + /** + * 用于 批量获取 + * @return + */ + ConditionType type() default eq; enum ConditionType { ge, diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java index ed4c0fb..5e65260 100644 --- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java +++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java @@ -9,7 +9,9 @@ import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.chushang.common.core.util.StringUtils; import com.chushang.common.mybatis.annotation.Condition; +import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.exception.MybatisConditionException; import com.chushang.common.mybatis.page.CommonParam; import lombok.AccessLevel; @@ -28,7 +30,153 @@ public class WrapperUtils { return builder(null, null, columns); } - public static LambdaQueryWrapper builder(Object query, CommonParam commonParam, String... columns) { + public static void buildSql(Object query) + { + // 获取注解 + Field[] fields = ReflectUtil.getFields(query.getClass(), field -> field.isAnnotationPresent(Condition.class)); + + StringBuilder allSql = new StringBuilder(); + for (Field field : fields) { + Condition condition = field.getAnnotation(Condition.class); + Object value = ReflectUtil.getFieldValue(query, field); + if (ObjectUtil.isEmpty(value)) { + continue; + } + String name = condition.name(); + String tableName = condition.tableName(); + String[] split = name.split(","); + Condition.ConditionType conditionType = condition.type(); + if (null != conditionType) { + switch (conditionType) { + case ge: + if (StringUtils.isNotEmpty(tableName)) { + allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" $ge; ").append(value).append(" "); + } + break; + case le: + if (StringUtils.isNotEmpty(tableName)) + allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" $le; ").append(value).append(" "); + break; + case gt: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" $gt; ").append(value).append(" "); + break; + case lt: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" $lt; ").append(value).append(" "); + break; + case isNull: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" is null ").append(" "); + break; + case eq: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" = ").append(value).append(" "); + break; + case like: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" like concat('%', ").append(value).append(", '%'").append(" "); + break; + case in: + if (value instanceof Collection values) { + if (StringUtils.isNotEmpty(tableName)) { + allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" in ("); + for (Object o : values) { + allSql.append(o).append(","); + } + if (allSql.toString().endsWith(",")) { + allSql.delete(allSql.length() - 1, allSql.length()); + } + allSql.append(" )").append(" "); + } + + } else { + throw new MybatisConditionException("in 条件必须为集合"); + } + break; + case between: + if (value instanceof Collection) { + List list = Convert.toList(value); + if (CollUtil.size(list) == 2) { + if (StringUtils.isNotEmpty(tableName)) + allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" between ").append(list.get(0)).append(" AND ").append(list.get(1)).append(" "); + } + } else { + throw new MybatisConditionException("between 条件必须为集合"); + } + break; + case likeLeft: + if (StringUtils.isNotEmpty(tableName)) allSql.append(" AND ").append(tableName).append(".") + .append(name).append(" like concat('%', ").append(value).append(", '')").append(" "); + break; + case dataScope: + // TODO 因为 dataScope 是在父类, 所以没有指定tableName, 此处无法获取对应的dataScopeIds + if (value instanceof HashMap sqlParam) { + // dataScope 的 拼接部门Ids + Object dataScope = sqlParam.get("dataScope"); + if (ObjectUtil.isNotEmpty(dataScope) && dataScope instanceof String sql) { + allSql.append(sql).append(" "); + } + } + break; + case or_eq: + if (StringUtils.isNotEmpty(tableName)) { + allSql.append(" OR "); + for (String key : split) { + allSql.append(tableName).append(".") + .append(key).append(" = ").append(value).append(" AND "); + } + allSql.deleteCharAt(allSql.length() - 4); + if (allSql.toString().endsWith("AND ")) { + allSql.delete(allSql.length() - 4, allSql.length()); + } + allSql.append(") "); + } + + break; + case or_like: + if (StringUtils.isNotEmpty(tableName)) { + allSql.append(" OR ("); + for (String key : split) { + allSql.append(tableName).append(".") + .append(key).append(" like concat('%', ").append(value).append(", '%'").append(" AND "); + } + if (allSql.toString().endsWith("AND ")) { + allSql.delete(allSql.length() - 4, allSql.length()); + } + allSql.append(") "); + } + break; + case or_likeLeft: + if (StringUtils.isNotEmpty(tableName)) { + allSql.append(" OR ("); + for (String key : split) { + allSql.append(tableName).append(".") + .append(key).append(" like concat('%', ").append(value).append(", '')").append(" AND "); + } + // 去掉末尾的 AND + if (allSql.toString().endsWith("AND ")) { + allSql.delete(allSql.length() - 4, allSql.length()); + } + allSql.append(") "); + } + break; + } + } + } + if (query instanceof CommonParam commonParam){ + commonParam.getSqlParam().put("sqlWhere", allSql.toString()); + }else if (query instanceof BaseEntity baseEntity){ + baseEntity.getSqlParam().put("sqlWhere", allSql.toString()); + } + } + + public static LambdaQueryWrapper builder(Object query, CommonParam commonParam, String... columns) + { QueryWrapper queryWrapper = new QueryWrapper<>(); if (null != columns) { queryWrapper = queryWrapper.select(columns); @@ -38,9 +186,9 @@ public class WrapperUtils { queryWrapper = queryWrapper .orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy()); String groupStr = commonParam.getGroupStr(); - if (null != groupStr){ + if (null != groupStr) { String[] split = groupStr.split(","); - if (split.length > 0){ + if (split.length > 0) { queryWrapper.groupBy(Arrays.asList(split)); } } @@ -63,87 +211,97 @@ public class WrapperUtils { continue; } String name = condition.name(); + String tableName = condition.tableName(); String[] split = name.split(","); - Condition.ConditionType[] type = condition.type(); - if (null != type){ - for (Condition.ConditionType conditionType : type) { - switch (conditionType) { - case ge: - queryWrapper = queryWrapper.ge(ObjectUtil.isNotEmpty(value), name, value); - break; - case le: - queryWrapper = queryWrapper.le(ObjectUtil.isNotEmpty(value), name, value); - break; - case gt: - queryWrapper = queryWrapper.gt(ObjectUtil.isNotEmpty(value), name, value); - break; - case lt: - queryWrapper = queryWrapper.lt(ObjectUtil.isNotEmpty(value), name, value); - break; - case isNull: - queryWrapper = queryWrapper.isNull(name); - break; - case eq: - queryWrapper = queryWrapper.eq(ObjectUtil.isNotEmpty(value), name, value); - break; - case like: - queryWrapper = queryWrapper.like(ObjectUtil.isNotEmpty(value), name, value); - break; - case in: - if (value instanceof Collection) { - queryWrapper = queryWrapper.in(ObjectUtil.isNotEmpty(value), name, (Collection) value); - } else { - throw new MybatisConditionException("in 条件必须为集合"); + Condition.ConditionType conditionType = condition.type(); + if (null != conditionType) { + switch (conditionType) { + case ge: + queryWrapper = queryWrapper.ge(ObjectUtil.isNotEmpty(value), name, value); + break; + case le: + queryWrapper = queryWrapper.le(ObjectUtil.isNotEmpty(value), name, value); + break; + case gt: + queryWrapper = queryWrapper.gt(ObjectUtil.isNotEmpty(value), name, value); + break; + case lt: + queryWrapper = queryWrapper.lt(ObjectUtil.isNotEmpty(value), name, value); + break; + case isNull: + queryWrapper = queryWrapper.isNull(name); + break; + case eq: + queryWrapper = queryWrapper.eq(ObjectUtil.isNotEmpty(value), name, value); + break; + case like: + queryWrapper = queryWrapper.like(ObjectUtil.isNotEmpty(value), name, value); + break; + case in: + if (value instanceof Collection) { + queryWrapper = queryWrapper.in(ObjectUtil.isNotEmpty(value), name, (Collection) value); + } else { + throw new MybatisConditionException("in 条件必须为集合"); + } + break; + case between: + if (value instanceof Collection) { + List list = Convert.toList(value); + if (CollUtil.size(list) == 2) { + queryWrapper = queryWrapper.between(name, list.get(0), list.get(1)); } - break; - case between: - if (value instanceof Collection) { - List list = Convert.toList(value); - if (CollUtil.size(list) == 2) { - queryWrapper = queryWrapper.between(name, list.get(0), list.get(1)); - } - } else { - throw new MybatisConditionException("between 条件必须为集合"); + } else { + throw new MybatisConditionException("between 条件必须为集合"); + } + break; + case likeLeft: + queryWrapper = queryWrapper.likeLeft(ObjectUtil.isNotEmpty(value), name, value); + break; + case dataScope: + if (value instanceof HashMap sqlParam) { + // dataScope 的 拼接部门Ids + Object dataScope = sqlParam.get("dataScopeIds"); + if (ObjectUtil.isNotEmpty(dataScope) && dataScope instanceof Collection deptIds) { + queryWrapper = queryWrapper.in(CollectionUtil.isNotEmpty(deptIds), name, deptIds); } - break; - case likeLeft: - queryWrapper = queryWrapper.likeLeft(ObjectUtil.isNotEmpty(value), name, value); - break; - case dataScope: - if (value instanceof HashMap sqlParam) { - // dataScope 的 拼接部门Ids - Object dataScope = sqlParam.get("dataScopeIds"); - if (ObjectUtil.isNotEmpty(dataScope) && dataScope instanceof Collection deptIds) { - queryWrapper = queryWrapper.in(CollectionUtil.isNotEmpty(deptIds), name, deptIds); - } + } + break; + case or_eq: + queryWrapper.and(q -> { + for (String key : split) { + q.or().eq(ObjectUtil.isNotEmpty(value), key, value); } - break; - case or_eq: - queryWrapper.and(q -> { - for (String key : split) { - q.or().eq(ObjectUtil.isNotEmpty(value), key, value); - } - }); - break; - case or_like: - queryWrapper.and(q -> { - for (String key : split) { - q.or().like(ObjectUtil.isNotEmpty(value), key, value); - } - }); - break; - case or_likeLeft: - queryWrapper.and(q -> { - for (String key : split) { - q.or().likeLeft(ObjectUtil.isNotEmpty(value), key, value); - } - }); - break; - } + }); + break; + case or_like: + queryWrapper.and(q -> { + for (String key : split) { + q.or().like(ObjectUtil.isNotEmpty(value), key, value); + } + }); + break; + case or_likeLeft: + queryWrapper.and(q -> { + for (String key : split) { + q.or().likeLeft(ObjectUtil.isNotEmpty(value), key, value); + } + }); + break; } } } return queryWrapper.lambda(); } + + public static void main(String[] args) { + StringBuilder s = new StringBuilder(); + s.append("sss") + .append("(") + .append(",") + .append(")") + .append(" AND "); + s.delete(s.length() - 4, s.length()); + System.out.println(s.toString()); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java index 85c2798..c6bf156 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java @@ -19,6 +19,7 @@ import lombok.NoArgsConstructor; */ /** * 工单信息 + * 通过 wrk_id 去 store 获取 商户信息, 去 terminal 获取终端信息 */ @Data @EqualsAndHashCode(callSuper=true) @@ -37,19 +38,8 @@ public class WrkInfo extends BaseEntity { */ @TableField(value = "dept_id") private Long deptId; - - /** - * 商户id - */ - @TableField(value = "store_id") - private Long storeId; - - /** - * 终端id - */ - @TableField(value = "terminal_id") - private Long terminalId; - + @TableField(value = "dept_name") + private String deptName; /** * 总任务id */ @@ -66,12 +56,6 @@ public class WrkInfo extends BaseEntity { @TableField(value = "lower_task_name") private String lowerTaskName; - /** - * 终端记录id - */ - @TableField(value = "terminal_records_id") - private Long terminalRecordsId; - /** * 业务员id */ @@ -131,13 +115,6 @@ public class WrkInfo extends BaseEntity { */ @TableField(value = "account_phone") private String accountPhone; - - /** - * 终端状态 - */ - @TableField(value = "terminal_status") - private Integer terminalStatus; - /** * 服务结果 */ @@ -149,16 +126,15 @@ public class WrkInfo extends BaseEntity { */ @TableField(value = "remark") private String remark; - - /** - * 状态 - */ - @TableField(value = "`state`") - private Integer state; - /** * 结束时间 */ @TableField(value = "end_time") private LocalDateTime endTime; + /** + * 工单状态 + */ + @TableField(value = "wrk_status") + private Integer wrkStatus; + } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoAudit.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoAudit.java new file mode 100644 index 0000000..500908a --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoAudit.java @@ -0,0 +1,80 @@ +package com.chushang.inspection.work.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 com.chushang.common.mybatis.base.BaseEntity; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/27 18:13 + */ +/** + * 工单审核表 + */ +@Data +@EqualsAndHashCode(callSuper=true) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wrk_info_audit") +public class WrkInfoAudit extends BaseEntity { + /** + * id + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 工单id + */ + @TableField(value = "wrk_id") + private Long wrkId; + + /** + * 审核人 + */ + @TableField(value = "user_id") + private Long userId; + + /** + * 审核人 + */ + @TableField(value = "user_name") + private String userName; + + /** + * 审核时间 + */ + @TableField(value = "audit_time") + private Date auditTime; + + /** + * 审核状态 + */ + @TableField(value = "audit_state") + private Byte auditState; + + /** + * 审核描述 + */ + @TableField(value = "remark") + private String remark; + + /** + * 是否为历史记录 1是 0否 + */ + @TableField(value = "is_record") + private Byte isRecord; + + /** + * 所属部门 + */ + @TableField(value = "dept_id") + private Long deptId; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java index b5c76c2..587e261 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java @@ -32,60 +32,6 @@ public class WrkInfoStoreRecord extends BaseEntity { @TableId(value = "wrk_id", type = IdType.INPUT) private Long wrkId; - /** - * 工单编号 - */ - @TableField(value = "wrk_no") - private Long wrkNo; - - /** - * 租户id - */ - @TableField(value = "dept_id") - private Long deptId; - - /** - * 总任务id - */ - @TableField(value = "task_id") - private Long taskId; - - /** - * 本级id - */ - @TableField(value = "lower_task_id") - private Long lowerTaskId; - - /** - * 任务名称 - */ - @TableField(value = "task_name") - private String taskName; - - /** - * 本级任务名称 - */ - @TableField(value = "lower_task_name") - private String lowerTaskName; - - /** - * 服务结果 - */ - @TableField(value = "service_result") - private Integer serviceResult; - - /** - * 备注 - */ - @TableField(value = "remark") - private String remark; - - /** - * 结束时间 - */ - @TableField(value = "end_time") - private LocalDateTime endTime; - /** * 商户id */ @@ -157,19 +103,11 @@ public class WrkInfoStoreRecord extends BaseEntity { */ @TableField(value = "tip_tool") private String tipTool; - - /** - * 操作员编号 - */ - @TableField(value = "admin_id") - private String adminId; - /** * 巡检频次 */ @TableField(value = "ins_fre") private Integer insFre; - /** * 注册地址 */ diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java index f45a9c3..2e7c786 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java @@ -32,60 +32,6 @@ public class WrkInfoTerminalRecord extends BaseEntity { @TableId(value = "wrk_id", type = IdType.INPUT) private Long wrkId; - /** - * 租户id - */ - @TableField(value = "dept_id") - private Long deptId; - - /** - * 工单编号 - */ - @TableField(value = "wrk_no") - private Long wrkNo; - - /** - * 总任务id - */ - @TableField(value = "task_id") - private Long taskId; - - /** - * 本级id - */ - @TableField(value = "lower_task_id") - private Long lowerTaskId; - - /** - * 任务名称 - */ - @TableField(value = "task_name") - private String taskName; - - /** - * 本级任务名称 - */ - @TableField(value = "lower_task_name") - private String lowerTaskName; - - /** - * 服务结果 - */ - @TableField(value = "service_result") - private Integer serviceResult; - - /** - * 备注 - */ - @TableField(value = "remark") - private String remark; - - /** - * 结束时间 - */ - @TableField(value = "end_time") - private LocalDateTime endTime; - /** * 终端id */ diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/ReviewedQuery.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/ReviewedQuery.java new file mode 100644 index 0000000..b1ae80c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/ReviewedQuery.java @@ -0,0 +1,130 @@ +package com.chushang.inspection.work.query; + +import cn.hutool.core.date.DatePattern; +import com.chushang.common.mybatis.annotation.Condition; +import com.chushang.common.mybatis.page.CommonParam; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.*; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Null; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ReviewedQuery extends CommonParam { + + /** + * 工单编号 + */ + @Condition(name = "work_no", tableName = "i") + private String workNo; + + /** + * 商户编号 + */ + @Condition(name = "store_no", tableName = "i") + @Size(max = 64, message = "商户编号不能超过64个字符") + private String storeNo; + + /** + * 终端sn号 + */ + @Condition(name = "terminal_sn", tableName = "itr") + @Size(max = 100, message = "终端sn号不能超过100个字符") + private String terminalSn; + + /** + * 终端编号 + */ + @Condition(name = "terminal_no", tableName = "itr") + @Size(max = 30, message = "终端sn号不能超过30个字符") + private String terminalNo; + + /** + * 任务id + */ + @Condition(name = "task_id", tableName = "i") + @NotNull(message = "任务id不能为空") + private Long taskId; + + /** + * 工单类型 + */ + @Condition(name = "work_type", tableName = "i") + @Range(min = 1, max = 50, message = "工单类型非法") + private Integer workType; + + /** + * 工单状态 + */ + @Condition(name = "wrk_status", tableName = "i") + @Range(min = 1, max = 6, message = "工单状态非法") + private Integer wrkStatus; + + /** + * 终端类型 + */ + @Condition(name = "terminal_type", tableName = "itr") + @Range(min = 1, max = 9, message = "终端类型非法") + private Integer terminalType; + + /** + * 巡检频次 + */ + @Condition(name = "ins_fre", tableName = "isr") + @Range(min = 1, max = 5, message = "巡检频次非法") + private Integer insFre; + + /** + * 处理时间 + */ + @Condition(name = "dispose_time", type = Condition.ConditionType.between, tableName = "i") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) + private List disposeTime; + + /** + * 审核时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) + private List auditTime; + + /** + * 领用时间 + */ + @Condition(name = "create_time", type = Condition.ConditionType.between, tableName = "i") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) + private List createTime; + + /** + * 复审时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) + private List reviewTime; + + /** + * 工单状态 + */ + @Condition(name = "wrk_status", type = Condition.ConditionType.in, tableName = "i") + @Null(message = "内部参数,不允许访问") + private List states; + + /** + * 业务员名称/门店名称 + */ + @Size(max = 128, message = "业务员名称/门店名称不能超过128个字符") + @Condition(name = "shop_name,user_name,store_name", type = Condition.ConditionType.or_like, tableName = "isr") + private String universal; + + /** + * 下级任务id + */ + @Condition(name = "lower_task_id", type = Condition.ConditionType.in, tableName = "i") + private List lowerTaskIds; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java index a8ec454..908e6ba 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java @@ -22,61 +22,61 @@ public class WrkInfoQuery extends CommonParam { /** * 工单编号 */ - @Condition(name = "work_no") + @Condition(name = "work_no", tableName = "i") private String workNo; /** * 业务员名称 */ - @Condition(name = "work_name") + @Condition(name = "user_name", tableName = "i") @Size(max = 32, message = "业务员名称不能超过32个字符") - private String workName; + private String userName; /** * 商户编号 */ - @Condition(name = "no") + @Condition(name = "store_no", tableName = "isr") @Size(max = 64, message = "商户编号不能超过64个字符") - private String no; + private String storeNo; /** * 任务id */ - @Condition(name = "task_id") + @Condition(name = "task_id", tableName = "i") @NotNull(message = "任务id不能为空") private Long taskId; /** * 终端编号 */ - @Condition(name = "terminal_no") + @Condition(name = "terminal_no", tableName = "itr") @Size(max = 30, message = "终端sn号不能超过30个字符") private String terminalNo; /** * 商户名称 */ - @Condition(name = "name",type = Condition.ConditionType.like) + @Condition(name = "store_name",type = Condition.ConditionType.like, tableName = "isr") @Size(max = 128, message = "商户名称不能超过128个字符") - private String name; + private String storeName; /** * 处理时间 */ - @Condition(name = "dispose_time", type = Condition.ConditionType.between) + @Condition(name = "dispose_time", type = Condition.ConditionType.between, tableName = "i") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) private List disposeTime; /** * 工单状态 */ - @Condition(name = "state", type = Condition.ConditionType.in) + @Condition(name = "wrk_status", type = Condition.ConditionType.in, tableName = "i") @Null(message = "内部参数,不允许访问") private List states; /** * 下级任务id */ - @Condition(name = "lower_task_id", type = Condition.ConditionType.in) + @Condition(name = "lower_task_id", type = Condition.ConditionType.in, tableName = "i") private List lowerTaskIds; } diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkAuditVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkAuditVO.java new file mode 100644 index 0000000..8838d40 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkAuditVO.java @@ -0,0 +1,109 @@ +package com.chushang.inspection.work.vo; + +import com.chushang.common.dict.annotation.DictFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WrkAuditVO { + + /** + * id + */ + private Long wrkId; + + /** + * 工单编号 + */ + private String workNo; + + /** + * 商户编号 + */ + private String storeNo; + + /** + * 商户名称 + */ + private String storeName; + + /** + * 业务员名称 + */ + private String userName; + + /** + * 终端编号 + */ + private String terminalNo; + + /** + * 终端SN号 + */ + private String terminalSn; + + /** + * 工单类型 + */ + @DictFormat(dictType = "wrk_type") + private Integer workType; + + /** + * 巡检频次 + */ + @DictFormat(dictType = "ins_fre") + private Integer insFre; + + /** + * 审核状态 + */ + @DictFormat(dictType = "wrk_status") + private Integer state; + + /** + * 顶级任务名称 + */ + private String taskName; + + /** + * 下级任务名称 + */ + private String lowerTaskName; + + /** + * 地理位置信息 经度,纬度 + */ + private String geographicLocation; + + /** + * 地理位置信息地址 + */ + private String locationAddress; + + /** + * 偏差(米) + */ + private Long deviation; + + /** + * 处理时间 + */ + private LocalDateTime disposeTime; + + /** + * 创建者 + */ + protected String createBy; + + /** + * 创建日期 + */ + protected LocalDateTime createTime; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkDispatchVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkDispatchVO.java new file mode 100644 index 0000000..a77ebef --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkDispatchVO.java @@ -0,0 +1,94 @@ +package com.chushang.inspection.work.vo; + +import com.chushang.common.dict.annotation.DictFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WrkDispatchVO implements Serializable { + + /** + * wrkId + */ + private Long wrkId; + + /** + * 业务员名称 + */ + private String userName; + + /** + * 业务员名称 + */ + private Long userId; + /** + * 部门id + */ + private Long deptId; + /** + * 所属部门 + */ + private String deptName; + private Long storeId; + /** + * 商户名称 + */ + private String storeName; + /** + * 商户编号 + */ + private String storeNo; + /** + * 终端编号 + */ + private String terminalNo; + private String terminalSn; + @DictFormat(dictType = "terminal_type") + private Integer terminalType; + /** + * 终端型号 + */ + private String terminalModel; + private Long terminalId; + /** + * 工单类型 + */ + @DictFormat(dictType = "wrk_type") + private Integer workType; + /** + * 工单编号 + */ + private String workNo; + /** + * 工单优先级 + */ + @DictFormat(dictType = "wrk_priority") + private Integer workSort; + /** + * 备注 + */ + private String remark; + /** + * 截至时间 + */ + private LocalDateTime endTime; + /** + * 派单时间 + */ + private LocalDateTime createTime; + /** + * 派单人 + */ + private String createBy; + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoAuditController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoAuditController.java new file mode 100644 index 0000000..c853996 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoAuditController.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.controller; +import org.springframework.web.bind.annotation.*; + +/** +* 工单审核表(wrk_info_audit)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/wrk_info_audit") +public class WrkInfoAuditController { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java index cb6050d..28f91b5 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java @@ -1,12 +1,62 @@ package com.chushang.inspection.work.controller; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.lang.Assert; +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.utils.TaskConfigUtils; +import com.chushang.inspection.work.query.ReviewedQuery; +import com.chushang.inspection.work.query.WrkInfoQuery; +import com.chushang.inspection.work.service.WrkInfoService; +import com.chushang.security.annotation.RequiresPermissions; +import com.google.common.collect.Lists; +import lombok.extern.java.Log; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import java.util.List; + /** * 工单信息(wrk_info)表控制层 * * @author xxxxx */ @RestController -@RequestMapping("/wrk_info") +@RequestMapping("/wrk/info") public class WrkInfoController { + + @Resource + WrkInfoService wrkInfoService; + + /** + * 查询派单/领取列表 + */ + @SysLog(value = "派单/领取列表", businessType = BusinessType.QUERY) + @GetMapping("/dispatch/page") +// @RequiresPermissions("wrk:dispatch:page") + public AjaxResult queryDispatchPage(@Validated WrkInfoQuery query) { + query.setStates(Lists.newArrayList(1, 5, 6, 7)); + return AjaxResult.success(wrkInfoService.queryDispatchPage(query)); + } + + /** + * 查询待审核列表 + * + * @param query 条件 + */ + @SysLog(value = "待审核列表", businessType = BusinessType.QUERY) + @GetMapping("/review/page") + @RequiresPermissions("wrk:reviewed:page") + public AjaxResult queryToDeReviewedPage(@Validated ReviewedQuery query) { + Integer reviewMethod = TaskConfigUtils.reviewMethod(query.getTaskId()); + Assert.isTrue(reviewMethod != 1, "审核方式为无需审核,无法进入次页面"); + List status = ListUtil.toList(2, 5); + if (reviewMethod == 3) { + status.add(3); + status.add(6); + } + query.setStates(status); + return AjaxResult.success(wrkInfoService.queryArchivePage(query)); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java index 3b345cf..05d94a4 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java @@ -52,11 +52,11 @@ public class WrkInfoPhoneController { @SysLog(value = "电话工单save",businessType = BusinessType.IMPORT) @PostMapping(value = "/import/save") @RequiresPermissions("wrk:phone:import") - public AjaxResult importSave(@RequestBody List importReadList, + public AjaxResult importSave(@RequestBody List dataList, @RequestParam("taskId") Long taskId, @RequestParam("lowerTaskId") Long lowerTaskId) { - return infoPhoneService.importSave(importReadList, taskId, lowerTaskId); + return infoPhoneService.importSave(dataList, taskId, lowerTaskId); } /** @@ -86,7 +86,6 @@ public class WrkInfoPhoneController { } /** - * todo * 单条删除 */ @SysLog(value = "电话工单", businessType = BusinessType.DELETE) diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoAuditMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoAuditMapper.java new file mode 100644 index 0000000..1fe082d --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoAuditMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.work.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.work.po.WrkInfoAudit; + +/** + * @auther: zhao + * @date: 2024/6/27 18:13 + */ +public interface WrkInfoAuditMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java index 6f46d13..21269f7 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java @@ -1,11 +1,24 @@ package com.chushang.inspection.work.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chushang.inspection.work.po.WrkInfo; +import com.chushang.inspection.work.query.ReviewedQuery; +import com.chushang.inspection.work.query.WrkInfoQuery; +import com.chushang.inspection.work.vo.WrkAuditVO; +import com.chushang.inspection.work.vo.WrkDispatchVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @auther: zhao * @date: 2024/6/26 17:13 */ public interface WrkInfoMapper extends BaseMapper { + + List queryDispatchPage(@Param("query") WrkInfoQuery query, + Page page); + + List queryArchivePage(ReviewedQuery query, Page page); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoAuditService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoAuditService.java new file mode 100644 index 0000000..21012f1 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoAuditService.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.service; + +import com.chushang.inspection.work.po.WrkInfoAudit; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * @auther: zhao + * @date: 2024/6/27 18:13 + */ +public interface WrkInfoAuditService extends IService{ + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java index ff8f72a..6195c93 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java @@ -1,12 +1,19 @@ package com.chushang.inspection.work.service; +import com.chushang.common.mybatis.utils.PageResult; import com.chushang.inspection.work.po.WrkInfo; import com.baomidou.mybatisplus.extension.service.IService; - /** - * @auther: zhao - * @date: 2024/6/26 17:13 - */ -public interface WrkInfoService extends IService{ +import com.chushang.inspection.work.query.ReviewedQuery; +import com.chushang.inspection.work.query.WrkInfoQuery; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoService extends IService { + PageResult queryDispatchPage(WrkInfoQuery query); + + PageResult queryArchivePage(ReviewedQuery query); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoAuditServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoAuditServiceImpl.java new file mode 100644 index 0000000..cd217ee --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoAuditServiceImpl.java @@ -0,0 +1,16 @@ +package com.chushang.inspection.work.service.impl; + +import com.chushang.inspection.work.service.WrkInfoAuditService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.work.mapper.WrkInfoAuditMapper; +import com.chushang.inspection.work.po.WrkInfoAudit; + +/** + * @auther: zhao + * @date: 2024/6/27 18:13 + */ +@Service +public class WrkInfoAuditServiceImpl extends ServiceImpl implements WrkInfoAuditService { + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java index 0db1142..2ed6727 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.context.SecurityContextHolder; import com.chushang.common.core.exception.ResultException; +import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.text.Convert; import com.chushang.common.core.util.StringUtils; import com.chushang.common.core.web.AjaxResult; @@ -120,13 +121,119 @@ public class WrkInfoPhoneServiceImpl extends ServiceImpl> result = remoteUserService.getIdByUsernames(Set.of(info.getUserName()), SecurityConstants.INNER); + AssertUtil.invalidate(!result.isSuccess() || CollectionUtil.isEmpty(result.getData()), "没有获取到业务员信息"); + + Map idByUsernames = result.getData(); + PollingTask pollingTask = pollingTaskService.getById(taskId); + PollingTask lowerTask = pollingTaskService.getById(lowerTaskId); + AssertUtil.invalidate(ObjectUtil.isEmpty(pollingTask) || ObjectUtil.isEmpty(lowerTask), "没有获取到巡检任务信息"); + WrkInfoPhone wrkInfoPhone = convert(info, idByUsernames); + wrkInfoPhone.setTaskId(taskId); + wrkInfoPhone.setTaskName(pollingTask.getName()); + wrkInfoPhone.setLowerTaskId(lowerTaskId); + wrkInfoPhone.setLowerTaskName(lowerTask.getName()); + String terminalNo = info.getTerminalNo(); + String storeNo = info.getStoreNo(); + String storeName = info.getStoreName(); + if (StringUtils.isNotEmpty(storeNo) && StringUtils.isNotEmpty(storeName)) { + // 去获取唯一的 store 集合 + List list = storeService.list( + new LambdaQueryWrapper() + .eq(Store::getStoreNo, storeNo) + .eq(Store::getStoreName, storeName)); + // 不为空时走下一步 + if (CollectionUtil.isNotEmpty(list)) { + if (list.size() > 1) { + AssertUtil.invalidate(true, "商户编号:" + storeNo + ",商户名称:" + storeName + "重复"); + } else { + Store storeEntity = list.get(0); + assert null != storeEntity; + // 获取 到了 商户编号, 商户id, 商户名称 + wrkInfoPhone.setStoreId(storeEntity.getStoreId()); + wrkInfoPhone.setStoreNo(storeEntity.getStoreNo()); + wrkInfoPhone.setStoreName(storeEntity.getStoreName()); + } + } + } + // 终端不为空 + if (StringUtils.isNotEmpty(terminalNo)) { + List list = terminalService.list( + new LambdaQueryWrapper() + .eq(Terminal::getTerminalNo, terminalNo) + .eq(Terminal::getStoreNo, storeNo)); + if (CollectionUtil.isNotEmpty(list)) { + if (list.size() > 1) { + AssertUtil.invalidate(true, "商户编号:" + storeNo + ",商户名称:" + storeName + "终端编号:" + terminalNo + " 重复"); + } else { + Terminal terminal = list.get(0); + assert null != terminal; + wrkInfoPhone.setTerminalType(terminal.getTerminalType()); + wrkInfoPhone.setTerminalNo(terminal.getTerminalNo()); + wrkInfoPhone.setTerminalId(terminal.getTerminalId()); + } + } + // 去获取唯一的 store 集合 + } + save(wrkInfoPhone); + return wrkInfoPhone.getWrkId(); } @Override public Long updateInfo(WrkInfoPhoneImportDTO info, Long wrkId) { - return 0L; + Result> result = remoteUserService.getIdByUsernames(Set.of(info.getUserName()), SecurityConstants.INNER); + AssertUtil.invalidate(!result.isSuccess() || CollectionUtil.isEmpty(result.getData()), "没有获取到业务员信息"); + + Map idByUsernames = result.getData(); + WrkInfoPhone wrkInfoPhone = convert(info, idByUsernames); + wrkInfoPhone.setWrkId(wrkId); + String terminalNo = info.getTerminalNo(); + String storeNo = info.getStoreNo(); + String storeName = info.getStoreName(); + if (StringUtils.isNotEmpty(storeNo) && StringUtils.isNotEmpty(storeName)) { + // 去获取唯一的 store 集合 + List list = storeService.list( + new LambdaQueryWrapper() + .eq(Store::getStoreNo, storeNo) + .eq(Store::getStoreName, storeName)); + // 不为空时走下一步 + if (CollectionUtil.isNotEmpty(list)) { + if (list.size() > 1) { + AssertUtil.invalidate(true, "商户编号:" + storeNo + ",商户名称:" + storeName + "重复"); + } else { + Store storeEntity = list.get(0); + assert null != storeEntity; + // 获取 到了 商户编号, 商户id, 商户名称 + wrkInfoPhone.setStoreId(storeEntity.getStoreId()); + wrkInfoPhone.setStoreNo(storeEntity.getStoreNo()); + wrkInfoPhone.setStoreName(storeEntity.getStoreName()); + } + } + } + // 终端不为空 + if (StringUtils.isNotEmpty(terminalNo)) { + List list = terminalService.list( + new LambdaQueryWrapper() + .eq(Terminal::getTerminalNo, terminalNo) + .eq(Terminal::getStoreNo, storeNo)); + if (CollectionUtil.isNotEmpty(list)) { + if (list.size() > 1) { + AssertUtil.invalidate(true, "商户编号:" + storeNo + ",商户名称:" + storeName + "终端编号:" + terminalNo + " 重复"); + } else { + Terminal terminal = list.get(0); + assert null != terminal; + wrkInfoPhone.setTerminalType(terminal.getTerminalType()); + wrkInfoPhone.setTerminalNo(terminal.getTerminalNo()); + wrkInfoPhone.setTerminalId(terminal.getTerminalId()); + } + } + // 去获取唯一的 store 集合 + } + updateById(wrkInfoPhone); + + return wrkId; } /** @@ -210,7 +317,6 @@ public class WrkInfoPhoneServiceImpl extends ServiceImpl implements WrkInfoService { + @Resource + RemoteUserService remoteUserService; + @Override + @DataScope(deptAlias = "i") + public PageResult queryDispatchPage(WrkInfoQuery query) { + CommonParam commonParam = CommonParam.buildPageRequest(); + WrapperUtils.buildSql(query); + Page page = new Page<>(commonParam.getPage(), commonParam.getLimit()); + List records = baseMapper.queryDispatchPage(query, page); + return new PageResult(records, page); + } + + @Override + @DataScope(deptAlias = "i") + public PageResult queryArchivePage(ReviewedQuery query) { + CommonParam commonParam = CommonParam.buildPageRequest(); + WrapperUtils.buildSql(query); + Page page = new Page<>(commonParam.getPage(), commonParam.getLimit()); + List records = baseMapper.queryArchivePage(query, page); + return new PageResult(records, page); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoAuditMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoAuditMapper.xml new file mode 100644 index 0000000..183de10 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoAuditMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, wrk_id, user_id, user_name, audit_time, audit_state, remark, is_record, dept_id, + version, del_state, create_by, create_time, update_by, update_time + + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml index 497a751..048ae8c 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml @@ -1,43 +1,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - wrk_id, dept_id, store_id, terminal_id, task_id, lower_task_id, terminal_records_id, - user_id, user_name, work_no, work_type, work_method, work_sort, work_source, dispose_time, - account_manager, account_phone, terminal_status, service_result, remark, `state`, - end_time, version, del_state, create_by, create_time, update_by, update_time - + + +