From 7c46bd2e4c3921fe6f77682f1c80ff5c7e927539 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 27 Sep 2018 08:54:07 +0800
Subject: [PATCH] 组织指定父组织
---
src/main/java/com/moral/entity/Organization.java | 24 ++++++++
src/main/java/com/moral/service/OrganizationService.java | 2
src/main/java/com/moral/controller/OrganizationController.java | 6 ++
src/main/java/com/moral/service/impl/OrganizationServiceImpl.java | 55 ++++++++++++++++++
src/main/java/com/moral/controller/ScreenController.java | 39 ++++++++-----
src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 2
src/main/resources/application.yml | 15 ++--
src/main/resources/mapper/OrganizationMapper.xml | 8 ++
8 files changed, 126 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/moral/controller/OrganizationController.java b/src/main/java/com/moral/controller/OrganizationController.java
index 039953d..b515654 100644
--- a/src/main/java/com/moral/controller/OrganizationController.java
+++ b/src/main/java/com/moral/controller/OrganizationController.java
@@ -39,10 +39,16 @@
List<Organization> organizations = organizationService.getOrganizationsByName(name);
return new ResultBean<List<Organization>>(organizations);
}
+
@GetMapping("get-my-org")
public ResultBean<Organization> getMyOrganization(JwtAuthenticationToken token){
UserContext userContext = token.getPrincipal();
Organization organization = organizationService.getOrganizationById(userContext.getOrganizationId());
return new ResultBean<>(organization);
}
+ @GetMapping("getforg")
+ public ResultBean<Organization> getFatherOrg(Integer cid){
+ Organization organization = organizationService.getFatherOrg(cid);
+ return new ResultBean<>(organization);
+ }
}
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 2478a83..4541cd3 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -10,6 +10,7 @@
import javax.servlet.http.HttpServletRequest;
import com.alibaba.fastjson.*;
+import com.moral.common.util.BeanUtils;
import com.moral.common.util.ParameterUtils;
import com.moral.common.util.StringUtils;
import com.moral.entity.*;
@@ -135,21 +136,29 @@
StringBuilder areaNamesBuilder = new StringBuilder("������");
if(!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) {
Organization organization = organizationService.getOrganizationById((Integer) orgId);
- if(organization.getAreaNames()!=null){
- AreaNames areaNames = organization.getAreaNames();
- if(!StringUtils.isNullOrEmpty(areaNames.getProvinceName())){
- areaNamesBuilder.append("/");
- areaNamesBuilder.append(areaNames.getProvinceName());
- if(!StringUtils.isNullOrEmpty(areaNames.getCityName())){
- areaNamesBuilder.append("/");
- areaNamesBuilder.append(areaNames.getCityName());
- if(!StringUtils.isNullOrEmpty(areaNames.getAreaName())){
- areaNamesBuilder.append("/");
- areaNamesBuilder.append(areaNames.getAreaName());
- }
- }
- }
- }
+ if(organization.getAreaNames()!=null){
+ Map<String,String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames());
+ List<String> names = areaNameMap.entrySet().stream().filter(item -> {
+ return item.getValue()!=null;
+ }).map(item -> {
+ return item.getValue();
+ }).collect(Collectors.toList());
+ AreaNames areaNames = organization.getAreaNames();
+ areaNamesBuilder.append("/");
+ areaNamesBuilder.append(String.join("/",names));
+ }
+ // ������������
+ if( 0 == organization.getRank()) {
+ resultMap.put("type","enterprise");
+ }else{
+ resultMap.put("type","government");
+ }
+ resultMap.put("areaCode",
+ organization.getVillageCode()|
+ organization.getTownCode()|
+ organization.getAreaCode()|
+ organization.getCityCode()|
+ organization.getProvinceCode());
}
resultMap.put("mapPath",areaNamesBuilder.toString());
}
diff --git a/src/main/java/com/moral/entity/Organization.java b/src/main/java/com/moral/entity/Organization.java
index 50295d7..e727199 100644
--- a/src/main/java/com/moral/entity/Organization.java
+++ b/src/main/java/com/moral/entity/Organization.java
@@ -88,7 +88,31 @@
* @mbggenerated Thu Dec 07 15:18:16 CST 2017
*/
private String description;
+ private Long townCode;
+ private Long villageCode;
+ public Integer getProvinceCode() {
+ return provinceCode==null?0:provinceCode;
+ }
+
+ public Integer getCityCode() {
+ return cityCode==null?0:cityCode;
+ }
+
+ public Integer getAreaCode() {
+ return areaCode==null?0:areaCode;
+ }
+
+ public Long getTownCode() {
+ return townCode==null?0:townCode;
+ }
+
+ public Long getVillageCode() {
+ return villageCode==null?0:villageCode;
+ }
+
+ @Transient
+ private Integer parentId;
@Transient
private AreaNames areaNames;
diff --git a/src/main/java/com/moral/service/OrganizationService.java b/src/main/java/com/moral/service/OrganizationService.java
index 4c3cb5e..fe1dcc3 100644
--- a/src/main/java/com/moral/service/OrganizationService.java
+++ b/src/main/java/com/moral/service/OrganizationService.java
@@ -21,4 +21,6 @@
List<Organization> getOrganizationsByName(String name);
public Organization getOrganizationById(int id);
+
+ public Organization getFatherOrg(int childId);
}
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 345dceb..ba6b76a 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -346,7 +346,7 @@
}
}
@Override
- public PageBean queryByPageBean(PageBean pageBean) {
+ public PageBean queryByPageBean(PageBean pageBean) {
Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
// addDeletesToExample(example);
if(pageBean.getPageSize()>0){
diff --git a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
index 7b8d709..2dca7d1 100644
--- a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java
@@ -10,12 +10,15 @@
import com.moral.mapper.OrganizationMapper;
import com.moral.mapper.OrganizationRelationMapper;
import com.moral.service.OrganizationService;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.data.annotation.Transient;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;
import javax.annotation.Resource;
import java.util.*;
+import java.util.stream.Collectors;
import static com.moral.common.bean.Constants.IS_DELETE_FALSE;
@@ -55,6 +58,7 @@
return organizations;
}
+ @Override
public PageBean queryByPageBean(PageBean pageBean){
Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
List<Example.Criteria> criteriaList = example.getOredCriteria();
@@ -84,12 +88,47 @@
}else{
organizationMapper.updateByPrimaryKey(organization);
}
+ //���������������������
+ addOrModifyOrgRelation(organization);
}
catch (Exception ex){
throw ex;
}
}
-
+ @Transient
+ private void addOrModifyOrgRelation(Organization organization){
+ OrganizationRelation relation = new OrganizationRelation();
+ relation.setChildId(organization.getId());
+ List<OrganizationRelation> relations = organizationRelationMapper.select(relation);
+ if(CollectionUtils.isEmpty(relations)){
+ relation.setParentId(organization.getParentId());
+ organizationRelationMapper.insert(relation);
+ }else{
+ OrganizationRelation relationOfSelect = relations.get(0);
+ //���������������������������������������
+ if(organization.getParentId() !=null &&
+ !organization.getParentId().equals(relationOfSelect.getParentId())
+ ) {
+ relationOfSelect.setParentId(organization.getParentId());
+ organizationRelationMapper.updateByPrimaryKey(relationOfSelect);
+ }else if(organization.getParentId() ==null){
+ //ParentI���null���������������������
+ organizationRelationMapper.deleteByPrimaryKey(relationOfSelect.getId());
+ }
+ //������������������
+ if(relations.size()>1){
+ relations.remove(0);
+ List<Integer> relationIds = relations.stream().map(
+ element->{
+ return element.getId();
+ }
+ ).collect(Collectors.toList());
+ Example example = new Example(OrganizationRelation.class);
+ example.or().andIn("id",relationIds);
+ organizationRelationMapper.deleteByExample(example);
+ }
+ }
+ }
@Override
public void deleteByIds(Integer... ids) {
Organization organization = new Organization();
@@ -127,4 +166,18 @@
List<Organization> organizationList = organizationMapper.selectWithAreaNameByExample(example);
return organizationList.size()>0?organizationList.get(0):null;
}
+
+ @Override
+ public Organization getFatherOrg(int childId) {
+ OrganizationRelation relation = new OrganizationRelation();
+ relation.setChildId(childId);
+ List<OrganizationRelation> relations = organizationRelationMapper.select(relation);
+ if (!CollectionUtils.isEmpty(relations)){
+ OrganizationRelation relationOfSelect = relations.get(0);
+ if(relationOfSelect.getParentId()!=null){
+ return organizationMapper.selectByPrimaryKey(relationOfSelect.getParentId());
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b5a49fb..ccef0eb 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -13,14 +13,16 @@
cache: false
datasource:
url: jdbc:mysql://47.96.26.152:3306/monitor_db?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
+ #url: jdbc:mysql://192.168.99.100:3306/monitor_db?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
username: root
password: xOlx8z9L7Pt6y9YI
+ #password: root123
#driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
# ���������������������������������������������������������������������
# ���������������������������������
- initialSize: 1
- minIdle: 3
+ initialSize: 10
+ minIdle: 10
maxActive: 20
# ���������������������������������������
maxWait: 60000
@@ -32,6 +34,7 @@
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
+ keepAlive: true
# ������PSCache������������������������������PSCache���������
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
@@ -49,14 +52,12 @@
username: guest
password: guest
channelCacheSize: 10
-
-
redis:
host: 47.100.8.247
port: 6379
- password:
+ password: moral_2018
database: 1
- timeout: 0
+ timeout: 5000
pool:
max-active: 8
max-wait: -1
@@ -75,7 +76,7 @@
spring.profiles: default
moral.security.jwt:
- tokenExpirationTime: 5 # Number of minutes
+ tokenExpirationTime: 129600 # Number of minutes
refreshTokenExpTime: 60 # Minutes
tokenIssuer: http://monitor.7drlb.com
tokenSigningKey: xm9EV6Hy5RAFL8EEACIDAwQus
diff --git a/src/main/resources/mapper/OrganizationMapper.xml b/src/main/resources/mapper/OrganizationMapper.xml
index 982b7a2..7865ab7 100644
--- a/src/main/resources/mapper/OrganizationMapper.xml
+++ b/src/main/resources/mapper/OrganizationMapper.xml
@@ -8,6 +8,8 @@
<result column="province_code" jdbcType="INTEGER" property="provinceCode" />
<result column="city_code" jdbcType="INTEGER" property="cityCode" />
<result column="area_code" jdbcType="INTEGER" property="areaCode" />
+ <result column="town_code" jdbcType="BIGINT" property="townCode" />
+ <result column="village_code" jdbcType="BIGINT" property="villageCode" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="telephone" jdbcType="VARCHAR" property="telephone" />
<result column="email" jdbcType="VARCHAR" property="email" />
@@ -20,6 +22,8 @@
<result column="province_name" property="provinceName" jdbcType="VARCHAR" />
<result column="city_name" property="cityName" jdbcType="VARCHAR" />
<result column="area_name" property="areaName" jdbcType="VARCHAR" />
+ <result column="town_name" property="townName" jdbcType="VARCHAR" />
+ <result column="village_name" property="villageName" jdbcType="VARCHAR" />
</association>
</resultMap>
<sql id="Example_Where_Clause">
@@ -56,7 +60,7 @@
create_time, expire_time, description
</sql>
<sql id="Relation_Province_City_Area_List">
- are.area_name, cti.city_name, pro.province_name
+ are.area_name, cti.city_name, pro.province_name,tow.town_name,vil.village_name
</sql>
<select id="selectWithAreaNameByExample" parameterType="tk.mybatis.mapper.entity.Example" resultMap="BaseResultMap">
select
@@ -67,6 +71,8 @@
,
<include refid="Relation_Province_City_Area_List" />
from organization
+ left join village vil on organization.village_code = vil.village_code
+ left join town tow on organization.town_code = tow.town_code
left join area are on organization.area_code = are.area_code
left join city cti on organization.city_code = cti.city_code
left join province pro on organization.province_code = pro.province_code
--
Gitblit v1.8.0