Commit 69d2e15c authored by 王晓旭's avatar 王晓旭
parents e7ce7c84 c9526a85
......@@ -150,6 +150,9 @@
.pdl20{
padding-left:20px;
}
.pdr6{
padding-right:6px;
}
.pdr10{
padding-right:10px;
}
......
......@@ -99,3 +99,10 @@
align-items: center;
margin-bottom: 20px;
}
// .table-header{
// padding-right:6px;
// display: flex;
// align-items: center;
// justify-content:space-between;
// margin-bottom: 20px;
// }
\ No newline at end of file
......@@ -131,6 +131,9 @@ export default {
overflow-y: auto;
}
}
/deep/.ant-tabs-extra-content {
padding-right: 20px;
}
/deep/.ant-form-item {
align-items: flex-start;
}
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">设备应用黑名单</div>
<div class="control">
<div class="control pdr6">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<div class="business-control">
<a-space>
......@@ -84,7 +84,7 @@
<div>
<!-- <a-button type="primary" @click="handleAddAll"> 批量加入 </a-button> -->
</div>
<div class="business-control">
<div class="business-control pdr6">
<a-space>
<a-select
style="min-width: 120px"
......
<template>
<div class="data-update">
<!-- 头部 -->
<div class="header flex aic jcb mb20">
<div class="header flex aic jcb mb20 pdr6">
<a-button type="primary" @click="handleAdd">新增</a-button>
<div class="search-box">
<a-input-group compact>
......
<template>
<div class="field-config">
<!-- 头部 -->
<div class="header flex aic jcb mb20">
<div class="header flex aic jcb mb20 pdr6">
<a-button type="primary" @click="handleAdd">新增字段</a-button>
<a-input-search
style="width: 300px"
......
<template>
<div class="terminal">
<div class="header flex aic jcb mb20">
<div class="header flex aic jcb mb20 pdr6">
<a-space>
<a-button type="primary" @click="handleAdd"> 新增应用 </a-button>
<a-button type="primary" @click="handleClone"> 克隆 </a-button>
......
<template>
<div class="terminal">
<div class="header flex aic jcb mb20">
<div class="header flex aic jcb mb20 pdr6">
<a-space>
<a-button type="primary" @click="handleAdd"> 新增应用 </a-button>
<a-button type="primary" @click="handleClone"> 克隆 </a-button>
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">站点业务列表</div>
<div class="control">
<div class="control pdr6">
<div>
<a-space size="middle">
<a-button type="primary" @click="showModal"> 新增业务 </a-button>
......@@ -86,7 +86,7 @@
<div class="right">
<div class="header">
<div class="titel">一体化业务列表</div>
<div class="control">
<div class="control pdr6">
<div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
</div>
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">站点事项列表</div>
<div class="header-bottom">
<div class="header-bottom pdr6">
<div class="left-btn">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
</div>
......@@ -109,7 +109,7 @@
<div class="right">
<div class="header">
<div class="titel">基础事项列表</div>
<div class="control">
<div class="control pdr6">
<div>
<a-space size="middle">
<a-button type="primary" @click="handleAddAll">
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">站点业务列表</div>
<div class="header-bottom">
<div class="header-bottom pdr6">
<div class="left-btn">
<a-button type="danger" @click="handleDelAll"> 批量解除 </a-button>
</div>
......@@ -64,7 +64,7 @@
<div class="right">
<div class="header">
<div class="titel">站点事项列表</div>
<div class="control">
<div class="control pdr6">
<div>
<a-button type="primary" @click="handleAddAll"> 批量关联 </a-button>
</div>
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">站点事项列表</div>
<div class="header-bottom flex aic jcb">
<div class="header-bottom flex aic jcb pdr6">
<div class="left-btn"></div>
<div>
<a-space>
......
......@@ -2,7 +2,7 @@
<div class="deploy">
<a-tabs activeKey="model">
<a-tab-pane key="model" tab="部署板块管理">
<div class="control">
<div class="control pdr6">
<div>
<a-button
type="primary"
......
......@@ -10,7 +10,7 @@
</template>
<div class="header">
<span class="title">窗口事项列表</span>
<div class="control">
<div class="control pdr6">
<div class="btn">
<a-button
type="primary"
......
......@@ -76,7 +76,7 @@
<div class="ff window-box">
<div class="department_right_add">
<div class="department_manage">窗口管理</div>
<div class="flex aic jcb">
<div class="flex aic jcb pdr6">
<a-button type="primary" @click="addModal">新增窗口</a-button>
<a-input-search
placeholder="请输入窗口编号搜索"
......
<template>
<div class="hall-manage">
<div class="control flex aic jcb mb20">
<div class="control flex aic jcb mb20 pdr6">
<a-space size="middle">
<a-button type="primary" @click="handleAdd">新增大厅</a-button>
<a-button type="danger" @click="handleDelAll">批量删除</a-button>
......
......@@ -3,7 +3,7 @@
<div class="left">
<div class="header">
<div class="titel">大厅窗口</div>
<div class="control">
<div class="control pdr6">
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<div class="business-control">
<a-space>
......@@ -82,7 +82,7 @@
<div class="right">
<div class="header">
<div class="titel">站点窗口</div>
<div class="control">
<div class="control pdr6">
<div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
</div>
......
<template>
<div class="festival festival">
<div class="skins_bnt btn-box">
<div class="skins_bnt btn-box pdr6">
<!-- 新增按钮 -->
<a-button type="primary" @click="showModal" class="skins_btn_1"
>新增节日</a-button
......
......@@ -11,7 +11,7 @@
</a-tooltip>
<span>皮肤模板</span>
</div>
<div class="header">
<div class="header pdr6">
<a-space>
<a-button type="primary" @click="handleAddTemplate"
>新增皮肤模板</a-button
......@@ -78,26 +78,12 @@
</template>
</a-table>
</div>
<!-- 翻页 -->
<!-- <div class="pagination" v-if="leftTotal">
<a-pagination
v-model="leftCurrent"
:show-total="(total) => `共 ${total} 条`"
:total="leftTotal"
@change="changeLeft"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChange"
/>
</div> -->
</a-card>
</div>
<!-- 右 -->
<div class="right">
<a-card title="模板属性" :bodyStyle="{ height: '79vh' }">
<div class="header">
<div class="header pdr6">
<div>
<a-space>
<a-button type="primary" @click="handleAddField"
......@@ -188,20 +174,6 @@
</template>
</a-table>
</div>
<!-- 分页 -->
<!-- <div class="pagination" v-if="rightTotal">
<a-pagination
v-model="rightCurrent"
:show-total="(total) => `共 ${total} 条`"
:total="rightTotal"
@change="changeRight"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChangeRight"
/>
</div> -->
</a-card>
</div>
</div>
......
......@@ -158,12 +158,16 @@ export default {
height: 80vh;
display: flex;
flex-direction: column;
padding: 15px 0px;
.preview-seach {
height: 32px;
padding: 0px 15px;
margin-bottom: 15px;
}
.preview-list {
flex: 1;
height: 65vh;
padding: 0px 15px;
display: flex;
flex-direction: column;
border-bottom: 1px solid #ccc;
......
......@@ -162,7 +162,6 @@ export default {
}
.preview-box {
width: 15%;
padding: 15px;
}
}
}
......
<template>
<div class="parameter">
<div class="control flex aic jcb mb15">
<div class="control flex aic jcb mb15 pdr6">
<div>
<a-button type="primary" style="margin-right: 10px" @click="handleAdd"
>新增</a-button
......
<template>
<!-- 系统日志 -->
<div class="system-logs">
<div class="control">
<div class="control pdr6">
<div class="search-box">
<a-input-search
placeholder="请输入请求地址搜索"
......
<template>
<div class="task-set">
<div class="control flex aic jcb mb15">
<div class="control flex aic jcb mb15 pdr6">
<div>
<a-button type="primary" style="margin-right: 10px" @click="handleAdd"
>新增</a-button
......
......@@ -125,7 +125,7 @@
</a-radio-group> -->
</div>
</div>
<div class="on btn">
<div class="on btn pdr6">
<div>
<a-button type="primary" @click="showModal">新增人员</a-button>
<a-dropdown>
......@@ -178,7 +178,8 @@
</div>
<div class="in">
<a-input-search
placeholder="请输入姓名或者工号"
placeholder="请输入姓名或者工号搜索"
v-model="searchVal"
enter-button="搜索"
allowClear
@search="onSearch"
......@@ -400,6 +401,7 @@ export default {
WorkmanData: [], // 工作人员列表
deptSearch: "", //部门搜索
windowSearch: "", // 窗口搜索
searchVal: "",
visibleAll: false,
page: 1,
size: 10,
......@@ -442,12 +444,19 @@ export default {
// 获取工作人员列表
async getWorkmanData(search = {}) {
this.loading = true;
let obj = {};
if (/^[\u4e00-\u9fa5]+$/.test(this.searchVal)) {
obj.name = `%${this.searchVal}%`;
} else if (/^[a-zA-z0-9]+$/.test(this.searchVal)) {
obj.number = `%${this.searchVal}%`;
}
let res = await getWorkmanList({
siteId: this.siteId,
page: this.page,
size: this.size,
deptId: this.deptSearch,
windowId: this.windowSearch,
...obj,
...search,
});
let { data, pageInfo, dict } = res.data.data;
......@@ -513,15 +522,16 @@ export default {
});
},
// 搜索
onSearch(val) {
onSearch() {
this.page = 1;
if (/^[\u4e00-\u9fa5]+$/.test(val)) {
this.getWorkmanData({ name: `%${val}%` });
} else if (/^[a-zA-z0-9]+$/.test(val)) {
this.getWorkmanData({ number: `%${val}%` });
} else {
this.getWorkmanData();
}
this.getWorkmanData();
// if (/^[\u4e00-\u9fa5]+$/.test(val)) {
// this.getWorkmanData({ name: `%${val}%` });
// } else if (/^[a-zA-z0-9]+$/.test(val)) {
// this.getWorkmanData({ number: `%${val}%` });
// } else {
// this.getWorkmanData();
// }
},
// 新增工作人员
showModal() {
......
......@@ -28,7 +28,7 @@ public class SyncTreeSiteThread implements Runnable {
SiteService siteService = SpringUtils.getBean(SiteService.class);
List<SiteTreeSelect> siteTreeSelects = siteService.siteTree(context);
siteService.setSiteTree(siteTreeSelects, context);
// log.info("刷新用户站点树=》userID:{} siteIds:{} siteTree:{}",context.getUser().getId(),context.getUser().getSiteIds(), JSON.toJSONString(siteService.getSiteTree(context)));
log.info("刷新用户站点树=》userID:{} siteIds:{} siteTree:{}",context.getUser().getId(),context.getUser().getSiteIds(), JSON.toJSONString(siteService.getSiteTree(context)));
}
}
......@@ -26,6 +26,9 @@ import com.mortals.framework.springcloud.service.IApplicationStartedService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import static com.mortals.xhx.common.key.Constant.USER_SITE_TREE;
@Component
@Slf4j
public class DemoStartedService implements IApplicationStartedService {
......@@ -35,10 +38,15 @@ public class DemoStartedService implements IApplicationStartedService {
private IUserFeign userFeign;
@Autowired
private UserService userService;
@Autowired
private ICacheService cacheService;
@Override
public void start() {
logger.info("开始服务..[初始化用户站点树]");
//删除redis 中的 站点树
cacheService.del(USER_SITE_TREE);
UserEntity userEntity = new UserEntity();
userEntity.initAttrValue();
userEntity.setId(0L);
......@@ -56,33 +64,6 @@ public class DemoStartedService implements IApplicationStartedService {
ThreadPool.getInstance().execute(syncTreeSiteThread);
/* userService.find(new UserQuery()).forEach(user->{
Context context = new Context();
context.setUser(user);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
});*/
/* if(ObjectUtils.isEmpty(userFeign)){
logger.info("userFeign未加载,加载本地用户");
userService.find(new UserQuery()).forEach(user->{
Context context = new Context();
context.setUser(user);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
});
return;
}*/
/* userFeign.list(new UserPdu()).getData().getData().stream().forEach(userPdu->{
Context context = new Context();
UserEntity entity = new UserEntity();
entity.initAttrValue();
BeanUtils.copyProperties(userPdu, entity, BeanUtil.getNullPropertyNames(userPdu));
context.setUser(entity);
ThreadPool.getInstance().execute(new SyncTreeSiteThread(context));
});*/
}
@Override
......
......@@ -209,6 +209,13 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
public List<SiteTreeSelect> siteTree(Context context) {
Map<String, AreaEntity> areaMap = new HashMap<>();
SiteQuery siteQuery = new SiteQuery();
//如果站点为空 或者用户为空 返回空数组
if (context.getUser() == null) {
return new ArrayList<>();
}
List<SiteEntity> siteList = new ArrayList<>();
if (context.getUser().getSiteIds() != null) {
Set<String> siteSet = Arrays.stream(context.getUser().getSiteIds().split(",")).filter(f -> !f.equals("")).collect(Collectors.toSet());
if (!ObjectUtils.isEmpty(siteSet)) {
......@@ -217,17 +224,20 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
siteQuery.idList(siteIdList);
}
}
//查詢指定的站點ids
log.info(String.format("siteQuery==>%s", JSON.toJSONString(siteQuery)));
siteList = this.find(siteQuery);
}
//查詢指定的站點ids
log.info(String.format("siteQuery==>%s", JSON.toJSONString(siteQuery)));
List<SiteEntity> siteList = this.find(siteQuery);
//如果是管理员 默认全部站点
if (context.getUser().isAdmin()) {
log.info("user is admin !");
if (context.getUser().isAdmin() || context.getUser().getId() == 0L) {
log.info("user is admin ! id:{}", context.getUser().getId());
siteList = this.find(new SiteQuery());
}
if (ObjectUtils.isEmpty(siteList)) {
return new ArrayList<>();
}
//turn to sitemap
Map<String, SiteEntity> siteMap = siteList.parallelStream().collect(Collectors.toMap(x -> x.getSiteCode(), y -> y, (o, n) -> n));
//遍历过滤站点树
......@@ -459,7 +469,7 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
throw new AppException("当前站点无子区域!");
}
siteAreaVo.setAreaCode(areaEntity.getAreaCode());
siteAreaVo.setAreaName(AreaLevelEnum.getByValue(areaEntity.getAreaLevel()).getValue()==AreaLevelEnum.地市州.getValue()?"市本级":areaEntity.getName());
siteAreaVo.setAreaName(AreaLevelEnum.getByValue(areaEntity.getAreaLevel()).getValue() == AreaLevelEnum.地市州.getValue() ? "市本级" : areaEntity.getName());
List<SiteEntity> siteEntityList = this.find(new SiteQuery().areaCode(areaEntity.getAreaCode()));
siteAreaVo.setSiteList(siteEntityList);
list.add(siteAreaVo);
......@@ -500,7 +510,11 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
if (!ObjectUtils.isEmpty(query.getSiteName())) {
SiteEntity siteEntity = this.selectOne(new SiteQuery().siteName(query.getSiteName()));
if (!ObjectUtils.isEmpty(siteEntity)) {
query.setAreaLevel(siteEntity.getAreaLevel());
AreaEntity areaCache = areaService.getExtCache(siteEntity.getAreaCode());
query.setAreaLevel(areaCache == null ? 1 : areaCache.getAreaLevel());
log.info("areaLevel:{}", query.getAreaLevel());
} else {
return Rest.ok(new ArrayList<>());
}
}
//获取所有层级的区域
......@@ -541,7 +555,7 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
public void setSiteTree(List<SiteTreeSelect> list, Context context) {
siteTreeMap.put(context.getUser().getId(), list);
//存放到redis中去
cacheService.hsetnx(USER_SITE_TREE, context.getUser().getId().toString(), JSON.toJSONString(list));
cacheService.hset(USER_SITE_TREE, context.getUser().getId().toString(), JSON.toJSONString(list));
}
@Override
......@@ -671,12 +685,12 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
// new MatterQuery().setMatterNoNotList();
// List<MatterEntity> localMatterList = matterService.find(new MatterQuery().areaCode(siteEntity.getAreaCode()));
// List<MatterEntity> localMatterList = matterService.find(new MatterQuery().areaCode(siteEntity.getAreaCode()));
//HashSet<String> matterNoSet = new HashSet<>();
Set<String> matterNoSet = matterService.getDao().getMatterListByAreaCode(new MatterQuery().areaCode(siteEntity.getAreaCode())).parallelStream().map(i->i.getMatterNo()).collect(Collectors.toSet());
Set<String> matterNoSet = matterService.getDao().getMatterListByAreaCode(new MatterQuery().areaCode(siteEntity.getAreaCode())).parallelStream().map(i -> i.getMatterNo()).collect(Collectors.toSet());
/* Integer page = 1;
Integer size = 200;
......
......@@ -65,7 +65,7 @@ Accept: application/json
###构建站点树
GET {{baseUrl}}/site/siteTree
#Authorization: {{authToken}}
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJsb2dpbl91c2VyX2tleSI6IjM1OmVjZTkyMWQ1MzY2NDRkMmRhZTU0YmU0ZjA4ODE0OWZkIn0.EXKwA8I8t5rK864aJqMEh51XZ8IPtjG3juV51mgJf80
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJsb2dpbl91c2VyX2tleSI6IjE6NTgyNzRlMWM1MDlhNDQ2YzhmYjVlMDRkNjNlM2JmOTAifQ.dLq6-GLVOPvxq66pbqpj0K5qx1y3FzbKzbKq-wCxOr4
Accept: application/json
......@@ -87,7 +87,7 @@ POST {{baseUrl}}/site/getAreaSitesByAreaLevel
Content-Type: application/json
{
"areaLevel":2
"siteName":"徐州区办事处"
}
###站点列表
......
......@@ -5,7 +5,7 @@ Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"password":"xhx@yb888",
"securityCode":"8888"
}
......
......@@ -10,11 +10,11 @@ export function censusListInterface(params) {
/* 排号机部分 */
// 大厅列表数据
export function getDatingList(params) {
return http.post(`${BAS_EURL}base/site/hall/list`, params);
return http.post(`${baseURL}/base/site/hall/list`, params);
}
// 部门列表数据
export function getBumenList(params) {
return http.post(`${BAS_EURL}base/dept/list`, params);
return http.post(`${baseURL}/base/dept/list`, params);
}
//排号机列表数据
export function getTaskList(params) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment