合并分支 'dev_20230216' 到 'master'
Dev 20230216 查看合并请求 laws-foton-slrs/foton-slrs-system-rest!52
This commit is contained in:
@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@@ -40,6 +41,12 @@ public class DataSyncController {
|
|||||||
return iDataSyncService.dataSync();
|
return iDataSyncService.dataSync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("同步用户数据2")
|
||||||
|
@PostMapping("/importUserData2")
|
||||||
|
public String importUserData2(Long chuo) throws Exception {
|
||||||
|
return iDataSyncService.dataSync2(chuo);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("同步组织机构")
|
@ApiOperation("同步组织机构")
|
||||||
@PostMapping("/importOrgData")
|
@PostMapping("/importOrgData")
|
||||||
public String importOrgData() throws Exception {
|
public String importOrgData() throws Exception {
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ public interface IDataSyncService {
|
|||||||
|
|
||||||
public String dataSync();
|
public String dataSync();
|
||||||
|
|
||||||
|
public String dataSync2(Long chuo);
|
||||||
|
|
||||||
public String orgDataSync();
|
public String orgDataSync();
|
||||||
|
|
||||||
public String updateByOrgs();
|
public String updateByOrgs();
|
||||||
|
|||||||
+101
@@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -366,6 +367,106 @@ public class DataSyncServiceImpl implements IDataSyncService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = {RuntimeException.class,Exception.class})
|
||||||
|
public String dataSync2(Long chuo){
|
||||||
|
try{
|
||||||
|
SyncUserService syncUserService = new SyncUserService();
|
||||||
|
List<String> res = syncUserService.syncFotonUser2(chuo);
|
||||||
|
if(res!=null && !res.isEmpty()){
|
||||||
|
//存放岗位信息
|
||||||
|
Map<String, String> positionMap = new HashMap<>();
|
||||||
|
TsPosition position = new TsPosition();
|
||||||
|
position.setCurrent(1);
|
||||||
|
position.setPageSize(100000);
|
||||||
|
IPage<TsPosition> iPage = tsPositionService.getPosition(position);
|
||||||
|
List<TsPosition> positions=iPage.getRecords();
|
||||||
|
if (!positions.isEmpty()) {
|
||||||
|
positions.forEach(tsPosition -> {
|
||||||
|
positionMap.put(tsPosition.getName(), tsPosition.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
List<TsUser> addUserList = new ArrayList<>();
|
||||||
|
List<TsUser> upUserList = new ArrayList<>();
|
||||||
|
for (String s : res) {
|
||||||
|
JSONObject userData = JSONObject.parseObject(s);
|
||||||
|
if(userData.containsKey("results")){
|
||||||
|
JSONArray jsonArray = userData.getJSONArray("results");
|
||||||
|
jsonArray.forEach(object -> {
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(object.toString());
|
||||||
|
String userid = jsonObject.getString("userid");
|
||||||
|
TsUser userEO = tsUserService.getById(userid);
|
||||||
|
String userState = "";
|
||||||
|
if(userEO != null){
|
||||||
|
userState = "UPDATE";
|
||||||
|
}else{
|
||||||
|
userState = "ADD";
|
||||||
|
userEO = new TsUser();
|
||||||
|
}
|
||||||
|
//先获取岗位以及岗位id
|
||||||
|
//设置岗位
|
||||||
|
if (null != jsonObject.getString("title")) {
|
||||||
|
//通过岗位名称查询系统表中是否有岗位,有则设定用户的岗位为系统中的岗位,否则新增
|
||||||
|
if (null == positionMap.get(jsonObject.getString("title"))) {
|
||||||
|
TsPosition tsPosition = new TsPosition();
|
||||||
|
tsPosition.setId(String.valueOf(UUID.randomUUID()));
|
||||||
|
tsPosition.setName(jsonObject.getString("title"));
|
||||||
|
tsPositionService.addPosition(tsPosition);
|
||||||
|
//放入岗位的map集合中
|
||||||
|
positionMap.put(tsPosition.getName(), tsPosition.getId());
|
||||||
|
//放入类中
|
||||||
|
userEO.setPositionName(tsPosition.getName());
|
||||||
|
userEO.setPositionId(tsPosition.getId());
|
||||||
|
} else {
|
||||||
|
userEO.setPositionName(jsonObject.getString("title").trim());
|
||||||
|
userEO.setPositionId(positionMap.get(jsonObject.getString("title").trim()));
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
userEO.setPositionId(null);
|
||||||
|
userEO.setPositionName(null);
|
||||||
|
}
|
||||||
|
//设置其他数据
|
||||||
|
Timestamp createTime = new Timestamp(new Date().getTime());
|
||||||
|
userEO.setState(jsonObject.getString("userStatus"));
|
||||||
|
userEO.setUname(null!=jsonObject.getString("name")?jsonObject.getString("name"):"");
|
||||||
|
userEO.setCreationTime(createTime);
|
||||||
|
userEO.setUserId(jsonObject.getString("userid"));
|
||||||
|
userEO.setAccount(jsonObject.getString("userid"));
|
||||||
|
userEO.setInstitutionId(null!=jsonObject.getString("orgNumber")?jsonObject.getString("orgNumber"):"" );
|
||||||
|
userEO.setInstitutionName(null!=jsonObject.getString("orgName")?jsonObject.getString("orgName"):"" );
|
||||||
|
//2022-05-23:用户同步增加状态标识,将停用的用户过滤掉
|
||||||
|
if("1".equals(jsonObject.getString("userStatus"))){
|
||||||
|
userEO.setValidFlag(ValidFlagEnum.VALID_TRUE.getValue()+"");
|
||||||
|
userEO.setDisableFlag(ValidFlagEnum.VALID_TRUE.getValue()+"");
|
||||||
|
}else{
|
||||||
|
userEO.setValidFlag(ValidFlagEnum.VALID_FALSE.getValue()+"");
|
||||||
|
userEO.setDisableFlag(ValidFlagEnum.VALID_FALSE.getValue()+"");
|
||||||
|
}
|
||||||
|
if("ADD".equals(userState)){
|
||||||
|
addUserList.add(userEO);
|
||||||
|
}else {
|
||||||
|
upUserList.add(userEO);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!addUserList.isEmpty()){
|
||||||
|
logger.debug("本次新增的用户为:"+JSONObject.toJSONString(addUserList));
|
||||||
|
tsUserService.saveBatch(addUserList);
|
||||||
|
}
|
||||||
|
if(!upUserList.isEmpty()){
|
||||||
|
logger.debug("本次更新的用户为:"+JSONObject.toJSONString(upUserList));
|
||||||
|
tsUserService.updateBatchById(upUserList);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
logger.info("本次获取用户的数据为空,原因有2种:1、没有同步数据 2、请求接口报错");
|
||||||
|
}
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
}
|
||||||
|
return "1";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = {RuntimeException.class,Exception.class})
|
@Transactional(rollbackFor = {RuntimeException.class,Exception.class})
|
||||||
|
|||||||
+3
-7
@@ -61,16 +61,12 @@ public class AskQuestionsController extends BaseController<AskQuestions> {
|
|||||||
if(StringUtils.isBlank(askQuestions.getUserId())){
|
if(StringUtils.isBlank(askQuestions.getUserId())){
|
||||||
return Result.error();
|
return Result.error();
|
||||||
}
|
}
|
||||||
Set<String> askIdList = askQuestionsService.getAskQuestionsPage(askQuestions);
|
QueryWrapper queryWrapper = askQuestionsService.getqueryWrapper(askQuestions);
|
||||||
//查询出所有的回答
|
//查询出所有的回答
|
||||||
IPage<AskQuestions> iPage = new Page<>();
|
IPage<AskQuestions> iPage = new Page<>();
|
||||||
iPage.setSize(askQuestions.getPageSize());
|
iPage.setSize(askQuestions.getPageSize());
|
||||||
iPage.setPages(askQuestions.getPage());
|
//iPage.setPages(askQuestions.getPage());
|
||||||
QueryWrapper queryWrapper = new QueryWrapper();
|
iPage.setCurrent(askQuestions.getPage());
|
||||||
queryWrapper.orderByDesc("QUESTION_TIME");
|
|
||||||
if(!askIdList.isEmpty()){
|
|
||||||
queryWrapper.in("id",askIdList);
|
|
||||||
}
|
|
||||||
IPage<AskQuestions> page = askQuestionsService.page(iPage,queryWrapper);
|
IPage<AskQuestions> page = askQuestionsService.page(iPage,queryWrapper);
|
||||||
if(!page.getRecords().isEmpty()){
|
if(!page.getRecords().isEmpty()){
|
||||||
for (AskQuestions data : page.getRecords()){
|
for (AskQuestions data : page.getRecords()){
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.adc.da.slrs.StandardQA.entity.AskQuestions;
|
|||||||
import com.adc.da.slrs.StandardQA.entity.AskQuestionsPage;
|
import com.adc.da.slrs.StandardQA.entity.AskQuestionsPage;
|
||||||
import com.adc.da.slrs.StandardQA.entity.Reply;
|
import com.adc.da.slrs.StandardQA.entity.Reply;
|
||||||
import com.adc.da.util.http.ResponseMessage;
|
import com.adc.da.util.http.ResponseMessage;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
@@ -34,4 +35,7 @@ public interface AskQuestionsService extends IService<AskQuestions> {
|
|||||||
List<Reply> getAskQuestionsByakId(String id,String state,String userId);
|
List<Reply> getAskQuestionsByakId(String id,String state,String userId);
|
||||||
|
|
||||||
Set<String> getAskQuestionsPage(AskQuestionsPage askQuestions);
|
Set<String> getAskQuestionsPage(AskQuestionsPage askQuestions);
|
||||||
|
|
||||||
|
QueryWrapper getqueryWrapper(AskQuestionsPage askQuestions);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+66
-26
@@ -150,49 +150,89 @@ public class AskQuestionsServiceImpl extends ServiceImpl<AskQuestionsDao, AskQue
|
|||||||
public Set<String> getAskQuestionsPage(AskQuestionsPage askQuestions) {
|
public Set<String> getAskQuestionsPage(AskQuestionsPage askQuestions) {
|
||||||
//当前人是法规部门 则返回未被回答的提问信息
|
//当前人是法规部门 则返回未被回答的提问信息
|
||||||
List<String> uId = askQuestionsDao.getUId();
|
List<String> uId = askQuestionsDao.getUId();
|
||||||
for (String uid : uId){
|
if(!uId.isEmpty()) {
|
||||||
if(uid.equals(askQuestions.getUserId())){
|
for (String uid : uId) {
|
||||||
//查询所有的问 答
|
if (uid.equals(askQuestions.getUserId())) {
|
||||||
List<AskQuestions> askQuestionsList = baseMapper.selectList(null);
|
//查询所有的问 答
|
||||||
List<Reply> repLies = replyDao.selectList(null);
|
List<AskQuestions> askQuestionsList = baseMapper.selectList(null);
|
||||||
List<AskQuestions> askList = new ArrayList<>();
|
List<Reply> repLies = replyDao.selectList(null);
|
||||||
for (AskQuestions ask: askQuestionsList){
|
List<AskQuestions> askList = new ArrayList<>();
|
||||||
for (Reply reply: repLies){
|
for (AskQuestions ask : askQuestionsList) {
|
||||||
if(ask.getId().equals(reply.getAskId())){
|
for (Reply reply : repLies) {
|
||||||
askList.add(ask);
|
if (ask.getId().equals(reply.getAskId())) {
|
||||||
|
askList.add(ask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
askQuestionsList.removeAll(askList.stream().distinct().collect(Collectors.toList()));
|
||||||
|
Set<String> askIdList = new HashSet<>();
|
||||||
|
//所有没有回答的问题
|
||||||
|
for (AskQuestions ask : askQuestionsList) {
|
||||||
|
askIdList.add(ask.getId());
|
||||||
|
}
|
||||||
|
return askIdList;
|
||||||
}
|
}
|
||||||
askQuestionsList.removeAll(askList.stream().distinct().collect(Collectors.toList()));
|
|
||||||
Set<String> askIdList = new HashSet<>();
|
|
||||||
//所有没有回答的问题
|
|
||||||
for (AskQuestions ask: askQuestionsList){
|
|
||||||
askIdList.add(ask.getId());
|
|
||||||
}
|
|
||||||
//查询出所有的回答
|
|
||||||
return askIdList;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 不是法规部门 但是被邀请回答
|
// 不是法规部门 但是被邀请回答 和自己的提问
|
||||||
|
// 当前人的提问
|
||||||
|
Set<String> askIdList = new HashSet<>();
|
||||||
QueryWrapper<AskQuestions> askQuestionsQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<AskQuestions> askQuestionsQueryWrapper = new QueryWrapper<>();
|
||||||
askQuestionsQueryWrapper.eq("QUESTIONER",askQuestions.getUserId());
|
askQuestionsQueryWrapper.eq("QUESTIONER",askQuestions.getUserId());
|
||||||
List<AskQuestions> askQuestionsList = baseMapper.selectList(askQuestionsQueryWrapper);
|
List<AskQuestions> askQuestionsList = baseMapper.selectList(askQuestionsQueryWrapper);
|
||||||
Set<String> askIdList = new HashSet<>();
|
// 当前人的提问没有被回答的
|
||||||
//所有没有回答的问题
|
if(!askQuestionsList.isEmpty()) {
|
||||||
for (AskQuestions ask: askQuestionsList){
|
for (AskQuestions ask :askQuestionsList) {
|
||||||
askIdList.add(ask.getId());
|
QueryWrapper<Reply> replyQueryWrapper = new QueryWrapper<>();
|
||||||
|
replyQueryWrapper.eq("ASK_ID",ask.getId());
|
||||||
|
List<Reply> replies = replyDao.selectList(replyQueryWrapper);
|
||||||
|
if(replies.isEmpty()){
|
||||||
|
askIdList.add(ask.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 邀请当前人回答
|
//邀请当前人回答 当前人未回答
|
||||||
QueryWrapper<AskUser> objectQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<AskUser> objectQueryWrapper = new QueryWrapper<>();
|
||||||
objectQueryWrapper.eq("USID",askQuestions.getUserId());
|
objectQueryWrapper.eq("USID",askQuestions.getUserId());
|
||||||
List<AskUser> askUsers = askUserService.list(objectQueryWrapper);
|
List<AskUser> askUsers = askUserService.list(objectQueryWrapper);
|
||||||
for (AskUser askUser: askUsers){
|
if(!askUsers.isEmpty()){
|
||||||
askIdList.add(askUser.getAsdId());
|
for (AskUser ask :askUsers) {
|
||||||
|
QueryWrapper<Reply> replyQueryWrapper = new QueryWrapper<>();
|
||||||
|
replyQueryWrapper.eq("ASK_ID",ask.getAsdId());
|
||||||
|
replyQueryWrapper.eq("ANSWERER",askQuestions.getUserId());
|
||||||
|
List<Reply> replies = replyDao.selectList(replyQueryWrapper);
|
||||||
|
if(replies.isEmpty()){
|
||||||
|
askIdList.add(ask.getAsdId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//查询出所有的回答
|
//查询出所有的回答
|
||||||
return askIdList;
|
return askIdList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QueryWrapper getqueryWrapper(AskQuestionsPage askQuestions) {
|
||||||
|
Set<String> askIdList = getAskQuestionsPage(askQuestions);
|
||||||
|
IPage<AskQuestions> iPage = new Page<>();
|
||||||
|
iPage.setSize(askQuestions.getPageSize());
|
||||||
|
iPage.setCurrent(askQuestions.getPage());
|
||||||
|
QueryWrapper queryWrapper = new QueryWrapper();
|
||||||
|
queryWrapper.orderByDesc("QUESTION_TIME");
|
||||||
|
if(!askIdList.isEmpty()){
|
||||||
|
queryWrapper.in("id",askIdList);
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(askQuestions.getClassification())){
|
||||||
|
queryWrapper.eq("CLASSIFICATION",askQuestions.getClassification());
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(askQuestions.getProblemDescription())){
|
||||||
|
queryWrapper.like("PROBLEM_DESCRIPTION",askQuestions.getProblemDescription());
|
||||||
|
}
|
||||||
|
if(StringUtils.isNotBlank(askQuestions.getQuestioner())){
|
||||||
|
queryWrapper.eq("QUESTIONER",askQuestions.getQuestioner());
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public ResponseMessage selectAskReply(String id) {
|
public ResponseMessage selectAskReply(String id) {
|
||||||
ArrayList<AskQuestionsReplyVO> objects = new ArrayList<>();
|
ArrayList<AskQuestionsReplyVO> objects = new ArrayList<>();
|
||||||
|
|||||||
@@ -69,6 +69,51 @@ public class SyncUserService {
|
|||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> syncFotonUser2(Long chuo)throws Exception{
|
||||||
|
String appuser = "app_slrs";
|
||||||
|
String appkey = "Fxi5LHbI5yGbQQDpVp86GcCdXeC5Bjfe";
|
||||||
|
AuthUtils util = new AuthUtils(appuser, appkey, null);
|
||||||
|
|
||||||
|
List<String> json=new ArrayList<>();
|
||||||
|
byte[] cookie = null;
|
||||||
|
do {
|
||||||
|
Map<String, Object> params = new HashMap<String, Object>();
|
||||||
|
params.put("cookie", Base64.encodeBase64String(cookie));
|
||||||
|
params.put("timestamp", chuo);
|
||||||
|
|
||||||
|
// 用户参数
|
||||||
|
params.put("filter", "(userid=*)");
|
||||||
|
params.put("basedn", "ou=People,o=foton.com.cn,o=isp");
|
||||||
|
System.out.println("RequestBody:" + params.toString());
|
||||||
|
// 用户测试
|
||||||
|
String rs = util.getResponseFromServer("http://idmsync.foton.com.cn/rest/users/getUserList", params);
|
||||||
|
log.debug(rs);
|
||||||
|
JSONObject responseStr = JSON.parseObject(rs);
|
||||||
|
if(responseStr.containsKey("status") && responseStr.getBoolean("status")){
|
||||||
|
json.add(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);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(),e);
|
||||||
|
if (e.getMessage().contains("is not a JSONArray")) {
|
||||||
|
cookie = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (cookie != null);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<String> syncFotonOrg()throws Exception{
|
public List<String> syncFotonOrg()throws Exception{
|
||||||
|
|||||||
Reference in New Issue
Block a user