Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
c9950dcd
Commit
c9950dcd
authored
Mar 22, 2023
by
zhangsen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
平台新建用户、单位、部门同步至业务库
parent
abe470e2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
238 additions
and
1 deletion
+238
-1
PlatformUserTopicMessage.java
...os/boot/module/ugp/biz/emqx/PlatformUserTopicMessage.java
+88
-0
CompanyServiceImpl.java
.../boot/module/ugp/biz/service/impl/CompanyServiceImpl.java
+21
-1
OrgServiceImpl.java
...amos/boot/module/ugp/biz/service/impl/OrgServiceImpl.java
+129
-0
No files found.
amos-boot-system-ugp/amos-boot-module-ugp-biz/src/main/java/com/yeejoin/amos/boot/module/ugp/biz/emqx/PlatformUserTopicMessage.java
0 → 100644
View file @
c9950dcd
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ugp
.
biz
.
emqx
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.ugp.api.Enum.OrgEnum
;
import
com.yeejoin.amos.boot.module.ugp.biz.service.impl.CompanyServiceImpl
;
import
com.yeejoin.amos.boot.module.ugp.biz.service.impl.OrgServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.component.emq.EmqxListener
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
@Component
@EnableScheduling
@Slf4j
public
class
PlatformUserTopicMessage
extends
EmqxListener
{
@Resource
protected
EmqKeeper
emqKeeper
;
@Value
(
"${amos.operation.log:/amos/operation/log}"
)
private
String
amosOperationLog
;
@Resource
private
OrgServiceImpl
orgService
;
@PostConstruct
void
init
()
throws
Exception
{
emqKeeper
.
subscript
(
amosOperationLog
,
1
,
this
);
}
@Autowired
CompanyServiceImpl
companyService
;
@Value
(
"${amos.agency.code}"
)
String
amosAgencyCode
;
@Autowired
RedisUtils
redisUtil
;
@Value
(
"${amos.system.user.product:AMOS_STUDIO_WEB}"
)
String
product
;
@Value
(
"${amos.system.user.app-key:AMOS_STUDIO}"
)
String
appKey
;
@Override
public
void
processMessage
(
String
topic
,
MqttMessage
message
)
{
RequestContext
.
setAppKey
(
appKey
);
RequestContext
.
setProduct
(
product
);
RequestContext
.
setToken
(
String
.
valueOf
(
redisUtil
.
get
(
"platform_token"
)));
JSONObject
jsonObject
=
JSON
.
parseObject
(
message
.
toString
());
JSONObject
result
=
jsonObject
.
getJSONObject
(
"result"
);
JSONObject
dataResult
=
result
.
getJSONObject
(
"result"
);
String
path
=
result
.
getString
(
"path"
);
String
agencyCode
=
jsonObject
.
getString
(
"agencyCode"
);
if
(!
amosAgencyCode
.
equals
(
agencyCode
))
{
return
;
}
try
{
if
(
StringUtils
.
isNotEmpty
(
path
))
{
if
(
path
.
contains
(
"company"
))
{
orgService
.
saveOrUpdateUser
(
dataResult
,
OrgEnum
.
公司
.
getKey
());
companyService
.
saveOrUpdate
(
dataResult
);
}
else
if
(
path
.
contains
(
"department"
))
{
orgService
.
saveOrUpdateUser
(
dataResult
,
OrgEnum
.
部门
.
getKey
());
}
else
if
(
path
.
contains
(
"agencyuser"
))
{
orgService
.
saveOrUpdateUser
(
dataResult
,
OrgEnum
.
普通人员
.
getKey
());
}
}
}
catch
(
Exception
e
)
{
log
.
info
(
"平台同步消息失败:{}"
,
e
.
getMessage
());
e
.
printStackTrace
();
}
log
.
info
(
"平台推送消息同步完成"
);
}
}
amos-boot-system-ugp/amos-boot-module-ugp-biz/src/main/java/com/yeejoin/amos/boot/module/ugp/biz/service/impl/CompanyServiceImpl.java
View file @
c9950dcd
...
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.google.common.collect.Lists
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
...
...
@@ -27,6 +28,7 @@ import org.ehcache.shadow.org.terracotta.offheapstore.HashingMap;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
...
...
@@ -468,5 +470,22 @@ public class CompanyServiceImpl extends BaseService<CompanyDto, Company, Company
}
public
void
saveOrUpdate
(
JSONObject
jsonObject
)
{
QueryWrapper
<
Company
>
companyQueryWrapper
=
new
QueryWrapper
<>();
companyQueryWrapper
.
lambda
().
eq
(
Company:
:
getName
,
jsonObject
.
getString
(
"companyName"
));
companyQueryWrapper
.
lambda
().
eq
(
Company:
:
getIsDelete
,
Boolean
.
FALSE
);
Company
company
=
companyMapper
.
selectOne
(
companyQueryWrapper
);
if
(
ObjectUtils
.
isEmpty
(
company
))
{
company
=
new
Company
();
}
company
.
setRecDate
(
new
Date
());
company
.
setName
(
jsonObject
.
getString
(
"companyName"
));
company
.
setType
(
jsonObject
.
getString
(
"companyType"
));
company
.
setAddress
(
jsonObject
.
getString
(
"address"
));
company
.
setApproved
(
"1"
);
company
.
setOrgCode
(
jsonObject
.
getString
(
"orgCode"
));
company
.
setRecDate
(
new
Date
());
//存入数据
this
.
saveOrUpdate
(
company
);
}
}
\ No newline at end of file
amos-boot-system-ugp/amos-boot-module-ugp-biz/src/main/java/com/yeejoin/amos/boot/module/ugp/biz/service/impl/OrgServiceImpl.java
View file @
c9950dcd
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ugp
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -11,6 +12,7 @@ import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.biz.common.utils.TreeParser
;
import
com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.OrgusrDataxDto
;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn
;
...
...
@@ -22,9 +24,11 @@ import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import
com.yeejoin.amos.boot.module.ugp.api.Enum.OrgEnum
;
import
com.yeejoin.amos.boot.module.ugp.api.Enum.ProjectResourceEnum
;
import
com.yeejoin.amos.boot.module.ugp.api.constants.XJConstant
;
import
com.yeejoin.amos.boot.module.ugp.api.dto.CompanyDto
;
import
com.yeejoin.amos.boot.module.ugp.api.entity.Project
;
import
com.yeejoin.amos.boot.module.ugp.api.entity.ProjectResource
;
import
com.yeejoin.amos.boot.module.ugp.biz.framework.BusinessIdentify
;
import
com.yeejoin.amos.component.robot.BadRequest
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.DepartmentModel
;
...
...
@@ -32,7 +36,9 @@ import org.python.antlr.ast.If;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
org.typroject.tyboot.component.cache.Redis
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
...
...
@@ -62,6 +68,9 @@ public class OrgServiceImpl {
@Autowired
MaterialServiceImpl
materialServiceImpl
;
@Autowired
CompanyServiceImpl
companyServiceImpl
;
/**
* 保存或更新orgUsr信息和FormInstance实体信息
* sequenceNbr表示 若是更新动态表单,则传orgUsr表的sequenceNbr,
...
...
@@ -602,4 +611,124 @@ public class OrgServiceImpl {
.
eq
(
OrgUsr:
:
getBizOrgType
,
OrgEnum
.
普通人员
.
getKey
());
return
orgUsrServiceImpl
.
list
(
wrapper
);
}
/**
* 平台创建人员等操作更新 orgUsr表信息
*
*/
public
void
saveOrUpdateUser
(
JSONObject
jsonObject
,
String
orgType
)
{
String
amosOrgId
=
jsonObject
.
getString
(
"sequenceNbr"
);
LambdaQueryWrapper
<
OrgUsr
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
OrgUsr:
:
getAmosOrgId
,
amosOrgId
)
.
eq
(
OrgUsr:
:
getIsDelete
,
Boolean
.
FALSE
);
OrgUsr
one
=
orgUsrServiceImpl
.
getOne
(
wrapper
);
if
(
ObjectUtils
.
isEmpty
(
one
))
{
one
=
new
OrgUsr
();
}
OrgUsr
parentOne
=
new
OrgUsr
();
String
companyId
=
""
;
if
(
OrgEnum
.
普通人员
.
getKey
().
equals
(
orgType
))
{
JSONArray
companys
=
JSON
.
parseArray
(
JSON
.
toJSONString
(
jsonObject
.
get
(
"companys"
)));
if
(
CollectionUtils
.
isEmpty
(
companys
))
{
return
;
}
else
{
JSONObject
parentJson
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
companys
.
get
(
0
)));
companyId
=
parentJson
.
getString
(
"sequenceNbr"
);
}
}
else
{
companyId
=
jsonObject
.
getString
(
"myParentId"
);
}
if
(!
StringUtils
.
isEmpty
(
companyId
))
{
LambdaQueryWrapper
<
OrgUsr
>
wrapper2
=
new
LambdaQueryWrapper
<>();
wrapper2
.
eq
(
OrgUsr:
:
getAmosOrgId
,
companyId
)
.
eq
(
OrgUsr:
:
getIsDelete
,
Boolean
.
FALSE
);
parentOne
=
orgUsrServiceImpl
.
getOne
(
wrapper2
);
}
if
(!
OrgEnum
.
公司
.
getKey
().
equals
(
orgType
)
&&
ObjectUtils
.
isEmpty
(
parentOne
))
{
throw
new
BadRequest
(
"数据不完整"
);
}
one
.
setBizOrgName
(
jsonObject
.
getString
(
"userName"
));
if
(
StringUtils
.
isEmpty
(
one
.
getBizOrgCode
()))
{
if
(
OrgEnum
.
公司
.
getKey
().
equals
(
orgType
))
{
one
.
setBizOrgCode
(!
ObjectUtils
.
isEmpty
(
parentOne
)
?
parentOne
.
getBizOrgCode
()
+
getOrgCodeStr
()
:
getOrgCodeStr
());
}
else
if
(
OrgEnum
.
部门
.
getKey
().
equals
(
orgType
))
{
one
.
setBizOrgCode
(
parentOne
.
getBizOrgCode
()
+
getOrgCodeStr
());
}
else
if
(
OrgEnum
.
普通人员
.
getKey
().
equals
(
orgType
))
{
LambdaQueryWrapper
<
OrgUsr
>
wrapper3
=
new
LambdaQueryWrapper
<>();
wrapper3
.
eq
(
OrgUsr:
:
getAmosOrgId
,
companyId
)
.
eq
(
OrgUsr:
:
getIsDelete
,
Boolean
.
FALSE
);
OrgUsr
one1
=
orgUsrServiceImpl
.
getOne
(
wrapper3
);
one
.
setBizOrgCode
(
one1
.
getBizOrgCode
()
+
getOrgCodeStr
());
}
}
one
.
setAmosOrgId
(
amosOrgId
);
one
.
setAmosOrgCode
(
""
);
one
.
setBizOrgType
(
orgType
);
if
(
StringUtils
.
isEmpty
(
jsonObject
.
getString
(
"myParentId"
)))
{
one
.
setParentId
(
ObjectUtils
.
isEmpty
(
parentOne
)
?
null
:
String
.
valueOf
(
parentOne
.
getSequenceNbr
()));
}
orgUsrServiceImpl
.
saveOrUpdate
(
one
);
JSONObject
jsonObjectFormColumn
=
new
JSONObject
();
if
(
OrgEnum
.
公司
.
getKey
().
equals
(
orgType
))
{
jsonObjectFormColumn
.
put
(
"name"
,
jsonObject
.
getString
(
"companyName"
));
jsonObjectFormColumn
.
put
(
"type"
,
jsonObject
.
getString
(
"companyType"
));
jsonObjectFormColumn
.
put
(
"creditCode"
,
jsonObject
.
getString
(
"companyCode"
));
jsonObjectFormColumn
.
put
(
"address"
,
jsonObject
.
getString
(
"address"
));
jsonObjectFormColumn
.
put
(
"contact"
,
jsonObject
.
getString
(
"contact"
));
jsonObjectFormColumn
.
put
(
"contactPhone"
,
jsonObject
.
getString
(
"landlinePhone"
));
jsonObjectFormColumn
.
put
(
"orgCode"
,
jsonObject
.
getString
(
"orgCode"
));
}
else
if
(
OrgEnum
.
普通人员
.
getKey
().
equals
(
orgType
))
{
jsonObjectFormColumn
.
put
(
"name"
,
jsonObject
.
getString
(
"realName"
));
jsonObjectFormColumn
.
put
(
"phone"
,
jsonObject
.
getString
(
"mobile"
));
}
else
if
(
OrgEnum
.
部门
.
getKey
().
equals
(
orgType
))
{
jsonObjectFormColumn
.
put
(
"name"
,
one
.
getBizOrgName
());
}
//条件构造器 找出column表种 类型为(COMPANY 或 DEPARTMENT 或 PERSON)的列
LambdaQueryWrapper
<
DynamicFormColumn
>
wrapper2
=
new
LambdaQueryWrapper
<>();
wrapper2
.
eq
(
DynamicFormColumn:
:
getGroupCode
,
orgType
);
List
<
DynamicFormColumn
>
dynamicFormColumnList
=
dynamicFormColumnServiceImpl
.
list
(
wrapper2
);
List
<
DynamicFormInstance
>
dynamicFormInstanceList
=
new
ArrayList
<>();
Map
<
String
,
Long
>
map
=
new
HashMap
<>();
for
(
DynamicFormColumn
dynamicFormColumn
:
dynamicFormColumnList
)
{
//将column表的基本字段信息给instance表
DynamicFormInstance
dynamicFormInstance
=
new
DynamicFormInstance
();
BeanUtils
.
copyProperties
(
dynamicFormColumn
,
dynamicFormInstance
);
dynamicFormInstance
.
setFormColumnId
(
dynamicFormColumn
.
getSequenceNbr
());
//通过字段名去拿到表单传来的值
if
(
"image"
.
equals
(
dynamicFormColumn
.
getFieldCode
()))
{
if
(!
ValidationUtil
.
isEmpty
(
jsonObjectFormColumn
.
getJSONArray
(
dynamicFormInstance
.
getFieldCode
())))
{
dynamicFormInstance
.
setFieldValue
(
JSON
.
toJSONString
(
jsonObjectFormColumn
.
getJSONArray
(
dynamicFormInstance
.
getFieldCode
())));
}
}
else
{
dynamicFormInstance
.
setFieldValue
(
jsonObjectFormColumn
.
getString
(
dynamicFormInstance
.
getFieldCode
()));
}
dynamicFormInstance
.
setInstanceId
(
one
.
getSequenceNbr
());
dynamicFormInstance
.
setSequenceNbr
(
null
);
dynamicFormInstanceList
.
add
(
dynamicFormInstance
);
}
//如果sequenceNbr有值(更新)
if
(!
ValidationUtil
.
isEmpty
(
one
.
getSequenceNbr
()))
{
LambdaQueryWrapper
<
DynamicFormInstance
>
lambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
lambdaQueryWrapper
.
eq
(
DynamicFormInstance:
:
getInstanceId
,
one
.
getSequenceNbr
());
List
<
DynamicFormInstance
>
instanceList
=
alertFormValueServiceImpl
.
list
(
lambdaQueryWrapper
);
//如果instance表中有值
if
(!
ValidationUtil
.
isEmpty
(
instanceList
))
{
//将查到的instance信息装到map中
for
(
DynamicFormInstance
dynamicFormInstance
:
instanceList
)
{
map
.
put
(
dynamicFormInstance
.
getFieldCode
(),
dynamicFormInstance
.
getSequenceNbr
());
}
//将查到的instance信息中的sequenceNbr装到更新之后的表中。
for
(
DynamicFormInstance
dynamicFormInstance
:
dynamicFormInstanceList
)
{
dynamicFormInstance
.
setSequenceNbr
(
map
.
get
(
dynamicFormInstance
.
getFieldCode
()));
}
}
}
//保存或更新 根据sequenceNbr
alertFormValueServiceImpl
.
saveOrUpdateBatch
(
dynamicFormInstanceList
);
}
public
static
String
getOrgCodeStr
()
{
return
TreeParser
.
genTreeCode
();
}
}
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