Commit c3eb2d4c authored by chai's avatar chai

mybatis_plus

parent b9ea9410
package com.dianmi;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
@MapperScan("com.dianmi.mapper")
public class Application {
public static void main(String[] args) {
......
package com.dianmi.controller;
import com.dianmi.entity.CustProject;
import com.dianmi.interfaces.CustProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import java.util.List;
/**
* <p>
* 项目表 前端控制器
......@@ -18,9 +23,12 @@ import org.springframework.stereotype.Controller;
@RequestMapping("/cust-project")
public class CustProjectController {
@Autowired
private CustProjectService custProjectService;
@GetMapping("/getProjectList")
public String getActionTest() {
List<CustProject> list = custProjectService.list();
System.out.println("getActionTest---");
return "getActionTest";
}
......
......@@ -28,7 +28,7 @@ public class CustProject extends Model<CustProject> {
/**
* 客户ID
*/
private Long customerId;
// private String customerId;
/**
* 父项目ID
......
<?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.dianmi.dao.CustProjectDao">
<resultMap id="BaseResultMap" type="com.dianmi.domain.entity.CustProject">
<id column="id" property="id"/>
<result column="customer_id" property="customerId"/>
<result column="parent_id" property="parentId"/>
<result column="wo_id" property="woId"/>
<result column="project_name" property="projectName"/>
<result column="project_code" property="projectCode"/>
<result column="business_type_name" property="businessTypeName"/>
<result column="business_type_code" property="businessTypeCode"/>
<result column="sign_company_id" property="signCompanyId"/>
<result column="sign_company_name" property="signCompanyName"/>
<result column="is_exclusive" property="isExclusive"/>
<result column="exclusive_description" property="exclusiveDescription"/>
<result column="nc_code" property="ncCode"/>
<result column="interface_man" property="interfaceMan"/>
<result column="interface_man_territory" property="interfaceManTerritory"/>
<result column="interface_man_phone" property="interfaceManPhone"/>
<result column="interface_man_email" property="interfaceManEmail"/>
<result column="remark" property="remark"/>
<result column="if_need_recruitment" property="ifNeedRecruitment"/>
<result column="recruiter" property="recruiter"/>
<result column="service_status" property="serviceStatus"/>
<result column="ejy_wage_auto_card" property="ejyWageAutoCard"/>
<result column="data_source" property="dataSource"/>
<result column="service_mode" property="serviceMode"/>
<result column="service_province" property="serviceProvince"/>
<result column="service_city" property="serviceCity"/>
<result column="tax_rate" property="taxRate"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id,
customer_id,
parent_id,
wo_id,
project_name,
project_code,
business_type_name,
business_type_code,
sign_company_id,
sign_company_name,
is_exclusive,
exclusive_description,
nc_code,
interface_man,
interface_man_territory,
interface_man_phone,
interface_man_email,
remark,
if_need_recruitment,
recruiter,
service_status,
ejy_wage_auto_card,
data_source,
service_mode,
service_province,
service_city,
tax_rate,
create_time,
update_time
</sql>
<select id="selectProject" resultType="com.dianmi.dto.proj.CustProjectDto">
select
cp.id,
cp.project_name,
cp.project_code,
cp.customer_id,
cp.cust_sale_process_id as custSaleProcessId,
c.customer_name,
c.customer_code,
(SELECT id FROM cust_project WHERE parent_id = cp.id order by id LIMIT 1) firstProjectId,
(SELECT GROUP_CONCAT(DISTINCT user_name) FROM proj_member WHERE project_id in (SELECT id FROM cust_project WHERE
parent_id = cp.id and `type` = '销售')) sellerName,
cp.business_type_name,
cp.sign_company_name,
cp.service_status
from
cust_project cp
left join customer c on c.id = cp.customer_id
where
parent_id = 0 and ((cp.area_code != 'AR0003' AND cp.area_code != 'AR0001') or cp.area_code is null)
<if test="pojo!=null">
and cp.id in (
SELECT parent_id FROM cust_project WHERE id in
( select project_id from proj_member where user_account in
<foreach item="item" index="index" open="(" separator="," close=")" collection="pojo.memberSet">
#{item}
</foreach>
)
)
<if test="pojo.searchType==1">
<if test="pojo.searchContent!=null">
and (c.customer_name like #{pojo.searchContent} or c.customer_code like #{pojo.searchContent})
</if>
</if>
<if test="pojo.searchType==2">
<if test="pojo.searchContent!=null">
and (cp.project_name like #{pojo.searchContent} or cp.project_code like #{pojo.searchContent})
</if>
</if>
<if test="pojo.searchType==3">
<if test="pojo.searchContent!=null">
and cp.id in
(
select parent_id from cust_project
where (project_name like #{pojo.searchContent} or project_code like #{pojo.searchContent})
)
</if>
</if>
<if test="pojo.sellerAccounts!=null">
and cp.id in (
select project_id from proj_member where `type` = '销售' and user_account in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
UNION
SELECT project_id FROM proj_contract
where
zwzy_acct in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
or kf_followup_account in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
)
</if>
</if>
<if test="projectIds != null and projectIds.size()>0">
and cp.id in
<foreach item="item" index="index" open="(" separator="," close=")" collection="projectIds">
#{item}
</foreach>
</if>
order by cp.id desc
</select>
<!--财务角色,看到全部数据,筛选条件 -->
<select id="selectProjectByCaiWu" resultType="com.dianmi.dto.proj.CustProjectDto">
select
cp.id,
cp.project_name,
cp.project_code,
cp.customer_id,
c.customer_name,
c.customer_code,
cp.cust_sale_process_id as custSaleProcessId,
(SELECT id FROM cust_project WHERE parent_id = cp.id order by id LIMIT 1) firstProjectId,
(SELECT GROUP_CONCAT(DISTINCT user_name) FROM proj_member WHERE project_id in (SELECT id FROM cust_project WHERE
parent_id = cp.id and `type` = '销售')) sellerName,
cp.business_type_name,
cp.sign_company_name,
cp.service_status
from
cust_project cp
left join customer c on c.id = cp.customer_id
where
parent_id = 0 and ((cp.area_code != 'AR0003' AND cp.area_code != 'AR0001') or cp.area_code is null)
<if test="pojo!=null">
<if test="pojo.searchType==1">
<if test="pojo.searchContent!=null">
and (c.customer_name like #{pojo.searchContent} or c.customer_code like #{pojo.searchContent})
</if>
</if>
<if test="pojo.searchType==2">
<if test="pojo.searchContent!=null">
and (cp.project_name like #{pojo.searchContent} or cp.project_code like #{pojo.searchContent})
</if>
</if>
<if test="pojo.searchType==3">
<if test="pojo.searchContent!=null">
and cp.id in
(
select parent_id from cust_project
where (project_name like #{pojo.searchContent} or project_code like #{pojo.searchContent})
)
</if>
</if>
<if test="pojo.sellerAccounts!=null">
and cp.id in (
select project_id from proj_member where `type` = '销售' and user_account in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
UNION
SELECT project_id FROM proj_contract
where
zwzy_acct in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
or kf_followup_account in
<foreach item="item" index="index" open="(" separator="," close=")"
collection="pojo.sellerAccounts">
#{item}
</foreach>
)
</if>
</if>
<if test="projectIds != null and projectIds.size()>0">
and cp.id in
<foreach item="item" index="index" open="(" separator="," close=")" collection="projectIds">
#{item}
</foreach>
</if>
order by cp.id desc
</select>
<select id="selectChildList" resultType="com.dianmi.dto.proj.CustProjectDto">
select
cp.id,
cp.project_name,
cp.project_code,
cp.customer_id,
c.customer_name,
c.customer_code,
(select GROUP_CONCAT(user_name) from proj_member where project_id = cp.id and `type` = '销售') seller_name,
cp.business_type_name,
cp.sign_company_name,
cp.service_status
from
cust_project cp
left join customer c on c.id = cp.customer_id
where cp.parent_id in
<foreach item="item" index="index" open="(" separator="," close=")" collection="projectIdList">
#{item}
</foreach>
order by cp.id desc
</select>
<select id="selectByAccounts" resultType="com.dianmi.domain.entity.CustProject">
select
<include refid="Base_Column_List"/>
from cust_project
where
parent_id != 0
and service_status = 1
and id in (
select project_id from proj_member where user_account in
<foreach item="item" index="index" open="(" separator="," close=")" collection="accountList">
#{item}
</foreach>
and `type` = '销售'
)and parent_id in (
select project_id from proj_contract
)
and id not in (
select project_id from company_sign where sign_type = 2
)
order by id desc
</select>
<select id="selectNotInvalidCount" resultType="java.lang.Integer">
select count(*) from cust_project where service_status = 1 and customer_id = #{customerId}
</select>
<select id="listLigongCustProjects" resultType="com.dianmi.dto.ligong.CustProjectLigongDto">
SELECT
foo.project_code as parentProjectCode,
cp.*,
pc.id as crmContactId
FROM
cust_project cp
JOIN customer c on c.id = cp.customer_id
join business_type bt on bt.composite_code=cp.business_type_code
left join cust_project foo on foo.id = cp.parent_id
left JOIN proj_contract pc on pc.project_id = foo.id
WHERE cp.customer_id = #{customerId}
and cp.parent_id != 0 and cp.project_code!=''
<if test="signCompanyId != null and signCompanyId != ''">
and cp.sign_company_id =#{signCompanyId}
</if>
and bt.composite_code='YG0302'
and bt.area_code='AR0002'
order by cp.id desc
</select>
<!--根据客户id查询父项目-->
<select id="getFooProjectsByCustomerId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
cust_project
WHERE
parent_id = 0
AND customer_id = #{customerId}
</select>
<select id="selectByProjectCode" resultType="com.dianmi.domain.entity.CustProject">
SELECT
<include refid="Base_Column_List"/>
from cust_project
where project_code = #{projectCode}
</select>
<select id="selectChildByProjectCode" resultType="com.dianmi.domain.entity.CustProject">
SELECT
<include refid="Base_Column_List"/>
from cust_project
where parent_id in (
SELECT
id
from cust_project
where project_code = #{projectCode}
)
</select>
<select id="selectFirstProjectId" resultType="java.lang.String">
SELECT id FROM cust_project WHERE parent_id = #{parentProjectId} order by id LIMIT 1
</select>
<select id="selectAreaChild" resultType="com.dianmi.crm.api.dto.CustProjectInfoDto">
select
cp.id id,
cp.project_name projectName,
cp.project_code projectCode,
cp.customer_id customerId,
CAST(cp.tax_rate AS decimal(14,2)) taxRate,
c.customer_name customerName,
c.customer_code customerCode,
c.area_name areaName,
cp.business_type_name businessTypeName,
cp.sign_company_name signCompanyName,
cp.service_status serviceStatus,
cp.parent_id parentId
from
cust_project cp
left join customer c on c.id = cp.customer_id
where
c.area_code = #{areaCode}
and cp.parent_id != 0
</select>
<select id="selectSubProjectsBySubProjectCodes" resultType="com.dianmi.dto.proj.CustProjectDto">
select
<include refid="Base_Column_List"/>
from cust_project
where project_code in
<foreach item="item" index="index" open="(" separator="," close=")" collection="subProjectCodes">
#{item}
</foreach>
and parent_id !=0
</select>
<select id="getProjectByprojectIds" resultType="com.dianmi.crm.api.dto.CustProjectInfoDto">
select
cp.id id,
cp.project_name projectName,
cp.project_code projectCode,
cp.customer_id customerId,
CAST(cp.tax_rate AS decimal(14,2)) taxRate,
c.customer_name customerName,
c.customer_code customerCode,
c.area_name areaName,
cp.business_type_name businessTypeName,
cp.sign_company_name signCompanyName,
cp.service_status serviceStatus,
cp.parent_id parentId
from
cust_project cp
left join customer c on c.id = cp.customer_id
where cp.id in
<foreach item="item" index="index" open="(" separator="," close=")" collection="projectIds">
#{item}
</foreach>
and cp.parent_id != 0
</select>
<select id="selectChildByCode" resultType="com.dianmi.crm.api.dto.CustProjectInfoDto">
select
cp.id id,
cp.project_name projectName,
cp.project_code projectCode,
cp.customer_id customerId,
CAST(cp.tax_rate AS decimal(14,2)) taxRate,
c.customer_name customerName,
c.customer_code customerCode,
c.area_name areaName,
c.area_code areaCode,
cp.business_type_name businessTypeName,
cp.business_type_code businessTypeCode,
cp.sign_company_name signCompanyName,
cp.service_status serviceStatus,
cp.parent_id parentId
from
cust_project cp
left join customer c on c.id = cp.customer_id
where
cp.project_code in
<foreach item="item" index="index" open="(" separator="," close=")" collection="subProjectCodeList">
#{item}
</foreach>
and cp.parent_id != 0
</select>
</mapper>
......@@ -5,7 +5,7 @@ server:
#spring配置
spring:
application:
name: hro-to-oa
name: crm-service
cloud:
nacos:
discovery:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment