田源
2023-09-18 7647ae9a3db4712b4154adc6317584b66429212b
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,12 +53,23 @@
import com.vci.ubcs.system.vo.DeptVO;
import com.vci.ubcs.system.vo.RoleVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.tools.ant.taskdefs.condition.Http;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -74,20 +85,25 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
   @Value("${code.universalinterface.checkSystemConfig:true}")
   public boolean CODE_CHECKCONFIG;
   @Autowired(required = false)
   private AttributeMapConfig attributeMapConfig;
   /***
    * 人员相关配置服务
    */
   @Autowired(required = false)
   private PersonAndDeptConfig personAndDeptConfig;
   /**
    * 缓存服务
    */
   //@Autowired
   //private RedisService redisService;
   /**
    * 主题库分类的服务
    */
@@ -127,7 +143,6 @@
   /**
    * 密级的服务
    */
   @Resource
   private MdmIOService mdmIOService;
@@ -142,12 +157,43 @@
    */
   @Resource
   private IDockingLogeService dockingLogeService;
   @Resource
   private IPasswordFreeLoginService passwordFreeLoginService;
   private  static String separator="##VCI##";
   private  String errorid="0";
   private String msg="成功";
   private  String objerrorCode="0";
   private String objerrorMsg="成功";
   private final ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
   @Resource
   private WebServiceContext webServiceContext;
   @Override
   public void setThreadLocal(ThreadLocal<HttpServletRequest> requestThreadLocal){
      this.threadLocal.set(requestThreadLocal.get());
      requestThreadLocal.remove();
   }
   @WebMethod
   private HttpServletRequest getRequest() {
      //rest请求方式获取request
      HttpServletRequest request = this.threadLocal.get();
      if(Func.isEmpty(request)){
         try {
            // webservice请求方式获取HttpServletRequest对象
            request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
         }catch (Exception e){
            throw new ServiceException("获取httpServletRequest失败,原因:"+e.getMessage());
         }
      }else {
         this.threadLocal.remove();
      }
      return request;
   }
   /***
    * 申请编码接口
    * @param data 传递的数据参数
@@ -190,9 +236,11 @@
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
         AuthUtil.getUser();
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
         //这是账号信息
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
@@ -341,8 +389,6 @@
      //调用集团申请接口申请集团码
      return resultStr;
   }
   /****
    * 人员数据同步
@@ -616,6 +662,7 @@
      return resultOrgData;
   }
   /****
    * 部门数据同步
    * @param orgData
@@ -882,6 +929,7 @@
      }
      return resultOrgData;
   }
   /***
    * 统一更新接口(更改状态,更改属性信息)接口
    * @param data
@@ -926,6 +974,8 @@
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
         //这是账号信息
@@ -1097,6 +1147,8 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
@@ -1255,6 +1307,8 @@
         CondtionsVO condtionsVO=dataCondtionsVO.getCondtions();
         systemId=condtionsVO.getSystemId();
         UserVO userVo=condtionsVO.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
         CondtionVO condtionVO= condtionsVO.getCondtion();
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
@@ -1431,11 +1485,8 @@
      return resultStr;
   }
   @Override
   public String queryClassifyRule(String data, String dataType) throws Throwable {
      boolean issucess=false;
      String resultStr = "";
      String errorid="0";
@@ -1471,6 +1522,8 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();