Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
huang.tao
/
jmai-platform
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0f5a6a8c
authored
Sep 19, 2025
by
huangtao
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
physic
parent
5eaa647a
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
248 additions
and
287 deletions
jmai-sys/src/main/java/com/jmai/sys/controller/OrganizationController.java → jmai-sys/src/main/java/com/jmai/sys/controller/DeptController.java
jmai-sys/src/main/java/com/jmai/sys/dto/OrganizationCreateReq.java → jmai-sys/src/main/java/com/jmai/sys/dto/DeptCreateReq.java
jmai-sys/src/main/java/com/jmai/sys/dto/OrganizationDto.java → jmai-sys/src/main/java/com/jmai/sys/dto/DeptDto.java
jmai-sys/src/main/java/com/jmai/sys/dto/OrganizationQueryReq.java → jmai-sys/src/main/java/com/jmai/sys/dto/DeptQueryReq.java
jmai-sys/src/main/java/com/jmai/sys/dto/OrganizationUpdateReq.java → jmai-sys/src/main/java/com/jmai/sys/dto/DeptUpdateReq.java
jmai-sys/src/main/java/com/jmai/sys/dto/FullUserDto.java
jmai-sys/src/main/java/com/jmai/sys/dto/UserDto.java
jmai-sys/src/main/java/com/jmai/sys/dto/UserUpdateReq.java
jmai-sys/src/main/java/com/jmai/sys/entity/SysOrganization.java → jmai-sys/src/main/java/com/jmai/sys/entity/SysDept.java
jmai-sys/src/main/java/com/jmai/sys/entity/SysUser.java
jmai-sys/src/main/java/com/jmai/sys/entity/SysUserOrganization.java
jmai-sys/src/main/java/com/jmai/sys/exception/ErrorCode.java
jmai-sys/src/main/java/com/jmai/sys/mapper/SysUserOrganizationMapper.java → jmai-sys/src/main/java/com/jmai/sys/mapper/SysDeptMapper.java
jmai-sys/src/main/java/com/jmai/sys/mapper/SysOrganizationMapper.java
jmai-sys/src/main/java/com/jmai/sys/service/DeptService.java
jmai-sys/src/main/java/com/jmai/sys/service/OrganizationService.java
jmai-sys/src/main/java/com/jmai/sys/service/impl/DeptServiceImpl.java
jmai-sys/src/main/java/com/jmai/sys/service/impl/OrganizationServiceImpl.java
jmai-sys/src/main/java/com/jmai/sys/service/impl/UserServiceImpl.java
logs/jmai/root.log
jmai-sys/src/main/java/com/jmai/sys/controller/
Organization
Controller.java
→
jmai-sys/src/main/java/com/jmai/sys/controller/
Dept
Controller.java
View file @
0f5a6a8c
...
...
@@ -3,7 +3,7 @@ package com.jmai.sys.controller;
import
com.jmai.sys.aop.Auth
;
import
com.jmai.sys.dto.*
;
import
com.jmai.sys.service.
Organization
Service
;
import
com.jmai.sys.service.
Dept
Service
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -18,41 +18,41 @@ import java.util.List;
@Slf4j
@Auth
@RestController
@RequestMapping
(
"/
organization
"
)
@RequestMapping
(
"/
dept
"
)
@Api
(
tags
=
"组织"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
paramType
=
"header"
,
name
=
"Access-Token"
,
value
=
"凭证"
,
required
=
true
,
dataType
=
"string"
)})
public
class
Organization
Controller
{
public
class
Dept
Controller
{
@Resource
private
OrganizationService
organization
Service
;
private
DeptService
dept
Service
;
@PostMapping
(
"/list
Organization
"
)
@PostMapping
(
"/list
Dept
"
)
@ApiOperation
(
value
=
"查询组织列表"
,
notes
=
""
)
public
ResponseData
<
List
<
OrganizationDto
>>
listOrganization
(
@RequestBody
@Valid
Organization
QueryReq
req
)
{
List
<
OrganizationDto
>
page
=
organizationService
.
listOrganization
(
req
);
public
ResponseData
<
List
<
DeptDto
>>
listDept
(
@RequestBody
@Valid
Dept
QueryReq
req
)
{
List
<
DeptDto
>
page
=
deptService
.
listDept
(
req
);
return
ResponseData
.
ok
(
page
);
}
@PostMapping
(
"/get
Organization
"
)
@PostMapping
(
"/get
Dept
"
)
@ApiOperation
(
value
=
"获取组织信息"
,
notes
=
""
)
public
ResponseData
<
OrganizationDto
>
getOrganization
(
@RequestParam
(
"organizationId"
)
Long
organization
Id
)
{
OrganizationDto
dto
=
organizationService
.
getOrganizationOrThrow
(
organization
Id
);
public
ResponseData
<
DeptDto
>
getDept
(
@RequestParam
(
"deptId"
)
Long
dept
Id
)
{
DeptDto
dto
=
deptService
.
getDeptOrThrow
(
dept
Id
);
return
ResponseData
.
ok
(
dto
);
}
@PostMapping
(
"/create
Organization
"
)
@PostMapping
(
"/create
Dept
"
)
@ApiOperation
(
value
=
"创建组织"
,
notes
=
""
)
public
ResponseData
<
OrganizationDto
>
createWarehouse
(
@RequestBody
@Valid
Organization
CreateReq
req
)
{
OrganizationDto
dto
=
organizationService
.
createOrganization
(
req
);
public
ResponseData
<
DeptDto
>
createWarehouse
(
@RequestBody
@Valid
Dept
CreateReq
req
)
{
DeptDto
dto
=
deptService
.
createDept
(
req
);
return
ResponseData
.
ok
(
dto
);
}
@PostMapping
(
"/update
Organization
"
)
@PostMapping
(
"/update
Dept
"
)
@ApiOperation
(
value
=
"更新组织信息"
,
notes
=
""
)
public
ResponseData
<
OrganizationDto
>
updateWarehouse
(
@RequestBody
@Valid
Organization
UpdateReq
req
)
{
OrganizationDto
dto
=
organizationService
.
updateOrganization
(
req
);
public
ResponseData
<
DeptDto
>
updateWarehouse
(
@RequestBody
@Valid
Dept
UpdateReq
req
)
{
DeptDto
dto
=
deptService
.
updateDept
(
req
);
return
ResponseData
.
ok
(
dto
);
}
}
jmai-sys/src/main/java/com/jmai/sys/dto/
Organization
CreateReq.java
→
jmai-sys/src/main/java/com/jmai/sys/dto/
Dept
CreateReq.java
View file @
0f5a6a8c
...
...
@@ -10,11 +10,11 @@ import java.time.LocalDateTime;
@Data
@ApiModel
public
class
Organization
CreateReq
extends
BaseReq
{
public
class
Dept
CreateReq
extends
BaseReq
{
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
organization
Name
;
private
String
dept
Name
;
@ApiModelProperty
(
value
=
"备注描述"
)
private
String
remark
;
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/
Organization
Dto.java
→
jmai-sys/src/main/java/com/jmai/sys/dto/
Dept
Dto.java
View file @
0f5a6a8c
...
...
@@ -6,12 +6,12 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"组织"
)
public
class
Organization
Dto
{
public
class
Dept
Dto
{
@ApiModelProperty
(
value
=
"组织ID"
)
private
Long
organization
Id
;
private
Long
dept
Id
;
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
organization
Name
;
private
String
dept
Name
;
@ApiModelProperty
(
value
=
"层级"
)
private
Integer
level
;
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/
Organization
QueryReq.java
→
jmai-sys/src/main/java/com/jmai/sys/dto/
Dept
QueryReq.java
View file @
0f5a6a8c
...
...
@@ -14,12 +14,12 @@ import java.util.List;
*/
@Data
@ApiModel
public
class
Organization
QueryReq
extends
PageReq
{
public
class
Dept
QueryReq
extends
PageReq
{
@ApiModelProperty
(
value
=
"组织ID"
)
private
Long
organization
Id
;
private
Long
dept
Id
;
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
organization
Name
;
private
String
dept
Name
;
@ApiModelProperty
(
value
=
"层级"
)
private
Integer
level
;
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/
Organization
UpdateReq.java
→
jmai-sys/src/main/java/com/jmai/sys/dto/
Dept
UpdateReq.java
View file @
0f5a6a8c
...
...
@@ -9,13 +9,13 @@ import java.time.LocalDateTime;
@Data
@ApiModel
public
class
Organization
UpdateReq
extends
BaseReq
{
public
class
Dept
UpdateReq
extends
BaseReq
{
@ApiModelProperty
(
value
=
"组织ID"
)
private
Long
organization
Id
;
private
Long
dept
Id
;
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
organization
Name
;
private
String
dept
Name
;
@ApiModelProperty
(
value
=
"备注描述"
)
private
String
remark
;
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/FullUserDto.java
View file @
0f5a6a8c
...
...
@@ -18,15 +18,15 @@ import static com.jmai.sys.service.UserService.KEY_ALL;
@ApiModel
(
description
=
"用户信息"
)
public
class
FullUserDto
extends
UserDto
implements
IDataPerms
{
@ApiModelProperty
(
value
=
"授权组织(编号)列表(逗号隔开)"
)
private
String
organization
IdList
;
private
String
dept
IdList
;
@ApiModelProperty
(
value
=
"授权仓库/站点(名称)列表(逗号隔开)"
)
private
String
organization
NameList
;
private
String
dept
NameList
;
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
List
<
String
>
get
Organization
IdAsList
()
{
return
extractStringList
(
organization
IdList
);
public
List
<
String
>
get
Dept
IdAsList
()
{
return
extractStringList
(
dept
IdList
);
}
protected
List
<
String
>
extractStringList
(
String
input
)
{
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/UserDto.java
View file @
0f5a6a8c
...
...
@@ -28,15 +28,15 @@ public class UserDto extends BaseDto implements IStatus {
private
String
mobile
;
@ApiModelProperty
(
value
=
"组织"
)
private
String
auth
Organization
List
;
private
String
auth
Dept
List
;
@ApiModelProperty
(
value
=
"状态:0 - 禁用,1 - 启用"
)
private
Integer
status
;
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
List
<
Long
>
get
Organization
AsList
()
{
return
extractLongList
(
auth
Organization
List
);
public
List
<
Long
>
get
Dept
AsList
()
{
return
extractLongList
(
auth
Dept
List
);
}
...
...
jmai-sys/src/main/java/com/jmai/sys/dto/UserUpdateReq.java
View file @
0f5a6a8c
...
...
@@ -25,25 +25,25 @@ public class UserUpdateReq {
private
Long
userType
;
@ApiModelProperty
(
value
=
"组织(ID)列表(逗号隔开)"
)
private
Object
auth
Organization
List
;
private
Object
auth
Dept
List
;
@ApiModelProperty
(
value
=
"用户角色(ID)列表(逗号隔开)"
)
private
Object
roleList
;
@ApiModelProperty
(
value
=
"组织(ID)"
)
private
Long
organization
Id
;
private
Long
dept
Id
;
@ApiModelProperty
(
value
=
"状态:0 - 禁用,1 - 启用"
)
private
Integer
status
;
public
String
getAuth
Organization
List
()
{
return
getAuth
Organization
AsList
()
public
String
getAuth
Dept
List
()
{
return
getAuth
Dept
AsList
()
.
stream
()
.
map
(
String:
:
valueOf
)
.
collect
(
Collectors
.
joining
(
","
));
}
public
List
<
Long
>
getAuth
Organization
AsList
()
{
return
BaseService
.
extractLongList
(
auth
Organization
List
);
public
List
<
Long
>
getAuth
Dept
AsList
()
{
return
BaseService
.
extractLongList
(
auth
Dept
List
);
}
public
String
getRoleList
()
{
...
...
jmai-sys/src/main/java/com/jmai/sys/entity/Sys
Organization
.java
→
jmai-sys/src/main/java/com/jmai/sys/entity/Sys
Dept
.java
View file @
0f5a6a8c
...
...
@@ -9,10 +9,10 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"组织"
)
@TableName
(
"sys_
organization
"
)
public
class
Sys
Organization
extends
BaseVersionEntity
{
@TableName
(
"sys_
dept
"
)
public
class
Sys
Dept
extends
BaseVersionEntity
{
@ApiModelProperty
(
value
=
"组织名称"
)
private
String
organization
Name
;
private
String
dept
Name
;
@ApiModelProperty
(
value
=
"层级"
)
private
Integer
level
;
...
...
jmai-sys/src/main/java/com/jmai/sys/entity/SysUser.java
View file @
0f5a6a8c
...
...
@@ -28,10 +28,10 @@ public class SysUser extends BaseExtEntity implements IStatus {
private
Long
type
;
@ApiModelProperty
(
value
=
"组织(ID)列表(逗号隔开)"
)
private
String
auth
Organization
List
;
private
String
auth
Dept
List
;
@ApiModelProperty
(
value
=
"组织(ID)"
)
private
Long
organization
Id
;
private
Long
dept
Id
;
@ApiModelProperty
(
value
=
"用户类型(角色)列表(逗号隔开)"
)
private
String
roleList
;
...
...
@@ -39,8 +39,8 @@ public class SysUser extends BaseExtEntity implements IStatus {
@ApiModelProperty
(
value
=
"状态:0 - 禁用,1 - 启用"
)
private
Integer
status
;
public
List
<
Long
>
getAuth
Organization
AsList
()
{
return
BaseService
.
extractLongList
(
getAuth
Organization
List
());
public
List
<
Long
>
getAuth
Dept
AsList
()
{
return
BaseService
.
extractLongList
(
getAuth
Dept
List
());
}
public
List
<
Long
>
getRoleAsList
()
{
...
...
jmai-sys/src/main/java/com/jmai/sys/entity/SysUserOrganization.java
deleted
100644 → 0
View file @
5eaa647a
package
com
.
jmai
.
sys
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
description
=
"用户组织关系"
)
@TableName
(
"sys_user_organization"
)
public
class
SysUserOrganization
extends
BaseVersionEntity
{
@ApiModelProperty
(
value
=
"用户ID"
)
private
Long
userId
;
@ApiModelProperty
(
value
=
"组织ID"
)
private
String
organization_id
;
}
jmai-sys/src/main/java/com/jmai/sys/exception/ErrorCode.java
View file @
0f5a6a8c
...
...
@@ -69,8 +69,8 @@ public enum ErrorCode implements ServiceCode {
DEPT_DENIED
(
90105
,
"部门/科室数据权限未授权"
),
/* 仓库 */
ORGANIZATION
_NOT_FOUND
(
100001
,
"组织不存在"
),
ORGANIZATION
_NAME_EXISTED
(
100003
,
"组织名称已存在"
),
DEPT
_NOT_FOUND
(
100001
,
"组织不存在"
),
DEPT
_NAME_EXISTED
(
100003
,
"组织名称已存在"
),
/* 商品 */
PRODUCT_NOT_FOUND
(
200001
,
"无首营数据"
),
...
...
jmai-sys/src/main/java/com/jmai/sys/mapper/Sys
UserOrganization
Mapper.java
→
jmai-sys/src/main/java/com/jmai/sys/mapper/Sys
Dept
Mapper.java
View file @
0f5a6a8c
package
com
.
jmai
.
sys
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.jmai.sys.entity.SysOrganization
;
import
com.jmai.sys.entity.SysUserOrganization
;
import
com.jmai.sys.entity.SysDept
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
Sys
UserOrganizationMapper
extends
BaseMapper
<
SysUserOrganization
>
{
public
interface
Sys
DeptMapper
extends
BaseMapper
<
SysDept
>
{
}
jmai-sys/src/main/java/com/jmai/sys/mapper/SysOrganizationMapper.java
deleted
100644 → 0
View file @
5eaa647a
package
com
.
jmai
.
sys
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.jmai.sys.entity.SysMenu
;
import
com.jmai.sys.entity.SysOrganization
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Mapper
public
interface
SysOrganizationMapper
extends
BaseMapper
<
SysOrganization
>
{
}
jmai-sys/src/main/java/com/jmai/sys/service/DeptService.java
0 → 100644
View file @
0f5a6a8c
package
com
.
jmai
.
sys
.
service
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.jmai.api.exception.ServiceException
;
import
com.jmai.sys.dto.DeptCreateReq
;
import
com.jmai.sys.dto.DeptDto
;
import
com.jmai.sys.dto.DeptQueryReq
;
import
com.jmai.sys.dto.DeptUpdateReq
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
static
com
.
jmai
.
sys
.
exception
.
ErrorCode
.
DEPT_NOT_FOUND
;
public
interface
DeptService
{
Map
<
Long
,
DeptDto
>
getDeptMap
(
List
<
Long
>
deptIds
);
List
<
DeptDto
>
listDept
(
DeptQueryReq
req
);
default
DeptDto
getDeptOrThrow
(
Long
deptId
)
{
return
getDept
(
deptId
)
.
orElseThrow
(()
->
new
ServiceException
(
DEPT_NOT_FOUND
,
"部门:"
+
deptId
));
}
default
Optional
<
DeptDto
>
getDept
(
Long
deptId
)
{
DeptQueryReq
req
=
new
DeptQueryReq
();
req
.
setDeptId
(
deptId
);
List
<
DeptDto
>
list
=
listDept
(
req
);
return
selectOne
(
list
);
}
public
static
<
T
>
Optional
<
T
>
selectOne
(
List
<
T
>
list
)
{
if
(
ObjectUtil
.
isEmpty
(
list
))
{
return
Optional
.
empty
();
}
if
(
list
.
size
()
>
1
)
{
throw
new
ServiceException
(
"列表大于1"
);
}
return
Optional
.
of
(
list
.
get
(
0
));
}
DeptDto
createDept
(
DeptCreateReq
req
);
default
Optional
<
DeptDto
>
getDeptByName
(
String
deptName
)
{
DeptQueryReq
req
=
new
DeptQueryReq
();
req
.
setDeptName
(
deptName
);
List
<
DeptDto
>
list
=
listDept
(
req
);
return
selectOne
(
list
);
}
DeptDto
updateDept
(
DeptUpdateReq
req
);
}
jmai-sys/src/main/java/com/jmai/sys/service/OrganizationService.java
deleted
100644 → 0
View file @
5eaa647a
package
com
.
jmai
.
sys
.
service
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.jmai.api.exception.ServiceException
;
import
com.jmai.sys.dto.OrganizationCreateReq
;
import
com.jmai.sys.dto.OrganizationDto
;
import
com.jmai.sys.dto.OrganizationQueryReq
;
import
com.jmai.sys.dto.OrganizationUpdateReq
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
static
com
.
jmai
.
sys
.
exception
.
ErrorCode
.
ORGANIZATION_NOT_FOUND
;
public
interface
OrganizationService
{
Map
<
Long
,
OrganizationDto
>
getOrganizationMap
(
List
<
Long
>
organizationIds
);
List
<
OrganizationDto
>
listOrganization
(
OrganizationQueryReq
req
);
default
OrganizationDto
getOrganizationOrThrow
(
Long
organizationId
)
{
return
getOrganization
(
organizationId
)
.
orElseThrow
(()
->
new
ServiceException
(
ORGANIZATION_NOT_FOUND
,
":"
+
organizationId
));
}
default
Optional
<
OrganizationDto
>
getOrganization
(
Long
organizationId
)
{
OrganizationQueryReq
req
=
new
OrganizationQueryReq
();
req
.
setOrganizationId
(
organizationId
);
List
<
OrganizationDto
>
list
=
listOrganization
(
req
);
return
selectOne
(
list
);
}
public
static
<
T
>
Optional
<
T
>
selectOne
(
List
<
T
>
list
)
{
if
(
ObjectUtil
.
isEmpty
(
list
))
{
return
Optional
.
empty
();
}
if
(
list
.
size
()
>
1
)
{
throw
new
ServiceException
(
"列表大于1"
);
}
return
Optional
.
of
(
list
.
get
(
0
));
}
OrganizationDto
createOrganization
(
OrganizationCreateReq
req
);
default
Optional
<
OrganizationDto
>
getOrganizationByName
(
String
organizationName
)
{
OrganizationQueryReq
req
=
new
OrganizationQueryReq
();
req
.
setOrganizationName
(
organizationName
);
List
<
OrganizationDto
>
list
=
listOrganization
(
req
);
return
selectOne
(
list
);
}
OrganizationDto
updateOrganization
(
OrganizationUpdateReq
req
);
}
jmai-sys/src/main/java/com/jmai/sys/service/impl/DeptServiceImpl.java
0 → 100644
View file @
0f5a6a8c
package
com
.
jmai
.
sys
.
service
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.jmai.api.exception.ServiceException
;
import
com.jmai.sys.AbstractService
;
import
com.jmai.sys.dto.DeptCreateReq
;
import
com.jmai.sys.dto.DeptDto
;
import
com.jmai.sys.dto.DeptQueryReq
;
import
com.jmai.sys.dto.DeptUpdateReq
;
import
com.jmai.sys.entity.SysDept
;
import
com.jmai.sys.mapper.SysDeptMapper
;
import
com.jmai.sys.service.DeptService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
static
com
.
jmai
.
sys
.
exception
.
ErrorCode
.*;
@Slf4j
@Service
public
class
DeptServiceImpl
extends
AbstractService
implements
DeptService
{
@Resource
private
SysDeptMapper
sysDeptMapper
;
private
DeptDto
convertTo
(
SysDept
dept
)
{
if
(
ObjectUtil
.
isEmpty
(
dept
))
{
return
null
;
}
DeptDto
dto
=
copyTo
(
dept
,
new
DeptDto
());
dto
.
setDeptId
(
dept
.
getId
());
return
dto
;
}
public
Map
<
Long
,
DeptDto
>
getDeptMap
(
List
<
Long
>
deptIds
)
{
if
(
ObjectUtil
.
isEmpty
(
deptIds
))
{
return
Collections
.
emptyMap
();
}
deptIds
=
deptIds
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
List
<
SysDept
>
warehouseList
=
sysDeptMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SysDept
.
class
)
.
in
(
SysDept:
:
getId
,
deptIds
));
return
convertToMap
(
warehouseList
,
SysDept:
:
getId
,
this
::
convertTo
);
}
@Override
public
List
<
DeptDto
>
listDept
(
DeptQueryReq
req
){
Wrapper
<
SysDept
>
query
=
buildQuery
(
req
);
List
<
SysDept
>
depts
=
sysDeptMapper
.
selectList
(
query
);
return
convertTo
(
depts
,
this
::
convertTo
);
}
@Override
public
DeptDto
createDept
(
DeptCreateReq
req
)
{
Optional
<
DeptDto
>
existed
=
getDeptByName
(
req
.
getDeptName
());
if
(
existed
.
isPresent
())
{
throw
new
ServiceException
(
DEPT_NAME_EXISTED
,
":仓库名称="
+
req
.
getDeptName
());
}
SysDept
dept
=
copyTo
(
req
,
new
SysDept
());
if
(
ObjectUtil
.
isNotEmpty
(
req
.
getParentId
())){
DeptDto
deptOrThrow
=
getDeptOrThrow
(
req
.
getParentId
());
Integer
level
=
deptOrThrow
.
getLevel
();
dept
.
setLevel
(
level
+
1
);
}
sysDeptMapper
.
insert
(
dept
);
return
convertTo
(
dept
);
}
@Override
public
DeptDto
updateDept
(
DeptUpdateReq
req
)
{
SysDept
dept
=
sysDeptMapper
.
selectById
(
req
.
getDeptId
());
if
(
ObjectUtil
.
isEmpty
(
dept
))
{
throw
new
ServiceException
(
DEPT_NOT_FOUND
,
"部门="
+
req
.
getDeptId
());
}
if
(
ObjectUtil
.
isNotEmpty
(
req
.
getDeptName
())
&&
!
dept
.
getDeptName
().
equals
(
req
.
getDeptName
()))
{
Optional
<
DeptDto
>
existed
=
getDeptByName
(
req
.
getDeptName
());
if
(
existed
.
isPresent
())
{
throw
new
ServiceException
(
DEPT_NAME_EXISTED
,
":部门名称="
+
req
.
getDeptName
());
}
}
dept
=
copyTo
(
req
,
new
SysDept
());
sysDeptMapper
.
updateById
(
dept
);
return
convertTo
(
dept
);
}
private
Wrapper
<
SysDept
>
buildQuery
(
DeptQueryReq
req
)
{
return
Wrappers
.
lambdaQuery
(
SysDept
.
class
)
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getLevel
()),
SysDept:
:
getLevel
,
req
.
getLevel
())
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getDeptId
()),
SysDept:
:
getId
,
req
.
getDeptId
())
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getDeptName
()),
SysDept:
:
getDeptName
,
req
.
getDeptName
())
.
orderByDesc
(
SysDept:
:
getCreateTime
);
}
}
jmai-sys/src/main/java/com/jmai/sys/service/impl/OrganizationServiceImpl.java
deleted
100644 → 0
View file @
5eaa647a
package
com
.
jmai
.
sys
.
service
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.jmai.api.exception.ServiceException
;
import
com.jmai.sys.AbstractService
;
import
com.jmai.sys.dto.OrganizationCreateReq
;
import
com.jmai.sys.dto.OrganizationDto
;
import
com.jmai.sys.dto.OrganizationQueryReq
;
import
com.jmai.sys.dto.OrganizationUpdateReq
;
import
com.jmai.sys.entity.SysOrganization
;
import
com.jmai.sys.mapper.SysOrganizationMapper
;
import
com.jmai.sys.service.OrganizationService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
static
com
.
jmai
.
sys
.
exception
.
ErrorCode
.
ORGANIZATION_NAME_EXISTED
;
import
static
com
.
jmai
.
sys
.
exception
.
ErrorCode
.
ORGANIZATION_NOT_FOUND
;
@Slf4j
@Service
public
class
OrganizationServiceImpl
extends
AbstractService
implements
OrganizationService
{
@Resource
private
SysOrganizationMapper
sysOrganizationMapper
;
private
OrganizationDto
convertTo
(
SysOrganization
organization
)
{
if
(
ObjectUtil
.
isEmpty
(
organization
))
{
return
null
;
}
OrganizationDto
dto
=
copyTo
(
organization
,
new
OrganizationDto
());
dto
.
setOrganizationId
(
organization
.
getId
());
return
dto
;
}
public
Map
<
Long
,
OrganizationDto
>
getOrganizationMap
(
List
<
Long
>
organizationIds
)
{
if
(
ObjectUtil
.
isEmpty
(
organizationIds
))
{
return
Collections
.
emptyMap
();
}
organizationIds
=
organizationIds
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
List
<
SysOrganization
>
warehouseList
=
sysOrganizationMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SysOrganization
.
class
)
.
in
(
SysOrganization:
:
getId
,
organizationIds
));
return
convertToMap
(
warehouseList
,
SysOrganization:
:
getId
,
this
::
convertTo
);
}
@Override
public
List
<
OrganizationDto
>
listOrganization
(
OrganizationQueryReq
req
){
Wrapper
<
SysOrganization
>
query
=
buildQuery
(
req
);
List
<
SysOrganization
>
organizations
=
sysOrganizationMapper
.
selectList
(
query
);
return
convertTo
(
organizations
,
this
::
convertTo
);
}
@Override
public
OrganizationDto
createOrganization
(
OrganizationCreateReq
req
)
{
Optional
<
OrganizationDto
>
existed
=
getOrganizationByName
(
req
.
getOrganizationName
());
if
(
existed
.
isPresent
())
{
throw
new
ServiceException
(
ORGANIZATION_NAME_EXISTED
,
":仓库名称="
+
req
.
getOrganizationName
());
}
SysOrganization
organization
=
copyTo
(
req
,
new
SysOrganization
());
if
(
ObjectUtil
.
isNotEmpty
(
req
.
getParentId
())){
OrganizationDto
organizationOrThrow
=
getOrganizationOrThrow
(
req
.
getParentId
());
Integer
level
=
organizationOrThrow
.
getLevel
();
organization
.
setLevel
(
level
+
1
);
}
sysOrganizationMapper
.
insert
(
organization
);
return
convertTo
(
organization
);
}
@Override
public
OrganizationDto
updateOrganization
(
OrganizationUpdateReq
req
)
{
SysOrganization
organization
=
sysOrganizationMapper
.
selectById
(
req
.
getOrganizationId
());
if
(
ObjectUtil
.
isEmpty
(
organization
))
{
throw
new
ServiceException
(
ORGANIZATION_NOT_FOUND
,
"仓库="
+
req
.
getOrganizationId
());
}
if
(
ObjectUtil
.
isNotEmpty
(
req
.
getOrganizationName
())
&&
!
organization
.
getOrganizationName
().
equals
(
req
.
getOrganizationName
()))
{
Optional
<
OrganizationDto
>
existed
=
getOrganizationByName
(
req
.
getOrganizationName
());
if
(
existed
.
isPresent
())
{
throw
new
ServiceException
(
ORGANIZATION_NAME_EXISTED
,
":仓库名称="
+
req
.
getOrganizationName
());
}
}
organization
=
copyTo
(
req
,
new
SysOrganization
());
sysOrganizationMapper
.
updateById
(
organization
);
return
convertTo
(
organization
);
}
private
Wrapper
<
SysOrganization
>
buildQuery
(
OrganizationQueryReq
req
)
{
return
Wrappers
.
lambdaQuery
(
SysOrganization
.
class
)
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getLevel
()),
SysOrganization:
:
getLevel
,
req
.
getLevel
())
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getOrganizationId
()),
SysOrganization:
:
getId
,
req
.
getOrganizationId
())
.
eq
(
ObjectUtil
.
isNotEmpty
(
req
.
getOrganizationName
()),
SysOrganization:
:
getOrganizationName
,
req
.
getOrganizationName
())
.
orderByDesc
(
SysOrganization:
:
getCreateTime
);
}
}
jmai-sys/src/main/java/com/jmai/sys/service/impl/UserServiceImpl.java
View file @
0f5a6a8c
...
...
@@ -27,7 +27,7 @@ import com.jmai.sys.mapper.SysUserMapper;
import
com.jmai.sys.mapper.SysUserTokenMapper
;
import
com.jmai.sys.service.ConfigService
;
import
com.jmai.sys.service.DictService
;
import
com.jmai.sys.service.
Organization
Service
;
import
com.jmai.sys.service.
Dept
Service
;
import
com.jmai.sys.service.UserService
;
import
com.jmai.sys.util.PasswordUtil
;
import
lombok.Data
;
...
...
@@ -65,7 +65,7 @@ public class UserServiceImpl extends AbstractService implements UserService {
private
SysUserLoginMapper
userLoginMapper
;
@Resource
private
OrganizationService
organization
Service
;
private
DeptService
dept
Service
;
@Data
...
...
@@ -119,64 +119,64 @@ public class UserServiceImpl extends AbstractService implements UserService {
List
<
FullUserDto
>
dtoList
=
convertTo
(
userList
,
this
::
convertToFullUser
);
// 填充授权仓库名称
List
<
Long
>
organization
IdList
=
dtoList
.
stream
()
.
flatMap
(
user
->
user
.
get
Organization
AsList
().
stream
())
List
<
Long
>
dept
IdList
=
dtoList
.
stream
()
.
flatMap
(
user
->
user
.
get
Dept
AsList
().
stream
())
.
filter
(
ObjectUtil:
:
isNotEmpty
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
Map
<
Long
,
OrganizationDto
>
organizationMap
=
ObjectUtil
.
isEmpty
(
organization
IdList
)
?
Map
<
Long
,
DeptDto
>
deptMap
=
ObjectUtil
.
isEmpty
(
dept
IdList
)
?
Collections
.
emptyMap
()
:
organizationService
.
getOrganizationMap
(
organization
IdList
);
deptService
.
getDeptMap
(
dept
IdList
);
dtoList
.
forEach
(
dto
->
{
dto
.
set
OrganizationIdList
(
extractOrganizationIdList
(
dto
.
getAuthOrganizationList
(),
organization
Map
));
dto
.
set
OrganizationNameList
(
extractOrganizationNameList
(
dto
.
getAuthOrganizationList
(),
organization
Map
));
dto
.
set
DeptIdList
(
extractDeptIdList
(
dto
.
getAuthDeptList
(),
dept
Map
));
dto
.
set
DeptNameList
(
extractDeptNameList
(
dto
.
getAuthDeptList
(),
dept
Map
));
});
return
dtoList
;
}
private
String
extract
OrganizationIdList
(
String
userOrganizationList
,
Map
<
Long
,
OrganizationDto
>
organization
Map
)
{
if
(
ObjectUtil
.
isEmpty
(
user
Organization
List
))
{
private
String
extract
DeptIdList
(
String
userDeptList
,
Map
<
Long
,
DeptDto
>
dept
Map
)
{
if
(
ObjectUtil
.
isEmpty
(
user
Dept
List
))
{
// 无s授权住址
return
""
;
}
if
(
ObjectUtil
.
equals
(
user
Organization
List
,
KEY_ALL
))
{
if
(
ObjectUtil
.
equals
(
user
Dept
List
,
KEY_ALL
))
{
// 授权全部仓库
return
KEY_NAME_ALL
;
}
if
(
ObjectUtil
.
isEmpty
(
organization
Map
))
{
if
(
ObjectUtil
.
isEmpty
(
dept
Map
))
{
// 未找到仓库
return
user
Organization
List
;
return
user
Dept
List
;
}
return
extractLongList
(
user
Organization
List
)
return
extractLongList
(
user
Dept
List
)
.
stream
()
.
filter
(
organization
Map:
:
containsKey
)
.
filter
(
dept
Map:
:
containsKey
)
.
map
(
id
->
{
OrganizationDto
organization
=
organization
Map
.
get
(
id
);
return
ObjectUtil
.
isEmpty
(
organization
)
?
""
:
organization
.
getOrganization
Id
().
toString
();
DeptDto
dept
=
dept
Map
.
get
(
id
);
return
ObjectUtil
.
isEmpty
(
dept
)
?
""
:
dept
.
getDept
Id
().
toString
();
})
.
filter
(
StrUtil:
:
isNotBlank
)
.
collect
(
Collectors
.
joining
(
","
));
}
private
String
extract
OrganizationNameList
(
String
userOrganizationList
,
Map
<
Long
,
OrganizationDto
>
organization
Map
)
{
if
(
ObjectUtil
.
isEmpty
(
user
Organization
List
))
{
private
String
extract
DeptNameList
(
String
userDeptList
,
Map
<
Long
,
DeptDto
>
dept
Map
)
{
if
(
ObjectUtil
.
isEmpty
(
user
Dept
List
))
{
// 无s授权住址
return
""
;
}
if
(
ObjectUtil
.
equals
(
user
Organization
List
,
KEY_ALL
))
{
if
(
ObjectUtil
.
equals
(
user
Dept
List
,
KEY_ALL
))
{
// 授权全部仓库
return
KEY_NAME_ALL
;
}
if
(
ObjectUtil
.
isEmpty
(
organization
Map
))
{
if
(
ObjectUtil
.
isEmpty
(
dept
Map
))
{
// 未找到仓库
return
user
Organization
List
;
return
user
Dept
List
;
}
return
extractLongList
(
user
Organization
List
)
return
extractLongList
(
user
Dept
List
)
.
stream
()
.
filter
(
organization
Map:
:
containsKey
)
.
filter
(
dept
Map:
:
containsKey
)
.
map
(
id
->
{
OrganizationDto
organization
=
organization
Map
.
get
(
id
);
return
ObjectUtil
.
isEmpty
(
organization
)
?
""
:
organization
.
getOrganization
Name
();
DeptDto
dept
=
dept
Map
.
get
(
id
);
return
ObjectUtil
.
isEmpty
(
dept
)
?
""
:
dept
.
getDept
Name
();
})
.
filter
(
StrUtil:
:
isNotBlank
)
.
collect
(
Collectors
.
joining
(
","
));
...
...
@@ -342,8 +342,8 @@ public class UserServiceImpl extends AbstractService implements UserService {
user
.
setMobile
(
req
.
getMobile
());
updated
=
true
;
}
if
(
updated
(
req
.
get
OrganizationId
(),
user
.
getOrganization
Id
()))
{
user
.
set
OrganizationId
(
req
.
getOrganization
Id
());
if
(
updated
(
req
.
get
DeptId
(),
user
.
getDept
Id
()))
{
user
.
set
DeptId
(
req
.
getDept
Id
());
updated
=
true
;
}
...
...
@@ -369,13 +369,13 @@ public class UserServiceImpl extends AbstractService implements UserService {
user
.
setType
(
newUserType
.
getCode
());
updated
=
true
;
}
if
(!
CollectionUtil
.
disjunction
(
req
.
getAuth
OrganizationAsList
(),
user
.
getAuthOrganization
AsList
()).
isEmpty
())
{
user
.
setAuth
OrganizationList
(
Optional
.
ofNullable
(
req
.
getAuthOrganization
List
()).
orElse
(
""
));
if
(!
CollectionUtil
.
disjunction
(
req
.
getAuth
DeptAsList
(),
user
.
getAuthDept
AsList
()).
isEmpty
())
{
user
.
setAuth
DeptList
(
Optional
.
ofNullable
(
req
.
getAuthDept
List
()).
orElse
(
""
));
updated
=
true
;
}
if
(!
CollectionUtil
.
disjunction
(
req
.
getRoleAsList
(),
user
.
getRoleAsList
()).
isEmpty
())
{
user
.
setAuth
OrganizationList
(
Optional
.
ofNullable
(
req
.
getAuthOrganization
List
()).
orElse
(
""
));
user
.
setAuth
DeptList
(
Optional
.
ofNullable
(
req
.
getAuthDept
List
()).
orElse
(
""
));
updated
=
true
;
}
...
...
logs/jmai/root.log
View file @
0f5a6a8c
This diff could not be displayed because it is too large.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment