소스 검색

市场客户管理

wucl 2 년 전
부모
커밋
28a3737057
35개의 변경된 파일5127개의 추가작업 그리고 2개의 파일을 삭제
  1. 83 0
      biz-base/src/main/java/com/dayou/controller/BusinessOpportunityController.java
  2. 96 0
      biz-base/src/main/java/com/dayou/controller/CustomerController.java
  3. 75 0
      biz-base/src/main/java/com/dayou/controller/DistrictsController.java
  4. 96 0
      biz-base/src/main/java/com/dayou/controller/PaymentCollectionController.java
  5. 83 0
      biz-base/src/main/java/com/dayou/controller/VisitController.java
  6. 1 0
      common/src/main/java/com/dayou/utils/EnumFactory.java
  7. 1 1
      common/src/main/java/com/dayou/utils/TreeUtil.java
  8. 16 0
      dao/src/main/java/com/dayou/mapper/BusinessOpportunityMapper.java
  9. 16 0
      dao/src/main/java/com/dayou/mapper/CustomerMapper.java
  10. 16 0
      dao/src/main/java/com/dayou/mapper/DistrictsMapper.java
  11. 16 0
      dao/src/main/java/com/dayou/mapper/PaymentCollectionMapper.java
  12. 16 0
      dao/src/main/java/com/dayou/mapper/VisitMapper.java
  13. 29 0
      dao/src/main/resources/mapper/BusinessOpportunityMapper.xml
  14. 33 0
      dao/src/main/resources/mapper/CustomerMapper.xml
  15. 29 0
      dao/src/main/resources/mapper/DistrictsMapper.xml
  16. 26 0
      dao/src/main/resources/mapper/PaymentCollectionMapper.xml
  17. 27 0
      dao/src/main/resources/mapper/VisitMapper.xml
  18. 72 0
      domain/src/main/java/com/dayou/entity/BusinessOpportunity.java
  19. 103 0
      domain/src/main/java/com/dayou/entity/Customer.java
  20. 115 0
      domain/src/main/java/com/dayou/entity/Districts.java
  21. 51 0
      domain/src/main/java/com/dayou/entity/PaymentCollection.java
  22. 58 0
      domain/src/main/java/com/dayou/entity/Visit.java
  23. 58 0
      domain/src/main/java/com/dayou/vo/DistrictsTreeVO.java
  24. 1 1
      gen/src/main/java/com/dayou/CodeGenerator.java
  25. 28 0
      service/src/main/java/com/dayou/service/IBusinessOpportunityService.java
  26. 28 0
      service/src/main/java/com/dayou/service/ICustomerService.java
  27. 27 0
      service/src/main/java/com/dayou/service/IDistrictsService.java
  28. 28 0
      service/src/main/java/com/dayou/service/IPaymentCollectionService.java
  29. 28 0
      service/src/main/java/com/dayou/service/IVisitService.java
  30. 66 0
      service/src/main/java/com/dayou/service/impl/BusinessOpportunityServiceImpl.java
  31. 66 0
      service/src/main/java/com/dayou/service/impl/CustomerServiceImpl.java
  32. 75 0
      service/src/main/java/com/dayou/service/impl/DistrictsServiceImpl.java
  33. 66 0
      service/src/main/java/com/dayou/service/impl/PaymentCollectionServiceImpl.java
  34. 66 0
      service/src/main/java/com/dayou/service/impl/VisitServiceImpl.java
  35. 3532 0
      sql/20230110.sql

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/BusinessOpportunityController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IBusinessOpportunityService;
+import com.dayou.entity.BusinessOpportunity;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 商机
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@RestController
+@RequestMapping("businessOpportunity")
+@Slf4j
+public class BusinessOpportunityController extends BaseController {
+    @Autowired
+    private IBusinessOpportunityService businessOpportunityService;
+
+    /**
+    * 商机列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<BusinessOpportunity>> page(BusinessOpportunity businessOpportunity, Page page){
+        Page<BusinessOpportunity> pages=businessOpportunityService.selectPage(page,businessOpportunity);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 商机详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<BusinessOpportunity> detail(@PathVariable Long id){
+        BusinessOpportunity xBusinessOpportunity =businessOpportunityService.detail(id);
+        return RestResponse.data(xBusinessOpportunity);
+     }
+
+    /**
+     * 商机新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody BusinessOpportunity businessOpportunity) {
+        Boolean ret = businessOpportunityService.add(businessOpportunity);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 商机更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody BusinessOpportunity businessOpportunity) {
+        Boolean ret = businessOpportunityService.update(businessOpportunity);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 商机删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = businessOpportunityService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 96 - 0
biz-base/src/main/java/com/dayou/controller/CustomerController.java

@@ -0,0 +1,96 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.ICustomerService;
+import com.dayou.entity.Customer;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.common.PullDownModel;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 客户表
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@RestController
+@RequestMapping("customer")
+@Slf4j
+public class CustomerController extends BaseController {
+    @Autowired
+    private ICustomerService customerService;
+
+    /**
+    * 客户表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<Customer>> page(Customer customer, Page page){
+        Page<Customer> pages=customerService.selectPage(page,customer);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 客户表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<Customer> detail(@PathVariable Long id){
+        Customer xCustomer =customerService.detail(id);
+        return RestResponse.data(xCustomer);
+     }
+
+    /**
+     * 客户表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody Customer customer) {
+        Boolean ret = customerService.add(customer);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 客户表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody Customer customer) {
+        Boolean ret = customerService.update(customer);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 客户表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = customerService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+    /**
+     * 客户表下拉列表
+     */
+    @GetMapping("/simpleAll")
+    public RestResponse<List<PullDownModel>> simpleAll(){
+        LambdaQueryWrapper<Customer> lambdaQueryWrapper = new LambdaQueryWrapper<Customer>()
+        .select(Customer::getId,Customer::getName)
+        .eq(Customer::getDeleted,false);
+        List<Customer> list= customerService.list(lambdaQueryWrapper);
+        List<PullDownModel> ret=ConvertUtil.copyList(list, PullDownModel.class);
+        return RestResponse.data(ret);
+    }
+}
+

+ 75 - 0
biz-base/src/main/java/com/dayou/controller/DistrictsController.java

@@ -0,0 +1,75 @@
+package com.dayou.controller;
+
+import com.dayou.vo.DistrictsTreeVO;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IDistrictsService;
+import com.dayou.entity.Districts;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.common.PullDownModel;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 地区
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@RestController
+@RequestMapping("districts")
+@Slf4j
+public class DistrictsController extends BaseController {
+    @Autowired
+    private IDistrictsService districtsService;
+
+    /**
+    * 地区列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<Districts>> page(Districts districts, Page page){
+        Page<Districts> pages=districtsService.selectPage(page,districts);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 地区详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<Districts> detail(@PathVariable Long id){
+        Districts xDistricts =districtsService.detail(id);
+        return RestResponse.data(xDistricts);
+     }
+
+
+    /**
+     * 地区下拉列表
+     */
+    @GetMapping("/simpleAll")
+    public RestResponse<List<PullDownModel>> simpleAll(){
+        LambdaQueryWrapper<Districts> lambdaQueryWrapper = new LambdaQueryWrapper<Districts>()
+        .select(Districts::getId,Districts::getName);
+        List<Districts> list= districtsService.list(lambdaQueryWrapper);
+        List<PullDownModel> ret=ConvertUtil.copyList(list, PullDownModel.class);
+        return RestResponse.data(ret);
+    }
+
+    @GetMapping("/tree")
+    public RestResponse<List<DistrictsTreeVO>> getDistrictsTree(){
+        List<DistrictsTreeVO> result = districtsService.getDistrictsTree();
+        return RestResponse.data(result);
+    }
+}
+

+ 96 - 0
biz-base/src/main/java/com/dayou/controller/PaymentCollectionController.java

@@ -0,0 +1,96 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IPaymentCollectionService;
+import com.dayou.entity.PaymentCollection;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.common.PullDownModel;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 回款记录
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@RestController
+@RequestMapping("paymentCollection")
+@Slf4j
+public class PaymentCollectionController extends BaseController {
+    @Autowired
+    private IPaymentCollectionService paymentCollectionService;
+
+    /**
+    * 回款记录列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<PaymentCollection>> page(PaymentCollection paymentCollection, Page page){
+        Page<PaymentCollection> pages=paymentCollectionService.selectPage(page,paymentCollection);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 回款记录详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<PaymentCollection> detail(@PathVariable Long id){
+        PaymentCollection xPaymentCollection =paymentCollectionService.detail(id);
+        return RestResponse.data(xPaymentCollection);
+     }
+
+    /**
+     * 回款记录新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody PaymentCollection paymentCollection) {
+        Boolean ret = paymentCollectionService.add(paymentCollection);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 回款记录更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody PaymentCollection paymentCollection) {
+        Boolean ret = paymentCollectionService.update(paymentCollection);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 回款记录删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = paymentCollectionService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+    /**
+     * 回款记录下拉列表
+     */
+    @GetMapping("/simpleAll")
+    public RestResponse<List<PullDownModel>> simpleAll(){
+        LambdaQueryWrapper<PaymentCollection> lambdaQueryWrapper = new LambdaQueryWrapper<PaymentCollection>()
+        .select(PaymentCollection::getId,PaymentCollection::getName)
+        .eq(PaymentCollection::getDeleted,false);
+        List<PaymentCollection> list= paymentCollectionService.list(lambdaQueryWrapper);
+        List<PullDownModel> ret=ConvertUtil.copyList(list, PullDownModel.class);
+        return RestResponse.data(ret);
+    }
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/VisitController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IVisitService;
+import com.dayou.entity.Visit;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 拜访记录表
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@RestController
+@RequestMapping("visit")
+@Slf4j
+public class VisitController extends BaseController {
+    @Autowired
+    private IVisitService visitService;
+
+    /**
+    * 拜访记录表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<Visit>> page(Visit visit, Page page){
+        Page<Visit> pages=visitService.selectPage(page,visit);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 拜访记录表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<Visit> detail(@PathVariable Long id){
+        Visit xVisit =visitService.detail(id);
+        return RestResponse.data(xVisit);
+     }
+
+    /**
+     * 拜访记录表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody Visit visit) {
+        Boolean ret = visitService.add(visit);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 拜访记录表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody Visit visit) {
+        Boolean ret = visitService.update(visit);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 拜访记录表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = visitService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 1 - 0
common/src/main/java/com/dayou/utils/EnumFactory.java

@@ -80,6 +80,7 @@ public class EnumFactory {
         WEEK("星期",Lists.newArrayList("星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")),
 
         ITEM_STATE("项目状态",Lists.newArrayList("已完成","进行中","未开始")),
+        CUSTOMER_LEVEL("客户等级",Lists.newArrayList("重点客户","一般客户","普通客户"))
         ;
         private String code;
         private List<String> values;

+ 1 - 1
common/src/main/java/com/dayou/utils/TreeUtil.java

@@ -26,7 +26,7 @@ public class TreeUtil {
         }
 
         //找出所有根节点
-        List<? extends Tree<K,V>>  root = list.stream().filter(t->t.getParentId()==null).collect(Collectors.toList());
+        List<? extends Tree<K,V>>  root = list.stream().filter(t->(t.getParentId()==null||t.getParentId().equals(0L))).collect(Collectors.toList());
         if(CollectionUtils.isNotEmpty(root)){
             Collections.sort(root,(o1, o2) -> o1.order() - o2.order());
             //为每个节点找出它的children

+ 16 - 0
dao/src/main/java/com/dayou/mapper/BusinessOpportunityMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.BusinessOpportunity;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 商机 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface BusinessOpportunityMapper extends CustomBaseMapper<BusinessOpportunity> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/CustomerMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.Customer;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 客户表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface CustomerMapper extends CustomBaseMapper<Customer> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/DistrictsMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.Districts;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 地区 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface DistrictsMapper extends CustomBaseMapper<Districts> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/PaymentCollectionMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.PaymentCollection;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 回款记录 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface PaymentCollectionMapper extends CustomBaseMapper<PaymentCollection> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/VisitMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.Visit;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 拜访记录表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface VisitMapper extends CustomBaseMapper<Visit> {
+
+}

+ 29 - 0
dao/src/main/resources/mapper/BusinessOpportunityMapper.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.dayou.mapper.BusinessOpportunityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.BusinessOpportunity">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="customer_id" property="customerId" />
+        <result column="opportunity_name" property="opportunityName" />
+        <result column="estimate_amount" property="estimateAmount" />
+        <result column="estimate_date" property="estimateDate" />
+        <result column="remark" property="remark" />
+        <result column="state" property="state" />
+        <result column="off_reason" property="offReason" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        customer_id, opportunity_name, estimate_amount, estimate_date, remark, state, off_reason
+    </sql>
+
+</mapper>

+ 33 - 0
dao/src/main/resources/mapper/CustomerMapper.xml

@@ -0,0 +1,33 @@
+<?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.dayou.mapper.CustomerMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.Customer">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="name" property="name" />
+        <result column="city" property="city" />
+        <result column="county" property="county" />
+        <result column="department" property="department" />
+        <result column="position" property="position" />
+        <result column="section" property="section" />
+        <result column="mobile" property="mobile" />
+        <result column="wechat_no" property="wechatNo" />
+        <result column="QQ" property="qq" />
+        <result column="level" property="level" />
+        <result column="address" property="address" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        name, city, county, department, position, section, mobile, wechat_no, QQ, level, address
+    </sql>
+
+</mapper>

+ 29 - 0
dao/src/main/resources/mapper/DistrictsMapper.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.dayou.mapper.DistrictsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.Districts">
+        <result column="id" property="id" />
+        <result column="pid" property="pid" />
+        <result column="deep" property="deep" />
+        <result column="name" property="name" />
+        <result column="pinyin" property="pinyin" />
+        <result column="pinyin_shor" property="pinyinShor" />
+        <result column="ext_name" property="extName" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="operator" property="operator" />
+        <result column="weight" property="weight" />
+        <result column="lon" property="lon" />
+        <result column="lat" property="lat" />
+        <result column="code" property="code" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        pid, deep, name, pinyin, pinyin_shor, ext_name, create_time, update_time, operator, weight, lon, lat, code
+    </sql>
+
+</mapper>

+ 26 - 0
dao/src/main/resources/mapper/PaymentCollectionMapper.xml

@@ -0,0 +1,26 @@
+<?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.dayou.mapper.PaymentCollectionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.PaymentCollection">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="item_id" property="itemId" />
+        <result column="name" property="name" />
+        <result column="amount" property="amount" />
+        <result column="payment_date" property="paymentDate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        item_id, name, amount, payment_date
+    </sql>
+
+</mapper>

+ 27 - 0
dao/src/main/resources/mapper/VisitMapper.xml

@@ -0,0 +1,27 @@
+<?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.dayou.mapper.VisitMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.Visit">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="customer_id" property="customerId" />
+        <result column="visit_type" property="visitType" />
+        <result column="visit_time" property="visitTime" />
+        <result column="spot" property="spot" />
+        <result column="content" property="content" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        customer_id, visit_type, visit_time, spot, content
+    </sql>
+
+</mapper>

+ 72 - 0
domain/src/main/java/com/dayou/entity/BusinessOpportunity.java

@@ -0,0 +1,72 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import java.time.LocalDate;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 商机
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "商机")
+public class BusinessOpportunity extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 客户id
+     */
+    private Long customerId;
+
+    /**
+     * 机会名称
+     */
+    @ImportCell
+    @ExportCell(columnName = "机会名称")
+    private String opportunityName;
+
+    /**
+     * 预计金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "预计金额")
+    private Double estimateAmount;
+
+    /**
+     * 预计开展日期
+     */
+    @ImportCell
+    @ExportCell(columnName = "预计开展日期")
+    private LocalDate estimateDate;
+
+    /**
+     * 备注
+     */
+    @ImportCell
+    @ExportCell(columnName = "备注")
+    private String remark;
+
+    /**
+     * 状态
+     */
+    @ImportCell
+    @ExportCell(columnName = "状态")
+    private String state;
+
+    /**
+     * 终止原因
+     */
+    @ImportCell
+    @ExportCell(columnName = "终止原因")
+    private String offReason;
+
+
+}

+ 103 - 0
domain/src/main/java/com/dayou/entity/Customer.java

@@ -0,0 +1,103 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 客户表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "客户表")
+public class Customer extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 客户名称
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户名称")
+    private String name;
+
+    /**
+     * 市
+     */
+    @ImportCell
+    @ExportCell(columnName = "市")
+    private String city;
+
+    /**
+     * 区/县
+     */
+    @ImportCell
+    @ExportCell(columnName = "区/县")
+    private String county;
+
+    /**
+     * 部门
+     */
+    @ImportCell
+    @ExportCell(columnName = "部门")
+    private String department;
+
+    /**
+     * 职位
+     */
+    @ImportCell
+    @ExportCell(columnName = "职位")
+    private String position;
+
+    /**
+     * 科室
+     */
+    @ImportCell
+    @ExportCell(columnName = "科室")
+    private String section;
+
+    /**
+     * 联系电话
+     */
+    @ImportCell
+    @ExportCell(columnName = "联系电话")
+    private String mobile;
+
+    /**
+     * 微信号
+     */
+    @ImportCell
+    @ExportCell(columnName = "微信号")
+    private String wechatNo;
+
+    /**
+     * QQ号
+     */
+    @TableField("QQ")
+    @ImportCell
+    @ExportCell(columnName = "QQ号")
+    private String qq;
+
+    /**
+     * 客户等级
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户等级")
+    private String level;
+
+    /**
+     * 客户地址
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户地址")
+    private String address;
+
+
+}

+ 115 - 0
domain/src/main/java/com/dayou/entity/Districts.java

@@ -0,0 +1,115 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 地区
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Data
+@ExcelSheet(sheetName = "地区")
+public class Districts{
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 上级编号
+     */
+    @ImportCell
+    @ExportCell(columnName = "上级编号")
+    private Long pid;
+
+    /**
+     * 层级
+     */
+    @ImportCell
+    @ExportCell(columnName = "层级")
+    private Integer deep;
+
+    /**
+     * 名称
+     */
+    @ImportCell
+    @ExportCell(columnName = "名称")
+    private String name;
+
+    /**
+     * 拼音
+     */
+    @ImportCell
+    @ExportCell(columnName = "拼音")
+    private String pinyin;
+
+    /**
+     * 拼音缩写
+     */
+    @ImportCell
+    @ExportCell(columnName = "拼音缩写")
+    private String pinyinShor;
+
+    /**
+     * 扩展名
+     */
+    @ImportCell
+    @ExportCell(columnName = "扩展名")
+    private String extName;
+
+    /**
+     * 创建时间
+     */
+    @ImportCell
+    @ExportCell(columnName = "创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ImportCell
+    @ExportCell(columnName = "更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 操作人
+     */
+    @ImportCell
+    @ExportCell(columnName = "操作人")
+    private String operator;
+
+    /**
+     * 顺序 权重
+     */
+    @ImportCell
+    @ExportCell(columnName = "顺序 权重")
+    private Integer weight;
+
+    @ImportCell
+    @ExportCell(columnName = "")
+    private BigDecimal lon;
+
+    @ImportCell
+    @ExportCell(columnName = "")
+    private BigDecimal lat;
+
+    /**
+     * 行政区划码
+     */
+    @ImportCell
+    @ExportCell(columnName = "行政区划码")
+    private String code;
+
+
+}

+ 51 - 0
domain/src/main/java/com/dayou/entity/PaymentCollection.java

@@ -0,0 +1,51 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import java.time.LocalDate;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 回款记录
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "回款记录")
+public class PaymentCollection extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 回款名称
+     */
+    @ImportCell
+    @ExportCell(columnName = "回款名称")
+    private String name;
+
+    /**
+     * 回款金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "回款金额")
+    private Double amount;
+
+    /**
+     * 回款日期
+     */
+    @ImportCell
+    @ExportCell(columnName = "回款日期")
+    private LocalDate paymentDate;
+
+
+}

+ 58 - 0
domain/src/main/java/com/dayou/entity/Visit.java

@@ -0,0 +1,58 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 拜访记录表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "拜访记录表")
+public class Visit extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 客户id
+     */
+    private Long customerId;
+
+    /**
+     * 拜访类型(初访、回访)
+     */
+    @ImportCell
+    @ExportCell(columnName = "拜访类型(初访、回访)")
+    private String visitType;
+
+    /**
+     * 拜访时间
+     */
+    @ImportCell
+    @ExportCell(columnName = "拜访时间")
+    private LocalDateTime visitTime;
+
+    /**
+     * 拜访地点
+     */
+    @ImportCell
+    @ExportCell(columnName = "拜访地点")
+    private String spot;
+
+    /**
+     * 沟通内容
+     */
+    @ImportCell
+    @ExportCell(columnName = "沟通内容")
+    private String content;
+
+
+}

+ 58 - 0
domain/src/main/java/com/dayou/vo/DistrictsTreeVO.java

@@ -0,0 +1,58 @@
+package com.dayou.vo;
+
+import com.dayou.bo.MenuTreeBO;
+import com.dayou.bo.Tree;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import org.checkerframework.checker.units.qual.K;
+
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/1/10
+ * created with IntelliJ IDEA.
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Data
+public class DistrictsTreeVO implements Tree<Long ,String> {
+
+    private Long value;
+
+    private String label;
+
+    private List<DistrictsTreeVO> children;
+
+    private Long parentId;
+    @Override
+    public Long getId() {
+        return value;
+    }
+
+    @Override
+    public String getName() {
+        return label;
+    }
+
+    @Override
+    public Long getParentId() {
+        return parentId;
+    }
+
+    @Override
+    public int order() {
+        return 0;
+    }
+
+    @Override
+    public List<? extends Tree<Long, String>> getChildren() {
+        return children;
+    }
+
+    @Override
+    public void setChildren(List<? extends Tree<Long, String>> children) {
+        this.children = (List<DistrictsTreeVO>) children;
+    }
+}

+ 1 - 1
gen/src/main/java/com/dayou/CodeGenerator.java

@@ -60,7 +60,7 @@ public class CodeGenerator {
         // dsc.setSchemaName("public");
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("123456");
+        dsc.setPassword("914851221");
         mpg.setDataSource(dsc);
 
 

+ 28 - 0
service/src/main/java/com/dayou/service/IBusinessOpportunityService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.BusinessOpportunity;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 商机 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface IBusinessOpportunityService extends IService<BusinessOpportunity> {
+
+        Page<BusinessOpportunity> selectPage(Page page,BusinessOpportunity businessOpportunity);
+
+        BusinessOpportunity detail(Long id);
+
+        Boolean add(BusinessOpportunity businessOpportunity);
+
+        Boolean update(BusinessOpportunity businessOpportunity);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/ICustomerService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.Customer;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 客户表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface ICustomerService extends IService<Customer> {
+
+        Page<Customer> selectPage(Page page,Customer customer);
+
+        Customer detail(Long id);
+
+        Boolean add(Customer customer);
+
+        Boolean update(Customer customer);
+
+        Boolean delete(Long id);
+
+}

+ 27 - 0
service/src/main/java/com/dayou/service/IDistrictsService.java

@@ -0,0 +1,27 @@
+package com.dayou.service;
+import com.dayou.entity.Districts;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.DistrictsTreeVO;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 地区 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface IDistrictsService extends IService<Districts> {
+
+        Page<Districts> selectPage(Page page,Districts districts);
+
+        Districts detail(Long id);
+
+    List<DistrictsTreeVO> getDistrictsTree();
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IPaymentCollectionService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.PaymentCollection;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 回款记录 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface IPaymentCollectionService extends IService<PaymentCollection> {
+
+        Page<PaymentCollection> selectPage(Page page,PaymentCollection paymentCollection);
+
+        PaymentCollection detail(Long id);
+
+        Boolean add(PaymentCollection paymentCollection);
+
+        Boolean update(PaymentCollection paymentCollection);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IVisitService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.Visit;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 拜访记录表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+public interface IVisitService extends IService<Visit> {
+
+        Page<Visit> selectPage(Page page,Visit visit);
+
+        Visit detail(Long id);
+
+        Boolean add(Visit visit);
+
+        Boolean update(Visit visit);
+
+        Boolean delete(Long id);
+
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/BusinessOpportunityServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.BusinessOpportunity;
+import com.dayou.mapper.BusinessOpportunityMapper;
+import com.dayou.service.IBusinessOpportunityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 商机 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Service
+public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportunityMapper, BusinessOpportunity> implements IBusinessOpportunityService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<BusinessOpportunity> selectPage(Page page,BusinessOpportunity businessOpportunity){
+        return this.page(page, new QueryWrapper<BusinessOpportunity>(businessOpportunity));
+    }
+
+
+    @Override
+    public BusinessOpportunity detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(BusinessOpportunity businessOpportunity){
+        return  this.save(businessOpportunity);
+    }
+
+    @Override
+    public Boolean update(BusinessOpportunity businessOpportunity){
+        return  this.updateById(businessOpportunity);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/CustomerServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.Customer;
+import com.dayou.mapper.CustomerMapper;
+import com.dayou.service.ICustomerService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 客户表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Service
+public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements ICustomerService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<Customer> selectPage(Page page,Customer customer){
+        return this.page(page, new QueryWrapper<Customer>(customer));
+    }
+
+
+    @Override
+    public Customer detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(Customer customer){
+        return  this.save(customer);
+    }
+
+    @Override
+    public Boolean update(Customer customer){
+        return  this.updateById(customer);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 75 - 0
service/src/main/java/com/dayou/service/impl/DistrictsServiceImpl.java

@@ -0,0 +1,75 @@
+package com.dayou.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.dayou.bo.MenuTreeBO;
+import com.dayou.entity.Districts;
+import com.dayou.mapper.DistrictsMapper;
+import com.dayou.service.IDistrictsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.TreeUtil;
+import com.dayou.vo.DistrictsTreeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 地区 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Service
+public class DistrictsServiceImpl extends ServiceImpl<DistrictsMapper, Districts> implements IDistrictsService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<Districts> selectPage(Page page,Districts districts){
+        return this.page(page, new QueryWrapper<Districts>(districts));
+    }
+
+
+    @Override
+    public Districts detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public List<DistrictsTreeVO> getDistrictsTree() {
+        List<DistrictsTreeVO> results = null;
+        List<Districts> list = this.list();
+        if (CollectionUtils.isNotEmpty(list)) {
+            results = ConvertUtil.copyList(list, x -> {
+                DistrictsTreeVO districtsTreeVO = new DistrictsTreeVO();
+                districtsTreeVO.setValue(x.getId());
+                districtsTreeVO.setLabel(x.getExtName());
+                districtsTreeVO.setParentId(x.getPid());
+                return districtsTreeVO;
+            });
+
+            results = (List<DistrictsTreeVO>) TreeUtil.buildTree(results);
+        }
+        return results;
+    }
+
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/PaymentCollectionServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.PaymentCollection;
+import com.dayou.mapper.PaymentCollectionMapper;
+import com.dayou.service.IPaymentCollectionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 回款记录 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Service
+public class PaymentCollectionServiceImpl extends ServiceImpl<PaymentCollectionMapper, PaymentCollection> implements IPaymentCollectionService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<PaymentCollection> selectPage(Page page,PaymentCollection paymentCollection){
+        return this.page(page, new QueryWrapper<PaymentCollection>(paymentCollection));
+    }
+
+
+    @Override
+    public PaymentCollection detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(PaymentCollection paymentCollection){
+        return  this.save(paymentCollection);
+    }
+
+    @Override
+    public Boolean update(PaymentCollection paymentCollection){
+        return  this.updateById(paymentCollection);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/VisitServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.Visit;
+import com.dayou.mapper.VisitMapper;
+import com.dayou.service.IVisitService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 拜访记录表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-01-10
+ */
+@Service
+public class VisitServiceImpl extends ServiceImpl<VisitMapper, Visit> implements IVisitService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<Visit> selectPage(Page page,Visit visit){
+        return this.page(page, new QueryWrapper<Visit>(visit));
+    }
+
+
+    @Override
+    public Visit detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(Visit visit){
+        return  this.save(visit);
+    }
+
+    @Override
+    public Boolean update(Visit visit){
+        return  this.updateById(visit);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 3532 - 0
sql/20230110.sql