Procházet zdrojové kódy

feat: 公司管理后端接口开发

chenjianhua před 1 měsícem
rodič
revize
002bbe3f02
17 změnil soubory, kde provedl 881 přidání a 14 odebrání
  1. 9 8
      service-base/pom.xml
  2. 92 0
      service-base/src/main/java/com/simuwang/base/pojo/dos/CompanyContactInfoPageDO.java
  3. 123 0
      service-base/src/main/java/com/simuwang/base/pojo/dos/LastCompanyContactInfoDO.java
  4. 110 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/query/CompanyContactQuery.java
  5. 21 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/query/ContactQuery.java
  6. 66 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/CompanyContactInfoPageVO.java
  7. 77 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/CompanyContactInfoVO.java
  8. 63 0
      service-base/src/main/java/com/simuwang/base/pojo/vo/ContactInformationVO.java
  9. 58 0
      service-base/src/main/resources/generatorConfig.xml
  10. 4 4
      service-deploy/src/main/resources/application.yml
  11. 1 2
      service-deploy/src/test/java/com/simuwang/ApplicationTest.java
  12. 95 0
      service-manage/src/main/java/com/simuwang/manage/api/contact/CompanyContactController.java
  13. 2 0
      service-manage/src/main/java/com/simuwang/manage/init/CompleteScheduleConfig.java
  14. 13 0
      service-manage/src/main/java/com/simuwang/manage/service/CompanyContactService.java
  15. 13 0
      service-manage/src/main/java/com/simuwang/manage/service/ContactInformationService.java
  16. 77 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyContactServiceImpl.java
  17. 57 0
      service-manage/src/main/java/com/simuwang/manage/service/impl/ContactInformationServiceImpl.java

+ 9 - 8
service-base/pom.xml

@@ -281,12 +281,13 @@
         </dependency>
     </dependencies>
 
-<!--    <build>-->
-<!--        <plugins>-->
-<!--            <plugin>-->
-<!--                <groupId>org.springframework.boot</groupId>-->
-<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
-<!--            </plugin>-->
-<!--        </plugins>-->
-<!--    </build>-->
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.mybatis.generator</groupId>
+                <artifactId>mybatis-generator-maven-plugin</artifactId>
+                <version>1.3.2</version>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 92 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/CompanyContactInfoPageDO.java

@@ -0,0 +1,92 @@
+package com.simuwang.base.pojo.dos;
+
+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.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.CompanyContactInfoPageVO;
+import com.simuwang.base.pojo.vo.CompanyContactInfoVO;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CompanyContactInfoPageDO {
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 管理人名称
+     */
+    private String companyName;
+    /**
+     * 管理人简称
+     */
+    private String companyShortName;
+    /**
+     * 管理人规模
+     */
+    private Integer companyAssetSize;
+    /**
+     * 信用代码
+     */
+    private String creditCode;
+    /**
+     * 成立日期
+     */
+    private String establishDate;
+    /**
+     * 报送状态
+     */
+    private Integer isSend;
+    /**
+     * 对接日期
+     */
+    private Date contactDate;
+    /**
+     * 对接人
+     */
+    private String contactor;
+    /**
+     * 客户经理
+     */
+    private String customerManager;
+    /**
+     * 联系人名称
+     */
+    private String contactName;
+    /**
+     * 对接状态
+     */
+    private Integer contactStatus;
+    /**
+     * 签约方式
+     */
+    private Integer signMethod;
+    /**
+     * 对接备注
+     */
+    private String contactRemark;
+
+    public CompanyContactInfoPageVO toVO() {
+        CompanyContactInfoPageVO vo = new CompanyContactInfoPageVO();
+        vo.setCompanyId(companyId);
+        vo.setCompanyName(companyName);
+        vo.setEstablishDate(establishDate);
+        vo.setContactDate(DateUtils.format(contactDate, DateUtils.YYYY_MM_DD));
+        vo.setContactor(contactor);
+        vo.setContactStatus(contactStatus);
+        vo.setCustomerManager(customerManager);
+        vo.setContactRemark(contactRemark);
+        vo.setSignMethod(signMethod);
+        vo.setCompanyAssetSize(companyAssetSize);
+        vo.setCompanyShortName(companyShortName);
+        vo.setCreditCode(creditCode);
+        vo.setIsSend(isSend);
+        vo.setContactName(contactName);
+        return vo;
+    }
+
+}

+ 123 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/LastCompanyContactInfoDO.java

@@ -0,0 +1,123 @@
+package com.simuwang.base.pojo.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+@TableName("last_company_contact_info")
+public class LastCompanyContactInfoDO {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.id
+     */
+    @TableId(value = "id",type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司ID
+     */
+    @TableField("company_id")
+    private String companyId;
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contact_date
+     */
+    @TableField("contact_date")
+    private Date contactDate;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contactor
+     */
+    @TableField("contactor")
+    private String contactor;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.customer_manager
+     */
+    @TableField("customer_manager")
+    private String customerManager;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contact_id
+     */
+    @TableField("contact_id")
+    private Integer contactId;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contact_status
+     */
+    @TableField("contact_status")
+    private Integer contactStatus;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.sign_method
+     */
+    @TableField("sign_method")
+    private Integer signMethod;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contact_remark
+     */
+    @TableField("contact_remark")
+    private String contactRemark;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.cantact_file_name
+     */
+    @TableField("cantact_file_name")
+    private String cantactFileName;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.contact_file_path
+     */
+    @TableField("contact_file_path")
+    private String contactFilePath;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.creatorid
+     */
+    @TableField("creatorid")
+    private Integer creatorId;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.createtime
+     */
+    @TableField("createtime")
+    private Date createTime;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.updaterid
+     */
+    @TableField("updaterid")
+    private Integer updaterId;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.updatetime
+     */
+    @TableField("updatetime")
+    private Date updateTime;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column company_cantact_info.isvalid
+     */
+    @TableField("isvalid")
+    private Integer isvalid;
+
+}

+ 110 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/CompanyContactQuery.java

@@ -0,0 +1,110 @@
+package com.simuwang.base.pojo.dto.query;
+
+import com.simuwang.base.common.support.query.PageQuery;
+
+/**
+ * FileName: DataboardQuery
+ * Author:   chenjianhua
+ * Date:     2024/10/14 10:38
+ * Description: ${DESCRIPTION}
+ */
+public class CompanyContactQuery extends PageQuery {
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     * 报送状态
+     */
+    private Integer isSend;
+    /**
+     * 对接状态,1-已通知,2-有意向,3-暂无意向,4-考虑中,5-无联系方式
+     */
+    private Integer contactStatus;
+    /**
+     * 签约方式,1-托管平台授权,2-单方签约,3-双方签约
+     */
+    private Integer signMethod;
+    /**
+     * 公司资产规模:1- 0-5亿,2- 5-10亿,3- 10-20亿,4- 20-50亿,
+     * 5- 50-100亿,6 -100亿以上
+     */
+    private Integer companyAssetSizeType;
+    /**
+     * 对接开始日期
+     */
+    private String contactStartDate;
+    /**
+     * 对接结束日期
+     */
+    private String contactEndDate;
+
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public Integer getIsSend() {
+        return isSend;
+    }
+
+    public void setIsSend(Integer isSend) {
+        this.isSend = isSend;
+    }
+
+    public Integer getContactStatus() {
+        return contactStatus;
+    }
+
+    public void setContactStatus(Integer contactStatus) {
+        this.contactStatus = contactStatus;
+    }
+
+    public Integer getSignMethod() {
+        return signMethod;
+    }
+
+    public void setSignMethod(Integer signMethod) {
+        this.signMethod = signMethod;
+    }
+
+    public Integer getCompanyAssetSizeType() {
+        return companyAssetSizeType;
+    }
+
+    public void setCompanyAssetSizeType(Integer companyAssetSizeType) {
+        this.companyAssetSizeType = companyAssetSizeType;
+    }
+
+    public String getContactStartDate() {
+        return contactStartDate;
+    }
+
+    public void setContactStartDate(String contactStartDate) {
+        this.contactStartDate = contactStartDate;
+    }
+
+    public String getContactEndDate() {
+        return contactEndDate;
+    }
+
+    public void setContactEndDate(String contactEndDate) {
+        this.contactEndDate = contactEndDate;
+    }
+}

+ 21 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/ContactQuery.java

@@ -0,0 +1,21 @@
+package com.simuwang.base.pojo.dto.query;
+
+import com.simuwang.base.common.support.query.PageQuery;
+
+/**
+ * FileName: DataboardQuery
+ * Author:   chenjianhua
+ * Date:     2024/10/14 10:38
+ * Description: ${DESCRIPTION}
+ */
+public class ContactQuery extends PageQuery {
+    private String companyId;
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+}

+ 66 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/CompanyContactInfoPageVO.java

@@ -0,0 +1,66 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CompanyContactInfoPageVO {
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 管理人名称
+     */
+    private String companyName;
+    /**
+     * 管理人简称
+     */
+    private String companyShortName;
+    /**
+     * 管理人规模
+     */
+    private Integer companyAssetSize;
+    /**
+     * 信用代码
+     */
+    private String creditCode;
+    /**
+     * 成立日期
+     */
+    private String establishDate;
+    /**
+     * 报送状态
+     */
+    private Integer isSend;
+    /**
+     * 对接日期
+     */
+    private String contactDate;
+    /**
+     * 对接人
+     */
+    private String contactor;
+    /**
+     * 客户经理
+     */
+    private String customerManager;
+    /**
+     * 联系人名称
+     */
+    private String contactName;
+    /**
+     * 对接状态
+     */
+    private Integer contactStatus;
+    /**
+     * 签约方式
+     */
+    private Integer signMethod;
+    /**
+     * 对接备注
+     */
+    private String contactRemark;
+
+}

+ 77 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/CompanyContactInfoVO.java

@@ -0,0 +1,77 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class CompanyContactInfoVO {
+    /**
+     * 主键ID
+     */
+    private Integer id;
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 对接日期
+     */
+    private String contactDate;
+    /**
+     * 对接人
+     */
+    private String contactor;
+    /**
+     * 客户经理
+     */
+    private String customerManager;
+    /**
+     * 联系人ID
+     */
+    private Integer contactId;
+    /**
+     * 对接状态,1-已通知,2-有意向,3-暂无意向,4-考虑中,5-无联系方式
+     */
+    private Integer contactStatus;
+    /**
+     * 签约方式,1-托管平台授权,2-单方签约,3-双方签约
+     */
+    private Integer signMethod;
+    /**
+     * 对接备注
+     */
+    private String contactRemark;
+    /**
+     * 附件名称
+     */
+    private String cantactFileName;
+    /**
+     * 附件路径
+     */
+    private String contactFilePath;
+    /**
+     * 创建人
+     */
+    private Integer creatorId;
+    /**
+     * 创建时间
+     */
+    private String createTime;
+    /**
+     * 修改人
+     */
+    private Integer updaterId;
+    /**
+     * 修改时间
+     */
+    private String updateTime;
+    /**
+     * 有效标识
+     */
+    private Integer isvalid;
+
+}

+ 63 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/ContactInformationVO.java

@@ -0,0 +1,63 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+@TableName("contact_information")
+public class ContactInformationVO {
+
+    private Integer id;
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 联系人名称
+     */
+    private String contactName;
+    /**
+     * 联系人邮箱
+     */
+    private String contactEmail;
+    /**
+     * 联系人电话
+     */
+    private String contactPhone;
+    /**
+     * 联系人微信
+     */
+    private String contactWechat;
+    /**
+     * 联系人职位
+     */
+    private String contactPosition;
+    /**
+     * 备注
+     */
+    private String contactRemark;
+    /**
+     * 附件名称
+     */
+    private String cantactFileName;
+    /**
+     * 附件路径
+     */
+    private String contactFilePath;
+
+    private Integer creatorId;
+
+    private String createTime;
+
+    private Integer updaterId;
+
+    private String updateTime;
+
+    private Integer isvalid;
+
+
+}

+ 58 - 0
service-base/src/main/resources/generatorConfig.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
+        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
+<!-- 配置生成器 -->
+<generatorConfiguration>
+
+    <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->
+    <classPathEntry
+            location="E:\dataftp\dataftp\dataftp\lib\oceanbase-client-2.2.3.jar"/>
+
+    <!-- 一个数据库一个context,defaultModelType="flat" 大数据字段,不分表 -->
+    <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat">
+        <!-- 注释 -->
+        <commentGenerator>
+            <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->
+            <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳-->
+        </commentGenerator>
+
+        <!-- jdbc连接-->
+        <jdbcConnection driverClass="com.alipay.oceanbase.obproxy.mysql.jdbc.Driver"
+                        connectionURL="jdbc:oceanbase://192.168.1.28:2881/ppw_email?generateSimpleParameterMetadata=true"
+                        userId="root" password="Smppw@2024">
+        </jdbcConnection>
+
+        <!-- 类型转换 -->
+        <javaTypeResolver>
+            <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
+            <property name="forceBigDecimals" value="true"/>
+        </javaTypeResolver>
+
+        <!-- 生成实体类地址 -->
+        <javaModelGenerator targetPackage="com.simuwang.base.pojo.dos" targetProject="src/main/java">
+            <!-- 是否让schema作为包的后缀 -->
+            <property name="enableSubPackages" value="false"/>
+            <!-- 从数据库返回的值去掉前后空格 -->
+            <property name="trimStrings" value="true"/>
+        </javaModelGenerator>
+
+        <!-- 生成map.xml文件存放地址 -->
+        <sqlMapGenerator targetPackage="mapper.daq" targetProject="src\main\resources">
+            <property name="enableSubPackages" value="false"/>
+        </sqlMapGenerator>
+
+        <!-- 生成接口dao(mapper) -->
+        <javaClientGenerator type="XMLMAPPER"
+                             targetPackage="com.simuwang.base.mapper.daq"
+                             targetProject="src/main/java" >
+            <property name="enableSubPackages" value="false"/>
+            <property name="exampleMethodVisibility" value="public"/>
+            <property name="nullCatalogMeansCurrent" value="true"/>
+        </javaClientGenerator>
+
+        <table tableName="company_cantact_info" domainObjectName="CompanyContactInfoDO"></table>
+        <table tableName="last_company_cantact_info" domainObjectName="LastCompanyContactInfoDO"></table>
+        <table tableName="contact_information" domainObjectName="ContactInformationDO"></table>
+
+    </context>
+</generatorConfiguration>

+ 4 - 4
service-deploy/src/main/resources/application.yml

@@ -32,10 +32,10 @@ spring:
 #      username: root
 #      password: yIJ+L+WxdcugkhQEl+oM1t63Rpt+RnQ5
       type: com.zaxxer.hikari.HikariDataSource
-      driver-class-name: dm.jdbc.driver.DmDriver
-      url: jdbc:dm://192.168.1.39:5236/PPW_EMAIL
-      username: ENC(RcN9pifBXuL806UB95/zkLe+yqNtZ71YufzfoHu6G8I=)
-      password: ENC(AmbSttKkFiIk8vDK7T3w/Y42090McJYCfT9IJiHtylE=)
+      driver-class-name: com.alipay.oceanbase.obproxy.mysql.jdbc.Driver
+      url: jdbc:oceanbase://192.168.1.28:2881/ppw_email?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
+      username: root
+      password: Smppw@2024
       # hikari连接池配置 对应 HikariConfig 配置属性类
       hikari:
         pool-name: HikariCP-daq

+ 1 - 2
service-deploy/src/test/java/com/simuwang/ApplicationTest.java

@@ -12,7 +12,6 @@ import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import java.io.File;
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.List;
 import java.util.regex.Matcher;
@@ -77,7 +76,7 @@ public class ApplicationTest {
 
     @Test
     public void testDateFormat() {
-        String input = "Smppw@2024";
+        String input = "11aaAA@@";
         BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
         textEncryptor.setPassword("qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm12"); // 用您自己的密钥替换"yourSecretKey"
         String encryptedString = textEncryptor.encrypt(input);

+ 95 - 0
service-manage/src/main/java/com/simuwang/manage/api/contact/CompanyContactController.java

@@ -0,0 +1,95 @@
+package com.simuwang.manage.api.contact;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.CompanyContactQuery;
+import com.simuwang.base.pojo.dto.query.ContactQuery;
+import com.simuwang.base.pojo.vo.CompanyContactInfoPageVO;
+import com.simuwang.base.pojo.vo.CompanyContactInfoVO;
+import com.simuwang.base.pojo.vo.ContactInformationVO;
+import com.simuwang.logging.SystemLog;
+import com.simuwang.manage.service.CompanyContactService;
+import com.simuwang.manage.service.ContactInformationService;
+import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.status.ResultCode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@SystemLog("公司管理")
+@RestController
+@RequestMapping("/v1/contact")
+public class CompanyContactController {
+    @Autowired
+    private CompanyContactService companyContactService;
+
+    @Autowired
+    private ContactInformationService contactInformationService;
+
+    private static final Logger logger = LoggerFactory.getLogger(CompanyContactController.class);
+    /**
+     * 保存对接信息
+     * @param companyContactInfoVO
+     * @return
+     */
+    @SystemLog(value = "保存公司对接信息", type = SystemLog.Type.INSERT)
+    @RequestMapping("save-company-contact")
+    public ResultVo saveCompanyContactInfo(@RequestBody CompanyContactInfoVO companyContactInfoVO){
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        try{
+            vo = companyContactService.saveCompanyContactInfo(companyContactInfoVO);
+        }catch (Exception e){
+            logger.error(e.getMessage(),e);
+            vo.setData(false);
+            vo.setCode(ResultCode.SAVE_FAILED.getCode());
+        }
+        return vo;
+    }
+
+    /**
+     * 保存联系人信息
+     * @param contactInformationVO
+     * @return
+     */
+    @SystemLog(value = "保存联系人信息", type = SystemLog.Type.INSERT)
+    @RequestMapping("save-contact-info")
+    public ResultVo saveContactInformation(@RequestBody ContactInformationVO contactInformationVO){
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        try{
+            vo = contactInformationService.saveContactInformation(contactInformationVO);
+        }catch (Exception e){
+            logger.error(e.getMessage(),e);
+            vo.setData(false);
+            vo.setCode(ResultCode.SAVE_FAILED.getCode());
+        }
+        return vo;
+    }
+
+    /**
+     * 查询公司联系人信息
+     * @param contactQuery
+     * @return
+     */
+    @SystemLog(value = "查询公司联系人信息", type = SystemLog.Type.INSERT)
+    @RequestMapping("select-contact-info")
+    public MybatisPage<ContactInformationVO> selectContactInformationList(ContactQuery contactQuery){
+        MybatisPage<ContactInformationVO> result = contactInformationService.selectContactInformationList(contactQuery);
+        return result;
+    }
+
+    /**
+     * 查询公司对接信息
+     * @param companyContactQuery
+     * @return
+     */
+    @SystemLog(value = "查询公司对接信息", type = SystemLog.Type.INSERT)
+    @RequestMapping("select-company-contact")
+    public MybatisPage<CompanyContactInfoPageVO> selectCompanyContactInfoList(CompanyContactQuery companyContactQuery){
+        MybatisPage<CompanyContactInfoPageVO> result = companyContactService.selectCompanyContactInfoList(companyContactQuery);
+        return result;
+    }
+
+}

+ 2 - 0
service-manage/src/main/java/com/simuwang/manage/init/CompleteScheduleConfig.java

@@ -1,6 +1,8 @@
 package com.simuwang.manage.init;
 
+import com.oceanbase.jdbc.internal.util.StringCacheUtil;
 import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.common.util.StringUtil;
 import com.simuwang.base.mapper.daq.system.SysConfigMapper;
 import com.simuwang.manage.task.FundDeletionTask;
 import com.simuwang.manage.task.NavAmplitudeTask;

+ 13 - 0
service-manage/src/main/java/com/simuwang/manage/service/CompanyContactService.java

@@ -0,0 +1,13 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.CompanyContactQuery;
+import com.simuwang.base.pojo.vo.CompanyContactInfoPageVO;
+import com.simuwang.base.pojo.vo.CompanyContactInfoVO;
+import com.smppw.common.pojo.ResultVo;
+
+public interface CompanyContactService {
+    ResultVo saveCompanyContactInfo(CompanyContactInfoVO companyContactInfoVO);
+
+    MybatisPage<CompanyContactInfoPageVO> selectCompanyContactInfoList(CompanyContactQuery companyContactQuery);
+}

+ 13 - 0
service-manage/src/main/java/com/simuwang/manage/service/ContactInformationService.java

@@ -0,0 +1,13 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.ContactQuery;
+import com.simuwang.base.pojo.vo.ContactInformationVO;
+import com.smppw.common.pojo.ResultVo;
+
+public interface ContactInformationService {
+
+    ResultVo saveContactInformation(ContactInformationVO contactInformationVO);
+
+    MybatisPage<ContactInformationVO> selectContactInformationList(ContactQuery contactQuery);
+}

+ 77 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyContactServiceImpl.java

@@ -0,0 +1,77 @@
+package com.simuwang.manage.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.mapper.daq.CompanyContactInfoMapper;
+import com.simuwang.base.mapper.daq.LastCompanyContactInfoMapper;
+import com.simuwang.base.pojo.dos.CompanyContactInfoDO;
+import com.simuwang.base.pojo.dos.CompanyContactInfoPageDO;
+import com.simuwang.base.pojo.dos.LastCompanyContactInfoDO;
+import com.simuwang.base.pojo.dto.query.CompanyContactQuery;
+import com.simuwang.base.pojo.vo.CompanyContactInfoPageVO;
+import com.simuwang.base.pojo.vo.CompanyContactInfoVO;
+import com.simuwang.manage.service.CompanyContactService;
+import com.simuwang.shiro.utils.UserUtils;
+import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.status.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Service
+public class CompanyContactServiceImpl implements CompanyContactService {
+
+    @Autowired
+    private LastCompanyContactInfoMapper lastCompanyContactInfoMapper;
+
+    @Autowired
+    private CompanyContactInfoMapper companyContactInfoMapper;
+
+    @Override
+    public ResultVo saveCompanyContactInfo(CompanyContactInfoVO companyContactInfoVO) {
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        companyContactInfoVO.setUpdateTime(DateUtils.getTime());
+        companyContactInfoVO.setIsvalid(1);
+        companyContactInfoVO.setCreatorId(UserUtils.getLoginUser().getUserId());
+        companyContactInfoVO.setUpdaterId(UserUtils.getLoginUser().getUserId());
+        CompanyContactInfoDO companyContactInfoDO = BeanUtil.copyProperties(companyContactInfoVO,CompanyContactInfoDO.class);
+        CompanyContactInfoDO oldCompanyContactInfoDO = companyContactInfoMapper.getCompanyContactInfo(companyContactInfoDO.getCompanyId(),DateUtils.format(companyContactInfoDO.getContactDate(), DateUtils.YYYY_MM_DD));
+        if(oldCompanyContactInfoDO != null && companyContactInfoVO.getId() == null){
+            vo.setData(false);
+            vo.setMsg("对接信息已经存在,无需新增");
+            return vo;
+        }
+        if(oldCompanyContactInfoDO == null){
+            companyContactInfoVO.setCreateTime(DateUtils.getTime());
+            companyContactInfoMapper.insert(companyContactInfoDO);
+        }else{
+            companyContactInfoDO.setId(oldCompanyContactInfoDO.getId());
+            companyContactInfoMapper.updateById(companyContactInfoDO);
+        }
+        LastCompanyContactInfoDO lastCompanyContactInfoDO = lastCompanyContactInfoMapper.getLastCompanyContactInfoDOByCompanyId(companyContactInfoVO.getCompanyId());
+        if (lastCompanyContactInfoDO == null) {
+            lastCompanyContactInfoDO = BeanUtil.copyProperties(companyContactInfoDO,LastCompanyContactInfoDO.class);
+            lastCompanyContactInfoMapper.insert(lastCompanyContactInfoDO);
+        }else{
+            String contactDate = companyContactInfoVO.getContactDate();
+            if(Objects.requireNonNull(DateUtils.parse(contactDate, DateUtils.YYYY_MM_DD)).compareTo(lastCompanyContactInfoDO.getContactDate()) >= 0){
+                companyContactInfoDO.toLastDO(lastCompanyContactInfoDO);
+                lastCompanyContactInfoMapper.updateById(lastCompanyContactInfoDO);
+            }
+        }
+        vo.setData(true);
+        return vo;
+    }
+
+    @Override
+    public MybatisPage<CompanyContactInfoPageVO> selectCompanyContactInfoList(CompanyContactQuery companyContactQuery) {
+        List<CompanyContactInfoPageDO> contactInformationDOList = companyContactInfoMapper.selectCompanyContactInfoList(companyContactQuery);
+        long total = companyContactInfoMapper.countCompanyContactInfo(companyContactQuery);
+        List<CompanyContactInfoPageVO> dataList = contactInformationDOList.stream().map(CompanyContactInfoPageDO::toVO).collect(Collectors.toList());
+        return MybatisPage.of(total,dataList);
+    }
+}

+ 57 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/ContactInformationServiceImpl.java

@@ -0,0 +1,57 @@
+package com.simuwang.manage.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.mapper.daq.ContactInformationMapper;
+import com.simuwang.base.pojo.dos.ContactInformationDO;
+import com.simuwang.base.pojo.dto.query.ContactQuery;
+import com.simuwang.base.pojo.vo.ContactInformationVO;
+import com.simuwang.manage.service.ContactInformationService;
+import com.simuwang.shiro.utils.UserUtils;
+import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.status.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ContactInformationServiceImpl implements ContactInformationService {
+    @Autowired
+    private ContactInformationMapper contactInformationMapper;
+
+    @Override
+    public ResultVo saveContactInformation(ContactInformationVO contactInformationVO) {
+        contactInformationVO.setUpdateTime(DateUtils.getTime());
+        contactInformationVO.setIsvalid(1);
+        contactInformationVO.setCreatorId(UserUtils.getLoginUser().getUserId());
+        contactInformationVO.setUpdaterId(UserUtils.getLoginUser().getUserId());
+        ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
+        ContactInformationDO contactInformationDO = BeanUtil.copyProperties(contactInformationVO, ContactInformationDO.class);
+        ContactInformationDO oldContactInformationDO = contactInformationMapper.getContactInformation(contactInformationDO);
+        if (oldContactInformationDO != null && contactInformationVO.getId() == null) {
+            vo.setData(false);
+            vo.setMsg("联系人信息已经存在,无需新增");
+            return vo;
+        }
+        if(oldContactInformationDO == null){
+            contactInformationDO.setCreateTime(new Date());
+            contactInformationMapper.insert(contactInformationDO);
+        }else{
+            contactInformationDO.setId(oldContactInformationDO.getId());
+            contactInformationMapper.updateById(contactInformationDO);
+        }
+        return vo;
+    }
+
+    @Override
+    public MybatisPage<ContactInformationVO> selectContactInformationList(ContactQuery contactQuery) {
+        List<ContactInformationDO> contactInformationDOList = contactInformationMapper.selectContactInformationList(contactQuery);
+        long total = contactInformationMapper.countContactInfo(contactQuery);
+        List<ContactInformationVO> dataList = contactInformationDOList.stream().map(ContactInformationDO::toVO).collect(Collectors.toList());
+        return MybatisPage.of(total,dataList);
+    }
+}