tengxi 1 year ago
parent 77b09bec49
commit 4ae74fe524

@ -0,0 +1,31 @@
import { defHttp } from '@/utils/http/axios'
// 查询客户信息列表
export function getCustomerPage(params) {
return defHttp.get({ url: '/xxjj/customer/page', params })
}
// 查询客户信息详情
export function getCustomer(id: number) {
return defHttp.get({ url: '/xxjj/customer/get?id=' + id })
}
// 新增客户信息
export function createCustomer(data) {
return defHttp.post({ url: '/xxjj/customer/create', data })
}
// 修改客户信息
export function updateCustomer(data) {
return defHttp.put({ url: '/xxjj/customer/update', data })
}
// 删除客户信息
export function deleteCustomer(id: number) {
return defHttp.delete({ url: '/xxjj/customer/delete?id=' + id })
}
// 导出客户信息 Excel
export function exportCustomer(params) {
return defHttp.download({ url: '/xxjj/customer/export-excel', params }, '客户信息.xls')
}

@ -311,4 +311,4 @@ export const updateFormSchema: FormSchema[] = [
options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number') options: getDictOptions(DICT_TYPE.DIFF_FLAG, 'number')
} }
}, },
] ]

@ -0,0 +1,57 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="isUpdate ? t('action.edit') : t('action.create')" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { BasicForm, useForm } from '@/components/Form'
import { BasicModal, useModalInner } from '@/components/Modal'
import { createFormSchema, updateFormSchema } from './customer.data'
import { createCustomer, getCustomer, updateCustomer } from '@/api/xxjj/customer'
defineOptions({ name: 'CustomerModal' })
const { t } = useI18n()
const { createMessage } = useMessage()
const emit = defineEmits(['success', 'register'])
const isUpdate = ref(true)
const [registerForm, { setFieldsValue, resetFields, resetSchema, validate }] = useForm({
labelWidth: 120,
baseColProps: { span: 24 },
schemas: createFormSchema,
showActionButtonGroup: false,
actionColOptions: { span: 23 }
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields()
setModalProps({ confirmLoading: false })
isUpdate.value = !!data?.isUpdate
if (unref(isUpdate)) {
resetSchema(updateFormSchema)
const res = await getCustomer(data.record.id)
setFieldsValue({ ...res })
}
})
async function handleSubmit() {
try {
const values = await validate()
setModalProps({ confirmLoading: true })
if (unref(isUpdate)) {
await updateCustomer(values)
} else {
await createCustomer(values)
}
closeModal()
emit('success')
createMessage.success(t('common.saveSuccessText'))
} finally {
setModalProps({ confirmLoading: false })
}
}
</script>

@ -0,0 +1,659 @@
import { BasicColumn, FormSchema, useRender } from '@/components/Table'
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
export const columns: BasicColumn[] = [
{
title: '编号',
dataIndex: 'id',
width: 160
},
{
title: '客户分类(0一级客户 1二级客户)',
dataIndex: 'customerCalssify',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.CUSTOMER_CALSSIFY)
}
},
{
title: '客户名称',
dataIndex: 'customerName',
width: 160
},
{
title: '公司logo',
dataIndex: 'customerLogo',
width: 160
},
{
title: '企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)',
dataIndex: 'enterpriseNature',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.ENTERPRISE_NATURE)
}
},
{
title: '客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)',
dataIndex: 'customerSource',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.PRODUCT_CLASS)
}
},
{
title: '客户星级(0一星 1二星 2三星 3四星 4五星)',
dataIndex: 'customerStarrating',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.CUSTOMER_STARRATING)
}
},
{
title: '业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)',
dataIndex: 'industrySchedule',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.INDUSTRY_SCHEDULE)
}
},
{
title: '归属人员',
dataIndex: 'belongingPeople',
width: 160
},
{
title: '所在城市',
dataIndex: 'city',
width: 160
},
{
title: '国家',
dataIndex: 'country',
width: 160
},
{
title: '详细地址',
dataIndex: 'address',
width: 160
},
{
title: '公司电话',
dataIndex: 'phone',
width: 160
},
{
title: '公司传真',
dataIndex: 'companyFax',
width: 160
},
{
title: '公司网址',
dataIndex: 'companyHttp',
width: 160
},
{
title: '公司介绍',
dataIndex: 'companyProfile',
width: 160
},
{
title: '客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)',
dataIndex: 'customerStatus',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.CUSTOMER_STATUS1)
}
},
{
title: '社会信息代码证(营业执照)',
dataIndex: 'socialInformationCodeCertificate',
width: 160
},
{
title: '法定代表人证件照',
dataIndex: 'legalRepresentativesPhoto',
width: 160
},
{
title: '实缴资金证明',
dataIndex: 'proofPaidCapital',
width: 160
},
{
title: '资产证明',
dataIndex: 'assetCertificate',
width: 160
},
{
title: '资产抵押证明',
dataIndex: 'assetCertificateMortgage',
width: 160
},
{
title: '担保人证明',
dataIndex: 'guarantorCertificate',
width: 160
},
{
title: '经营范围',
dataIndex: 'businessScope',
width: 160
},
{
title: '创建时间',
dataIndex: 'createTime',
width: 180,
customRender: ({ text }) => {
return useRender.renderDate(text)
}
},
{
title: '行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)',
dataIndex: 'industryClassify',
width: 160
},
{
title: '其他资质文件',
dataIndex: 'otherQualifications',
width: 160
},
]
export const searchFormSchema: FormSchema[] = [
{
label: '客户分类(0一级客户 1二级客户)',
field: 'customerCalssify',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_CALSSIFY)
},
colProps: { span: 8 }
},
{
label: '客户名称',
field: 'customerName',
component: 'Input',
colProps: { span: 8 }
},
{
label: '公司logo',
field: 'customerLogo',
component: 'Input',
colProps: { span: 8 }
},
{
label: '企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)',
field: 'enterpriseNature',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.ENTERPRISE_NATURE)
},
colProps: { span: 8 }
},
{
label: '客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)',
field: 'customerSource',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.PRODUCT_CLASS)
},
colProps: { span: 8 }
},
{
label: '客户星级(0一星 1二星 2三星 3四星 4五星)',
field: 'customerStarrating',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STARRATING)
},
colProps: { span: 8 }
},
{
label: '业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)',
field: 'industrySchedule',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.INDUSTRY_SCHEDULE)
},
colProps: { span: 8 }
},
{
label: '归属人员',
field: 'belongingPeople',
component: 'Input',
colProps: { span: 8 }
},
{
label: '所在城市',
field: 'city',
component: 'Input',
colProps: { span: 8 }
},
{
label: '国家',
field: 'country',
component: 'Input',
colProps: { span: 8 }
},
{
label: '详细地址',
field: 'address',
component: 'Input',
colProps: { span: 8 }
},
{
label: '公司电话',
field: 'phone',
component: 'Input',
colProps: { span: 8 }
},
{
label: '公司传真',
field: 'companyFax',
component: 'Input',
colProps: { span: 8 }
},
{
label: '公司网址',
field: 'companyHttp',
component: 'Input',
colProps: { span: 8 }
},
{
label: '公司介绍',
field: 'companyProfile',
colProps: { span: 8 }
},
{
label: '客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)',
field: 'customerStatus',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STATUS1)
},
colProps: { span: 8 }
},
{
label: '社会信息代码证(营业执照)',
field: 'socialInformationCodeCertificate',
component: 'RangePicker',
colProps: { span: 8 }
},
{
label: '法定代表人证件照',
field: 'legalRepresentativesPhoto',
colProps: { span: 8 }
},
{
label: '实缴资金证明',
field: 'proofPaidCapital',
colProps: { span: 8 }
},
{
label: '资产证明',
field: 'assetCertificate',
colProps: { span: 8 }
},
{
label: '资产抵押证明',
field: 'assetCertificateMortgage',
colProps: { span: 8 }
},
{
label: '担保人证明',
field: 'guarantorCertificate',
colProps: { span: 8 }
},
{
label: '经营范围',
field: 'businessScope',
colProps: { span: 8 }
},
{
label: '创建时间',
field: 'createTime',
component: 'RangePicker',
colProps: { span: 8 }
},
{
label: '行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)',
field: 'industryClassify',
component: 'Input',
colProps: { span: 8 }
},
{
label: '其他资质文件',
field: 'otherQualifications',
component: 'Input',
colProps: { span: 8 }
},
]
export const createFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '客户分类(0一级客户 1二级客户)',
field: 'customerCalssify',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_CALSSIFY, 'number')
}
},
{
label: '客户名称',
field: 'customerName',
component: 'Input'
},
{
label: '公司logo',
field: 'customerLogo',
component: 'Input'
},
{
label: '企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)',
field: 'enterpriseNature',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.ENTERPRISE_NATURE, 'number')
}
},
{
label: '客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)',
field: 'customerSource',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.PRODUCT_CLASS, 'number')
}
},
{
label: '客户星级(0一星 1二星 2三星 3四星 4五星)',
field: 'customerStarrating',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STARRATING, 'number')
}
},
{
label: '业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)',
field: 'industrySchedule',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.INDUSTRY_SCHEDULE, 'number')
}
},
{
label: '归属人员',
field: 'belongingPeople',
component: 'Input'
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '国家',
field: 'country',
component: 'Input'
},
{
label: '详细地址',
field: 'address',
component: 'Input'
},
{
label: '公司电话',
field: 'phone',
component: 'Input'
},
{
label: '公司传真',
field: 'companyFax',
component: 'Input'
},
{
label: '公司网址',
field: 'companyHttp',
component: 'Input'
},
{
label: '公司介绍',
field: 'companyProfile',
component: 'InputTextArea'
},
{
label: '客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)',
field: 'customerStatus',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STATUS1, 'number')
}
},
{
label: '社会信息代码证(营业执照)',
field: 'socialInformationCodeCertificate',
component: 'DatePicker'
},
{
label: '法定代表人证件照',
field: 'legalRepresentativesPhoto',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '实缴资金证明',
field: 'proofPaidCapital',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '资产证明',
field: 'assetCertificate',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '资产抵押证明',
field: 'assetCertificateMortgage',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '担保人证明',
field: 'guarantorCertificate',
component: 'FileUpload',
componentProps: {
fileType: 'file',
maxCount: 1
}
},
{
label: '经营范围',
field: 'businessScope',
component: 'InputTextArea'
},
{
label: '行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)',
field: 'industryClassify',
component: 'Input'
},
{
label: '其他资质文件',
field: 'otherQualifications',
component: 'Input'
},
]
export const updateFormSchema: FormSchema[] = [
{
label: '编号',
field: 'id',
show: false,
component: 'Input'
},
{
label: '客户分类(0一级客户 1二级客户)',
field: 'customerCalssify',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_CALSSIFY, 'number')
}
},
{
label: '客户名称',
field: 'customerName',
component: 'Input'
},
{
label: '公司logo',
field: 'customerLogo',
component: 'Input'
},
{
label: '企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)',
field: 'enterpriseNature',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.ENTERPRISE_NATURE, 'number')
}
},
{
label: '客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)',
field: 'customerSource',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.PRODUCT_CLASS, 'number')
}
},
{
label: '客户星级(0一星 1二星 2三星 3四星 4五星)',
field: 'customerStarrating',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STARRATING, 'number')
}
},
{
label: '业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)',
field: 'industrySchedule',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.INDUSTRY_SCHEDULE, 'number')
}
},
{
label: '归属人员',
field: 'belongingPeople',
component: 'Input'
},
{
label: '所在城市',
field: 'city',
component: 'Input'
},
{
label: '国家',
field: 'country',
component: 'Input'
},
{
label: '详细地址',
field: 'address',
component: 'Input'
},
{
label: '公司电话',
field: 'phone',
component: 'Input'
},
{
label: '公司传真',
field: 'companyFax',
component: 'Input'
},
{
label: '公司网址',
field: 'companyHttp',
component: 'Input'
},
{
label: '公司介绍',
field: 'companyProfile',
component: 'InputTextArea'
},
{
label: '客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)',
field: 'customerStatus',
required: true,
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.CUSTOMER_STATUS1, 'number')
}
},
{
label: '社会信息代码证(营业执照)',
field: 'socialInformationCodeCertificate',
component: 'DatePicker'
},
{
label: '法定代表人证件照',
field: 'legalRepresentativesPhoto',
component: 'Upload'
},
{
label: '实缴资金证明',
field: 'proofPaidCapital',
component: 'Upload'
},
{
label: '资产证明',
field: 'assetCertificate',
component: 'Upload'
},
{
label: '资产抵押证明',
field: 'assetCertificateMortgage',
component: 'Upload'
},
{
label: '担保人证明',
field: 'guarantorCertificate',
component: 'Upload'
},
{
label: '经营范围',
field: 'businessScope',
component: 'InputTextArea'
},
{
label: '行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)',
field: 'industryClassify',
component: 'Input'
},
{
label: '其他资质文件',
field: 'otherQualifications',
component: 'Input'
},
]

@ -0,0 +1,92 @@
<template>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" v-auth="['xxjj:customer:create']" :preIcon="IconEnum.ADD" @click="handleCreate">
{{ t('action.create') }}
</a-button>
<a-button type="warning" v-auth="['xxjj:customer:export']" :preIcon="IconEnum.EXPORT" @click="handleExport">
{{ t('action.export') }}
</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{ icon: IconEnum.EDIT, label: t('action.edit'), auth: 'xxjj:customer:update', onClick: handleEdit.bind(null, record) },
{
icon: IconEnum.DELETE,
color: 'error',
label: t('action.delete'),
auth: 'xxjj:customer:delete',
popConfirm: {
title: t('common.delMessage'),
placement: 'left',
confirm: handleDelete.bind(null, record)
}
}
]"
/>
</template>
</template>
</BasicTable>
<CustomerModal @register="registerModal" @success="reload()" />
</div>
</template>
<script lang="ts" setup>
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { useModal } from '@/components/Modal'
import CustomerModal from './CustomerModal.vue'
import { IconEnum } from '@/enums/appEnum'
import { BasicTable, useTable, TableAction } from '@/components/Table'
import { deleteCustomer, exportCustomer, getCustomerPage } from '@/api/xxjj/customer'
import { columns, searchFormSchema } from './customer.data'
defineOptions({ name: 'Customer' })
const { t } = useI18n()
const { createConfirm, createMessage } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { getForm, reload }] = useTable({
title: '客户信息列表',
api: getCustomerPage,
columns,
formConfig: { labelWidth: 120, schemas: searchFormSchema },
useSearchForm: true,
showTableSetting: true,
actionColumn: {
width: 140,
title: t('common.action'),
dataIndex: 'action',
fixed: 'right'
}
})
function handleCreate() {
openModal(true, { isUpdate: false })
}
function handleEdit(record: Recordable) {
openModal(true, { record, isUpdate: true })
}
async function handleExport() {
createConfirm({
title: t('common.exportTitle'),
iconType: 'warning',
content: t('common.exportMessage'),
async onOk() {
await exportCustomer(getForm().getFieldsValue())
createMessage.success(t('common.exportSuccessText'))
}
})
}
async function handleDelete(record: Recordable) {
await deleteCustomer(record.id)
createMessage.success(t('common.delSuccessText'))
reload()
}
</script>

@ -1,5 +1,6 @@
package com.yunxi.scm.module.system.controller.admin.enterprise; package com.yunxi.scm.module.system.controller.admin.enterprise;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.UserUpdateStatusReqVO;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -52,6 +53,16 @@ public class EnterpriseController {
return success(true); return success(true);
} }
@PutMapping("/updateStatus")
@Operation(summary = "更新企业状态")
@PreAuthorize("@ss.hasPermission('system:enterprise:updateStatus')")
public CommonResult<Boolean> updateEnterpriseStatus(@Valid @RequestBody EnterpriseUpdateReqVO updateReqVO) {
updateReqVO.setEnterpriseStatus("1");
enterpriseService.updateEnterprise(updateReqVO);
return success(true);
}
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除企业信息") @Operation(summary = "删除企业信息")
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)

@ -76,4 +76,7 @@ public class EnterpriseBaseVO {
@Schema(description = "描述") @Schema(description = "描述")
private String description; private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
} }

@ -145,4 +145,6 @@ public class EnterpriseCreateReqVO extends EnterpriseBaseVO {
@Schema(description = "描述", example = "你猜") @Schema(description = "描述", example = "你猜")
private String description; private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
} }

@ -62,4 +62,7 @@ public class EnterpriseExportReqVO {
@Schema(description = "描述") @Schema(description = "描述")
private String description; private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
} }

@ -64,4 +64,7 @@ public class EnterprisePageReqVO extends PageParam {
@Schema(description = "描述") @Schema(description = "描述")
private String description; private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
} }

@ -149,4 +149,6 @@ public class EnterpriseUpdateReqVO extends EnterpriseBaseVO {
@Schema(description = "描述", example = "你猜") @Schema(description = "描述", example = "你猜")
private String description; private String description;
@Schema(description = "企业状态")
private String enterpriseStatus;
} }

@ -255,5 +255,9 @@ public class EnterpriseDO extends BaseDO {
* id * id
*/ */
private Long parentId; private Long parentId;
/**
*
*/
private String enterpriseStatus;
} }

@ -1,8 +1,5 @@
package com.yunxi.scm.module.xxjj.controller.admin.customer; package com.yunxi.scm.module.xxjj.controller.admin.customer;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.module.xxjj.controller.admin.workorder.vo.WorkOrderCreateReqVO;
import com.yunxi.scm.module.xxjj.service.workorder.WorkOrderService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -39,26 +36,14 @@ public class CustomerController {
@Resource @Resource
private CustomerService customerService; private CustomerService customerService;
@Resource
private WorkOrderService workOrderService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建客户信息") @Operation(summary = "创建客户信息")
@PreAuthorize("@ss.hasPermission('xxjj:customer:create')") @PreAuthorize("@ss.hasPermission('xxjj:customer:create')")
public CommonResult<Long> createCustomerwork(@Valid @RequestBody CustomerCreateReqVO createReqVO) { public CommonResult<Long> createCustomer(@Valid @RequestBody CustomerCreateReqVO createReqVO) {
return success(customerService.createCustomer(createReqVO)); return success(customerService.createCustomer(createReqVO));
} }
@PostMapping("/creatework")
@Operation(summary = "创建工单")
@PreAuthorize("@ss.hasPermission('xxjj:customer:creatework')")
public CommonResult<Long> createCustomer(@Valid @RequestBody WorkOrderCreateReqVO workOrderCreateReqVO) {
return success(workOrderService.createWorkOrder(workOrderCreateReqVO));
}
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新客户信息") @Operation(summary = "更新客户信息")
@PreAuthorize("@ss.hasPermission('xxjj:customer:update')") @PreAuthorize("@ss.hasPermission('xxjj:customer:update')")
@ -114,18 +99,4 @@ public class CustomerController {
ExcelUtils.write(response, "客户信息.xls", "数据", CustomerExcelVO.class, datas); ExcelUtils.write(response, "客户信息.xls", "数据", CustomerExcelVO.class, datas);
} }
@GetMapping("/list-all-simplecustomer")
@Operation(summary = "获取客户", description = "只包含被开启的客户,主要用于前端的下拉选项")
public CommonResult<List<CustomerRespVO>> getCustomerId() {
CustomerRespVO customerRespVO=new CustomerRespVO();
String status=Integer.toString(CommonStatusEnum.ENABLE.getStatus());
customerRespVO.setStatus(status);
List<CustomerDO> list = customerService.getCustomerstaus(customerRespVO);
return success(CustomerConvert.INSTANCE.convertList(list));
}
} }

@ -14,34 +14,81 @@ import javax.validation.constraints.*;
@Data @Data
public class CustomerBaseVO { public class CustomerBaseVO {
@Schema(description = "客户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") @Schema(description = "客户分类(0一级客户 1二级客户)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "客户名称不能为空") @NotNull(message = "客户分类(0一级客户 1二级客户)不能为空")
private String customerCalssify;
@Schema(description = "客户名称", example = "王五")
private String customerName; private String customerName;
@Schema(description = "客户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @Schema(description = "公司logo")
@NotNull(message = "客户类型不能为空") private String customerLogo;
private String customerType;
@Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String enterpriseNature;
@Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String customerSource;
@Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private String customerStarrating;
@Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String industrySchedule;
@Schema(description = "归属人员")
private String belongingPeople;
@Schema(description = "所在城市")
private Long city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)不能为空")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "法定代表人证件照")
private String legalRepresentativesPhoto;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "统一结算主体") @Schema(description = "资产证明")
private String unifiedSettlement; private String assetCertificate;
@Schema(description = "客户性质", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "资产抵押证明")
@NotNull(message = "客户性质不能为空") private String assetCertificateMortgage;
private String customerNature;
@Schema(description = "合作模式", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "担保人证明")
@NotNull(message = "合作模式不能为空") private String guarantorCertificate;
private String cooperationMode;
@Schema(description = "隶属业务线", example = "22944") @Schema(description = "经营范围")
private Long linebusinessId; private String businessScope;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
@NotNull(message = "状态不能为空") private String industryClassify;
private String status;
@Schema(description = "归属人员",requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") @Schema(description = "其他资质文件")
@NotNull(message = "成员编号数组不能为空") private String otherQualifications;
private Set<Long> belongingPeople;
} }

@ -7,11 +7,14 @@ import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
/** /**
* Excel VO * Excel VO
* *
* @author * @author
*/ */
@Data @Data
public class CustomerExcelVO { public class CustomerExcelVO {
@ -19,34 +22,88 @@ public class CustomerExcelVO {
@ExcelProperty("编号") @ExcelProperty("编号")
private Long id; private Long id;
@ExcelProperty(value = "客户分类(0一级客户 1二级客户)", converter = DictConvert.class)
@DictFormat("customer_calssify") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String customerCalssify;
@ExcelProperty("客户名称") @ExcelProperty("客户名称")
private String customerName; private String customerName;
@ExcelProperty("客户类型") @ExcelProperty("公司logo")
private String customerType; private String customerLogo;
@ExcelProperty("统一结算主体")
private String unifiedSettlement;
@ExcelProperty("客户性质") @ExcelProperty(value = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)", converter = DictConvert.class)
private String customerNature; @DictFormat("enterprise_nature") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String enterpriseNature;
@ExcelProperty("合作模式") @ExcelProperty(value = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)", converter = DictConvert.class)
private String cooperationMode; @DictFormat("product_class") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String customerSource;
@ExcelProperty("隶属业务线") @ExcelProperty(value = "客户星级(0一星 1二星 2三星 3四星 4五星)", converter = DictConvert.class)
private Long linebusinessId; @DictFormat("customer_starrating") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String customerStarrating;
@ExcelProperty("状态") @ExcelProperty(value = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)", converter = DictConvert.class)
private String status; @DictFormat("industry_schedule") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String industrySchedule;
@ExcelProperty("归属人员") @ExcelProperty("归属人员")
private Set<Long> belongingPeople; private String belongingPeople;
@ExcelProperty("所在城市")
private Long city;
@ExcelProperty("国家")
private String country;
@ExcelProperty("详细地址")
private String address;
@ExcelProperty("公司电话")
private String phone;
@ExcelProperty("公司传真")
private String companyFax;
@ExcelProperty("公司网址")
private String companyHttp;
@ExcelProperty("公司介绍")
private String companyProfile;
@ExcelProperty(value = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", converter = DictConvert.class)
@DictFormat("customer_status1") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String customerStatus;
@ExcelProperty("社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@ExcelProperty("法定代表人证件照")
private String legalRepresentativesPhoto;
@ExcelProperty("实缴资金证明")
private String proofPaidCapital;
@ExcelProperty("资产证明")
private String assetCertificate;
@ExcelProperty("资产抵押证明")
private String assetCertificateMortgage;
@ExcelProperty("担保人证明")
private String guarantorCertificate;
@ExcelProperty("经营范围")
private String businessScope;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("更新时间") @ExcelProperty("行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
private LocalDateTime updateTime; private String industryClassify;
@ExcelProperty("其他资质文件")
private String otherQualifications;
} }

@ -13,36 +13,83 @@ import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MON
@Data @Data
public class CustomerExportReqVO { public class CustomerExportReqVO {
@Schema(description = "客户名称", example = "赵六") @Schema(description = "客户分类(0一级客户 1二级客户)")
private String customerName; private String customerCalssify;
@Schema(description = "客户类型", example = "2") @Schema(description = "客户名称", example = "王五")
private String customerType; private String customerName;
@Schema(description = "统一结算主体") @Schema(description = "公司logo")
private String unifiedSettlement; private String customerLogo;
@Schema(description = "客户性质") @Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String customerNature; private String enterpriseNature;
@Schema(description = "合作模式") @Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String cooperationMode; private String customerSource;
@Schema(description = "隶属业务线", example = "22944") @Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private Long linebusinessId; private String customerStarrating;
@Schema(description = "状态", example = "2") @Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String status; private String industrySchedule;
@Schema(description = "归属人员") @Schema(description = "归属人员")
private String belongingPeople; private String belongingPeople;
@Schema(description = "所在城市")
private Long city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", example = "1")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "法定代表人证件照")
private String legalRepresentativesPhoto;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "资产证明")
private String assetCertificate;
@Schema(description = "资产抵押证明")
private String assetCertificateMortgage;
@Schema(description = "担保人证明")
private String guarantorCertificate;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
@Schema(description = "更新时间") @Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private String industryClassify;
private LocalDateTime[] updateTime;
@Schema(description = "其他资质文件")
private String otherQualifications;
} }

@ -15,36 +15,83 @@ import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MON
@ToString(callSuper = true) @ToString(callSuper = true)
public class CustomerPageReqVO extends PageParam { public class CustomerPageReqVO extends PageParam {
@Schema(description = "客户名称", example = "赵六") @Schema(description = "客户分类(0一级客户 1二级客户)")
private String customerName; private String customerCalssify;
@Schema(description = "客户类型", example = "2") @Schema(description = "客户名称", example = "王五")
private String customerType; private String customerName;
@Schema(description = "统一结算主体") @Schema(description = "公司logo")
private String unifiedSettlement; private String customerLogo;
@Schema(description = "客户性质") @Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String customerNature; private String enterpriseNature;
@Schema(description = "合作模式") @Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String cooperationMode; private String customerSource;
@Schema(description = "隶属业务线", example = "22944") @Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private Long linebusinessId; private String customerStarrating;
@Schema(description = "状态", example = "2") @Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String status; private String industrySchedule;
@Schema(description = "归属人员") @Schema(description = "归属人员")
private Set<Long> belongingPeople; private String belongingPeople;
@Schema(description = "所在城市")
private Long city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", example = "1")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "法定代表人证件照")
private String legalRepresentativesPhoto;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "资产证明")
private String assetCertificate;
@Schema(description = "资产抵押证明")
private String assetCertificateMortgage;
@Schema(description = "担保人证明")
private String guarantorCertificate;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
@Schema(description = "更新时间") @Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private String industryClassify;
private LocalDateTime[] updateTime;
@Schema(description = "其他资质文件")
private String otherQualifications;
} }

@ -10,13 +10,10 @@ import java.time.LocalDateTime;
@ToString(callSuper = true) @ToString(callSuper = true)
public class CustomerRespVO extends CustomerBaseVO { public class CustomerRespVO extends CustomerBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7245") @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9751")
private Long id; private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime; private LocalDateTime createTime;
@Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime updateTime;
} }

@ -11,7 +11,7 @@ import javax.validation.constraints.*;
@ToString(callSuper = true) @ToString(callSuper = true)
public class CustomerUpdateReqVO extends CustomerBaseVO { public class CustomerUpdateReqVO extends CustomerBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7245") @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9751")
@NotNull(message = "编号不能为空") @NotNull(message = "编号不能为空")
private Long id; private Long id;

@ -12,7 +12,7 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.customer.CustomerDO;
/** /**
* Convert * Convert
* *
* @author * @author
*/ */
@Mapper @Mapper
public interface CustomerConvert { public interface CustomerConvert {

@ -1,7 +1,5 @@
package com.yunxi.scm.module.xxjj.dal.dataobject.customer; package com.yunxi.scm.module.xxjj.dal.dataobject.customer;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.mybatis.core.type.JsonLongSetTypeHandler;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -12,9 +10,9 @@ import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/** /**
* DO * DO
* *
* @author * @author
*/ */
@TableName(value = "xxjj_customer", autoResultMap = true) @TableName("xxjj_customer")
@KeySequence("xxjj_customer_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("xxjj_customer_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -29,40 +27,117 @@ public class CustomerDO extends BaseDO {
*/ */
@TableId @TableId
private Long id; private Long id;
/**
* (0 1)
*
* {@link TODO customer_calssify }
*/
private String customerCalssify;
/** /**
* *
*/ */
private String customerName; private String customerName;
/** /**
* * logo
*/ */
private String customerType; private String customerLogo;
/** /**
* * (0 1 2 3 4 5)
*
* {@link TODO enterprise_nature }
*/ */
private String unifiedSettlement; private String enterpriseNature;
/** /**
* * (0 1 2 3 4 5 6广 7 8)
*
* {@link TODO product_class }
*/ */
private String customerNature; private String customerSource;
/** /**
* * (0 1 2 3 4)
*
* {@link TODO customer_starrating }
*/ */
private String cooperationMode; private String customerStarrating;
/** /**
* 线 * (0 1 2 3 4 5 6 7 8)
*
* {@link TODO industry_schedule }
*/ */
private Long linebusinessId; private String industrySchedule;
/** /**
* *
*/
private String belongingPeople;
/**
*
*/
private Long city;
/**
*
*/
private String country;
/**
*
*/
private String address;
/**
*
*/
private String phone;
/**
*
*/
private String companyFax;
/**
*
*/
private String companyHttp;
/**
*
*/
private String companyProfile;
/**
* (0 1 2 3 4 5 6)
* *
* {@link CommonStatusEnum} * {@link TODO customer_status1 }
*/ */
private String status; private String customerStatus;
/** /**
* *
*/
private String socialInformationCodeCertificate;
/**
*
*/
private String legalRepresentativesPhoto;
/**
*
*/
private String proofPaidCapital;
/**
*
*/
private String assetCertificate;
/**
*
*/
private String assetCertificateMortgage;
/**
*
*/
private String guarantorCertificate;
/**
*
*/
private String businessScope;
/**
* (0 1 2 3 4 5 6 7 8广)
*/
private String industryClassify;
/**
*
*/ */
@TableField(typeHandler = JsonLongSetTypeHandler.class) private String otherQualifications;
private Set<Long> belongingPeople;
} }

@ -12,43 +12,71 @@ import com.yunxi.scm.module.xxjj.controller.admin.customer.vo.*;
/** /**
* Mapper * Mapper
* *
* @author * @author
*/ */
@Mapper @Mapper
public interface CustomerMapper extends BaseMapperX<CustomerDO> { public interface CustomerMapper extends BaseMapperX<CustomerDO> {
default PageResult<CustomerDO> selectPage(CustomerPageReqVO reqVO) { default PageResult<CustomerDO> selectPage(CustomerPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CustomerDO>() return selectPage(reqVO, new LambdaQueryWrapperX<CustomerDO>()
.eqIfPresent(CustomerDO::getCustomerCalssify, reqVO.getCustomerCalssify())
.likeIfPresent(CustomerDO::getCustomerName, reqVO.getCustomerName()) .likeIfPresent(CustomerDO::getCustomerName, reqVO.getCustomerName())
.eqIfPresent(CustomerDO::getCustomerType, reqVO.getCustomerType()) .eqIfPresent(CustomerDO::getCustomerLogo, reqVO.getCustomerLogo())
.eqIfPresent(CustomerDO::getUnifiedSettlement, reqVO.getUnifiedSettlement()) .eqIfPresent(CustomerDO::getEnterpriseNature, reqVO.getEnterpriseNature())
.eqIfPresent(CustomerDO::getCustomerNature, reqVO.getCustomerNature()) .eqIfPresent(CustomerDO::getCustomerSource, reqVO.getCustomerSource())
.eqIfPresent(CustomerDO::getCooperationMode, reqVO.getCooperationMode()) .eqIfPresent(CustomerDO::getCustomerStarrating, reqVO.getCustomerStarrating())
.eqIfPresent(CustomerDO::getLinebusinessId, reqVO.getLinebusinessId()) .eqIfPresent(CustomerDO::getIndustrySchedule, reqVO.getIndustrySchedule())
.eqIfPresent(CustomerDO::getStatus, reqVO.getStatus()) .eqIfPresent(CustomerDO::getBelongingPeople, reqVO.getBelongingPeople())
.eqIfPresent(CustomerDO::getCity, reqVO.getCity())
.eqIfPresent(CustomerDO::getCountry, reqVO.getCountry())
.eqIfPresent(CustomerDO::getAddress, reqVO.getAddress())
.eqIfPresent(CustomerDO::getPhone, reqVO.getPhone())
.eqIfPresent(CustomerDO::getCompanyFax, reqVO.getCompanyFax())
.eqIfPresent(CustomerDO::getCompanyHttp, reqVO.getCompanyHttp())
.eqIfPresent(CustomerDO::getCompanyProfile, reqVO.getCompanyProfile())
.eqIfPresent(CustomerDO::getCustomerStatus, reqVO.getCustomerStatus())
.eqIfPresent(CustomerDO::getSocialInformationCodeCertificate, reqVO.getSocialInformationCodeCertificate())
.eqIfPresent(CustomerDO::getLegalRepresentativesPhoto, reqVO.getLegalRepresentativesPhoto())
.eqIfPresent(CustomerDO::getProofPaidCapital, reqVO.getProofPaidCapital())
.eqIfPresent(CustomerDO::getAssetCertificate, reqVO.getAssetCertificate())
.eqIfPresent(CustomerDO::getAssetCertificateMortgage, reqVO.getAssetCertificateMortgage())
.eqIfPresent(CustomerDO::getGuarantorCertificate, reqVO.getGuarantorCertificate())
.eqIfPresent(CustomerDO::getBusinessScope, reqVO.getBusinessScope())
.betweenIfPresent(CustomerDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(CustomerDO::getCreateTime, reqVO.getCreateTime())
.betweenIfPresent(CustomerDO::getUpdateTime, reqVO.getUpdateTime()) .eqIfPresent(CustomerDO::getIndustryClassify, reqVO.getIndustryClassify())
.eqIfPresent(CustomerDO::getOtherQualifications, reqVO.getOtherQualifications())
.orderByDesc(CustomerDO::getId)); .orderByDesc(CustomerDO::getId));
} }
default List<CustomerDO> selectList(CustomerExportReqVO reqVO) { default List<CustomerDO> selectList(CustomerExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CustomerDO>() return selectList(new LambdaQueryWrapperX<CustomerDO>()
.eqIfPresent(CustomerDO::getCustomerCalssify, reqVO.getCustomerCalssify())
.likeIfPresent(CustomerDO::getCustomerName, reqVO.getCustomerName()) .likeIfPresent(CustomerDO::getCustomerName, reqVO.getCustomerName())
.eqIfPresent(CustomerDO::getCustomerType, reqVO.getCustomerType()) .eqIfPresent(CustomerDO::getCustomerLogo, reqVO.getCustomerLogo())
.eqIfPresent(CustomerDO::getUnifiedSettlement, reqVO.getUnifiedSettlement()) .eqIfPresent(CustomerDO::getEnterpriseNature, reqVO.getEnterpriseNature())
.eqIfPresent(CustomerDO::getCustomerNature, reqVO.getCustomerNature()) .eqIfPresent(CustomerDO::getCustomerSource, reqVO.getCustomerSource())
.eqIfPresent(CustomerDO::getCooperationMode, reqVO.getCooperationMode()) .eqIfPresent(CustomerDO::getCustomerStarrating, reqVO.getCustomerStarrating())
.eqIfPresent(CustomerDO::getLinebusinessId, reqVO.getLinebusinessId()) .eqIfPresent(CustomerDO::getIndustrySchedule, reqVO.getIndustrySchedule())
.eqIfPresent(CustomerDO::getStatus, reqVO.getStatus()) .eqIfPresent(CustomerDO::getBelongingPeople, reqVO.getBelongingPeople())
.eqIfPresent(CustomerDO::getCity, reqVO.getCity())
.eqIfPresent(CustomerDO::getCountry, reqVO.getCountry())
.eqIfPresent(CustomerDO::getAddress, reqVO.getAddress())
.eqIfPresent(CustomerDO::getPhone, reqVO.getPhone())
.eqIfPresent(CustomerDO::getCompanyFax, reqVO.getCompanyFax())
.eqIfPresent(CustomerDO::getCompanyHttp, reqVO.getCompanyHttp())
.eqIfPresent(CustomerDO::getCompanyProfile, reqVO.getCompanyProfile())
.eqIfPresent(CustomerDO::getCustomerStatus, reqVO.getCustomerStatus())
.eqIfPresent(CustomerDO::getSocialInformationCodeCertificate, reqVO.getSocialInformationCodeCertificate())
.eqIfPresent(CustomerDO::getLegalRepresentativesPhoto, reqVO.getLegalRepresentativesPhoto())
.eqIfPresent(CustomerDO::getProofPaidCapital, reqVO.getProofPaidCapital())
.eqIfPresent(CustomerDO::getAssetCertificate, reqVO.getAssetCertificate())
.eqIfPresent(CustomerDO::getAssetCertificateMortgage, reqVO.getAssetCertificateMortgage())
.eqIfPresent(CustomerDO::getGuarantorCertificate, reqVO.getGuarantorCertificate())
.eqIfPresent(CustomerDO::getBusinessScope, reqVO.getBusinessScope())
.betweenIfPresent(CustomerDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(CustomerDO::getCreateTime, reqVO.getCreateTime())
.betweenIfPresent(CustomerDO::getUpdateTime, reqVO.getUpdateTime()) .eqIfPresent(CustomerDO::getIndustryClassify, reqVO.getIndustryClassify())
.eqIfPresent(CustomerDO::getOtherQualifications, reqVO.getOtherQualifications())
.orderByDesc(CustomerDO::getId)); .orderByDesc(CustomerDO::getId));
} }
default List<CustomerDO> selectcustomerList(CustomerRespVO reqVO) {
return selectList(new LambdaQueryWrapperX<CustomerDO>()
.likeIfPresent(CustomerDO::getCustomerName, reqVO.getCustomerName())
.eqIfPresent(CustomerDO::getStatus, reqVO.getStatus()));
}
} }

@ -9,7 +9,7 @@ import com.yunxi.scm.framework.common.pojo.PageResult;
/** /**
* Service * Service
* *
* @author * @author
*/ */
public interface CustomerService { public interface CustomerService {
@ -67,11 +67,4 @@ public interface CustomerService {
*/ */
List<CustomerDO> getCustomerList(CustomerExportReqVO exportReqVO); List<CustomerDO> getCustomerList(CustomerExportReqVO exportReqVO);
/**
*
*
*
* @return
*/
List<CustomerDO> getCustomerstaus(CustomerRespVO customerRespVO);
} }

@ -18,7 +18,7 @@ import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
/** /**
* Service * Service
* *
* @author * @author
*/ */
@Service @Service
@Validated @Validated
@ -79,9 +79,4 @@ public class CustomerServiceImpl implements CustomerService {
return customerMapper.selectList(exportReqVO); return customerMapper.selectList(exportReqVO);
} }
@Override
public List<CustomerDO> getCustomerstaus(CustomerRespVO customerRespVO) {
return customerMapper.selectcustomerList(customerRespVO);
}
} }

@ -2,9 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.customer.CustomerMapper"> <mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.customer.CustomerMapper">
<select id="queryCustomerTree" resultType="com.yunxi.scm.module.xxjj.dal.dataobject.customer.CustomerDO"> <!--
select id,customer_name as name from xxjj_customer 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
where linebusiness_id = #{id} 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
</select> 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper> </mapper>

@ -31,7 +31,7 @@ import static org.mockito.Mockito.*;
/** /**
* {@link CustomerServiceImpl} * {@link CustomerServiceImpl}
* *
* @author * @author
*/ */
@Import(CustomerServiceImpl.class) @Import(CustomerServiceImpl.class)
public class CustomerServiceImplTest extends BaseDbUnitTest { public class CustomerServiceImplTest extends BaseDbUnitTest {
@ -110,50 +110,114 @@ public class CustomerServiceImplTest extends BaseDbUnitTest {
public void testGetCustomerPage() { public void testGetCustomerPage() {
// mock 数据 // mock 数据
CustomerDO dbCustomer = randomPojo(CustomerDO.class, o -> { // 等会查询到 CustomerDO dbCustomer = randomPojo(CustomerDO.class, o -> { // 等会查询到
o.setCustomerCalssify(null);
o.setCustomerName(null); o.setCustomerName(null);
o.setCustomerType(null); o.setCustomerLogo(null);
o.setUnifiedSettlement(null); o.setEnterpriseNature(null);
o.setCustomerNature(null); o.setCustomerSource(null);
o.setCooperationMode(null); o.setCustomerStarrating(null);
o.setLinebusinessId(null); o.setIndustrySchedule(null);
o.setStatus(null);
o.setBelongingPeople(null); o.setBelongingPeople(null);
o.setCity(null);
o.setCountry(null);
o.setAddress(null);
o.setPhone(null);
o.setCompanyFax(null);
o.setCompanyHttp(null);
o.setCompanyProfile(null);
o.setCustomerStatus(null);
o.setSocialInformationCodeCertificate(null);
o.setLegalRepresentativesPhoto(null);
o.setProofPaidCapital(null);
o.setAssetCertificate(null);
o.setAssetCertificateMortgage(null);
o.setGuarantorCertificate(null);
o.setBusinessScope(null);
o.setCreateTime(null); o.setCreateTime(null);
o.setUpdateTime(null); o.setIndustryClassify(null);
o.setOtherQualifications(null);
}); });
customerMapper.insert(dbCustomer); customerMapper.insert(dbCustomer);
// 测试 customerCalssify 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerCalssify(null)));
// 测试 customerName 不匹配 // 测试 customerName 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerName(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerName(null)));
// 测试 customerType 不匹配 // 测试 customerLogo 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerType(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerLogo(null)));
// 测试 unifiedSettlement 不匹配 // 测试 enterpriseNature 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setUnifiedSettlement(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setEnterpriseNature(null)));
// 测试 customerNature 不匹配 // 测试 customerSource 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerNature(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerSource(null)));
// 测试 cooperationMode 不匹配 // 测试 customerStarrating 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCooperationMode(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerStarrating(null)));
// 测试 linebusinessId 不匹配 // 测试 industrySchedule 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setLinebusinessId(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setIndustrySchedule(null)));
// 测试 status 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setStatus(null)));
// 测试 belongingPeople 不匹配 // 测试 belongingPeople 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBelongingPeople(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBelongingPeople(null)));
// 测试 city 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCity(null)));
// 测试 country 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCountry(null)));
// 测试 address 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAddress(null)));
// 测试 phone 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setPhone(null)));
// 测试 companyFax 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyFax(null)));
// 测试 companyHttp 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyHttp(null)));
// 测试 companyProfile 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyProfile(null)));
// 测试 customerStatus 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerStatus(null)));
// 测试 socialInformationCodeCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setSocialInformationCodeCertificate(null)));
// 测试 legalRepresentativesPhoto 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setLegalRepresentativesPhoto(null)));
// 测试 proofPaidCapital 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setProofPaidCapital(null)));
// 测试 assetCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAssetCertificate(null)));
// 测试 assetCertificateMortgage 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAssetCertificateMortgage(null)));
// 测试 guarantorCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setGuarantorCertificate(null)));
// 测试 businessScope 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBusinessScope(null)));
// 测试 createTime 不匹配 // 测试 createTime 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCreateTime(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCreateTime(null)));
// 测试 updateTime 不匹配 // 测试 industryClassify 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setUpdateTime(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setIndustryClassify(null)));
// 测试 otherQualifications 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setOtherQualifications(null)));
// 准备参数 // 准备参数
CustomerPageReqVO reqVO = new CustomerPageReqVO(); CustomerPageReqVO reqVO = new CustomerPageReqVO();
reqVO.setCustomerCalssify(null);
reqVO.setCustomerName(null); reqVO.setCustomerName(null);
reqVO.setCustomerType(null); reqVO.setCustomerLogo(null);
reqVO.setUnifiedSettlement(null); reqVO.setEnterpriseNature(null);
reqVO.setCustomerNature(null); reqVO.setCustomerSource(null);
reqVO.setCooperationMode(null); reqVO.setCustomerStarrating(null);
reqVO.setLinebusinessId(null); reqVO.setIndustrySchedule(null);
reqVO.setStatus(null); reqVO.setBelongingPeople(null);
// reqVO.setBelongingPeople(null); reqVO.setCity(null);
reqVO.setCountry(null);
reqVO.setAddress(null);
reqVO.setPhone(null);
reqVO.setCompanyFax(null);
reqVO.setCompanyHttp(null);
reqVO.setCompanyProfile(null);
reqVO.setCustomerStatus(null);
reqVO.setSocialInformationCodeCertificate(null);
reqVO.setLegalRepresentativesPhoto(null);
reqVO.setProofPaidCapital(null);
reqVO.setAssetCertificate(null);
reqVO.setAssetCertificateMortgage(null);
reqVO.setGuarantorCertificate(null);
reqVO.setBusinessScope(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setUpdateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setIndustryClassify(null);
reqVO.setOtherQualifications(null);
// 调用 // 调用
PageResult<CustomerDO> pageResult = customerService.getCustomerPage(reqVO); PageResult<CustomerDO> pageResult = customerService.getCustomerPage(reqVO);
@ -168,50 +232,114 @@ public class CustomerServiceImplTest extends BaseDbUnitTest {
public void testGetCustomerList() { public void testGetCustomerList() {
// mock 数据 // mock 数据
CustomerDO dbCustomer = randomPojo(CustomerDO.class, o -> { // 等会查询到 CustomerDO dbCustomer = randomPojo(CustomerDO.class, o -> { // 等会查询到
o.setCustomerCalssify(null);
o.setCustomerName(null); o.setCustomerName(null);
o.setCustomerType(null); o.setCustomerLogo(null);
o.setUnifiedSettlement(null); o.setEnterpriseNature(null);
o.setCustomerNature(null); o.setCustomerSource(null);
o.setCooperationMode(null); o.setCustomerStarrating(null);
o.setLinebusinessId(null); o.setIndustrySchedule(null);
o.setStatus(null);
o.setBelongingPeople(null); o.setBelongingPeople(null);
o.setCity(null);
o.setCountry(null);
o.setAddress(null);
o.setPhone(null);
o.setCompanyFax(null);
o.setCompanyHttp(null);
o.setCompanyProfile(null);
o.setCustomerStatus(null);
o.setSocialInformationCodeCertificate(null);
o.setLegalRepresentativesPhoto(null);
o.setProofPaidCapital(null);
o.setAssetCertificate(null);
o.setAssetCertificateMortgage(null);
o.setGuarantorCertificate(null);
o.setBusinessScope(null);
o.setCreateTime(null); o.setCreateTime(null);
o.setUpdateTime(null); o.setIndustryClassify(null);
o.setOtherQualifications(null);
}); });
customerMapper.insert(dbCustomer); customerMapper.insert(dbCustomer);
// 测试 customerCalssify 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerCalssify(null)));
// 测试 customerName 不匹配 // 测试 customerName 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerName(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerName(null)));
// 测试 customerType 不匹配 // 测试 customerLogo 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerType(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerLogo(null)));
// 测试 unifiedSettlement 不匹配 // 测试 enterpriseNature 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setUnifiedSettlement(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setEnterpriseNature(null)));
// 测试 customerNature 不匹配 // 测试 customerSource 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerNature(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerSource(null)));
// 测试 cooperationMode 不匹配 // 测试 customerStarrating 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCooperationMode(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerStarrating(null)));
// 测试 linebusinessId 不匹配 // 测试 industrySchedule 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setLinebusinessId(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setIndustrySchedule(null)));
// 测试 status 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setStatus(null)));
// 测试 belongingPeople 不匹配 // 测试 belongingPeople 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBelongingPeople(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBelongingPeople(null)));
// 测试 city 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCity(null)));
// 测试 country 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCountry(null)));
// 测试 address 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAddress(null)));
// 测试 phone 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setPhone(null)));
// 测试 companyFax 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyFax(null)));
// 测试 companyHttp 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyHttp(null)));
// 测试 companyProfile 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCompanyProfile(null)));
// 测试 customerStatus 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCustomerStatus(null)));
// 测试 socialInformationCodeCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setSocialInformationCodeCertificate(null)));
// 测试 legalRepresentativesPhoto 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setLegalRepresentativesPhoto(null)));
// 测试 proofPaidCapital 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setProofPaidCapital(null)));
// 测试 assetCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAssetCertificate(null)));
// 测试 assetCertificateMortgage 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setAssetCertificateMortgage(null)));
// 测试 guarantorCertificate 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setGuarantorCertificate(null)));
// 测试 businessScope 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setBusinessScope(null)));
// 测试 createTime 不匹配 // 测试 createTime 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCreateTime(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setCreateTime(null)));
// 测试 updateTime 不匹配 // 测试 industryClassify 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setUpdateTime(null))); customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setIndustryClassify(null)));
// 测试 otherQualifications 不匹配
customerMapper.insert(cloneIgnoreId(dbCustomer, o -> o.setOtherQualifications(null)));
// 准备参数 // 准备参数
CustomerExportReqVO reqVO = new CustomerExportReqVO(); CustomerExportReqVO reqVO = new CustomerExportReqVO();
reqVO.setCustomerCalssify(null);
reqVO.setCustomerName(null); reqVO.setCustomerName(null);
reqVO.setCustomerType(null); reqVO.setCustomerLogo(null);
reqVO.setUnifiedSettlement(null); reqVO.setEnterpriseNature(null);
reqVO.setCustomerNature(null); reqVO.setCustomerSource(null);
reqVO.setCooperationMode(null); reqVO.setCustomerStarrating(null);
reqVO.setLinebusinessId(null); reqVO.setIndustrySchedule(null);
reqVO.setStatus(null);
reqVO.setBelongingPeople(null); reqVO.setBelongingPeople(null);
reqVO.setCity(null);
reqVO.setCountry(null);
reqVO.setAddress(null);
reqVO.setPhone(null);
reqVO.setCompanyFax(null);
reqVO.setCompanyHttp(null);
reqVO.setCompanyProfile(null);
reqVO.setCustomerStatus(null);
reqVO.setSocialInformationCodeCertificate(null);
reqVO.setLegalRepresentativesPhoto(null);
reqVO.setProofPaidCapital(null);
reqVO.setAssetCertificate(null);
reqVO.setAssetCertificateMortgage(null);
reqVO.setGuarantorCertificate(null);
reqVO.setBusinessScope(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
reqVO.setUpdateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setIndustryClassify(null);
reqVO.setOtherQualifications(null);
// 调用 // 调用
List<CustomerDO> list = customerService.getCustomerList(reqVO); List<CustomerDO> list = customerService.getCustomerList(reqVO);

Loading…
Cancel
Save