Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
5328aab6
提交
5328aab6
authored
12月 24, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
部分功能实现
上级
ce814d3d
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
626 行增加
和
1 行删除
+626
-1
InvoiceType.java
...rc/main/java/org/dromara/server/constant/InvoiceType.java
+13
-0
CrmAddressController.java
...a/org/dromara/server/controller/CrmAddressController.java
+10
-0
CrmInvoiceHeaderController.java
...dromara/server/controller/CrmInvoiceHeaderController.java
+101
-0
CrmAddress.java
...r/src/main/java/org/dromara/server/domain/CrmAddress.java
+7
-0
CrmInvoiceHeader.java
...main/java/org/dromara/server/domain/CrmInvoiceHeader.java
+99
-0
CrmAddressBo.java
.../main/java/org/dromara/server/domain/bo/CrmAddressBo.java
+5
-0
CrmInvoiceHeaderBo.java
...java/org/dromara/server/domain/bo/CrmInvoiceHeaderBo.java
+95
-0
CrmAddressVo.java
.../main/java/org/dromara/server/domain/vo/CrmAddressVo.java
+9
-0
CrmInvoiceHeaderVo.java
...java/org/dromara/server/domain/vo/CrmInvoiceHeaderVo.java
+110
-0
CrmInvoiceHeaderMapper.java
...ava/org/dromara/server/mapper/CrmInvoiceHeaderMapper.java
+15
-0
ICrmAddressService.java
...n/java/org/dromara/server/service/ICrmAddressService.java
+7
-1
ICrmInvoiceHeaderService.java
.../org/dromara/server/service/ICrmInvoiceHeaderService.java
+17
-0
CrmAddressServiceImpl.java
...rg/dromara/server/service/impl/CrmAddressServiceImpl.java
+40
-0
CrmInvoiceHeaderServiceImpl.java
...mara/server/service/impl/CrmInvoiceHeaderServiceImpl.java
+91
-0
CrmInvoiceHeaderMapper.xml
...c/main/resources/mapper/server/CrmInvoiceHeaderMapper.xml
+7
-0
没有找到文件。
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/InvoiceType.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
constant
;
/**
* @author wenhe
*/
public
enum
InvoiceType
{
//企业
ENTERPRISE
,
//个人
PERSONAL
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/CrmAddressController.java
浏览文件 @
5328aab6
...
...
@@ -77,6 +77,16 @@ public class CrmAddressController extends BaseController {
return
toAjax
(
crmAddressService
.
insertByBo
(
bo
));
}
/**
* 设为默认
*/
@Log
(
title
=
"crm-常用地址-设为默认"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
setDefault
(
@RequestBody
Long
id
)
{
return
toAjax
(
crmAddressService
.
setDefault
(
id
));
}
/**
* 修改crm-常用地址
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/CrmInvoiceHeaderController.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
controller
;
import
jakarta.validation.constraints.NotEmpty
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
org.dromara.common.idempotent.annotation.RepeatSubmit
;
import
org.dromara.common.log.annotation.Log
;
import
org.dromara.common.log.enums.BusinessType
;
import
org.dromara.common.mybatis.core.page.PageQuery
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.server.domain.bo.CrmInvoiceHeaderBo
;
import
org.dromara.server.domain.vo.CrmInvoiceHeaderVo
;
import
org.dromara.server.service.ICrmInvoiceHeaderService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* crm-发票抬头管理
* 前端访问路由地址为:/server/invoiceHeader
*
* @author hzh
* @date 2024-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/invoiceHeader"
)
public
class
CrmInvoiceHeaderController
extends
BaseController
{
private
final
ICrmInvoiceHeaderService
crmInvoiceHeaderService
;
/**
* 查询crm-发票抬头管理列表
*/
@GetMapping
(
"/list"
)
public
TableDataInfo
<
CrmInvoiceHeaderVo
>
list
(
PageQuery
pageQuery
)
{
CrmInvoiceHeaderBo
bo
=
new
CrmInvoiceHeaderBo
().
setUserId
(
LoginHelper
.
getUserId
());
return
crmInvoiceHeaderService
.
queryPageList
(
bo
,
pageQuery
);
}
/**
* 查询crm-发票抬头管理全量列表
*/
@GetMapping
(
"/listAll"
)
public
R
<
List
<
CrmInvoiceHeaderVo
>>
listAll
()
{
CrmInvoiceHeaderBo
bo
=
new
CrmInvoiceHeaderBo
().
setUserId
(
LoginHelper
.
getUserId
());
return
R
.
ok
(
crmInvoiceHeaderService
.
queryList
(
bo
));
}
/**
* 获取crm-发票抬头管理详细信息
*
* @param id 主键
*/
@GetMapping
(
"/{id}"
)
public
R
<
CrmInvoiceHeaderVo
>
getInfo
(
@NotNull
(
message
=
"主键不能为空"
)
@PathVariable
Long
id
)
{
return
R
.
ok
(
crmInvoiceHeaderService
.
queryById
(
id
));
}
/**
* 新增crm-发票抬头管理
*/
@Log
(
title
=
"crm-发票抬头管理"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
()
public
R
<
Void
>
add
(
@Validated
(
AddGroup
.
class
)
@RequestBody
CrmInvoiceHeaderBo
bo
)
{
bo
.
setUserId
(
LoginHelper
.
getUserId
());
return
toAjax
(
crmInvoiceHeaderService
.
insertByBo
(
bo
));
}
/**
* 修改crm-发票抬头管理
*/
@Log
(
title
=
"crm-发票抬头管理"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PutMapping
()
public
R
<
Void
>
edit
(
@Validated
(
EditGroup
.
class
)
@RequestBody
CrmInvoiceHeaderBo
bo
)
{
return
toAjax
(
crmInvoiceHeaderService
.
updateByBo
(
bo
));
}
/**
* 删除crm-发票抬头管理
*
* @param ids 主键串
*/
@Log
(
title
=
"crm-发票抬头管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
R
<
Void
>
remove
(
@NotEmpty
(
message
=
"主键不能为空"
)
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
crmInvoiceHeaderService
.
deleteWithValidByIds
(
List
.
of
(
ids
),
true
));
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/CrmAddress.java
浏览文件 @
5328aab6
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
java.io.Serial
;
...
...
@@ -17,6 +18,7 @@ import java.math.BigDecimal;
* @date 2024-12-24
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"crm_address"
)
public
class
CrmAddress
extends
TenantEntity
{
...
...
@@ -65,6 +67,11 @@ public class CrmAddress extends TenantEntity {
*/
private
String
remark
;
/**
* 是否为默认地址(布尔型,例如 0 表示否,1 表示是)
*/
private
Boolean
isDefault
;
/**
* 删除标志(0代表存在 2代表删除)
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/CrmInvoiceHeader.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
java.io.Serial
;
/**
* crm-发票抬头管理对象 crm_invoice_header
*
* @author hzh
* @date 2024-12-24
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"crm_invoice_header"
)
public
class
CrmInvoiceHeader
extends
TenantEntity
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
*/
@TableId
(
value
=
"id"
)
private
Long
id
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 发票类型
*/
private
String
invoiceType
;
/**
* 公司名称
*/
private
String
companyName
;
/**
* 税号
*/
private
String
taxId
;
/**
* 是否专票
*/
private
Boolean
isSpecialInvoice
;
/**
* 地址
*/
private
String
address
;
/**
* 联系电话
*/
private
String
phoneNumber
;
/**
* 邮箱
*/
private
String
email
;
/**
* 开户银行名称
*/
private
String
bankName
;
/**
* 银行账号
*/
private
String
bankAccount
;
/**
* 是否为默认抬头(布尔型,例如 0 表示否,1 表示是)
*/
private
Boolean
isDefault
;
/**
* 备注
*/
private
String
remark
;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private
String
delFlag
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/bo/CrmAddressBo.java
浏览文件 @
5328aab6
...
...
@@ -66,6 +66,11 @@ public class CrmAddressBo extends BaseEntity {
@NotBlank
(
message
=
"标签不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
tag
;
/**
* 是否为默认地址(布尔型,例如 0 表示否,1 表示是)
*/
private
Boolean
isDefault
;
/**
* 备注
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/bo/CrmInvoiceHeaderBo.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
domain
.
bo
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
jakarta.validation.constraints.NotBlank
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
org.dromara.common.mybatis.core.domain.BaseEntity
;
import
org.dromara.server.domain.CrmInvoiceHeader
;
/**
* crm-发票抬头管理业务对象 crm_invoice_header
*
* @author hzh
* @date 2024-12-24
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@AutoMapper
(
target
=
CrmInvoiceHeader
.
class
,
reverseConvertGenerate
=
false
)
public
class
CrmInvoiceHeaderBo
extends
BaseEntity
{
/**
* id
*/
@NotNull
(
message
=
"id不能为空"
,
groups
=
{
EditGroup
.
class
})
private
Long
id
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 发票类型
*/
@NotBlank
(
message
=
"发票类型不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
invoiceType
;
/**
* 公司名称
*/
@NotBlank
(
message
=
"公司名称不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
companyName
;
/**
* 税号
*/
private
String
taxId
;
/**
* 是否专票
*/
private
Boolean
isSpecialInvoice
;
/**
* 地址
*/
private
String
address
;
/**
* 联系电话
*/
private
String
phoneNumber
;
/**
* 邮箱
*/
private
String
email
;
/**
* 开户银行名称
*/
private
String
bankName
;
/**
* 银行账号
*/
private
String
bankAccount
;
/**
* 是否为默认抬头(布尔型,例如 0 表示否,1 表示是)
*/
private
Boolean
isDefault
;
/**
* 备注
*/
private
String
remark
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/CrmAddressVo.java
浏览文件 @
5328aab6
...
...
@@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
org.dromara.common.excel.annotation.ExcelDictFormat
;
import
org.dromara.common.excel.convert.ExcelDictConvert
;
import
org.dromara.server.domain.CrmAddress
;
import
java.io.Serial
;
...
...
@@ -67,6 +69,13 @@ public class CrmAddressVo implements Serializable {
@ExcelProperty
(
value
=
"标签"
)
private
String
tag
;
/**
* 是否为默认地址(布尔型,例如 0 表示否,1 表示是)
*/
@ExcelProperty
(
value
=
"是否为默认地址"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"布=尔型,例如,0=,表=示否,1,表=示是"
)
private
Boolean
isDefault
;
/**
* 备注
*/
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/CrmInvoiceHeaderVo.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
org.dromara.common.excel.annotation.ExcelDictFormat
;
import
org.dromara.common.excel.convert.ExcelDictConvert
;
import
org.dromara.server.domain.CrmInvoiceHeader
;
import
java.io.Serial
;
import
java.io.Serializable
;
/**
* crm-发票抬头管理视图对象 crm_invoice_header
*
* @author hzh
* @date 2024-12-24
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper
(
target
=
CrmInvoiceHeader
.
class
)
public
class
CrmInvoiceHeaderVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
*/
@ExcelProperty
(
value
=
"id"
)
private
Long
id
;
/**
* 用户id
*/
@ExcelProperty
(
value
=
"用户id"
)
private
Long
userId
;
/**
* 发票类型
*/
@ExcelProperty
(
value
=
"发票类型"
)
private
String
invoiceType
;
/**
* 公司名称
*/
@ExcelProperty
(
value
=
"公司名称"
)
private
String
companyName
;
/**
* 税号
*/
@ExcelProperty
(
value
=
"税号"
)
private
String
taxId
;
/**
* 是否专票
*/
@ExcelProperty
(
value
=
"是否专票"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"布=尔型,例如,0=,表=示否,1,表=示是"
)
private
Boolean
isSpecialInvoice
;
/**
* 地址
*/
@ExcelProperty
(
value
=
"地址"
)
private
String
address
;
/**
* 联系电话
*/
@ExcelProperty
(
value
=
"联系电话"
)
private
String
phoneNumber
;
/**
* 邮箱
*/
@ExcelProperty
(
value
=
"邮箱"
)
private
String
email
;
/**
* 开户银行名称
*/
@ExcelProperty
(
value
=
"开户银行名称"
)
private
String
bankName
;
/**
* 银行账号
*/
@ExcelProperty
(
value
=
"银行账号"
)
private
String
bankAccount
;
/**
* 是否为默认抬头(布尔型,例如 0 表示否,1 表示是)
*/
@ExcelProperty
(
value
=
"是否为默认抬头"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"布=尔型,例如,0=,表=示否,1,表=示是"
)
private
Boolean
isDefault
;
/**
* 备注
*/
@ExcelProperty
(
value
=
"备注"
)
private
String
remark
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/mapper/CrmInvoiceHeaderMapper.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
mapper
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.server.domain.CrmInvoiceHeader
;
import
org.dromara.server.domain.vo.CrmInvoiceHeaderVo
;
/**
* crm-发票抬头管理Mapper接口
*
* @author hzh
* @date 2024-12-24
*/
public
interface
CrmInvoiceHeaderMapper
extends
BaseMapperPlus
<
CrmInvoiceHeader
,
CrmInvoiceHeaderVo
>
{
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/ICrmAddressService.java
浏览文件 @
5328aab6
...
...
@@ -13,5 +13,11 @@ import org.dromara.server.domain.vo.CrmAddressVo;
*/
public
interface
ICrmAddressService
extends
IBaseService
<
CrmAddressVo
,
CrmAddressBo
,
CrmAddress
>
{
/**
* 设置为默认地址
*
* @param id id
* @return 是否成功
*/
boolean
setDefault
(
Long
id
);
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/ICrmInvoiceHeaderService.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
service
;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.server.domain.CrmInvoiceHeader
;
import
org.dromara.server.domain.bo.CrmInvoiceHeaderBo
;
import
org.dromara.server.domain.vo.CrmInvoiceHeaderVo
;
/**
* crm-发票抬头管理Service接口
*
* @author hzh
* @date 2024-12-24
*/
public
interface
ICrmInvoiceHeaderService
extends
IBaseService
<
CrmInvoiceHeaderVo
,
CrmInvoiceHeaderBo
,
CrmInvoiceHeader
>
{
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/CrmAddressServiceImpl.java
浏览文件 @
5328aab6
...
...
@@ -2,17 +2,22 @@ package org.dromara.server.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.base.Objects
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.server.domain.CrmAddress
;
import
org.dromara.server.domain.bo.CrmAddressBo
;
import
org.dromara.server.domain.vo.CrmAddressVo
;
import
org.dromara.server.mapper.CrmAddressMapper
;
import
org.dromara.server.service.ICrmAddressService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -37,6 +42,7 @@ public class CrmAddressServiceImpl extends AbstractBaseService<CrmAddressVo, Crm
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
CrmAddress
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
bo
.
getUserId
()
!=
null
,
CrmAddress:
:
getUserId
,
bo
.
getUserId
());
lqw
.
eq
(
bo
.
getIsDefault
()
!=
null
,
CrmAddress:
:
getIsDefault
,
bo
.
getIsDefault
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getAddress
()),
CrmAddress:
:
getAddress
,
bo
.
getAddress
());
lqw
.
like
(
StringUtils
.
isNotBlank
(
bo
.
getAddressName
()),
CrmAddress:
:
getAddressName
,
bo
.
getAddressName
());
lqw
.
eq
(
bo
.
getLatitude
()
!=
null
,
CrmAddress:
:
getLatitude
,
bo
.
getLatitude
());
...
...
@@ -45,4 +51,38 @@ public class CrmAddressServiceImpl extends AbstractBaseService<CrmAddressVo, Crm
return
lqw
;
}
@Override
public
void
validEntityBeforeSave
(
CrmAddress
entity
)
{
super
.
validEntityBeforeSave
(
entity
);
if
(
Boolean
.
TRUE
.
equals
(
entity
.
getIsDefault
()))
{
List
<
CrmAddress
>
list
=
baseMapper
.
selectList
(
buildQueryWrapper
(
new
CrmAddressBo
()
.
setUserId
(
LoginHelper
.
getUserId
())
.
setIsDefault
(
true
)));
CrmAddress
address
=
StreamUtils
.
findFirst
(
list
,
header
->
entity
.
getId
()
==
null
||
!
Objects
.
equal
(
header
.
getId
(),
entity
.
getId
()));
if
(
address
!=
null
)
{
throw
new
IllegalArgumentException
(
"只能有一个默认地址"
);
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
setDefault
(
Long
id
)
{
List
<
CrmAddress
>
list
=
baseMapper
.
selectList
(
buildQueryWrapper
(
new
CrmAddressBo
()
.
setUserId
(
LoginHelper
.
getUserId
())
.
setIsDefault
(
true
)));
list
.
forEach
(
address
->
{
address
.
setIsDefault
(
false
);
baseMapper
.
updateById
(
address
);
});
CrmAddress
address
=
baseMapper
.
selectById
(
id
);
if
(
address
==
null
)
{
throw
new
RuntimeException
(
"地址不存在"
);
}
address
.
setIsDefault
(
true
);
baseMapper
.
updateById
(
address
);
return
true
;
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/CrmInvoiceHeaderServiceImpl.java
0 → 100644
浏览文件 @
5328aab6
package
org
.
dromara
.
server
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.base.Objects
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.server.constant.InvoiceType
;
import
org.dromara.server.domain.CrmInvoiceHeader
;
import
org.dromara.server.domain.bo.CrmInvoiceHeaderBo
;
import
org.dromara.server.domain.vo.CrmInvoiceHeaderVo
;
import
org.dromara.server.mapper.CrmInvoiceHeaderMapper
;
import
org.dromara.server.service.ICrmInvoiceHeaderService
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* crm-发票抬头管理Service业务层处理
*
* @author hzh
* @date 2024-12-24
*/
@RequiredArgsConstructor
@Service
public
class
CrmInvoiceHeaderServiceImpl
extends
AbstractBaseService
<
CrmInvoiceHeaderVo
,
CrmInvoiceHeaderBo
,
CrmInvoiceHeader
>
implements
ICrmInvoiceHeaderService
{
private
final
CrmInvoiceHeaderMapper
baseMapper
;
@Override
public
BaseMapperPlus
<
CrmInvoiceHeader
,
CrmInvoiceHeaderVo
>
mapper
()
{
return
baseMapper
;
}
@Override
public
LambdaQueryWrapper
<
CrmInvoiceHeader
>
buildQueryWrapper
(
CrmInvoiceHeaderBo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
CrmInvoiceHeader
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
bo
.
getUserId
()
!=
null
,
CrmInvoiceHeader:
:
getUserId
,
bo
.
getUserId
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getInvoiceType
()),
CrmInvoiceHeader:
:
getInvoiceType
,
bo
.
getInvoiceType
());
lqw
.
like
(
StringUtils
.
isNotBlank
(
bo
.
getCompanyName
()),
CrmInvoiceHeader:
:
getCompanyName
,
bo
.
getCompanyName
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTaxId
()),
CrmInvoiceHeader:
:
getTaxId
,
bo
.
getTaxId
());
lqw
.
eq
(
bo
.
getIsSpecialInvoice
()
!=
null
,
CrmInvoiceHeader:
:
getIsSpecialInvoice
,
bo
.
getIsSpecialInvoice
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getAddress
()),
CrmInvoiceHeader:
:
getAddress
,
bo
.
getAddress
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getPhoneNumber
()),
CrmInvoiceHeader:
:
getPhoneNumber
,
bo
.
getPhoneNumber
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getEmail
()),
CrmInvoiceHeader:
:
getEmail
,
bo
.
getEmail
());
lqw
.
like
(
StringUtils
.
isNotBlank
(
bo
.
getBankName
()),
CrmInvoiceHeader:
:
getBankName
,
bo
.
getBankName
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getBankAccount
()),
CrmInvoiceHeader:
:
getBankAccount
,
bo
.
getBankAccount
());
lqw
.
eq
(
bo
.
getIsDefault
()
!=
null
,
CrmInvoiceHeader:
:
getIsDefault
,
bo
.
getIsDefault
());
return
lqw
;
}
@Override
public
void
validEntityBeforeSave
(
CrmInvoiceHeader
entity
)
{
super
.
validEntityBeforeSave
(
entity
);
if
(
StringUtils
.
equals
(
entity
.
getInvoiceType
(),
InvoiceType
.
ENTERPRISE
.
name
()))
{
if
(
StringUtils
.
isEmpty
(
entity
.
getTaxId
()))
{
throw
new
IllegalArgumentException
(
"企业类型发票抬头必须填写税号"
);
}
if
(
Boolean
.
TRUE
.
equals
(
entity
.
getIsSpecialInvoice
()))
{
if
(
StringUtils
.
isEmpty
(
entity
.
getAddress
()))
{
throw
new
IllegalArgumentException
(
"专票类型发票抬头必须填写公司地址"
);
}
if
(
StringUtils
.
isEmpty
(
entity
.
getPhoneNumber
()))
{
throw
new
IllegalArgumentException
(
"专票类型发票抬头必须填写公司电话"
);
}
if
(
StringUtils
.
isEmpty
(
entity
.
getBankName
()))
{
throw
new
IllegalArgumentException
(
"专票类型发票抬头必须填写银行名称"
);
}
if
(
StringUtils
.
isEmpty
(
entity
.
getBankAccount
()))
{
throw
new
IllegalArgumentException
(
"专票类型发票抬头必须填写银行账号"
);
}
}
}
if
(
Boolean
.
TRUE
.
equals
(
entity
.
getIsDefault
()))
{
List
<
CrmInvoiceHeader
>
list
=
baseMapper
.
selectList
(
buildQueryWrapper
(
new
CrmInvoiceHeaderBo
()
.
setUserId
(
LoginHelper
.
getUserId
())
.
setIsDefault
(
true
)));
CrmInvoiceHeader
cih
=
StreamUtils
.
findFirst
(
list
,
header
->
entity
.
getId
()
==
null
||
!
Objects
.
equal
(
header
.
getId
(),
entity
.
getId
()));
if
(
cih
!=
null
)
{
throw
new
IllegalArgumentException
(
"只能有一个默认发票抬头"
);
}
}
}
}
ruoyi-modules/ruoyi-server/src/main/resources/mapper/server/CrmInvoiceHeaderMapper.xml
0 → 100644
浏览文件 @
5328aab6
<?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=
"org.dromara.server.mapper.CrmInvoiceHeaderMapper"
>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论