fetch:机构人员bug
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# 数据库配置
|
||||
#=============================================
|
||||
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.url = jdbc:mysql://39.100.23.127:3306/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
|
||||
spring.datasource.url = jdbc:mysql://192.168.10.47:3306/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
|
||||
spring.datasource.username = root
|
||||
spring.datasource.password = root
|
||||
|
||||
|
||||
+5
-4
File diff suppressed because one or more lines are too long
@@ -3,6 +3,7 @@ package com.adc.da.slrs.sarInstitution.dao;
|
||||
import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser;
|
||||
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -34,4 +35,11 @@ public interface TsInstitutionDao extends BaseMapper<TsInstitution> {
|
||||
* @param tsInstitutions:机构列表
|
||||
*/
|
||||
void batchInsert(List<TsInstitution> tsInstitutions);
|
||||
|
||||
/**
|
||||
* 查询根机构
|
||||
* @return List<TsInstitution>
|
||||
*/
|
||||
@Select("select * from ts_institution where parent_id not in (select id from ts_institution)")
|
||||
List<TsInstitution> selectRoot();
|
||||
}
|
||||
|
||||
@@ -55,6 +55,10 @@ public class TsInstitution extends BaseEntity {
|
||||
@ApiModelProperty("是否是机构")
|
||||
private Boolean disabled;
|
||||
|
||||
@TableField
|
||||
@ApiModelProperty("是否有子节点(1有,0没有)")
|
||||
private String hasChild;
|
||||
|
||||
public TsInstitution() {
|
||||
}
|
||||
|
||||
|
||||
+1
-6
@@ -1,11 +1,6 @@
|
||||
package com.adc.da.slrs.sarInstitution.service;
|
||||
|
||||
import com.adc.da.slrs.sarInstitution.entity.SyncInstitution;
|
||||
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
|
||||
import com.adc.da.slrs.sarUser.entity.TsUser;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
@@ -33,5 +28,5 @@ public interface ITsInstitutionService extends IService<TsInstitution> {
|
||||
*/
|
||||
void batchInsert(List<TsInstitution> tsInstitutions);
|
||||
|
||||
public void parseInstitution(String json);
|
||||
public void parseInstitution() throws Exception;
|
||||
}
|
||||
|
||||
+56
-12
@@ -2,13 +2,10 @@ package com.adc.da.slrs.sarInstitution.service.impl;
|
||||
|
||||
|
||||
import com.adc.da.slrs.sarInstitution.dao.TsInstitutionDao;
|
||||
import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser;
|
||||
import com.adc.da.slrs.sarInstitution.entity.SyncInstitution;
|
||||
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
|
||||
import com.adc.da.slrs.sarInstitution.entity.TsUserVO;
|
||||
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
|
||||
import com.adc.da.slrs.sarUser.entity.TsUser;
|
||||
import com.adc.da.slrs.sarUser.service.ITsUserService;
|
||||
import com.adc.da.sync.service.SyncUserService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
@@ -33,6 +30,8 @@ import java.util.List;
|
||||
public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsInstitution> implements ITsInstitutionService {
|
||||
@Autowired
|
||||
private TsInstitutionDao tsInstitutionDao;
|
||||
@Autowired
|
||||
private SyncUserService syncUserService;
|
||||
|
||||
/**
|
||||
* 查询所有机构
|
||||
@@ -40,20 +39,22 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
|
||||
@Override
|
||||
public List<TsInstitution> getInstitution() {
|
||||
//查询第一层机构
|
||||
QueryWrapper<TsInstitution> institutionQueryWrapper=new QueryWrapper<>();
|
||||
institutionQueryWrapper.isNull("parent_id").or().eq("parent_id","");
|
||||
List<TsInstitution> institutionRoot=tsInstitutionDao.selectList(institutionQueryWrapper);
|
||||
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRoot();
|
||||
for(TsInstitution tsInstitution:institutionRoot){
|
||||
tsInstitution.setChildren(recursionGetInstitution(tsInstitution));
|
||||
}
|
||||
return institutionRoot;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归获取子机构
|
||||
* @param tsInstitution:父机构
|
||||
* @return List<TsInstitution>
|
||||
*/
|
||||
private List<Object> recursionGetInstitution(TsInstitution tsInstitution){
|
||||
if(tsInstitution.getHasChild()==null||(!tsInstitution.getHasChild().equals("1"))){
|
||||
return null;
|
||||
}
|
||||
List<Object> institutionObject=new ArrayList<>();
|
||||
QueryWrapper<TsInstitution> institutionQueryWrapper=new QueryWrapper<>();
|
||||
institutionQueryWrapper.eq("parent_id",tsInstitution.getId());
|
||||
@@ -65,6 +66,39 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
|
||||
return institutionObject;
|
||||
}
|
||||
|
||||
/* *//**
|
||||
* 查询所有机构
|
||||
*//*
|
||||
@Override
|
||||
public List<TsInstitution> getInstitution() {
|
||||
//查询第一层机构
|
||||
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRoot();
|
||||
for(TsInstitution tsInstitution:institutionRoot){
|
||||
tsInstitution.setChildren(recursionGetInstitution(tsInstitution));
|
||||
}
|
||||
return institutionRoot;
|
||||
}
|
||||
|
||||
*//**
|
||||
* 递归获取子机构
|
||||
* @param tsInstitution:父机构
|
||||
* @return List<TsInstitution>
|
||||
*//*
|
||||
private List<Object> recursionGetInstitution(TsInstitution tsInstitution){
|
||||
if(tsInstitution.getHasChild()==null||(!tsInstitution.getHasChild().equals("1"))){
|
||||
return null;
|
||||
}
|
||||
List<Object> institutionObject=new ArrayList<>();
|
||||
QueryWrapper<TsInstitution> institutionQueryWrapper=new QueryWrapper<>();
|
||||
institutionQueryWrapper.eq("parent_id",tsInstitution.getId());
|
||||
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectList(institutionQueryWrapper);
|
||||
for(TsInstitution tsInstitutionNode:tsInstitutions){
|
||||
tsInstitutionNode.setChildren(recursionGetInstitution(tsInstitutionNode));
|
||||
institutionObject.add(tsInstitutionNode);
|
||||
}
|
||||
return institutionObject;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 查询所有机构
|
||||
*/
|
||||
@@ -100,6 +134,13 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
|
||||
* @return List<TsInstitution>
|
||||
*/
|
||||
private List<Object> recursionGetInstitutionAndUser(TsInstitution tsInstitution){
|
||||
System.out.println(1);
|
||||
System.out.println(tsInstitution);
|
||||
if(tsInstitution.getHasChild()==null||(!tsInstitution.getHasChild().equals("1"))){
|
||||
return null;
|
||||
}
|
||||
System.out.println(2);
|
||||
System.out.println(tsInstitution);
|
||||
List<Object> institutionObject=new ArrayList<>();
|
||||
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectAndUserByParent(tsInstitution.getId());
|
||||
|
||||
@@ -114,12 +155,15 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
|
||||
return institutionObject;
|
||||
}
|
||||
|
||||
public void parseInstitution(String json){
|
||||
JSONObject jsonObject= JSON.parseObject(json);
|
||||
JSONArray results=jsonObject.getJSONArray("results");
|
||||
List<SyncInstitution> syncInstitutions=results.toJavaList(SyncInstitution.class);
|
||||
List<TsInstitution> tsInstitutions=SyncInstitution.syncToInstitution(syncInstitutions);
|
||||
batchInsert(tsInstitutions);
|
||||
public void parseInstitution() throws Exception {
|
||||
List<String> jsons=syncUserService.syncFotonOrg();
|
||||
for(String json:jsons){
|
||||
JSONObject jsonObject= JSON.parseObject(json);
|
||||
JSONArray results=jsonObject.getJSONArray("results");
|
||||
List<SyncInstitution> syncInstitutions=results.toJavaList(SyncInstitution.class);
|
||||
List<TsInstitution> tsInstitutions=SyncInstitution.syncToInstitution(syncInstitutions);
|
||||
batchInsert(tsInstitutions);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,11 @@ public class TsUserController extends BaseController<TsUser> {
|
||||
return Result.success(resources);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("导入人员数据")
|
||||
@GetMapping("/import")
|
||||
public ResponseMessage<Object> importUser() throws Exception {
|
||||
tsUserService.parseUser();
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.adc.da.slrs.sarUser.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SyncUser {
|
||||
private String userid;
|
||||
private String name;
|
||||
private String gender;
|
||||
private String givenName;
|
||||
private String mail;
|
||||
private String mobile;
|
||||
private String title;
|
||||
private String employeeNumber;
|
||||
private String orgNumber;
|
||||
private String orgName;
|
||||
|
||||
public static TsUser toUser(SyncUser syncUser){
|
||||
return new TsUser(syncUser.getUserid(),syncUser.getName(),syncUser.getGender(),syncUser.getMobile(),syncUser.getMail(),syncUser.getOrgName(),syncUser.getOrgNumber(),syncUser.getTitle());
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.adc.da.base.entity.BaseEntity;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.adc.da.slrs.sarPosition.entity.TsPosition;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
@@ -42,7 +43,7 @@ public class TsUser extends BaseEntity {
|
||||
|
||||
@ApiModelProperty(value = "主键Id")
|
||||
@NotNull(message = "userId不能为空",groups = {disable.class})
|
||||
@TableId(value = "USID")
|
||||
@TableId(value = "USID",type = IdType.UUID)
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "帐户")
|
||||
@@ -141,5 +142,17 @@ public class TsUser extends BaseEntity {
|
||||
@TableField(exist = false)
|
||||
private List<TsPosition> positions;
|
||||
|
||||
public TsUser() {
|
||||
}
|
||||
|
||||
public TsUser(String account, String uname, String sex, String phone, String email, String institutionName, String institutionId, String positionName) {
|
||||
this.account = account;
|
||||
this.uname = uname;
|
||||
this.sex = sex;
|
||||
this.phone = phone;
|
||||
this.email = email;
|
||||
this.institutionName = institutionName;
|
||||
this.institutionId = institutionId;
|
||||
this.positionName = positionName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,4 +64,9 @@ public interface ITsUserService extends IService<TsUser> {
|
||||
public List<SarMenu> getMenusByUserId(String userId);
|
||||
|
||||
List<String> getResourceId(TsResource tsResource);
|
||||
|
||||
/**
|
||||
* 导入人员数据
|
||||
*/
|
||||
void parseUser() throws Exception;
|
||||
}
|
||||
|
||||
+41
-2
@@ -5,16 +5,24 @@ import com.adc.da.http.Result;
|
||||
import com.adc.da.login.util.UserUtils;
|
||||
import com.adc.da.slrs.sarMenu.entity.SarMenu;
|
||||
import com.adc.da.slrs.sarMenu.service.ISarMenuService;
|
||||
import com.adc.da.slrs.sarPosition.dao.TsPositionDao;
|
||||
import com.adc.da.slrs.sarPosition.entity.TsPosition;
|
||||
import com.adc.da.slrs.sarPosition.service.ITsPositionService;
|
||||
import com.adc.da.slrs.sarResource.entity.TsResource;
|
||||
import com.adc.da.slrs.sarResource.service.ITsResourceService;
|
||||
import com.adc.da.slrs.sarRole.service.ITsRoleService;
|
||||
import com.adc.da.slrs.sarUser.entity.SyncUser;
|
||||
import com.adc.da.slrs.sarUser.entity.TsUser;
|
||||
import com.adc.da.slrs.sarUser.dao.TsUserDao;
|
||||
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
|
||||
import com.adc.da.slrs.sarUser.service.ITsUserService;
|
||||
import com.adc.da.sync.service.SyncUserService;
|
||||
import com.adc.da.sys.entity.UserEO;
|
||||
import com.adc.da.utils.util.ListUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
@@ -45,8 +53,10 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
||||
private ISarMenuService sarMenuService;
|
||||
@Autowired
|
||||
private ITsResourceService tsResourceService;
|
||||
// @Autowired
|
||||
// private ISarUserPersonalMenuService sarUserPersonalMenuService;
|
||||
@Autowired
|
||||
private SyncUserService syncUserService;
|
||||
@Autowired
|
||||
private TsPositionDao tsPositionDao;
|
||||
|
||||
/**
|
||||
* 通过机构ID查询人员
|
||||
@@ -184,4 +194,33 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
|
||||
return tsRoleService.getResourceIdsByRoleIds(roleIds);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入人员数据
|
||||
*/
|
||||
@Override
|
||||
public void parseUser() throws Exception {
|
||||
List<String> jsons=syncUserService.syncFotonUser();
|
||||
for(String json:jsons){
|
||||
JSONObject jsonObject= JSON.parseObject(json);
|
||||
JSONArray jsonArray=jsonObject.getJSONArray("results");
|
||||
List<SyncUser> syncUsers=jsonArray.toJavaList(SyncUser.class);
|
||||
for(SyncUser syncUser:syncUsers){
|
||||
QueryWrapper<TsPosition> positionQueryWrapper=new QueryWrapper<>();
|
||||
positionQueryWrapper.eq("name",syncUser.getTitle());
|
||||
TsPosition tsPosition=tsPositionDao.selectOne(positionQueryWrapper);
|
||||
if(tsPosition==null){
|
||||
tsPosition=new TsPosition();
|
||||
tsPosition.setName(syncUser.getTitle());
|
||||
tsPosition.setType("1");
|
||||
tsPositionDao.insert(tsPosition);
|
||||
}
|
||||
TsUser tsUser=SyncUser.toUser(syncUser);
|
||||
tsUser.setPositionId(tsPosition.getId());
|
||||
tsUserDao.insert(tsUser);
|
||||
|
||||
}
|
||||
}
|
||||
System.out.println(jsons.size());
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@
|
||||
<result column="parent_id" property="parentId"/>
|
||||
<result column="level" property="level"/>
|
||||
<result column="name" property="name"/>
|
||||
<result column="has_child" property="hasChild"/>
|
||||
<collection property="users" ofType="com.adc.da.slrs.sarInstitution.entity.TsUserVO">
|
||||
<result column="usid" property="id"/>
|
||||
<result column="account" property="account"/>
|
||||
@@ -17,7 +18,7 @@
|
||||
select i.*,u.usid,u.account,u.uname,u.institution_id from ts_institution i
|
||||
left join ts_user u
|
||||
on i.id=u.institution_id
|
||||
where i.parent_id is null or i.parent_id=''
|
||||
where i.parent_id not in (select id from ts_institution)
|
||||
</select>
|
||||
|
||||
<select id="selectAndUserByParent" resultMap="InstitutionAndUser">
|
||||
|
||||
@@ -8,9 +8,9 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.json.JSONSerializer;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -19,16 +19,21 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
public class SyncUserService {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
SyncUserService syncUserService=new SyncUserService();
|
||||
syncUserService.syncFotonOrg();
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步福田IDM数据
|
||||
* @throws Exception
|
||||
*/
|
||||
public void syncFotonUser()throws Exception{
|
||||
String appuser = "wsuser";
|
||||
String appkey = "o1bnrph3pe6i63txm3z5l3cnka2a82pi";
|
||||
public List<String> syncFotonUser()throws Exception{
|
||||
String appuser = "app_slrs";
|
||||
String appkey = "wj5iDTqyguQCxnsoo5VU21BoRSZqevhI";
|
||||
AuthUtils util = new AuthUtils(appuser, appkey, null);
|
||||
|
||||
List<String> json=new ArrayList<>();
|
||||
byte[] cookie = null;
|
||||
do {
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
@@ -41,13 +46,17 @@ public class SyncUserService {
|
||||
System.out.println("RequestBody:" + params.toString());
|
||||
// 用户测试
|
||||
String rs = util.getResponseFromServer("http://172.24.224.42:82/rest/users/getUserList", params);
|
||||
System.err.println(rs);
|
||||
|
||||
JSONObject responseStr = (JSONObject) JSONSerializer.toJSON(rs);
|
||||
json.add(rs);
|
||||
|
||||
JSONObject responseStr = JSON.parseObject(rs);
|
||||
|
||||
if (responseStr.containsKey("cookie")) {
|
||||
try {
|
||||
JSONArray entries = responseStr.getJSONArray("cookie");
|
||||
if(entries==null){
|
||||
break;
|
||||
}
|
||||
cookie = new byte[entries.size()];
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
cookie[i] = (byte) entries.getByte(i);
|
||||
@@ -60,16 +69,18 @@ public class SyncUserService {
|
||||
}
|
||||
|
||||
} while (cookie != null);
|
||||
return json;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void syncFotonOrg()throws Exception{
|
||||
String appuser = "wsuser";
|
||||
String appkey = "o1bnrph3pe6i63txm3z5l3cnka2a82pi";
|
||||
public List<String> syncFotonOrg()throws Exception{
|
||||
String appuser = "app_slrs";
|
||||
String appkey = "wj5iDTqyguQCxnsoo5VU21BoRSZqevhI";
|
||||
AuthUtils util = new AuthUtils(appuser, appkey, null);
|
||||
|
||||
byte[] cookie = null;
|
||||
List<String> json=new ArrayList<>();
|
||||
do {
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("cookie", Base64.encodeBase64String(cookie));
|
||||
@@ -80,19 +91,25 @@ public class SyncUserService {
|
||||
params.put("basedn", "ou=Organizations,o=foton.com.cn,o=isp");
|
||||
// 组织测试
|
||||
String rs = util.getResponseFromServer("http://172.24.224.42:82/rest/orgs/getOrgList", params);
|
||||
System.err.println(rs);
|
||||
json.add(rs);
|
||||
|
||||
|
||||
JSONObject responseStr = (JSONObject) JSONSerializer.toJSON(rs);
|
||||
JSONObject responseStr = JSONObject.parseObject(rs);
|
||||
|
||||
System.out.println(responseStr);
|
||||
if (responseStr.containsKey("cookie")) {
|
||||
try {
|
||||
JSONArray entries = responseStr.getJSONArray("cookie");
|
||||
if(entries==null){
|
||||
break;
|
||||
}
|
||||
cookie = new byte[entries.size()];
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
cookie[i] = (byte) entries.getByte(i);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
e.printStackTrace();
|
||||
if (e.getMessage().contains("is not a JSONArray")) {
|
||||
cookie = null;
|
||||
}
|
||||
@@ -100,6 +117,7 @@ public class SyncUserService {
|
||||
}
|
||||
|
||||
} while (cookie != null);
|
||||
return json;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user