Merge branch 'develop_master' into develop_migration

This commit is contained in:
super_liu
2022-06-14 19:31:54 +08:00
34 changed files with 1481 additions and 234 deletions
@@ -26,6 +26,7 @@ public class ConvertMqEO extends BaseEntity {
private String mqCode;
private String id;
private String addOrUp;
private String name;
//向文件表添加信息
private String lawsId;
@@ -220,4 +221,12 @@ public class ConvertMqEO extends BaseEntity {
public void setLawsFileClassify(String lawsFileClassify) {
this.lawsFileClassify = lawsFileClassify;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@@ -5,6 +5,7 @@ import com.adc.da.slrs.DataSync.service.IDataSyncService;
import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
@@ -22,13 +23,22 @@ public class ScheduledSync {
@Autowired
private IDataSyncService iDataSyncService;
/**
* 根据配置文件设置是否开启定时器
*/
@Value("${isNotScheduled}")
private boolean isNotScheduled; //是否开启定时器
//每天凌晨两点执行
@Scheduled(cron="0 0 2 * * ?")
@Async
public void syncSchedulingTasks() throws Exception {
iDataSyncService.orgDataSync(); //时间短
iDataSyncService.dataSync(); //时间长
public void syncSchedulingTasks() {
if(isNotScheduled){
log.info("======================================开始同步基础数据========================================");
iDataSyncService.orgDataSync(); //时间短
iDataSyncService.dataSync(); //时间长
log.info("======================================结束同步基础数据========================================");
}
}
}
@@ -2,7 +2,7 @@ package com.adc.da.slrs.DataSync.service;
public interface IDataSyncService {
public String dataSync() throws Exception;
public String dataSync();
public String orgDataSync() throws Exception;
public String orgDataSync();
}
@@ -1,5 +1,6 @@
package com.adc.da.slrs.DataSync.service.impl;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.DataSync.service.IDataSyncService;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
@@ -8,12 +9,20 @@ import com.adc.da.slrs.sarPosition.service.ITsPositionService;
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.adc.da.sys.constant.ValidFlagEnum;
import com.adc.da.sys.entity.UserOrgEO;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.log4j.Log4j;
import org.apache.ibatis.jdbc.Null;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.sql.Timestamp;
import java.util.*;
@@ -29,145 +38,179 @@ public class DataSyncServiceImpl implements IDataSyncService {
@Autowired
ITsInstitutionService tsInstitutionService;
private static Logger logger = LoggerFactory.getLogger(DataSyncServiceImpl.class);
@Override
public String dataSync() throws Exception {
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonUser();
//存放岗位信息
Map<String, String> positionMap = new HashMap<>();
Map<String, String> useDistinct = 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());
});
}
/**
* 得到数据时,删除系统表中所有用户信息
*/
if (res.size()>0){
tsUserService.deleteUser();
}
for (String s : res) {
//获取到所有用户数据
List<TsUser> tsUsers = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
//先获取岗位以及岗位id
TsUser tsUser = new TsUser();
UserOrgEO userOrgEO = new UserOrgEO();
//设置岗位
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());
//放入类中
tsUser.setPositionName(tsPosition.getName());
tsUser.setPositionId(tsPosition.getId());
} else {
tsUser.setPositionName(jsonObject.getString("title").trim());
tsUser.setPositionId(positionMap.get(jsonObject.getString("title").trim()));
}
@Transactional(rollbackFor = {RuntimeException.class,Exception.class})
public String dataSync(){
try{
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonUser();
//存放岗位信息
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);
}
});
}
//设置其他数据
Timestamp createTime = new Timestamp(new Date().getTime());
tsUser.setState(jsonObject.getString("userStatus"));
tsUser.setUname(null!=jsonObject.getString("name")?jsonObject.getString("name"):"");
tsUser.setValidFlag("0");
tsUser.setDisableFlag("0");
tsUser.setCreationTime(createTime);
tsUser.setUserId(jsonObject.getString("userid"));
tsUser.setAccount(jsonObject.getString("userid"));
tsUser.setInstitutionId(null!=jsonObject.getString("orgNumber")?jsonObject.getString("orgNumber"):"" );
tsUser.setInstitutionName(null!=jsonObject.getString("orgName")?jsonObject.getString("orgName"):"" );
//2022-05-23:用户同步增加状态标识,将停用的用户过滤掉
if (null == useDistinct.get(jsonObject.getString("userid")) && "1".equals(jsonObject.getString("userStatus"))) {
tsUsers.add(tsUser);
}
// //测试数据删除
// if (! "anbin".equals(jsonObject.getString("userid"))){
//
// //测试数据修改
// if ("anbing".equals(jsonObject.getString("userid"))){
// tsUser.setUname("DDDDDD");
// tsUsers.add(tsUser);
// } else if (null == useDistinct.get(jsonObject.getString("userid"))) {
// tsUsers.add(tsUser);
//
// }
// }
useDistinct.put(tsUser.getUserId(),tsUser.getUserId());
});
tsUserService.saveBatch(tsUsers);
}
if(!addUserList.isEmpty()){
logger.debug("本次新增的用户为:"+JSONObject.toJSONString(addUserList));
tsUserService.saveBatch(addUserList);
}
if(!upUserList.isEmpty()){
logger.debug("本次更新的用户为:"+JSONObject.toJSONString(upUserList));
tsUserService.updateBatchById(upUserList);
}
}catch(Exception e){
logger.error(e.getMessage(),e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
//测试数据添加
// TsUser addUser = new TsUser();
// addUser.setState("FFFFFFF");
// addUser.setUname("zhaokaiyao");
// addUser.setValidFlag("0");
// addUser.setDisableFlag("0");
// addUser.setCreationTime(new Timestamp(new Date().getTime()));
// addUser.setUserId("FFFFFFF");
// addUser.setAccount("zhaokaiyao");
// addUser.setInstitutionId("10022745");
// addUser.setInstitutionName("福田营销其他");
//
// List<TsUser> addUserList = Arrays.asList(addUser);
// tsUserService.saveBatch(addUserList);
return "1";
}
public String orgDataSync() throws Exception {
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonOrg();
//获取到所有用户数据
List<String> strings=new ArrayList<>();
tsInstitutionService.clearData();
for (String s : res) {
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
strings.add(jsonObject.getString("parentOrgNumber"));
});
}
for (String s : res) {
List<TsInstitution> tsInstitutions = new ArrayList<>();
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
TsInstitution tsInstitution=new TsInstitution();
tsInstitution.setId(jsonObject.getString("orgNumber"));
tsInstitution.setName(jsonObject.getString("orgName"));
tsInstitution.setHasChild(strings.contains(jsonObject.getString("orgNumber"))?"1":"0");
tsInstitution.setParentId(jsonObject.getString("parentOrgNumber"));
//部门为"null"的数据不保存
if (!"null".equals(jsonObject.getString("orgName"))){
tsInstitutions.add(tsInstitution);
@Transactional(rollbackFor = {RuntimeException.class,Exception.class})
public String orgDataSync(){
try{
SyncUserService syncUserService = new SyncUserService();
List<String> res = syncUserService.syncFotonOrg();
//获取到所有用户数据
List<String> strings=new ArrayList<>();
//tsInstitutionService.clearData();
for (String s : res) {
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
strings.add(jsonObject.getString("parentOrgNumber"));
});
}
List<TsInstitution> allTsInstitutionList = tsInstitutionService.list();
List<TsInstitution> addTsInstitutionList = new ArrayList<>();
List<TsInstitution> updateTsInstitutionList = new ArrayList<>();
List<TsInstitution> delTsInstitutionList = new ArrayList<>();
Set<String> syncAllIdList = new HashSet<>();
for (String s : res) {
JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results"));
if(jsonArray!=null){
jsonArray.forEach(object -> {
JSONObject jsonObject = JSONObject.parseObject(object.toString());
TsInstitution tsInstitution=new TsInstitution();
tsInstitution.setId(jsonObject.getString("orgNumber"));
tsInstitution.setName(jsonObject.getString("orgName"));
tsInstitution.setHasChild(strings.contains(jsonObject.getString("orgNumber"))?"1":"0");
tsInstitution.setParentId(jsonObject.getString("parentOrgNumber"));
//部门为"null"的数据不保存
if (!"null".equals(jsonObject.getString("orgName"))){
TsInstitution institution = tsInstitutionService.getById(tsInstitution.getId());
if(institution!=null){
updateTsInstitutionList.add(tsInstitution);
}else{
addTsInstitutionList.add(tsInstitution);
}
syncAllIdList.add(tsInstitution.getId());
}
});
}
});
tsInstitutionService.saveBatch(tsInstitutions);
}
//遍历出来需要删除的数据
for(TsInstitution data :allTsInstitutionList){
if(!syncAllIdList.contains(data.getId())){
delTsInstitutionList.add(data);
}
}
//需要新增的数据
if(!addTsInstitutionList.isEmpty()){
logger.debug("本次新增的组织机构为:"+JSONObject.toJSONString(addTsInstitutionList));
tsInstitutionService.saveBatch(addTsInstitutionList);
}
//需要更新的数据
if(!updateTsInstitutionList.isEmpty()){
logger.debug("本次更新的组织机构为:"+JSONObject.toJSONString(updateTsInstitutionList));
tsInstitutionService.updateBatchById(updateTsInstitutionList);
}
//需要删除的数据
if(!delTsInstitutionList.isEmpty()){
logger.debug("本次删除的组织机构为:"+JSONObject.toJSONString(delTsInstitutionList));
List<String> delIdList = new ArrayList<>();
for(TsInstitution data : delTsInstitutionList){
delIdList.add(data.getId());
}
tsInstitutionService.removeByIds(delIdList);
}
}catch(Exception e){
logger.error(e.getMessage(),e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return "1";
}
@@ -0,0 +1,225 @@
package com.adc.da.slrs.StandardQA.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.NewsFeed.entity.NewsFeed;
import com.adc.da.slrs.StandardQA.dao.AskQuestionsDao;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.AskQuestionsPage;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.entity.Subscription;
import com.adc.da.slrs.StandardQA.service.Impl.AskQuestionsServiceImpl;
import com.adc.da.slrs.StandardQA.service.Impl.AskUserServiceImpl;
import com.adc.da.util.UUIDUtils;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:18
* @Version 1.0
*/
@RestController
@RequestMapping("/${restPath}/lawss/AskQuestions")
@Api(description = "|AskQuestions|")
public class AskQuestionsController extends BaseController<AskQuestions> {
@Autowired
private AskQuestionsServiceImpl askQuestionsService;
@Autowired
private AskQuestionsDao askQuestionsDao;
@Autowired
private AskUserServiceImpl askUserService;
@GetMapping("/getAskQuestionsPage")
public ResponseMessage<IPage<AskQuestions>> getAskQuestionsPage(AskQuestionsPage askQuestions){
IPage<AskQuestions> iPage = new Page<>();
iPage.setSize(askQuestions.getPageSize());
iPage.setPages(askQuestions.getPage());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.orderByDesc("QUESTION_TIME");
IPage<AskQuestions> page = askQuestionsService.page(iPage,queryWrapper);
return Result.success(page);
}
/**
* 查询问题列表
* @return
*/
@GetMapping("/getAskQuestions")
public ResponseMessage getAskQuestions(){
QueryWrapper<AskQuestions> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("QUESTION_TIME");
List<AskQuestions> askQuestionsList=askQuestionsService.list(queryWrapper);
return Result.success(askQuestionsList);
}
/**
* 查看我的问题详情
* @param askQuestions
* @return
*/
@GetMapping("/getAskQuestionsDetails")
public ResponseMessage getAskQuestionsDetails(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.getAskQuestions(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 查看我回答的问题
* @param askQuestions
* @return
*/
@GetMapping("/getReplyDetails")
public ResponseMessage getReplyDetails(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.getReplyDetails(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 根据标准查询问题
* @param askQuestions
* @return
*/
@GetMapping("/getReplyDetailsByStandId")
public ResponseMessage getReplyDetailsByStandId(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.getReplyDetailsByStandId(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 根据标准编号查询我的回答
* @param standardId
* @return
*/
@GetMapping("/getAskQuestionsByStandardId")
public ResponseMessage getAskQuestionsByStandardId(String standardId){
List<AskQuestions> askQuestionsList = askQuestionsService.getAskQuestionsByStandardId(standardId);
return Result.success(askQuestionsList);
}
/**
* 根据问题ID查询回答***
* @param id
* @return
*/
@GetMapping("/getAskQuestionsByakId")
public ResponseMessage getAskQuestionsByakId(String id){
List<Reply> askQuestionsList = askQuestionsService.getAskQuestionsByakId(id);
return Result.success(askQuestionsList);
}
/**
* 添加问题
* @param askQuestions
* @return
*/
@PostMapping("/insertAskQuestions")
public ResponseMessage insertAskQuestions(@RequestBody AskQuestions askQuestions){
askQuestions.setId(UUIDUtils.randomUUID20());
askQuestions.setAppendixId(askQuestions.getFileList().get(0).getAttId());
askQuestions.setAppendixName(askQuestions.getFileList().get(0).getName());
askQuestions.setQuestionTime(new Date());
List<String> uId = askQuestionsDao.getUId();
List<AskUser> askUserList = new ArrayList<>();
for (String id:uId) {
AskUser askUser = new AskUser();
askUser.setAsdId(askQuestions.getId());
askUser.setUsid(id);
askUserList.add(askUser);
}
//添加问题分配人员
askUserService.saveBatch(askUserList);
if(askQuestionsService.save(askQuestions)){
return Result.success("200","添加成功");
}else {
return Result.error("-1","添加失败");
}
}
/**
* 查询订阅问题
* @param askQuestions
* @return
*/
@GetMapping("/getAskQuestionsBySubscription")
public ResponseMessage getAskQuestionsBySubscription(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.getAskQuestionsBySubscription(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 根据标准id查询订阅
* @param askQuestions
* @return
*/
@GetMapping("/getSubscriptionByStandId")
public ResponseMessage getSubscriptionByStandId(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.getSubscriptionByStandId(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 相似查询
* @param problemDescription
* @return
*/
@GetMapping("/resemblance")
public ResponseMessage resemblance(String problemDescription){
List<String> askQuestions = Arrays.asList(problemDescription.split(""));
List<AskQuestions> askQuestionsList = askQuestionsService.resemblance(askQuestions);
return Result.success(askQuestionsList);
}
/**
* 根据分类查询问题
* @param classification
* @return
*/
@GetMapping("/getAskQuestionsReply")
public ResponseMessage getAskQuestionsReply(String classification){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.select("DISTINCT STANDARD_ID");
queryWrapper.select("STANDARD_NAME");
queryWrapper.select("STANDARD_ENCDOING");
queryWrapper.eq("CLASSIFICATION",classification);
List<AskQuestions> askQuestionsList = askQuestionsService.list(queryWrapper);
return Result.success(askQuestionsList);
}
/**
* 问答库的根据标准ID查询问题
* @param id
* @return
*/
@GetMapping("/getSubscription")
public ResponseMessage getArchiveAskQuestions(String id){
List<AskQuestions> askQuestionsList = askQuestionsService.getArchiveAskQuestions(id);
return Result.success(askQuestionsList);
}
@GetMapping("/retrieve")
public ResponseMessage retrieve(AskQuestions askQuestions){
List<AskQuestions> askQuestionsList = askQuestionsService.retrieve(askQuestions);
return Result.success(askQuestionsList);
}
}
@@ -0,0 +1,37 @@
package com.adc.da.slrs.StandardQA.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.adc.da.slrs.StandardQA.service.Impl.AskQuestionsServiceImpl;
import com.adc.da.slrs.StandardQA.service.Impl.AskUserServiceImpl;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: qk
* @Date: 2022/6/2 0002 8:44
* @Version 1.0
*/
@RestController
@RequestMapping("/${restPath}/lawss/AskUser")
@Api(description = "|AskUser|")
public class AskUserController extends BaseController<AskUser> {
@Autowired
private AskUserServiceImpl askUserService;
@PostMapping("/insertAskUser")
public ResponseMessage insertAskUser(@RequestBody AskUser askUser){
if(askUserService.save(askUser)){
return Result.success("200","邀请成功");
}else {
return Result.error("-1","添加失败");
}
}
}
@@ -0,0 +1,70 @@
package com.adc.da.slrs.StandardQA.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.service.Impl.ReplyServiceImpl;
import com.adc.da.util.UUIDUtils;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 10:55
* @Version 1.0
*/
@RestController
@RequestMapping("/${restPath}/lawss/Reply")
@Api(description = "| Reply|")
public class ReplyController extends BaseController<Reply> {
@Autowired
private ReplyServiceImpl replyService;
@PostMapping("/insertReply")
public ResponseMessage insertReply(@RequestBody Reply reply){
if(StringUtils.isEmpty(reply.getReply())){
return Result.error("-1","请输入回答内容");
}
if(reply.getFileList().size() >0) {
reply.setAppendixId(reply.getFileList().get(0).getAttId());
reply.setAppendixName(reply.getFileList().get(0).getName());
}
reply.setReplyTime(new Date());
reply.setId(UUIDUtils.randomUUID20());
if(replyService.save(reply)){
return Result.success("200","提交成功");
}else {
return Result.error("-1","添加失败");
}
}
@PostMapping("/updateReply")
public ResponseMessage updateReply(String id){
if(StringUtils.isEmpty(id)){
return Result.error("-1","请选择要归档的回答");
}
List<String> list = Arrays.asList(id.split(","));
for (String s: list) {
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.set("STATE","yes");
updateWrapper.eq("ID",s);
replyService.update(updateWrapper);
}
return Result.success("200","归档成功");
}
}
@@ -0,0 +1,44 @@
package com.adc.da.slrs.StandardQA.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.slrs.StandardQA.entity.Subscription;
import com.adc.da.slrs.StandardQA.service.Impl.SubscriptionServiceImpl;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: qk
* @Date: 2022/6/7 0007 11:18
* @Version 1.0
*/
@RestController
@RequestMapping("/${restPath}/lawss/Subscription")
@Api(description = "|Subscription|")
public class SubscriptionController extends BaseController<Subscription> {
@Autowired
private SubscriptionServiceImpl subscriptionService;
@PostMapping("/insertSubscription")
public ResponseMessage updateReply(@RequestBody Subscription subscription){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("ASK_ID",subscription.getAskId());
queryWrapper.eq("USID",subscription.getUsId());
int number = subscriptionService.count(queryWrapper);
if(number>0){
return Result.success("200","此问题已订阅");
}
if(subscriptionService.save(subscription)){
return Result.success("200","订阅成功");
}else {
return Result.success("-1","订阅失败");
}
}
}
@@ -0,0 +1,40 @@
package com.adc.da.slrs.StandardQA.dao;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:26
* @Version 1.0
*/
@Repository
public interface AskQuestionsDao extends BaseMapper<AskQuestions> {
List<AskQuestions> getAskQuestions (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> getReplyDetails (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> getReplyDetailsByStandId (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> getAskQuestionsBySubscription (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> retrieve (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> getSubscriptionByStandId (@Param("askQuestions") AskQuestions askQuestions);
List<AskQuestions> resemblance (@Param("chars") List<String> askQuestions);
List<AskQuestions> getAskQuestionsByStandardId (String standardId);
List<AskQuestions> getArchiveAskQuestions (String id);
List<Reply> getAskQuestionsByakId (String id);
List<String> getUId();
}
@@ -0,0 +1,15 @@
package com.adc.da.slrs.StandardQA.dao;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* @Author: qk
* @Date: 2022/6/2 0002 8:47
* @Version 1.0
*/
@Repository
public interface AskUserDao extends BaseMapper<AskUser> {
}
@@ -0,0 +1,15 @@
package com.adc.da.slrs.StandardQA.dao;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* @Author: qk
* @Date: 2022/5/31 0031 11:02
* @Version 1.0
*/
@Repository
public interface ReplyDao extends BaseMapper<Reply> {
}
@@ -0,0 +1,15 @@
package com.adc.da.slrs.StandardQA.dao;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.entity.Subscription;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* @Author: qk
* @Date: 2022/6/7 0007 11:19
* @Version 1.0
*/
@Repository
public interface SubscriptionDao extends BaseMapper<Subscription> {
}
@@ -0,0 +1,104 @@
package com.adc.da.slrs.StandardQA.entity;
import com.adc.da.base.entity.BaseEntity;
import com.adc.da.common.ConvertMqEO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:19
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="AskQuestions对象", description="")
public class AskQuestions extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@ApiModelProperty(value = "主键")
private String id;
@TableField("CLASSIFICATION")
@ApiModelProperty(value = "分类")
private String classification;
@TableField("PROBLEM_DESCRIPTION")
@ApiModelProperty(value = "问题描述")
private String problemDescription;
@TableField("QUESTIONER")
@ApiModelProperty(value = "提问人")
private String questioner;
@TableField("QUESTION_TIME")
@ApiModelProperty(value = "提问时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date questionTime;
@TableField("STANDARD_ENCDOING")
@ApiModelProperty(value = "标准编号")
private String standardEncdoing;
@TableField("STANDARD_NAME")
@ApiModelProperty(value = "标准名称")
private String standardName;
@TableField("STANDARD_ID")
@ApiModelProperty(value = "标准ID")
private String standardId;
@TableField("APPENDIX_ID")
@ApiModelProperty(value = "标准ID")
private String appendixId;
@TableField("APPENDIX_NAME")
@ApiModelProperty(value = "标准ID")
private String appendixName;
/**
* 回答人
*/
@TableField(exist = false)
private String answerer;
/**
* 回答
*/
@TableField(exist = false)
private String reply;
/**
* 回答时间
*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date replyTime;
/**
*附件路径
*/
@TableField(exist = false)
private String appendix;
@TableField(exist = false)
private List<ConvertMqEO> fileList;
@TableField(exist = false)
private String type;
@TableField(exist = false)
private String subscription;
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.StandardQA.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
* @Author: qk
* @Date: 2022/6/10 0010 14:48
* @Version 1.0
*/
@Data
public class AskQuestionsPage {
private Long page;
private Long pageSize;
}
@@ -0,0 +1,32 @@
package com.adc.da.slrs.StandardQA.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: qk
* @Date: 2022/6/2 0002 8:44
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="AskUser对象", description="")
public class AskUser extends BaseEntity {
@TableField("ASK_ID")
@ApiModelProperty(value = "问题ID")
private String asdId;
@TableField("USID")
@ApiModelProperty(value = "用户ID")
private String usid;
}
@@ -0,0 +1,71 @@
package com.adc.da.slrs.StandardQA.entity;
import com.adc.da.base.entity.BaseEntity;
import com.adc.da.common.ConvertMqEO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:20
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="Reply对象", description="")
public class Reply extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@ApiModelProperty(value = "主键")
private String id;
@TableField("REPLY")
@ApiModelProperty(value = "回答")
private String reply;
@TableField("STATE")
@ApiModelProperty(value = "状态(0:显示,1:不显示)")
private String state;
@TableField("REPLY_TIME")
@ApiModelProperty(value = "回答时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date replyTime;
@TableField("APPENDIX")
@ApiModelProperty(value = "附件")
private String appendix;
@TableField("ANSWERER")
@ApiModelProperty(value = "回答人")
private String answerer;
@TableField("ASK_ID")
@ApiModelProperty(value = "问题ID")
private String askId;
@TableField("APPENDIX_ID")
@ApiModelProperty(value = "附件ID")
private String appendixId;
@TableField("APPENDIX_NAME")
@ApiModelProperty(value = "附件名称")
private String appendixName;
@TableField(exist = false)
private List<ConvertMqEO> fileList;
}
@@ -0,0 +1,31 @@
package com.adc.da.slrs.StandardQA.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: qk
* @Date: 2022/6/7 0007 11:16
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="Subscription对象", description="")
public class Subscription extends BaseEntity {
@TableField("ASK_ID")
@ApiModelProperty(value = "问题ID")
private String askId;
@TableField("USID")
@ApiModelProperty(value = "用户ID")
private String usId;
}
@@ -0,0 +1,31 @@
package com.adc.da.slrs.StandardQA.service;
import com.adc.da.slrs.NewsFeed.entity.NewsFeed;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:22
* @Version 1.0
*/
public interface AskQuestionsService extends IService<AskQuestions> {
List<AskQuestions> getAskQuestions(AskQuestions askQuestions);
List<AskQuestions> getReplyDetails(AskQuestions askQuestions);
List<AskQuestions> getReplyDetailsByStandId(AskQuestions askQuestions);
List<AskQuestions> getAskQuestionsBySubscription(AskQuestions askQuestions);
List<AskQuestions> retrieve(AskQuestions askQuestions);
List<AskQuestions> getSubscriptionByStandId(AskQuestions askQuestions);
List<AskQuestions> resemblance(List<String> askQuestions);
List<AskQuestions> getAskQuestionsByStandardId(String standardId);
List<AskQuestions> getArchiveAskQuestions(String id);
List<Reply> getAskQuestionsByakId(String id);
}
@@ -0,0 +1,13 @@
package com.adc.da.slrs.StandardQA.service;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Author: qk
* @Date: 2022/6/2 0002 8:47
* @Version 1.0
*/
public interface AskUserService extends IService<AskUser> {
}
@@ -0,0 +1,79 @@
package com.adc.da.slrs.StandardQA.service.Impl;
import com.adc.da.slrs.StandardQA.dao.AskQuestionsDao;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.service.AskQuestionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author: qk
* @Date: 2022/5/31 0031 9:23
* @Version 1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class AskQuestionsServiceImpl extends ServiceImpl<AskQuestionsDao, AskQuestions> implements AskQuestionsService {
@Autowired
private AskQuestionsDao askQuestionsDao;
@Override
public List<AskQuestions> getAskQuestions(AskQuestions askQuestions) {
return askQuestionsDao.getAskQuestions(askQuestions);
}
@Override
public List<AskQuestions> getReplyDetails(AskQuestions askQuestions) {
return askQuestionsDao.getReplyDetails(askQuestions);
}
@Override
public List<AskQuestions> getReplyDetailsByStandId(AskQuestions askQuestions) {
return askQuestionsDao.getReplyDetailsByStandId(askQuestions);
}
@Override
public List<AskQuestions> getAskQuestionsBySubscription(AskQuestions askQuestions) {
return askQuestionsDao.getAskQuestionsBySubscription(askQuestions);
}
@Override
public List<AskQuestions> retrieve(AskQuestions askQuestions) {
return askQuestionsDao.retrieve(askQuestions);
}
@Override
public List<AskQuestions> getSubscriptionByStandId(AskQuestions askQuestions) {
return askQuestionsDao.getSubscriptionByStandId(askQuestions);
}
@Override
public List<AskQuestions> resemblance(List<String> askQuestions) {
return askQuestionsDao.resemblance(askQuestions);
}
@Override
public List<AskQuestions> getAskQuestionsByStandardId(String standardId) {
return askQuestionsDao.getAskQuestionsByStandardId(standardId);
}
@Override
public List<AskQuestions> getArchiveAskQuestions(String id) {
return askQuestionsDao.getArchiveAskQuestions(id);
}
@Override
public List<Reply> getAskQuestionsByakId(String id) {
return askQuestionsDao.getAskQuestionsByakId(id);
}
}
@@ -0,0 +1,22 @@
package com.adc.da.slrs.StandardQA.service.Impl;
import com.adc.da.slrs.StandardQA.dao.AskUserDao;
import com.adc.da.slrs.StandardQA.entity.AskUser;
import com.adc.da.slrs.StandardQA.service.AskUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Author: qk
* @Date: 2022/6/2 0002 8:47
* @Version 1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class AskUserServiceImpl extends ServiceImpl<AskUserDao, AskUser> implements AskUserService {
}
@@ -0,0 +1,19 @@
package com.adc.da.slrs.StandardQA.service.Impl;
import com.adc.da.slrs.StandardQA.dao.ReplyDao;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.service.ReplyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Author: qk
* @Date: 2022/5/31 0031 11:03
* @Version 1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ReplyServiceImpl extends ServiceImpl<ReplyDao, Reply> implements ReplyService {
}
@@ -0,0 +1,20 @@
package com.adc.da.slrs.StandardQA.service.Impl;
import com.adc.da.slrs.StandardQA.dao.SubscriptionDao;
import com.adc.da.slrs.StandardQA.entity.Subscription;
import com.adc.da.slrs.StandardQA.service.SubscriptionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Author: qk
* @Date: 2022/6/7 0007 11:20
* @Version 1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class SubscriptionServiceImpl extends ServiceImpl<SubscriptionDao, Subscription> implements SubscriptionService {
}
@@ -0,0 +1,13 @@
package com.adc.da.slrs.StandardQA.service;
import com.adc.da.slrs.StandardQA.entity.AskQuestions;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Author: qk
* @Date: 2022/5/31 0031 11:02
* @Version 1.0
*/
public interface ReplyService extends IService<Reply> {
}
@@ -0,0 +1,13 @@
package com.adc.da.slrs.StandardQA.service;
import com.adc.da.slrs.StandardQA.entity.Reply;
import com.adc.da.slrs.StandardQA.entity.Subscription;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Author: qk
* @Date: 2022/6/7 0007 11:20
* @Version 1.0
*/
public interface SubscriptionService extends IService<Subscription> {
}
@@ -47,7 +47,7 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
if(sarMenuStandardNew.getDicId()!=null){
queryWrapper.eq("DIC_ID", sarMenuStandardNew.getDicId());
}
queryWrapper.in(null!=access,"ID",access);
queryWrapper.in(null!=access && !access.isEmpty(),"ID",access);
queryWrapper.isNull("PARENT_ID");
queryWrapper.orderByAsc("DISPLAY_SEQ");
TsResources=dao.selectList(queryWrapper);
@@ -268,7 +268,7 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
}
queryWrapper.isNull("PARENT_ID");
queryWrapper.eq("VALID_FLAG","0");
queryWrapper.in(null!=access,"ID",access);
queryWrapper.in(null!=access && !access.isEmpty(),"ID",access);
queryWrapper.orderByAsc("DISPLAY_SEQ");
TsResources=dao.selectList(queryWrapper);
@@ -322,6 +322,16 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
}
}
TsResource.setValidFlag(0);
String pIds =TsResource.getParentIds();
if(StringUtils.isNotBlank(pIds)){
if(!pIds.startsWith(",")){
pIds = ","+pIds;
}
if(!pIds.endsWith(",")){
pIds = pIds+",";
}
TsResource.setParentIds(pIds);
}
dao.insert(TsResource);
// 把新生成的子目录加入用户的权限的下----插入ts_role_resource表
HashMap<String, Object> map = new HashMap<>();