From bff0c4a125913b928e2b128c6142d2521f8aebb8 Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Thu, 27 Jun 2024 15:05:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=B7=A5=E5=8D=95=E7=9B=B8=E5=85=B3=202.?= =?UTF-8?q?=20=E7=94=B5=E8=AF=9D=E5=B7=A5=E5=8D=95=E5=B7=B2=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/SecurityConstants.java | 2 +- .../core/context/SecurityContextHolder.java | 10 + .../chushang/common/dict/utils/DictUtils.java | 13 +- .../security/utils/SecurityUtils.java | 3 +- .../work/dto/WrkInfoPhoneImportDTO.java | 62 +++++ .../chushang/inspection/work/po/WrkInfo.java | 164 +++++++++++ .../inspection/work/po/WrkInfoPhone.java | 144 ++++++++++ .../work/po/WrkInfoStoreRecord.java | 220 +++++++++++++++ .../work/po/WrkInfoTerminalRecord.java | 154 +++++++++++ .../inspection/work/query/WrkInfoQuery.java | 82 ++++++ .../inspection/work/vo/WrkInfoPhoneVO.java | 106 ++++++++ .../inspection-service/pom.xml | 4 + .../com/chushang/InspectionApplication.java | 2 + .../consumer/InspectionConsumerService.java | 20 +- .../work/controller/WrkInfoController.java | 12 + .../controller/WrkInfoPhoneController.java | 100 +++++++ .../WrkInfoStoreRecordController.java | 12 + .../WrkInfoTerminalRecordController.java | 12 + .../inspection/work/mapper/WrkInfoMapper.java | 11 + .../work/mapper/WrkInfoPhoneMapper.java | 11 + .../work/mapper/WrkInfoStoreRecordMapper.java | 11 + .../mapper/WrkInfoTerminalRecordMapper.java | 11 + .../work/service/WrkInfoPhoneService.java | 32 +++ .../work/service/WrkInfoService.java | 12 + .../service/WrkInfoStoreRecordService.java | 12 + .../service/WrkInfoTerminalRecordService.java | 12 + .../service/impl/WrkInfoPhoneServiceImpl.java | 257 ++++++++++++++++++ .../work/service/impl/WrkInfoServiceImpl.java | 16 ++ .../impl/WrkInfoStoreRecordServiceImpl.java | 16 ++ .../WrkInfoTerminalRecordServiceImpl.java | 16 ++ .../src/main/resources/application.yml | 2 +- .../src/main/resources/logback-nacos.xml | 56 +--- .../main/resources/mapper/WrkInfoMapper.xml | 43 +++ .../resources/mapper/WrkInfoPhoneMapper.xml | 39 +++ .../mapper/WrkInfoStoreRecordMapper.xml | 55 ++++ .../mapper/WrkInfoTerminalRecordMapper.xml | 42 +++ .../chushang-module-inspection/pom.xml | 5 + ...erService.java => OssConsumerService.java} | 9 +- .../src/main/resources/bootstrap.yml | 17 +- .../src/main/resources/logback-nacos.xml | 5 + .../system/feign/RemoteUserService.java | 17 ++ .../system/consumer/TaskConsumerService.java | 8 +- .../system/remote/RemoteUserController.java | 22 +- .../system/service/ISysUserService.java | 4 + .../service/impl/SysUserServiceImpl.java | 28 ++ .../task/service/TaskInfoService.java | 2 +- .../src/main/resources/logback-nacos.xml | 6 +- 47 files changed, 1820 insertions(+), 79 deletions(-) create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/WrkInfoPhoneImportDTO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoPhone.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkInfoPhoneVO.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoStoreRecordController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoTerminalRecordController.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoPhoneMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoStoreRecordMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoTerminalRecordMapper.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoPhoneService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoStoreRecordService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoTerminalRecordService.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoStoreRecordServiceImpl.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoTerminalRecordServiceImpl.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoPhoneMapper.xml create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoStoreRecordMapper.xml create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoTerminalRecordMapper.xml rename chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/{TaskConsumerService.java => OssConsumerService.java} (93%) diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java index ca52a8a..eaa3d21 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/constant/SecurityConstants.java @@ -66,7 +66,7 @@ public interface SecurityConstants { /** * 租户字段 */ - String TENANT_ID = "tenant_id"; + String DEPT_ID = "dept_id"; } diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/context/SecurityContextHolder.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/context/SecurityContextHolder.java index cdc552a..dfb8b88 100644 --- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/context/SecurityContextHolder.java +++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/context/SecurityContextHolder.java @@ -96,4 +96,14 @@ public class SecurityContextHolder { set(SecurityConstants.ROLE_PERMISSION, permissions); } + + public static Long getDeptId() + { + return Convert.toLong(get(SecurityConstants.DEPT_ID), 0L); + } + + public static void setDeptId(Long deptId) + { + set(SecurityConstants.DEPT_ID, deptId); + } } diff --git a/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/utils/DictUtils.java b/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/utils/DictUtils.java index e6c34f1..f4caf89 100644 --- a/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/utils/DictUtils.java +++ b/chushang-common/chushang-common-dict/src/main/java/com/chushang/common/dict/utils/DictUtils.java @@ -1,8 +1,6 @@ package com.chushang.common.dict.utils; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.map.MapUtil; import cn.hutool.extra.spring.SpringUtil; import com.chushang.common.core.web.Result; import com.chushang.common.dict.feign.RemoteDictDataService; @@ -13,8 +11,8 @@ import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import java.util.HashMap; -import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; @Slf4j @NoArgsConstructor(access = AccessLevel.PRIVATE) @@ -75,8 +73,13 @@ public class DictUtils { if (CollUtil.isEmpty(dictMap)){ return null; } - return dictMap.values().stream().filter(value -> value.equals(label)) - .findFirst().orElse(null); + AtomicReference key = new AtomicReference<>(); + dictMap.forEach((k,v)->{ + if (v.equals(label)){ + key.set(k); + } + }); + return key.get(); } } diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java index f8e36f8..3c620c9 100644 --- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java +++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/utils/SecurityUtils.java @@ -60,7 +60,8 @@ public class SecurityUtils */ public static Long getDeptId() { - return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class).getSysUser().getDeptId(); + LoginUser loginUser = SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class); + return null == loginUser ? SecurityContextHolder.getDeptId() : loginUser.getSysUser().getDeptId(); } /** diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/WrkInfoPhoneImportDTO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/WrkInfoPhoneImportDTO.java new file mode 100644 index 0000000..fbf98cc --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/dto/WrkInfoPhoneImportDTO.java @@ -0,0 +1,62 @@ +package com.chushang.inspection.work.dto; + +import cn.hutool.core.date.DatePattern; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @auther: zhao + * @date: 2024/6/25 15:07 + * 导入 时读取出来 + */ +@Data +public class WrkInfoPhoneImportDTO { + @ExcelProperty("商户编号") + private String storeNo; + @ExcelProperty("商户名称") + private String storeName; + @ExcelProperty("商户联系人") + private String storeContact; + @ExcelProperty("商户联系电话") + private String storePhone; + @ExcelProperty("商户地址") + private String storeAddress; + @ExcelProperty("终端编号") + private String terminalNo; + @ExcelProperty("终端类型") + private String terminalType; + @ExcelProperty("建档日期") + @DateTimeFormat(DatePattern.CHINESE_DATE_PATTERN) + private LocalDateTime createdDate; + @ExcelProperty("处理日期") + @DateTimeFormat(DatePattern.CHINESE_DATE_PATTERN) + private LocalDateTime disposeTime; + @ExcelProperty("商户类型") + private String storeType; + @ExcelProperty("巡检结果") + private String wrkResult; + /** + * 具体说明 + */ + @ExcelProperty("具体说明") + private String wrkSpecificResult; + /** + * 具体详细说明 + */ + @ExcelProperty("具体详细说明") + private String wrkDetailResult; + /** + * + */ + @ExcelProperty("巡检人账户") + private String userName; + /** + * 导入完成时, 进行返回所用 + */ + @ExcelProperty("导入结果") + private String importResult; + +} 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 new file mode 100644 index 0000000..85c2798 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfo.java @@ -0,0 +1,164 @@ +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.time.LocalDateTime; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +/** + * 工单信息 + */ +@Data +@EqualsAndHashCode(callSuper=true) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wrk_info") +public class WrkInfo extends BaseEntity { + /** + * id + */ + @TableId(value = "wrk_id", type = IdType.ASSIGN_ID) + private Long wrkId; + + /** + * 租户id + */ + @TableField(value = "dept_id") + private Long deptId; + + /** + * 商户id + */ + @TableField(value = "store_id") + private Long storeId; + + /** + * 终端id + */ + @TableField(value = "terminal_id") + private Long terminalId; + + /** + * 总任务id + */ + @TableField(value = "task_id") + private Long taskId; + @TableField(value = "task_name") + private String taskName; + + /** + * 本级id + */ + @TableField(value = "lower_task_id") + private Long lowerTaskId; + @TableField(value = "lower_task_name") + private String lowerTaskName; + + /** + * 终端记录id + */ + @TableField(value = "terminal_records_id") + private Long terminalRecordsId; + + /** + * 业务员id + */ + @TableField(value = "user_id") + private Long userId; + + /** + * 业务员名字 + */ + @TableField(value = "user_name") + private String userName; + + /** + * 工单编号 + */ + @TableField(value = "work_no") + private Long workNo; + + /** + * 工单类型 + */ + @TableField(value = "work_type") + private Short workType; + + /** + * 巡检方式 + */ + @TableField(value = "work_method") + private Short workMethod; + + /** + * 工单优先级 + */ + @TableField(value = "work_sort") + private Integer workSort; + + /** + * 工单来源 + */ + @TableField(value = "work_source") + private Integer workSource; + + /** + * 业务员处理时间 + */ + @TableField(value = "dispose_time") + private LocalDateTime disposeTime; + + /** + * 客户经理 + */ + @TableField(value = "account_manager") + private String accountManager; + + /** + * 经理电话 + */ + @TableField(value = "account_phone") + private String accountPhone; + + /** + * 终端状态 + */ + @TableField(value = "terminal_status") + private Integer terminalStatus; + + /** + * 服务结果 + */ + @TableField(value = "service_result") + private Integer serviceResult; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 状态 + */ + @TableField(value = "`state`") + private Integer state; + + /** + * 结束时间 + */ + @TableField(value = "end_time") + private LocalDateTime endTime; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoPhone.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoPhone.java new file mode 100644 index 0000000..34829eb --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoPhone.java @@ -0,0 +1,144 @@ +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.time.LocalDateTime; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/26 17:26 + */ +/** + * 电话巡检工单信息 + */ +@Data +@EqualsAndHashCode(callSuper=true) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wrk_info_phone") +public class WrkInfoPhone extends BaseEntity { + /** + * 主键id + */ + @TableId(value = "wrk_id", type = IdType.ASSIGN_ID) + private Long wrkId; + + /** + * 工单编号 + */ + @TableField(value = "wrk_no") + private String wrkNo; + + /** + * 商户id + */ + @TableField(value = "store_id") + private Long storeId; + + /** + * 商户编号 + */ + @TableField(value = "store_no") + private String storeNo; + + @TableField(value = "store_name") + private String storeName; + + /** + * 终端id + */ + @TableField(value = "terminal_id") + private Long terminalId; + + /** + * 终端编号 + */ + @TableField(value = "terminal_no") + private String terminalNo; + /** + * 终端类型 + */ + @TableField(value = "terminal_type") + private Integer terminalType; + + /** + * 业务员id + */ + @TableField(value = "user_id") + private Long userId; + + /** + * 业务员名字 + */ + @TableField(value = "user_name") + private String userName; + + /** + * 工单来源 + */ + @TableField(value = "work_source") + private Integer workSource; + + /** + * 巡检结果 + */ + @TableField(value = "wrk_result") + private String wrkResult; + + /** + * 具体说明 + */ + @TableField(value = "wrk_specific_result") + private String wrkSpecificResult; + + /** + * 具体详细说明 + */ + @TableField(value = "wrk_detail_result") + private String wrkDetailResult; + + /** + * 总任务id + */ + @TableField(value = "task_id") + private Long taskId; + @TableField(value = "task_name") + private String taskName; + + /** + * 本级id + */ + @TableField(value = "lower_task_id") + private Long lowerTaskId; + @TableField(value = "lower_task_name") + private String lowerTaskName; + + /** + * 租户id + */ + @TableField(value = "dept_id") + private Long deptId; + + /** + * 工单状态, 默认为已巡检 + */ + @TableField(value = "wrk_status") + private Integer wrkStatus; + + /** + * 处理时间--在工单上已经巡检时, 取处理司时间, 否则未巡检 + */ + @TableField(value = "dispose_time") + private LocalDateTime disposeTime; + + +} 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 new file mode 100644 index 0000000..b5c76c2 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoStoreRecord.java @@ -0,0 +1,220 @@ +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.time.LocalDateTime; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +/** + * 工单商户信息 + */ +@Data +@EqualsAndHashCode(callSuper=true) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wrk_info_store_record") +public class WrkInfoStoreRecord extends BaseEntity { + /** + * 工单id + */ + @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 + */ + @TableField(value = "store_id") + private Long storeId; + + /** + * 门店状态 + */ + @TableField(value = "store_status") + private Integer storeStatus; + + /** + * 商户编号 + */ + @TableField(value = "store_no") + private String storeNo; + + /** + * 商户名称 + */ + @TableField(value = "store_name") + private String storeName; + + /** + * 商户联系人 + */ + @TableField(value = "store_contact") + private String storeContact; + + /** + * 商户联系电话 + */ + @TableField(value = "store_phone") + private String storePhone; + + /** + * 商户地址 + */ + @TableField(value = "store_address") + private String storeAddress; + + /** + * 商户特殊编号 + */ + @TableField(value = "special_num") + private String specialNum; + + /** + * 门店名称 + */ + @TableField(value = "shop_name") + private String shopName; + + /** + * 商户类型 + */ + @TableField(value = "store_type") + private Integer storeType; + + /** + * 现有其他收单产品 + */ + @TableField(value = "products") + private String products; + + /** + * 商户提示工具 + */ + @TableField(value = "tip_tool") + private String tipTool; + + /** + * 操作员编号 + */ + @TableField(value = "admin_id") + private String adminId; + + /** + * 巡检频次 + */ + @TableField(value = "ins_fre") + private Integer insFre; + + /** + * 注册地址 + */ + @TableField(value = "register_address") + private String registerAddress; + + /** + * 法人/负责人 + */ + @TableField(value = "legal_name") + private String legalName; + + /** + * 地理位置信息 + */ + @TableField(value = "geographic_location") + private String geographicLocation; + + /** + * 地理位置信息地址 + */ + @TableField(value = "location_address") + private String locationAddress; + + /** + * 本次巡检位置经纬度 + */ + @TableField(value = "work_location") + private String workLocation; + + /** + * 本次巡检位置信息(根据经纬度) + */ + @TableField(value = "work_adderss") + private String workAdderss; + + /** + * 偏差(直线距离 米) + */ + @TableField(value = "deviation") + private Long deviation; + + /** + * 预制码编码 + */ + @TableField(value = "pre_code_encoding") + private String preCodeEncoding; +} 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 new file mode 100644 index 0000000..f45a9c3 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/po/WrkInfoTerminalRecord.java @@ -0,0 +1,154 @@ +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.time.LocalDateTime; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +/** + * 工单终端信息 + */ +@Data +@EqualsAndHashCode(callSuper=true) +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "wrk_info_terminal_record") +public class WrkInfoTerminalRecord extends BaseEntity { + /** + * 工单id + */ + @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 + */ + @TableField(value = "terminal_id") + private Long terminalId; + + /** + * 终端sn号 + */ + @TableField(value = "terminal_sn") + private String terminalSn; + + /** + * 终端类型 + */ + @TableField(value = "terminal_type") + private Integer terminalType; + + /** + * 终端型号 + */ + @TableField(value = "terminal_model") + private String terminalModel; + + /** + * 终端编号 + */ + @TableField(value = "terminal_no") + private String terminalNo; + + /** + * 终端来源 + */ + @TableField(value = "terminal_source") + private Integer terminalSource; + + /** + * 终端版地址 + */ + @TableField(value = "terminal_address") + private String terminalAddress; + + /** + * 终端版本号 + */ + @TableField(value = "terminal_version") + private String terminalVersion; + + /** + * 终端产权人 + */ + @TableField(value = "terminal_property") + private Integer terminalProperty; + + /** + * 是否占用 + */ + @TableField(value = "occupy") + private Integer occupy; + + /** + * 终端状态 + */ + @TableField(value = "terminal_status") + private Integer terminalStatus; +} 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 new file mode 100644 index 0000000..a8ec454 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/query/WrkInfoQuery.java @@ -0,0 +1,82 @@ +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 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 WrkInfoQuery extends CommonParam { + + /** + * 工单编号 + */ + @Condition(name = "work_no") + private String workNo; + + /** + * 业务员名称 + */ + @Condition(name = "work_name") + @Size(max = 32, message = "业务员名称不能超过32个字符") + private String workName; + + /** + * 商户编号 + */ + @Condition(name = "no") + @Size(max = 64, message = "商户编号不能超过64个字符") + private String no; + + /** + * 任务id + */ + @Condition(name = "task_id") + @NotNull(message = "任务id不能为空") + private Long taskId; + + /** + * 终端编号 + */ + @Condition(name = "terminal_no") + @Size(max = 30, message = "终端sn号不能超过30个字符") + private String terminalNo; + + /** + * 商户名称 + */ + @Condition(name = "name",type = Condition.ConditionType.like) + @Size(max = 128, message = "商户名称不能超过128个字符") + private String name; + + /** + * 处理时间 + */ + @Condition(name = "dispose_time", type = Condition.ConditionType.between) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN) + private List disposeTime; + + /** + * 工单状态 + */ + @Condition(name = "state", type = Condition.ConditionType.in) + @Null(message = "内部参数,不允许访问") + private List states; + + /** + * 下级任务id + */ + @Condition(name = "lower_task_id", type = Condition.ConditionType.in) + private List lowerTaskIds; +} diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkInfoPhoneVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkInfoPhoneVO.java new file mode 100644 index 0000000..0b7e0bc --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkInfoPhoneVO.java @@ -0,0 +1,106 @@ +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.Serializable; + +/** + * @auther: zhao + * @date: 2024/6/25 11:31 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WrkInfoPhoneVO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 工单编号 + */ + private Long wrkNo; + /** + * 商户id + */ + private Long storeId; + /** + * 商户编号 + */ + private Long storeNo; + /** + * 商户名称 + * storeId -- store + */ + private String storeName; + /** + * 终端id + */ + private Long terminalId; + /** + * terminal_no + */ + private Long terminalNo; + /** + * 终端类型 + * selfField = "terminalId", + * targetTable = "terminal", + */ + @DictFormat(dictType = "terminal_type") + private Integer terminalType; + /** + * 用户id + */ + private Long userId; + /** + * 用户名称 + */ + private String userName; + /** + * 工单来源 -- 默认 + */ + private Integer workSource; + /** + * wrk_result 巡检结果 + */ + private String wrkResult; + /** + * 具体说明 + */ + private String wrkSpecificResult; + /** + * 具体详细说明 + */ + private String wrkDetailResult; + /** + * 总任务id + */ + private Long taskId; + /** + * 顶级任务 + * selfField = "taskId", + * targetTable = "polling_task", + */ + private String taskName; + /** + * 本级id + * selfField = "lowerTaskId", + * targetTable = "polling_task", + */ + private Long lowerTaskId; + /** + * 下级任务 + */ + private String lowerTaskName; + /** + * 租户id + */ + private Long tenantId; + /** + * 工单状态, 只分为 0和1, 0 未巡检, 1 已巡检 + */ + private Integer wrkStatus; + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/pom.xml b/chushang-modules/chushang-module-inspection/inspection-service/pom.xml index 2427702..079e1f5 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/pom.xml +++ b/chushang-modules/chushang-module-inspection/inspection-service/pom.xml @@ -25,6 +25,10 @@ com.chushang chushang-common-redis + + com.chushang + system-feign + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/InspectionApplication.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/InspectionApplication.java index 87a20ea..15146d4 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/InspectionApplication.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/InspectionApplication.java @@ -25,7 +25,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication(scanBasePackages = {"com.chushang.**"}) @EnableTransferFeign @EnableCustomConfig +//启用服务调用的参数传递,包含链路追踪日志 @EnableTransactionManagement +@ServletComponentScan public class InspectionApplication extends SpringBootServletInitializer { private final static Logger log = LoggerFactory.getLogger(InspectionApplication.class); diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java index 37dc5d8..ca8938f 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java @@ -2,17 +2,23 @@ package com.chushang.inspection.consumer; import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.ServiceConstant; +import com.chushang.common.core.context.SecurityContextHolder; +import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.core.web.Result; +import com.chushang.security.utils.SecurityUtils; import com.chushang.task.entity.TaskInfo; import com.chushang.task.entity.dto.UpdateTaskDTO; import com.chushang.task.enums.TaskStatusEnum; import com.chushang.task.enums.TaskTypeEnum; import com.chushang.task.feign.RemoteTaskService; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; import org.springframework.stereotype.Component; +import org.springframework.web.context.ContextLoader; +import org.springframework.web.context.WebApplicationContext; import javax.annotation.Resource; import java.lang.reflect.Constructor; @@ -26,7 +32,7 @@ import java.util.Objects; */ @Slf4j @Component -@RocketMQMessageListener(topic = ServiceConstant.INSPECTION, consumerGroup = ServiceConstant.INSPECTION_CONSUMER_GROUP) +@RocketMQMessageListener(topic = ServiceConstant.INSPECTION + 1, consumerGroup = ServiceConstant.INSPECTION_CONSUMER_GROUP) public class InspectionConsumerService implements RocketMQListener { @Resource RemoteTaskService remoteTaskService; @@ -43,14 +49,14 @@ public class InspectionConsumerService implements RocketMQListener { String methodName = message.getMethodName(); String params = message.getParams(); Integer taskType = message.getTaskType(); + SecurityContextHolder.setDeptId(message.getDeptId()); UpdateTaskDTO updateTask = new UpdateTaskDTO(); try { // 包名+类名 Class classzz = Class.forName(className); // 获取构造器对象 - Constructor constructor = classzz.getConstructor(); - // 利用构造器对象创建一个对象 - Object o = constructor.newInstance(); + // 利用spring 获取对象 + Object o = SpringUtils.getBean(classzz); // 传递需要执行的方法 Method method = classzz.getMethod(methodName, String.class); // 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class); @@ -62,7 +68,8 @@ public class InspectionConsumerService implements RocketMQListener { if (result.isSuccess() && 200 == code){ updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); String data = (String)result.get(AjaxResult.DATA_TAG); - updateTask.setLastRunResult("success"); + String msg = (String) result.get(AjaxResult.MSG_TAG); + updateTask.setLastRunResult(msg); if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ updateTask.setRemark(data); } @@ -75,7 +82,8 @@ public class InspectionConsumerService implements RocketMQListener { if (result.isSuccess() && result.getCode() == 200){ updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); String data = (String)result.getData(); - updateTask.setLastRunResult("success"); + String msg = result.getMsg(); + updateTask.setLastRunResult(msg); if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ updateTask.setRemark(data); } 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 new file mode 100644 index 0000000..cb6050d --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.controller; +import org.springframework.web.bind.annotation.*; + +/** +* 工单信息(wrk_info)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/wrk_info") +public class WrkInfoController { +} 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 new file mode 100644 index 0000000..3b345cf --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoPhoneController.java @@ -0,0 +1,100 @@ +package com.chushang.inspection.work.controller; +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.work.dto.WrkInfoPhoneImportDTO; +import com.chushang.inspection.work.query.WrkInfoQuery; +import com.chushang.inspection.work.service.WrkInfoPhoneService; +import com.chushang.security.annotation.RequiresPermissions; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** +* 电话巡检工单信息(wrk_info_phone)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/wrk/info/phone") +@RequiredArgsConstructor +public class WrkInfoPhoneController { + + private final WrkInfoPhoneService infoPhoneService; + + /** + * 查询工单 + */ + @SysLog(value = "电话工单", businessType = BusinessType.QUERY) + @PostMapping("/dispatch/page") + @RequiresPermissions("wrk:phone:page") + public AjaxResult pageList(@RequestBody @Validated WrkInfoQuery query) { + return AjaxResult.success(infoPhoneService.pageList(query)); + } + + /** + * 导入电话工单, 读取之后返回数据 + */ + @SysLog(value = "电话工单read", businessType = BusinessType.IMPORT) + @PostMapping(value = "/import/read") + @RequiresPermissions("wrk:phone:import") + public AjaxResult importRead(@RequestParam("file") MultipartFile file){ + return AjaxResult.success(infoPhoneService.importRead(file)); + } + + + /** + * 导入电话工单, 读取之后返回数据 + */ + @SysLog(value = "电话工单save",businessType = BusinessType.IMPORT) + @PostMapping(value = "/import/save") + @RequiresPermissions("wrk:phone:import") + public AjaxResult importSave(@RequestBody List importReadList, + @RequestParam("taskId") Long taskId, + @RequestParam("lowerTaskId") Long lowerTaskId) + { + return infoPhoneService.importSave(importReadList, taskId, lowerTaskId); + } + + /** + * 单条录入 + */ + @SysLog(value = "电话工单", businessType = BusinessType.INSERT) + @PostMapping(value = "/save") + @RequiresPermissions("wrk:phone:save") + public AjaxResult saveInfo(@RequestBody WrkInfoPhoneImportDTO info, + @RequestParam("taskId") Long taskId, + @RequestParam("lowerTaskId") Long lowerTaskId) + { + return AjaxResult.success(infoPhoneService.saveInfo(info,taskId, lowerTaskId)); + } + + /** + * todo + * 单条修改 + */ + @SysLog(value = "电话工单", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{wrkId}") + @RequiresPermissions("wrk:phone:save") + public AjaxResult delInfo(@RequestBody WrkInfoPhoneImportDTO info, + @PathVariable Long wrkId) + { + return AjaxResult.success(infoPhoneService.updateInfo(info, wrkId)); + } + + /** + * todo + * 单条删除 + */ + @SysLog(value = "电话工单", businessType = BusinessType.DELETE) + @DeleteMapping(value = "/del/{wrkId}") + @RequiresPermissions("wrk:phone:save") + public AjaxResult delInfo(@PathVariable Long wrkId) + { + return AjaxResult.success(infoPhoneService.removeById(wrkId)); + } + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoStoreRecordController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoStoreRecordController.java new file mode 100644 index 0000000..980d535 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoStoreRecordController.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.controller; +import org.springframework.web.bind.annotation.*; + +/** +* 工单商户信息(wrk_info_store_record)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/wrk_info_store_record") +public class WrkInfoStoreRecordController { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoTerminalRecordController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoTerminalRecordController.java new file mode 100644 index 0000000..698b135 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoTerminalRecordController.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.controller; +import org.springframework.web.bind.annotation.*; + +/** +* 工单终端信息(wrk_info_terminal_record)表控制层 +* +* @author xxxxx +*/ +@RestController +@RequestMapping("/wrk_info_terminal_record") +public class WrkInfoTerminalRecordController { +} 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 new file mode 100644 index 0000000..6f46d13 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.work.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.work.po.WrkInfo; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoPhoneMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoPhoneMapper.java new file mode 100644 index 0000000..e4b3437 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoPhoneMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.work.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.work.po.WrkInfoPhone; + +/** + * @auther: zhao + * @date: 2024/6/26 17:26 + */ +public interface WrkInfoPhoneMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoStoreRecordMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoStoreRecordMapper.java new file mode 100644 index 0000000..cccdae8 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoStoreRecordMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.work.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.work.po.WrkInfoStoreRecord; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoStoreRecordMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoTerminalRecordMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoTerminalRecordMapper.java new file mode 100644 index 0000000..a6ed9ab --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoTerminalRecordMapper.java @@ -0,0 +1,11 @@ +package com.chushang.inspection.work.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chushang.inspection.work.po.WrkInfoTerminalRecord; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoTerminalRecordMapper extends BaseMapper { +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoPhoneService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoPhoneService.java new file mode 100644 index 0000000..46f743c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoPhoneService.java @@ -0,0 +1,32 @@ +package com.chushang.inspection.work.service; + +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.common.mybatis.utils.PageResult; +import com.chushang.inspection.work.dto.WrkInfoPhoneImportDTO; +import com.chushang.inspection.work.po.WrkInfoPhone; +import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.inspection.work.query.WrkInfoQuery; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * @auther: zhao + * @date: 2024/6/26 17:26 + */ +public interface WrkInfoPhoneService extends IService { + + + PageResult pageList(WrkInfoQuery query); + + List importRead(MultipartFile file); + + AjaxResult importSave(List importReadList, Long taskId, Long lowerTaskId); + + Long saveInfo(WrkInfoPhoneImportDTO info, Long taskId, Long lowerTaskId); + + Long updateInfo(WrkInfoPhoneImportDTO info, Long wrkId); + + Result savePhoneInfo(String params); +} 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 new file mode 100644 index 0000000..ff8f72a --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.service; + +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{ + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoStoreRecordService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoStoreRecordService.java new file mode 100644 index 0000000..1e11a8d --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoStoreRecordService.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.service; + +import com.chushang.inspection.work.po.WrkInfoStoreRecord; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoStoreRecordService extends IService{ + + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoTerminalRecordService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoTerminalRecordService.java new file mode 100644 index 0000000..e7cb04c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoTerminalRecordService.java @@ -0,0 +1,12 @@ +package com.chushang.inspection.work.service; + +import com.chushang.inspection.work.po.WrkInfoTerminalRecord; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +public interface WrkInfoTerminalRecordService extends IService{ + + +} 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 new file mode 100644 index 0000000..b2c917b --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java @@ -0,0 +1,257 @@ +package com.chushang.inspection.work.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.text.Convert; +import com.chushang.common.core.util.StringUtils; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.common.dict.utils.DictUtils; +import com.chushang.common.excel.utils.ExcelUtils; +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.po.PollingTask; +import com.chushang.inspection.project.service.PollingTaskService; +import com.chushang.inspection.terminal.po.Store; +import com.chushang.inspection.terminal.po.Terminal; +import com.chushang.inspection.terminal.service.StoreService; +import com.chushang.inspection.terminal.service.TerminalService; +import com.chushang.inspection.work.dto.WrkInfoPhoneImportDTO; +import com.chushang.inspection.work.query.WrkInfoQuery; +import com.chushang.inspection.work.service.WrkInfoPhoneService; +import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.feign.RemoteOssService; +import com.chushang.security.utils.SecurityUtils; +import com.chushang.system.feign.RemoteUserService; +import com.chushang.task.entity.dto.CreateTaskDTO; +import com.chushang.task.enums.ServiceEnum; +import com.chushang.task.enums.TaskTypeEnum; +import com.chushang.task.feign.RemoteTaskService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.work.mapper.WrkInfoPhoneMapper; +import com.chushang.inspection.work.po.WrkInfoPhone; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.ByteArrayOutputStream; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @auther: zhao + * @date: 2024/6/26 17:26 + */ +@Slf4j +@Service +public class WrkInfoPhoneServiceImpl extends ServiceImpl implements WrkInfoPhoneService { + + @Resource + RemoteTaskService remoteTaskService; + @Resource + StoreService storeService; + @Resource + PollingTaskService pollingTaskService; + @Resource + TerminalService terminalService; + @Resource + RemoteUserService remoteUserService; + @Resource + RemoteOssService remoteOssService; + + @Override + public PageResult pageList(WrkInfoQuery query) { + CommonParam commonParam = CommonParam.buildPageRequest(); + LambdaQueryWrapper infoPhoneSql = WrapperUtils.builder(query, commonParam); + IPage page = this.page( + new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()), + infoPhoneSql + ); + return new PageResult(page); + } + + /** + * 导入读 + * @param file + * @return + */ + @Override + public List importRead(MultipartFile file) { + return ExcelUtils.read(file, WrkInfoPhoneImportDTO.class); + } + + /** + * 导入 存 + */ + @Override + public AjaxResult importSave(List importReadList, Long taskId, Long lowerTaskId) { + + Map bodyMap = new HashMap<>(); + bodyMap.put("taskId", taskId); + bodyMap.put("lowerTaskId", lowerTaskId); + bodyMap.put("importReadList", importReadList); + CreateTaskDTO task = CreateTaskDTO.builder() + .params(JSON.toJSONString(bodyMap)) + .taskName("电话工单导入") + .applicationName(ServiceEnum.INSPECTION) + .methodName("savePhoneInfo") + .className(this.getClass().getName()) + .deptId(SecurityUtils.getDeptId()) + .taskType(TaskTypeEnum.DOWN) + .remark("电话工单导入") + .createBy(SecurityUtils.getUsername()) + .build(); + remoteTaskService.createTask(task, SecurityConstants.INNER); + return AjaxResult.success("导入成功, 请在后台任务中查看导入结果"); + } + + /** + * 单条录入 + */ + @Override + public Long saveInfo(WrkInfoPhoneImportDTO info, Long taskId, Long lowerTaskId) { + return 1L; + } + + @Override + public Long updateInfo(WrkInfoPhoneImportDTO info, Long wrkId) { + return 0L; + } + + /** + * 导入成功 + */ + @Transactional + public Result savePhoneInfo(String params){ + if (StringUtils.isEmpty(params)){ + return Result.failed("获取信息为空"); + } + JSONObject jsonObject = JSON.parseObject(params); + Long taskId = jsonObject.getLong("taskId"); + Long lowerTaskId = jsonObject.getLong("lowerTaskId"); + List importReadList = jsonObject.getList("importReadList", WrkInfoPhoneImportDTO.class); + + List errList = new ArrayList<>(); + List successList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(importReadList)) { + Set userNames = importReadList.stream().map(WrkInfoPhoneImportDTO::getUserName) + .filter(StringUtils::isNotEmpty) + .collect(Collectors.toSet()); + // 获取 用户名 + id + Result> result = remoteUserService.getIdByUsernames(userNames, SecurityConstants.INNER); + if (!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ + return Result.failed("没有获取到业务员信息"); + } + Map idByUsernames = result.getData(); + PollingTask pollingTask = pollingTaskService.getById(taskId); + PollingTask lowerTask = pollingTaskService.getById(lowerTaskId); + if (ObjectUtil.isEmpty(pollingTask) || ObjectUtil.isEmpty(lowerTask)){ + return Result.failed("没有获取到巡检任务信息"); + } + for (WrkInfoPhoneImportDTO wrkInfoPhoneImportDTO : importReadList) { + WrkInfoPhone wrkInfoPhone = convert(wrkInfoPhoneImportDTO, idByUsernames); + wrkInfoPhone.setTaskId(taskId); + wrkInfoPhone.setTaskName(pollingTask.getName()); + wrkInfoPhone.setLowerTaskId(lowerTaskId); + wrkInfoPhone.setLowerTaskName(lowerTask.getName()); + String terminalNo = wrkInfoPhoneImportDTO.getTerminalNo(); + String storeNo = wrkInfoPhoneImportDTO.getStoreNo(); + String storeName = wrkInfoPhoneImportDTO.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) { + wrkInfoPhoneImportDTO.setImportResult("商户编号:" + storeNo + ",商户名称:" + storeName + "重复"); + errList.add(wrkInfoPhoneImportDTO); + } 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) { + wrkInfoPhoneImportDTO.setImportResult("商户编号:" + storeNo + ",商户名称:" + storeName + "终端编号:" + terminalNo + " 重复"); + errList.add(wrkInfoPhoneImportDTO); + } else { + Terminal terminal = list.get(0); + assert null != terminal; + wrkInfoPhone.setTerminalType(terminal.getTerminalType()); + wrkInfoPhone.setTerminalNo(terminal.getTerminalNo()); + wrkInfoPhone.setTerminalId(terminal.getTerminalId()); + } + } + // 去获取唯一的 store 集合 + } + wrkInfoPhone.setDeptId(SecurityContextHolder.getDeptId()); + successList.add(wrkInfoPhone); + } + } + if (CollectionUtil.isNotEmpty(successList)) { + this.saveBatch(successList); + } + if (CollectionUtil.isNotEmpty(errList)) { + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){ + ExcelUtils.exportList(outputStream, WrkInfoPhoneImportDTO.class, errList,"电话工单导入异常"); + Result> ossResult = remoteOssService.uploadFile(outputStream.toByteArray(), "", null, null, "", SecurityConstants.INNER); + if (ossResult.isSuccess() && CollectionUtil.isNotEmpty(ossResult.getData())){ + List data = ossResult.getData(); + FileSourceVo fileSourceVo = data.get(0); + return Result.ok(fileSourceVo.getFilePath(), "电话工单导入成功, 异常数据以导入文件系统, 请下载"); + }else { + return Result.failed(ossResult.getMsg()); + } + }catch (Exception e){ + throw new ResultException("电话工单导入失败, 请联系系统管理员"); + } + } + return Result.ok("success"); + } + + private WrkInfoPhone convert(WrkInfoPhoneImportDTO wrkInfoPhoneImportDTO, Map idByUsernames) { + WrkInfoPhone wrkInfoPhone = new WrkInfoPhone(); + wrkInfoPhone.setDelState(false); +// 理论上这个应该是框架 进行赋值的 + String userName = wrkInfoPhoneImportDTO.getUserName(); + + wrkInfoPhone.setUserId(idByUsernames.get(userName)); + wrkInfoPhone.setUserName(userName); + wrkInfoPhone.setWrkStatus(1); + wrkInfoPhone.setWorkSource(1); + wrkInfoPhone.setWrkResult(wrkInfoPhone.getWrkResult()); + wrkInfoPhone.setWrkDetailResult(wrkInfoPhone.getWrkDetailResult()); + wrkInfoPhone.setWrkSpecificResult(wrkInfoPhone.getWrkSpecificResult()); + wrkInfoPhone.setWrkNo(IdUtil.getSnowflake().nextId() + ""); + String terminalType = DictUtils.getDictValue("terminal_type", wrkInfoPhoneImportDTO.getTerminalType()); + wrkInfoPhone.setTerminalType(Convert.toInt(terminalType)); + wrkInfoPhone.setDisposeTime(wrkInfoPhoneImportDTO.getDisposeTime()); + return wrkInfoPhone; + } + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java new file mode 100644 index 0000000..72ec522 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java @@ -0,0 +1,16 @@ +package com.chushang.inspection.work.service.impl; + +import com.chushang.inspection.work.service.WrkInfoService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.work.mapper.WrkInfoMapper; +import com.chushang.inspection.work.po.WrkInfo; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +@Service +public class WrkInfoServiceImpl extends ServiceImpl implements WrkInfoService { + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoStoreRecordServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoStoreRecordServiceImpl.java new file mode 100644 index 0000000..7a64976 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoStoreRecordServiceImpl.java @@ -0,0 +1,16 @@ +package com.chushang.inspection.work.service.impl; + +import com.chushang.inspection.work.service.WrkInfoStoreRecordService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.work.po.WrkInfoStoreRecord; +import com.chushang.inspection.work.mapper.WrkInfoStoreRecordMapper; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +@Service +public class WrkInfoStoreRecordServiceImpl extends ServiceImpl implements WrkInfoStoreRecordService { + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoTerminalRecordServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoTerminalRecordServiceImpl.java new file mode 100644 index 0000000..170b160 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoTerminalRecordServiceImpl.java @@ -0,0 +1,16 @@ +package com.chushang.inspection.work.service.impl; + +import com.chushang.inspection.work.service.WrkInfoTerminalRecordService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chushang.inspection.work.mapper.WrkInfoTerminalRecordMapper; +import com.chushang.inspection.work.po.WrkInfoTerminalRecord; + +/** + * @auther: zhao + * @date: 2024/6/26 17:13 + */ +@Service +public class WrkInfoTerminalRecordServiceImpl extends ServiceImpl implements WrkInfoTerminalRecordService { + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/application.yml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/application.yml index 89e62e5..deee9b0 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/application.yml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/application.yml @@ -28,7 +28,7 @@ spring: driver-class-name: com.mysql.cj.jdbc.Driver username: ${config.jdbc.master.inspection.username} password: ${config.jdbc.master.inspection.password} - url: jdbc:mysql://${config.jdbc.master.inspection.host}:${config.jdbc.master.inspection.port}/${config.jdbc.master.task.database}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://${config.jdbc.master.inspection.host}:${config.jdbc.master.inspection.port}/${config.jdbc.master.inspection.database}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai hikari: # 最大线程池数量 maximum-pool-size: 30 diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/logback-nacos.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/logback-nacos.xml index 478daf9..efc6106 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/logback-nacos.xml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/logback-nacos.xml @@ -83,6 +83,11 @@ + + + + + @@ -100,48 +105,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + 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 new file mode 100644 index 0000000..497a751 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoPhoneMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoPhoneMapper.xml new file mode 100644 index 0000000..8eb3fa5 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoPhoneMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wrk_id, wrk_no, store_id, store_no, terminal_id, terminal_no, user_id, user_name, + work_source, wrk_result, wrk_specific_result, wrk_detail_result, task_id, lower_task_id, + dept_id, version, del_state, create_by, create_time, update_by, update_time, wrk_status, + dispose_time, terminal_type + + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoStoreRecordMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoStoreRecordMapper.xml new file mode 100644 index 0000000..7475d16 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoStoreRecordMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wrk_id, wrk_no, dept_id, task_id, lower_task_id, task_name, lower_task_name, service_result, + remark, end_time, store_id, store_status, store_no, store_name, store_contact, store_phone, + store_address, special_num, shop_name, store_type, products, tip_tool, admin_id, + ins_fre, register_address, legal_name, geographic_location, location_address, work_location, + work_adderss, deviation, precode_encoding, 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/WrkInfoTerminalRecordMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoTerminalRecordMapper.xml new file mode 100644 index 0000000..cc20896 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoTerminalRecordMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wrk_id, dept_id, wrk_no, task_id, lower_task_id, task_name, lower_task_name, service_result, + remark, end_time, terminal_id, terminal_sn, terminal_type, terminal_model, terminal_no, + terminal_source, terminal_address, terminal_version, terminal_property, occupy, terminal_status, + version, del_state, create_by, create_time, update_by, update_time + + diff --git a/chushang-modules/chushang-module-inspection/pom.xml b/chushang-modules/chushang-module-inspection/pom.xml index def380b..9f07c6b 100644 --- a/chushang-modules/chushang-module-inspection/pom.xml +++ b/chushang-modules/chushang-module-inspection/pom.xml @@ -39,6 +39,11 @@ oss-feign 1.0.0 + + com.chushang + system-feign + 1.0.0 + diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/TaskConsumerService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/OssConsumerService.java similarity index 93% rename from chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/TaskConsumerService.java rename to chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/OssConsumerService.java index a2a24f0..15cb14f 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/TaskConsumerService.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/consumer/OssConsumerService.java @@ -2,6 +2,7 @@ package com.chushang.oss.consumer; import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.ServiceConstant; +import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.core.web.Result; import com.chushang.task.entity.TaskInfo; @@ -15,7 +16,6 @@ import org.apache.rocketmq.spring.core.RocketMQListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.time.LocalDateTime; import java.util.Objects; @@ -27,7 +27,7 @@ import java.util.Objects; @Slf4j @Component @RocketMQMessageListener(topic = ServiceConstant.OSS, consumerGroup = ServiceConstant.OSS_CONSUMER_GROUP) -public class TaskConsumerService implements RocketMQListener { +public class OssConsumerService implements RocketMQListener { @Resource RemoteTaskService remoteTaskService; /** @@ -48,9 +48,8 @@ public class TaskConsumerService implements RocketMQListener { // 包名+类名 Class classzz = Class.forName(className); // 获取构造器对象 - Constructor constructor = classzz.getConstructor(); - // 利用构造器对象创建一个对象 - Object o = constructor.newInstance(); + // 利用spring 获取对象 + Object o = SpringUtils.getBean(classzz); // 传递需要执行的方法 Method method = classzz.getMethod(methodName, String.class); // 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class); diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/bootstrap.yml b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/bootstrap.yml index f8f6fe4..5466c00 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/bootstrap.yml +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/bootstrap.yml @@ -19,22 +19,23 @@ spring: cache: enabled: false nacos: - username: nacos - password: nacos + server-addr: ${nacos.host} + username: ${nacos.username} + password: ${nacos.password} discovery: - server-addr: ${nacos.host} + server-addr: ${spring.cloud.nacos.server-addr} namespace: ${nacos.namespace} - group: ${nacos.group} + group: local + service: ${spring.application.name} config: + server-addr: ${spring.cloud.nacos.server-addr} namespace: ${spring.cloud.nacos.discovery.namespace} - group: ${spring.cloud.nacos.discovery.group} - server-addr: ${spring.cloud.nacos.discovery.server-addr} + group: ${nacos.group} file-extension: yaml refresh-enabled: true shared-configs: -# 此处不应当 走common 了, 每个羡慕应该有自己单独的 db.yaml 文件 redis 可以使用公共 - dataId: application-common.${spring.cloud.nacos.config.file-extension} - group: ${spring.cloud.nacos.discovery.group} + group: ${nacos.group} refresh: ${spring.cloud.nacos.config.refresh-enabled} profiles: active: @profiles.active@ diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/logback-nacos.xml b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/logback-nacos.xml index 74bb510..1c3d038 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/resources/logback-nacos.xml +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/resources/logback-nacos.xml @@ -79,6 +79,11 @@ + + + + + diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java index db0d0ad..09de64a 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java @@ -7,9 +7,15 @@ import com.chushang.security.entity.vo.LoginUser; import com.chushang.system.constants.SystemConstants; import com.chushang.security.entity.po.SysUser; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; /** * by zhaowenyuan create 2022/5/20 10:05 @@ -41,4 +47,15 @@ public interface RemoteUserService { @GetMapping("/getInfoById/{userId}") Result getInfoById(@PathVariable(value = "userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 通过用户名获取 对应的userId + */ + @GetMapping("/username") + Result> getIdByUsernames(@RequestParam(value = "userNames") Set userNames, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 通过用户名获取 对应的userId + */ + @GetMapping("/nickname") + Result> getIdByNicknames(@RequestParam(value = "nickNames") Set nickNames, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/consumer/TaskConsumerService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/consumer/TaskConsumerService.java index cc197c2..8e27785 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/consumer/TaskConsumerService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/consumer/TaskConsumerService.java @@ -3,6 +3,8 @@ package com.chushang.system.consumer; import com.alibaba.fastjson2.JSON; import com.chushang.common.core.constant.SecurityConstants; import com.chushang.common.core.constant.ServiceConstant; +import com.chushang.common.core.context.SecurityContextHolder; +import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.core.web.Result; import com.chushang.task.entity.TaskInfo; @@ -44,14 +46,14 @@ public class TaskConsumerService implements RocketMQListener { String methodName = message.getMethodName(); String params = message.getParams(); Integer taskType = message.getTaskType(); + SecurityContextHolder.setDeptId(message.getDeptId()); UpdateTaskDTO updateTask = new UpdateTaskDTO(); try { // 包名+类名 Class classzz = Class.forName(className); // 获取构造器对象 - Constructor constructor = classzz.getConstructor(); - // 利用构造器对象创建一个对象 - Object o = constructor.newInstance(); + // 利用spring 获取对象 + Object o = SpringUtils.getBean(classzz); // 传递需要执行的方法 Method method = classzz.getMethod(methodName, String.class); // 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class); diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java index aeaefd8..31ae301 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java @@ -14,9 +14,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; -import java.util.List; -import java.util.Set; +import java.util.*; @RestController @RequestMapping(value = "/user/remote") @@ -74,8 +72,24 @@ public class RemoteUserController implements RemoteUserService { @GetMapping("/getInfoById/{userId}") @InnerAuth public Result getInfoById(@PathVariable(value = "userId") Long userId, String source) { - return Result.ok(sysUserService.selectByUserId(userId)); } + /** + * 根据账户获取对应的userId + */ + @Override + @InnerAuth + @GetMapping("/username") + public Result> getIdByUsernames(Set userNames, String source) { + return Result.ok(sysUserService.getIdByUsernames(userNames)); + } + + @Override + @InnerAuth + @GetMapping("/nickname") + public Result> getIdByNicknames(Set nickNames, String source) { + return Result.ok(sysUserService.getIdByNicknames(nickNames)); + } + } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java index 39e25de..54e15d3 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java @@ -10,6 +10,7 @@ import com.chushang.system.entity.dto.ListUserDTO; import com.chushang.security.entity.po.SysUser; import java.util.Collection; +import java.util.Map; /** *

@@ -92,4 +93,7 @@ public interface ISysUserService extends IService { void resetPwd(Long userId, String newPassword); + Map getIdByUsernames(Collection userNames); + + Map getIdByNicknames(Collection nickNames); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java index 61f4e04..bede9cd 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java @@ -1,5 +1,6 @@ package com.chushang.system.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -26,6 +27,8 @@ import java.time.LocalDateTime; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -224,6 +227,31 @@ public class SysUserServiceImpl extends ServiceImpl impl .build()); } + /** + * 根据 userName 获取 用户id + */ + @Override + public Map getIdByUsernames(Collection userNames) { + List list = list(new LambdaQueryWrapper() + .in(SysUser::getUsername, userNames)); + if (CollUtil.isEmpty(list)) { + return null; + } + return list.stream().collect(Collectors + .toMap(SysUser::getUsername, SysUser::getUserId, (v1, v2) -> v1)); + } + + @Override + public Map getIdByNicknames(Collection nickNames) { + List list = list(new LambdaQueryWrapper() + .in(SysUser::getNickName, nickNames)); + if (CollUtil.isEmpty(list)) { + return null; + } + return list.stream().collect(Collectors + .toMap(SysUser::getNickName, SysUser::getUserId, (v1, v2) -> v1)); + } + private void checkUsernameUnique(String username) { long count = count(new LambdaQueryWrapper() diff --git a/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/service/TaskInfoService.java b/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/service/TaskInfoService.java index 7c06b94..b26b929 100644 --- a/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/service/TaskInfoService.java +++ b/chushang-modules/chushang-module-task/task-service/src/main/java/com/chushang/task/service/TaskInfoService.java @@ -54,7 +54,7 @@ public class TaskInfoService extends ServiceImpl imple } public void joinQueue(TaskInfo taskInfo){ - mqProduceService.send(taskInfo.getApplicationName(), taskInfo); + mqProduceService.send(taskInfo.getApplicationName() + 1, taskInfo); taskInfo.setTaskStatus(TaskStatusEnum.DISPATCH.getCode()); updateById(taskInfo); diff --git a/chushang-modules/chushang-module-task/task-service/src/main/resources/logback-nacos.xml b/chushang-modules/chushang-module-task/task-service/src/main/resources/logback-nacos.xml index 977c569..efff532 100644 --- a/chushang-modules/chushang-module-task/task-service/src/main/resources/logback-nacos.xml +++ b/chushang-modules/chushang-module-task/task-service/src/main/resources/logback-nacos.xml @@ -83,7 +83,11 @@ - + + + + +