Browse Source

Merge remote-tracking branch 'origin/master'

wxf 2 years ago
parent
commit
db932d5ba9
47 changed files with 1563 additions and 22 deletions
  1. 5 0
      hx-admin/pom.xml
  2. 4 1
      hx-admin/src/main/resources/application-dev.yml
  3. 5 3
      hx-admin/src/main/resources/application-test.yml
  4. 3 0
      hx-common/src/main/java/com/fjhx/common/constant/SourceConstant.java
  5. 75 0
      hx-mail/src/main/java/com/fjhx/mail/controller/enterprise/EnterpriseDomainController.java
  6. 72 0
      hx-mail/src/main/java/com/fjhx/mail/controller/enterprise/EnterpriseMailboxController.java
  7. 12 5
      hx-mail/src/main/java/com/fjhx/mail/controller/personal/PersonalMailboxController.java
  8. 17 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseDomainDto.java
  9. 17 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseDomainSelectDto.java
  10. 17 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseMailboxDto.java
  11. 17 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseMailboxSelectDto.java
  12. 72 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/po/EnterpriseDomain.java
  13. 58 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/po/EnterpriseMailbox.java
  14. 17 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/vo/EnterpriseDomainVo.java
  15. 73 0
      hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/vo/EnterpriseMailboxVo.java
  16. 26 0
      hx-mail/src/main/java/com/fjhx/mail/mapper/enterprise/EnterpriseDomainMapper.java
  17. 26 0
      hx-mail/src/main/java/com/fjhx/mail/mapper/enterprise/EnterpriseMailboxMapper.java
  18. 46 0
      hx-mail/src/main/java/com/fjhx/mail/service/enterprise/EnterpriseDomainService.java
  19. 46 0
      hx-mail/src/main/java/com/fjhx/mail/service/enterprise/EnterpriseMailboxService.java
  20. 57 0
      hx-mail/src/main/java/com/fjhx/mail/service/enterprise/impl/EnterpriseDomainServiceImpl.java
  21. 71 0
      hx-mail/src/main/java/com/fjhx/mail/service/enterprise/impl/EnterpriseMailboxServiceImpl.java
  22. 23 0
      hx-mail/src/main/resources/mapper/enterprise/EnterpriseDomainMapper.xml
  23. 29 0
      hx-mail/src/main/resources/mapper/enterprise/EnterpriseMailboxMapper.xml
  24. 2 2
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionPlan.java
  25. 5 5
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java
  26. 5 5
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java
  27. 8 0
      hx-oa/pom.xml
  28. 81 0
      hx-oa/src/main/java/com/fjhx/oa/controller/contacts/ContactsController.java
  29. 70 0
      hx-oa/src/main/java/com/fjhx/oa/controller/external/ExternalAddressBookController.java
  30. 22 0
      hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsDto.java
  31. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsSelectDto.java
  32. 47 0
      hx-oa/src/main/java/com/fjhx/oa/entity/contacts/po/Contacts.java
  33. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/contacts/vo/ContactsVo.java
  34. 22 0
      hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookDto.java
  35. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookSelectDto.java
  36. 37 0
      hx-oa/src/main/java/com/fjhx/oa/entity/external/po/ExternalAddressBook.java
  37. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/external/vo/ExternalAddressBookVo.java
  38. 26 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/contacts/ContactsMapper.java
  39. 26 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/external/ExternalAddressBookMapper.java
  40. 49 0
      hx-oa/src/main/java/com/fjhx/oa/service/contacts/ContactsService.java
  41. 143 0
      hx-oa/src/main/java/com/fjhx/oa/service/contacts/impl/ContactsServiceImpl.java
  42. 48 0
      hx-oa/src/main/java/com/fjhx/oa/service/external/ExternalAddressBookService.java
  43. 74 0
      hx-oa/src/main/java/com/fjhx/oa/service/external/impl/ExternalAddressBookServiceImpl.java
  44. 3 1
      hx-oa/src/main/java/com/fjhx/oa/service/internal/impl/InternalAddressBookServiceImpl.java
  45. 20 0
      hx-oa/src/main/resources/mapper/contacts/ContactsMapper.xml
  46. 18 0
      hx-oa/src/main/resources/mapper/external/ExternalAddressBookMapper.xml
  47. 1 0
      pom.xml

+ 5 - 0
hx-admin/pom.xml

@@ -64,6 +64,11 @@
             <artifactId>hx-account</artifactId>
             <artifactId>hx-account</artifactId>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-mail</artifactId>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 4 - 1
hx-admin/src/main/resources/application-dev.yml

@@ -42,11 +42,14 @@ spring:
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_purchase?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
                     password: 3PN-Mzn#vnP&q6d
-
                 account:
                 account:
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     url: jdbc:mysql://36.134.91.96:17330/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
                     password: 3PN-Mzn#vnP&q6d
+                mail:
+                    url: jdbc:mysql://36.134.91.96:17330/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: fjhx2012mysql
+                    password: 3PN-Mzn#vnP&q6d
 
 
     # redis 配置
     # redis 配置
     redis:
     redis:

+ 5 - 3
hx-admin/src/main/resources/application-test.yml

@@ -34,14 +34,16 @@ spring:
                     url: jdbc:mysql://127.0.0.1:17330/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     url: jdbc:mysql://127.0.0.1:17330/bytesailing_iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
                     password: 3PN-Mzn#vnP&q6d
-
                 customer:
                 customer:
                     url: jdbc:mysql://127.0.0.1:17330/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     url: jdbc:mysql://127.0.0.1:17330/bytesailing_customer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
                     password: 3PN-Mzn#vnP&q6d
-
                 account:
                 account:
-                    url: jdbc:mysql://36.134.91.96:17330/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    url: jdbc:mysql://127.0.0.1:17330/bytesailing_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+                    username: fjhx2012mysql
+                    password: 3PN-Mzn#vnP&q6d
+                mail:
+                    url: jdbc:mysql://127.0.0.1:17330/bytesailing_mail?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
                     username: fjhx2012mysql
                     username: fjhx2012mysql
                     password: 3PN-Mzn#vnP&q6d
                     password: 3PN-Mzn#vnP&q6d
 
 

+ 3 - 0
hx-common/src/main/java/com/fjhx/common/constant/SourceConstant.java

@@ -19,6 +19,9 @@ public interface SourceConstant {
     String PURCHASE = "purchase";
     String PURCHASE = "purchase";
 
 
     String BASE = "base";
     String BASE = "base";
+
     String ACCOUNT = "account";
     String ACCOUNT = "account";
 
 
+    String MAIL = "mail";
+
 }
 }

+ 75 - 0
hx-mail/src/main/java/com/fjhx/mail/controller/enterprise/EnterpriseDomainController.java

@@ -0,0 +1,75 @@
+package com.fjhx.mail.controller.enterprise;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainSelectDto;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseDomainVo;
+import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 企业邮箱域名 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.MAIL)
+@RestController
+@RequestMapping("/enterpriseDomain")
+public class EnterpriseDomainController {
+
+    @Autowired
+    private EnterpriseDomainService enterpriseDomainService;
+
+    /**
+     * 企业邮箱域名分页
+     */
+    @PostMapping("/page")
+    public Page<EnterpriseDomainVo> page(@RequestBody EnterpriseDomainSelectDto dto) {
+        return enterpriseDomainService.getPage(dto);
+    }
+
+    /**
+     * 企业邮箱域名明细
+     */
+    @PostMapping("/detail")
+    public EnterpriseDomainVo detail(@RequestBody BaseSelectDto dto) {
+        return enterpriseDomainService.detail(dto.getId());
+    }
+
+    /**
+     * 企业邮箱域名新增
+     */
+    @PostMapping("/add")
+    public void add(@Validated @RequestBody EnterpriseDomainDto enterpriseDomainDto) {
+        enterpriseDomainService.add(enterpriseDomainDto);
+    }
+
+    /**
+     * 企业邮箱域名编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody EnterpriseDomainDto enterpriseDomainDto) {
+        enterpriseDomainService.edit(enterpriseDomainDto);
+    }
+
+    /**
+     * 企业邮箱域名删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        enterpriseDomainService.delete(dto.getId());
+    }
+
+}

+ 72 - 0
hx-mail/src/main/java/com/fjhx/mail/controller/enterprise/EnterpriseMailboxController.java

@@ -0,0 +1,72 @@
+package com.fjhx.mail.controller.enterprise;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 企业邮箱 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.MAIL)
+@RestController
+@RequestMapping("/enterpriseMailbox")
+public class EnterpriseMailboxController {
+
+    @Autowired
+    private EnterpriseMailboxService enterpriseMailboxService;
+
+    /**
+     * 企业邮箱分页
+     */
+    @PostMapping("/page")
+    public Page<EnterpriseMailboxVo> page(@RequestBody EnterpriseMailboxSelectDto dto) {
+        return enterpriseMailboxService.getPage(dto);
+    }
+
+    /**
+     * 企业邮箱明细
+     */
+    @PostMapping("/detail")
+    public EnterpriseMailboxVo detail(@RequestBody BaseSelectDto dto) {
+        return enterpriseMailboxService.detail(dto.getId());
+    }
+
+    /**
+     * 企业邮箱新增
+     */
+    @PostMapping("/add")
+    public void add(@Validated @RequestBody EnterpriseMailboxDto enterpriseMailboxDto) {
+        enterpriseMailboxService.add(enterpriseMailboxDto);
+    }
+
+    /**
+     * 企业邮箱编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody EnterpriseMailboxDto enterpriseMailboxDto) {
+        enterpriseMailboxService.edit(enterpriseMailboxDto);
+    }
+
+    /**
+     * 企业邮箱删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        enterpriseMailboxService.delete(dto.getId());
+    }
+
+}

+ 12 - 5
hx-mail/src/main/java/com/fjhx/mail/controller/personal/PersonalMailboxController.java

@@ -1,13 +1,19 @@
 package com.fjhx.mail.controller.personal;
 package com.fjhx.mail.controller.personal;
 
 
-import org.springframework.web.bind.annotation.*;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
-import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxDto;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
+import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
 import com.fjhx.mail.service.personal.PersonalMailboxService;
 import com.fjhx.mail.service.personal.PersonalMailboxService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 
 
 /**
 /**
@@ -18,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author 
  * @author 
  * @since 2023-04-06
  * @since 2023-04-06
  */
  */
+@DS(SourceConstant.MAIL)
 @RestController
 @RestController
 @RequestMapping("/personalMailbox")
 @RequestMapping("/personalMailbox")
 public class PersonalMailboxController {
 public class PersonalMailboxController {
@@ -45,7 +52,7 @@ public class PersonalMailboxController {
      * 个人邮箱新增
      * 个人邮箱新增
      */
      */
     @PostMapping("/add")
     @PostMapping("/add")
-    public void add(@RequestBody PersonalMailboxDto personalMailboxDto) {
+    public void add(@Validated @RequestBody PersonalMailboxDto personalMailboxDto) {
         personalMailboxService.add(personalMailboxDto);
         personalMailboxService.add(personalMailboxDto);
     }
     }
 
 

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseDomainDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.entity.enterprise.dto;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 企业邮箱域名新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseDomainDto extends EnterpriseDomain {
+
+}

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseDomainSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.entity.enterprise.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 企业邮箱域名列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseDomainSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseMailboxDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.entity.enterprise.dto;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 企业邮箱新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseMailboxDto extends EnterpriseMailbox {
+
+}

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/dto/EnterpriseMailboxSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.entity.enterprise.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 企业邮箱列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseMailboxSelectDto extends BaseSelectDto {
+
+}

+ 72 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/po/EnterpriseDomain.java

@@ -0,0 +1,72 @@
+package com.fjhx.mail.entity.enterprise.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 企业邮箱域名
+ * </p>
+ *
+ * @author
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("enterprise_domain")
+public class EnterpriseDomain extends BasePo {
+
+    /**
+     * 域名
+     */
+    @NotBlank(message = "邮箱域名不能为空")
+    private String domainName;
+
+    /**
+     * 类型:1国内 2国外
+     */
+    @NotNull(message = "是否海外邮箱不能为空")
+    private Integer type;
+
+    /**
+     * 收件host
+     */
+    @NotBlank(message = "收件服务器地址不能为空")
+    private String receiveHost;
+
+    /**
+     * 收件端口
+     */
+    @NotNull(message = "收件端口不能为空")
+    private Integer receivePort;
+
+    /**
+     * 收件协议
+     */
+    @NotBlank(message = "收件协议不能为空")
+    private String receiveProtocol;
+
+    /**
+     * 发件host
+     */
+    @NotBlank(message = "发件服务器地址不能为空")
+    private String sendHost;
+
+    /**
+     * 发件端口
+     */
+    @NotNull(message = "发件端口不能为空")
+    private Integer sendPort;
+
+    /**
+     * 发件协议
+     */
+    @NotBlank(message = "发件协议不能为空")
+    private String sendProtocol;
+
+}

+ 58 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/po/EnterpriseMailbox.java

@@ -0,0 +1,58 @@
+package com.fjhx.mail.entity.enterprise.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 企业邮箱
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("enterprise_mailbox")
+public class EnterpriseMailbox extends BasePo {
+
+    /**
+     * 企业邮箱域名id
+     */
+    @NotNull(message = "企业邮箱域名id不能为空")
+    private Long domainId;
+
+    /**
+     * mail账号前缀
+     */
+    @NotBlank(message = "邮箱地址不能为空")
+    private String mailUserPrefix;
+
+    /**
+     * mail授权码
+     */
+    @NotBlank(message = "授权码不能为空")
+    private String mailPassword;
+
+    /**
+     * 同步邮件状态: 1同步 0不同步
+     */
+    private Integer syncStatus;
+
+    /**
+     * 默认邮箱: 1默认 0非默认
+     */
+    private Integer defaultStatus;
+
+    /**
+     * 用户id
+     */
+    @NotNull(message = "绑定用户id不能为空")
+    private Long userId;
+
+}

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/vo/EnterpriseDomainVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.entity.enterprise.vo;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 企业邮箱域名列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseDomainVo extends EnterpriseDomain {
+
+}

+ 73 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/enterprise/vo/EnterpriseMailboxVo.java

@@ -0,0 +1,73 @@
+package com.fjhx.mail.entity.enterprise.vo;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 企业邮箱列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class EnterpriseMailboxVo extends EnterpriseMailbox {
+
+    /**
+     * 域名
+     */
+    @NotBlank(message = "邮箱域名不能为空")
+    private String domainName;
+
+    /**
+     * 类型:1国内 2国外
+     */
+    @NotNull(message = "是否海外邮箱不能为空")
+    private Integer type;
+
+    /**
+     * 收件host
+     */
+    @NotBlank(message = "收件服务器地址不能为空")
+    private String receiveHost;
+
+    /**
+     * 收件端口
+     */
+    @NotNull(message = "收件端口不能为空")
+    private Integer receivePort;
+
+    /**
+     * 收件协议
+     */
+    @NotBlank(message = "收件协议不能为空")
+    private String receiveProtocol;
+
+    /**
+     * 发件host
+     */
+    @NotBlank(message = "发件服务器地址不能为空")
+    private String sendHost;
+
+    /**
+     * 发件端口
+     */
+    @NotNull(message = "发件端口不能为空")
+    private Integer sendPort;
+
+    /**
+     * 发件协议
+     */
+    @NotBlank(message = "发件协议不能为空")
+    private String sendProtocol;
+
+    /**
+     * 用户名称
+     */
+    private String userName;
+
+}

+ 26 - 0
hx-mail/src/main/java/com/fjhx/mail/mapper/enterprise/EnterpriseDomainMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.mail.mapper.enterprise;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseDomainVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 企业邮箱域名 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface EnterpriseDomainMapper extends BaseMapper<EnterpriseDomain> {
+
+    /**
+     * 企业邮箱域名分页
+     */
+    Page<EnterpriseDomainVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<EnterpriseDomain> wrapper);
+
+}

+ 26 - 0
hx-mail/src/main/java/com/fjhx/mail/mapper/enterprise/EnterpriseMailboxMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.mail.mapper.enterprise;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 企业邮箱 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface EnterpriseMailboxMapper extends BaseMapper<EnterpriseMailbox> {
+
+    /**
+     * 企业邮箱分页
+     */
+    Page<EnterpriseMailboxVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<EnterpriseMailbox> wrapper);
+
+}

+ 46 - 0
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/EnterpriseDomainService.java

@@ -0,0 +1,46 @@
+package com.fjhx.mail.service.enterprise;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseDomainVo;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainSelectDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainDto;
+
+
+/**
+ * <p>
+ * 企业邮箱域名 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface EnterpriseDomainService extends BaseService<EnterpriseDomain> {
+
+    /**
+     * 企业邮箱域名分页
+     */
+    Page<EnterpriseDomainVo> getPage(EnterpriseDomainSelectDto dto);
+
+    /**
+     * 企业邮箱域名明细
+     */
+    EnterpriseDomainVo detail(Long id);
+
+    /**
+     * 企业邮箱域名新增
+     */
+    void add(EnterpriseDomainDto enterpriseDomainDto);
+
+    /**
+     * 企业邮箱域名编辑
+     */
+    void edit(EnterpriseDomainDto enterpriseDomainDto);
+
+    /**
+     * 企业邮箱域名删除
+     */
+    void delete(Long id);
+
+}

+ 46 - 0
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/EnterpriseMailboxService.java

@@ -0,0 +1,46 @@
+package com.fjhx.mail.service.enterprise;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxDto;
+
+
+/**
+ * <p>
+ * 企业邮箱 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface EnterpriseMailboxService extends BaseService<EnterpriseMailbox> {
+
+    /**
+     * 企业邮箱分页
+     */
+    Page<EnterpriseMailboxVo> getPage(EnterpriseMailboxSelectDto dto);
+
+    /**
+     * 企业邮箱明细
+     */
+    EnterpriseMailboxVo detail(Long id);
+
+    /**
+     * 企业邮箱新增
+     */
+    void add(EnterpriseMailboxDto enterpriseMailboxDto);
+
+    /**
+     * 企业邮箱编辑
+     */
+    void edit(EnterpriseMailboxDto enterpriseMailboxDto);
+
+    /**
+     * 企业邮箱删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/impl/EnterpriseDomainServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.mail.service.enterprise.impl;
+
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
+import com.fjhx.mail.mapper.enterprise.EnterpriseDomainMapper;
+import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseDomainVo;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseDomainDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 企业邮箱域名 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Service
+public class EnterpriseDomainServiceImpl extends ServiceImpl<EnterpriseDomainMapper, EnterpriseDomain> implements EnterpriseDomainService {
+
+    @Override
+    public Page<EnterpriseDomainVo> getPage(EnterpriseDomainSelectDto dto) {
+        IWrapper<EnterpriseDomain> wrapper = getWrapper();
+        wrapper.orderByDesc("ed", EnterpriseDomain::getId);
+        Page<EnterpriseDomainVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public EnterpriseDomainVo detail(Long id) {
+        EnterpriseDomain EnterpriseDomain = this.getById(id);
+        EnterpriseDomainVo result = BeanUtil.toBean(EnterpriseDomain, EnterpriseDomainVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(EnterpriseDomainDto enterpriseDomainDto) {
+        this.save(enterpriseDomainDto);
+    }
+
+    @Override
+    public void edit(EnterpriseDomainDto enterpriseDomainDto) {
+        this.updateById(enterpriseDomainDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 71 - 0
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/impl/EnterpriseMailboxServiceImpl.java

@@ -0,0 +1,71 @@
+package com.fjhx.mail.service.enterprise.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
+import com.fjhx.mail.mapper.enterprise.EnterpriseMailboxMapper;
+import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 企业邮箱 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Service
+public class EnterpriseMailboxServiceImpl extends ServiceImpl<EnterpriseMailboxMapper, EnterpriseMailbox> implements EnterpriseMailboxService {
+
+    @Override
+    public Page<EnterpriseMailboxVo> getPage(EnterpriseMailboxSelectDto dto) {
+        IWrapper<EnterpriseMailbox> wrapper = getWrapper();
+        wrapper.keyword(dto, new SqlField("em.mail_user_prefix + '@' + ed.domain_name"));
+        wrapper.orderByDesc("em", EnterpriseMailbox::getId);
+        Page<EnterpriseMailboxVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<EnterpriseMailboxVo> records = page.getRecords();
+
+        if (records.size() == 0) {
+            return page;
+        }
+
+        // 赋值用户名称
+        UserUtil.assignmentNickName(records, EnterpriseMailbox::getUserId, EnterpriseMailboxVo::setUserName);
+
+        return page;
+    }
+
+    @Override
+    public EnterpriseMailboxVo detail(Long id) {
+        EnterpriseMailbox EnterpriseMailbox = this.getById(id);
+        EnterpriseMailboxVo result = BeanUtil.toBean(EnterpriseMailbox, EnterpriseMailboxVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(EnterpriseMailboxDto enterpriseMailboxDto) {
+        this.save(enterpriseMailboxDto);
+    }
+
+    @Override
+    public void edit(EnterpriseMailboxDto enterpriseMailboxDto) {
+        this.updateById(enterpriseMailboxDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 23 - 0
hx-mail/src/main/resources/mapper/enterprise/EnterpriseDomainMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mail.mapper.enterprise.EnterpriseDomainMapper">
+    <select id="getPage" resultType="com.fjhx.mail.entity.enterprise.vo.EnterpriseDomainVo">
+        select
+            ed.id,
+            ed.domain_name,
+            ed.type,
+            ed.receive_host,
+            ed.receive_port,
+            ed.receive_protocol,
+            ed.send_host,
+            ed.send_port,
+            ed.send_protocol,
+            ed.create_user,
+            ed.create_time,
+            ed.update_user,
+            ed.update_time
+        from enterprise_domain ed
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 29 - 0
hx-mail/src/main/resources/mapper/enterprise/EnterpriseMailboxMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mail.mapper.enterprise.EnterpriseMailboxMapper">
+    <select id="getPage" resultType="com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo">
+        select em.id,
+               em.domain_id,
+               em.mail_user_prefix,
+               em.mail_password,
+               em.sync_status,
+               em.default_status,
+               em.user_id,
+               em.create_user,
+               em.create_time,
+               em.update_user,
+               em.update_time,
+               ed.type,
+               ed.domain_name,
+               ed.send_host,
+               ed.send_port,
+               ed.send_protocol,
+               ed.receive_host,
+               ed.receive_port,
+               ed.receive_protocol
+        from enterprise_mailbox em
+                 left join enterprise_domain ed on em.domain_id = ed.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 2 - 2
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionPlan.java

@@ -35,13 +35,13 @@ public class ProductionPlan extends BasePo {
     /**
     /**
      * 计划开始时间
      * 计划开始时间
      */
      */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     private Date startDate;
     private Date startDate;
 
 
     /**
     /**
      * 计划结束时间
      * 计划结束时间
      */
      */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     private Date stopDate;
     private Date stopDate;
 
 
     /**
     /**

+ 5 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java

@@ -54,11 +54,11 @@ public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper,
     public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
     public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
         IWrapper<ProductionPlan> wrapper = getWrapper();
         IWrapper<ProductionPlan> wrapper = getWrapper();
         wrapper.orderByDesc("pp", ProductionPlan::getId);
         wrapper.orderByDesc("pp", ProductionPlan::getId);
-        wrapper.like(ProductionPlan::getStartDate, dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionPlan::getStopDate, dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionPlan::getQuantity, dto.getKeyword());
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like(ProductionPlan::getStartDate, dto.getKeyword())
+                    .or().like(ProductionPlan::getStopDate, dto.getKeyword())
+                    .or().like(ProductionPlan::getQuantity, dto.getKeyword()));
+        }
         Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionPlanVo> records = page.getRecords();
         List<ProductionPlanVo> records = page.getRecords();
 
 

+ 5 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -50,11 +50,11 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
         IWrapper<ProductionTask> wrapper = getWrapper();
         IWrapper<ProductionTask> wrapper = getWrapper();
         wrapper.orderByDesc("pt", ProductionTask::getId);
         wrapper.orderByDesc("pt", ProductionTask::getId);
-        wrapper.like(ProductionTaskVo::getCode,dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionTaskVo::getQuantity,dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionTaskVo::getDueDate,dto.getKeyword());
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like("pt",ProductionTaskVo::getCode, dto.getKeyword())
+                    .or().like("pt",ProductionTaskVo::getQuantity, dto.getKeyword())
+                    .or().like("pt",ProductionTaskVo::getDueDate, dto.getKeyword()));
+        }
         Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionTaskVo> records = page.getRecords();
         List<ProductionTaskVo> records = page.getRecords();
         //赋值产品名称
         //赋值产品名称

+ 8 - 0
hx-oa/pom.xml

@@ -21,6 +21,14 @@
             <groupId>com.fjhx</groupId>
             <groupId>com.fjhx</groupId>
             <artifactId>hx-common</artifactId>
             <artifactId>hx-common</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-customer</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-supply</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 
 

+ 81 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/contacts/ContactsController.java

@@ -0,0 +1,81 @@
+package com.fjhx.oa.controller.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.contacts.ContactsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@RestController
+@RequestMapping("/contacts")
+public class ContactsController {
+
+    @Autowired
+    private ContactsService contactsService;
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    @PostMapping("/page")
+    public Page<ContactsVo> page(@RequestBody ContactsSelectDto dto) {
+        return contactsService.getPage(dto);
+    }
+
+    /**
+     * 外部通讯录联系人明细
+     */
+    @PostMapping("/detail")
+    public ContactsVo detail(@RequestBody BaseSelectDto dto) {
+        return contactsService.detail(dto.getId());
+    }
+
+    /**
+     * 外部通讯录联系人新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ContactsDto contactsDto) {
+        contactsService.add(contactsDto);
+    }
+
+    /**
+     * 外部通讯录联系人编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ContactsDto contactsDto) {
+        contactsService.edit(contactsDto);
+    }
+
+    /**
+     * 外部通讯录联系人删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        contactsService.delete(dto.getId());
+    }
+
+    /**
+     * 企业列表
+     *
+     * @return
+     */
+    @PostMapping("/list")
+    public List<Contacts> list() {
+        return contactsService.getList();
+    }
+
+}

+ 70 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/external/ExternalAddressBookController.java

@@ -0,0 +1,70 @@
+package com.fjhx.oa.controller.external;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.external.ExternalAddressBookService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@RestController
+@RequestMapping("/externalAddressBook")
+public class ExternalAddressBookController {
+
+    @Autowired
+    private ExternalAddressBookService externalAddressBookService;
+
+    /**
+     * 外部通讯录分页
+     */
+    @PostMapping("/page")
+    public Page<ExternalAddressBookVo> page(@RequestBody ExternalAddressBookSelectDto dto) {
+        return externalAddressBookService.getPage(dto);
+    }
+
+    /**
+     * 外部通讯录明细
+     */
+    @PostMapping("/detail")
+    public List<ExternalAddressBookVo> detail(@RequestBody BaseSelectDto dto) {
+        return externalAddressBookService.detail(dto.getId());
+    }
+
+    /**
+     * 外部通讯录新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ExternalAddressBookDto externalAddressBookDto) {
+        externalAddressBookService.add(externalAddressBookDto);
+    }
+
+    /**
+     * 外部通讯录编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ExternalAddressBookDto externalAddressBookDto) {
+        externalAddressBookService.edit(externalAddressBookDto);
+    }
+
+    /**
+     * 外部通讯录删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        externalAddressBookService.delete(dto.getId());
+    }
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.contacts.dto;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 外部通讯录联系人新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsDto extends Contacts {
+
+    /**联系人列表*/
+    List<Contacts> contactsList;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.contacts.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录联系人列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsSelectDto extends BaseSelectDto {
+
+}

+ 47 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/po/Contacts.java

@@ -0,0 +1,47 @@
+package com.fjhx.oa.entity.contacts.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 外部通讯录联系人
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("contacts")
+public class Contacts extends BasePo {
+
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+
+    /**
+     * 企业类型 1客户 2供应商 3自定义
+     */
+    private Integer enterpriseType;
+
+    /**
+     * 企业名称
+     */
+    private String enterpriseName;
+
+    /**
+     * 联系人名称
+     */
+    private String contactName;
+
+    /**
+     * 手机号
+     */
+    private String phoneNumber;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/vo/ContactsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.contacts.vo;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录联系人列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsVo extends Contacts {
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.external.dto;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 外部通讯录新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookDto extends ExternalAddressBook {
+
+    /**外部通讯录联系方式列表*/
+    List<ExternalAddressBook> externalAddressBookList;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.external.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookSelectDto extends BaseSelectDto {
+
+}

+ 37 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/po/ExternalAddressBook.java

@@ -0,0 +1,37 @@
+package com.fjhx.oa.entity.external.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 外部通讯录
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("external_address_book")
+public class ExternalAddressBook extends BasePo {
+
+    /**
+     * 联系人id
+     */
+    private Long contactsId;
+
+    /**
+     * 联系类型(字典contact_information)
+     */
+    private Integer type;
+
+    /**
+     * 联系号码
+     */
+    private String contactNumber;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/vo/ExternalAddressBookVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.external.vo;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookVo extends ExternalAddressBook {
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/contacts/ContactsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ContactsMapper extends BaseMapper<Contacts> {
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    Page<ContactsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contacts> wrapper);
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/external/ExternalAddressBookMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.external;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 外部通讯录 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ExternalAddressBookMapper extends BaseMapper<ExternalAddressBook> {
+
+    /**
+     * 外部通讯录分页
+     */
+    Page<ExternalAddressBookVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ExternalAddressBook> wrapper);
+
+}

+ 49 - 0
hx-oa/src/main/java/com/fjhx/oa/service/contacts/ContactsService.java

@@ -0,0 +1,49 @@
+package com.fjhx.oa.service.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ContactsService extends BaseService<Contacts> {
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    Page<ContactsVo> getPage(ContactsSelectDto dto);
+
+    /**
+     * 外部通讯录联系人明细
+     */
+    ContactsVo detail(Long id);
+
+    /**
+     * 外部通讯录联系人新增
+     */
+    void add(ContactsDto contactsDto);
+
+    /**
+     * 外部通讯录联系人编辑
+     */
+    void edit(ContactsDto contactsDto);
+
+    /**
+     * 外部通讯录联系人删除
+     */
+    void delete(Long id);
+
+    List<Contacts> getList();
+}

+ 143 - 0
hx-oa/src/main/java/com/fjhx/oa/service/contacts/impl/ContactsServiceImpl.java

@@ -0,0 +1,143 @@
+package com.fjhx.oa.service.contacts.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.customer.entity.customer.po.Customer;
+import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.fjhx.oa.mapper.contacts.ContactsMapper;
+import com.fjhx.oa.service.contacts.ContactsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.OA)
+@Service
+public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> implements ContactsService {
+    @Autowired
+    CustomerService customerService;
+    @Autowired
+    SupplierInfoService supplierInfoService;
+
+    @Override
+    public Page<ContactsVo> getPage(ContactsSelectDto dto) {
+        IWrapper<Contacts> wrapper = getWrapper();
+        wrapper.orderByDesc("c", Contacts::getId);
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like(Contacts::getContactName, dto.getKeyword())
+                    .or()
+                    .like(Contacts::getPhoneNumber, dto.getKeyword())
+                    .or()
+                    .like(Contacts::getEnterpriseName, dto.getKeyword()));
+        }
+        Page<ContactsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ContactsVo> records = page.getRecords();
+        //给客户赋值企业名称
+        List<ContactsVo> customers = records.stream().filter(item -> item.getEnterpriseType() == 1).collect(Collectors.toList());
+        DynamicDataSourceContextHolder.push(SourceConstant.CUSTOMER);
+        customerService.attributeAssign(customers, ContactsVo::getEnterpriseId, (item, customer) -> {
+            item.setEnterpriseName(customer.getName());
+        });
+        DynamicDataSourceContextHolder.poll();
+        //给供应商赋值企业名称
+        List<ContactsVo> supplierInfos = records.stream().filter(item -> item.getEnterpriseType() == 2).collect(Collectors.toList());
+        DynamicDataSourceContextHolder.push(SourceConstant.SUPPLY);
+        supplierInfoService.attributeAssign(supplierInfos, ContactsVo::getEnterpriseId, (item, supplier) -> {
+            item.setEnterpriseName(supplier.getName());
+        });
+        DynamicDataSourceContextHolder.poll();
+        return page;
+    }
+
+    @Override
+    public ContactsVo detail(Long id) {
+        Contacts Contacts = this.getById(id);
+        ContactsVo result = BeanUtil.toBean(Contacts, ContactsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ContactsDto contactsDto) {
+        //企业id 用在创建自定义企业的时候
+        Long enterpriseId = IdWorker.getId();
+
+        List<Contacts> contactsList = contactsDto.getContactsList();
+        for (Contacts contacts: contactsList){
+            if(ObjectUtil.isNotEmpty(contactsDto.getEnterpriseId())) {
+                contacts.setEnterpriseId(contactsDto.getEnterpriseId());
+                contacts.setEnterpriseType(contactsDto.getEnterpriseType());
+            }else{
+                contacts.setEnterpriseId(enterpriseId);
+                contacts.setEnterpriseName(contactsDto.getEnterpriseName());
+                contacts.setEnterpriseType(3);
+            }
+        }
+        saveBatch(contactsList);
+    }
+
+    @Override
+    public void edit(ContactsDto contactsDto) {
+        this.updateById(contactsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public List<Contacts> getList() {
+        //获取自定义企业列表
+        IWrapper<Contacts> wrapper = getWrapper();
+        wrapper.select("DISTINCT enterprise_id,enterprise_type,enterprise_name");
+        wrapper.eq(Contacts::getEnterpriseType,3);
+        List<Contacts> contactsList = list(wrapper);
+        //获取客户列表
+        DynamicDataSourceContextHolder.push(SourceConstant.CUSTOMER);
+        List<Customer> customerList = customerService.list();
+        for (Customer customer:customerList){
+            Contacts contacts = new Contacts();
+            contacts.setEnterpriseId(customer.getId());
+            contacts.setEnterpriseName(customer.getName());
+            contacts.setEnterpriseType(1);
+            contactsList.add(contacts);
+        }
+        DynamicDataSourceContextHolder.poll();
+        //获取供应商列表
+        DynamicDataSourceContextHolder.push(SourceConstant.SUPPLY);
+        List<SupplierInfo> supplierInfoList = supplierInfoService.list();
+        for (SupplierInfo supplierInfo:supplierInfoList){
+            Contacts contacts = new Contacts();
+            contacts.setEnterpriseId(supplierInfo.getId());
+            contacts.setEnterpriseName(supplierInfo.getName());
+            contacts.setEnterpriseType(2);
+            contactsList.add(contacts);
+        }
+        DynamicDataSourceContextHolder.poll();
+        return contactsList;
+    }
+
+}

+ 48 - 0
hx-oa/src/main/java/com/fjhx/oa/service/external/ExternalAddressBookService.java

@@ -0,0 +1,48 @@
+package com.fjhx.oa.service.external;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ExternalAddressBookService extends BaseService<ExternalAddressBook> {
+
+    /**
+     * 外部通讯录分页
+     */
+    Page<ExternalAddressBookVo> getPage(ExternalAddressBookSelectDto dto);
+
+    /**
+     * 外部通讯录明细
+     */
+    List<ExternalAddressBookVo> detail(Long id);
+
+    /**
+     * 外部通讯录新增
+     */
+    void add(ExternalAddressBookDto externalAddressBookDto);
+
+    /**
+     * 外部通讯录编辑
+     */
+    void edit(ExternalAddressBookDto externalAddressBookDto);
+
+    /**
+     * 外部通讯录删除
+     */
+    void delete(Long id);
+
+}

+ 74 - 0
hx-oa/src/main/java/com/fjhx/oa/service/external/impl/ExternalAddressBookServiceImpl.java

@@ -0,0 +1,74 @@
+package com.fjhx.oa.service.external.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.fjhx.oa.mapper.external.ExternalAddressBookMapper;
+import com.fjhx.oa.service.external.ExternalAddressBookService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 外部通讯录 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.OA)
+@Service
+public class ExternalAddressBookServiceImpl extends ServiceImpl<ExternalAddressBookMapper, ExternalAddressBook> implements ExternalAddressBookService {
+
+    @Override
+    public Page<ExternalAddressBookVo> getPage(ExternalAddressBookSelectDto dto) {
+        IWrapper<ExternalAddressBook> wrapper = getWrapper();
+        wrapper.orderByDesc("eab", ExternalAddressBook::getId);
+        Page<ExternalAddressBookVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public List<ExternalAddressBookVo> detail(Long id) {
+        List<ExternalAddressBook> list = list(q -> q.eq(ExternalAddressBook::getContactsId, id));
+        List<ExternalAddressBookVo> result = BeanUtil.copyToList(list, ExternalAddressBookVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ExternalAddressBookDto externalAddressBookDto) {
+        this.save(externalAddressBookDto);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ExternalAddressBookDto externalAddressBookDto) {
+        List<ExternalAddressBook> externalAddressBookList = externalAddressBookDto.getExternalAddressBookList();
+        for (ExternalAddressBook externalAddressBook :externalAddressBookList){
+            externalAddressBook.setContactsId(externalAddressBookDto.getContactsId());
+        }
+        List<Long> externalAddressBookIds = externalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(ExternalAddressBook::getId).collect(Collectors.toList());
+        if(ObjectUtil.isNotEmpty(externalAddressBookIds)) {
+            remove(q -> q.notIn(ExternalAddressBook::getId, externalAddressBookIds).eq(ExternalAddressBook::getContactsId, externalAddressBookDto.getContactsId()));
+        }
+        saveOrUpdateBatch(externalAddressBookList);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 3 - 1
hx-oa/src/main/java/com/fjhx/oa/service/internal/impl/InternalAddressBookServiceImpl.java

@@ -77,7 +77,9 @@ public class InternalAddressBookServiceImpl extends ServiceImpl<InternalAddressB
             internalAddressBook.setUserId(internalAddressBookDto.getUserId());
             internalAddressBook.setUserId(internalAddressBookDto.getUserId());
         }
         }
         List<Long> internalAddressBookIds = internalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(InternalAddressBook::getId).collect(Collectors.toList());
         List<Long> internalAddressBookIds = internalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(InternalAddressBook::getId).collect(Collectors.toList());
-        remove(q->q.notIn(InternalAddressBook::getId,internalAddressBookIds).eq(InternalAddressBook::getUserId,internalAddressBookDto.getUserId()));
+        if(ObjectUtil.isNotEmpty(internalAddressBookIds)) {
+            remove(q -> q.notIn(InternalAddressBook::getId, internalAddressBookIds).eq(InternalAddressBook::getUserId, internalAddressBookDto.getUserId()));
+        }
         saveOrUpdateBatch(internalAddressBookList);
         saveOrUpdateBatch(internalAddressBookList);
     }
     }
 
 

+ 20 - 0
hx-oa/src/main/resources/mapper/contacts/ContactsMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.contacts.ContactsMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.contacts.vo.ContactsVo">
+        select
+            c.id,
+            c.enterprise_id,
+            c.enterprise_type,
+            c.enterprise_name,
+            c.contact_name,
+            c.phone_number,
+            c.create_user,
+            c.create_time,
+            c.update_user,
+            c.update_time
+        from contacts c
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 18 - 0
hx-oa/src/main/resources/mapper/external/ExternalAddressBookMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.external.ExternalAddressBookMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.external.vo.ExternalAddressBookVo">
+        select
+            eab.id,
+            eab.contacts_id,
+            eab.type,
+            eab.contact_number,
+            eab.create_user,
+            eab.create_time,
+            eab.update_user,
+            eab.update_time
+        from external_address_book eab
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 1 - 0
pom.xml

@@ -127,6 +127,7 @@
                 <artifactId>hx-account</artifactId>
                 <artifactId>hx-account</artifactId>
                 <version>${hx.version}</version>
                 <version>${hx.version}</version>
             </dependency>
             </dependency>
+
         </dependencies>
         </dependencies>
     </dependencyManagement>
     </dependencyManagement>