田源
2023-09-22 c7136f0b31ef2c260806b9a25807623bd01555d6
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -17,6 +17,8 @@
import com.vci.ubcs.code.util.ClientBusinessObject;
import com.vci.ubcs.code.util.gennerAttrMapUtil;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.code.vo.webserviceModel.applybz.ApplyBZParamVO;
import com.vci.ubcs.code.vo.webserviceModel.applybz.ApplyBZVO;
import com.vci.ubcs.code.vo.webserviceModel.person.*;
import com.vci.ubcs.code.vo.webserviceModel.apply.*;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.*;
@@ -53,12 +55,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 +87,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 +145,6 @@
   /**
    * 密级的服务
    */
   @Resource
   private MdmIOService mdmIOService;
@@ -142,12 +159,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 +238,11 @@
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         AuthUtil.getUser();
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
         //这是账号信息
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
@@ -342,8 +392,6 @@
      return resultStr;
   }
   /****
    * 人员数据同步
    * @param personData
@@ -616,6 +664,7 @@
      return resultOrgData;
   }
   /****
    * 部门数据同步
    * @param orgData
@@ -882,6 +931,7 @@
      }
      return resultOrgData;
   }
   /***
    * 统一更新接口(更改状态,更改属性信息)接口
    * @param data
@@ -926,6 +976,8 @@
         ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
         systemId = interParameterVO.getData().getSystemId();
         UserVO userVo = interParameterVO.getData().getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         List<ClassfyVO> classVOList = classfysVO.getClassify();
         InterParameterVO finalInterParameterVO = interParameterVO;
         //这是账号信息
@@ -1097,6 +1149,8 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
@@ -1255,6 +1309,8 @@
         CondtionsVO condtionsVO=dataCondtionsVO.getCondtions();
         systemId=condtionsVO.getSystemId();
         UserVO userVo=condtionsVO.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         CondtionVO condtionVO= condtionsVO.getCondtion();
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setUserId(userVo.getUserName());
@@ -1431,11 +1487,8 @@
      return resultStr;
   }
   @Override
   public String queryClassifyRule(String data, String dataType) throws Throwable {
      boolean issucess=false;
      String resultStr = "";
      String errorid="0";
@@ -1471,6 +1524,8 @@
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         //免密登录申请token,request中添加用户信息
         passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
@@ -1883,6 +1938,134 @@
      return resultStr;
   }
   public String applyCodeForBZ(String data,String dataType){
      String resultStr = "";
//    log.info("方法->applyCodeForBZ start");
//
//    final String[] errorid = {"0"};
//    msg="成功";
//    objerrorCode="0";
//    objerrorMsg="成功";
//    log.info("申请编码的数据参数:->"+data);
//    log.info("申请编码的数据类型:->"+dataType);
//    String systemId="";
//    List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
//    LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
//    try{
//       try {
//          if(StringUtils.isBlank(data)) {
//             errorid[0] ="101";
//             throw new Throwable("接口参数:传递为空");
//          }
//          ApplyBZParamVO applyBZParamVO  =new ApplyBZParamVO();
//          //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
//          try {
//             if ("xml".equals(dataType)) {
//                XStream xStream = new XStream(new DomDriver());
//                xStream.processAnnotations(RootDataVO.class);
//                xStream.autodetectAnnotations(true);
//                ApplyBZVO rootDataVO = (ApplyBZVO) xStream.fromXML(data);
//                applyBZParamVO.setData(rootDataVO);
//             } else {
//                applyBZParamVO = JSONObject.toJavaObject(JSONObject.parseObject(data), ApplyBZParamVO.class);
//             }
//          }catch (Throwable e){
//             errorid[0] ="101";
//             throw new Throwable("接口参数:传入数据参数解析失败");
//          }
//          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());
//          sessionInfo.setUserName(userVo.getTrueName());
//          sessionInfo.setIp(userVo.getIp());
//          VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
////           List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>();
//          String finalSystemId = systemId;
//       } catch (Throwable e) {
//          List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject();
//          objerrorCode="1";
//          if(!CollectionUtils.isEmpty(applyDataVOList)) {
//             applyDataVOList.stream().forEach(applyDataVO -> {
//                XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
//                xmlResultDataObjectDetailDO.setCode("");
//                xmlResultDataObjectDetailDO.setId(applyDataVO.getId());
//                xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
//                xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
//                resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
//             });
//          }else{
//             XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
//             xmlResultDataObjectDetailDO.setCode("");
//             xmlResultDataObjectDetailDO.setId("");
//             xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
//             xmlResultDataObjectDetailDO.setMsg("编码申请失败:" + e.getMessage());
//             resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
//          }
//          e.printStackTrace();
//       }finally {
//          XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
//          resultClassfyVO.setClassCode(classVO.getClassCode());
//          resultClassfyVO.setLibrary(classVO.getLibrary());
//          resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
//          resultClassfyVO.setObjects(resultDataObjectDetailDOs);
//          resultClassfyVOList.add(resultClassfyVO);
//       }
//       XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
//       xmlResultSystemVO.setClassifys(resultClassfyVOList);
//       xmlResultSystemVO.setMsg(msg);
//       xmlResultSystemVO.setErrorid(errorid[0]);
//       resultStr= transferResultXMl(xmlResultSystemVO,dataType);
//    }catch (Throwable e){
//       e.printStackTrace();
//       msg="申请编码失败:"+e.getMessage();
//          /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
//            XMLResultSystemVO.setErrorid(errorid);
//            XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage());
//            XMLResultSystemVO.setClassifys(resultClassfyVOList);
//            resultStr=transferResultXMl(XMLResultSystemVO,dataType);
//
//            log.error("申请编码失败:->"+e);
//            return resultStr;*/
//    }finally {
//       XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
//       xmlResultSystemVO.setClassifys(resultClassfyVOList);
//       xmlResultSystemVO.setMsg(msg);
//       xmlResultSystemVO.setErrorid(errorid[0]);
//       resultStr= transferResultXMl(xmlResultSystemVO,dataType);
//       final boolean[] issucess = {true};
//       if(!errorid[0].equals("0")) {
//          issucess[0] = false;
//       }else {
//          if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
//             resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
//                xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
//                   if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
//                      issucess[0] = false;
//                      msg=objec.getMsg();
//                   }
//                });
//             });
//          }
//       }
//       try {
//          //记录日志
//          this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCodeForBZ");
//       }catch (Throwable e){
//          e.printStackTrace();
//       }
//    }
//    log.info("返回参数:"+resultStr);
      //调用集团申请接口申请集团码
      return resultStr;
   }
   /***
    * 查询校验分类信息
    * @param classfyVO
@@ -2234,7 +2417,8 @@
      if(StringUtils.isNotBlank(classOid)){
         queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid);
      }
      List<DockingSystemConfig> dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper);
      List<DockingSystemConfig> dockingSystemConfigList=new ArrayList<>();
      dockingSystemConfigList=   dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper);
      if(!CollectionUtils.isEmpty(dockingSystemConfigList)){
       return  dockingSystemConfigList.get(0);
      }else{
@@ -2242,6 +2426,10 @@
            return checkIspass(systemId, type, operationType, codeClassifyVO.getParentCodeClassifyOid());
         }
      }
      return dockingSystemConfigList.get(0);
      if(dockingSystemConfigList.size()>0){
         return dockingSystemConfigList.get(0);
      }else{
         return   new DockingSystemConfig();
      }
   }
}